82 #if ! defined in_surfex
83 USE modd_cb_dynvariables
87 USE modd_cb_dynforcing
93 TYPE(t_glt),
INTENT(inout) :: &
102 WRITE(noutlu,*)
' ** LEVEL 3 - SUBROUTINE ALLOC'
107 #if ! defined in_surfex
112 IF ( ndynami==2 )
THEN
114 ALLOCATE( h(0:nxd+2,0:nyd+2) )
115 ALLOCATE( a(0:nxd+2,0:nyd+2) )
116 ALLOCATE( uice(0:nxd+2,0:nyd+2) )
117 ALLOCATE( vice(0:nxd+2,0:nyd+2) )
118 ALLOCATE( ut1(0:nxd+2,0:nyd+2) )
119 ALLOCATE( vt1(0:nxd+2,0:nyd+2) )
120 ALLOCATE( p(0:nxd+2,0:nyd+2) )
121 ALLOCATE( etac(0:nxd+2,0:nyd+2) )
122 ALLOCATE( etab(0:nxd+2,0:nyd+2) )
123 ALLOCATE( zetac(0:nxd+2,0:nyd+2) )
124 ALLOCATE( etacf(0:nxd+2,0:nyd+2) )
125 ALLOCATE( etabf(0:nxd+2,0:nyd+2) )
126 ALLOCATE( zetacf(0:nxd+2,0:nyd+2) )
127 ALLOCATE( tracer(0:nxd+2,0:nyd+2,2) )
129 ALLOCATE( cdwc1(0:nxd+2,0:nyd+2) )
130 ALLOCATE( cdwc2(0:nxd+2,0:nyd+2) )
131 ALLOCATE( cdwc1f(0:nxd+2,0:nyd+2) )
132 ALLOCATE( cdwc2f(0:nxd+2,0:nyd+2) )
134 ALLOCATE( sinlat(0:nxd+2,0:nyd+2) )
135 ALLOCATE( coslat(0:nxd+2,0:nyd+2) )
137 ALLOCATE( maskb( 0:nxd+2, 0:nyd+2 ) )
138 ALLOCATE( maskc( 0:nxd+2, 0:nyd+2 ) )
140 ALLOCATE( uwatnd(0:nxd+2,0:nyd+2) )
141 ALLOCATE( vwatnd(0:nxd+2,0:nyd+2) )
142 ALLOCATE( speediw(0:nxd+2,0:nyd+2) )
143 ALLOCATE( r1(0:nxd+2,0:nyd+2) )
144 ALLOCATE( r2(0:nxd+2,0:nyd+2) )
145 ALLOCATE( r1n(0:nxd+2,0:nyd+2) )
146 ALLOCATE( r2n(0:nxd+2,0:nyd+2) )
147 ALLOCATE( bu_ind(0:nxd+2,0:nyd+2) )
148 ALLOCATE( bv_ind(0:nxd+2,0:nyd+2) )
149 ALLOCATE( bu(0:nxd+2,0:nyd+2) )
150 ALLOCATE( bv(0:nxd+2,0:nyd+2) )
159 ALLOCATE( tpglt%bat(nx,ny) )
160 ALLOCATE( tpglt%dom(nx,ny) )
162 #if ! defined in_surfex
170 IF ( ndynami==1 .OR. nadvect==1 )
THEN
171 ALLOCATE( tpglt%dxtr(ilo:ihi,jlo:jhi) )
172 ALLOCATE( tpglt%dytr(ilo:ihi,jlo:jhi) )
173 ALLOCATE( tpglt%dxtr4(ilo:ihi,jlo:jhi) )
174 ALLOCATE( tpglt%dytr4(ilo:ihi,jlo:jhi) )
175 ALLOCATE( tpglt%fcor(ilo:ihi,jlo:jhi) )
176 ALLOCATE( tpglt%tarear(ilo:ihi,jlo:jhi) )
178 ALLOCATE( tpglt%HTN(nx,ny) )
179 ALLOCATE( tpglt%HTE(nx,ny) )
180 ALLOCATE( tpglt%HTS(nx,ny) )
181 ALLOCATE( tpglt%HTW(nx,ny) )
182 ALLOCATE( tpglt%hm(nx,ny) )
183 ALLOCATE( tpglt%um(nx,ny) )
184 ALLOCATE( tpglt%dxta(nx,ny) )
185 ALLOCATE( tpglt%dyta(nx,ny) )
186 ALLOCATE( tpglt%dxt2r(nx,ny) )
187 ALLOCATE( tpglt%dyt2r(nx,ny) )
188 ALLOCATE( tpglt%HTNa(nx,ny) )
189 ALLOCATE( tpglt%HTEa(nx,ny) )
190 ALLOCATE( tpglt%cx(nx,ny) )
191 ALLOCATE( tpglt%cy(nx,ny) )
192 ALLOCATE( tpglt%cxx(nx,ny) )
193 ALLOCATE( tpglt%cxy(nx,ny) )
194 ALLOCATE( tpglt%cyy(nx,ny) )
195 ALLOCATE( tpglt%cxxx(nx,ny) )
196 ALLOCATE( tpglt%cxxy(nx,ny) )
197 ALLOCATE( tpglt%cxyy(nx,ny) )
198 ALLOCATE( tpglt%cyyy(nx,ny) )
200 ALLOCATE( tpglt%mne(2,2,nx,ny) )
201 ALLOCATE( tpglt%mnw(2,2,nx,ny) )
202 ALLOCATE( tpglt%msw(2,2,nx,ny) )
203 ALLOCATE( tpglt%mse(2,2,nx,ny) )
209 IF ( ndynami==2 )
THEN
210 ALLOCATE( tpglt%index2d(2,0:nxd+2,0:nyd+2) )
211 ALLOCATE( tpglt%mskice(2,0:nxd+2,0:nyd+2) )
215 ALLOCATE( tpglt%oce_all(nx,ny) )
216 ALLOCATE( tpglt%atm_all(nx,ny) )
217 ALLOCATE( tpglt%all_oce(nx,ny) )
219 IF ( nnflxin==0 )
THEN
220 ALLOCATE( tpglt%atm_mix(1,nx,ny) )
221 ALLOCATE( tpglt%mix_atm(1,nx,ny) )
223 ALLOCATE( tpglt%atm_ice(nnflxin,nx,ny) )
224 ALLOCATE( tpglt%atm_wat(nx,ny) )
225 ALLOCATE( tpglt%ice_atm(nnflxin,nx,ny) )
228 IF ( ntd/=0 )
ALLOCATE( tpglt%sit_d(ntd,nx,ny) )
230 IF ( ndynami==1 )
THEN
231 ALLOCATE( tpglt%evp(nx,ny) )
232 ELSE IF ( ndynami==2 )
THEN
233 ALLOCATE( tpglt%jfn(nx,ny) )
236 ALLOCATE( tpglt%sit(nt,nx,ny) )
237 ALLOCATE( tpglt%sil(nl,nt,nx,ny) )
238 ALLOCATE( tpglt%tml(nx,ny) )
240 ALLOCATE( tpglt%ust(nx,ny) )
241 ALLOCATE( tpglt%cdia0(ndiamax,1,1) )
242 ALLOCATE( tpglt%cdia(ndiamax,nx,ny) )
243 ALLOCATE( tpglt%blkw(nx,ny) )
244 ALLOCATE( tpglt%blki(nt,nx,ny) )
245 ALLOCATE( tpglt%tfl(nx,ny) )
246 ALLOCATE( tpglt%bud(nx,ny) )
247 ALLOCATE( tpglt%dia(nx,ny) )
256 WRITE(noutlu,*)
' ** LEVEL 3 - END SUBROUTINE ALLOC'