Changeset 1980
- Timestamp:
- Jul 31, 2018, 5:51:36 PM (6 years ago)
- Location:
- trunk/LMDZ.GENERIC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/README
r1883 r1980 1370 1370 and turb_mod 1371 1371 1372 == 31/07/2018 == EM 1373 Follow-up of change in maximum length of tracer names in the dynamics -
trunk/LMDZ.GENERIC/libf/phystd/initracer.F
r1801 r1980 1 1 SUBROUTINE initracer(ngrid,nq,nametrac) 2 2 3 use surfdat_h 3 use surfdat_h, ONLY: dryness, watercaptag 4 4 USE tracer_h 5 5 USE callkeys_mod, only: water … … 22 22 c======================================================================= 23 23 24 integer :: ngrid,nq 24 integer,intent(in) :: ngrid,nq 25 character(len=30),intent(in) :: nametrac(nq) ! name of the tracer from dynamics 25 26 26 27 ! real qsurf(ngrid,nq) ! tracer on surface (e.g. kg.m-2) 27 28 ! real co2ice(ngrid) ! co2 ice mass on surface (e.g. kg.m-2) 28 character(len= 20) :: txt ! to store some text29 character(len=30) :: txt ! to store some text 29 30 integer iq,ig,count 30 31 real r0_lift , reff_lift 31 32 ! logical :: oldnames ! =.true. if old tracer naming convention (q01,...) 32 33 33 character*20 nametrac(nq) ! name of the tracer from dynamics34 34 35 35 … … 67 67 qext(:)=0. 68 68 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 75 71 do iq=1,nq 76 72 noms(iq)=nametrac(iq) 73 write(*,*)"initracer: iq=",iq,"noms(iq)=",trim(noms(iq)) 77 74 enddo 78 75 … … 128 125 129 126 130 write(*,*) 'initracer: noms() ', noms131 132 133 !print*,'Setting dustbin = 0 in initracer.F'134 !dustbin=0135 127 136 128 ! 1. find dust tracers -
trunk/LMDZ.GENERIC/libf/phystd/tracer_h.F90
r1799 r1980 4 4 implicit none 5 5 6 ! nqtot : total number of tracers 7 INTEGER, SAVE :: nqtot 6 integer, save :: nqtot ! total number of tracers 8 7 !$OMP THREADPRIVATE(nqtot) 9 8 10 character* 20, DIMENSION(:), ALLOCATABLE :: noms! name of the tracer11 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 um15 real, DIMENSION(:), ALLOCATABLE :: alpha_lift! saltation vertical flux/horiz flux ratio (m-1)16 real, DIMENSION(:), ALLOCATABLE :: alpha_devil! lifting coeeficient by dust devil17 real, DIMENSION(:), ALLOCATABLE :: qextrhor! Intermediate for computing opt. depth from q9 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 18 17 19 realvarian ! Characteristic variance of log-normal distribution20 realr3n_q ! used to compute r0 from number and mass mixing ratio21 realrho_dust ! Mars dust density (kg.m-3)22 realrho_ice ! Water ice density (kg.m-3)23 realrho_co2 ! CO2 ice density (kg.m-3)24 realref_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) 25 24 !$OMP THREADPRIVATE(noms,mmol,radius,rho_q,qext,alpha_lift,alpha_devil,qextrhor, & 26 25 !$OMP varian,r3n_q,rho_dust,rho_ice,rho_co2,ref_r0) … … 28 27 ! tracer indexes: these are initialized in initracer and should be 0 if the 29 28 ! corresponding tracer does not exist 30 ! dust31 integer, DIMENSION(:), ALLOCATABLE :: igcm_dustbin! for dustbin 'dust' tracers32 ! dust, special doubleq case33 integer:: igcm_dust_mass ! dust mass mixing ratio (for transported dust)34 integer:: igcm_dust_number ! dust number mixing ratio (transported dust)35 ! water36 integer:: igcm_h2o_vap ! water vapour37 integer:: igcm_h2o_ice ! water ice38 ! chemistry:39 integer:: igcm_co240 integer:: igcm_co41 integer:: igcm_o42 integer:: igcm_o1d43 integer:: igcm_o244 integer:: igcm_o345 integer:: igcm_h46 integer:: igcm_h247 integer:: igcm_oh48 integer:: igcm_ho249 integer:: igcm_h2o250 integer:: igcm_n251 integer:: igcm_ar52 integer,save :: igcm_n53 integer,save :: igcm_no54 integer,save :: igcm_no255 integer,save :: igcm_n2d56 integer,save :: igcm_ch429 ! 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 57 56 58 integer:: igcm_ch359 integer:: igcm_ch60 integer:: igcm_3ch261 integer:: igcm_1ch262 integer:: igcm_cho63 integer:: igcm_ch2o64 integer:: igcm_ch3o65 integer:: igcm_c66 integer:: igcm_c267 integer:: igcm_c2h68 integer:: igcm_c2h269 integer:: igcm_c2h370 integer:: igcm_c2h471 integer:: igcm_c2h672 integer:: igcm_ch2co73 integer:: igcm_ch3co74 integer:: igcm_hcaer57 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 75 74 76 75 77 76 78 ! other tracers79 integer:: igcm_ar_n2 ! for simulations using co2 +neutral gaz80 integer:: igcm_co2_ice ! CO2 ice77 ! other tracers 78 integer,save :: igcm_ar_n2 ! for simulations using co2 +neutral gaz 79 integer,save :: igcm_co2_ice ! CO2 ice 81 80 !$OMP THREADPRIVATE(igcm_dustbin,igcm_dust_mass,igcm_dust_number,igcm_h2o_vap,igcm_h2o_ice, & 82 81 !$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.