source: LMDZ4/trunk/libf/bibio/initdynav.F @ 5451

Last change on this file since 5451 was 1403, checked in by Laurent Fairhead, 15 years ago

Merged LMDZ4V5.0-dev branch changes r1292:r1399 to trunk.

Validation:
Validation consisted in compiling the HEAD revision of the trunk,
LMDZ4V5.0-dev branch and the merged sources and running different
configurations on local and SX8 machines comparing results.

Local machine: bench configuration, 32x24x11, gfortran

  • IPSLCM5A configuration (comparison between trunk and merged sources):
    • numerical convergence on dynamical fields over 3 days
    • start files are equivalent (except for RN and PB fields)
    • daily history files equivalent
  • MH07 configuration, new physics package (comparison between LMDZ4V5.0-dev branch and merged sources):
    • numerical convergence on dynamical fields over 3 days
    • start files are equivalent (except for RN and PB fields)
    • daily history files equivalent

SX8 machine (brodie), 96x95x39 on 4 processors:

  • IPSLCM5A configuration:
    • start files are equivalent (except for RN and PB fields)
    • monthly history files equivalent
  • MH07 configuration:
    • start files are equivalent (except for RN and PB fields)
    • monthly history files equivalent

Changes to the makegcm and create_make_gcm scripts to take into account
main programs in F90 files


Fusion de la branche LMDZ4V5.0-dev (r1292:r1399) au tronc principal

Validation:
La validation a consisté à compiler la HEAD de le trunk et de la banche
LMDZ4V5.0-dev et les sources fusionnées et de faire tourner le modéle selon
différentes configurations en local et sur SX8 et de comparer les résultats

En local: 32x24x11, config bench/gfortran

  • pour une config IPSLCM5A (comparaison tronc/fusion):
    • convergence numérique sur les champs dynamiques après 3 jours
    • restart et restartphy égaux (à part sur RN et Pb)
    • fichiers histoire égaux
  • pour une config nlle physique (MH07) (comparaison LMDZ4v5.0-dev/fusion):
    • convergence numérique sur les champs dynamiques après 3 jours
    • restart et restartphy égaux
    • fichiers histoire équivalents

Sur brodie, 96x95x39 sur 4 proc:

  • pour une config IPSLCM5A:
    • restart et restartphy égaux (à part sur RN et PB)
    • pas de différence dans les fichiers histmth.nc
  • pour une config MH07
    • restart et restartphy égaux (à part sur RN et PB)
    • pas de différence dans les fichiers histmth.nc

