source: LMDZ4/trunk/libf/bibio/inithist.F @ 2532

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