10 pzenith,pazim,psw_bands,pdir_alb,psca_alb, &
11 pemis,ptsrad,ptsurf, &
12 kyear, kmonth,kday, ptime, &
13 hatmfile,hatmfiletype, &
70 USE modd_dst_surf, ONLY: lvarsig_dst, ndstmde, ndst_mdebeg, lrgfix_dst
71 USE modd_slt_surf, ONLY: lvarsig_slt, nsltmde, nslt_mdebeg, lrgfix_slt
76 USE modi_init_io_surf_n
77 USE modi_default_ch_dep
78 USE modi_default_flake
79 USE modi_default_diag_flake
80 USE modi_read_default_flake_n
81 USE modi_read_flake_conf_n
83 USE modi_read_pgd_flake_n
84 USE modi_diag_flake_init_n
85 USE modi_end_io_surf_n
88 USE modi_read_flake_date
89 USE modi_read_nam_prep_flake_n
90 USE modi_init_chemical_n
91 USE modi_prep_ctrl_flake
92 USE modi_update_rad_flake
93 USE modi_read_flake_sbl_n
95 USE modi_set_surfex_filein
97 USE yomhook
,ONLY : lhook, dr_hook
98 USE parkind1
,ONLY : jprb
102 USE modi_get_type_dim_n
116 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
117 CHARACTER(LEN=3),
INTENT(IN) :: hinit
118 INTEGER,
INTENT(IN) :: ki
119 INTEGER,
INTENT(IN) :: ksv
120 INTEGER,
INTENT(IN) :: ksw
121 CHARACTER(LEN=6),
DIMENSION(KI),
INTENT(IN) :: hsv
122 REAL,
DIMENSION(KI),
INTENT(IN) :: pco2
123 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
124 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
125 REAL,
DIMENSION(KI),
INTENT(IN) :: pazim
126 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
127 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: pdir_alb
128 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: psca_alb
129 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
130 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsrad
131 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
132 INTEGER,
INTENT(IN) :: kyear
133 INTEGER,
INTENT(IN) :: kmonth
134 INTEGER,
INTENT(IN) :: kday
135 REAL,
INTENT(IN) :: ptime
138 CHARACTER(LEN=28),
INTENT(IN) :: hatmfile
139 CHARACTER(LEN=6),
INTENT(IN) :: hatmfiletype
140 CHARACTER(LEN=2),
INTENT(IN) :: htest
152 REAL(KIND=JPRB) :: zhook_handle
159 IF (lhook) CALL dr_hook(
'INIT_FLAKE_N',0,zhook_handle)
162 IF (htest/=
'OK')
THEN
163 CALL
abor1_sfx(
'INIT_FLAKEN: FATAL ERROR DURING ARGUMENT TRANSFER')
166 ALLOCATE(fm%DGMF%XZWAT_PROFILE(100))
183 CALL
default_flake(fm%F%XTSTEP,fm%F%XOUT_TSTEP,fm%F%LSEDIMENTS,fm%F%CSNOW_FLK,fm%F%CFLK_FLUX,fm%F%CFLK_ALB,&
186 CALL
default_diag_flake(fm%DGF%N2M,fm%DGF%LSURF_BUDGET,fm%DGF%L2M_MIN_ZS,fm%DGF%LRAD_BUDGET,&
187 fm%DGF%LCOEF,fm%DGF%LSURF_VARS, fm%DGMF%LWATER_PROFILE,fm%DGF%LSURF_BUDGETC,&
188 fm%DGF%LRESET_BUDGETC,fm%DGF%XDIAG_TSTEP,fm%DGMF%XZWAT_PROFILE )
212 fm%F%TTIME%TDATE%YEAR = nundef
213 fm%F%TTIME%TDATE%MONTH= nundef
214 fm%F%TTIME%TDATE%DAY = nundef
215 fm%F%TTIME%TIME = xundef
218 CALL
prep_ctrl_flake(fm%DGF%N2M,fm%DGF%LSURF_BUDGET,fm%DGF%L2M_MIN_ZS,fm%DGF%LRAD_BUDGET,&
219 fm%DGF%LCOEF,fm%DGF%LSURF_VARS,iluout,&
220 fm%DGMF%LWATER_PROFILE,fm%DGF%LSURF_BUDGETC)
223 hprogram,hinit,iluout,hatmfile,hatmfiletype,kyear,kmonth,kday,ptime,fm%F%TTIME)
227 hprogram,
'WATER ',
'FLAKE ',
'READ ')
229 hprogram,
'DTCUR',fm%F%TTIME,iresp)
241 hprogram,
'WATER ',
'FLAKE ',
'READ ')
257 IF (hinit/=
'ALL')
THEN
258 IF (lhook) CALL dr_hook(
'INIT_FLAKE_N',1,zhook_handle)
268 hprogram,
'WATER ',
'FLAKE ',
'READ ')
273 ilu =
SIZE(fm%F%XCOVER,1)
280 ALLOCATE(fm%F%XCORIO (ilu))
281 ALLOCATE(fm%F%XICE_ALB (ilu))
282 ALLOCATE(fm%F%XSNOW_ALB (ilu))
283 ALLOCATE(fm%F%XEXTCOEF_ICE (ilu))
284 ALLOCATE(fm%F%XEXTCOEF_SNOW (ilu))
286 fm%F%XCORIO(:) = 2*xomega*sin(fm%FG%XLAT(:)*xpi/180.)
288 fm%F%XICE_ALB = xalbwatice
289 fm%F%XSNOW_ALB = xalbwatsnow
291 fm%F%XEXTCOEF_ICE = xundef
292 fm%F%XEXTCOEF_SNOW = xundef
298 ALLOCATE(fm%F%XDIR_ALB (ilu))
299 ALLOCATE(fm%F%XSCA_ALB (ilu))
300 ALLOCATE(fm%F%XEMIS (ilu))
305 CALL
update_rad_flake(fm%F%CFLK_ALB,fm%F%XTS,pzenith,fm%F%XH_ICE,fm%F%XH_SNOW,&
306 fm%F%XICE_ALB,fm%F%XSNOW_ALB,fm%F%XDIR_ALB,fm%F%XSCA_ALB,&
307 fm%F%XEMIS,pdir_alb,psca_alb,pemis,ptsrad )
309 ptsurf(:) = fm%F%XTS(:)
326 fm%CHF%CCH_NAMES, fm%CHF%CAER_NAMES, &
327 hdstnames=fm%CHF%CDSTNAMES, hsltnames=fm%CHF%CSLTNAMES )
331 IF (fm%CHF%SVF%NBEQ>0 .AND. fm%CHF%CCH_DRY_DEP==
'WES89')
THEN
332 ALLOCATE(fm%CHF%XDEP(ilu,fm%CHF%SVF%NBEQ))
334 ALLOCATE(fm%CHF%XDEP(0,0))
351 IF (lhook) CALL dr_hook(
'INIT_FLAKE_N',1,zhook_handle)
subroutine init_io_surf_n(DTCO, DGU, U, HPROGRAM, HMASK, HSCHEME, HACTION)
subroutine read_default_flake_n(CHF, DGF, DGMF, F, HPROGRAM)
subroutine diag_flake_init_n(DGU, DGF, DGMF, F, HPROGRAM, KLU, KSW)
subroutine read_flake_date(HPROGRAM, HINIT, KLUOUT, HATMFILE, HATMFILETYPE, KYEAR, KMONTH, KDAY, PTIME, TPTIME)
subroutine set_surfex_filein(HPROGRAM, HMASK)
subroutine prep_ctrl_flake(K2M, OSURF_BUDGET, O2M_MIN_ZS, ORAD_BUDGET, OCOEF, OSURF_VARS, KLUOUT, OWATER_PROFILE, OSURF_BUDGETC)
subroutine default_flake(PTSTEP, POUT_TSTEP, OSEDIMENTS, HSNOW_FLK, HFLK_FLUX, HFLK_ALB, OSKINTEMP)
subroutine read_flake_conf_n(CHF, DGF, DGMF, F, HPROGRAM)
subroutine read_pgd_flake_n(DTCO, U, FG, F, HPROGRAM)
subroutine read_flake_sbl_n(DTCO, U, F, FSB, HPROGRAM)
subroutine read_flake_n(DTCO, U, F, HPROGRAM)
subroutine init_flake_n(DTCO, DGU, UG, U, FM, 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 read_nam_prep_flake_n(HPROGRAM)
subroutine abor1_sfx(YTEXT)
subroutine default_diag_flake(K2M, OSURF_BUDGET, O2M_MIN_ZS, ORAD_BUDGET, OCOEF, OSURF_VARS, OWATER_PROFILE, OSURF_BUDGETC, ORESET_BUDGETC, PDIAG_TSTEP, PZWAT_PROFILE)
subroutine default_ch_dep(HCH_DRY_DEP)
subroutine end_io_surf_n(HPROGRAM)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine init_chemical_n(KLUOUT, KSV, HSV, YSV, HCH_NAMES, HAER_NAMES, HDSTNAMES, HSLTNAMES)
subroutine update_rad_flake(HALB, PTS, PZENITH, PH_ICE, PH_SNOW, PICE_ALB, PSNOW_ALB, PDIR_ALB, PSCA_ALB, PEMIS, PDIR_ALB_ATMOS, PSCA_ALB_ATMOS, PEMIS_ATMOS, PTRAD)