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, &
55 USE modi_forcing_vert_shift
57 USE modi_coupling_seawat_sbl_n
59 USE yomhook
,ONLY : lhook, dr_hook
60 USE parkind1
,ONLY : jprb
69 TYPE(dst_t),
INTENT(INOUT) :: dst
70 TYPE(slt_t),
INTENT(INOUT) :: slt
72 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
73 CHARACTER(LEN=1),
INTENT(IN) :: hcoupling
76 REAL,
INTENT(IN) :: ptimec
77 INTEGER,
INTENT(IN) :: kyear
78 INTEGER,
INTENT(IN) :: kmonth
79 INTEGER,
INTENT(IN) :: kday
80 REAL,
INTENT(IN) :: ptime
81 INTEGER,
INTENT(IN) :: ki
82 INTEGER,
INTENT(IN) :: ksv
83 INTEGER,
INTENT(IN) :: ksw
84 REAL,
DIMENSION(KI),
INTENT(IN) :: ptsun
85 REAL,
INTENT(IN) :: ptstep
86 REAL,
DIMENSION(KI),
INTENT(IN) :: pzref
87 REAL,
DIMENSION(KI),
INTENT(IN) :: puref
89 REAL,
DIMENSION(KI),
INTENT(IN) :: pta
90 REAL,
DIMENSION(KI),
INTENT(IN) :: pqa
91 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
92 REAL,
DIMENSION(KI,KSV),
INTENT(IN) :: psv
95 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN):: hsv
96 REAL,
DIMENSION(KI),
INTENT(IN) :: pu
97 REAL,
DIMENSION(KI),
INTENT(IN) :: pv
98 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: pdir_sw
100 REAL,
DIMENSION(KI,KSW),
INTENT(IN) :: psca_sw
102 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
103 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
104 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith2
105 REAL,
DIMENSION(KI),
INTENT(IN) :: pazim
106 REAL,
DIMENSION(KI),
INTENT(IN) :: plw
108 REAL,
DIMENSION(KI),
INTENT(IN) :: pps
109 REAL,
DIMENSION(KI),
INTENT(IN) :: ppa
110 REAL,
DIMENSION(KI),
INTENT(IN) :: pzs
111 REAL,
DIMENSION(KI),
INTENT(IN) :: pco2
112 REAL,
DIMENSION(KI),
INTENT(IN) :: psnow
113 REAL,
DIMENSION(KI),
INTENT(IN) :: prain
116 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfth
117 REAL,
DIMENSION(KI),
INTENT(OUT) :: psftq
118 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfu
119 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfv
120 REAL,
DIMENSION(KI),
INTENT(OUT) :: psfco2
121 REAL,
DIMENSION(KI,KSV),
INTENT(OUT):: psfts
123 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptrad
124 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: pdir_alb
125 REAL,
DIMENSION(KI,KSW),
INTENT(OUT):: psca_alb
126 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
128 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
129 REAL,
DIMENSION(KI),
INTENT(OUT) :: pz0
130 REAL,
DIMENSION(KI),
INTENT(OUT) :: pz0h
131 REAL,
DIMENSION(KI),
INTENT(OUT) :: pqsurf
133 REAL,
DIMENSION(KI),
INTENT(IN) :: ppew_a_coef
134 REAL,
DIMENSION(KI),
INTENT(IN) :: ppew_b_coef
135 REAL,
DIMENSION(KI),
INTENT(IN) :: ppet_a_coef
136 REAL,
DIMENSION(KI),
INTENT(IN) :: ppeq_a_coef
137 REAL,
DIMENSION(KI),
INTENT(IN) :: ppet_b_coef
138 REAL,
DIMENSION(KI),
INTENT(IN) :: ppeq_b_coef
139 CHARACTER(LEN=2),
INTENT(IN) :: htest
143 REAL,
DIMENSION(KI) :: zpeq_b_coef
144 REAL,
DIMENSION(KI) :: zpet_b_coef
146 REAL,
DIMENSION(KI) :: zta
147 REAL,
DIMENSION(KI) :: zpa
148 REAL,
DIMENSION(KI) :: zps
149 REAL,
DIMENSION(KI) :: zqa
150 REAL,
DIMENSION(KI) :: zrhoa
151 REAL,
DIMENSION(KI) :: zlw
152 REAL,
DIMENSION(KI) :: zrain
153 REAL,
DIMENSION(KI) :: zsnow
155 REAL(KIND=JPRB) :: zhook_handle
160 IF (lhook) CALL dr_hook(
'COUPLING_WATFLUX_OROG_N',0,zhook_handle)
162 zpeq_b_coef(:) = ppeq_b_coef(:)
163 zpet_b_coef(:) = ppet_b_coef(:)
177 zta,zqa,zpa,zrhoa,zlw,zrain,zsnow )
179 zps(:) = zpa(:) + (pps(:) - ppa(:))
181 IF (hcoupling==
'I')
THEN
182 zpeq_b_coef = ppeq_b_coef + zqa - pqa
183 zpet_b_coef = ppet_b_coef + zta/(zpa/xp00)**(xrd/xcpd) - pta/(ppa/xp00)**(xrd/xcpd)
200 hprogram, hcoupling, ptimec, ptstep, kyear, kmonth, kday, ptime,&
201 ki, ksv, ksw, ptsun, pzenith, pzenith2, pazim, pzref, puref, pu, pv, &
202 zqa, zta, zrhoa, psv, pco2, hsv, zrain, zsnow, zlw, pdir_sw, psca_sw, &
203 psw_bands, zps, zpa, psftq, psfth, psfts, psfco2, psfu, psfv, &
204 ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0, pz0h, pqsurf, &
205 ppew_a_coef, ppew_b_coef, ppet_a_coef, ppeq_a_coef, zpet_b_coef, &
208 IF (lhook) CALL dr_hook(
'COUPLING_WATFLUX_OROG_N',1,zhook_handle)
subroutine coupling_watflux_sbl_n(WM, DST, SLT, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PAZIM, PZREF, PUREF, 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_watflux_orog_n(WM, 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 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)