7 hprogram,ki,ksw,ptimec,ptstep_surf, &
8 ksize_omp,pzenith,psw_bands, &
9 ptsrad,pdir_alb,psca_alb,pemis,ptsurf )
66 USE modi_sfx_oasis_recv
69 USE modi_update_esm_surf_atm_n
71 USE yomhook
,ONLY : lhook, dr_hook
72 USE parkind1
,ONLY : jprb
88 TYPE(flake_t),
INTENT(INOUT) :: f
89 TYPE(isba_t
),
INTENT(INOUT) :: i
94 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
96 INTEGER,
INTENT(IN) :: ki
97 INTEGER,
INTENT(IN) :: ksw
98 REAL,
INTENT(IN) :: ptimec
99 REAL,
INTENT(IN) :: ptstep_surf
100 INTEGER,
DIMENSION(:),
INTENT(IN) :: ksize_omp
102 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
103 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
105 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsrad
106 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: pdir_alb
107 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: psca_alb
108 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
109 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
115 REAL,
DIMENSION(KI) :: zland_wtd
116 REAL,
DIMENSION(KI) :: zland_fwtd
117 REAL,
DIMENSION(KI) :: zland_fflood
118 REAL,
DIMENSION(KI) :: zland_piflood
119 REAL,
DIMENSION(KI) :: zsea_sst
120 REAL,
DIMENSION(KI) :: zsea_ucu
121 REAL,
DIMENSION(KI) :: zsea_vcu
122 REAL,
DIMENSION(KI) :: zseaice_sit
123 REAL,
DIMENSION(KI) :: zseaice_cvr
124 REAL,
DIMENSION(KI) :: zseaice_alb
128 LOGICAL :: grecv_land
129 LOGICAL :: grecv_flood
132 INTEGER :: inkproma, iluout
134 REAL(KIND=JPRB) :: zhook_handle
138 IF (lhook) CALL dr_hook(
'SFX_OASIS_RECV_OL',0,zhook_handle)
145 ztime_cpl = ptimec-ptstep_surf
147 grecv_land=(lcpl_land.AND.mod(ztime_cpl,xtstep_cpl_land)==0.0)
148 grecv_sea =(lcpl_sea .AND.mod(ztime_cpl,xtstep_cpl_sea )==0.0)
150 IF(.NOT.(grecv_land.OR.grecv_sea))
THEN
151 IF (lhook) CALL dr_hook(
'SFX_OASIS_RECV_OL',1,zhook_handle)
158 zland_wtd(:) = xundef
159 zland_fwtd(:) = xundef
160 zland_fflood(:) = xundef
161 zland_piflood(:) = xundef
168 zseaice_sit(:) = xundef
169 zseaice_cvr(:) = xundef
170 zseaice_alb(:) = xundef
177 grecv_land, grecv_sea, &
178 zland_wtd(:),zland_fwtd(:), &
179 zland_fflood(:),zland_piflood(:), &
180 zsea_sst(:),zsea_ucu(:), &
181 zsea_vcu(:),zseaice_sit(:), &
182 zseaice_cvr(:),zseaice_alb(:) )
191 IF (nblock==nblocktot)
THEN
192 CALL
init_dim(ksize_omp,0,inkproma,nindx1sfx,nindx2sfx)
194 CALL
init_dim(ksize_omp,nblock,inkproma,nindx1sfx,nindx2sfx)
209 iluout,lcpl_gw,lcpl_flood, &
210 zland_wtd(nindx1sfx:nindx2sfx),zland_fwtd(nindx1sfx:nindx2sfx), &
211 zland_fflood(nindx1sfx:nindx2sfx),zland_piflood(nindx1sfx:nindx2sfx) )
220 iluout,lcpl_seaice,lwater, &
221 zsea_sst(nindx1sfx:nindx2sfx),zsea_ucu(nindx1sfx:nindx2sfx), &
222 zsea_vcu(nindx1sfx:nindx2sfx),zseaice_sit(nindx1sfx:nindx2sfx), &
223 zseaice_cvr(nindx1sfx:nindx2sfx),zseaice_alb(nindx1sfx:nindx2sfx) )
230 grecv_flood=(grecv_land.AND.lcpl_flood)
232 IF(grecv_sea.OR.grecv_flood)
THEN
234 hprogram, inkproma, ksw, pzenith(nindx1sfx:nindx2sfx), psw_bands, &
235 ptsrad(nindx1sfx:nindx2sfx), pdir_alb(nindx1sfx:nindx2sfx,:), &
236 psca_alb(nindx1sfx:nindx2sfx,:), pemis(nindx1sfx:nindx2sfx), &
237 ptsurf(nindx1sfx:nindx2sfx) )
240 CALL
reset_dim(ki,inkproma,nindx1sfx,nindx2sfx)
246 IF (lhook) CALL dr_hook(
'SFX_OASIS_RECV_OL',1,zhook_handle)
subroutine sfx_oasis_recv(HPROGRAM, KI, KSW, PTIMEC, ORECV_LAND, ORECV_SEA, PLAND_WTD, PLAND_FWTD, PLAND_FFLOOD, PLAND_PIFLOOD, PSEA_SST, PSEA_UCU, PSEA_VCU, PSEAICE_SIT, PSEAICE_CVR, PSEAICE_ALB)
subroutine put_sfx_land(I, U, KLUOUT, OCPL_WTD, OCPL_FLOOD, PWTD, PFWTD, PFFLOOD, PPIFLOOD)
subroutine put_sfx_sea(S, U, W, KLUOUT, OCPL_SEAICE, OWATER, PSEA_SST, PSEA_UCU, PSEA_VCU, PSEAICE_SIT, PSEAICE_CVR, PSEAICE_ALB)
subroutine sfx_oasis_recv_ol(F, I, S, U, W, HPROGRAM, KI, KSW, PTIMEC, PTSTEP_SURF, KSIZE_OMP, PZENITH, PSW_BANDS, PTSRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF)
subroutine update_esm_surf_atm_n(F, I, S, U, W, HPROGRAM, KI, KSW, PZENITH, PSW_BANDS, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF)
subroutine goto_model(KMODEL)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine init_dim(KSIZE_OMP, KBLOCK, KKPROMA, KINDX1, KINDX2)
subroutine reset_dim(KNI, KKPROMA, KINDX1, KINDX2)