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/cv3_routines.F

    r1334 r1403  
    11!
    2 ! $Header: /home/cvsroot/LMDZ4/libf/phylmd/cv3_routines.F,v 1.16 2008-11-06 16:29:35 lmdzadmin Exp $
     2! $Id$
    33!
    44c
     
    3636      real delt ! timestep (seconds)
    3737
     38      CHARACTER (LEN=20) :: modname='cv3_param'
     39      CHARACTER (LEN=80) :: abort_message
     40
    3841c noff: integer limit for convection (nd-noff)
    3942c minorig: First level of convection
     
    7174c      dtcrit = -5.0
    7275c      tau    = 3000.
    73 cc      tau = 1800.
    74 c     tau= 2800.
    75       tau=8000.
     76      tau = 1800.
     77cc      tau=8000.
    7678      beta   = 1.0 - delt/tau
    7779      alpha1 = 1.5e-3
     
    767769
    768770#include "cv3param.h"
     771      include 'iniprint.h'
    769772
    770773c inputs:
     
    797800      integer i,k,nn,j
    798801
     802      CHARACTER (LEN=20) :: modname='cv3_compress'
     803      CHARACTER (LEN=80) :: abort_message
    799804
    800805      do 110 k=1,nl+1
     
    839844
    840845      if (nn.ne.ncum) then
    841          print*,'strange! nn not equal to ncum: ',nn,ncum
    842          stop
     846         write(lunout,*)'strange! nn not equal to ncum: ',nn,ncum
     847         abort_message = ''
     848         CALL abort_gcm (modname,abort_message,1)
    843849      endif
    844850
     
    20872093cc---end jyg---
    20882094c
    2089 c--------retour à la formulation originale d''Emanuel.
     2095c--------retour à la formulation originale d'Emanuel.
    20902096      b6=bfac*50.*sigd(il)*(ph(il,i)-ph(il,i+1))*sigt*afac
    20912097      c6=water(il,i+1)+bfac*wdtrain(il)
     
    20932099      if(c6.gt.0.0)then
    20942100       revap=0.5*(-b6+sqrt(b6*b6+4.*c6))
    2095        water(il,i)=revap*revap      !equation de conservation
     2101cjyg    Dans sa formulation originale, Emanuel calcule l'evaporation par:
     2102cc             evap(il,i)=sigt*afac*revap
     2103c     ce qui n'est pas correct. Dans cv_routines, la formulation a été modifiee.
     2104c     Ici,l'evaporation evap est simplement calculee par l'equation de
     2105c     conservation.
     2106       water(il,i)=revap*revap
    20962107      else
     2108cjyg----   Correction : si c6 <= 0, water(il,i)=0.
    20972109       water(il,i) = 0.
    20982110      endif
     
    23382350      real esum(nloc), fsum(nloc), gsum(nloc), hsum(nloc)
    23392351      real th_wake(nloc,nd)
    2340       real alpha_qpos(nloc)
     2352      real alpha_qpos(nloc),alpha_qpos1(nloc)
    23412353      real qcond(nloc,nd), nqcond(nloc,nd), wa(nloc,nd)  ! cld
    23422354      real siga(nloc,nd), sax(nloc,nd), mac(nloc,nd)      ! cld
     
    30433055       do il=1,ncum
    30443056        IF (iflag(il) .le. 1) THEN
     3057        IF (cvflag_grav) then
     3058        ex=0.01*grav*ment(il,inb(il),inb(il))
     3059     :      *(traent(il,inb(il),inb(il),j)-tra(il,inb(il),j))
     3060     :      /(ph(i l,inb(il))-ph(il,inb(il)+1))
     3061        ftra(il,inb(il),j)=ftra(il,inb(il),j)-ex
     3062        ftra(il,inb(il)-1,j)=ftra(il,inb(il)-1,j)
     3063     :       +ex*(ph(il,inb(il))-ph(il,inb(il)+1))
     3064     :          /(ph(il,inb(il)-1)-ph(il,inb(il)))
     3065        else
    30453066        ex=0.1*ment(il,inb(il),inb(il))
    30463067     :      *(traent(il,inb(il),inb(il),j)-tra(il,inb(il),j))
     
    30503071     :       +ex*(ph(il,inb(il))-ph(il,inb(il)+1))
    30513072     :          /(ph(il,inb(il)-1)-ph(il,inb(il)))
     3073        ENDIF   !cvflag grav
    30523074        ENDIF    !iflag
    30533075       enddo
     
    31153137c        in order to ensure moisture positivity
    31163138      DO il = 1,ncum
     3139      alpha_qpos(il)=1.
    31173140       IF (iflag(il) .le. 1) THEN
    3118         alpha_qpos(il) = max(1. , -delt*fr(il,1)/
     3141        if (fr(il,1) .le. 0.) then
     3142            alpha_qpos(il) = max(alpha_qpos(il) ,
     3143     :     (-delt*fr(il,1))/
    31193144     :     (s_wake(il)*rr_wake(il,1)+(1.-s_wake(il))*rr(il,1)))
     3145        end if
    31203146       ENDIF
    31213147      ENDDO
     
    31233149       DO il = 1,ncum
    31243150        IF (iflag(il) .le. 1) THEN
    3125         alpha_qpos(il) = max(alpha_qpos(il) , -delt*fr(il,i)/
     3151          IF (fr(il,i) .le. 0.) THEN
     3152           alpha_qpos1(il)=max(1. , (-delt*fr(il,i))/
    31263153     :     (s_wake(il)*rr_wake(il,i)+(1.-s_wake(il))*rr(il,i)))
     3154             IF (alpha_qpos1(il) .ge. alpha_qpos(il))
     3155     :           alpha_qpos(il)=alpha_qpos1(il)
     3156          ENDIF
    31273157        ENDIF
    31283158       ENDDO
Note: See TracChangeset for help on using the changeset viewer.