Ignore:
Timestamp:
Oct 2, 2012, 5:57:45 PM (12 years ago)
Author:
Laurent Fairhead
Message:

Phasage de la dynamique parallèle localisée (petite mémoire) avec la branche LMDZ4V5.0-dev (fin de la branche)
Validation effectuée par comparaison des fichiers de sorties debug (u, v, t, q, masse, etc ...) d'une simulation sans physique
faite avec la version du modèle donnée paY. Meurdesoif et la version phasée avec la r1399 (fin de la branche LMDZ4V5.0-dev)


Phasing of the localised (low memory) parallel dynamics package with the LMDZ4V5.0-dev 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 r1399 (end of the LMDZ4V5.0-dev branch)

File:
1 edited

Legend:

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

    r1632 r1657  
    7575#include "description.h"
    7676#include "serre.h"
    77 #include "com_io_dyn.h"
     77!#include "com_io_dyn.h"
    7878#include "iniprint.h"
    7979#include "academic.h"
     
    397397
    398398      IF( purmats ) THEN
     399      ! Purely Matsuno time stepping
    399400         IF( MOD(itau,iconser) .EQ.0.AND.  forward    ) conser = .TRUE.
    400401         IF( MOD(itau,idissip ).EQ.0.AND..NOT.forward ) apdiss = .TRUE.
     
    402403     s          .and. iflag_phys.EQ.1                 ) apphys = .TRUE.
    403404      ELSE
     405      ! Leapfrog/Matsuno time stepping
    404406         IF( MOD(itau   ,iconser) .EQ. 0              ) conser = .TRUE.
    405407         IF( MOD(itau+1,idissip)  .EQ. 0              ) apdiss = .TRUE.
     
    407409      END IF
    408410
     411! Ehouarn: for Shallow Water case (ie: 1 vertical layer),
     412!          supress dissipation step
     413      if (llm.eq.1) then
     414        apdiss=.false.
     415      endif
     416
    409417cym    ---> Pour le moment     
    410418cym      apphys = .FALSE.
    411419      statcl = .FALSE.
    412       conser = .FALSE.
     420      conser = .FALSE. ! ie: no output of control variables to stdout in //
    413421     
    414422      if (firstCaldyn) then
     
    10691077       ijb=ij_begin
    10701078       ije=ij_end
    1071        teta(ijb:ije,:)=teta(ijb:ije,:)
    1072      s  -iphysiq*dtvr*(teta(ijb:ije,:)-tetarappel(ijb:ije,:))/taurappel
     1079!LF       teta(ijb:ije,:)=teta(ijb:ije,:)
     1080!LF     s  -iphysiq*dtvr*(teta(ijb:ije,:)-tetarappel(ijb:ije,:))/taurappel
     1081!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     1082       do l=1,llm
     1083       teta(ijb:ije,l)=teta(ijb:ije,l)
     1084     &  -iphysiq*dtvr*(teta(ijb:ije,l)-tetarappel(ijb:ije,l))/taurappel
     1085       enddo
     1086!$OMP END DO
    10731087
    10741088       call Register_Hallo_u(ucov,llm,0,1,1,0,Request_Physic)
     
    10771091c$OMP BARRIER
    10781092       call WaitRequest(Request_Physic)     
    1079 
     1093c$OMP BARRIER
    10801094       call friction_loc(ucov,vcov,iphysiq*dtvr)
     1095!$OMP BARRIER
    10811096      ENDIF ! of IF(iflag_phys.EQ.2)
    10821097
     
    13121327!c$OMP END MASTER
    13131328!c$OMP BARRIER
    1314        END IF
     1329       END IF ! of IF(apdiss)
    13151330
    13161331cc$OMP END PARALLEL
Note: See TracChangeset for help on using the changeset viewer.