4 SUBROUTINE aaam_bud(iam, nlon, nlev, rjour, rsec, rea, rg, ome, plat, plon, &
5 phis, dragu, liftu, phyu, dragv, liftv, phyv, p,
u, v, aam, torsfc)
89 INTEGER iam, nlon, nlev
90 REAL,
INTENT (IN) :: rjour, rsec, rea, rg, ome
91 REAL plat(nlon), plon(nlon), phis(nlon)
92 REAL dragu(nlon), liftu(nlon), phyu(nlon)
93 REAL dragv(nlon), liftv(nlon), phyv(nlon)
94 REAL p(nlon, nlev+1), u(nlon, nlev), v(nlon, nlev)
99 REAL xpi, hadley, hadday
101 REAL raam(3), oaam(3), tmou(3), tsso(3), tbls(3)
108 REAL zs(801, 401), ps(801, 401)
109 REAL ub(801, 401), vb(801, 401)
110 REAL ssou(801, 401), ssov(801, 401)
111 REAL blsu(801, 401), blsv(801, 401)
112 REAL zlon(801), zlat(401)
114 CHARACTER (LEN=20) :: modname =
'aaam_bud'
115 CHARACTER (LEN=80) :: abort_message
122 abort_message =
'Pb de dimension dans aaam_bud'
128 hadday = 1.e18*24.*3600.
153 ub(1, 1) = ub(1, 1) + u(l, k)*(p(l,k)-p(l,k+1))/rg
154 vb(1, 1) = vb(1, 1) + v(l, k)*(p(l,k)-p(l,k+1))/rg
157 zlat(1) = plat(l)*xpi/180.
161 zs(i, 1) = phis(l)/rg
165 ssou(i, 1) = dragu(l) + liftu(l)
166 ssov(i, 1) = dragv(l) + liftv(l)
167 blsu(i, 1) = phyu(l) - dragu(l) - liftu(l)
168 blsv(i, 1) = phyv(l) - dragv(l) - liftv(l)
177 zs(
nbp_lon+1, j) = phis(l+1)/rg
179 ssou(
nbp_lon+1, j) = dragu(l+1) + liftu(l+1)
180 ssov(
nbp_lon+1, j) = dragv(l+1) + liftv(l+1)
181 blsu(
nbp_lon+1, j) = phyu(l+1) - dragu(l+1) - liftu(l+1)
182 blsv(
nbp_lon+1, j) = phyv(l+1) - dragv(l+1) - liftv(l+1)
183 zlon(
nbp_lon+1) = -plon(l+1)*xpi/180.
184 zlat(j) = plat(l+1)*xpi/180.
189 ub(
nbp_lon+1, j) = ub(
nbp_lon+1, j) + u(l+1, k)*(p(l+1,k)-p(l+1,k+1))/rg
190 vb(
nbp_lon+1, j) = vb(
nbp_lon+1, j) + v(l+1, k)*(p(l+1,k)-p(l+1,k+1))/rg
197 zs(i, j) = phis(l)/rg
199 ssou(i, j) = dragu(l) + liftu(l)
200 ssov(i, j) = dragv(l) + liftv(l)
201 blsu(i, j) = phyu(l) - dragu(l) - liftu(l)
202 blsv(i, j) = phyv(l) - dragv(l) - liftv(l)
203 zlon(i) = plon(l)*xpi/180.
208 ub(i, j) = ub(i, j) + u(l, k)*(p(l,k)-p(l,k+1))/rg
209 vb(i, j) = vb(i, j) + v(l, k)*(p(l,k)-p(l,k+1))/rg
227 zlat(
nbp_lat) = plat(l)*xpi/180.
232 ssou(i,
nbp_lat) = dragu(l) + liftu(l)
233 ssov(i,
nbp_lat) = dragv(l) + liftv(l)
234 blsu(i,
nbp_lat) = phyu(l) - dragu(l) - liftu(l)
235 blsv(i,
nbp_lat) = phyv(l) - dragv(l) - liftv(l)
247 raam(1) = raam(1) - rea**3*dlon*dlat*0.5*(cos(zlon(i))*sin(zlat(j))*cos &
248 (zlat(j))*ub(i,j)+cos(zlon(i))*sin(zlat(j+1))*cos(zlat(j+ &
249 1))*ub(i,j+1)) + rea**3*dlon*dlat*0.5*(sin(zlon(i))*cos(zlat(j))*vb(i &
250 ,j)+sin(zlon(i))*cos(zlat(j+1))*vb(i,j+1))
252 oaam(1) = oaam(1) - ome*rea**4*dlon*dlat/rg*0.5*(cos(zlon(i))*cos(zlat( &
253 j))**2*sin(zlat(j))*ps(i,j)+cos(zlon(i))*cos(zlat(j+ &
254 1))**2*sin(zlat(j+1))*ps(i,j+1))
256 raam(2) = raam(2) - rea**3*dlon*dlat*0.5*(sin(zlon(i))*sin(zlat(j))*cos &
257 (zlat(j))*ub(i,j)+sin(zlon(i))*sin(zlat(j+1))*cos(zlat(j+ &
258 1))*ub(i,j+1)) - rea**3*dlon*dlat*0.5*(cos(zlon(i))*cos(zlat(j))*vb(i &
259 ,j)+cos(zlon(i))*cos(zlat(j+1))*vb(i,j+1))
261 oaam(2) = oaam(2) - ome*rea**4*dlon*dlat/rg*0.5*(sin(zlon(i))*cos(zlat( &
262 j))**2*sin(zlat(j))*ps(i,j)+sin(zlon(i))*cos(zlat(j+ &
263 1))**2*sin(zlat(j+1))*ps(i,j+1))
265 raam(3) = raam(3) + rea**3*dlon*dlat*0.5*(cos(zlat(j))**2*ub(i,j)+cos( &
266 zlat(j+1))**2*ub(i,j+1))
268 oaam(3) = oaam(3) + ome*rea**4*dlon*dlat/rg*0.5*(cos(zlat(j))**3*ps(i,j &
269 )+cos(zlat(j+1))**3*ps(i,j+1))
280 tmou(1) = tmou(1) - rea**2*dlon*0.5*sin(zlon(i))*(zs(i,j)-zs(i,j+1))*( &
281 cos(zlat(j+1))*ps(i,j+1)+cos(zlat(j))*ps(i,j))
282 tmou(2) = tmou(2) + rea**2*dlon*0.5*cos(zlon(i))*(zs(i,j)-zs(i,j+1))*( &
283 cos(zlat(j+1))*ps(i,j+1)+cos(zlat(j))*ps(i,j))
289 tmou(1) = tmou(1) + rea**2*dlat*0.5*sin(zlat(j))*(zs(i+1,j)-zs(i,j))*( &
290 cos(zlon(i+1))*ps(i+1,j)+cos(zlon(i))*ps(i,j))
291 tmou(2) = tmou(2) + rea**2*dlat*0.5*sin(zlat(j))*(zs(i+1,j)-zs(i,j))*( &
292 sin(zlon(i+1))*ps(i+1,j)+sin(zlon(i))*ps(i,j))
293 tmou(3) = tmou(3) - rea**2*dlat*0.5*cos(zlat(j))*(zs(i+1,j)-zs(i,j))*( &
305 tsso(1) = tsso(1) - rea**3*cos(zlat(j))*dlon*dlat*ssou(i, j)*sin(zlat(j &
306 ))*cos(zlon(i)) + rea**3*cos(zlat(j))*dlon*dlat*ssov(i, j)*sin(zlon(i &
309 tsso(2) = tsso(2) - rea**3*cos(zlat(j))*dlon*dlat*ssou(i, j)*sin(zlat(j &
310 ))*sin(zlon(i)) - rea**3*cos(zlat(j))*dlon*dlat*ssov(i, j)*cos(zlon(i &
313 tsso(3) = tsso(3) + rea**3*cos(zlat(j))*dlon*dlat*ssou(i, j)*cos(zlat(j &
316 tbls(1) = tbls(1) - rea**3*cos(zlat(j))*dlon*dlat*blsu(i, j)*sin(zlat(j &
317 ))*cos(zlon(i)) + rea**3*cos(zlat(j))*dlon*dlat*blsv(i, j)*sin(zlon(i &
320 tbls(2) = tbls(2) - rea**3*cos(zlat(j))*dlon*dlat*blsu(i, j)*sin(zlat(j &
321 ))*sin(zlon(i)) - rea**3*cos(zlat(j))*dlon*dlat*blsv(i, j)*cos(zlon(i &
324 tbls(3) = tbls(3) + rea**3*cos(zlat(j))*dlon*dlat*blsu(i, j)*cos(zlat(j &
343 100
FORMAT (f12.5, 15(1
x,f12.5))
355 torsfc = tmou(3) + tsso(3) + tbls(3)
subroutine aaam_bud(iam, nlon, nlev, rjour, rsec, rea, rg, ome, plat, plon, phis, dragu, liftu, phyu, dragv, liftv, phyv, p, u, v, aam, torsfc)
!$Id ***************************************!ECRITURE DU phis
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm u(l)
!$Header!c c INCLUDE fxyprim h c c c Fonctions in line c c REAL fyprim REAL rj c c il faut la calculer avant d appeler ces fonctions c c c Fonctions a changer selon x(x) et y(y) choisis.c-----------------------------------------------------------------c c.....ici
subroutine abort_physic(modname, message, ierr)