source: LMDZ4/trunk/libf/phylmd/initphysto.F @ 5456

Last change on this file since 5456 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: 7.8 KB
Line 
1!
2! $Id: initphysto.F 1403 2010-07-01 09:02:53Z aborella $
3!
4C
5C
6      subroutine initphysto
7     .  (infile,
8     .  rlon, rlat, tstep,t_ops,t_wrt,nq,fileid)
9       
10       USE dimphy
11       USE mod_phys_lmdz_para
12       USE IOIPSL
13       USE iophy
14       USE control_mod
15
16      implicit none
17
18C
19C   Routine d'initialisation des ecritures des fichiers histoires LMDZ
20C   au format IOIPSL
21C
22C   Appels succesifs des routines: histbeg
23C                                  histhori
24C                                  histver
25C                                  histdef
26C                                  histend
27C
28C   Entree:
29C
30C      infile: nom du fichier histoire a creer
31C      day0,anne0: date de reference
32C      tstep: duree du pas de temps en seconde
33C      t_ops: frequence de l'operation pour IOIPSL
34C      t_wrt: frequence d'ecriture sur le fichier
35C      nq: nombre de traceurs
36C
37C   Sortie:
38C      fileid: ID du fichier netcdf cree
39C      filevid:ID du fichier netcdf pour la grille v
40C
41C   L. Fairhead, LMD, 03/99
42C
43C =====================================================================
44C
45C   Declarations
46#include "dimensions.h"
47#include "paramet.h"
48#include "comconst.h"
49#include "comgeom.h"
50#include "temps.h"
51#include "ener.h"
52#include "logic.h"
53#include "description.h"
54#include "serre.h"
55#include "indicesol.h"
56cym#include "dimphy.h"
57
58C   Arguments
59      character*(*) infile
60      integer nhoriid, i
61      real tstep, t_ops, t_wrt
62      integer fileid, filevid
63      integer nq,l
64      real nivsigs(llm)
65
66C   Variables locales
67C
68      integer tau0
69      real zjulian
70      character*3 str
71      character*10 ctrac
72      integer iq
73      integer uhoriid, vhoriid, thoriid, zvertiid
74      integer ii,jj
75      integer zan, idayref
76      logical ok_sync
77      REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)
78C
79      REAL rlon(klon), rlat(klon)
80
81C  Initialisations
82C
83      pi = 4. * atan (1.)
84      str='q  '
85      ctrac = 'traceur   '
86      ok_sync= .true.
87C
88C  Appel a histbeg: creation du fichier netcdf et initialisations diverses
89C         
90
91      zan = annee_ref
92      idayref = day_ref
93      CALL ymds2ju(zan, 1, idayref, 0.0, zjulian)
94      tau0 = 0
95       
96cym     CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon)
97cym         DO i = 1, iim
98cym            zx_lon(i,1) = rlon(i+1)
99cym            zx_lon(i,jjm+1) = rlon(i+1)
100cym         ENDDO
101cym         CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,zx_lat)
102
103
104      call histbeg_phy(infile,tau0, zjulian, tstep,
105     .                 nhoriid, fileid)
106
107c$OMP MASTER   
108C  Appel a histvert pour la grille verticale
109C
110        DO l=1,llm
111            nivsigs(l)=REAL(l)
112         ENDDO
113
114        write(*,*) 'avant histvert ds initphysto'
115
116      call histvert(fileid, 'sig_s', 'Niveaux sigma',
117     . 'sigma_level',
118     .              llm, nivsigs, zvertiid)
119C
120C  Appels a histdef pour la definition des variables a sauvegarder
121C
122        write(*,*) 'apres histvert ds initphysto'
123
124       CALL histdef(fileid, "phis", "Surface geop. height", "-",
125     .                iim,jj_nb,nhoriid, 1,1,1, -99, 32,
126     .                "once", t_ops, t_wrt)
127c
128        write(*,*) 'apres phis ds initphysto'
129
130         CALL histdef(fileid, "aire", "Grid area", "-",
131     .                iim,jj_nb,nhoriid, 1,1,1, -99, 32,
132     .                "once", t_ops, t_wrt)
133         write(*,*) 'apres aire ds initphysto'
134
135cym     Attention dtime et istphy ne sont pas �rit ---> a �iminer ?
136         CALL histdef(fileid, "dtime", "tps phys ", "s",
137     .                1,1,nhoriid, 1,1,1, -99, 32,
138     .                "once", t_ops, t_wrt)
139       
140         CALL histdef(fileid, "istphy", "tps stock", "s",
141     .                1,1,nhoriid, 1,1,1, -99, 32,
142     .                "once", t_ops, t_wrt)
143
144C T
145C
146      call histdef(fileid, 't', 'Temperature', 'K',
147     .             iim, jj_nb, nhoriid, llm, 1, llm, zvertiid,
148     .             32, 'inst(X)', t_ops, t_wrt)
149        write(*,*) 'apres t ds initphysto'
150C mfu
151C
152      call histdef(fileid, 'mfu', 'flx m. pan. mt', 'kg m/s',
153     .             iim, jj_nb, nhoriid, llm, 1, llm, zvertiid,
154     .             32, 'inst(X)', t_ops, t_wrt)
155        write(*,*) 'apres mfu ds initphysto'
156C
157C mfd
158C
159      call histdef(fileid, 'mfd', 'flx m. pan. des', 'kg m/s',
160     .             iim, jj_nb, nhoriid, llm, 1, llm, zvertiid,
161     .             32, 'inst(X)', t_ops, t_wrt)
162
163C
164C en_u
165C
166      call histdef(fileid, 'en_u', 'flx ent pan mt', 'kg m/s',
167     .             iim, jj_nb, nhoriid, llm, 1, llm, zvertiid,
168     .             32, 'inst(X)', t_ops, t_wrt)
169               write(*,*) 'apres en_u ds initphysto'
170C
171C de_u
172C
173      call histdef(fileid, 'de_u', 'flx det pan mt', 'kg m/s',
174     .             iim, jj_nb, nhoriid, llm, 1, llm, zvertiid,
175     .             32, 'inst(X)', t_ops, t_wrt)
176
177C
178C en_d
179C
180      call histdef(fileid, 'en_d', 'flx ent pan dt', 'kg m/s',
181     .             iim, jj_nb, nhoriid, llm, 1, llm, zvertiid,
182     .             32, 'inst(X)', t_ops, t_wrt)
183C
184
185C
186C de_d
187C
188      call histdef(fileid, 'de_d', 'flx det pan dt', 'kg m/s',
189     .             iim, jj_nb, nhoriid, llm, 1, llm, zvertiid,
190     .             32, 'inst(X)', t_ops, t_wrt)
191
192c coefh frac_impa,frac_nucl
193       
194        call histdef(fileid, "coefh", " ", " ",
195     .             iim, jj_nb, nhoriid, llm, 1, llm, zvertiid,
196     .             32, "inst(X)", t_ops, t_wrt)
197
198c abderrahmane le 16 09 02
199        call histdef(fileid, "fm_th", " ", " ",
200     .             iim, jj_nb, nhoriid, llm, 1, llm, zvertiid,
201     .             32, "inst(X)", t_ops, t_wrt)
202
203        call histdef(fileid, "en_th", " ", " ",
204     .             iim, jj_nb, nhoriid, llm, 1, llm, zvertiid,
205     .             32, "inst(X)", t_ops, t_wrt)
206c fin aj
207       
208        write(*,*) 'apres coefh ds initphysto' 
209
210        call histdef(fileid, 'frac_impa', ' ', ' ',
211     .             iim, jj_nb, nhoriid, llm, 1, llm, zvertiid,
212     .             32, 'inst(X)', t_ops, t_wrt)
213       
214        call histdef(fileid, 'frac_nucl', ' ', ' ',
215     .             iim, jj_nb, nhoriid, llm, 1, llm, zvertiid,
216     .             32, 'inst(X)', t_ops, t_wrt)
217
218c
219c pyu1
220c
221      CALL histdef(fileid, "pyu1", " ", " ",
222     .                iim,jj_nb,nhoriid, 1,1,1, -99, 32,
223     .                "inst(X)", t_ops, t_wrt)
224
225c
226c pyv1
227c
228        CALL histdef(fileid, "pyv1", " ", " ",
229     .                iim,jj_nb,nhoriid, 1,1,1, -99, 32,
230     .                "inst(X)", t_ops, t_wrt)
231       
232        write(*,*) 'apres pyv1 ds initphysto'
233c
234c ftsol1
235c
236        call histdef(fileid, "ftsol1", " ", " ",
237     .             iim, jj_nb, nhoriid, 1, 1,1, -99,32,
238     .             "inst(X)", t_ops, t_wrt)
239
240c
241c ftsol2
242c
243        call histdef(fileid, "ftsol2", " ", " ",
244     .             iim, jj_nb, nhoriid, 1, 1,1, -99,32,
245     .             "inst(X)", t_ops, t_wrt)
246
247c
248c ftsol3
249c
250        call histdef(fileid, "ftsol3", " ", " ",
251     .             iim, jj_nb, nhoriid, 1, 1,1, -99,
252     .             32, "inst(X)", t_ops, t_wrt)
253
254c
255c ftsol4
256c
257        call histdef(fileid, "ftsol4", " ", " ",
258     .             iim, jj_nb, nhoriid, 1, 1,1, -99,
259     .             32, "inst(X)", t_ops, t_wrt)
260       
261c
262c rain
263c
264        call histdef(fileid, "rain", " ", " ",
265     .             iim, jj_nb, nhoriid, 1, 1,1, -99,
266     .             32, "inst(X)", t_ops, t_wrt)
267
268c
269c psrf1
270c
271        call histdef(fileid, "psrf1", " ", " ",
272     .             iim, jj_nb, nhoriid, 1, 1, 1, -99,
273     .             32, "inst(X)", t_ops, t_wrt)
274       
275c
276c psrf2
277c
278        call histdef(fileid, "psrf2", " ", " ",
279     .             iim, jj_nb, nhoriid, 1, 1, 1, -99,
280     .             32, "inst(X)", t_ops, t_wrt)
281
282c
283c psrf3
284c
285        call histdef(fileid, "psrf3", " ", " ",
286     .             iim, jj_nb, nhoriid, 1, 1, 1, -99,
287     .             32, "inst(X)", t_ops, t_wrt)
288
289c
290c psrf4
291c
292        call histdef(fileid, "psrf4", " ", " ",
293     .             iim, jj_nb, nhoriid, 1, 1, 1, -99,
294     .             32, "inst(X)", t_ops, t_wrt)
295       
296        write(*,*) 'avant histend ds initphysto'       
297
298      call histend(fileid)
299c     if (ok_sync) call histsync(fileid)
300      if (ok_sync) call histsync
301c$OMP END MASTER
302       
303
304      return
305      end
Note: See TracBrowser for help on using the repository browser.