63 USE yomhook
,ONLY : lhook, dr_hook
64 USE parkind1
,ONLY : jprb
70 INTEGER,
INTENT(IN) :: kni
71 INTEGER,
INTENT(IN) :: kbands
72 INTEGER,
INTENT(IN) :: kscal
73 REAL(KIND=JPRB) :: zhook_handle
79 IF (lhook) CALL dr_hook(
'OL_ALLOC_ATM',0,zhook_handle)
80 IF (.NOT.
ALLOCATED(csv))
ALLOCATE(csv(kscal) )
81 IF (.NOT.
ALLOCATED(xdir_alb))
ALLOCATE(xdir_alb(kni,kbands))
82 IF (.NOT.
ALLOCATED(xsca_alb))
ALLOCATE(xsca_alb(kni,kbands))
83 IF (.NOT.
ALLOCATED(xemis))
ALLOCATE(xemis(kni) )
84 IF (.NOT.
ALLOCATED(xtsrad))
ALLOCATE(xtsrad(kni) )
85 IF (.NOT.
ALLOCATED(xtsun))
ALLOCATE(xtsun(kni) )
86 IF (.NOT.
ALLOCATED(xzref))
ALLOCATE(xzref(kni) )
87 IF (.NOT.
ALLOCATED(xuref))
ALLOCATE(xuref(kni) )
88 IF (.NOT.
ALLOCATED(xta))
ALLOCATE(xta(kni) )
89 IF (.NOT.
ALLOCATED(xqa))
ALLOCATE(xqa(kni) )
90 IF (.NOT.
ALLOCATED(xzs))
ALLOCATE(xzs(kni) )
91 IF (.NOT.
ALLOCATED(xrhoa))
ALLOCATE(xrhoa(kni) )
92 IF (.NOT.
ALLOCATED(xsv))
ALLOCATE(xsv(kni,kscal) )
93 IF (.NOT.
ALLOCATED(xu))
ALLOCATE(xu(kni) )
94 IF (.NOT.
ALLOCATED(xv))
ALLOCATE(xv(kni) )
95 IF (.NOT.
ALLOCATED(xdir_sw))
ALLOCATE(xdir_sw(kni,kbands))
96 IF (.NOT.
ALLOCATED(xsca_sw))
ALLOCATE(xsca_sw(kni,kbands))
97 IF (.NOT.
ALLOCATED(xsw_bands))
ALLOCATE(xsw_bands(kbands) )
98 IF (.NOT.
ALLOCATED(xzenith))
ALLOCATE(xzenith(kni) )
99 IF (.NOT.
ALLOCATED(xzenith2))
ALLOCATE(xzenith2(kni) )
100 IF (.NOT.
ALLOCATED(xazim))
ALLOCATE(xazim(kni) )
101 IF (.NOT.
ALLOCATED(xlw))
ALLOCATE(xlw(kni) )
102 IF (.NOT.
ALLOCATED(xps))
ALLOCATE(xps(kni) )
103 IF (.NOT.
ALLOCATED(xpa))
ALLOCATE(xpa(kni) )
104 IF (.NOT.
ALLOCATED(xco2))
ALLOCATE(xco2(kni) )
105 IF (.NOT.
ALLOCATED(xsnow))
ALLOCATE(xsnow(kni) )
106 IF (.NOT.
ALLOCATED(xrain))
ALLOCATE(xrain(kni) )
107 IF (.NOT.
ALLOCATED(xsfth))
ALLOCATE(xsfth(kni) )
108 IF (.NOT.
ALLOCATED(xsftq))
ALLOCATE(xsftq(kni) )
109 IF (.NOT.
ALLOCATED(xsfu))
ALLOCATE(xsfu(kni) )
110 IF (.NOT.
ALLOCATED(xsfv))
ALLOCATE(xsfv(kni) )
111 IF (.NOT.
ALLOCATED(xsfco2))
ALLOCATE(xsfco2(kni) )
112 IF (.NOT.
ALLOCATED(xsfts))
ALLOCATE(xsfts(kni,kscal) )
113 IF (.NOT.
ALLOCATED(xpew_a_coef))
ALLOCATE(xpew_a_coef(kni) )
114 IF (.NOT.
ALLOCATED(xpew_b_coef))
ALLOCATE(xpew_b_coef(kni) )
115 IF (.NOT.
ALLOCATED(xpet_a_coef))
ALLOCATE(xpet_a_coef(kni) )
116 IF (.NOT.
ALLOCATED(xpeq_a_coef))
ALLOCATE(xpeq_a_coef(kni) )
117 IF (.NOT.
ALLOCATED(xpet_b_coef))
ALLOCATE(xpet_b_coef(kni) )
118 IF (.NOT.
ALLOCATED(xpeq_b_coef))
ALLOCATE(xpeq_b_coef(kni) )
119 IF (.NOT.
ALLOCATED(xtsurf))
ALLOCATE(xtsurf(kni) )
120 IF (.NOT.
ALLOCATED(xz0) )
ALLOCATE(xz0(kni) )
121 IF (.NOT.
ALLOCATED(xz0h) )
ALLOCATE(xz0h(kni) )
122 IF (.NOT.
ALLOCATED(xqsurf))
ALLOCATE(xqsurf(kni) )
124 IF (
SIZE(csv)>=1) csv(1) =
'#CO '
125 IF (
SIZE(csv)>=2) csv(2) =
'#O3 '
126 IF (
SIZE(csv)>=3) csv(3) =
'#H2O2 '
127 IF (
SIZE(csv)>=4) csv(4) =
'#NO '
128 IF (
SIZE(csv)>=5) csv(5) =
'#NO2 '
129 IF (
SIZE(csv)>=6) csv(6) =
'#NO3 '
130 IF (
SIZE(csv)>=7) csv(7) =
'#N2O5 '
131 IF (
SIZE(csv)>=8) csv(8) =
'#HONO '
132 IF (
SIZE(csv)>=9) csv(9) =
'#HNO3 '
133 IF (
SIZE(csv)>=10) csv(10) =
'#HNO4 '
134 IF (
SIZE(csv)>=11) csv(11) =
'#NH3 '
135 IF (
SIZE(csv)>=12) csv(12) =
'#SO2 '
136 IF (
SIZE(csv)>=13) csv(13) =
'#SULF '
137 IF (
SIZE(csv)>=14) csv(14) =
'#OH '
138 IF (
SIZE(csv)>=15) csv(15) =
'#HO2 '
139 IF (
SIZE(csv)>=16) csv(16) =
'#CH4 '
140 IF (
SIZE(csv)>=17) csv(17) =
'#ETH '
141 IF (
SIZE(csv)>=18) csv(18) =
'#ALKA '
142 IF (
SIZE(csv)>=19) csv(19) =
'#ALKE '
143 IF (
SIZE(csv)>=20) csv(20) =
'#BIO '
144 IF (
SIZE(csv)>=21) csv(21) =
'#ARO '
145 IF (
SIZE(csv)>=22) csv(22) =
'#HCHO '
146 IF (
SIZE(csv)>=23) csv(23) =
'#ALD '
147 IF (
SIZE(csv)>=24) csv(24) =
'#KET '
148 IF (
SIZE(csv)>=25) csv(25) =
'#CARBO'
149 IF (
SIZE(csv)>=26) csv(26) =
'#ONIT '
150 IF (
SIZE(csv)>=27) csv(27) =
'#PAN '
151 IF (
SIZE(csv)>=28) csv(28) =
'#OP1 '
152 IF (
SIZE(csv)>=29) csv(29) =
'#OP2 '
153 IF (
SIZE(csv)>=30) csv(30) =
'#ORA '
154 IF (
SIZE(csv)>=31) csv(31) =
'#ORA2 '
155 IF (
SIZE(csv)>=32) csv(32) =
'#MO2 '
156 IF (
SIZE(csv)>=33) csv(33) =
'#ALKAP'
157 IF (
SIZE(csv)>=34) csv(34) =
'#ALKEP'
158 IF (
SIZE(csv)>=35) csv(35) =
'#BIOP '
159 IF (
SIZE(csv)>=36) csv(36) =
'#PHO '
160 IF (
SIZE(csv)>=37) csv(37) =
'#ADD '
161 IF (
SIZE(csv)>=38) csv(38) =
'#AROP '
162 IF (
SIZE(csv)>=39) csv(39) =
'#CARBO'
163 IF (
SIZE(csv)>=40) csv(40) =
'#OLN '
164 IF (
SIZE(csv)>=41) csv(41) =
'#XO2 '
165 IF (
SIZE(csv)>=42) csv(42) =
'@M0I '
166 IF (
SIZE(csv)>=43) csv(43) =
'@M0J '
167 IF (
SIZE(csv)>=44) csv(44) =
'@M6I '
168 IF (
SIZE(csv)>=45) csv(45) =
'@M6J '
169 IF (
SIZE(csv)>=46) csv(46) =
'@H2OI'
170 IF (
SIZE(csv)>=47) csv(47) =
'@H2OJ'
171 IF (
SIZE(csv)>=48) csv(48) =
'@SO4I'
172 IF (
SIZE(csv)>=49) csv(49) =
'@SO4J'
173 IF (
SIZE(csv)>=50) csv(50) =
'@NO3I'
174 IF (
SIZE(csv)>=51) csv(51) =
'@NO3J'
175 IF (
SIZE(csv)>=52) csv(52) =
'@NH3I'
176 IF (
SIZE(csv)>=53) csv(53) =
'@NH3J'
177 IF (
SIZE(csv)>=54) csv(54) =
'@OCI'
178 IF (
SIZE(csv)>=55) csv(55) =
'@OCJ'
179 IF (
SIZE(csv)>=56) csv(56) =
'@BCI'
180 IF (
SIZE(csv)>=57) csv(57) =
'@BCJ'
181 IF (
SIZE(csv)>=58) csv(58) =
'@DSTI'
182 IF (
SIZE(csv)>=59) csv(59) =
'@DSTJ'
217 xpew_a_coef(:)=xundef
218 xpew_b_coef(:)=xundef
219 xpet_a_coef(:)=xundef
220 xpeq_a_coef(:)=xundef
221 xpet_b_coef(:)=xundef
222 xpeq_b_coef(:)=xundef
228 IF (lhook) CALL dr_hook(
'OL_ALLOC_ATM',1,zhook_handle)
subroutine ol_alloc_atm(KNI, KBANDS, KSCAL)