SURFEX v8.1
General documentation of Surfex
ini_var_from_data_0d_in.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE ini_var_from_data_0d_in (DTCO, UG, U, USS, &
7  HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, &
8  HFTYP, PUNIF, PFIELD, OPRESENT, &
9  PVEGTYPE)
10 ! ##############################################################
11 !
12 !!
13 !! PURPOSE
14 !! -------
15 !!
16 !! METHOD
17 !! ------
18 !!
19 !
20 !! EXTERNAL
21 !! --------
22 !!
23 !! IMPLICIT ARGUMENTS
24 !! ------------------
25 !!
26 !! REFERENCE
27 !! ---------
28 !!
29 !! AUTHOR
30 !! ------
31 !!
32 !! S. Faroux Meteo-France
33 !!
34 !! MODIFICATION
35 !! ------------
36 !!
37 !! Original 16/11/10
38 !!
39 !----------------------------------------------------------------------------
40 !
41 !* 0. DECLARATION
42 ! -----------
43 !
44 !
45 !
48 USE modd_surf_atm_n, ONLY : surf_atm_t
49 USE modd_sso_n, ONLY : sso_t
50 !
51 USE modd_surf_par, ONLY : xundef
52 !
53 USE modd_pgdwork, ONLY : catype
54 !
56 USE modi_read_from_surfex_file
57 !
58 USE yomhook ,ONLY : lhook, dr_hook
59 USE parkind1 ,ONLY : jprb
60 !
61 IMPLICIT NONE
62 !
63 !* 0.1 Declaration of arguments
64 ! ------------------------
65 !
66 !
67 TYPE(data_cover_t), INTENT(INOUT) :: DTCO
68 TYPE(surf_atm_grid_t), INTENT(INOUT) :: UG
69 TYPE(surf_atm_t), INTENT(INOUT) :: U
70 TYPE(sso_t), INTENT(INOUT) :: USS
71 !
72 !
73  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM
74  CHARACTER(LEN=3), INTENT(IN) :: HATYPE
75  CHARACTER(LEN=*), INTENT(IN) :: HNAME
76  CHARACTER(LEN=3), INTENT(IN) :: HTYPE
77  CHARACTER(LEN=28), INTENT(IN) :: HFNAM
78  CHARACTER(LEN=6), INTENT(INOUT) :: HFTYP
79 REAL, INTENT(IN) :: PUNIF
80 REAL, DIMENSION(:,:), INTENT(OUT) :: PFIELD
81 LOGICAL, INTENT(OUT) :: OPRESENT
82 REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PVEGTYPE
83 !
84 !
85 !* 0.2 Declaration of local variables
86 ! ------------------------------
87 !
88 REAL(KIND=JPRB) :: ZHOOK_HANDLE
89 !
90 
91 !-------------------------------------------------------------------------------
92 !
93 !* 1. Initializations
94 ! ---------------
95 !
96 IF (lhook) CALL dr_hook('INI_VAR_FROM_DATA_0D_IN',0,zhook_handle)
97 !
98 IF (hftyp.EQ.'FA ' .OR. hftyp.EQ.'ASCII ' .OR. hftyp.EQ.'LFI'&
99  .OR. hftyp.EQ.'NC ') THEN
100 
101  opresent=.true.
102  SELECT CASE (htype)
103  CASE ('LAN')
104  CALL read_from_surfex_file(dtco, u, hftyp,hfnam,'SURF ',' ',pfield(:,1))
105  CASE ('TWN')
106  CALL read_from_surfex_file(dtco, u, hftyp,hfnam,'TOWN ',' ',pfield(:,1))
107  CASE ('NAT')
108  CALL read_from_surfex_file(dtco, u, hftyp,hfnam,'NATURE',' ',pfield(:,1))
109  CASE ('SEA')
110  CALL read_from_surfex_file(dtco, u, hftyp,hfnam,'SEA ',' ',pfield(:,1))
111  CASE ('WAT')
112  CALL read_from_surfex_file(dtco, u, hftyp,hfnam,'WATER ',' ',pfield(:,1))
113  END SELECT
114 
115 ELSE
116  !
117  opresent=.false.
118  catype = hatype
119  CALL pgd_field(dtco, ug, u, uss, &
120  hprogram,hname,htype,hfnam,hftyp,punif,pfield,&
121  opresent=opresent,pvegtype=pvegtype)
122 ENDIF
123 !
124 !
125 IF (lhook) CALL dr_hook('INI_VAR_FROM_DATA_0D_IN',1,zhook_handle)
126 !
127 !-------------------------------------------------------------------------------
128 !
129 END SUBROUTINE ini_var_from_data_0d_in
130 
character(len=3) catype
subroutine ini_var_from_data_0d_in(DTCO, UG, U, USS, HPROGRAM, HATYPE, HNAME, HTYPE,
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
subroutine read_from_surfex_file(DTCO, U, HFTYP, HFNAM, HMASK, HSCHEME, PFIELD, HNAM)