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)