Ignore:
Timestamp:
Jul 11, 2016, 9:35:35 AM (8 years ago)
Author:
emillour
Message:

All GCMs:
Further adaptations to keep up with changes in LMDZ5 concerning
physics/dynamics separation (up to rev r2500 of LMDZ5)

  • arch:
  • remove ifort debug option '-check all', replace it with '-check bounds,format,output_conversion,pointers,uninit' (i.e. get it to stop complaining about copying into temporary arrays)
  • dyn3d_common:
  • comconst_mod.F90 : add ngroup
  • dyn3d:
  • gcm.F90 : minor bug fix (arguments to a call_abort())
  • leapfrog.F90 : recompute geopotential for bilan_dyn outputs
  • conf_gcm.F90 : read "ngroup" from run.def
  • groupe.F , groupeun.F : ngroup no longer a local parameter
  • dyn3d_par:
  • conf_gcm.F90 : read "ngroup" from run.def
  • groupe_p.F , groupeun_p.F : ngroup no longer a local parameter
  • misc:
  • regr1_step_av_m.F90 : removed (not used)
  • phy_common:
  • mod_phys_lmdz_mpi_transfert.F90 , mod_phys_lmdz_mpi_data.F90 : change is_north_pole and is_south_pole to is_north_pole_dyn and is_south_pole_dyn
  • mod_phys_lmdz_omp_data.F90 : introduce is_nort_pole_phy and is_south_pole_phy
  • dynphy_lonlat:
  • mod_interface_dyn_phys.F90 : use is_north_pole_dyn and is_south_pole_dyn
  • calfis_p.F : use is_north_pole_dyn and is_south_pole_dyn
  • phyvenus:
  • physiq_mod , write_hist*.h : use is_north_pole_phy and is_south_pole_phy to correctly compute mesh area at poles to send to hist*nc files.
  • phytitan:
  • physiq_mod , write_hist*.h : use is_north_pole_phy and is_south_pole_phy to correctly compute mesh area at poles to send to hist*nc files.

