12   USE netcdf
, ONLY: nf90_create, nf90_def_dim, nf90_inq_varid, nf90_global,    &
 
   13                     nf90_close,  nf90_put_att, nf90_unlimited, nf90_clobber
 
   16   include 
"dimensions.h" 
   24   include 
"description.h" 
   29   CHARACTER(LEN=*), 
INTENT(IN) :: fichnom          
 
   30   INTEGER,          
INTENT(IN) :: iday_end         
 
   35   INTEGER, 
PARAMETER :: length=100
 
   36   REAL    :: tab_cntrl(length)                     
 
   39   CHARACTER(LEN=30) :: unites
 
   41   INTEGER :: rlonuID, rlonvID, rlatuID, rlatvID
 
   42   INTEGER :: sID, sigID, nID, vID, timID
 
   43   INTEGER :: yyears0, jjour0, mmois0
 
   44   REAL    :: zan0, zjulian, hours
 
   52   CALL ju2ymds(zjulian, yyears0, mmois0, jjour0, hours)
 
   61   tab_cntrl(1)  = 
REAL(
iim)
 
   62   tab_cntrl(2)  = 
REAL(jjm)
 
   63   tab_cntrl(3)  = 
REAL(
llm)
 
  101     IF( ysinus )  tab_cntrl(27) = 1.
 
  103   tab_cntrl(30) = 
REAL(iday_end)
 
  109   CALL err(nf90_create(fichnom,nf90_clobber,nid))
 
  112   CALL err(nf90_put_att(nid,nf90_global,
"title",
"Fichier demarrage dynamique"))
 
  115   CALL err(nf90_def_dim(nid,
"index", length, indexid))
 
  116   CALL err(nf90_def_dim(nid,
"rlonu", iip1,   rlonuid))
 
  117   CALL err(nf90_def_dim(nid,
"rlatu", 
jjp1,   rlatuid))
 
  118   CALL err(nf90_def_dim(nid,
"rlonv", iip1,   rlonvid))
 
  119   CALL err(nf90_def_dim(nid,
"rlatv", jjm,    rlatvid))
 
  120   CALL err(nf90_def_dim(nid,
"sigs",  
llm,        sid))
 
  121   CALL err(nf90_def_dim(nid,
"sig",   
llmp1,    sigid))
 
  122   CALL err(nf90_def_dim(nid,
"temps", nf90_unlimited, timid))
 
  125   CALL put_var(nid,
"controle",
"Parametres de controle" ,[indexid],tab_cntrl)
 
  126   CALL put_var(nid,
"rlonu"   ,
"Longitudes des points U",[rlonuid],
rlonu)
 
  127   CALL put_var(nid,
"rlatu"   ,
"Latitudes des points U" ,[rlatuid],
rlatu)
 
  128   CALL put_var(nid,
"rlonv"   ,
"Longitudes des points V",[rlonvid],
rlonv)
 
  129   CALL put_var(nid,
"rlatv"   ,
"Latitudes des points V" ,[rlatvid],
rlatv)
 
  130   CALL put_var(nid,
"nivsigs" ,
"Numero naturel des couches s"    ,[sid]  ,
nivsigs)
 
  131   CALL put_var(nid,
"nivsig"  ,
"Numero naturel des couches sigma",[sigid],
nivsig)
 
  132   CALL put_var(nid,
"ap"      ,
"Coefficient A pour hybride"      ,[sigid],ap)
 
  133   CALL put_var(nid,
"bp"      ,
"Coefficient B pour hybride"      ,[sigid],
bp)
 
  136   CALL put_var(nid,
"cu",
"Coefficient de passage pour U",[rlonuid,rlatuid],
cu)
 
  137   CALL put_var(nid,
"cv",
"Coefficient de passage pour V",[rlonvid,rlatvid],
cv)
 
  138   CALL put_var(nid,
"aire",
"Aires de chaque maille"     ,[rlonvid,rlatuid],
aire)
 
  139   CALL put_var(nid,
"phisinit",
"Geopotentiel au sol"    ,[rlonvid,rlatuid],phis_glo)
 
  142   WRITE(unites,
"('days since ',i4,'-',i2.2,'-',i2.2,' 00:00:00')"),&
 
  143                yyears0,mmois0,jjour0
 
  144   CALL cre_var(nid,
"temps",
"Temps de simulation",[timid],unites)
 
  145   CALL cre_var(nid,
"ucov" ,
"Vitesse U"  ,[rlonuid,rlatuid,sid,timid])
 
  146   CALL cre_var(nid,
"vcov" ,
"Vitesse V"  ,[rlonvid,rlatvid,sid,timid])
 
  147   CALL cre_var(nid,
"teta" ,
"Temperature",[rlonvid,rlatuid,sid,timid])
 
  151   CALL cre_var(nid,
"masse",
"Masse d air"    ,[rlonvid,rlatuid,sid,timid])
 
  152   CALL cre_var(nid,
"ps"   ,
"Pression au sol",[rlonvid,rlatuid    ,timid])
 
  153   CALL err(nf90_close(nid))
 
  156   WRITE(
lunout,*)trim(
modname)//
': rad,omeg,g,cpp,kappa',
rad,omeg,
g,
cpp,
kappa 
  165 SUBROUTINE dynredem1_loc(fichnom,time,vcov,ucov,teta,q,masse,ps)
 
  174   USE netcdf
