8 pcon_rain, pstrat_rain, pcon_snow, pstrat_snow, &
9 pclouds, plsm, pevaptr, pevap, &
11 pts, pt2m, phu2m, pswe, &
12 psst, psic, pucls, pvcls, &
13 htest , od_maskext, plon, plat, olkeepextzone )
56 USE modd_assim, ONLY : xat2m_isba, xahu2m_isba, xazon10m_isba, xamer10m_isba, xat2m_teb, larome
62 USE modi_assim_inland_water_n
63 USE modi_assim_nature_n
66 USE yomhook
, ONLY : lhook, dr_hook
67 USE parkind1
, ONLY : jprb
75 TYPE(isba_grid_t
),
INTENT(INOUT) :: ig
76 TYPE(isba_t
),
INTENT(INOUT) :: i
79 TYPE(teb_t),
INTENT(INOUT) :: t
83 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
84 INTEGER,
INTENT(IN) :: ki
85 REAL,
DIMENSION(KI),
INTENT(IN) :: pcon_rain
86 REAL,
DIMENSION(KI),
INTENT(IN) :: pstrat_rain
87 REAL,
DIMENSION(KI),
INTENT(IN) :: pcon_snow
88 REAL,
DIMENSION(KI),
INTENT(IN) :: pstrat_snow
89 REAL,
DIMENSION(KI),
INTENT(IN) :: pclouds
90 REAL,
DIMENSION(KI),
INTENT(IN) :: plsm
91 REAL,
DIMENSION(KI),
INTENT(IN) :: pevaptr
92 REAL,
DIMENSION(KI),
INTENT(IN) :: pevap
93 REAL,
DIMENSION(KI),
INTENT(IN) :: pswec
94 REAL,
DIMENSION(KI),
INTENT(IN) :: ptsc
95 REAL,
DIMENSION(KI),
INTENT(IN) :: pts
96 REAL,
DIMENSION(KI),
INTENT(IN) :: pt2m
97 REAL,
DIMENSION(KI),
INTENT(IN) :: phu2m
98 REAL,
DIMENSION(KI),
INTENT(IN) :: pswe
99 REAL,
DIMENSION(KI),
INTENT(IN) :: psst
100 REAL,
DIMENSION(KI),
INTENT(IN) :: psic
101 REAL,
DIMENSION(KI),
INTENT(IN) :: pucls
102 REAL,
DIMENSION(KI),
INTENT(IN) :: pvcls
103 CHARACTER(LEN=2),
INTENT(IN) :: htest
104 LOGICAL,
DIMENSION (KI),
INTENT(IN) :: od_maskext
105 REAL(KIND=JPRB),
DIMENSION (:),
INTENT(IN) :: plon
106 REAL(KIND=JPRB),
DIMENSION (:),
INTENT(IN) :: plat
107 LOGICAL,
INTENT(IN) :: olkeepextzone
112 LOGICAL :: gnature, gtown, gwater, gsea
113 REAL(KIND=JPRB) :: zhook_handle
116 IF (lhook) CALL dr_hook(
'ASSIM_SURF_ATM_N',0,zhook_handle)
120 IF (htest/=
'OK')
THEN
121 CALL
abor1_sfx(
'ASSIM_SURF_ATMN: FATAL ERROR DURING ARGUMENT TRANSFER')
131 gwater = u%NDIM_WATER >0
132 gtown = u%NDIM_TOWN >0
133 gnature = u%NDIM_NATURE >0
176 IF (
ALLOCATED(xat2m_isba))
DEALLOCATE(xat2m_isba)
177 IF (
ALLOCATED(xahu2m_isba))
DEALLOCATE(xahu2m_isba)
178 IF (
ALLOCATED(xazon10m_isba))
DEALLOCATE(xazon10m_isba)
179 IF (
ALLOCATED(xamer10m_isba))
DEALLOCATE(xamer10m_isba)
193 IF (
ALLOCATED(xat2m_teb))
DEALLOCATE(xat2m_teb)
197 IF (lhook) CALL dr_hook(
'ASSIM_SURF_ATM_N',1,zhook_handle)
207 INTEGER,
INTENT(IN) :: ktile
208 INTEGER,
INTENT(IN) :: ksize
209 INTEGER,
INTENT(IN),
DIMENSION(KSIZE) :: kmask
211 REAL,
DIMENSION(KSIZE) :: zp_pcon_rain
212 REAL,
DIMENSION(KSIZE) :: zp_pstrat_rain
213 REAL,
DIMENSION(KSIZE) :: zp_pcon_snow
214 REAL,
DIMENSION(KSIZE) :: zp_pstrat_snow
215 REAL,
DIMENSION(KSIZE) :: zp_pclouds
216 REAL,
DIMENSION(KSIZE) :: zp_plsm
217 REAL,
DIMENSION(KSIZE) :: zp_pevaptr
218 REAL,
DIMENSION(KSIZE) :: zp_pevap
219 REAL,
DIMENSION(KSIZE) :: zp_pswec
220 REAL,
DIMENSION(KSIZE) :: zp_ptsc
221 REAL,
DIMENSION(KSIZE) :: zp_pts
222 REAL,
DIMENSION(KSIZE) :: zp_pt2m
223 REAL,
DIMENSION(KSIZE) :: zp_phu2m
224 REAL,
DIMENSION(KSIZE) :: zp_pswe
225 REAL,
DIMENSION(KSIZE) :: zp_psst
226 REAL,
DIMENSION(KSIZE) :: zp_psic
227 REAL,
DIMENSION(KSIZE) :: zp_ucls
228 REAL,
DIMENSION(KSIZE) :: zp_vcls
229 REAL,
DIMENSION(KSIZE) :: zp_lon
230 REAL,
DIMENSION(KSIZE) :: zp_lat
231 LOGICAL,
DIMENSION(KSIZE) :: gd_maskext
236 zp_plsm(jj) = plsm(ji)
237 zp_pcon_rain(jj) = pcon_rain(ji)
238 zp_pstrat_rain(jj) = pstrat_rain(ji)
239 zp_pcon_snow(jj) = pcon_snow(ji)
240 zp_pstrat_snow(jj) = pstrat_snow(ji)
241 zp_pclouds(jj) = pclouds(ji)
242 zp_pevaptr(jj) = pevaptr(ji)
243 zp_pevap(jj) = pevap(ji)
244 zp_pswe(jj) = pswe(ji)
245 zp_pswec(jj) = pswec(ji)
246 zp_ptsc(jj) = ptsc(ji)
248 zp_pt2m(jj) = pt2m(ji)
249 zp_phu2m(jj) = phu2m(ji)
250 zp_psst(jj) = psst(ji)
251 zp_psic(jj) = psic(ji)
252 zp_ucls(jj) = pucls(ji)
253 zp_vcls(jj) = pvcls(ji)
254 zp_lon(jj) = plon(ji)
255 zp_lat(jj) = plat(ji)
256 gd_maskext(jj) = od_maskext(ji)
261 IF (nrank==npio)
THEN
262 WRITE(*,*)
'*********************************************'
263 WRITE(*,*)
'* ASSIMILATIONS FOR SEA POINTS *'
264 WRITE(*,*)
'*********************************************'
268 hprogram,ksize,zp_pts,zp_psst,zp_psic,zp_plsm,htest,&
269 olkeepextzone,gd_maskext,zp_lon,zp_lat)
271 ELSEIF (ktile==2)
THEN
273 IF (nrank==npio)
THEN
274 WRITE(*,*)
'*********************************************'
275 WRITE(*,*)
'* ASSIMILATIONS FOR WATER POINTS *'
276 WRITE(*,*)
'*********************************************'
280 hprogram,ksize,zp_pts,zp_plsm,htest,&
281 olkeepextzone,gd_maskext,zp_lon,zp_lat)
283 ELSEIF (ktile==3)
THEN
285 IF (nrank==npio)
THEN
286 WRITE(*,*)
'*********************************************'
287 WRITE(*,*)
'* ASSIMILATIONS FOR NATURE POINTS *'
288 WRITE(*,*)
'*********************************************'
293 zp_pcon_rain, zp_pstrat_rain, zp_pcon_snow, zp_pstrat_snow, &
294 zp_pclouds, zp_plsm, zp_pevaptr, zp_pevap, &
295 zp_pswec, zp_ptsc, zp_ucls, zp_vcls, &
296 zp_pts, zp_pt2m, zp_phu2m, zp_pswe, &
297 htest, gd_maskext, zp_lon, zp_lat )
299 ELSEIF (ktile==4)
THEN
301 IF (nrank==npio)
THEN
302 WRITE(*,*)
'*********************************************'
303 WRITE(*,*)
'* ASSIMILATIONS FOR URBAN POINTS *'
304 WRITE(*,*)
'*********************************************'
308 hprogram,ksize,zp_pt2m,htest)
subroutine abor1_sfx(YTEXT)
subroutine assim_treat_surf(KTILE, KSIZE, KMASK)
subroutine assim_town_n(U, T, TOP, HPROGRAM, KI, PT2M_O, HTEST)
subroutine assim_surf_atm_n(DGMI, IG, I, S, U, T, TOP, W, HPROGRAM, KI, PCON_RAIN, PSTRAT_RAIN, PCON_SNOW, PSTRAT_SNOW, PCLOUDS, PLSM, PEVAPTR, PEVAP, PSWEC, PTSC, PTS, PT2M, PHU2M, PSWE, PSST, PSIC, PUCLS, PVCLS, HTEST, OD_MASKEXT, PLON, PLAT, OLKEEPEXTZONE)
subroutine assim_sea_n(S, U, HPROGRAM, KI, PTS_IN, PSST_IN, PSIC_IN, PITM, HTEST, OLKEEPEXTZONE, OD_MASKEXT, PLON_IN, PLAT_IN)
subroutine assim_nature_n(DGMI, IG, I, U, HPROGRAM, KI, PCON_RAIN, PSTRAT_RAIN, PCON_SNOW, PSTRAT_SNOW, PCLOUDS, PLSM, PEVAPTR, PEVAP, PSWEC, PTSC, PUCLS, PVCLS, PTS, PT2M, PHU2M, PSWE, HTEST, OD_MASKEXT, PLON, PLAT)
subroutine assim_inland_water_n(I, U, W, HPROGRAM, KI, PTS_IN, PITM, HTEST, OLKEEPEXTZONE, OD_MASKEXT, PLON_IN, PLAT_IN)