4 SUBROUTINE iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0)
 
   10   USE ioipsl
, ONLY: getin
 
   28   include 
"dimensions.h" 
   42   REAL,
INTENT(OUT) :: time_0
 
   51   REAL,
INTENT(OUT) :: phis(
ip1jmp1) 
 
   60   REAL ddsin,zsig,tetapv,w_pv  
 
   65   REAL teta0,ttp,delt_y,delt_z,eps 
 
   69   REAL phi_pv,dphi_pv,gam_pv   
 
   76   character(len=*),
parameter :: modname=
"iniacademic" 
   77   character(len=80) :: abort_message
 
   82     write(
lunout,*) trim(modname),
" error: if read_start is set to ", &
 
   83     " false then iflag_phys should not be 1" 
   84     write(
lunout,*) 
"You most likely want an aquaplanet initialisation", &
 
   85     " (iflag_phys >= 100)" 
   86     call abort_gcm(modname,
"incompatible iflag_phys==1 and read_start==.false.",1)
 
  136      CALL getin(
'ok_geost',ok_geost)
 
  139      CALL getin(
'k_j',k_f)
 
  142      CALL getin(
'k_c_s',k_c_s)
 
  145      CALL getin(
'k_c_a',k_c_a)
 
  149      CALL getin(
'teta0',teta0)
 
  151      CALL getin(
'ttp',ttp)
 
  153      CALL getin(
'eps',eps)
 
  155      CALL getin(
'delt_y',delt_y)
 
  157      CALL getin(
'delt_z',delt_z)
 
  160      CALL getin(
'ok_pv',ok_pv)
 
  162      CALL getin(
'phi_pv',phi_pv)
 
  163      phi_pv=phi_pv*
pi/180.
 
  165      CALL getin(
'dphi_pv',dphi_pv)
 
  166      dphi_pv=dphi_pv*
pi/180.
 
  168      CALL getin(
'gam_pv',gam_pv)
 
  175         knewt_t(l)=(k_c_s-k_c_a)*max(0.,(zsig-0.7)/0.3)
 
  176         kfrict(l)=k_f*max(0.,(zsig-0.7)/0.3)
 
  179         clat4((j-1)*iip1+1:j*iip1)=cos(
rlatu(j))**4
 
  185         tetastrat=ttp*zsig**(-
kappa)
 
  187         IF ((ok_pv).AND.(zsig.LT.0.1)) 
THEN 
  188            tetapv=tetastrat*(zsig*10.)**(
kappa*
cpp*gam_pv/1000./
g)
 
  193            tetajl(j,l)=teta0-delt_y*ddsin*ddsin+eps*ddsin &
 
  194                 -delt_z*(1.-ddsin*ddsin)*log(zsig)
 
  196              tetajl(j,l)=teta0+(delt_y*                   &
 
  197                 ((sin(
rlatu(j)*3.14159*eps+0.0001))**2)   &
 
  198                 / ((
rlatu(j)*3.14159*eps+0.0001)**2))     &
 
  202            w_pv=(1.-tanh((
rlatu(j)-phi_pv)/dphi_pv))/2.
 
  203            tetastrat=tetastrat*(1.-w_pv)+tetapv*w_pv             
 
  204            tetajl(j,l)=max(tetajl(j,l),tetastrat)  
 
  214               tetarappel(ij,l)=tetajl(j,l)
 
  236         if (pressure_exner) 
then 
  244         teta(:,:)=tetarappel(:,:)
 
  261               if (i == 1) q(:,:,i)=1.e-10
 
  262               if (i == 2) q(:,:,i)=1.e-15
 
  263               if (i.gt.2) q(:,:,i)=0.
 
  275               teta(ij,l)=teta(ij,l)*(1.+0.005*ran1(idum))
 
  282               teta(ij+
iim,l)=teta(ij,l)
 
!$Header llmm1 INTEGER ip1jmp1
 
!$Id mode_top_bound COMMON comconstr g
 
!$Id mode_top_bound COMMON comconstr kappa
 
subroutine exner_hyb(ngrid, ps, p, pks, pk, pkf)
 
!$Id mode_top_bound COMMON comconstr omeg dissip_zref ihf INTEGER im
 
subroutine exner_milieu(ngrid, ps, p, pks, pk, pkf)
 
character(len=10), save planet_type
 
subroutine abort_gcm(modname, message, ierr)
 
!$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 day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
 
!$Id mode_top_bound COMMON comconstr && pi
 
!$Header!CDK comgeom COMMON comgeom rlatu
 
!$Id ysinus ok_gradsfile hybrid COMMON logici iflag_phys
 
subroutine geopot(ngrid, teta, pk, pks, phis, phi)
 
!$Header llmm1 INTEGER ip1jm
 
subroutine pression(ngrid, ap, bp, ps, p)
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
 
!$Id mode_top_bound COMMON comconstr cpp
 
!$Id mode_top_bound COMMON comconstr daysec
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
 
!$Id mode_top_bound COMMON comconstr dtvr
 
subroutine sw_case_williamson91_6(vcov, ucov, teta, masse, ps)
 
c c zjulian c cym CALL iim cym klev iim
 
subroutine ugeostr(phi, ucov)
 
subroutine iniacademic(vcov, ucov, teta, q, masse, ps, phis, time_0)
 
subroutine massdair(p, masse)
 
!$Header!gestion des impressions de sorties et de débogage la sortie standard prt_level COMMON comprint lunout