1 SUBROUTINE dynredem0(fichnom,iday_end,phis)
 
   10   USE netcdf
, ONLY: nf90_create, nf90_def_dim, nf90_inq_varid, nf90_global,    &
 
   11                     nf90_close,  nf90_put_att, nf90_unlimited, nf90_clobber
 
   14   include 
"dimensions.h" 
   22   include 
"description.h" 
   27   CHARACTER(LEN=*), 
INTENT(IN) :: fichnom          
 
   28   INTEGER,          
INTENT(IN) :: iday_end         
 
   29   REAL,             
INTENT(IN) :: phis(iip1, 
jjp1) 
 
   33   INTEGER, 
PARAMETER :: length=100
 
   34   REAL    :: tab_cntrl(length)                     
 
   36   CHARACTER(LEN=30) :: unites
 
   38   INTEGER :: rlonuID, rlonvID, rlatuID, rlatvID
 
   39   INTEGER :: sID, sigID, nID, vID, timID
 
   40   INTEGER :: yyears0, jjour0, mmois0
 
   41   REAL    :: zan0, zjulian, hours
 
   46   CALL ju2ymds(zjulian, yyears0, mmois0, jjour0, hours)
 
   55   tab_cntrl(1)  = 
REAL(
iim)
 
   56   tab_cntrl(2)  = 
REAL(jjm)
 
   57   tab_cntrl(3)  = 
REAL(
llm)
 
   95     IF( ysinus )  tab_cntrl(27) = 1.
 
   97   tab_cntrl(30) = 
REAL(iday_end)
 
  103   CALL err(nf90_create(fichnom,nf90_clobber,nid))
 
  106   CALL err(nf90_put_att(nid,nf90_global,
"title",
"Fichier demarrage dynamique"))
 
  109   CALL err(nf90_def_dim(nid,
"index", length, indexid))
 
  110   CALL err(nf90_def_dim(nid,
"rlonu", iip1,   rlonuid))
 
  111   CALL err(nf90_def_dim(nid,
"rlatu", 
jjp1,   rlatuid))
 
  112   CALL err(nf90_def_dim(nid,
"rlonv", iip1,   rlonvid))
 
  113   CALL err(nf90_def_dim(nid,
"rlatv", jjm,    rlatvid))
 
  114   CALL err(nf90_def_dim(nid,
"sigs",  
llm,        sid))
 
  115   CALL err(nf90_def_dim(nid,
"sig",   
llmp1,    sigid))
 
  116   CALL err(nf90_def_dim(nid,
"temps", nf90_unlimited, timid))
 
  119   CALL put_var1(nid,
"controle",
"Parametres de controle" ,[indexid],tab_cntrl)
 
  120   CALL put_var1(nid,
"rlonu"   ,
"Longitudes des points U",[rlonuid],
rlonu)
 
  121   CALL put_var1(nid,
"rlatu"   ,
"Latitudes des points U" ,[rlatuid],
rlatu)
 
  122   CALL put_var1(nid,
"rlonv"   ,
"Longitudes des points V",[rlonvid],
rlonv)
 
  123   CALL put_var1(nid,
"rlatv"   ,
"Latitudes des points V" ,[rlatvid],
rlatv)
 
  124   CALL put_var1(nid,
"nivsigs" ,
"Numero naturel des couches s"    ,[sid]  ,
nivsigs)
 
  125   CALL put_var1(nid,
"nivsig"  ,
"Numero naturel des couches sigma",[sigid],
nivsig)
 
  126   CALL put_var1(nid,
"ap"      ,
"Coefficient A pour hybride"      ,[sigid],ap)
 
  127   CALL put_var1(nid,
"bp"      ,
"Coefficient B pour hybride"      ,[sigid],
bp)
 
  130   CALL put_var2(nid,
"cu",
"Coefficient de passage pour U",[rlonuid,rlatuid],
cu)
 
  131   CALL put_var2(nid,
"cv",
"Coefficient de passage pour V",[rlonvid,rlatvid],
cv)
 
  132   CALL put_var2(nid,
"aire",
"Aires de chaque maille"     ,[rlonvid,rlatuid],
aire)
 
  133   CALL put_var2(nid,
"phisinit",
"Geopotentiel au sol"    ,[rlonvid,rlatuid],phis)
 
  136   WRITE(unites,
"('days since ',i4,'-',i2.2,'-',i2.2,' 00:00:00')"),&
 
  137                yyears0,mmois0,jjour0
 
  138   CALL cre_var(nid,
"temps",
"Temps de simulation",[timid],unites)
 
  139   CALL cre_var(nid,
"ucov" ,
"Vitesse U"  ,[rlonuid,rlatuid,sid,timid])
 
  140   CALL cre_var(nid,
"vcov" ,
"Vitesse V"  ,[rlonvid,rlatvid,sid,timid])
 
  141   CALL cre_var(nid,
"teta" ,
"Temperature",[rlonvid,rlatuid,sid,timid])
 
  145   CALL cre_var(nid,
"masse",
"Masse d air"    ,[rlonvid,rlatuid,sid,timid])
 
  146   CALL cre_var(nid,
"ps"   ,
"Pression au sol",[rlonvid,rlatuid    ,timid])
 
  147   CALL err(nf90_close(nid))
 
  150   WRITE(
lunout,*)trim(
modname)//
': rad,omeg,g,cpp,kappa',
rad,omeg,
g,
cpp,
kappa 
  159 SUBROUTINE dynredem1(fichnom,time,vcov,ucov,teta,q,masse,ps)
 
  166   USE netcdf
