SURFEX v8.1
General documentation of Surfex
ini_var_from_data_0d.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.
6 !
8 !
9 ! #########
10  SUBROUTINE ini_var_from_data_0d_1d (DTCO, UG, U, USS, &
11  HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, &
12  HFTYP, PUNIF, PFIELD, OPRESENT, &
13  PMASK)
14 ! ##############################################################
15 !
18 USE modd_surf_atm_n, ONLY : surf_atm_t
19 USE modd_sso_n, ONLY : sso_t
20 !
21 IMPLICIT NONE
22 !
23 !* 0.1 Declaration of arguments
24 ! ------------------------
25 !
26 !
27 TYPE(data_cover_t), INTENT(INOUT) :: DTCO
28 TYPE(surf_atm_grid_t), INTENT(INOUT) :: UG
29 TYPE(surf_atm_t), INTENT(INOUT) :: U
30 TYPE(sso_t), INTENT(INOUT) :: USS
31 !
32 !
33  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM
34  CHARACTER(LEN=3), INTENT(IN) :: HATYPE
35  CHARACTER(LEN=*), INTENT(IN) :: HNAME
36  CHARACTER(LEN=3), INTENT(IN) :: HTYPE
37  CHARACTER(LEN=28), INTENT(IN) :: HFNAM
38  CHARACTER(LEN=6), INTENT(INOUT) :: HFTYP
39 REAL, INTENT(IN) :: PUNIF
40 REAL, DIMENSION(:), INTENT(OUT) :: PFIELD
41 LOGICAL, INTENT(OUT) :: OPRESENT
42 REAL, DIMENSION(:), OPTIONAL, INTENT(IN) :: PMASK
43 !
44 !
45 END SUBROUTINE ini_var_from_data_0d_1d
46 !
47 ! #########
48  SUBROUTINE ini_var_from_data_0d_2d (DTCO, UG, U, USS, &
49  HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, &
50  HFTYP, PUNIF, PFIELD, OPRESENT, &
51  PMASK)
52 ! ##############################################################
53 !
56 USE modd_surf_atm_n, ONLY : surf_atm_t
57 USE modd_sso_n, ONLY : sso_t
58 !
59 IMPLICIT NONE
60 !
61 !* 0.1 Declaration of arguments
62 ! ------------------------
63 !
64 !
65 TYPE(data_cover_t), INTENT(INOUT) :: DTCO
66 TYPE(surf_atm_grid_t), INTENT(INOUT) :: UG
67 TYPE(surf_atm_t), INTENT(INOUT) :: U
68 TYPE(sso_t), INTENT(INOUT) :: USS
69 !
70 !
71  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM
72  CHARACTER(LEN=3), INTENT(IN) :: HATYPE
73  CHARACTER(LEN=*), INTENT(IN) :: HNAME
74  CHARACTER(LEN=3), INTENT(IN) :: HTYPE
75  CHARACTER(LEN=28), INTENT(IN) :: HFNAM
76  CHARACTER(LEN=6), INTENT(INOUT) :: HFTYP
77 REAL, INTENT(IN) :: PUNIF
78 REAL, DIMENSION(:,:), INTENT(OUT) :: PFIELD
79 LOGICAL, INTENT(OUT) :: OPRESENT
80 REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PMASK
81 !
82 !
83 END SUBROUTINE ini_var_from_data_0d_2d
84 !
85 END INTERFACE ini_var_from_data_0d
86 !
88 !
89 ! #########
90  SUBROUTINE ini_var_from_data_0d_1d (DTCO, UG, U, USS, &
91  HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, &
92  HFTYP, PUNIF, PFIELD, OPRESENT, PMASK)
93 ! ##############################################################
94 !
97 USE modd_surf_atm_n, ONLY : surf_atm_t
98 USE modd_sso_n, ONLY : sso_t
99 !
100 USE modd_surf_par, ONLY : xundef
101 !
102 USE modi_ini_var_from_data_0d_in
103 !
104 IMPLICIT NONE
105 !
106 !* 0.1 Declaration of arguments
107 ! ------------------------
108 !
109 !
110 TYPE(data_cover_t), INTENT(INOUT) :: DTCO
111 TYPE(surf_atm_grid_t), INTENT(INOUT) :: UG
112 TYPE(surf_atm_t), INTENT(INOUT) :: U
113 TYPE(sso_t), INTENT(INOUT) :: USS
114 !
115 !
116  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM
117  CHARACTER(LEN=3), INTENT(IN) :: HATYPE
118  CHARACTER(LEN=*), INTENT(IN) :: HNAME
119  CHARACTER(LEN=3), INTENT(IN) :: HTYPE
120  CHARACTER(LEN=28), INTENT(IN) :: HFNAM
121  CHARACTER(LEN=6), INTENT(INOUT) :: HFTYP
122 REAL, INTENT(IN) :: PUNIF
123 REAL, DIMENSION(:), INTENT(OUT) :: PFIELD
124 LOGICAL, INTENT(OUT) :: OPRESENT
125 REAL, DIMENSION(:), OPTIONAL, INTENT(IN) :: PMASK
126 !
127 REAL, DIMENSION(SIZE(PFIELD),1) :: ZFIELD
128 REAL, DIMENSION(:,:), ALLOCATABLE :: ZMASK
129 !
130 IF (PRESENT(pmask)) THEN
131  ALLOCATE(zmask(SIZE(pmask),1))
132  zmask(:,1) = pmask
133  CALL ini_var_from_data_0d_in(dtco, ug, u, uss, &
134  hprogram, hatype, hname, htype, hfnam, &
135  hftyp, punif, zfield, opresent, zmask)
136  DEALLOCATE(zmask)
137 ELSE
138  CALL ini_var_from_data_0d_in(dtco, ug, u, uss, &
139  hprogram, hatype, hname, htype, hfnam, &
140  hftyp, punif, zfield, opresent)
141 ENDIF
142 !
143 IF (any(zfield(:,1)/=xundef)) pfield(:) = zfield(:,1)
144 !
145 !
146 END SUBROUTINE ini_var_from_data_0d_1d
147 !
148 ! #########
149  SUBROUTINE ini_var_from_data_0d_2d (DTCO, UG, U, USS, &
150  HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, &
151  HFTYP, PUNIF, PFIELD, OPRESENT, PMASK)
152 ! ##############################################################
153 !
156 USE modd_surf_atm_n, ONLY : surf_atm_t
157 USE modd_sso_n, ONLY : sso_t
158 !
159 USE modi_ini_var_from_data_0d_in
160 !
161 IMPLICIT NONE
162 !
163 !* 0.1 Declaration of arguments
164 ! ------------------------
165 !
166 !
167 TYPE(data_cover_t), INTENT(INOUT) :: DTCO
168 TYPE(surf_atm_grid_t), INTENT(INOUT) :: UG
169 TYPE(surf_atm_t), INTENT(INOUT) :: U
170 TYPE(sso_t), INTENT(INOUT) :: USS
171 !
172 !
173  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM
174  CHARACTER(LEN=3), INTENT(IN) :: HATYPE
175  CHARACTER(LEN=*), INTENT(IN) :: HNAME
176  CHARACTER(LEN=3), INTENT(IN) :: HTYPE
177  CHARACTER(LEN=28), INTENT(IN) :: HFNAM
178  CHARACTER(LEN=6), INTENT(INOUT) :: HFTYP
179 REAL, INTENT(IN) :: PUNIF
180 REAL, DIMENSION(:,:), INTENT(OUT) :: PFIELD
181 LOGICAL, INTENT(OUT) :: OPRESENT
182 REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PMASK
183 !
184 IF (PRESENT(pmask)) THEN
185  CALL ini_var_from_data_0d_in(dtco, ug, u, uss, &
186  hprogram, hatype, hname, htype, hfnam, &
187  hftyp, punif, pfield, opresent, pmask)
188 ELSE
189  CALL ini_var_from_data_0d_in(dtco, ug, u, uss, &
190  hprogram, hatype, hname, htype, hfnam, &
191  hftyp, punif, pfield, opresent)
192 ENDIF
193 !
194 END SUBROUTINE ini_var_from_data_0d_2d
195 !
subroutine ini_var_from_data_0d_in(DTCO, UG, U, USS, HPROGRAM, HATYPE, HNAME, HTYPE,
real, parameter xundef
subroutine ini_var_from_data_0d_1d(DTCO, UG, U, USS, HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD, OPRESENT, PMASK)
subroutine ini_var_from_data_0d_2d(DTCO, UG, U, USS, HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, HFTYP, PUNIF, PFIELD, OPRESENT, PMASK)