Changeset 1980


Ignore:
Timestamp:
Jul 31, 2018, 5:51:36 PM (6 years ago)
Author:
emillour
Message:

Generic physics:
Follow-up of change in maximum length of tracer names in the dynamics
EM

Location:
trunk/LMDZ.GENERIC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/README

    r1883 r1980  
    13701370  and turb_mod
    13711371
     1372== 31/07/2018 == EM
     1373Follow-up of change in maximum length of tracer names in the dynamics
  • trunk/LMDZ.GENERIC/libf/phystd/initracer.F

    r1801 r1980  
    11      SUBROUTINE initracer(ngrid,nq,nametrac)
    22
    3       use surfdat_h
     3      use surfdat_h, ONLY: dryness, watercaptag
    44      USE tracer_h
    55      USE callkeys_mod, only: water
     
    2222c=======================================================================
    2323
    24       integer :: ngrid,nq
     24      integer,intent(in) :: ngrid,nq
     25      character(len=30),intent(in) :: nametrac(nq) ! name of the tracer from dynamics
    2526
    2627!      real qsurf(ngrid,nq)       ! tracer on surface (e.g.  kg.m-2)
    2728!      real co2ice(ngrid)           ! co2 ice mass on surface (e.g.  kg.m-2)
    28       character(len=20) :: txt ! to store some text
     29      character(len=30) :: txt ! to store some text
    2930      integer iq,ig,count
    3031      real r0_lift , reff_lift
    3132!      logical :: oldnames ! =.true. if old tracer naming convention (q01,...)
    3233
    33       character*20 nametrac(nq)   ! name of the tracer from dynamics
    3434
    3535
     
    6767       qext(:)=0.
    6868
    69 ! Initialization: get tracer names from the dynamics and check if we are
    70 !                 using 'old' tracer convention ('q01',q02',...)
    71 !                 or new convention (full tracer names)
    72       ! check if tracers have 'old' names
    73 
    74 ! copy tracer names from dynamics
     69
     70! Initialization: copy tracer names from dynamics
    7571        do iq=1,nq
    7672          noms(iq)=nametrac(iq)
     73          write(*,*)"initracer: iq=",iq,"noms(iq)=",trim(noms(iq))
    7774        enddo
    7875
     
    128125
    129126
    130       write(*,*) 'initracer: noms() ', noms
    131 
    132 
    133       !print*,'Setting dustbin = 0 in initracer.F'
    134       !dustbin=0
    135127
    136128      ! 1. find dust tracers
  • trunk/LMDZ.GENERIC/libf/phystd/tracer_h.F90

    r1799 r1980  
    44       implicit none
    55
    6 ! nqtot : total number of tracers
    7        INTEGER, SAVE :: nqtot
     6       integer, save :: nqtot ! total number of tracers
    87!$OMP THREADPRIVATE(nqtot)
    98
    10        character*20, DIMENSION(:), ALLOCATABLE :: noms   ! name of the tracer
    11        real, DIMENSION(:), ALLOCATABLE :: mmol     ! mole mass of tracer (g/mol-1)
    12        real, DIMENSION(:), ALLOCATABLE :: radius   ! dust and ice particle radius (m)
    13        real, DIMENSION(:), ALLOCATABLE :: rho_q    ! tracer densities (kg.m-3)
    14        real, DIMENSION(:), ALLOCATABLE :: qext     ! Single Scat. Extinction coeff at 0.67 um
    15        real, DIMENSION(:), ALLOCATABLE :: alpha_lift  ! saltation vertical flux/horiz flux ratio (m-1)
    16        real, DIMENSION(:), ALLOCATABLE :: alpha_devil ! lifting coeeficient by dust devil
    17        real, DIMENSION(:), ALLOCATABLE :: qextrhor ! Intermediate for computing opt. depth from q
     9       character*30, save, allocatable :: noms(:)   ! name of the tracer
     10       real, save, allocatable :: mmol(:)     ! mole mass of tracer (g/mol-1)
     11       real, save, allocatable :: radius(:)   ! dust and ice particle radius (m)
     12       real, save, allocatable :: rho_q(:)    ! tracer densities (kg.m-3)
     13       real, save, allocatable :: qext(:)     ! Single Scat. Extinction coeff at 0.67 um
     14       real, save, allocatable :: alpha_lift(:)  ! saltation vertical flux/horiz flux ratio (m-1)
     15       real, save, allocatable :: alpha_devil(:) ! lifting coeeficient by dust devil
     16       real, save, allocatable :: qextrhor(:) ! Intermediate for computing opt. depth from q
    1817
    19       real varian      ! Characteristic variance of log-normal distribution
    20       real r3n_q     ! used to compute r0 from number and mass mixing ratio
    21       real rho_dust     ! Mars dust density (kg.m-3)
    22       real rho_ice     ! Water ice density (kg.m-3)
    23       real rho_co2     ! CO2 ice density (kg.m-3)
    24       real ref_r0        ! for computing reff=ref_r0*r0 (in log.n. distribution)
     18       real,save :: varian      ! Characteristic variance of log-normal distribution
     19       real,save :: r3n_q     ! used to compute r0 from number and mass mixing ratio
     20       real,save :: rho_dust     ! Mars dust density (kg.m-3)
     21       real,save :: rho_ice     ! Water ice density (kg.m-3)
     22       real,save :: rho_co2     ! CO2 ice density (kg.m-3)
     23       real,save :: ref_r0        ! for computing reff=ref_r0*r0 (in log.n. distribution)
    2524!$OMP THREADPRIVATE(noms,mmol,radius,rho_q,qext,alpha_lift,alpha_devil,qextrhor, &
    2625        !$OMP varian,r3n_q,rho_dust,rho_ice,rho_co2,ref_r0)
     
    2827! tracer indexes: these are initialized in initracer and should be 0 if the
    2928!                 corresponding tracer does not exist
    30       ! dust
    31       integer, DIMENSION(:), ALLOCATABLE :: igcm_dustbin ! for dustbin 'dust' tracers
    32       ! dust, special doubleq case
    33       integer :: igcm_dust_mass   ! dust mass mixing ratio (for transported dust)
    34       integer :: igcm_dust_number ! dust number mixing ratio (transported dust)
    35       ! water
    36       integer :: igcm_h2o_vap ! water vapour
    37       integer :: igcm_h2o_ice ! water ice
    38       ! chemistry:
    39       integer :: igcm_co2
    40       integer :: igcm_co
    41       integer :: igcm_o
    42       integer :: igcm_o1d
    43       integer :: igcm_o2
    44       integer :: igcm_o3
    45       integer :: igcm_h
    46       integer :: igcm_h2
    47       integer :: igcm_oh
    48       integer :: igcm_ho2
    49       integer :: igcm_h2o2
    50       integer :: igcm_n2
    51       integer :: igcm_ar
    52       integer,save :: igcm_n
    53       integer,save :: igcm_no
    54       integer,save :: igcm_no2
    55       integer,save :: igcm_n2d
    56       integer,save :: igcm_ch4
     29       ! dust
     30       integer,save,allocatable :: igcm_dustbin(:) ! for dustbin 'dust' tracers
     31       ! dust, special doubleq case
     32       integer,save :: igcm_dust_mass   ! dust mass mixing ratio (for transported dust)
     33       integer,save :: igcm_dust_number ! dust number mixing ratio (transported dust)
     34       ! water
     35       integer,save :: igcm_h2o_vap ! water vapour
     36       integer,save :: igcm_h2o_ice ! water ice
     37       ! chemistry:
     38       integer,save :: igcm_co2
     39       integer,save :: igcm_co
     40       integer,save :: igcm_o
     41       integer,save :: igcm_o1d
     42       integer,save :: igcm_o2
     43       integer,save :: igcm_o3
     44       integer,save :: igcm_h
     45       integer,save :: igcm_h2
     46       integer,save :: igcm_oh
     47       integer,save :: igcm_ho2
     48       integer,save :: igcm_h2o2
     49       integer,save :: igcm_n2
     50       integer,save :: igcm_ar
     51       integer,save :: igcm_n
     52       integer,save :: igcm_no
     53       integer,save :: igcm_no2
     54       integer,save :: igcm_n2d
     55       integer,save :: igcm_ch4
    5756
    58       integer :: igcm_ch3
    59       integer :: igcm_ch
    60       integer :: igcm_3ch2
    61       integer :: igcm_1ch2
    62       integer :: igcm_cho
    63       integer :: igcm_ch2o
    64       integer :: igcm_ch3o
    65       integer :: igcm_c
    66       integer :: igcm_c2
    67       integer :: igcm_c2h
    68       integer :: igcm_c2h2
    69       integer :: igcm_c2h3
    70       integer :: igcm_c2h4
    71       integer :: igcm_c2h6
    72       integer :: igcm_ch2co
    73       integer :: igcm_ch3co
    74       integer :: igcm_hcaer
     57       integer,save :: igcm_ch3
     58       integer,save :: igcm_ch
     59       integer,save :: igcm_3ch2
     60       integer,save :: igcm_1ch2
     61       integer,save :: igcm_cho
     62       integer,save :: igcm_ch2o
     63       integer,save :: igcm_ch3o
     64       integer,save :: igcm_c
     65       integer,save :: igcm_c2
     66       integer,save :: igcm_c2h
     67       integer,save :: igcm_c2h2
     68       integer,save :: igcm_c2h3
     69       integer,save :: igcm_c2h4
     70       integer,save :: igcm_c2h6
     71       integer,save :: igcm_ch2co
     72       integer,save :: igcm_ch3co
     73       integer,save :: igcm_hcaer
    7574
    7675
    7776
    78       ! other tracers
    79       integer :: igcm_ar_n2 ! for simulations using co2 +neutral gaz
    80       integer :: igcm_co2_ice ! CO2 ice
     77       ! other tracers
     78       integer,save :: igcm_ar_n2 ! for simulations using co2 +neutral gaz
     79       integer,save :: igcm_co2_ice ! CO2 ice
    8180!$OMP THREADPRIVATE(igcm_dustbin,igcm_dust_mass,igcm_dust_number,igcm_h2o_vap,igcm_h2o_ice, &
    8281        !$OMP igcm_co2,igcm_co,igcm_o,igcm_o1d,igcm_o2,igcm_o3,igcm_h,igcm_h2,igcm_oh,      &
Note: See TracChangeset for help on using the changeset viewer.