10 pzenith,pazim,psw_bands,pdir_alb,psca_alb, &
11 pemis,ptsrad,ptsurf, &
12 kyear, kmonth,kday, ptime, &
13 hatmfile,hatmfiletype, &
63 USE modd_dst_surf, ONLY: lvarsig_dst, ndstmde, ndst_mdebeg, lrgfix_dst
64 USE modd_slt_surf, ONLY: lvarsig_slt, nsltmde, nslt_mdebeg, lrgfix_slt
67 USE modi_init_io_surf_n
68 USE modi_default_ch_dep
69 USE modi_default_watflux
70 USE modi_default_diag_watflux
71 USE modi_read_default_watflux_n
72 USE modi_read_watflux_conf_n
73 USE modi_read_watflux_n
74 USE modi_read_pgd_watflux_n
75 USE modi_diag_watflux_init_n
76 USE modi_end_io_surf_n
79 USE modi_read_watflux_date
80 USE modi_read_nam_prep_watflux_n
81 USE modi_init_chemical_n
82 USE modi_prep_ctrl_watflux
83 USE modi_update_rad_water
85 USE modi_read_watflux_sbl_n
86 USE modi_set_surfex_filein
88 USE yomhook
,ONLY : lhook, dr_hook
89 USE parkind1
,ONLY : jprb
105 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
106 CHARACTER(LEN=3),
INTENT(IN) :: hinit
107 INTEGER,
INTENT(IN) :: ki
108 INTEGER,
INTENT(IN) :: ksv
109 INTEGER,
INTENT(IN) :: ksw
110 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN) :: hsv
111 REAL,
DIMENSION(KI),
INTENT(IN) :: pco2
112 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
113 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
114 REAL,
DIMENSION(KI),
INTENT(IN) :: pazim
115 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
116 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: pdir_alb
117 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: psca_alb
118 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
119 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsrad
120 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
121 INTEGER,
INTENT(IN) :: kyear
122 INTEGER,
INTENT(IN) :: kmonth
123 INTEGER,
INTENT(IN) :: kday
124 REAL,
INTENT(IN) :: ptime
127 CHARACTER(LEN=28),
INTENT(IN) :: hatmfile
128 CHARACTER(LEN=6),
INTENT(IN) :: hatmfiletype
129 CHARACTER(LEN=2),
INTENT(IN) :: htest
139 REAL(KIND=JPRB) :: zhook_handle
145 IF (lhook) CALL dr_hook(
'INIT_WATFLUX_N',0,zhook_handle)
148 IF (htest/=
'OK')
THEN
149 CALL
abor1_sfx(
'INIT_WATFLUXN: FATAL ERROR DURING ARGUMENT TRANSFER')
168 CALL
default_watflux(wm%W%XTSTEP,wm%W%XOUT_TSTEP,wm%W%CWAT_ALB,wm%W%CINTERPOL_TS)
171 wm%DGW%LCOEF,wm%DGW%LSURF_VARS, &
172 wm%DGW%LSURF_BUDGETC,wm%DGW%LRESET_BUDGETC,wm%DGW%XDIAG_TSTEP )
188 wm%W%LINTERPOL_TS=.false.
191 wm%W%CINTERPOL_TS=
'NONE '
192 wm%W%LINTERPOL_TS=.false.
193 ELSEIF(wm%W%CINTERPOL_TS/=
'NONE ')
THEN
194 wm%W%LINTERPOL_TS=.true.
205 wm%W%TTIME%TDATE%YEAR = nundef
206 wm%W%TTIME%TDATE%MONTH= nundef
207 wm%W%TTIME%TDATE%DAY = nundef
208 wm%W%TTIME%TIME = xundef
212 wm%DGW%LRAD_BUDGET,wm%DGW%LCOEF,wm%DGW%LSURF_VARS,&
213 iluout,wm%DGW%LSURF_BUDGETC )
216 hprogram,hinit,iluout,hatmfile,hatmfiletype,kyear,kmonth,kday,ptime,wm%W%TTIME)
220 hprogram,
'WATER ',
'WATFLX',
'READ ')
222 hprogram,
'DTCUR',wm%W%TTIME,iresp)
236 hprogram,
'WATER ',
'WATFLX',
'READ ')
256 IF (hinit/=
'ALL' .AND. hinit/=
'SOD')
THEN
257 IF (lhook) CALL dr_hook(
'INIT_WATFLUX_N',1,zhook_handle)
266 hprogram,
'WATER ',
'WATFLX',
'READ ')
275 IF (hinit/=
'ALL')
THEN
277 IF (lhook) CALL dr_hook(
'INIT_WATFLUX_N',1,zhook_handle)
281 ilu =
SIZE(wm%W%XCOVER,1)
288 ALLOCATE(wm%W%XTICE (ilu))
289 ALLOCATE(wm%W%XICE_ALB(ilu))
290 wm%W%XTICE (:)=xundef
291 wm%W%XICE_ALB(:)=xundef
293 ALLOCATE(wm%W%XTICE (0))
294 ALLOCATE(wm%W%XICE_ALB(0))
300 ALLOCATE(wm%W%XDIR_ALB (ilu))
301 ALLOCATE(wm%W%XSCA_ALB (ilu))
302 ALLOCATE(wm%W%XEMIS (ilu))
307 CALL
update_rad_water(wm%W%CWAT_ALB,wm%W%XTS,pzenith,xtt,wm%W%XEMIS,wm%W%XDIR_ALB,&
308 wm%W%XSCA_ALB,pdir_alb,psca_alb,pemis,ptsrad )
310 ptsurf(:) = wm%W%XTS(:)
326 wm%CHW%CCH_NAMES, wm%CHW%CAER_NAMES, &
327 hdstnames=wm%CHW%CDSTNAMES, hsltnames=wm%CHW%CSLTNAMES )
332 IF (wm%CHW%SVW%NBEQ>0 .AND. wm%CHW%CCH_DRY_DEP==
'WES89')
THEN
333 ALLOCATE(wm%CHW%XDEP(ilu,wm%CHW%SVW%NBEQ))
335 ALLOCATE(wm%CHW%XDEP(0,0))
352 IF (lhook) CALL dr_hook(
'INIT_WATFLUX_N',1,zhook_handle)
subroutine init_io_surf_n(DTCO, DGU, U, HPROGRAM, HMASK, HSCHEME, HACTION)
subroutine init_watflux_n(DTCO, DGU, UG, U, WM, HPROGRAM, HINIT, KI, KSV, KSW, HSV, PCO2, PRHOA, PZENITH, PAZIM, PSW_BANDS, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, KYEAR, KMONTH, KDAY, PTIME, HATMFILE, HATMFILETYPE, HTEST)
subroutine prep_ctrl_watflux(K2M, OSURF_BUDGET, O2M_MIN_ZS, ORAD_BUDGET, OCOEF, OSURF_VARS, KLUOUT, OSURF_BUDGETC)
subroutine set_surfex_filein(HPROGRAM, HMASK)
subroutine update_rad_water(HALB, PSST, PZENITH, PTT, PEMIS, PDIR_ALB, PSCA_ALB, PDIR_ALB_ATMOS, PSCA_ALB_ATMOS, PEMIS_ATMOS, PTRAD)
subroutine read_watflux_date(HPROGRAM, HINIT, KLUOUT, HATMFILE, HATMFILETYPE, KYEAR, KMONTH, KDAY, PTIME, TPTIME)
subroutine read_watflux_n(DTCO, U, W, HPROGRAM)
subroutine abor1_sfx(YTEXT)
subroutine read_nam_prep_watflux_n(HPROGRAM)
subroutine diag_watflux_init_n(DGU, DGW, W, HPROGRAM, KLU, KSW)
subroutine read_watflux_conf_n(CHW, DGW, W, HPROGRAM)
subroutine default_watflux(PTSTEP, POUT_TSTEP, HWAT_ALB, HINTERPOL_TS)
subroutine read_watflux_sbl_n(DTCO, U, W, WSB, HPROGRAM)
subroutine default_ch_dep(HCH_DRY_DEP)
subroutine end_io_surf_n(HPROGRAM)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine read_pgd_watflux_n(DTCO, U, WG, W, HPROGRAM)
subroutine default_diag_watflux(K2M, OSURF_BUDGET, O2M_MIN_ZS, ORAD_BUDGET, OCOEF, OSURF_VARS, OSURF_BUDGETC, ORESET_BUDGETC, PDIAG_TSTEP)
subroutine read_default_watflux_n(CHW, DGW, W, HPROGRAM)
subroutine init_chemical_n(KLUOUT, KSV, HSV, YSV, HCH_NAMES, HAER_NAMES, HDSTNAMES, HSLTNAMES)