6 SUBROUTINE coupling_tsz0_n (DTCO, UG, U, USS, IM, DTZ, NDST, SLT, HPROGRAM, HCOUPLING, &
7 PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN,&
8 PZENITH, PZENITH2, PAZIM, PZREF, PUREF, PZS, PU, PV, &
9 PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, &
10 PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, &
11 PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, &
12 PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, &
13 PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, &
59 USE modi_coupling_isba_orography_n
73 TYPE(
sso_t),
INTENT(INOUT) :: USS
75 TYPE(
dst_np_t),
INTENT(INOUT) :: NDST
76 TYPE(
slt_t),
INTENT(INOUT) :: SLT
78 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
79 CHARACTER(LEN=1),
INTENT(IN) :: HCOUPLING
82 INTEGER,
INTENT(IN) :: KYEAR
83 INTEGER,
INTENT(IN) :: KMONTH
84 INTEGER,
INTENT(IN) :: KDAY
85 REAL,
INTENT(IN) :: PTIME
86 INTEGER,
INTENT(IN) :: KI
87 INTEGER,
INTENT(IN) :: KSV
88 INTEGER,
INTENT(IN) :: KSW
89 REAL,
DIMENSION(KI),
INTENT(IN) :: PTSUN
90 REAL,
INTENT(IN) :: PTSTEP
91 REAL,
DIMENSION(KI),
INTENT(IN) :: PZREF
92 REAL,
DIMENSION(KI),
INTENT(IN) :: PUREF
94 REAL,
DIMENSION(KI),
INTENT(IN) :: PTA
95 REAL,
DIMENSION(KI),
INTENT(IN) :: PQA
96 REAL,
DIMENSION(KI),
INTENT(IN) :: PRHOA
97 REAL,
DIMENSION(KI,KSV),
INTENT(IN) :: PSV
100 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN):: HSV
101 REAL,
DIMENSION(KI),
INTENT(IN) :: PU
102 REAL,
DIMENSION(KI),
INTENT(IN) :: PV
103 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: PDIR_SW
105 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: PSCA_SW
107 REAL,
DIMENSION(KSW),
INTENT(IN) :: PSW_BANDS
108 REAL,
DIMENSION(KI),
INTENT(IN) :: PZENITH
109 REAL,
DIMENSION(KI),
INTENT(IN) :: PZENITH2
110 REAL,
DIMENSION(KI),
INTENT(IN) :: PAZIM
111 REAL,
DIMENSION(KI),
INTENT(IN) :: PLW
113 REAL,
DIMENSION(KI),
INTENT(IN) :: PPS
114 REAL,
DIMENSION(KI),
INTENT(IN) :: PPA
115 REAL,
DIMENSION(KI),
INTENT(IN) :: PZS
116 REAL,
DIMENSION(KI),
INTENT(IN) :: PCO2
117 REAL,
DIMENSION(KI),
INTENT(IN) :: PSNOW
118 REAL,
DIMENSION(KI),
INTENT(IN) :: PRAIN
121 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFTH
122 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFTQ
123 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFU
124 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFV
125 REAL,
DIMENSION(KI),
INTENT(OUT) :: PSFCO2
126 REAL,
DIMENSION(KI,KSV),
INTENT(OUT):: PSFTS
128 REAL,
DIMENSION(KI),
INTENT(OUT) :: PTRAD
129 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: PDIR_ALB
130 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: PSCA_ALB
131 REAL,
DIMENSION(KI),
INTENT(OUT) :: PEMIS
133 REAL,
DIMENSION(KI),
INTENT(OUT) :: PTSURF
134 REAL,
DIMENSION(KI),
INTENT(OUT) :: PZ0
135 REAL,
DIMENSION(KI),
INTENT(OUT) :: PZ0H
136 REAL,
DIMENSION(KI),
INTENT(OUT) :: PQSURF
138 REAL,
DIMENSION(KI),
INTENT(IN) :: PPEW_A_COEF
139 REAL,
DIMENSION(KI),
INTENT(IN) :: PPEW_B_COEF
140 REAL,
DIMENSION(KI),
INTENT(IN) :: PPET_A_COEF
141 REAL,
DIMENSION(KI),
INTENT(IN) :: PPEQ_A_COEF
142 REAL,
DIMENSION(KI),
INTENT(IN) :: PPET_B_COEF
143 REAL,
DIMENSION(KI),
INTENT(IN) :: PPEQ_B_COEF
144 CHARACTER(LEN=2),
INTENT(IN) :: HTEST
152 REAL,
DIMENSION(KI,IM%O%NGROUND_LAYER,IM%O%NPATCH) :: ZTG
153 REAL,
DIMENSION(KI,IM%O%NGROUND_LAYER,IM%O%NPATCH) :: ZWG
154 REAL,
DIMENSION(KI,IM%O%NGROUND_LAYER,IM%O%NPATCH) :: ZWGI
155 REAL,
DIMENSION(KI,IM%O%NPATCH) :: ZWR
156 REAL,
DIMENSION(KI,IM%O%NPATCH) :: ZRESA
157 REAL,
DIMENSION(KI,IM%NPE%AL(1)%TSNOW%NLAYER,IM%O%NPATCH) :: ZWSNOW
158 REAL,
DIMENSION(KI,IM%NPE%AL(1)%TSNOW%NLAYER,IM%O%NPATCH) :: ZRHOSN
159 REAL,
DIMENSION(KI,IM%NPE%AL(1)%TSNOW%NLAYER,IM%O%NPATCH) :: ZHEASN
160 REAL,
DIMENSION(KI,IM%O%NPATCH) :: ZALBSN
161 REAL,
DIMENSION(KI,IM%O%NPATCH) :: ZEMISN
163 REAL,
DIMENSION(KI) :: ZPEW_A_COEF
164 REAL,
DIMENSION(KI) :: ZPEW_B_COEF
165 REAL,
DIMENSION(KI) :: ZPET_A_COEF
166 REAL,
DIMENSION(KI) :: ZPEQ_A_COEF
167 REAL,
DIMENSION(KI) :: ZPET_B_COEF
168 REAL,
DIMENSION(KI) :: ZPEQ_B_COEF
170 REAL(KIND=JPRB) :: ZHOOK_HANDLE
173 IF (
lhook)
CALL dr_hook(
'COUPLING_TSZ0_N',0,zhook_handle)
178 DO jp = 1,im%O%NPATCH
179 CALL tsz0(dtz, ptime, ptstep, im%NK%AL(jp), im%NPE%AL(jp))
186 DO jp = 1,im%O%NPATCH
190 ztg(1:pk%NSIZE_P,:,jp) = pek%XTG (:,:)
191 zwg(1:pk%NSIZE_P,:,jp) = pek%XWG (:,:)
192 zwgi(1:pk%NSIZE_P,:,jp) = pek%XWGI (:,:)
193 zwr(1:pk%NSIZE_P,jp) = pek%XWR (:)
194 zresa(1:pk%NSIZE_P,jp) = pek%XRESA (:)
195 zwsnow(1:pk%NSIZE_P,:,jp)= pek%TSNOW%WSNOW(:,:)
196 zrhosn(1:pk%NSIZE_P,:,jp)= pek%TSNOW%RHO (:,:)
197 zalbsn(1:pk%NSIZE_P,jp) = pek%TSNOW%ALB (:)
198 IF (pek%TSNOW%SCHEME==
'3-L' .OR. pek%TSNOW%SCHEME==
'CRO')
THEN 199 zheasn(1:pk%NSIZE_P,:,jp)= pek%TSNOW%HEAT (:,:)
200 zemisn(1:pk%NSIZE_P,jp) = pek%TSNOW%EMIS (:)
208 CALL coupling_isba_orography_n(dtco, ug, u, uss, im%SB, im%NAG, im%CHI, im%NCHI, im%DTV, im%ID, &
209 im%NGB, im%GB, im%ISS, im%NISS, im%G, im%NG, im%O, im%S, im%K, im%NK, &
210 im%NP, im%NPE, ndst, slt, hprogram,
'E', 0.001, kyear, &
211 kmonth, kday, ptime, ki, ksv, ksw, ptsun, pzenith, &
212 pzenith2, pazim, pzref, puref, pzs, pu, pv, pqa, pta, &
213 prhoa, psv, pco2, hsv, prain, psnow, plw, pdir_sw, &
214 psca_sw, psw_bands, pps, ppa, psftq, psfth, psfts, psfco2,&
215 psfu, psfv, ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0,&
216 pz0h, pqsurf, ppew_a_coef, ppew_b_coef, ppet_a_coef, &
217 ppeq_a_coef, ppet_b_coef, ppeq_b_coef,
'OK' )
224 DO jp = 1,im%O%NPATCH
228 pek%XTG (:,:) = ztg(1:pk%NSIZE_P,:,jp)
229 pek%XWG (:,:) = zwg(1:pk%NSIZE_P,:,jp)
230 pek%XWGI (:,:) = zwgi(1:pk%NSIZE_P,:,jp)
231 pek%XWR (:) = zwr(1:pk%NSIZE_P,jp)
232 pek%XRESA (:) = zresa(1:pk%NSIZE_P,jp)
233 pek%TSNOW%WSNOW(:,:) = zwsnow(1:pk%NSIZE_P,:,jp)
234 pek%TSNOW%RHO (:,:) = zrhosn(1:pk%NSIZE_P,:,jp)
235 pek%TSNOW%ALB (:) = zalbsn(1:pk%NSIZE_P,jp)
236 IF (pek%TSNOW%SCHEME==
'3-L' .OR. pek%TSNOW%SCHEME==
'CRO')
THEN 237 pek%TSNOW%HEAT (:,:) = zheasn(1:pk%NSIZE_P,:,jp)
238 pek%TSNOW%EMIS (:) = zemisn(1:pk%NSIZE_P,jp)
242 IF (
lhook)
CALL dr_hook(
'COUPLING_TSZ0_N',1,zhook_handle)
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 tsz0(DTZ, PTIME, PTSTEP, KK, PEK)
subroutine coupling_tsz0_n(DTCO, UG, U, USS, IM, DTZ, 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)