Changeset 1036 for trunk/LMDZ.MARS/libf/aeronomars
- Timestamp:
- Sep 11, 2013, 2:34:44 PM (12 years ago)
- Location:
- trunk/LMDZ.MARS/libf/aeronomars
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/aeronomars/calchim.F90
r658 r1036 1 subroutine calchim(ptimestep,pplay,pplev,pt,pdt,dist_sol,mu0, & 1 subroutine calchim(nq, & 2 ptimestep,pplay,pplev,pt,pdt,dist_sol,mu0, & 2 3 zzlev,zzlay,zday,pq,pdq,dqchim,dqschim,dqcloud, & 3 4 dqscloud,tauref,co2ice, & 4 5 pu,pdu,pv,pdv,surfdust,surfice) 5 6 7 use tracer_mod, only: igcm_co2, igcm_co, igcm_o, igcm_o1d, igcm_o2, & 8 igcm_o3, igcm_h, igcm_h2, igcm_oh, igcm_ho2, & 9 igcm_h2o2, igcm_ch4, igcm_n2, igcm_h2o_vap, & 10 igcm_no, igcm_n, igcm_no2, igcm_n2d, & 11 igcm_o2plus, igcm_co2plus, igcm_oplus, & 12 igcm_coplus, igcm_cplus, igcm_nplus, & 13 igcm_noplus, igcm_n2plus, igcm_hplus, & 14 igcm_hco2plus, igcm_elec, mmol 6 15 implicit none 7 16 … … 56 65 #include "dimphys.h" 57 66 #include "chimiedata.h" 58 #include "tracer.h"67 !#include "tracer.h" 59 68 #include "comcstfi.h" 60 69 #include "callkeys.h" … … 63 72 ! input: 64 73 74 integer,intent(in) :: nq ! number of tracers 65 75 real :: ptimestep 66 76 real :: pplay(ngridmx,nlayermx) ! pressure at the middle of the layers … … 76 86 real :: dist_sol ! distance of the sun (AU) 77 87 real :: mu0(ngridmx) ! cos of solar zenith angle (=1 when sun at zenith) 78 real :: pq(ngridmx,nlayermx,nq mx) ! tracers mass mixing ratio79 real :: pdq(ngridmx,nlayermx,nq mx) ! previous tendencies88 real :: pq(ngridmx,nlayermx,nq) ! tracers mass mixing ratio 89 real :: pdq(ngridmx,nlayermx,nq) ! previous tendencies 80 90 real :: zday ! date (time since Ls=0, in martian days) 81 91 real :: tauref(ngridmx) ! optical depth at 7 hPa … … 86 96 ! output: 87 97 88 real :: dqchim(ngridmx,nlayermx,nq mx) ! tendencies on pq due to chemistry89 real :: dqschim(ngridmx,nq mx) ! tendencies on qsurf90 real :: dqcloud(ngridmx,nlayermx,nq mx)! tendencies on pq due to condensation91 real :: dqscloud(ngridmx,nq mx) ! tendencies on qsurf98 real :: dqchim(ngridmx,nlayermx,nq) ! tendencies on pq due to chemistry 99 real :: dqschim(ngridmx,nq) ! tendencies on qsurf 100 real :: dqcloud(ngridmx,nlayermx,nq)! tendencies on pq due to condensation 101 real :: dqscloud(ngridmx,nq) ! tendencies on qsurf 92 102 93 103 ! local variables: 94 104 95 105 integer,save :: nbq ! number of tracers used in the chemistry 96 integer, save :: niq(nqmx)! array storing the indexes of the tracers106 integer,allocatable,save :: niq(:) ! array storing the indexes of the tracers 97 107 integer :: iloc(1) ! index of major species 98 108 integer :: ig,l,i,iq,iqmax … … 133 143 134 144 real :: latvl1, lonvl1 135 real :: zq(ngridmx,nlayermx,nq mx) ! pq+pdq*ptimestep before chemistry145 real :: zq(ngridmx,nlayermx,nq) ! pq+pdq*ptimestep before chemistry 136 146 ! new mole fraction after 137 147 real :: zt(ngridmx,nlayermx) ! temperature … … 149 159 real :: ztemp(nlayermx) ! Temperature (K) 150 160 real :: zlocal(nlayermx) ! Altitude (km) 151 real :: zycol(nlayermx,nq mx) ! Composition (mole fractions)161 real :: zycol(nlayermx,nq) ! Composition (mole fractions) 152 162 real :: szacol ! Solar zenith angle 153 163 real :: surfice1d(nlayermx) ! Ice surface area (cm2/cm3) … … 172 182 end if 173 183 ! find index of chemical tracers to use 184 allocate(niq(nq)) 174 185 ! Listed here are all tracers that can go into photochemistry 175 186 nbq = 0 ! to count number of tracers -
trunk/LMDZ.MARS/libf/aeronomars/chemthermos.F90
r705 r1036 2 2 zpress,zlocal,zenit,ptimestep,zday) 3 3 4 use tracer_mod, only: nqmx, igcm_co2, igcm_co, igcm_o, igcm_o1d, & 5 igcm_o2, igcm_h, igcm_h2, igcm_oh, igcm_ho2,& 6 igcm_h2o2, igcm_h2o_vap, igcm_o3, igcm_n2, & 7 igcm_n, igcm_no, igcm_no2, igcm_n2d, & 8 igcm_co2plus, igcm_o2plus, igcm_coplus, & 9 igcm_cplus, igcm_nplus, igcm_noplus, & 10 igcm_n2plus, igcm_hplus, igcm_hco2plus, & 11 igcm_elec, igcm_oplus 4 12 IMPLICIT NONE 5 13 !======================================================================= … … 28 36 #include "param.h" 29 37 #include "param_v4.h" 30 #include"tracer.h"38 !#include"tracer.h" 31 39 !----------------------------------------------------------------------- 32 40 ! Input/Output -
trunk/LMDZ.MARS/libf/aeronomars/concentrations.F
r1035 r1036 1 SUBROUTINE concentrations( pplay,pt,pdt,pq,pdq,ptimestep)1 SUBROUTINE concentrations(nq,pplay,pt,pdt,pq,pdq,ptimestep) 2 2 3 use tracer_mod, only: igcm_co2, igcm_co, igcm_o, igcm_o1d, 4 & igcm_o2, igcm_o3, igcm_h, igcm_h2, 5 & igcm_oh, igcm_ho2, igcm_n2, igcm_ar, 6 & igcm_h2o_vap, igcm_n, igcm_no, igcm_no2, 7 & igcm_n2d, igcm_co2plus, igcm_oplus, 8 & igcm_o2plus, igcm_coplus, igcm_cplus, 9 & igcm_nplus, igcm_noplus, igcm_n2plus, 10 & igcm_hplus, igcm_hco2plus, mmol 3 11 implicit none 4 12 … … 22 30 #include "comdiurn.h" 23 31 #include "chimiedata.h" 24 #include "tracer.h"32 !#include "tracer.h" 25 33 #include "conc.h" 26 34 27 35 ! input/output 28 36 29 real pplay(ngridmx,nlayermx) 30 real pt(ngridmx,nlayermx) 31 real pdt(ngridmx,nlayermx) 32 real pq(ngridmx,nlayermx,nqmx) 33 real pdq(ngridmx,nlayermx,nqmx) 34 real ptimestep 37 integer,intent(in) :: nq ! number of tracers 38 real,intent(in) :: pplay(ngridmx,nlayermx) 39 real,intent(in) :: pt(ngridmx,nlayermx) 40 real,intent(in) :: pdt(ngridmx,nlayermx) 41 real,intent(in) :: pq(ngridmx,nlayermx,nq) 42 real,intent(in) :: pdq(ngridmx,nlayermx,nq) 43 real,intent(in) :: ptimestep 35 44 36 45 ! local variables 37 46 38 47 integer :: i, l, ig, iq 39 integer, save :: nbq, niq(nqmx) 40 real :: ni(nqmx), ntot 41 real :: zq(ngridmx, nlayermx, nqmx) 48 integer, save :: nbq 49 integer,allocatable,save :: niq(:) 50 real :: ni(nq), ntot 51 real :: zq(ngridmx, nlayermx, nq) 42 52 real :: zt(ngridmx, nlayermx) 43 real, save :: aki(nqmx)44 real, save :: cpi(nqmx)53 real,allocatable,save :: aki(:) 54 real,allocatable,save :: cpi(:) 45 55 46 56 logical, save :: firstcall = .true. … … 48 58 if (firstcall) then 49 59 60 ! allocate local saved arrays: 61 allocate(aki(nq)) 62 allocate(cpi(nq)) 63 allocate(niq(nq)) 50 64 ! find index of chemical tracers to use 51 65 ! initialize thermal conductivity and specific heat coefficients … … 217 231 endif 218 232 219 233 ! tell the world about it: 234 write(*,*) "concentrations: firstcall, nbq=",nbq 235 write(*,*) " niq(1:nbq)=",niq(1:nbq) 236 write(*,*) " aki(1:nbq)=",aki(1:nbq) 237 write(*,*) " cpi(1:nbq)=",cpi(1:nbq) 220 238 221 239 firstcall = .false. -
trunk/LMDZ.MARS/libf/aeronomars/deposition.F
r421 r1036 7 7 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 8 8 c 9 use tracer_mod, only: nqmx 9 10 implicit none 10 11 c -
trunk/LMDZ.MARS/libf/aeronomars/euvheat.F90
r705 r1036 2 2 mu0,ptimestep,ptime,zday,pq,pdq,pdteuv) 3 3 4 use tracer_mod, only: nqmx, igcm_co2, igcm_co, igcm_o, igcm_o1d, & 5 igcm_o2, igcm_h, igcm_h2, igcm_oh, igcm_ho2,& 6 igcm_h2o2, igcm_h2o_vap, igcm_o3, igcm_n2, & 7 igcm_n, igcm_no, igcm_no2, igcm_n2d, mmol 4 8 IMPLICIT NONE 5 9 !======================================================================= … … 34 38 #include "param_v4.h" 35 39 #include "chimiedata.h" 36 #include "tracer.h"40 !#include "tracer.h" 37 41 #include "conc.h" 38 42 !----------------------------------------------------------------------- -
trunk/LMDZ.MARS/libf/aeronomars/inichim_newstart.F90
r655 r1036 1 subroutine inichim_newstart(pq, qsurf, ps, flagh2o, flagthermo) 2 1 subroutine inichim_newstart(nq, pq, qsurf, ps, flagh2o, flagthermo) 2 3 use tracer_mod 3 4 implicit none 4 5 … … 23 24 ! ---------- 24 25 ! 25 ! pq(iip1,jjp1,llm,nq mx) Advected fields, ie chemical species here26 ! qsurf(ngridmx,nq mx) Amount of tracer on the surface (kg/m2)26 ! pq(iip1,jjp1,llm,nq) Advected fields, ie chemical species here 27 ! qsurf(ngridmx,nq) Amount of tracer on the surface (kg/m2) 27 28 ! ps(iip1,jjp1) Surface pressure (Pa) 28 29 ! flagh2o flag for initialisation of h2o (1: yes / 0: no) … … 34 35 #include "dimphys.h" 35 36 #include "paramet.h" 36 #include "tracer.h"37 !#include "tracer.h" 37 38 #include "comvert.h" 38 39 #include "callkeys.h" … … 41 42 ! inputs : 42 43 44 integer,intent(in) :: nq ! number of tracers 43 45 real,intent(in) :: ps(iip1,jjp1) ! surface pressure in the gcm (Pa) 44 46 integer,intent(in) :: flagh2o ! flag for h2o initialisation … … 47 49 ! outputs : 48 50 49 real,intent(out) :: pq(iip1,jjp1,llm,nq mx) ! advected fields, ie chemical species50 real,intent(out) :: qsurf(ngridmx,nq mx) ! surface values (kg/m2) of tracers51 real,intent(out) :: pq(iip1,jjp1,llm,nq) ! advected fields, ie chemical species 52 real,intent(out) :: qsurf(ngridmx,nq) ! surface values (kg/m2) of tracers 51 53 52 54 ! local : … … 73 75 74 76 ! 1.1 initialize tracer indexes to zero: 75 77 nqmx=nq ! initialize value of nqmx 78 76 79 do iq = 1,nqmx 77 80 igcm_dustbin(iq) = 0 -
trunk/LMDZ.MARS/libf/aeronomars/jthermcalc.F
r658 r1036 1026 1026 c********************************************************************** 1027 1027 1028 use tracer_mod, only: igcm_o, igcm_co2, igcm_o2, igcm_h2, 1029 & igcm_h2o_vap, igcm_h2o2, igcm_co, igcm_h, 1030 & igcm_o3, igcm_n2, igcm_n, igcm_no, igcm_no2, 1031 & mmol 1028 1032 implicit none 1029 1033 … … 1032 1036 include "dimensions.h" 1033 1037 include "dimphys.h" 1034 include "tracer.h"1038 ! include "tracer.h" 1035 1039 include 'param.h' 1036 1040 include 'param_v4.h' -
trunk/LMDZ.MARS/libf/aeronomars/moldiff.F
r690 r1036 2 2 & zzlay,pdteuv,pdtconduc,pdqdiff) 3 3 4 4 use tracer_mod, only: nqmx, igcm_co2, igcm_co, igcm_o, igcm_o1d, 5 & igcm_o2, igcm_o3, igcm_h, igcm_h2, igcm_oh, 6 & igcm_ho2, igcm_h2o2, igcm_n2, igcm_ar, 7 & igcm_h2o_vap, mmol 5 8 implicit none 6 9 … … 11 14 #include "comdiurn.h" 12 15 #include "chimiedata.h" 13 #include "tracer.h"16 !#include "tracer.h" 14 17 #include "conc.h" 15 18 -
trunk/LMDZ.MARS/libf/aeronomars/moldiff_red.F90
r1020 r1036 1 1 subroutine moldiff_red(pplay,pplev,pt,pdt,pq,pdq,ptimestep,zzlay,pdteuv,pdtconduc,pdqdiff) 2 3 use tracer_mod, only: nqmx, noms, mmol 2 4 3 5 implicit none … … 9 11 #include "comdiurn.h" 10 12 #include "chimiedata.h" 11 #include "tracer.h"13 !#include "tracer.h" 12 14 #include "conc.h" 13 15 #include "diffusion.h" … … 904 906 905 907 SUBROUTINE QMNEW(Q1,DQ,Q2,dtime,nl,nq,gc,ig) 908 use tracer_mod, only: nqmx 906 909 IMPLICIT NONE 907 #include "dimensions.h"910 !#include "dimensions.h" 908 911 909 912 INTEGER,INTENT(IN) :: nl,nq … … 939 942 940 943 SUBROUTINE MMOY(massemoy,mmol,qq,gc,nl,nq) 941 IMPLICIT NONE 942 #include "dimensions.h" 944 use tracer_mod, only: nqmx 945 IMPLICIT NONE 946 !#include "dimensions.h" 943 947 944 948 INTEGER :: nl,nq,l … … 1023 1027 & qq,mmol,gc,Praf,Traf,Qraf,Mraf,Zraf, & 1024 1028 & Nraf,Nrafk,Rraf,Rrafk,il,nl,nq,nlx,ig) 1029 use tracer_mod, only: nqmx 1025 1030 IMPLICIT NONE 1026 #include "dimensions.h"1031 !#include "dimensions.h" 1027 1032 1028 1033 INTEGER :: nl,nq,il,l,i,iq,nlx,iz,ig … … 1364 1369 SUBROUTINE GCMGRID_P(Z,P,Q,T,Nk,Rk,qq,qnew,tt,tnew, & 1365 1370 & pp,M,gc,nl,nq,nlx,ig) 1366 IMPLICIT NONE 1367 #include "dimensions.h" 1371 use tracer_mod, only: nqmx 1372 IMPLICIT NONE 1373 !#include "dimensions.h" 1368 1374 INTEGER :: nl,nq,nlx,il,nn,iP,ig,compteur 1369 1375 INTEGER,DIMENSION(1) :: indP … … 1465 1471 SUBROUTINE GCMGRID_P2(Z,P,Q,T,Nk,Rk,qq,qnew,tt,tnew & 1466 1472 & ,pp,M,gc,nl,nq,nlx,facM,ig) 1473 use tracer_mod, only: nqmx 1467 1474 IMPLICIT NONE 1468 #include "dimensions.h"1475 !#include "dimensions.h" 1469 1476 INTEGER :: nl,nq,nlx,il,nn,iP,ig,compteur 1470 1477 INTEGER,DIMENSION(1) :: indP -
trunk/LMDZ.MARS/libf/aeronomars/moldiffcoeff.F
r414 r1036 1 1 subroutine moldiffcoeff(dij) 2 3 use tracer_mod, only: igcm_co2, igcm_co, igcm_o, igcm_o1d, 4 & igcm_o2, igcm_o3, igcm_h, igcm_h2, igcm_oh, 5 & igcm_ho2, igcm_h2o2, igcm_n2, igcm_ar, 6 & igcm_h2o_vap, mmol 2 7 3 8 IMPLICIT NONE … … 16 21 #include "comdiurn.h" 17 22 #include "chimiedata.h" 18 #include "tracer.h"23 !#include "tracer.h" 19 24 #include "conc.h" 20 25 -
trunk/LMDZ.MARS/libf/aeronomars/moldiffcoeff_red.F
r710 r1036 1 1 subroutine moldiffcoeff_red(dij,indic,gcmind,ncompdiff2) 2 2 3 use tracer_mod, only: nqmx, noms, mmol 3 4 IMPLICIT NONE 4 5 c======================================================================= … … 16 17 #include "comdiurn.h" 17 18 #include "chimiedata.h" 18 #include "tracer.h"19 !#include "tracer.h" 19 20 #include "conc.h" 20 21 #include "diffusion.h" -
trunk/LMDZ.MARS/libf/aeronomars/perosat.F
r658 r1036 2 2 $ pplev, pplay, zt, 3 3 & zy, pdqcloud, pdqscloud) 4 use tracer_mod, only: nqmx, igcm_h2o2, mmol 4 5 IMPLICIT NONE 5 6 … … 14 15 c 15 16 c WARNING : H2O2 mixing ratio is assumed to be q(igcm_h2o2) 16 c index igcm_h2o2 is known from tracer .h17 c index igcm_h2o2 is known from tracer_mod 17 18 c======================================================================= 18 19 … … 25 26 #include "comcstfi.h" 26 27 #include "chimiedata.h" 27 #include "tracer.h"28 !#include "tracer.h" 28 29 #include "conc.h" 29 30 c -
trunk/LMDZ.MARS/libf/aeronomars/photochemistry.F
r690 r1036 14 14 $ surfice1d, jo3, tau) 15 15 c 16 use tracer_mod, only: nqmx 16 17 implicit none 17 18 c … … 20 21 #include "chimiedata.h" 21 22 #include "callkeys.h" 22 #include "tracer.h"23 !#include "tracer.h" 23 24 c 24 25 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc … … 1152 1153 c***************************************************************** 1153 1154 c 1155 use tracer_mod, only: nqmx, igcm_co2, igcm_co, igcm_o, igcm_o1d, 1156 & igcm_o2, igcm_o3, igcm_h, igcm_h2, igcm_oh, 1157 & igcm_ho2, igcm_h2o2, igcm_n2, igcm_h2o_vap, 1158 & igcm_ch4 1154 1159 implicit none 1155 1160 c … … 1157 1162 #include "dimphys.h" 1158 1163 #include "callkeys.h" 1159 #include "tracer.h"1164 !#include "tracer.h" 1160 1165 c 1161 1166 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc … … 1250 1255 c***************************************************************** 1251 1256 c 1257 use tracer_mod, only: nqmx, igcm_co2, igcm_co, igcm_o, igcm_o1d, 1258 & igcm_o2, igcm_o3, igcm_h, igcm_h2, igcm_oh, 1259 & igcm_ho2, igcm_h2o2, igcm_n2, igcm_h2o_vap, 1260 & igcm_ch4 1252 1261 implicit none 1253 1262 c … … 1255 1264 #include "dimphys.h" 1256 1265 #include "callkeys.h" 1257 #include "tracer.h"1266 !#include "tracer.h" 1258 1267 c 1259 1268 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -
trunk/LMDZ.MARS/libf/aeronomars/surfacearea.F
r635 r1036 5 5 $ surfdust, surfice) 6 6 7 use tracer_mod, only: nuice_sed, igcm_dust_number, 8 & igcm_ccn_number, varian, ccn_factor 7 9 implicit none 8 10 … … 19 21 #include "comcstfi.h" 20 22 #include "callkeys.h" 21 #include "tracer.h"23 !#include "tracer.h" 22 24 #include "dimradmars.h" 23 25 #include "chimiedata.h" -
trunk/LMDZ.MARS/libf/aeronomars/thermosphere.F
r658 r1036 4 4 $ zdteuv,zdtconduc,zdumolvis,zdvmolvis,zdqmoldiff) 5 5 6 use tracer_mod, only: nqmx ! number of advecter tracers 6 7 implicit none 7 8
Note: See TracChangeset
for help on using the changeset viewer.