Changeset 1594 for trunk/LMDZ.MARS/libf


Ignore:
Timestamp:
Sep 13, 2016, 8:40:34 AM (9 years ago)
Author:
emillour
Message:

Mars and Generic "old" dynamics: to further harmonize with LMDZ.COMMON, replace "idissip" with "dissip_period".
EM

Location:
trunk/LMDZ.MARS/libf/dyn3d
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/dyn3d/control_mod.F90

    r1593 r1594  
    88  integer,save :: iperiod  ! make a Matsuno step before avery iperiod-1 LF steps
    99  integer,save :: iconser !
    10   integer,save :: idissip ! apply dissipation every idissip dynamical step
     10  integer,save :: dissip_period ! apply dissipation every dissip_period dynamical step
    1111  integer,save :: iphysiq ! call physics every iphysiq dynamical steps
    1212  integer,save :: anneeref ! reference year # ! not used
  • trunk/LMDZ.MARS/libf/dyn3d/defrun_new.F

    r1593 r1594  
    4040      use sponge_mod,only: callsponge,nsponge,mode_sponge,tetasponge
    4141      use control_mod, only: ndynstep, day_step, iperiod, iconser,
    42      &                       idissip, iphysiq, anneeref,
     42     &                       dissip_period, iphysiq, anneeref,
    4343     &                       ecritstart, timestart, nday_r
    4444      USE logic_mod, ONLY: hybrid,purmats,fxyhypb,ysinus,iflag_phys
     
    148148        WRITE(lunout,*) ""
    149149        WRITE(lunout,*) "periode de la dissipation (en pas)"
    150         idissip=5 ! default value
    151         call getin("idissip",idissip)
    152         WRITE(lunout,*)" idissip = ",idissip
     150        dissip_period=5 ! default value
     151        call getin("idissip",dissip_period)
     152        ! if there is a "dissip_period" in run.def, it overrides "idissip"
     153        CALL getin('dissip_period',dissip_period)
     154        WRITE(lunout,*)" dissip_period = ",dissip_period
    153155
    154156ccc  ....   P. Le Van , modif le 29/04/97 .pour la dissipation  ...
  • trunk/LMDZ.MARS/libf/dyn3d/gcm.F

    r1593 r1594  
    44      use infotrac, only: iniadvtrac, nqtot, iadv
    55      use control_mod, only: day_step, iperiod, iphysiq, ndynstep,
    6      &                       nday_r, idissip, iconser, ecritstart
     6     &                       nday_r, dissip_period, iconser, ecritstart
    77      use filtreg_mod, only: inifilr
    88!      use comgeomphy, only: initcomgeomphy
     
    283283      endif
    284284      ! check that this is compatible with call sequence dyn/phys/dissip
    285       ! i.e. that itaufin is a multiple of iphysiq and idissip
     285      ! i.e. that itaufin is a multiple of iphysiq and dissip_period
    286286      if ((modulo(itaufin,iphysiq).ne.0).or.
    287      &    (modulo(itaufin,idissip).ne.0)) then
     287     &    (modulo(itaufin,dissip_period).ne.0)) then
    288288        if (ndynstep .gt. 0) then
    289289       write(*,'(A,I5)')
     
    295295        endif
    296296        write(*,'(2(A,I5))')
    297      &   "  whereas iphysiq=",iphysiq," and idissip=",
    298      &  idissip
     297     &   "  whereas iphysiq=",iphysiq," and dissip_period=",
     298     &  dissip_period
    299299        stop
    300300      endif
     
    390390      IF( purmats ) THEN
    391391         IF( MOD(itau,iconser) .EQ.0.AND.  forward    ) conser = .TRUE.
    392          IF( MOD(itau,idissip ).EQ.0.AND..NOT.forward ) apdiss = .TRUE.
     392         IF( MOD(itau,dissip_period ).EQ.0
     393     &                              .AND..NOT.forward ) apdiss = .TRUE.
    393394         IF( MOD(itau,iphysiq ).EQ.0.AND..NOT.forward
    394395     $                   .AND.   (iflag_phys.eq.1)    ) apphys = .TRUE.
    395396      ELSE
    396397         IF( MOD(itau   ,iconser) .EQ. 0              ) conser = .TRUE.
    397          IF( MOD(itau+1,idissip)  .EQ. 0              ) apdiss = .TRUE.
     398         IF( MOD(itau+1,dissip_period)  .EQ. 0        ) apdiss = .TRUE.
    398399         IF( MOD(itau+1,iphysiq).EQ.0 
    399400     &                     .AND. (iflag_phys.eq.1)    ) apphys = .TRUE.
  • trunk/LMDZ.MARS/libf/dyn3d/iniconst.F

    r1422 r1594  
    11      SUBROUTINE iniconst
    22
    3       use control_mod, only: iphysiq, idissip
     3      use control_mod, only: iphysiq, dissip_period
    44      USE comconst_mod, ONLY: im,jm,lllm,imp1,jmp1,lllmm1,lllmp1,
    55     .                  dtdiss,dtvr,dtphys,unsim,r,cpp,kappa,pi
     
    3636c-----------------------------------------------------------------------
    3737
    38       dtdiss  = idissip * dtvr
     38      dtdiss  = dissip_period * dtvr
    3939      dtphys  = iphysiq * dtvr
    4040      unsim   = 1./iim
  • trunk/LMDZ.MARS/libf/dyn3d/inidissip.F

    r1422 r1594  
    88c   -------------
    99
    10       use control_mod, only: idissip, iperiod
     10      use control_mod, only: dissip_period, iperiod
    1111      USE comvert_mod, ONLY: aps,bps,preff,pseudoalt
    1212      USE comconst_mod, ONLY: dtdiss,dtvr
     
    7171         !!!! avec dans run.def
    7272         !!- mode_sponge=3
    73          !!- idissip/tetagdiv/tetagrot/tetagtemp = 1/2000/3000/3000
     73         !!- dissip_period/tetagdiv/tetagrot/tetagtemp = 1/2000/3000/3000
    7474
    7575         middle=startalt+delta/2
     
    265265      ENDDO
    266266
    267 c     Calcul automatique de idissip
     267c     Calcul automatique de dissip_period
    268268c     -----------------------------
    269269c    :::::::::::::::::::::
    270270c     A Commenter pour garder la valeur de run.def :
    271 c     idissip = INT( tetamin/( 2.*dtvr*iperiod) ) * iperiod
    272 c     idissip = MAX(iperiod,idissip)
     271c     dissip_period = INT( tetamin/( 2.*dtvr*iperiod) ) * iperiod
     272c     dissip_period = MAX(iperiod,dissip_period)
    273273c    :::::::::::::::::::::
    274       dtdiss  = idissip * dtvr
     274      dtdiss  = dissip_period * dtvr
    275275 
    276276      PRINT *,' INIDI tetamin dtvr ',tetamin,dtvr,iperiod
    277       PRINT *,' INIDI tetamin idissip ',tetamin,idissip
    278       PRINT *,' INIDI idissip dtdiss ',idissip,dtdiss
     277      PRINT *,' INIDI tetamin dissip_period ',tetamin,dissip_period
     278      PRINT *,' INIDI dissip_period dtdiss ',dissip_period,dtdiss
    279279
    280280      PRINT*,'pseudoZ(km)  zvert  dt(tetagdiv) dt(tetagrot) dt(divgrad)'
     
    289289          PRINT *,'in run.def, you must increase tetagdiv,'
    290290          PRINT *,'(or tetagrot and tetatemp if they are smaller than'
    291           PRINT *,'tetagdiv) OR decrease idissip OR increase day_step)'
     291          PRINT *,'tetagdiv) OR decrease dissip_period'
     292          PRINT *,'OR increase day_step)'
    292293          stop
    293294         end if
Note: See TracChangeset for help on using the changeset viewer.