Changement sur makegcm et create_make-gcm pour pouvoir prendre en compte des
programmes principaux en *F90

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.7 KB
RevLine 
[524]1!
[1279]2! $Id: initdynav.F 1403 2010-07-01 09:02:53Z fhourdin $
[524]3!
[1403]4      subroutine initdynav(day0,anne0,tstep,t_ops,t_wrt)
[524]5
[1279]6#ifdef CPP_IOIPSL
[524]7       USE IOIPSL
[1279]8#endif
[1146]9       USE infotrac, ONLY : nqtot, ttext
[1403]10      use com_io_dyn_mod, only : histaveid,histvaveid,histuaveid,       &
11     &        dynhistave_file,dynhistvave_file,dynhistuave_file
[524]12      implicit none
13
14C
15C   Routine d'initialisation des ecritures des fichiers histoires LMDZ
16C   au format IOIPSL. Initialisation du fichier histoire moyenne.
17C
18C   Appels succesifs des routines: histbeg
19C                                  histhori
20C                                  histver
21C                                  histdef
22C                                  histend
23C
24C   Entree:
25C
26C      infile: nom du fichier histoire a creer
27C      day0,anne0: date de reference
28C      tstep : frequence d'ecriture
29C      t_ops: frequence de l'operation pour IOIPSL
30C      t_wrt: frequence d'ecriture sur le fichier
31C
32C
33C   L. Fairhead, LMD, 03/99
34C
35C =====================================================================
36C
37C   Declarations
38#include "dimensions.h"
39#include "paramet.h"
40#include "comconst.h"
41#include "comvert.h"
42#include "comgeom.h"
43#include "temps.h"
44#include "ener.h"
45#include "logic.h"
46#include "description.h"
47#include "serre.h"
[1279]48#include "iniprint.h"
[524]49
50C   Arguments
51C
[1279]52      integer day0, anne0
[524]53      real tstep, t_ops, t_wrt
54
[1279]55#ifdef CPP_IOIPSL
56! This routine needs IOIPSL to work
[524]57C   Variables locales
58C
59      integer tau0
60      real zjulian
61      integer iq
62      real rlong(iip1,jjp1), rlat(iip1,jjp1)
[1403]63      integer uhoriid, vhoriid, thoriid, zvertiid
[524]64      integer ii,jj
65      integer zan, dayref
66C
67C  Initialisations
68C
69      pi = 4. * atan (1.)
70C
71C  Appel a histbeg: creation du fichier netcdf et initialisations diverses
72C         
73
74      zan = anne0
75      dayref = day0
76      CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)
77      tau0 = itau_dyn
78     
79      do jj = 1, jjp1
80        do ii = 1, iip1
81          rlong(ii,jj) = rlonv(ii) * 180. / pi
82          rlat(ii,jj)  = rlatu(jj) * 180. / pi
83        enddo
84      enddo
85       
[1403]86! Creation de 3 fichiers pour les differentes grilles horizontales
87! Restriction de IOIPSL: seulement 2 coordonnees dans le meme fichier
88! Grille Scalaire       
89      call histbeg(dynhistave_file, iip1, rlong(:,1), jjp1, rlat(1,:),
[524]90     .             1, iip1, 1, jjp1,
[1403]91     .             tau0, zjulian, tstep, thoriid,histaveid)
[524]92
[1403]93C  Creation du fichier histoire pour les grilles en V et U (oblige pour l'instant,
94C  IOIPSL ne permet pas de grilles avec des nombres de point differents dans
95C  un meme fichier)
96! Grille V
97      do jj = 1, jjm
98        do ii = 1, iip1
99          rlong(ii,jj) = rlonv(ii) * 180. / pi
100          rlat(ii,jj) = rlatv(jj) * 180. / pi
101        enddo
102      enddo
103
104      call histbeg(dynhistvave_file, iip1, rlong(:,1), jjm, rlat(1,:),
105     .             1, iip1, 1, jjm,
106     .             tau0, zjulian, tstep, vhoriid,histvaveid)
107! Grille U
108      do jj = 1, jjp1
109        do ii = 1, iip1
110          rlong(ii,jj) = rlonu(ii) * 180. / pi
111          rlat(ii,jj) = rlatu(jj) * 180. / pi
112        enddo
113      enddo
114
115      call histbeg(dynhistuave_file, iip1, rlong(:,1),jjp1, rlat(1,:),
116     .             1, iip1, 1, jjp1,
117     .             tau0, zjulian, tstep, uhoriid,histuaveid)
[524]118C
119C  Appel a histvert pour la grille verticale
120C
[1403]121      call histvert(histaveid,'presnivs','Niveaux Pression
122     &     approximatifs','mb',llm, presnivs/100., zvertiid,'down')
123      call histvert(histuaveid,'presnivs','Niveaux Pression
124     &     approximatifs','mb',llm, presnivs/100., zvertiid,'down')
125      call histvert(histvaveid,'presnivs','Niveaux Pression
126     &     approximatifs','mb',llm, presnivs/100., zvertiid,'down')
[524]127C
128C  Appels a histdef pour la definition des variables a sauvegarder
129C
130C  Vents U
131C
[1403]132!      write(6,*)'inithistave',tstep
133      call histdef(histuaveid, 'u', 'vent u moyen ',
134     .             'm/s', iip1, jjp1, uhoriid, llm, 1, llm, zvertiid,
[524]135     .             32, 'ave(X)', t_ops, t_wrt)
136
137C  Vents V
138C
[1403]139      call histdef(histvaveid, 'v', 'vent v moyen',
140     .             'm/s', iip1, jjm, vhoriid, llm, 1, llm, zvertiid,
[524]141     .             32, 'ave(X)', t_ops, t_wrt)
142
143C
144C  Temperature
145C
[1403]146      call histdef(histaveid, 'temp', 'temperature moyenne', 'K',
[524]147     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
148     .             32, 'ave(X)', t_ops, t_wrt)
149C
150C  Temperature potentielle
151C
[1403]152      call histdef(histaveid, 'theta', 'temperature potentielle', 'K',
[524]153     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
154     .             32, 'ave(X)', t_ops, t_wrt)
155C
156C  Geopotentiel
157C
[1403]158      call histdef(histaveid, 'phi', 'geopotentiel moyen', '-',
[524]159     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
160     .             32, 'ave(X)', t_ops, t_wrt)
161C
162C  Traceurs
163C
[1403]164!        DO iq=1,nqtot
165!          call histdef(histaveid, ttext(iq), ttext(iq), '-',
166!     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
167!     .             32, 'ave(X)', t_ops, t_wrt)
168!        enddo
[524]169C
170C  Masse
171C
[1403]172      call histdef(histaveid, 'masse', 'masse', 'kg',
173     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
[524]174     .             32, 'ave(X)', t_ops, t_wrt)
175C
176C  Pression au sol
177C
[1403]178      call histdef(histaveid, 'ps', 'pression naturelle au sol', 'Pa',
[524]179     .             iip1, jjp1, thoriid, 1, 1, 1, -99,
180     .             32, 'ave(X)', t_ops, t_wrt)
181C
[1403]182C  Geopotentiel au sol
[524]183C
[1403]184!      call histdef(histaveid, 'phis', 'geopotentiel au sol', '-',
185!     .             iip1, jjp1, thoriid, 1, 1, 1, -99,
186!     .             32, 'ave(X)', t_ops, t_wrt)
187!C
[524]188C  Fin
189C
[1403]190      call histend(histaveid)
191      call histend(histuaveid)
192      call histend(histvaveid)
[1279]193#else
194! tell the user this routine should be run with ioipsl
195      write(lunout,*)"initdynav: Warning this routine should not be",
196     &               " used without ioipsl"
197#endif
198! of #ifdef CPP_IOIPSL
[524]199      return
200      end
Note: See TracBrowser for help on using the repository browser.