15 SUBROUTINE init_forc( PFORC_U, PDFORC_UDU, PFORC_E, PDFORC_EDE, &
16 PFORC_T, PDFORC_TDT, PFORC_Q, PDFORC_QDQ )
20 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PFORC_U
21 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PDFORC_UDU
22 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PFORC_E
23 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PDFORC_EDE
24 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PFORC_T
25 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PDFORC_TDT
26 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PFORC_Q
27 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PDFORC_QDQ
29 REAL(KIND=JPRB) :: ZHOOK_HANDLE
31 IF (
lhook)
CALL dr_hook(
'MODE_COUPLING_CANOPY:INIT_FORC',0,zhook_handle)
45 IF (
lhook)
CALL dr_hook(
'MODE_COUPLING_CANOPY:INIT_FORC',1,zhook_handle)
52 PRHOA, PALFAU, PBETAU, PALFATH, &
53 PBETATH, PALFAQ, PBETAQ, &
54 PPPA, PTTA, PQQA, PUU, PVV, &
55 PUUREF, PZZREF, PEXNA, &
56 PPEW_AA_COEF, PPEW_BB_COEF, &
57 PPET_AA_COEF, PPET_BB_COEF, &
58 PPEQ_AA_COEF, PPEQ_BB_COEF )
70 REAL,
DIMENSION(:),
INTENT(IN) :: PPA
71 REAL,
DIMENSION(:),
INTENT(IN) :: PU
72 REAL,
DIMENSION(:),
INTENT(IN) :: PV
73 REAL,
DIMENSION(:),
INTENT(IN) :: PRHOA
74 REAL,
DIMENSION(:),
INTENT(IN) :: PALFAU
75 REAL,
DIMENSION(:),
INTENT(IN) :: PBETAU
76 REAL,
DIMENSION(:),
INTENT(IN) :: PALFATH
77 REAL,
DIMENSION(:),
INTENT(IN) :: PBETATH
78 REAL,
DIMENSION(:),
INTENT(IN) :: PALFAQ
79 REAL,
DIMENSION(:),
INTENT(IN) :: PBETAQ
80 REAL,
DIMENSION(:),
INTENT(OUT) :: PPPA
81 REAL,
DIMENSION(:),
INTENT(OUT) :: PTTA
82 REAL,
DIMENSION(:),
INTENT(OUT) :: PQQA
83 REAL,
DIMENSION(:),
INTENT(OUT) :: PUU
84 REAL,
DIMENSION(:),
INTENT(OUT) :: PVV
85 REAL,
DIMENSION(:),
INTENT(OUT) :: PUUREF
86 REAL,
DIMENSION(:),
INTENT(OUT) :: PZZREF
87 REAL,
DIMENSION(:),
INTENT(OUT) :: PEXNA
88 REAL,
DIMENSION(:),
INTENT(OUT) :: PPEW_AA_COEF
89 REAL,
DIMENSION(:),
INTENT(OUT) :: PPEW_BB_COEF
90 REAL,
DIMENSION(:),
INTENT(OUT) :: PPET_AA_COEF
91 REAL,
DIMENSION(:),
INTENT(OUT) :: PPET_BB_COEF
92 REAL,
DIMENSION(:),
INTENT(OUT) :: PPEQ_AA_COEF
93 REAL,
DIMENSION(:),
INTENT(OUT) :: PPEQ_BB_COEF
95 REAL(KIND=JPRB) :: ZHOOK_HANDLE
97 IF (
lhook)
CALL dr_hook(
'MODE_COUPLING_CANOPY:INIT_COUPLING_CANOPY',0,zhook_handle)
102 puu = pu / max(sqrt(pu**2+pv**2),
xwindmin) * sb%XU(:,1)
103 pvv = pv / max(sqrt(pu**2+pv**2),
xwindmin) * sb%XU(:,1)
108 WHERE (sb%XP(:,1)==
xundef)
118 ppew_aa_coef = - palfau / prhoa
119 ppew_bb_coef = pbetau
120 ppet_aa_coef = - palfath / prhoa
121 ppet_bb_coef = pbetath
122 ppeq_aa_coef = - palfaq / prhoa
123 ppeq_bb_coef = pbetaq
125 IF (
lhook)
CALL dr_hook(
'MODE_COUPLING_CANOPY:INIT_COUPLING_CANOPY',1,zhook_handle)
132 PPS, PPA, PTA, PQA, PU, PV, &
134 PPEW_A_COEF, PPEW_B_COEF, &
135 PPET_A_COEF, PPET_B_COEF, &
136 PPEQ_A_COEF, PPEQ_B_COEF, &
137 PPPA, PTTA, PQQA, PUU, PVV, &
139 PPEW_AA_COEF, PPEW_BB_COEF, &
140 PPET_AA_COEF, PPET_BB_COEF, &
141 PPEQ_AA_COEF, PPEQ_BB_COEF )
147 CHARACTER(LEN=1),
INTENT(IN) :: HCOUPLING
148 REAL,
DIMENSION(:),
INTENT(IN) :: PPS
149 REAL,
DIMENSION(:),
INTENT(IN) :: PPA
150 REAL,
DIMENSION(:),
INTENT(IN) :: PTA
151 REAL,
DIMENSION(:),
INTENT(IN) :: PQA
152 REAL,
DIMENSION(:),
INTENT(IN) :: PU
153 REAL,
DIMENSION(:),
INTENT(IN) :: PV
154 REAL,
DIMENSION(:),
INTENT(IN) :: PUREF
155 REAL,
DIMENSION(:),
INTENT(IN) :: PZREF
156 REAL,
DIMENSION(:),
INTENT(IN) :: PPEW_A_COEF
157 REAL,
DIMENSION(:),
INTENT(IN) :: PPEW_B_COEF
158 REAL,
DIMENSION(:),
INTENT(IN) :: PPET_A_COEF
159 REAL,
DIMENSION(:),
INTENT(IN) :: PPET_B_COEF
160 REAL,
DIMENSION(:),
INTENT(IN) :: PPEQ_A_COEF
161 REAL,
DIMENSION(:),
INTENT(IN) :: PPEQ_B_COEF
162 REAL,
DIMENSION(:),
INTENT(OUT) :: PPPA
163 REAL,
DIMENSION(:),
INTENT(OUT) :: PTTA
164 REAL,
DIMENSION(:),
INTENT(OUT) :: PQQA
165 REAL,
DIMENSION(:),
INTENT(OUT) :: PUU
166 REAL,
DIMENSION(:),
INTENT(OUT) :: PVV
167 REAL,
DIMENSION(:),
INTENT(OUT) :: PUUREF
168 REAL,
DIMENSION(:),
INTENT(OUT) :: PZZREF
169 REAL,
DIMENSION(:),
INTENT(OUT) :: PPEW_AA_COEF
170 REAL,
DIMENSION(:),
INTENT(OUT) :: PPEW_BB_COEF
171 REAL,
DIMENSION(:),
INTENT(OUT) :: PPET_AA_COEF
172 REAL,
DIMENSION(:),
INTENT(OUT) :: PPET_BB_COEF
173 REAL,
DIMENSION(:),
INTENT(OUT) :: PPEQ_AA_COEF
174 REAL,
DIMENSION(:),
INTENT(OUT) :: PPEQ_BB_COEF
176 REAL(KIND=JPRB) :: ZHOOK_HANDLE
178 IF (
lhook)
CALL dr_hook(
'MODE_COUPLING_CANOPY:INIT_COUPLING',0,zhook_handle)
188 ppew_aa_coef = ppew_a_coef
189 ppew_bb_coef = ppew_b_coef
191 IF (hcoupling==
'I')
THEN 192 ppet_aa_coef = ppet_a_coef
193 ppeq_aa_coef = ppeq_a_coef
194 ppet_bb_coef = ppet_b_coef
195 ppeq_bb_coef = ppeq_b_coef
203 IF (
lhook)
CALL dr_hook(
'MODE_COUPLING_CANOPY:INIT_COUPLING',1,zhook_handle)
209 SUBROUTINE init_2m_10m( SB, D, PU, PV, PWIND, PRHOA )
218 USE modi_interpol_sbl
223 TYPE(
diag_t),
INTENT(INOUT) :: D
225 REAL,
DIMENSION(:),
INTENT(IN) :: PU
226 REAL,
DIMENSION(:),
INTENT(IN) :: PV
227 REAL,
DIMENSION(:),
INTENT(IN) :: PWIND
228 REAL,
DIMENSION(:),
INTENT(IN) :: PRHOA
230 REAL,
DIMENSION(SIZE(SB%XT,1)) :: ZU10
232 REAL(KIND=JPRB) :: ZHOOK_HANDLE
234 IF (
lhook)
CALL dr_hook(
'MODE_COUPLING_CANOPY:INIT_2M_10M',0,zhook_handle)
236 d%XT2M(:) = sb%XT(:,2)
237 d%XT2M_MIN(:) = min(d%XT2M(:),d%XT2M_MIN(:))
238 d%XT2M_MAX(:) = max(d%XT2M(:),d%XT2M_MAX(:))
239 d%XQ2M(:) = sb%XQ(:,2) / prhoa(:)
240 d%XHU2M(:)= min( d%XQ2M(:) /
qsat(d%XT2M(:),sb%XP(:,2)) , 1.)
241 d%XHU2M_MIN(:) = min(d%XHU2M(:),d%XHU2M_MIN(:))
242 d%XHU2M_MAX(:) = max(d%XHU2M(:),d%XHU2M_MAX(:))
244 DO jj=1,
SIZE(sb%XT(:,2))
245 IF (zu10(jj)/=
xundef)
THEN 246 IF (pwind(jj)>0.)
THEN 247 d%XZON10M(jj) = zu10(jj) * pu(jj)/pwind(jj)
248 d%XMER10M(jj) = zu10(jj) * pv(jj)/pwind(jj)
253 d%XWIND10M(jj) = sqrt(d%XZON10M(jj)**2+d%XMER10M(jj)**2)
254 d%XWIND10M_MAX(jj) = max(d%XWIND10M(jj),d%XWIND10M_MAX(jj))
259 d%XWIND10M_MAX(jj) =
xundef 263 IF (
lhook)
CALL dr_hook(
'MODE_COUPLING_CANOPY:INIT_2M_10M',1,zhook_handle)
subroutine init_coupling(HCOUPLING, PPS, PPA, PTA, PQA, PU, PV, PUREF, PZREF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPET_B_COEF, PPEQ_A_COEF, PPEQ_B_COEF, PPPA, PTTA, PQQA, PUU, PVV, PUUREF, PZZREF, PPEW_AA_COEF, PPEW_BB_COEF, PPET_AA_COEF, PPET_BB_COEF, PPEQ_AA_COEF, PPEQ_BB_COEF)
subroutine init_2m_10m(SB, D, PU, PV, PWIND, PRHOA)
subroutine interpol_sbl(PZ, PIN, PH, POUT)
subroutine init_forc(PFORC_U, PDFORC_UDU, PFORC_E, PDFORC_EDE, PFORC_T, PDFORC_TDT, PFORC_Q, PDFORC_QDQ)
subroutine init_coupling_canopy(SB, PPA, PU, PV, PRHOA, PALFAU, PBETAU, PALFATH, PBETATH, PALFAQ, PBETAQ, PPPA, PTTA, PQQA, PUU, PVV, PUUREF, PZZREF, PEXNA, PPEW_AA_COEF, PPEW_BB_COEF, PPET_AA_COEF, PPET_BB_COEF, PPEQ_AA_COEF, PPEQ_BB_COEF)