6 SUBROUTINE coupling_isba_orography_n (DTCO, UG, U, USS, SB, NAG, CHI, NCHI, DTV, ID, NGB, GB, &
7 ISS, NISS, IG, NIG, IO, S, K, NK, NP, NPE, NDST, SLT, &
8 HPROGRAM, HCOUPLING, PTSTEP, &
9 KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, &
10 PZENITH, PZENITH2, PAZIM, PZREF, PUREF, PZS, PU, PV, &
11 PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, &
12 PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, &
13 PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, &
14 PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, &
15 PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, &
72 USE modi_forcing_vert_shift
73 USE modi_coupling_isba_canopy_n
89 TYPE(
sso_t),
INTENT(INOUT) :: ISS
90 TYPE(
sso_np_t),
INTENT(INOUT) :: NISS
91 TYPE(
grid_t),
INTENT(INOUT) :: IG
100 TYPE(
dst_np_t),
INTENT(INOUT) :: NDST
107 TYPE(
sso_t),
INTENT(INOUT) :: USS
108 TYPE(
slt_t),
INTENT(INOUT) :: SLT
110 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
111 CHARACTER(LEN=1),
INTENT(IN) :: HCOUPLING
114 INTEGER,
INTENT(IN) :: KYEAR
115 INTEGER,
INTENT(IN) :: KMONTH
116 INTEGER,
INTENT(IN) :: KDAY
117 REAL,
INTENT(IN) :: PTIME
118 INTEGER,
INTENT(IN) :: KI
119 INTEGER,
INTENT(IN) :: KSV
120 INTEGER,
INTENT(IN) :: KSW
121 REAL,
DIMENSION(KI),
INTENT(IN) :: PTSUN
122 REAL,
INTENT(IN) :: PTSTEP
123 REAL,
DIMENSION(KI),
INTENT(IN) :: PZREF
124 REAL,
DIMENSION(KI),
INTENT(IN) :: PUREF
126 REAL,
DIMENSION(KI),
INTENT(IN) :: PTA
127 REAL,
DIMENSION(KI),
INTENT(IN) :: PQA
128 REAL,
DIMENSION(KI),
INTENT(IN) :: PRHOA
129 REAL,
DIMENSION(KI,KSV),
INTENT(IN) :: PSV
132 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN):: HSV
133 REAL,
DIMENSION(KI),
INTENT(IN) :: PU
134 REAL,
DIMENSION(KI),
INTENT(IN) :: PV
135 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: PDIR_SW
137 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: PSCA_SW
139 REAL,
DIMENSION(KSW),
INTENT(IN) :: PSW_BANDS
140 REAL,
DIMENSION(KI),
INTENT(IN) :: PZENITH
141 REAL,
DIMENSION(KI),
INTENT(IN) :: PZENITH2
142 REAL,
DIMENSION(KI),
INTENT(IN) :: PAZIM
143 REAL,
DIMENSION(KI),
INTENT(IN) :: PLW
145 REAL,
DIMENSION(KI),
INTENT(IN) :: PPS
146 REAL,
DIMENSION(KI),
INTENT(IN) :: PPA
147 REAL,
DIMENSION(KI),
INTENT(IN) :: PZS
148 REAL,
DIMENSION(KI),
INTENT(IN) :: PCO2
149 REAL,
DIMENSION(KI),
INTENT(IN) :: PSNOW
150 REAL,
DIMENSION(KI),
INTENT(IN) :: PRAIN
153 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFTH
154 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFTQ
155 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFU
156 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFV
157 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFCO2
158 REAL,
DIMENSION(KI,KSV),
INTENT(OUT):: PSFTS
160 REAL,
DIMENSION(KI),
INTENT(OUT) :: PTRAD
161 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: PDIR_ALB
162 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: PSCA_ALB
163 REAL,
DIMENSION(KI),
INTENT(OUT) :: PEMIS
165 REAL,
DIMENSION(KI),
INTENT(OUT) :: PTSURF
166 REAL,
DIMENSION(KI),
INTENT(OUT) :: PZ0
167 REAL,
DIMENSION(KI),
INTENT(OUT) :: PZ0H
168 REAL,
DIMENSION(KI),
INTENT(OUT) :: PQSURF
170 REAL,
DIMENSION(KI),
INTENT(IN) :: PPEW_A_COEF
171 REAL,
DIMENSION(KI),
INTENT(IN) :: PPEW_B_COEF
172 REAL,
DIMENSION(KI),
INTENT(IN) :: PPET_A_COEF
173 REAL,
DIMENSION(KI),
INTENT(IN) :: PPEQ_A_COEF
174 REAL,
DIMENSION(KI),
INTENT(IN) :: PPET_B_COEF
175 REAL,
DIMENSION(KI),
INTENT(IN) :: PPEQ_B_COEF
176 CHARACTER(LEN=2),
INTENT(IN) :: HTEST
180 REAL,
DIMENSION(KI) :: ZTA
181 REAL,
DIMENSION(KI) :: ZPA
182 REAL,
DIMENSION(KI) :: ZPS
183 REAL,
DIMENSION(KI) :: ZQA
184 REAL,
DIMENSION(KI) :: ZRHOA
185 REAL,
DIMENSION(KI) :: ZLW
186 REAL,
DIMENSION(KI) :: ZRAIN
187 REAL,
DIMENSION(KI) :: ZSNOW
190 REAL,
DIMENSION(KI) :: Z3D_TOT_SURF
192 REAL,
DIMENSION(KI) :: Z3D_TOT_SURF_INV
193 REAL,
DIMENSION(KI,KSW)::ZDIR_SW
195 REAL,
DIMENSION(KI,KSW)::ZSCA_SW
198 REAL,
DIMENSION(KI) :: ZPEQ_B_COEF
199 REAL,
DIMENSION(KI) :: ZPET_B_COEF
204 REAL(KIND=JPRB) :: ZHOOK_HANDLE
211 IF (
lhook)
CALL dr_hook(
'COUPLING_ISBA_OROGRAPHY_N',0,zhook_handle)
213 zpeq_b_coef(:) = ppeq_b_coef(:)
214 zpet_b_coef(:) = ppet_b_coef(:)
228 zta, zqa, zpa, zrhoa, zlw, zrain, zsnow )
230 zps(:) = zpa(:) + (pps(:) - ppa(:))
232 IF (hcoupling==
'I')
THEN 233 zpeq_b_coef = ppeq_b_coef + zqa - pqa
260 z3d_tot_surf_inv(:) = 0.
262 zsca_sw(:,:) = psca_sw(:,:)
263 zdir_sw(:,:) = pdir_sw(:,:)
283 z3d_tot_surf(:) = sqrt(1.+iss%XSSO_SLOPE(:)**2)
284 z3d_tot_surf_inv(:) = 1./z3d_tot_surf(:)
288 iswb =
SIZE(psw_bands)
293 zsca_sw(:,jswb) = psca_sw(:,jswb) * z3d_tot_surf_inv(:)
297 zdir_sw(:,jswb) = pdir_sw(:,jswb) * z3d_tot_surf_inv(:)
305 zlw(:) = zlw(:) * z3d_tot_surf_inv(:) &
306 +
xstefan*s%XEMIS_NAT(:)*s%XTSRAD_NAT(:)**4 * (1.-z3d_tot_surf_inv(:))
310 zrain(:) = zrain(:) * z3d_tot_surf_inv(:)
314 zsnow(:) = zsnow(:) * z3d_tot_surf_inv(:)
323 CALL coupling_isba_canopy_n(dtco, ug, u, uss, sb, nag, chi, nchi, dtv, id, ngb, gb, &
324 iss, niss, ig, nig, io, s, k, nk, np, npe, ndst, slt, &
325 hprogram, hcoupling, ptstep, &
326 kyear, kmonth, kday, ptime, ki, ksv, ksw, ptsun, pzenith, &
327 pzenith2, pazim, pzref, puref, pzs, pu, pv, zqa, zta, &
328 zrhoa, psv, pco2, hsv, zrain, zsnow, zlw, zdir_sw, &
329 zsca_sw, psw_bands, zps, zpa, psftq, psfth, psfts, psfco2,&
330 psfu, psfv, ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0,&
331 pz0h, pqsurf, ppew_a_coef, ppew_b_coef, ppet_a_coef, &
332 ppeq_a_coef, zpet_b_coef, zpeq_b_coef,
'OK' )
340 psfth(:) = psfth(:) * z3d_tot_surf(:)
341 psftq(:) = psftq(:) * z3d_tot_surf(:)
342 psfco2(:) = psfco2(:) * z3d_tot_surf(:)
343 DO jsv=1,
SIZE(psfts,2)
344 psfts(:,jsv) = psfts(:,jsv) * z3d_tot_surf(:)
348 IF (
lhook)
CALL dr_hook(
'COUPLING_ISBA_OROGRAPHY_N',1,zhook_handle)
subroutine coupling_isba_canopy_n(DTCO, UG, U, USS, SB, NAG, CHI, NCHI, DTV, ID, NGB, GB, ISS, NISS, IG, NIG, IO, S, K, NK, NP, NPE, NDST, SLT, HPROGRAM, HCOUPLING, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PAZIM, PZREF, PUREF, PZS, PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST)
subroutine coupling_isba_orography_n(DTCO, UG, U, USS, SB, NAG, CHI, NCHI, DTV, ID, NGB, GB, ISS, NISS, IG, NIG, IO, S, K, NK, NP, NPE, NDST, SLT, HPROGRAM, HCOUPLING, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PAZIM, PZREF, PUREF, PZS, PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST)
subroutine forcing_vert_shift(PZS_ATM, PZS_SURF, PTA_ATM, PQA_ATM, PPA_ATM, PRHOA_ATM, PLW_ATM, PRAIN_ATM, PSNOW_ATM, PTA_SURF, PQA_SURF, PPA_SURF, PRHOA_SURF, PLW_SURF, PRAIN_SURF, PSNOW_SURF)