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