Changeset 1658 for LMDZ5/trunk


Ignore:
Timestamp:
Oct 5, 2012, 9:56:56 AM (12 years ago)
Author:
Laurent Fairhead
Message:

Phasage de la dynamique parallele localisee (petite memoire) avec le tronc LMDZ4 (HEAD)
Validation effectuee par comparaison des fichiers de sorties debug (u, v, t, q, masse, etc ...) d'une simulation sans physique
faite avec la version du modele donnee par Y. Meurdesoif et la version phasee avec la r1428 (fin du tronc LMDZ4)


Phasing of the localised (low memory) parallel dynamics package with the LMDZ4 trunk version of LMDZ
Validation consisted in comparing output debug files (u, v, t, q, masse, etc... ) of a no physics simulation
run with the version of the code given by Y. Meurdesoif and this version phased with r1428 (HEAD of the LMDZ4 trunk)

Location:
LMDZ5/trunk/libf/dyn3dmem
Files:
5 added
41 deleted
34 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dyn3dmem/abort_gcm.F

    r1632 r1658  
    11!
    2 ! $Id: abort_gcm.F 1279 2009-12-10 09:02:56Z fairhead $
     2! $Id: abort_gcm.F 1425 2010-09-02 13:45:23Z lguez $
    33!
    44c
     
    2323C         ierr    = severity of situation ( = 0 normal )
    2424
    25       character (len=*) :: modname
     25      character(len=*) modname
    2626      integer ierr
    27       character (len=*) :: message
     27      character(len=*) message
    2828
    2929      write(lunout,*) 'in abort_gcm'
     
    4545      if (ierr .eq. 0) then
    4646        write(lunout,*) 'Everything is cool'
     47        stop
    4748      else
    4849        write(lunout,*) 'Houston, we have a problem ', ierr
    49       STOP
     50        stop 1
    5051      endif
    5152      END
  • LMDZ5/trunk/libf/dyn3dmem/adaptdt.F

    r1632 r1658  
    11!
    2 ! $Id: adaptdt.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: adaptdt.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44      subroutine adaptdt(nadv,dtbon,n,pbaru,
  • LMDZ5/trunk/libf/dyn3dmem/bilan_dyn_p.F

    r1632 r1658  
    11!
    2 ! $Id: bilan_dyn_p.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: bilan_dyn_p.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44      SUBROUTINE bilan_dyn_p (ntrac,dt_app,dt_cum,
  • LMDZ5/trunk/libf/dyn3dmem/calfis_loc.F

    r1657 r1658  
    667667
    668668!$OMP MASTER
    669       write(lunout,*) 'PHYSIQUE AVEC NSPLIT_PHYS=',nsplit_phys
     669!      write(lunout,*) 'PHYSIQUE AVEC NSPLIT_PHYS=',nsplit_phys
    670670!$OMP END MASTER
    671671      zdt_split=dtphys/nsplit_phys
  • LMDZ5/trunk/libf/dyn3dmem/comdissnew.h

    r1632 r1658  
    11!
    2 ! $Header$
     2! $Id: comdissnew.h 1319 2010-02-23 21:29:54Z fairhead $
     3!
     4!
     5!  ATTENTION!!!!: ce fichier include est compatible format fixe/format libre
     6!                 veillez à n'utiliser que des ! pour les commentaires
     7!                 et à bien positionner les & des lignes de continuation
     8!                 (les placer en colonne 6 et en colonne 73)
    39!
    410!-----------------------------------------------------------------------
    5 ! INCLUDE comdissnew.h
     11! INCLUDE 'comdissnew.h'
    612
    713      COMMON/comdissnew/ lstardis,nitergdiv,nitergrot,niterh,tetagdiv,  &
  • LMDZ5/trunk/libf/dyn3dmem/conf_gcm.F

    r1657 r1658  
    11!
    2 ! $Id: conf_gcm.F 1357 2010-04-14 14:03:19Z emillour $
     2! $Id: conf_gcm.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44c
     
    362362       iphysiq = 5
    363363       CALL getin('iphysiq', iphysiq)
    364 
    365 ccc   .... P.Le Van, ajout le 03/01/96 pour l'ecriture phys ...
    366 c
    367 
    368364
    369365!Config  Key  = ip_ebil_dyn
     
    863859       CALL getin('ok_gradsfile',ok_gradsfile)
    864860
     861!Config  Key  = ok_limit
     862!Config  Desc = creation des fichiers limit dans create_etat0_limit
     863!Config  Def  = y
     864!Config  Help = production du fichier limit.nc requise
     865
     866       ok_limit = .TRUE.
     867       CALL getin('ok_limit',ok_limit)
     868
     869!Config  Key  = ok_etat0
     870!Config  Desc = creation des fichiers etat0 dans create_etat0_limit
     871!Config  Def  = y
     872!Config  Help = production des fichiers start.nc, startphy.nc requise
     873
     874      ok_etat0 = .TRUE.
     875      CALL getin('ok_etat0',ok_etat0)
     876
    865877      write(lunout,*)' #########################################'
    866       write(lunout,*)' Configuration des parametres du gcm: '
     878      write(lunout,*)' Configuration des parametres de cel0'
     879     &             //'_limit: '
    867880      write(lunout,*)' planet_type = ', planet_type
    868881      write(lunout,*)' calend = ', calend
     
    908921      write(lunout,*)' ok_strato = ', ok_strato
    909922      write(lunout,*)' ok_gradsfile = ', ok_gradsfile
     923      write(lunout,*)' ok_limit = ', ok_limit
     924      write(lunout,*)' ok_etat0 = ', ok_etat0
    910925c
    911926      RETURN
  • LMDZ5/trunk/libf/dyn3dmem/defrun.F

    r1632 r1658  
    11!
    2 ! $Id: defrun.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: defrun.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44c
  • LMDZ5/trunk/libf/dyn3dmem/disvert.F

    r1632 r1658  
    11!
    2 ! $Id: disvert.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: disvert.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44      SUBROUTINE disvert(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
  • LMDZ5/trunk/libf/dyn3dmem/dynetat0.F

    r1657 r1658  
    321321        ierr =  NF_INQ_VARID (nid, tname(iq), nvarid)
    322322        IF (ierr .NE. NF_NOERR) THEN
    323            write(lunout,*)"dynetat0: Le champ <"//tname(iq)//
     323           write(lunout,*)"dynetat0: Le traceur <"//trim(tname(iq))//
    324324     &                    "> est absent"
    325325           write(lunout,*)"          Il est donc initialise a zero"
  • LMDZ5/trunk/libf/dyn3dmem/dynetat0_loc.F

    r1657 r1658  
    342342        ierr =  NF_INQ_VARID (nid, tname(iq), nvarid)
    343343        IF (ierr .NE. NF_NOERR) THEN
    344            write(lunout,*)"dynetat0_loc: Le champ <"//tname(iq)//
    345      &                    "> est absent"
    346            write(lunout,*)"          Il est donc initialise a zero"
     344           write(lunout,*)"dynetat0_loc: Le traceur <"                  &
     345     &     //trim(tname(iq))//"> est absent"
     346           write(lunout,*)"Il est donc initialise a zero"
    347347           q(:,:,iq)=0.
    348348        ELSE
  • LMDZ5/trunk/libf/dyn3dmem/exner_hyb.F

    r1657 r1658  
    11!
    2 ! $Id$
     2! $Id: exner_hyb.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44      SUBROUTINE  exner_hyb ( ngrid, ps, p,alpha,beta, pks, pk, pkf )
  • LMDZ5/trunk/libf/dyn3dmem/extrapol.F

    r1632 r1658  
    11!
    2 ! $Id: extrapol.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: extrapol.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44C
  • LMDZ5/trunk/libf/dyn3dmem/fxhyp.F

    r1632 r1658  
    11!
    2 ! $Id: fxhyp.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: fxhyp.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44c
  • LMDZ5/trunk/libf/dyn3dmem/fxy.F

    r1632 r1658  
    11!
    2 ! $Id: fxy.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: fxy.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44      SUBROUTINE fxy (rlatu,yprimu,rlatv,yprimv,rlatu1,yprimu1,
  • LMDZ5/trunk/libf/dyn3dmem/fxysinus.F

    r1632 r1658  
    11!
    2 ! $Id: fxysinus.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: fxysinus.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44      SUBROUTINE fxysinus (rlatu,yprimu,rlatv,yprimv,rlatu1,yprimu1,
  • LMDZ5/trunk/libf/dyn3dmem/fyhyp.F

    r1632 r1658  
    11!
    2 ! $Id: fyhyp.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: fyhyp.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44c
  • LMDZ5/trunk/libf/dyn3dmem/gcm.F

    r1657 r1658  
    11!
    2 ! $Id: gcm.F 1397 2010-06-02 12:57:39Z emillour $
     2! $Id: gcm.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44c
     
    7373#include "iniprint.h"
    7474#include "tracstoke.h"
     75
    7576#ifdef INCA
    7677! Only INCA needs these informations (from the Earth's physics)
  • LMDZ5/trunk/libf/dyn3dmem/grid_atob.F

    r1632 r1658  
    11!
    2 ! $Id: grid_atob.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: grid_atob.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44      SUBROUTINE grille_m(imdep, jmdep, xdata, ydata, entree,
  • LMDZ5/trunk/libf/dyn3dmem/grid_noro.F

    r1632 r1658  
    11!
    2 ! $Id: grid_noro.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: grid_noro.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44c
  • LMDZ5/trunk/libf/dyn3dmem/grilles_gcm_netcdf.F

    r1632 r1658  
    11!
    2 ! $Id: grilles_gcm_netcdf.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: grilles_gcm_netcdf.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44c
  • LMDZ5/trunk/libf/dyn3dmem/guide_p_mod.F90

    r1632 r1658  
    390390              stop
    391391          ELSE
    392               IF (guide_v) vnat1(jjb_v:jje_v,:,:)=vnat2(jjb_v:jje_v,:,:)
    393               IF (guide_u) unat1(jjb_u:jje_u,:,:)=unat2(jjb_u:jje_u,:,:)
    394               IF (guide_T) tnat1(jjb_u:jje_u,:,:)=tnat2(jjb_u:jje_u,:,:)
    395               IF (guide_Q) qnat1(jjb_u:jje_u,:,:)=qnat2(jjb_u:jje_u,:,:)
    396               IF (guide_P.OR.guide_modele) psnat1(jjb_u:jje_u,:)=psnat2(jjb_u:jje_u,:)
     392              IF (guide_v) vnat1(:,jjb_v:jje_v,:)=vnat2(:,jjb_v:jje_v,:)
     393              IF (guide_u) unat1(:,jjb_u:jje_u,:)=unat2(:,jjb_u:jje_u,:)
     394              IF (guide_T) tnat1(:,jjb_u:jje_u,:)=tnat2(:,jjb_u:jje_u,:)
     395              IF (guide_Q) qnat1(:,jjb_u:jje_u,:)=qnat2(:,jjb_u:jje_u,:)
     396              IF (guide_P.OR.guide_modele) psnat1(:,jjb_u:jje_u)=psnat2(:,jjb_u:jje_u)
    397397              step_rea=step_rea+1
    398398              itau_test=itau
     
    11761176#endif
    11771177         IF (invert_y) THEN
    1178            CALL invert_lat(iip1,jjp1,llm,unat2)
     1178           CALL invert_lat(iip1,jjp1,nlevnc,unat2)
    11791179         ENDIF
    11801180
     
    11891189#endif
    11901190         IF (invert_y) THEN
    1191            CALL invert_lat(iip1,jjp1,llm,tnat2)
     1191           CALL invert_lat(iip1,jjp1,nlevnc,tnat2)
    11921192         ENDIF
    11931193     endif
     
    12011201#endif
    12021202         IF (invert_y) THEN
    1203            CALL invert_lat(iip1,jjp1,llm,qnat2)
     1203           CALL invert_lat(iip1,jjp1,nlevnc,qnat2)
    12041204         ENDIF
    12051205
     
    12151215#endif
    12161216         IF (invert_y) THEN
    1217            CALL invert_lat(iip1,jjm,llm,vnat2)
     1217           CALL invert_lat(iip1,jjm,nlevnc,vnat2)
    12181218         ENDIF
    12191219     endif
     
    13641364
    13651365         IF (invert_y) THEN
    1366            CALL invert_lat(iip1,jjp1,llm,unat2)
     1366           CALL invert_lat(iip1,jjp1,nlevnc,unat2)
    13671367         ENDIF
    13681368
     
    13811381
    13821382         IF (invert_y) THEN
    1383            CALL invert_lat(iip1,jjp1,llm,tnat2)
     1383           CALL invert_lat(iip1,jjp1,nlevnc,tnat2)
    13841384         ENDIF
    13851385
     
    13981398         
    13991399         IF (invert_y) THEN
    1400            CALL invert_lat(iip1,jjp1,llm,qnat2)
     1400           CALL invert_lat(iip1,jjp1,nlevnc,qnat2)
    14011401         ENDIF
    14021402
     
    14161416
    14171417         IF (invert_y) THEN
    1418            CALL invert_lat(iip1,jjm,llm,vnat2)
     1418           CALL invert_lat(iip1,jjm,nlevnc,vnat2)
    14191419         ENDIF
    14201420
  • LMDZ5/trunk/libf/dyn3dmem/iniacademic.F

    r1657 r1658  
    11!
    2 ! $Id: iniacademic.F 1363 2010-04-16 09:50:10Z emillour $
     2! $Id: iniacademic.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44c
  • LMDZ5/trunk/libf/dyn3dmem/iniconst.F

    r1657 r1658  
    11!
    2 ! $Id: iniconst.F 1380 2010-05-06 12:24:59Z emillour $
     2! $Id: iniconst.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44      SUBROUTINE iniconst
  • LMDZ5/trunk/libf/dyn3dmem/inidissip.F

    r1632 r1658  
    11!
    2 ! $Id: inidissip.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: inidissip.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44      SUBROUTINE inidissip ( lstardis,nitergdiv,nitergrot,niterh  ,
  • LMDZ5/trunk/libf/dyn3dmem/inigeom.F

    r1632 r1658  
    11!
    2 ! $Id: inigeom.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: inigeom.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44c
  • LMDZ5/trunk/libf/dyn3dmem/inter_barxy_m.F90

    r1657 r1658  
     1!
     2! $Id$
     3!
    14module inter_barxy_m
    25
     
    3639    ! jjm+1 latitudes rlatu du modele (latitudes des scalaires et de U)
    3740    ! Si taille de la seconde dim = jjm, on veut interpoler sur les
    38     ! jjm latitudes rlatv du modèle (latitudes de V)
     41    ! jjm latitudes rlatv du modele (latitudes de V)
    3942
    4043    ! Variables local to the procedure:
     
    112115    !     rlonimod(imod): abscisses des interfaces des mailles modele
    113116    !      ( L'indice 1 correspond a l'interface mailLE 1 / maille 2)
    114     !      ( Les abscisses sont exprimées en degres)
     117    !      ( Les abscisses sont exprimees en degres)
    115118
    116119    use assert_eq_m, only: assert_eq
     
    118121    IMPLICIT NONE
    119122
    120     REAL, intent(in):: dlonid(:) ! dim(idatmax)
    121     real, intent(in):: fdat(:) ! dim(idatmax)
    122     real, intent(in):: rlonimod(:) ! dim(imodmax)
     123    REAL, intent(in):: dlonid(:)
     124    real, intent(in):: fdat(:)
     125    real, intent(in):: rlonimod(:)
    123126
    124127    real inter_barx(size(rlonimod))
     
    292295  function inter_bary(yjdat, fdat, yjmod)
    293296
    294     ! Interpolation barycentrique basée sur les aires.
     297    ! Interpolation barycentrique basee sur les aires.
    295298    ! Version unidimensionnelle, en latitude.
    296     ! L'indice 1 correspond à l'interface maille 1 -- maille 2.
     299    ! L'indice 1 correspond a l'interface maille 1 -- maille 2.
    297300
    298301    use assert_m, only: assert
     
    301304
    302305    REAL, intent(in):: yjdat(:)
    303     ! (angles, ordonnées des interfaces des mailles des données, in
     306    ! (angles, ordonnees des interfaces des mailles des donnees, in
    304307    ! degrees, in increasing order)
    305308
    306     REAL, intent(in):: fdat(:) ! champ de données
     309    REAL, intent(in):: fdat(:) ! champ de donnees
    307310
    308311    REAL, intent(in):: yjmod(:)
    309     ! (ordonnées des interfaces des mailles du modèle)
     312    ! (ordonnees des interfaces des mailles du modele)
    310313    ! (in degrees, in strictly increasing order)
    311314
    312     REAL inter_bary(size(yjmod)) ! champ du modèle
     315    REAL inter_bary(size(yjmod)) ! champ du modele
    313316
    314317    ! Variables local to the procedure:
    315318
    316319    REAL y0, dy, dym
    317     INTEGER jdat ! indice du champ de données
    318     integer jmod ! indice du champ du modèle
     320    INTEGER jdat ! indice du champ de donnees
     321    integer jmod ! indice du champ du modele
    319322
    320323    !------------------------------------
  • LMDZ5/trunk/libf/dyn3dmem/interpre.F

    r1632 r1658  
    11!
    2 ! $Id: interpre.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: interpre.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44       subroutine interpre(q,qppm,w,fluxwppm,masse,
  • LMDZ5/trunk/libf/dyn3dmem/logic.h

    r1632 r1658  
    11!
    2 ! $Header$
     2! $Id: logic.h 1319 2010-02-23 21:29:54Z fairhead $
    33!
    44!
     
    99      COMMON/logic/ purmats,iflag_phys,forward,leapf,apphys,            &
    1010     &  statcl,conser,apdiss,apdelq,saison,ecripar,fxyhypb,ysinus       &
    11      &  ,read_start,ok_guide,ok_strato,ok_gradsfile
     11     &  ,read_start,ok_guide,ok_strato,ok_gradsfile                     &
     12     &  ,ok_limit,ok_etat0
    1213
    1314      LOGICAL purmats,forward,leapf,apphys,statcl,conser,               &
    1415     & apdiss,apdelq,saison,ecripar,fxyhypb,ysinus                      &
    15      &  ,read_start,ok_guide,ok_strato,ok_gradsfile
     16     &  ,read_start,ok_guide,ok_strato,ok_gradsfile                     &
     17     &  ,ok_limit,ok_etat0
    1618
    1719      INTEGER iflag_phys
  • LMDZ5/trunk/libf/dyn3dmem/ppm3d.F

    r1632 r1658  
    11!
    2 ! $Id: ppm3d.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: ppm3d.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44
  • LMDZ5/trunk/libf/dyn3dmem/pres2lev.F90

    r1632 r1658  
    6060      DO k=1,ni*nj
    6161        IF (pn(k,ln) >= zpo(k,1) ) THEN
    62           varn(k,ln) = varo(k,1)
     62          varn(k,ln) = zvaro(k,1)
    6363        ELSE IF (pn(k,ln) <= zpo(k,lmo)) THEN
    6464          varn(k,ln) = zvaro(k,lmo)
  • LMDZ5/trunk/libf/dyn3dmem/ran1.F

    r1632 r1658  
    11!
    2 ! $Id: ran1.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: ran1.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44      FUNCTION RAN1(IDUM)
  • LMDZ5/trunk/libf/dyn3dmem/sortvarc0.F

    r1632 r1658  
    11!
    2 ! $Id: sortvarc0.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: sortvarc0.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44      SUBROUTINE sortvarc0
  • LMDZ5/trunk/libf/dyn3dmem/traceurpole.F

    r1632 r1658  
    11!
    2 ! $Id: traceurpole.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: traceurpole.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44          subroutine traceurpole(q,masse)
  • LMDZ5/trunk/libf/dyn3dmem/ugeostr.F

    r1632 r1658  
    11!
    2 ! $Id: ugeostr.F 1299 2010-01-20 14:27:21Z fairhead $
     2! $Id: ugeostr.F 1403 2010-07-01 09:02:53Z fairhead $
    33!
    44      subroutine ugeostr(phi,ucov)
Note: See TracChangeset for help on using the changeset viewer.