,   ONLY: nf90_open,  nf90_nowrite, nf90_get_var, nf90_inq_varid,  &
 
  167                       nf90_close, nf90_write,   nf90_put_var, nf90_noerr
 
  171   include 
"dimensions.h" 
  173   include 
"description.h" 
  180   CHARACTER(LEN=*), 
INTENT(IN) :: fichnom              
 
  181   REAL, 
INTENT(IN)    ::  time                         
 
  182   REAL, 
INTENT(IN)    ::  vcov(iip1,jjm, 
llm)          
 
  183   REAL, 
INTENT(IN)    ::  ucov(iip1,
jjp1,
llm)          
 
  184   REAL, 
INTENT(IN)    ::  teta(iip1,
jjp1,
llm)          
 
  186   REAL, 
INTENT(IN)    :: masse(iip1,
jjp1,
llm)          
 
  187   REAL, 
INTENT(IN)    ::    ps(iip1,
jjp1)              
 
  190   INTEGER :: l, iq, nid, vID, ierr, nid_trac, vID_trac
 
  191   INTEGER, 
SAVE :: nb=0
 
  192   INTEGER, 
PARAMETER :: length=100
 
  193   REAL               :: tab_cntrl(length) 
 
  194   CHARACTER(LEN=256) :: var, dum
 
  195   LOGICAL            :: lread_inca
 
  199   CALL err(nf90_open(
fil,nf90_write,nid),
"open",
fil)
 
  204   CALL err(nf90_inq_varid(nid,var,vid),
"inq",var)
 
  205   CALL err(nf90_put_var(nid,vid,[time]),
"put",var)
 
  210   CALL err(nf90_inq_varid(nid,var,vid),
"inq",var)
 
  211   CALL err(nf90_get_var(nid,vid,tab_cntrl),
"get",var)
 
  213   CALL err(nf90_inq_varid(nid,var,vid),
"inq",var)
 
  214   CALL err(nf90_put_var(nid,vid,tab_cntrl),
"put",var)
 
  224   lread_inca=.
false.; 
fil=
"start_trac.nc" 
  225   IF(
type_trac==
'inca') 
INQUIRE(file=
fil,exist=lread_inca)
 
  226   IF(lread_inca) 
CALL err(nf90_open(
fil,nf90_nowrite,nid_trac),
"open")
 
  232       ierr=nf90_inq_varid(nid_trac,var,vid_trac)
 
  233       dum=
'inq'; 
IF(ierr==nf90_noerr) dum=
'fnd' 
  242   CALL err(nf90_close(nid),
"close")
 
  244   IF(lread_inca) 
CALL err(nf90_close(nid_trac),
"close")
 
!$Header!c!c!c include serre h!c REAL dzoomy
 
character(len=23), dimension(:), allocatable, save ttext
 
subroutine, public put_var2(ncid, var, title, did, v, units)
 
!$Header!c!c!c include serre h!c REAL && grossismx
 
!$Id zjulian!correction pour l heure initiale!jyg!jyg CALL ymds2ju(annee_ref, 1, day_ref, hour, zjulian)!jyg CALL histbeg_phy("histrac"
 
!$Id mode_top_bound COMMON comconstr g
 
!$Id mode_top_bound COMMON comconstr kappa
 
subroutine, public dynredem_write_u(ncid, id, var, ll)
 
character(len=256), save, public fil
 
!$Header!c!c!c include serre h!c REAL clon
 
subroutine dynredem0(fichnom, iday_end, 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 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
 
!$Header!CDK comgeom COMMON comgeom aire
 
!$Header!CDK comgeom COMMON comgeom rlatu
 
subroutine dynredem1(fichnom, time, vcov, ucov, teta, q, masse, ps)
 
subroutine err(ierr, typ, nam)
 
!$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 rad
 
character(len=256), save, public modname
 
!$Id mode_top_bound COMMON comconstr cpp
 
character(len=256) function, public msg(typ, nam)
 
!$Id mode_top_bound COMMON comconstr daysec
 
!$Header!CDK comgeom COMMON comgeom rlonu
 
!$Header!CDK comgeom COMMON comgeom rlatv
 
character(len=20), dimension(:), allocatable, save tname
 
subroutine, public dynredem_write_v(ncid, id, var, ll)
 
character(len=4), save type_trac
 
!$Id!Parameters for parameters that control the rate of approach!to quasi equilibrium noff nlm real tlcrit real entp real sigd real coeffs real dtmax real cu real betad real damp real delta COMMON cvparam nlm tlcrit sigd coeffs cu
 
!$Header!c!c!c include serre h!c REAL dzoomx
 
!$Header!c!c!c include serre h!c REAL grossismy
 
!$Id mode_top_bound COMMON comconstr dtvr
 
subroutine, public put_var1(ncid, var, title, did, v, units)
 
!$Header!c!c!c include serre h!c REAL taux
 
c c zjulian c cym CALL iim cym klev iim
 
subroutine, public dynredem_read_u(ncid, id, var, ll)
 
!$Header!c!c!c include serre h!c REAL clat
 
!$Header!CDK comgeom COMMON comgeom cv
 
subroutine, public cre_var(ncid, var, title, did, units)
 
!$Header!gestion des impressions de sorties et de débogage la sortie standard prt_level COMMON comprint lunout
 
!$Header!CDK comgeom COMMON comgeom rlonv