EM

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

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/dyn3d/conf_gcm.F90

    r1441 r1572  
    1616  USE comconst_mod, ONLY: dissip_factz,dissip_deltaz,dissip_zref,               &
    1717                dissip_fac_mid,dissip_fac_up,dissip_hdelta,dissip_pupstart,     &
    18                 mode_top_bound,tau_top_bound,iflag_top_bound
     18                mode_top_bound,tau_top_bound,iflag_top_bound,ngroup
    1919  USE logic_mod, ONLY: tidal,purmats,ok_guide,read_start,iflag_phys,            &
    2020                iflag_trac,ok_strato,ok_gradsfile,ok_limit,ok_etat0,            &
     
    402402  tetasponge=50000.0
    403403  call getin("tetasponge",tetasponge)
     404
     405! ngroup: to group longitudinaly near the pole (groupe/groupeun routines)
     406!        (implies that iim has to be a multiple of 2**ngroup)
     407  ngroup=3
     408  CALL getin('ngroup',ngroup)
    404409
    405410! FOR TITAN: tidal forces
  • trunk/LMDZ.COMMON/libf/dyn3d/gcm.F90

    r1549 r1572  
    159159  use_filtre_fft=.FALSE.
    160160  CALL getin('use_filtre_fft',use_filtre_fft)
    161   IF (use_filtre_fft) call abort_gcm('FFT filter is not available in the ' &
     161  IF (use_filtre_fft) call abort_gcm("gcm",'FFT filter is not available in the ' &
    162162          // 'sequential version of the dynamics.', 1)
    163163
  • trunk/LMDZ.COMMON/libf/dyn3d/groupe.F

    r1422 r1572  
    33!
    44      subroutine groupe(pext,pbaru,pbarv,pbarum,pbarvm,wm)
     5     
     6      use comconst_mod, only: ngroup
    57      implicit none
    68
     
    2022#include "comgeom2.h"
    2123
    22       integer ngroup
    23       parameter (ngroup=3)
     24!      integer ngroup
     25!      parameter (ngroup=3)
    2426
    2527
  • trunk/LMDZ.COMMON/libf/dyn3d/groupeun.F

    r1422 r1572  
    33!
    44      SUBROUTINE groupeun(jjmax,llmax,q)
     5     
     6      USE comconst_mod, ONLY: ngroup
    57      IMPLICIT NONE
    68
     
    1214      REAL q(iip1,jjmax,llmax)
    1315
    14       INTEGER ngroup
    15       PARAMETER (ngroup=3)
     16!      INTEGER ngroup
     17!      PARAMETER (ngroup=3)
    1618
    1719      REAL airecn,qn
     
    3638
    3739      LOGICAL, SAVE :: first = .TRUE.
    38       INTEGER,SAVE :: i_index(iim,ngroup)
     40!      INTEGER,SAVE :: i_index(iim,ngroup)
    3941      INTEGER      :: offset
    40       REAL         :: qsum(iim/ngroup)
     42!      REAL         :: qsum(iim/ngroup)
    4143
    4244      IF (first) THEN
     
    134136     
    135137      SUBROUTINE INIT_GROUPEUN(airen_tab, aires_tab)
     138
     139      USE comconst_mod, ONLY: ngroup
    136140      IMPLICIT NONE
    137141
     
    140144#include "comgeom2.h"
    141145
    142       INTEGER ngroup
    143       PARAMETER (ngroup=3)
     146!      INTEGER ngroup
     147!      PARAMETER (ngroup=3)
    144148
    145149      REAL airen,airecn
  • trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F

    r1564 r1572  
    9898      REAL tsurpk(ip1jmp1,llm)               ! cpp*T/pk 
    9999
    100       real zqmin,zqmax
     100!      real zqmin,zqmax
    101101
    102102c variables dynamiques intermediaire pour le transport
     
    130130
    131131c   variables pour le fichier histoire
    132       REAL dtav      ! intervalle de temps elementaire
     132!      REAL dtav      ! intervalle de temps elementaire
    133133
    134134      REAL tppn(iim),tpps(iim),tpn,tps
     
    144144      LOGICAL :: lafin=.false.
    145145      INTEGER ij,iq,l
    146       INTEGER ik
    147 
    148       real time_step, t_wrt, t_ops
     146!      INTEGER ik
     147
     148!      real time_step, t_wrt, t_ops
    149149
    150150      REAL rdaym_ini
     
    152152! jH_cur: heure julienne courante
    153153      REAL :: jD_cur, jH_cur
    154       INTEGER :: an, mois, jour
    155       REAL :: secondes
     154!      INTEGER :: an, mois, jour
     155!      REAL :: secondes
    156156
    157157      LOGICAL first,callinigrads
     
    159159      save first
    160160      data first/.true./
    161       real dt_cum
    162       character*10 infile
    163       integer zan, tau0, thoriid
    164       integer nid_ctesGCM
    165       save nid_ctesGCM
    166       real degres
    167       real rlong(iip1), rlatg(jjp1)
    168       real zx_tmp_2d(iip1,jjp1)
    169       integer ndex2d(iip1*jjp1)
     161!      real dt_cum
     162!      character*10 infile
     163!      integer zan, tau0, thoriid
     164!      integer nid_ctesGCM
     165!      save nid_ctesGCM
     166!      real degres
     167!      real rlong(iip1), rlatg(jjp1)
     168!      real zx_tmp_2d(iip1,jjp1)
     169!      integer ndex2d(iip1*jjp1)
    170170      logical ok_sync
    171171      parameter (ok_sync = .true.)
     
    175175      character*10 string10
    176176
    177       REAL alpha(ip1jmp1,llm),beta(ip1jmp1,llm)
     177!      REAL alpha(ip1jmp1,llm),beta(ip1jmp1,llm)
    178178      REAL :: flxw(ip1jmp1,llm)  ! flux de masse verticale
    179179
     
    186186      REAL vcont(ip1jm,llm),ucont(ip1jmp1,llm)
    187187      REAL vnat(ip1jm,llm),unat(ip1jmp1,llm)
    188       REAL      d_h_vcol, d_qt, d_qw, d_ql, d_ec
     188!      REAL      d_h_vcol, d_qt, d_qw, d_ql, d_ec
    189189      CHARACTER*15 ztit
    190190!IM   INTEGER   ip_ebil_dyn  ! PRINT level for energy conserv. diag.
     
    193193c-jld
    194194
    195       integer :: itau_w ! for write_paramLMDZ_dyn.h
    196 
    197       character*80 dynhist_file, dynhistave_file
     195!      integer :: itau_w ! for write_paramLMDZ_dyn.h
     196
     197!      character*80 dynhist_file, dynhistave_file
    198198      character(len=*),parameter :: modname="leapfrog"
    199199      character*80 abort_message
     
    802802               ENDIF
    803803               
     804!              ! Ehouarn: re-compute geopotential for outputs
     805               CALL geopot(ip1jmp1,teta,pk,pks,phis,phi)
     806
    804807               IF (ok_dynzon) THEN
    805808#ifdef CPP_IOIPSL
     
    943946               ENDIF
    944947
     948!              ! Ehouarn: re-compute geopotential for outputs
     949               CALL geopot(ip1jmp1,teta,pk,pks,phis,phi)
     950
    945951               IF (ok_dynzon) THEN
    946952#ifdef CPP_IOIPSL
Note: See TracChangeset for help on using the changeset viewer.