source: LMDZ5/branches/LMDZ5V1.0-dev/libf/bibio/inithist.F @ 2930

Last change on this file since 2930 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
Line 
1!
2! $Id: inithist.F 1403 2010-07-01 09:02:53Z fairhead $
3!
4      subroutine inithist(day0,anne0,tstep,t_ops,t_wrt)
5
6#ifdef CPP_IOIPSL
7       USE IOIPSL
8#endif
9       USE infotrac, ONLY : nqtot, ttext
10       use com_io_dyn_mod, only : histid,histvid,histuid,               &
11     &                        dynhist_file,dynhistv_file,dynhistu_file
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"
50#include "iniprint.h"
51
52C   Arguments
53C
54      integer day0, anne0
55      real tstep, t_ops, t_wrt
56
57#ifdef CPP_IOIPSL
58! This routine needs IOIPSL to work
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     
81! -------------------------------------------------------------
82! Creation des 3 fichiers pour les grilles horizontales U,V,Scal
83! -------------------------------------------------------------
84!Grille U     
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       
92      call histbeg(dynhistu_file, iip1, rlong(:,1), jjp1, rlat(1,:),
93     .             1, iip1, 1, jjp1,
94     .             tau0, zjulian, tstep, uhoriid, histuid)
95
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(dynhistv_file, iip1, rlong(:,1), jjm, rlat(1,:),
105     .             1, iip1, 1, jjm,
106     .             tau0, zjulian, tstep, vhoriid, histvid)
107
108!Grille Scalaire
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
116      call histbeg(dynhist_file, iip1, rlong(:,1), jjp1, rlat(1,:),
117     .             1, iip1, 1, jjp1,
118     .             tau0, zjulian, tstep, thoriid, histid)
119! -------------------------------------------------------------
120C  Appel a histvert pour la grille verticale
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')
128C
129! -------------------------------------------------------------
130C  Appels a histdef pour la definition des variables a sauvegarder
131! -------------------------------------------------------------
132C
133C  Vents U
134C
135      call histdef(histuid, 'u', 'vent u', 'm/s',
136     .             iip1, jjp1, uhoriid, llm, 1, llm, zvertiid,
137     .             32, 'inst(X)', t_ops, t_wrt)
138C
139C  Vents V
140C
141      call histdef(histvid, 'v', 'vent v', 'm/s',
142     .             iip1, jjm, vhoriid, llm, 1, llm, zvertiid,
143     .             32, 'inst(X)', t_ops, t_wrt)
144
145C
146C  Temperature potentielle
147C
148      call histdef(histid, 'teta', 'temperature potentielle', '-',
149     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
150     .             32, 'inst(X)', t_ops, t_wrt)
151C
152C  Geopotentiel
153C
154      call histdef(histid, 'phi', 'geopotentiel', '-',
155     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
156     .             32, 'inst(X)', t_ops, t_wrt)
157C
158C  Traceurs
159C
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
167C  Masse
168C
169      call histdef(histid, 'masse', 'masse', 'kg',
170     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
171     .             32, 'inst(X)', t_ops, t_wrt)
172C
173C  Pression au sol
174C
175      call histdef(histid, 'ps', 'pression naturelle au sol', 'Pa',
176     .             iip1, jjp1, thoriid, 1, 1, 1, -99,
177     .             32, 'inst(X)', t_ops, t_wrt)
178C
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
185C  Fin
186C
187      call histend(histid)
188      call histend(histuid)
189      call histend(histvid)
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
196      return
197      end
Note: See TracBrowser for help on using the repository browser.