,   ONLY: nf90_open,  nf90_nowrite, nf90_get_var, nf90_inq_varid,  &
 
  175                       nf90_close, nf90_write,   nf90_put_var, nf90_noerr
 
  179   include 
"dimensions.h" 
  181   include 
"description.h" 
  188   CHARACTER(LEN=*), 
INTENT(IN) :: fichnom              
 
  189   REAL, 
INTENT(IN)    ::  time                         
 
  198   INTEGER :: l, iq, nid, vID, ierr, nid_trac, vID_trac
 
  199   INTEGER, 
SAVE :: nb=0
 
  200   INTEGER, 
PARAMETER :: length=100
 
  201   REAL               :: tab_cntrl(length) 
 
  202   CHARACTER(LEN=256) :: var, dum
 
  203   LOGICAL            :: lread_inca
 
  210   CALL err(nf90_open(
fil,nf90_write,nid),
"open",
fil)
 
  215   CALL err(nf90_inq_varid(nid,var,vid),
"inq",var)
 
  216   CALL err(nf90_put_var(nid,vid,[time]),
"put",var)
 
  221   CALL err(nf90_inq_varid(nid,var,vid),
"inq",var)
 
  222   CALL err(nf90_get_var(nid,vid,tab_cntrl),
"get",var)
 
  224   CALL err(nf90_inq_varid(nid,var,vid),
"inq",var)
 
  225   CALL err(nf90_put_var(nid,vid,tab_cntrl),
"put",var)
 
  238   lread_inca=.
false.; 
fil=
"start_trac.nc" 
  239   IF(
type_trac==
'inca') 
INQUIRE(file=
fil,exist=lread_inca)
 
  240   IF(lread_inca) 
CALL err(nf90_open(
fil,nf90_nowrite,nid_trac),
"open")
 
  249       ierr=nf90_inq_varid(nid_trac,var,vid_trac)
 
  250       dum=
'inq'; 
IF(ierr==nf90_noerr) dum=
'fnd' 
  262   CALL err(nf90_close(nid),
"close")
 
  264   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
 
!$Header llmm1 INTEGER ip1jmp1
 
!$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
 
!$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 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
 
subroutine dynredem1_loc(fichnom, time, vcov, ucov, teta, q, masse, ps)
 
!$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)
 
subroutine gather_field_u(field_loc, field_glo, 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
 
!$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
 
subroutine, public put_var(ncid, var, title, did, v, units)
 
!$Header!CDK comgeom COMMON comgeom cv
 
subroutine dynredem0_loc(fichnom, iday_end, phis)
 
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