10 pzenith,pazim,psw_bands,pdir_alb,psca_alb, &
11 pemis,ptsrad,ptsurf, &
63 USE modi_diag_ideal_init_n
64 USE modi_read_ideal_conf_n
65 USE modi_read_default_ideal_n
66 USE modi_prep_ctrl_ideal
67 USE modi_default_diag_ideal
71 USE yomhook
,ONLY : lhook, dr_hook
72 USE parkind1
,ONLY : jprb
81 LOGICAL,
INTENT(IN) :: oread_budgetc
83 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
84 CHARACTER(LEN=3),
INTENT(IN) :: hinit
85 INTEGER,
INTENT(IN) :: ki
86 INTEGER,
INTENT(IN) :: ksv
87 INTEGER,
INTENT(IN) :: ksw
88 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN) :: hsv
89 REAL,
DIMENSION(KI),
INTENT(IN) :: pco2
90 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
91 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
92 REAL,
DIMENSION(KI),
INTENT(IN) :: pazim
93 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
94 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: pdir_alb
95 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: psca_alb
96 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
97 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsrad
98 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
100 CHARACTER(LEN=2),
INTENT(IN) :: htest
106 REAL(KIND=JPRB) :: zhook_handle
112 IF (lhook) CALL dr_hook(
'INIT_IDEAL_FLUX',0,zhook_handle)
116 IF (htest/=
'OK')
THEN
117 CALL
abor1_sfx(
'INIT_IDEAL_FLUX: FATAL ERROR DURING ARGUMENT TRANSFER')
126 CALL
default_diag_ideal(dgl%N2M,dgl%LSURF_BUDGET,dgl%L2M_MIN_ZS,dgl%LRAD_BUDGET,dgl%LCOEF,dgl%LSURF_VARS,&
127 dgl%LSURF_BUDGETC,dgl%LRESET_BUDGETC,dgl%XDIAG_TSTEP )
140 IF (.NOT.
ALLOCATED(xtimef_f))
THEN
143 ALLOCATE(xtimef_f(nforcf+1))
144 ALLOCATE(xsfth_f(nforcf+1))
145 ALLOCATE(xsftq_f(nforcf+1))
146 ALLOCATE(xsfco2_f(nforcf+1))
147 IF (custartype==
'USTAR')
ALLOCATE(xustar_f(nforcf+1))
149 ALLOCATE(xtimet_t(nforct+1))
150 ALLOCATE(xtsrad_t(nforct+1))
153 xtimef_f(1:nforcf) = xtimef(1:nforcf)
154 xsfth_f(1:nforcf) = xsfth(1:nforcf)
155 xsftq_f(1:nforcf) = xsftq(1:nforcf)
156 xsfco2_f(1:nforcf) = xsfco2(1:nforcf)
157 IF (custartype==
'USTAR') xustar_f(1:nforcf) = xustar(1:nforcf)
159 xtimet_t(1:nforct) = xtimet(1:nforct)
160 xtsrad_t(1:nforct) = xtsrad(1:nforct)
162 xtimef_f(nforcf+1) = xtimef_f(nforcf)+1
163 xsfth_f(nforcf+1) = xsfth_f(nforcf)
164 xsftq_f(nforcf+1) = xsftq_f(nforcf)
165 xsfco2_f(nforcf+1) = xsfco2_f(nforcf)
166 IF (custartype==
'USTAR') xustar_f(nforcf+1) = xustar_f(nforcf)
168 xtimet_t(nforct+1) = xtimet(nforct)+1
169 xtsrad_t(nforct+1) = xtsrad(nforct)
176 IF (hinit==
'PRE')
THEN
177 CALL
prep_ctrl_ideal(dgl%N2M,dgl%LSURF_BUDGET,dgl%L2M_MIN_ZS,dgl%LRAD_BUDGET,dgl%LCOEF,dgl%LSURF_VARS,&
178 iluout,dgl%LSURF_BUDGETC)
188 IF(.NOT.
ALLOCATED (xsfts) )
ALLOCATE(xsfts(nforcf+1,isv))
216 IF (lhook) CALL dr_hook(
'INIT_IDEAL_FLUX',1,zhook_handle)
subroutine diag_ideal_init_n(DGL, HPROGRAM, OREAD_BUDGETC, KLU, KSW)
subroutine default_diag_ideal(K2M, OSURF_BUDGET, O2M_MIN_ZS, ORAD_BUDGET, OCOEF, OSURF_VARS, OSURF_BUDGETC, ORESET_BUDGETC, PDIAG_TSTEP)
subroutine read_ideal_conf_n(DGL, HPROGRAM)
subroutine init_ideal_flux(DGL, OREAD_BUDGETC, HPROGRAM, HINIT, KI, KSV, KSW, HSV, PCO2, PRHOA, PZENITH, PAZIM, PSW_BANDS, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, HTEST)
subroutine abor1_sfx(YTEXT)
subroutine read_default_ideal_n(DGL, HPROGRAM)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine prep_ctrl_ideal(K2M, OSURF_BUDGET, O2M_MIN_ZS, ORAD_BUDGET, OCOEF, OSURF_VARS, KLUOUT, OSURF_BUDGETC)