6 SUBROUTINE coupling_town_n (DTCO, U, DTI, IG, I, DGL, DST, SLT, TM, GDM, GRM, &
7 hprogram, hcoupling, ptimec, &
8 ptstep, kyear, kmonth, kday, ptime, ki, ksv, ksw, ptsun, pzenith, pazim, &
9 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, &
53 USE modd_csts, ONLY : xtt, xcpd, xrd, xp00
57 USE yomhook
,ONLY : lhook, dr_hook
58 USE parkind1
,ONLY : jprb
60 USE modi_coupling_ideal_flux
62 USE modi_coupling_teb_orography_n
72 TYPE(isba_grid_t
),
INTENT(INOUT) :: ig
73 TYPE(isba_t
),
INTENT(INOUT) :: i
75 TYPE(dst_t),
INTENT(INOUT) :: dst
76 TYPE(slt_t),
INTENT(INOUT) :: slt
81 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
82 CHARACTER(LEN=1),
INTENT(IN) :: hcoupling
85 REAL,
INTENT(IN) :: ptimec
86 INTEGER,
INTENT(IN) :: kyear
87 INTEGER,
INTENT(IN) :: kmonth
88 INTEGER,
INTENT(IN) :: kday
89 REAL,
INTENT(IN) :: ptime
90 INTEGER,
INTENT(IN) :: ki
91 INTEGER,
INTENT(IN) :: ksv
92 INTEGER,
INTENT(IN) :: ksw
93 REAL,
DIMENSION(KI),
INTENT(IN) :: ptsun
94 REAL,
INTENT(IN) :: ptstep
95 REAL,
DIMENSION(KI),
INTENT(IN) :: pzref
96 REAL,
DIMENSION(KI),
INTENT(IN) :: puref
98 REAL,
DIMENSION(KI),
INTENT(IN) :: pta
99 REAL,
DIMENSION(KI),
INTENT(IN) :: pqa
100 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
101 REAL,
DIMENSION(KI,KSV),
INTENT(IN) :: psv
104 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN):: hsv
105 REAL,
DIMENSION(KI),
INTENT(IN) :: pu
106 REAL,
DIMENSION(KI),
INTENT(IN) :: pv
107 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: pdir_sw
109 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: psca_sw
111 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
112 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
113 REAL,
DIMENSION(KI),
INTENT(IN) :: pazim
114 REAL,
DIMENSION(KI),
INTENT(IN) :: plw
116 REAL,
DIMENSION(KI),
INTENT(IN) :: pps
117 REAL,
DIMENSION(KI),
INTENT(IN) :: ppa
118 REAL,
DIMENSION(KI),
INTENT(IN) :: pzs
119 REAL,
DIMENSION(KI),
INTENT(IN) :: pco2
120 REAL,
DIMENSION(KI),
INTENT(IN) :: psnow
121 REAL,
DIMENSION(KI),
INTENT(IN) :: prain
124 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfth
125 REAL,
DIMENSION(KI),
INTENT(OUT) :: psftq
126 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfu
127 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfv
128 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfco2
129 REAL,
DIMENSION(KI,KSV),
INTENT(OUT):: psfts
131 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptrad
132 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: pdir_alb
133 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: psca_alb
134 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
136 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
137 REAL,
DIMENSION(KI),
INTENT(OUT) :: pz0
138 REAL,
DIMENSION(KI),
INTENT(OUT) :: pz0h
139 REAL,
DIMENSION(KI),
INTENT(OUT) :: pqsurf
141 REAL,
DIMENSION(KI),
INTENT(IN) :: ppew_a_coef
142 REAL,
DIMENSION(KI),
INTENT(IN) :: ppew_b_coef
143 REAL,
DIMENSION(KI),
INTENT(IN) :: ppet_a_coef
144 REAL,
DIMENSION(KI),
INTENT(IN) :: ppeq_a_coef
145 REAL,
DIMENSION(KI),
INTENT(IN) :: ppet_b_coef
146 REAL,
DIMENSION(KI),
INTENT(IN) :: ppeq_b_coef
147 CHARACTER(LEN=2),
INTENT(IN) :: htest
151 REAL(KIND=JPRB) :: zhook_handle
158 IF (lhook) CALL dr_hook(
'COUPLING_TOWN_N',0,zhook_handle)
160 IF (u%CTOWN==
'TEB ')
THEN
162 hprogram, hcoupling, &
163 ptstep, kyear, kmonth, kday, ptime, &
165 ptsun, pzenith, pazim, &
166 pzref, puref, pzs, pu, pv, pqa, pta, prhoa, psv, pco2, hsv, &
167 prain, psnow, plw, pdir_sw, psca_sw, psw_bands, pps, ppa, &
168 psftq, psfth, psfts, psfco2, psfu, psfv, &
169 ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0, pz0h, pqsurf, &
170 ppew_a_coef, ppew_b_coef, &
171 ppet_a_coef, ppeq_a_coef, ppet_b_coef, ppeq_b_coef, &
173 ELSE IF (u%CTOWN==
'FLUX ')
THEN
175 hprogram, hcoupling, ptimec, &
176 ptstep, kyear, kmonth, kday, ptime, &
178 ptsun, pzenith, pazim, &
179 pzref, puref, pzs, pu, pv, pqa, pta, prhoa, psv, pco2, hsv, &
180 prain, psnow, plw, pdir_sw, psca_sw, psw_bands, pps, ppa, &
181 psftq, psfth, psfts, psfco2, psfu, psfv, &
182 ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0, pz0h, pqsurf, &
183 ppew_a_coef, ppew_b_coef, &
184 ppet_a_coef, ppeq_a_coef, ppet_b_coef, ppeq_b_coef, &
186 ELSE IF (u%CTOWN==
'NONE ')
THEN
205 IF (lhook) CALL dr_hook(
'COUPLING_TOWN_N',1,zhook_handle)
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_teb_orography_n(DTCO, DTI, IG, I, DST, SLT, TM, GDM, GRM, HPROGRAM, HCOUPLING, 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_town_n(DTCO, U, DTI, IG, I, DGL, DST, SLT, TM, GDM, GRM, 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)