6 SUBROUTINE coupling_nature_n (DTCO, UG, U, USS, IM, DTZ, DTGD, DTGR, TGRO, DGL, DST, SLT, &
7 hprogram, hcoupling, ptimec, &
8 ptstep, kyear, kmonth, kday, ptime, ki, ksv, ksw, ptsun, pzenith, pzenith2, &
9 pazim, pzref, puref, pzs, pu, pv, pqa, pta, prhoa, psv, pco2, hsv, &
10 prain, psnow, plw, pdir_sw, psca_sw, psw_bands, pps, ppa, &
11 psftq, psfth, psfts, psfco2, psfu, psfv, &
12 ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0, pz0h, pqsurf, &
13 ppew_a_coef, ppew_b_coef, &
14 ppet_a_coef, ppeq_a_coef, ppet_b_coef, ppeq_b_coef, &
59 USE yomhook
,ONLY : lhook, dr_hook
60 USE parkind1
,ONLY : jprb
62 USE modi_coupling_ideal_flux
64 USE modi_coupling_isba_svat_n
66 USE modi_coupling_tsz0_n
73 TYPE(isba_model_t
),
INTENT(INOUT) :: im
83 TYPE(dst_t),
INTENT(INOUT) :: dst
84 TYPE(slt_t),
INTENT(INOUT) :: slt
86 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
87 CHARACTER(LEN=1),
INTENT(IN) :: hcoupling
90 REAL,
INTENT(IN) :: ptimec
91 INTEGER,
INTENT(IN) :: kyear
92 INTEGER,
INTENT(IN) :: kmonth
93 INTEGER,
INTENT(IN) :: kday
94 REAL,
INTENT(IN) :: ptime
95 INTEGER,
INTENT(IN) :: ki
96 INTEGER,
INTENT(IN) :: ksv
97 INTEGER,
INTENT(IN) :: ksw
98 REAL,
DIMENSION(KI),
INTENT(IN) :: ptsun
99 REAL,
INTENT(IN) :: ptstep
100 REAL,
DIMENSION(KI),
INTENT(IN) :: pzref
101 REAL,
DIMENSION(KI),
INTENT(IN) :: puref
103 REAL,
DIMENSION(KI),
INTENT(IN) :: pta
104 REAL,
DIMENSION(KI),
INTENT(IN) :: pqa
105 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
106 REAL,
DIMENSION(KI,KSV),
INTENT(IN) :: psv
109 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN):: hsv
110 REAL,
DIMENSION(KI),
INTENT(IN) :: pu
111 REAL,
DIMENSION(KI),
INTENT(IN) :: pv
112 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: pdir_sw
114 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: psca_sw
116 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
117 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
118 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith2
119 REAL,
DIMENSION(KI),
INTENT(IN) :: pazim
120 REAL,
DIMENSION(KI),
INTENT(IN) :: plw
122 REAL,
DIMENSION(KI),
INTENT(IN) :: pps
123 REAL,
DIMENSION(KI),
INTENT(IN) :: ppa
124 REAL,
DIMENSION(KI),
INTENT(IN) :: pzs
125 REAL,
DIMENSION(KI),
INTENT(IN) :: pco2
126 REAL,
DIMENSION(KI),
INTENT(IN) :: psnow
127 REAL,
DIMENSION(KI),
INTENT(IN) :: prain
130 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfth
131 REAL,
DIMENSION(KI),
INTENT(OUT) :: psftq
132 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfu
133 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfv
134 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfco2
135 REAL,
DIMENSION(KI,KSV),
INTENT(OUT):: psfts
137 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptrad
138 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: pdir_alb
139 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: psca_alb
140 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
142 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
143 REAL,
DIMENSION(KI),
INTENT(OUT) :: pz0
144 REAL,
DIMENSION(KI),
INTENT(OUT) :: pz0h
145 REAL,
DIMENSION(KI),
INTENT(OUT) :: pqsurf
147 REAL,
DIMENSION(KI),
INTENT(IN) :: ppew_a_coef
148 REAL,
DIMENSION(KI),
INTENT(IN) :: ppew_b_coef
149 REAL,
DIMENSION(KI),
INTENT(IN) :: ppet_a_coef
150 REAL,
DIMENSION(KI),
INTENT(IN) :: ppeq_a_coef
151 REAL,
DIMENSION(KI),
INTENT(IN) :: ppet_b_coef
152 REAL,
DIMENSION(KI),
INTENT(IN) :: ppeq_b_coef
153 CHARACTER(LEN=2),
INTENT(IN) :: htest
154 REAL(KIND=JPRB) :: zhook_handle
160 IF (lhook) CALL dr_hook(
'COUPLING_NATURE_N',0,zhook_handle)
161 IF (u%CNATURE==
'ISBA ')
THEN
162 CALL
coupling_isba_svat_n(dtco, ug, u, uss, im, dtgd, dtgr, tgro, dst, slt, &
163 hprogram, hcoupling, &
164 ptstep, kyear, kmonth, kday, ptime, &
166 ptsun, pzenith, pzenith2, pazim, &
167 pzref, puref, pzs, pu, pv, pqa, pta, prhoa, psv, pco2, hsv, &
168 prain, psnow, plw, pdir_sw, psca_sw, psw_bands, pps, ppa, &
169 psftq, psfth, psfts, psfco2, psfu, psfv, &
170 ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0, pz0h, pqsurf, &
171 ppew_a_coef, ppew_b_coef, &
172 ppet_a_coef, ppeq_a_coef, ppet_b_coef, ppeq_b_coef, &
174 ELSE IF (u%CNATURE==
'TSZ0 ')
THEN
175 CALL
coupling_tsz0_n(dtco, ug, u, uss, im, dtz, dtgd, dtgr, tgro, dst, slt, &
176 hprogram, hcoupling, &
177 ptstep, kyear, kmonth, kday, ptimec, &
179 ptsun, pzenith, pzenith2, pazim, &
180 pzref, puref, pzs, pu, pv, pqa, pta, prhoa, psv, pco2, hsv, &
181 prain, psnow, plw, pdir_sw, psca_sw, psw_bands, pps, ppa, &
182 psftq, psfth, psfts, psfco2, psfu, psfv, &
183 ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0, pz0h, pqsurf, &
184 ppew_a_coef, ppew_b_coef, &
185 ppet_a_coef, ppeq_a_coef, ppet_b_coef, ppeq_b_coef, &
187 ELSE IF (u%CNATURE==
'FLUX ')
THEN
189 hprogram, hcoupling, ptimec, &
190 ptstep, kyear, kmonth, kday, ptime, &
192 ptsun, pzenith, pazim, &
193 pzref, puref, pzs, pu, pv, pqa, pta, prhoa, psv, pco2, hsv, &
194 prain, psnow, plw, pdir_sw, psca_sw, psw_bands, pps, ppa, &
195 psftq, psfth, psfts, psfco2, psfu, psfv, &
196 ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0, pz0h, pqsurf, &
197 ppew_a_coef, ppew_b_coef, &
198 ppet_a_coef, ppeq_a_coef, ppet_b_coef, ppeq_b_coef, &
200 ELSE IF (u%CNATURE==
'NONE ')
THEN
219 IF (lhook) CALL dr_hook(
'COUPLING_NATURE_N',1,zhook_handle)
subroutine coupling_nature_n(DTCO, UG, U, USS, IM, DTZ, DTGD, DTGR, TGRO, DGL, DST, SLT, HPROGRAM, HCOUPLING, PTIMEC, 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_ideal_flux(DGL, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, PZENITH, 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_tsz0_n(DTCO, UG, U, USS, IM, DTZ, DTGD, DTGR, TGRO, DST, 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_svat_n(DTCO, UG, U, USS, IM, DTGD, DTGR, TGRO, DST, 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)