68   include 
"dimensions.h" 
   71   include 
"comdissnew.h" 
   78   include 
"description.h" 
   89   REAL, 
ALLOCATABLE, 
DIMENSION(:,:,:):: q
 
  108   real time_step, t_wrt, t_ops
 
  123   CHARACTER (len=15) :: ztit
 
  127   character (len=80) :: dynhist_file, dynhistave_file
 
  128   character (len=20) :: modname
 
  129   character (len=80) :: abort_message
 
  131   INTEGER :: an, mois, jour
 
  133   logical use_filtre_fft
 
  139   abort_message = 
'last timestep reached' 
  141   descript = 
'Run GCM LMDZ' 
  143   dynhist_file = 
'dyn_hist.nc' 
  144   dynhistave_file = 
'dyn_hist_ave.nc' 
  155        "iphysiq must be a multiple of iperiod", 1)
 
  157   use_filtre_fft=.
false.
 
  158   CALL getin(
'use_filtre_fft',use_filtre_fft)
 
  159   IF (use_filtre_fft) 
call abort_gcm(
'FFT filter is not available in the ' &
 
  160           // 
'sequential version of the dynamics.', 1)
 
  167   CALL wxios_init(
"LMDZ")
 
  187   if (calend == 
'earth_360d') 
then 
  188      call ioconf_calendar(
'360d')
 
  189      write(
lunout,*)
'CALENDRIER CHOISI: Terrestre a 360 jours/an' 
  190   else if (calend == 
'earth_365d') 
then 
  191      call ioconf_calendar(
'noleap')
 
  192      write(
lunout,*)
'CALENDRIER CHOISI: Terrestre a 365 jours/an' 
  193   else if (calend == 
'gregorian') 
then 
  194      call ioconf_calendar(
'gregorian')
 
  195      write(
lunout,*)
'CALENDRIER CHOISI: Terrestre bissextile' 
  197      abort_message = 
'Mauvais choix de calendrier' 
  229         CALL iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0)
 
  234      CALL dynetat0(
"start.nc",vcov,ucov, &
 
  235           teta,q,masse,ps,phis, time_0)
 
  249        'GCM: AVANT iniacademic AVANT AVANT AVANT AVANT' 
  251      CALL iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0)
 
  262           'Il faut choisir un nb de pas par jour multiple de iperiod' 
  268           'Il faut choisir un nb de pas par jour multiple de iphysiq' 
  273   IF(
dtvr.NE.zdtvr) 
THEN 
  275           'WARNING!!! changement de pas de temps',
dtvr,
'>',zdtvr
 
  282      WRITE(
lunout,*)
' GCM: Attention l''heure de depart lue dans le' &
 
  283           ,
' fichier restart ne correspond pas a celle lue dans le run.def' 
  285         WRITE(
lunout,*)
'Je prends l''heure lue dans run.def' 
  288         call abort_gcm(
"gcm", 
"'Je m''arrete'", 1)
 
  299           'GCM: On reinitialise a la date lue dans gcm.def' 
  302           'GCM: Attention les dates initiales lues dans le fichier' 
  304           ' restart ne correspondent pas a celles lues dans ' 
  308      write(
lunout,*)
' Pas de remise a zero' 
  340   jh_ref = jd_ref - int(jd_ref)
 
  343   call ioconf_startdate(int(jd_ref), jh_ref)
 
  346   write(
lunout,*)
'annee_ref, mois, day_ref, heure, jD_ref' 
  348   call ju2ymds(jd_ref+jh_ref,an, mois, jour, heure)
 
  349   write(
lunout,*)
'jD_ref+jH_ref,an, mois, jour, heure' 
  350   write(
lunout,*)jd_ref+jh_ref,an, mois, jour, heure
 
  397           rlatu,
rlatv,
rlonu,
rlonv,
aire,
cu,
cv,
rad,
g,
r,
cpp, &
 
  415 300 
FORMAT(
'1'/,15
x,
'run du jour',i7,2
x,
'au jour',i7//)
 
  419   write (
lunout,301)jour, mois, an
 
  421   write (
lunout,302)jour, mois, an
 
  422 301 
FORMAT(
'1'/,15
x,
'run du ', i2,
'/',i2,
'/',i4)
 
  423 302 
FORMAT(
'1'/,15
x,
'    au ', i2,
'/',i2,
'/',i4)
 
  475   CALL leapfrog(ucov,vcov,teta,ps,masse,phis,q,time_0)
 
!$Header llmm1 INTEGER ip1jmp1
 
subroutine iniphysiq(iim, jjm, nlayer, nbp, communicator, punjours, pdayref, ptimestep, rlatu, rlatv, rlonu, rlonv, aire, cu, cv, prad, pg, pr, pcpp, iflag_phys)
 
!$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 r
 
subroutine dynetat0(fichnom, vcov, ucov, teta, q, masse, ps, phis, time)
 
!$Id mode_top_bound COMMON comconstr g
 
!$Header!common tracstoke istphy
 
subroutine dynredem0(fichnom, iday_end, phis)
 
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
 
!$Header!CDK comgeom COMMON comgeom aire
 
!$Header!CDK comgeom COMMON comgeom rlatu
 
!$Id ysinus ok_gradsfile hybrid COMMON logici iflag_phys
 
!$Header llmm1 INTEGER ip1jm
 
!$Id mode_top_bound COMMON comconstr dtphys
 
!$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
 
!$Id mode_top_bound COMMON comconstr cpp
 
!FH On elimine toutes les clefs physiques dans la dynamique prt_level
 
!$Id mode_top_bound COMMON comconstr daysec
 
subroutine conf_gcm(tapedef, etatinit)
 
!$Header!CDK comgeom COMMON comgeom rlonu
 
!$Header!CDK comgeom COMMON comgeom rlatv
 
subroutine inithist(day0, anne0, tstep, t_ops, t_wrt)
 
!$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
 
!$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!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
 
!$Id mode_top_bound COMMON comconstr dtvr
 
integer, save nsplit_phys
 
!$Header!INCLUDE comdissip h COMMON comdissip tetatemp
 
subroutine leapfrog(ucov, vcov, teta, ps, masse, phis, q, time_0)
 
c c zjulian c cym CALL iim cym klev iim
 
subroutine iniacademic(vcov, ucov, teta, q, masse, ps, phis, time_0)
 
subroutine inidissip(lstardis, nitergdiv, nitergrot, niterh, tetagdiv, tetagrot, tetatemp, vert_prof_dissip)
 
!$Header!common tracstoke istdyn
 
!$Header!CDK comgeom COMMON comgeom cv
 
subroutine initdynav(day0, anne0, tstep, t_ops, t_wrt)
 
!$Header!gestion des impressions de sorties et de débogage la sortie standard prt_level COMMON comprint lunout
 
!$Header!CDK comgeom COMMON comgeom rlonv