SURFEX v8.1
General documentation of Surfex
coupling_watfluxn.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! ###############################################################################
6 SUBROUTINE coupling_watflux_n (CHW, DGO, D, DC, W, DST, SLT, &
7  HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, &
8  KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PAZIM, PZREF, PUREF, &
9  PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, &
10  PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS, &
11  PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, &
12  PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, &
13  PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST )
14 ! ###############################################################################
15 !
16 !!**** *COUPLING_WATFLUX_n * - Driver for WATER_FLUX scheme for lakes
17 !!
18 !! PURPOSE
19 !! -------
20 !
21 !!** METHOD
22 !! ------
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !!
28 !! AUTHOR
29 !! ------
30 !! V. Masson
31 !!
32 !! MODIFICATIONS
33 !! -------------
34 !! Original 01/2004
35 !! B. Decharme 03/2009 TS_WATER could change during a run => ALB and EMIS
36 !! V. Masson 05/2009 Implicitation of momentum fluxes
37 !! B. Decharme 09/2009 Radiative properties at time t+1 in order to close
38 ! the energy budget between surfex and the atmosphere
39 !! B. Decharme 01/2010 Add XTT
40 !! B. Decharme 09/2012 New wind implicitation
41 !! P. LeMoigne 04/2013 Wind implicitation displaced
42 !! B. Decharme 04/2013 new coupling variables
43 !!----------------------------------------------------------------------------
44 !
45 !
48 USE modd_watflux_n, ONLY : watflux_t
49 !
50 USE modd_dst_n, ONLY : dst_t
51 USE modd_slt_n, ONLY : slt_t
52 !
54 !
55 USE modd_csts, ONLY : xrd, xcpd, xp00, xtt, xday, xtts
56 USE modd_surf_par, ONLY : xundef
57 USE modd_sfx_oasis, ONLY : lcpl_seaice
59 !
60 !
61 USE modi_water_flux
62 USE modi_add_forecast_to_date_surf
63 USE modi_diag_inline_watflux_n
64 USE modi_ch_aer_dep
65 USE modi_ch_dep_water
66 USE modi_dslt_dep
67 USE modi_update_rad_water
68 USE modi_interpol_ts_water_mth
69 !
71 USE modd_dst_surf
72 USE modd_slt_surf
73 !
74 USE yomhook ,ONLY : lhook, dr_hook
75 USE parkind1 ,ONLY : jprb
76 !
77 USE modi_abor1_sfx
78 !
79 USE modi_coupling_iceflux_n
80 !
81 IMPLICIT NONE
82 !
83 !* 0.1 declarations of arguments
84 !
85 TYPE(ch_watflux_t), INTENT(INOUT) :: CHW
86 TYPE(diag_options_t), INTENT(INOUT) :: DGO
87 TYPE(diag_t), INTENT(INOUT) :: D
88 TYPE(diag_t), INTENT(INOUT) :: DC
89 TYPE(watflux_t), INTENT(INOUT) :: W
90 !
91 TYPE(dst_t), INTENT(INOUT) :: DST
92 TYPE(slt_t), INTENT(INOUT) :: SLT
93 !
94  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes
95  CHARACTER(LEN=1), INTENT(IN) :: HCOUPLING ! type of coupling
96  ! 'E' : explicit
97  ! 'I' : implicit
98 REAL, INTENT(IN) :: PTIMEC ! cumulated time since beginning of simulation
99 INTEGER, INTENT(IN) :: KYEAR ! current year (UTC)
100 INTEGER, INTENT(IN) :: KMONTH ! current month (UTC)
101 INTEGER, INTENT(IN) :: KDAY ! current day (UTC)
102 REAL, INTENT(IN) :: PTIME ! current time since midnight (UTC, s)
103 INTEGER, INTENT(IN) :: KI ! number of points
104 INTEGER, INTENT(IN) :: KSV ! number of scalars
105 INTEGER, INTENT(IN) :: KSW ! number of short-wave spectral bands
106 REAL, DIMENSION(KI), INTENT(IN) :: PTSUN ! solar time (s from midnight)
107 REAL, INTENT(IN) :: PTSTEP ! atmospheric time-step (s)
108 REAL, DIMENSION(KI), INTENT(IN) :: PZREF ! height of T,q forcing (m)
109 REAL, DIMENSION(KI), INTENT(IN) :: PUREF ! height of wind forcing (m)
110 !
111 REAL, DIMENSION(KI), INTENT(IN) :: PTA ! air temperature forcing (K)
112 REAL, DIMENSION(KI), INTENT(IN) :: PQA ! air humidity forcing (kg/m3)
113 REAL, DIMENSION(KI), INTENT(IN) :: PRHOA ! air density (kg/m3)
114 REAL, DIMENSION(KI,KSV),INTENT(IN) :: PSV ! scalar variables
115 ! ! chemistry: first char. in HSV: '#' (molecule/m3)
116 ! !
117  CHARACTER(LEN=6), DIMENSION(KSV),INTENT(IN):: HSV ! name of all scalar variables
118 REAL, DIMENSION(KI), INTENT(IN) :: PU ! zonal wind (m/s)
119 REAL, DIMENSION(KI), INTENT(IN) :: PV ! meridian wind (m/s)
120 REAL, DIMENSION(KI,KSW),INTENT(IN) :: PDIR_SW ! direct solar radiation (on horizontal surf.)
121 ! ! (W/m2)
122 REAL, DIMENSION(KI,KSW),INTENT(IN) :: PSCA_SW ! diffuse solar radiation (on horizontal surf.)
123 ! ! (W/m2)
124 REAL, DIMENSION(KSW),INTENT(IN) :: PSW_BANDS ! mean wavelength of each shortwave band (m)
125 REAL, DIMENSION(KI), INTENT(IN) :: PZENITH ! zenithal angle at t (radian from the vertical)
126 REAL, DIMENSION(KI), INTENT(IN) :: PZENITH2 ! zenithal angle at t+1 (radian from the vertical)
127 REAL, DIMENSION(KI), INTENT(IN) :: PAZIM ! azimuthal angle (radian from North, clockwise)
128 REAL, DIMENSION(KI), INTENT(IN) :: PLW ! longwave radiation (on horizontal surf.)
129 ! ! (W/m2)
130 REAL, DIMENSION(KI), INTENT(IN) :: PPS ! pressure at atmospheric model surface (Pa)
131 REAL, DIMENSION(KI), INTENT(IN) :: PPA ! pressure at forcing level (Pa)
132 REAL, DIMENSION(KI), INTENT(IN) :: PCO2 ! CO2 concentration in the air (kg/m3)
133 REAL, DIMENSION(KI), INTENT(IN) :: PSNOW ! snow precipitation (kg/m2/s)
134 REAL, DIMENSION(KI), INTENT(IN) :: PRAIN ! liquid precipitation (kg/m2/s)
135 !
136 !
137 REAL, DIMENSION(KI), INTENT(OUT) :: PSFTH ! flux of heat (W/m2)
138 REAL, DIMENSION(KI), INTENT(OUT) :: PSFTQ ! flux of water vapor (kg/m2/s)
139 REAL, DIMENSION(KI), INTENT(OUT) :: PSFU ! zonal momentum flux (Pa)
140 REAL, DIMENSION(KI), INTENT(OUT) :: PSFV ! meridian momentum flux (Pa)
141 REAL, DIMENSION(KI), INTENT(OUT) :: PSFCO2 ! flux of CO2 (m/s*kg_CO2/kg_air)
142 REAL, DIMENSION(KI,KSV),INTENT(OUT):: PSFTS ! flux of scalar var. (kg/m2/s)
143 !
144 REAL, DIMENSION(KI), INTENT(OUT) :: PTRAD ! radiative temperature (K)
145 REAL, DIMENSION(KI,KSW),INTENT(OUT):: PDIR_ALB! direct albedo for each spectral band (-)
146 REAL, DIMENSION(KI,KSW),INTENT(OUT):: PSCA_ALB! diffuse albedo for each spectral band (-)
147 REAL, DIMENSION(KI), INTENT(OUT) :: PEMIS ! emissivity (-)
148 !
149 REAL, DIMENSION(KI), INTENT(OUT) :: PTSURF ! surface effective temperature (K)
150 REAL, DIMENSION(KI), INTENT(OUT) :: PZ0 ! roughness length for momentum (m)
151 REAL, DIMENSION(KI), INTENT(OUT) :: PZ0H ! roughness length for heat (m)
152 REAL, DIMENSION(KI), INTENT(OUT) :: PQSURF ! specific humidity at surface (kg/kg)
153 !
154 REAL, DIMENSION(KI), INTENT(IN) :: PPEW_A_COEF! implicit coefficients (m2s/kg)
155 REAL, DIMENSION(KI), INTENT(IN) :: PPEW_B_COEF! needed if HCOUPLING='I' (m/s)
156 REAL, DIMENSION(KI), INTENT(IN) :: PPET_A_COEF
157 REAL, DIMENSION(KI), INTENT(IN) :: PPEQ_A_COEF
158 REAL, DIMENSION(KI), INTENT(IN) :: PPET_B_COEF
159 REAL, DIMENSION(KI), INTENT(IN) :: PPEQ_B_COEF
160  CHARACTER(LEN=2), INTENT(IN) :: HTEST ! must be equal to 'OK'
161 !
162 !* 0.2 declarations of local variables
163 !
164 REAL, DIMENSION(KI) :: ZEXNA ! Exner function at forcing level
165 REAL, DIMENSION(KI) :: ZEXNS ! Exner function at surface level
166 REAL, DIMENSION(KI) :: ZWIND ! Wind
167 REAL, DIMENSION(KI) :: ZCD ! Drag coefficient
168 REAL, DIMENSION(KI) :: ZCDN ! Neutral Drag coefficient
169 REAL, DIMENSION(KI) :: ZCH ! Heat transfer coefficient
170 REAL, DIMENSION(KI) :: ZRI ! Richardson number
171 REAL, DIMENSION(KI) :: ZHU ! Near surface relative humidity
172 REAL, DIMENSION(KI) :: ZRESA_WATER! aerodynamical resistance
173 REAL, DIMENSION(KI) :: ZUSTAR ! friction velocity (m/s)
174 REAL, DIMENSION(KI) :: ZUSTAR2 ! square of friction velocity (m2/s2)
175 REAL, DIMENSION(KI) :: ZZ0H ! heat roughness length over water
176 REAL, DIMENSION(KI) :: ZQSAT ! humidity at saturation
177 REAL, DIMENSION(KI) :: ZQA ! specific humidity (kg/kg)
178 REAL, DIMENSION(KI) :: ZEMIS ! Emissivity at time t
179 REAL, DIMENSION(KI) :: ZTRAD ! Radiative temperature at time t
180 REAL, DIMENSION(KI) :: ZSFTH_ICE ! Sea ice flux of heat
181 REAL, DIMENSION(KI) :: ZSFTQ_ICE ! Sea ice flux of ice sublimation
182 REAL, DIMENSION(KI) :: ZWORK ! Work array
183 !
184 REAL, DIMENSION(KI,KSW) :: ZDIR_ALB ! Direct albedo at time t
185 REAL, DIMENSION(KI,KSW) :: ZSCA_ALB ! Diffuse albedo at time t
186 !
187 REAL :: ZCONVERTFACM0_SLT, ZCONVERTFACM0_DST
188 REAL :: ZCONVERTFACM3_SLT, ZCONVERTFACM3_DST
189 REAL :: ZCONVERTFACM6_SLT, ZCONVERTFACM6_DST
190 !
191 INTEGER :: ISWB ! number of shortwave spectral bands
192 INTEGER :: JSWB ! loop counter on shortwave spectral bands
193 !
194 INTEGER :: IBEG, IEND
195 !
196 LOGICAL :: GHANDLE_SIC = .false. ! no sea-ice model
197 !
198 REAL(KIND=JPRB) :: ZHOOK_HANDLE
199 !
200 !-------------------------------------------------------------------------------------
201 ! Preliminaries:
202 !-------------------------------------------------------------------------------------
203 IF (lhook) CALL dr_hook('COUPLING_WATFLUX_N',0,zhook_handle)
204 IF (htest/='OK') THEN
205  CALL abor1_sfx('COUPLING_WATFLUXN: FATAL ERROR DURING ARGUMENT TRANSFER')
206 END IF
207 !-------------------------------------------------------------------------------------
208 !
209 zexna(:) = xundef
210 zexns(:) = xundef
211 zwind(:) = xundef
212 zcd(:) = xundef
213 zcdn(:) = xundef
214 zch(:) = xundef
215 zri(:) = xundef
216 zhu(:) = xundef
217 zresa_water(:) = xundef
218 zustar(:) = xundef
219 zustar2(:) = xundef
220 zz0h(:) = xundef
221 zqsat(:) = xundef
222 zemis(:) = xundef
223 ztrad(:) = xundef
224 zwork(:) = xundef
225 zdir_alb(:,:) = xundef
226 zsca_alb(:,:) = xundef
227 !
228 IF(lcpl_seaice)THEN
229  zsftq_ice(:) = xundef
230  zsfth_ice(:) = xundef
231 ENDIF
232 !
233 !-------------------------------------------------------------------------------------
234 !
235 zexns(:) = (pps(:)/xp00)**(xrd/xcpd)
236 zexna(:) = (ppa(:)/xp00)**(xrd/xcpd)
237 !
238 zwind(:) = sqrt(pu(:)**2+pv(:)**2)
239 !
240 psfts(:,:) = 0.
241 !
242 zhu = 1.
243 !
244 zqa(:) = pqa(:) / prhoa(:)
245 !
246 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
247 ! Time evolution
248 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
249 !
250 w%TTIME%TIME = w%TTIME%TIME + ptstep
251  CALL add_forecast_to_date_surf(w%TTIME%TDATE%YEAR,w%TTIME%TDATE%MONTH,w%TTIME%TDATE%DAY,w%TTIME%TIME)
252 !
253 !--------------------------------------------------------------------------------------
254 ! Fluxes over water according to Charnock formulae
255 !--------------------------------------------------------------------------------------
256 !
257 !
258  CALL water_flux(w%XZ0, pta, zexna, prhoa, w%XTS, zexns, zqa, prain, &
259  psnow, xtt, zwind, pzref, puref, pps, ghandle_sic, &
260  zqsat, psfth, psftq, zustar, zcd, zcdn, zch, zri, &
261  zresa_water, zz0h )
262 !
263 !-------------------------------------------------------------------------------------
264 !radiative properties at t
265 !-------------------------------------------------------------------------------------
266 !
267 iswb = SIZE(psw_bands)
268 !
269 DO jswb=1,iswb
270  zdir_alb(:,jswb) = w%XDIR_ALB(:)
271  zsca_alb(:,jswb) = w%XSCA_ALB(:)
272 END DO
273 !
274 zemis = w%XEMIS
275 ztrad = w%XTS
276 !
277 !-------------------------------------------------------------------------------------
278 !Specific fields for GELATO when using earth system model
279 !(intermediate step before explicit sea and ice fluxes comutation)
280 !-------------------------------------------------------------------------------------
281 !
282 IF(lcpl_seaice)THEN
283  CALL coupling_iceflux_n(ki, pta, zexna, prhoa, w%XTICE, zexns, &
284  zqa, prain, psnow, zwind, pzref, puref, &
285  pps, w%XTS, xtt, zsfth_ice, zsftq_ice )
286 ENDIF
287 !
288 !-------------------------------------------------------------------------------------
289 ! Scalar fluxes:
290 !-------------------------------------------------------------------------------------
291 !
292 !
293 IF (chw%SVW%NBEQ>0) THEN
294  !
295  IF (chw%CCH_DRY_DEP == "WES89") THEN
296  !
297  ibeg = chw%SVW%NSV_CHSBEG
298  iend = chw%SVW%NSV_CHSEND
299  !
300  CALL ch_dep_water (zresa_water, zustar, pta, ztrad, psv(:,ibeg:iend), &
301  chw%SVW%CSV(ibeg:iend), chw%XDEP(:,1:chw%SVW%NBEQ) )
302 
303  psfts(:,ibeg:iend) = - psv(:,ibeg:iend) * chw%XDEP(:,1:chw%SVW%NBEQ)
304  IF (chw%SVW%NAEREQ > 0 ) THEN
305  ibeg = chw%SVW%NSV_AERBEG
306  iend = chw%SVW%NSV_AEREND
307  !
308  CALL ch_aer_dep(psv(:,ibeg:iend),psfts(:,ibeg:iend),zustar,zresa_water,pta,prhoa)
309  END IF
310  !
311  ELSE
312  !
313  ibeg = chw%SVW%NSV_AERBEG
314  iend = chw%SVW%NSV_AEREND
315  !
316  psfts(:,ibeg:iend) =0.
317  IF(ibeg.LT.ibeg) psfts(:,ibeg:ibeg) =0.
318  !
319  ENDIF
320  !
321 ENDIF
322 !
323 IF (chw%SVW%NDSTEQ>0) THEN
324  !
325  ibeg = chw%SVW%NSV_DSTBEG
326  iend = chw%SVW%NSV_DSTEND
327  !
328  CALL dslt_dep(psv(:,ibeg:iend), psfts(:,ibeg:iend), zustar, zresa_water, pta, prhoa, &
329  dst%XEMISSIG_DST, dst%XEMISRADIUS_DST, jpmode_dst, xdensity_dst, &
330  xmolarweight_dst, zconvertfacm0_dst, zconvertfacm6_dst, zconvertfacm3_dst, &
332  !
333  CALL massflux2momentflux( &
334  psfts(:,ibeg:iend), & !I/O ![kg/m2/sec] In: flux of only mass, out: flux of moments
335  prhoa, & !I [kg/m3] air density
336  dst%XEMISRADIUS_DST, &!I [um] emitted radius for the modes (max 3)
337  dst%XEMISSIG_DST, &!I [-] emitted sigma for the different modes (max 3)
338  ndstmde, &
339  zconvertfacm0_dst, &
340  zconvertfacm6_dst, &
341  zconvertfacm3_dst, &
343  !
344 ENDIF
345 !
346 IF (chw%SVW%NSLTEQ>0) THEN
347  !
348  ibeg = chw%SVW%NSV_SLTBEG
349  iend = chw%SVW%NSV_SLTEND
350  !
351  CALL dslt_dep(psv(:,ibeg:iend), psfts(:,ibeg:iend), zustar, zresa_water, pta, prhoa, &
352  slt%XEMISSIG_SLT, slt%XEMISRADIUS_SLT, jpmode_slt, xdensity_slt, &
353  xmolarweight_slt, zconvertfacm0_slt, zconvertfacm6_slt, zconvertfacm3_slt, &
355 
356  CALL massflux2momentflux( &
357  psfts(:,ibeg:iend), & !I/O ![kg/m2/sec] In: flux of only mass, out: flux of moments
358  prhoa, & !I [kg/m3] air density
359  slt%XEMISRADIUS_SLT, &!I [um] emitted radius for the modes (max 3)
360  slt%XEMISSIG_SLT, &!I [-] emitted sigma for the different modes (max 3)
361  nsltmde, &
362  zconvertfacm0_slt, &
363  zconvertfacm6_slt, &
364  zconvertfacm3_slt, &
366  !
367 ENDIF
368 !
369 !-------------------------------------------------------------------------------------
370 ! Outputs fluxes at time t+1
371 !-------------------------------------------------------------------------------------
372 !
373 ! Momentum fluxes
374 !
375 IF(cimplicit_wind=='OLD')THEN
376 ! old implicitation
377  zustar2(:) = (zcd(:)*zwind(:)*ppew_b_coef(:)) / &
378  (1.0-prhoa(:)*zcd(:)*zwind(:)*ppew_a_coef(:))
379 ELSE
380 ! new implicitation
381  zustar2(:) = (zcd(:)*zwind(:)*(2.*ppew_b_coef(:)-zwind(:))) /&
382  (1.0-2.0*prhoa(:)*zcd(:)*zwind(:)*ppew_a_coef(:))
383 !
384  zwork(:) = prhoa(:)*ppew_a_coef(:)*zustar2(:) + ppew_b_coef(:)
385  zwork(:) = max(zwork(:),0.)
386 !
387  WHERE(ppew_a_coef(:)/= 0.)
388  zustar2(:) = max( ( zwork(:) - ppew_b_coef(:) ) / (prhoa(:)*ppew_a_coef(:)), 0.)
389  ENDWHERE
390 !
391 ENDIF
392 !
393 psfu = 0.
394 psfv = 0.
395 WHERE (zwind(:)>0.)
396  psfu(:) = - prhoa(:) * zustar2(:) * pu(:) / zwind(:)
397  psfv(:) = - prhoa(:) * zustar2(:) * pv(:) / zwind(:)
398 END WHERE
399 !
400 ! CO2 flux
401 !
402 psfco2(:) = 0.0 ! Assumes no CO2 emission over water bodies
403 !
404 !-------------------------------------------------------------------------------------
405 ! Inline diagnostics at time t for TS and TRAD
406 !-------------------------------------------------------------------------------------
407 !
408  CALL diag_inline_watflux_n(dgo, d, dc, w, &
409  ptstep,pta, zqa, ppa, pps, prhoa, pu, pv, pzref, &
410  puref, zcd, zcdn, zch, zri, zhu, zz0h, zqsat, &
411  psfth, psftq, psfu, psfv, pdir_sw, psca_sw, plw, &
412  zdir_alb, zsca_alb, zemis, ztrad, prain, psnow, &
413  zsfth_ice, zsftq_ice )
414 !
415 !-------------------------------------------------------------------------------
416 ! IMPOSED MONTHLY TS AT TIME t+1
417 !-------------------------------------------------------------------------------
418 !
419 IF (w%LINTERPOL_TS.AND.mod(w%TTIME%TIME,xday) == 0.) THEN
420  CALL interpol_ts_water_mth(w)
421 ENDIF
422 !
423 !-------------------------------------------------------------------------------
424 !Physical properties see by the atmosphere in order to close the energy budget
425 !between surfex and the atmosphere. All variables should be at t+1 but very
426 !difficult to do. Maybe it will be done later. However, Ts can be at time t+1
427 !-------------------------------------------------------------------------------
428 !
429 ptsurf(:) = w%XTS (:)
430 pz0(:) = w%XZ0 (:)
431 pz0h(:) = zz0h(:)
432 pqsurf(:) = zqsat(:)
433 !
434 !-------------------------------------------------------------------------------------
435 !Radiative properties at time t+1 (see by the atmosphere) in order to close
436 !the energy budget between surfex and the atmosphere
437 !-------------------------------------------------------------------------------------
438 !
439  CALL update_rad_water(w,pzenith2,xtt,pdir_alb,psca_alb,pemis,ptrad )
440 !
441 !=======================================================================================
442 !
443 IF (lhook) CALL dr_hook('COUPLING_WATFLUX_N',1,zhook_handle)
444 !
445 END SUBROUTINE coupling_watflux_n
subroutine massflux2momentflux(PFLUX, PRHODREF, PEMISRADIUS, PEMISSIG, KMDE, PCONVERTFACM0, PCONVERTFACM6, PCONVERTFACM3, OVARSIG, ORGFIX)
subroutine diag_inline_watflux_n(DGO, D, DC, W, PTSTEP, PTA, PQA, PPA, PPS, PRHOA, PZONA, PMERA, PHT, PHW, PCD, PCDN, PCH, PRI, PHU, PZ0H, PQSAT, PSFTH, PSFTQ, PSFZON, PSFMER, PDIR_SW, PSCA_SW, PLW, PDIR_ALB, PSCA_ALB, PEMIS, PTRAD, PRAIN, PSNOW, PSFTH_ICE, PSFTQ_ICE)
character(len=3) cimplicit_wind
real, parameter xmolarweight_slt
real, save xcpd
Definition: modd_csts.F90:63
real, parameter xmolarweight_dst
logical lvarsig_dst
real, parameter xdensity_dst
real, save xtts
Definition: modd_csts.F90:68
subroutine coupling_iceflux_n(KI, PTA, PEXNA, PRHOA, PTICE, PEXNS, PQA, PRAIN, PSNOW, PWIND, PZREF, PUREF, PPS, PTWAT, PTTS, PSFTH, PSFTQ, OHANDLE_SIC, PMASK, PQSAT, PZ0, PUSTAR, PCD, PCDN, PCH, PRI, PRESA, PZ0H)
subroutine update_rad_water(W, PZENITH, PTT, PDIR_ALB_ATMOS, PSCA_ALB_ATMOS, PEMIS_ATMOS, PTRAD)
subroutine ch_aer_dep(PSVT, PFSVT, PUSTAR, PRESA, PTA, PRHODREF)
Definition: ch_aer_dep.F90:8
integer jpmode_slt
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:7
real, parameter xundef
real, save xrd
Definition: modd_csts.F90:62
logical lrgfix_dst
subroutine water_flux(PZ0SEA,
Definition: water_flux.F90:7
integer, parameter jprb
Definition: parkind1.F90:32
logical lvarsig_slt
subroutine coupling_watflux_n(CHW, DGO, D, DC, W, 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)
real, save xday
Definition: modd_csts.F90:45
subroutine interpol_ts_water_mth(W)
subroutine dslt_dep(PSVT, PFSVT, PUSTAR, PRESA, PTA, PRHODREF, PEMISSIG, PEMISRADIUS, KPMODE, PDENSITY, PMOLARWEIGHT, PCONVERTFACM0, PCONVERTFACM6, PCONVERTFACM3, OVARSIG, ORGFIX, HVERMOD)
Definition: dslt_dep.F90:10
logical lhook
Definition: yomhook.F90:15
integer jpmode_dst
subroutine add_forecast_to_date_surf(KYEAR, KMONTH, KDAY, PSEC)
character(len=6) cvermod
real, parameter xdensity_slt
subroutine ch_dep_water(PRESA, PUSTAR, PTA, PTRAD, PSV, HSV, PDEP)
Definition: ch_dep_water.F90:7
real, save xtt
Definition: modd_csts.F90:66
logical lrgfix_slt
real, save xp00
Definition: modd_csts.F90:57