Ignore:
Timestamp:
Jul 1, 2010, 11:02:53 AM (14 years ago)
Author:
Laurent Fairhead
Message:

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

Location:
LMDZ4/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk

  • LMDZ4/trunk/libf/phylmd/thermcell_old.F

    r987 r1403  
    112112      character (len=10) :: str10
    113113
     114      character (len=20) :: modname='thermcell2002'
     115      character (len=80) :: abort_message
     116
    114117      LOGICAL vtest(klon),down
    115118
     
    336339            if(w2di.eq.2) then
    337340               entr(ig,k)=entr(ig,k)+
    338      s         ptimestep*(zzz-entr(ig,k))/float(tho)
     341     s         ptimestep*(zzz-entr(ig,k))/REAL(tho)
    339342            else
    340343               entr(ig,k)=zzz
     
    379382c     print*,'ig,l+1,ztv(ig,l+1)'
    380383c     print*, ig,l+1,ztv(ig,l+1)
    381 c        stop'dans thermiques'
    382384c     endif
    383385               zw2(ig,l+1)=2.*RG*(ztv(ig,l)-ztv(ig,l+1))/ztv(ig,l+1)
     
    395397c     print*,'Tv ',(ztv(ig,ll),ll=1,klev)
    396398c     print*,'Entr ',(entr(ig,ll),ll=1,klev)
    397 c        stop'dans thermiques'
    398399c     endif
    399400               ztva(ig,l)=(fmc(ig,l)*ztva(ig,l-1)+entr(ig,l)*ztv(ig,l))
     
    517518         do ig=1,ngrid
    518519            if(fracd(ig,l).lt.0.1) then
    519                stop'fracd trop petit'
    520             else
     520              abort_message = 'fracd trop petit'
     521              CALL abort_gcm (modname,abort_message,1)
     522           else
    521523c    vitesse descendante "diagnostique"
    522524               wd(ig,l)=fm(ig,l)/(fracd(ig,l)*rhobarz(ig,l))
     
    588590
    589591      if (w2di.eq.1) then
    590          fm0=fm0+ptimestep*(fm-fm0)/float(tho)
    591          entr0=entr0+ptimestep*(entr-entr0)/float(tho)
     592         fm0=fm0+ptimestep*(fm-fm0)/REAL(tho)
     593         entr0=entr0+ptimestep*(entr-entr0)/REAL(tho)
    592594      else
    593595         fm0=fm
     
    10001002      character*2 str2
    10011003      character*10 str10
     1004
     1005      character (len=20) :: modname='thermcell_cld'
     1006      character (len=80) :: abort_message
    10021007
    10031008      LOGICAL vtest(klon),down
     
    18551860       if (l.eq.klev) then
    18561861          print*,'THERMCELL PB ig=',ig,'   l=',l
    1857           stop
     1862          abort_message = 'THERMCELL PB'
     1863          CALL abort_gcm (modname,abort_message,1)
    18581864       endif
    18591865!       if ((zw2(ig,l+1).gt.1.e-10).and.(zw2(ig,l).gt.1.e-10).and.
     
    21642170         do ig=1,ngrid
    21652171            if(fracd(ig,l).lt.0.1.and.(test(ig).eq.1)) then
    2166                stop'fracd trop petit'
     2172              abort_message = 'fracd trop petit'
     2173              CALL abort_gcm (modname,abort_message,1)
    21672174            else
    21682175c    vitesse descendante "diagnostique"
     
    22622269
    22632270      if (w2di.eq.1) then
    2264          fm0=fm0+ptimestep*(fm-fm0)/float(tho)
    2265          entr0=entr0+ptimestep*(alim+entr-entr0)/float(tho)
     2271         fm0=fm0+ptimestep*(fm-fm0)/REAL(tho)
     2272         entr0=entr0+ptimestep*(alim+entr-entr0)/REAL(tho)
    22662273      else
    22672274         fm0=fm
     
    27472754      character*10 str10
    27482755
     2756      character (len=20) :: modname='thermcell_eau'
     2757      character (len=80) :: abort_message
     2758
    27492759      LOGICAL vtest(klon),down
    27502760      LOGICAL Zsat(klon)
     
    34103420         do ig=1,ngrid
    34113421            if(fracd(ig,l).lt.0.1) then
    3412                stop'fracd trop petit'
     3422              abort_message = 'fracd trop petit'
     3423              CALL abort_gcm (modname,abort_message,1)
    34133424            else
    34143425c    vitesse descendante "diagnostique"
     
    34813492
    34823493      if (w2di.eq.1) then
    3483          fm0=fm0+ptimestep*(fm-fm0)/float(tho)
    3484          entr0=entr0+ptimestep*(entr-entr0)/float(tho)
     3494         fm0=fm0+ptimestep*(fm-fm0)/REAL(tho)
     3495         entr0=entr0+ptimestep*(entr-entr0)/REAL(tho)
    34853496      else
    34863497         fm0=fm
     
    38483859      character*10 str10
    38493860
     3861      character (len=20) :: modname='thermcell'
     3862      character (len=80) :: abort_message
     3863
    38503864      LOGICAL vtest(klon),down
    38513865
     
    43944408         do ig=1,ngrid
    43954409            if(fracd(ig,l).lt.0.1) then
    4396                stop'fracd trop petit'
     4410              abort_message = 'fracd trop petit'
     4411              CALL abort_gcm (modname,abort_message,1)
    43974412            else
    43984413c    vitesse descendante "diagnostique"
     
    44774492cRC
    44784493      if (w2di.eq.1) then
    4479          fm0=fm0+ptimestep*(fm-fm0)/float(tho)
    4480          entr0=entr0+ptimestep*(entr-entr0)/float(tho)
     4494         fm0=fm0+ptimestep*(fm-fm0)/REAL(tho)
     4495         entr0=entr0+ptimestep*(entr-entr0)/REAL(tho)
    44814496      else
    44824497         fm0=fm
     
    52575272      character*10 str10
    52585273
     5274      character (len=20) :: modname='thermcell_sec'
     5275      character (len=80) :: abort_message
     5276
    52595277      LOGICAL vtest(klon),down
    52605278
     
    58225840         do ig=1,ngrid
    58235841            if(fracd(ig,l).lt.0.1) then
    5824                stop'fracd trop petit'
     5842              abort_message = 'fracd trop petit'
     5843              CALL abort_gcm (modname,abort_message,1)
    58255844            else
    58265845c    vitesse descendante "diagnostique"
     
    59055924cRC
    59065925      if (w2di.eq.1) then
    5907          fm0=fm0+ptimestep*(fm-fm0)/float(tho)
    5908          entr0=entr0+ptimestep*(entr-entr0)/float(tho)
     5926         fm0=fm0+ptimestep*(fm-fm0)/REAL(tho)
     5927         entr0=entr0+ptimestep*(entr-entr0)/REAL(tho)
    59095928      else
    59105929         fm0=fm
Note: See TracChangeset for help on using the changeset viewer.