source: LMDZ4/trunk/libf/dyn3d/write_paramLMDZ_dyn.h @ 3400

Last change on this file since 3400 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:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 8.0 KB
RevLine 
[956]1! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
2! Attention : il n'y a aucune raison pour ecrire ces constantes
3! comme des champs 2D. A corriger un jour ...
4
[692]5c
[696]6      ndex2d = 0
[825]7      itau_w=itau_dyn+itau
[692]8c
[1403]9      zx_tmp_2d(1:iip1,1:jjp1)=REAL(prt_level) 
[825]10      CALL histwrite(nid_ctesGCM, "prt_level", itau_w,
[696]11     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]12c
[1403]13      zx_tmp_2d(1:iip1,1:jjp1)=REAL(dayref)
[825]14      CALL histwrite(nid_ctesGCM, "dayref", itau_w,
[696]15     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]16c
[1403]17      zx_tmp_2d(1:iip1,1:jjp1)=REAL(anneeref)
[825]18      CALL histwrite(nid_ctesGCM, "anneeref", itau_w,
[696]19     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]20c
[1403]21      zx_tmp_2d(1:iip1,1:jjp1)=REAL(raz_date)
[825]22      CALL histwrite(nid_ctesGCM, "raz_date", itau_w,
[696]23     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]24c
[1403]25      zx_tmp_2d(1:iip1,1:jjp1)=REAL(nday)
[825]26      CALL histwrite(nid_ctesGCM, "nday", itau_w,
[696]27     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]28c
[1403]29      zx_tmp_2d(1:iip1,1:jjp1)=REAL(day_step)
[825]30      CALL histwrite(nid_ctesGCM, "day_step", itau_w,
[696]31     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]32c
[1403]33      zx_tmp_2d(1:iip1,1:jjp1)=REAL(iperiod)
[825]34      CALL histwrite(nid_ctesGCM, "iperiod", itau_w,
[696]35     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]36c
[1403]37      zx_tmp_2d(1:iip1,1:jjp1)=REAL(iapp_tracvl)
[825]38      CALL histwrite(nid_ctesGCM, "iapp_tracvl", itau_w,
[696]39     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]40c
[1403]41      zx_tmp_2d(1:iip1,1:jjp1)=REAL(iconser)
[825]42      CALL histwrite(nid_ctesGCM, "iconser", itau_w,
[696]43     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]44c
[1403]45      zx_tmp_2d(1:iip1,1:jjp1)=REAL(iecri)
[825]46      CALL histwrite(nid_ctesGCM, "iecri", itau_w,
[696]47     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]48c
[696]49      zx_tmp_2d(1:iip1,1:jjp1)=periodav
[825]50      CALL histwrite(nid_ctesGCM, "periodav", itau_w,
[696]51     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]52c
[1403]53      zx_tmp_2d(1:iip1,1:jjp1)=REAL(idissip)
[825]54      CALL histwrite(nid_ctesGCM, "idissip", itau_w,
[696]55     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]56c
[696]57      IF(lstardis) THEN
58       zx_tmp_2d(1:iip1,1:jjp1)=1.
59      ELSE
60       zx_tmp_2d(1:iip1,1:jjp1)=0.
61      ENDIF
[825]62      CALL histwrite(nid_ctesGCM, "lstardis", itau_w,
[696]63     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]64c
[1403]65      zx_tmp_2d(1:iip1,1:jjp1)=REAL(nitergdiv)
[825]66      CALL histwrite(nid_ctesGCM, "nitergdiv", itau_w,
[696]67     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]68c
[1403]69      zx_tmp_2d(1:iip1,1:jjp1)=REAL(nitergrot)
[825]70      CALL histwrite(nid_ctesGCM, "nitergrot", itau_w,
[696]71     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]72c
[1403]73      zx_tmp_2d(1:iip1,1:jjp1)=REAL(niterh) 
[825]74      CALL histwrite(nid_ctesGCM, "niterh", itau_w,
[696]75     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]76c
[696]77      zx_tmp_2d(1:iip1,1:jjp1)=tetagdiv
[825]78      CALL histwrite(nid_ctesGCM, "tetagdiv", itau_w,
[696]79     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]80c
[696]81      zx_tmp_2d(1:iip1,1:jjp1)=tetagrot
[825]82      CALL histwrite(nid_ctesGCM, "tetagrot", itau_w,
[696]83     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]84c
[696]85      zx_tmp_2d(1:iip1,1:jjp1)=tetatemp
[825]86      CALL histwrite(nid_ctesGCM, "tetatemp", itau_w,
[696]87     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]88c
[696]89      zx_tmp_2d(1:iip1,1:jjp1)=coefdis
[825]90      CALL histwrite(nid_ctesGCM, "coefdis", itau_w,
[696]91     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]92c
[696]93      IF(purmats) THEN
94       zx_tmp_2d(1:iip1,1:jjp1)=1.
95      ELSE
96       zx_tmp_2d(1:iip1,1:jjp1)=0.
97      ENDIF
[825]98      CALL histwrite(nid_ctesGCM, "purmats", itau_w,
[696]99     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]100c
[696]101      IF(ok_guide) THEN
102       zx_tmp_2d(1:iip1,1:jjp1)=1.
103      ELSE
104       zx_tmp_2d(1:iip1,1:jjp1)=0.
105      ENDIF
[825]106      CALL histwrite(nid_ctesGCM, "ok_guide", itau_w,
[696]107     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]108c
[1279]109      if (calend == 'earth_360d') then
110        zx_tmp_2d(1:iip1,1:jjp1)=1.
111      else if (calend == 'earth_365d') then
112        zx_tmp_2d(1:iip1,1:jjp1)=2.
113      else if (calend == 'earth_366d') then
114        zx_tmp_2d(1:iip1,1:jjp1)=3.
115      endif
116
[825]117      CALL histwrite(nid_ctesGCM, "true_calendar", itau_w,
[696]118     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]119c
[1403]120      zx_tmp_2d(1:iip1,1:jjp1)=REAL(iflag_phys)
[825]121      CALL histwrite(nid_ctesGCM, "iflag_phys", itau_w,
[696]122     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]123c
[1403]124      zx_tmp_2d(1:iip1,1:jjp1)=REAL(iphysiq)
[825]125      CALL histwrite(nid_ctesGCM, "iphysiq", itau_w,
[696]126     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]127c
[956]128!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
129! FH 2008/05/02
130! La variable cycle_diurne n'est pas vue par la dynamique
131!     IF(cycle_diurne) THEN
132!      zx_tmp_2d(1:iip1,1:jjp1)=1.
133!     ELSE
134!      zx_tmp_2d(1:iip1,1:jjp1)=0.
135!     ENDIF
136!     CALL histwrite(nid_ctesGCM, "cycle_diurne", itau_w,
137!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
138!
139!     IF(soil_model) THEN
140!      zx_tmp_2d(1:iip1,1:jjp1)=1.
141!     ELSE
142!      zx_tmp_2d(1:iip1,1:jjp1)=0.
143!     ENDIF
144!     CALL histwrite(nid_ctesGCM, "soil_model", itau_w,
145!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
146!
147!     IF(new_oliq) THEN
148!      zx_tmp_2d(1:iip1,1:jjp1)=1.
149!     ELSE
150!      zx_tmp_2d(1:iip1,1:jjp1)=0.
151!     ENDIF
152!     CALL histwrite(nid_ctesGCM, "new_oliq", itau_w,
153!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
154!
155!     IF(ok_orodr) THEN
156!      zx_tmp_2d(1:iip1,1:jjp1)=1.
157!     ELSE
158!      zx_tmp_2d(1:iip1,1:jjp1)=0.
159!     ENDIF
160!     CALL histwrite(nid_ctesGCM, "ok_orodr", itau_w,
161!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
162!
163!     IF(ok_orolf) THEN
164!      zx_tmp_2d(1:iip1,1:jjp1)=1.
165!     ELSE
166!      zx_tmp_2d(1:iip1,1:jjp1)=0.
167!     ENDIF
168!     CALL histwrite(nid_ctesGCM, "ok_orolf", itau_w,
169!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
170!
171!     IF(ok_limitvrai) THEN
172!      zx_tmp_2d(1:iip1,1:jjp1)=1.
173!     ELSE
174!      zx_tmp_2d(1:iip1,1:jjp1)=0.
175!     ENDIF
176!     CALL histwrite(nid_ctesGCM, "ok_limitvrai", itau_w,
177!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
178!
179!     zx_tmp_2d(1:iip1,1:jjp1)=nbapp_rad
180!     CALL histwrite(nid_ctesGCM, "nbapp_rad", itau_w,
181!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
182!
183!     zx_tmp_2d(1:iip1,1:jjp1)=iflag_con
184!     CALL histwrite(nid_ctesGCM, "iflag_con", itau_w,
185!    .               zx_tmp_2d,iip1*jjp1,ndex2d)
186!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[692]187c
[696]188      zx_tmp_2d(1:iip1,1:jjp1)=clon
[825]189      CALL histwrite(nid_ctesGCM, "clon", itau_w,
[696]190     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]191c
[696]192      zx_tmp_2d(1:iip1,1:jjp1)=clat
[825]193      CALL histwrite(nid_ctesGCM, "clat", itau_w,
[696]194     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]195c
[696]196      zx_tmp_2d(1:iip1,1:jjp1)=grossismx
[825]197      CALL histwrite(nid_ctesGCM, "grossismx", itau_w,
[696]198     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]199c
[696]200      zx_tmp_2d(1:iip1,1:jjp1)=grossismy
[825]201      CALL histwrite(nid_ctesGCM, "grossismy", itau_w,
[696]202     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]203c
[696]204      IF(fxyhypb) THEN
205       zx_tmp_2d(1:iip1,1:jjp1)=1.
206      ELSE
207       zx_tmp_2d(1:iip1,1:jjp1)=0.
208      ENDIF
[825]209      CALL histwrite(nid_ctesGCM, "fxyhypb", itau_w,
[696]210     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]211c
[696]212      zx_tmp_2d(1:iip1,1:jjp1)=dzoomx
[825]213      CALL histwrite(nid_ctesGCM, "dzoomx", itau_w,
[696]214     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]215c
[696]216      zx_tmp_2d(1:iip1,1:jjp1)=dzoomy
[825]217      CALL histwrite(nid_ctesGCM, "dzoomy", itau_w,
[696]218     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]219c
[696]220      zx_tmp_2d(1:iip1,1:jjp1)=taux
[825]221      CALL histwrite(nid_ctesGCM, "taux", itau_w,
[696]222     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]223c
[696]224      zx_tmp_2d(1:iip1,1:jjp1)=tauy
[825]225      CALL histwrite(nid_ctesGCM, "tauy", itau_w,
[696]226     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]227c
[696]228      IF(ysinus) THEN
229       zx_tmp_2d(1:iip1,1:jjp1)=1.
230      ELSE
231       zx_tmp_2d(1:iip1,1:jjp1)=0.
232      ENDIF
[825]233      CALL histwrite(nid_ctesGCM, "ysinus", itau_w,
[696]234     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]235c
[784]236      zx_tmp_2d(1:iip1,1:jjp1)=ip_ebil_dyn
[825]237      CALL histwrite(nid_ctesGCM, "ip_ebil_dyn", itau_w,
[696]238     .               zx_tmp_2d,iip1*jjp1,ndex2d)
[692]239c
240c=================================================================
241c
[696]242      if (ok_sync) then
243        call histsync(nid_ctesGCM)
244      endif
[692]245c
246c=================================================================
Note: See TracBrowser for help on using the repository browser.