Changeset 1660 for trunk/LMDZ.MARS/libf
- Timestamp:
- Feb 8, 2017, 4:36:25 PM (8 years ago)
- Location:
- trunk/LMDZ.MARS/libf
- Files:
-
- 1 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/aeronomars/concentrations.F
r1266 r1660 9 9 & igcm_o2plus, igcm_coplus, igcm_cplus, 10 10 & igcm_nplus, igcm_noplus, igcm_n2plus, 11 & igcm_hplus, igcm_hco2plus, mmol 11 & igcm_hplus, igcm_hco2plus, mmol, 12 & igcm_he 12 13 use conc_mod, only: mmean, Akknew, rnew, cpnew 13 USE comcstfi_h14 14 implicit none 15 15 … … 136 136 nbq = nbq + 1 137 137 niq(nbq) = igcm_ar 138 aki(nbq) = 0.0 !? 139 cpi(nbq) = 1.000e3 !? 138 aki(nbq) = 3.4e-4 139 cpi(nbq) = 5.2e2 140 ! aki/cpi from Leslie A. Guildner, 141 ! JOURNAL OF RESEARCH of the National Bureau of Standards- 142 ! A. Physics and Chemistry 143 ! Vol. 79A, No.2, March-April 1975 140 144 end if 141 145 if (igcm_h2o_vap /= 0) then … … 168 172 aki(nbq) = 0.0 169 173 cpi(nbq) = 0.0 174 endif 175 if(igcm_he /= 0) then 176 nbq = nbq + 1 177 niq(nbq) = igcm_he 178 aki(nbq) = 30.e-4 179 cpi(nbq) = 5.2e3 180 ! aki/cpi from Leslie A. Guildner, 181 ! JOURNAL OF RESEARCH of the National Bureau of Standards- 182 ! A. Physics and Chemistry 183 ! Vol. 79A, No.2, March-April 1975 170 184 endif 171 185 if(igcm_co2plus /= 0) then -
trunk/LMDZ.MARS/libf/aeronomars/inichim_newstart.F90
r1621 r1660 53 53 ! local : 54 54 55 integer :: iq, i, j, l, n , nbqchem55 integer :: iq, i, j, l, n 56 56 integer :: count, ierr, dummy 57 57 real :: mmean(nbp_lon+1,nbp_lat,nbp_lev) ! mean molecular mass (g) … … 76 76 nqmx=nq ! initialize value of nqmx 77 77 78 do iq = 1,nqmx 79 igcm_dustbin(iq) = 0 80 end do 81 82 igcm_dust_mass = 0 83 igcm_dust_number = 0 84 igcm_ccn_mass = 0 85 igcm_ccn_number = 0 86 igcm_h2o_vap = 0 87 igcm_h2o_ice = 0 88 igcm_co2 = 0 89 igcm_co = 0 90 igcm_o = 0 91 igcm_o1d = 0 92 igcm_o2 = 0 93 igcm_o3 = 0 94 igcm_h = 0 95 igcm_h2 = 0 96 igcm_oh = 0 97 igcm_ho2 = 0 98 igcm_h2o2 = 0 99 igcm_ch4 = 0 100 igcm_n2 = 0 101 igcm_ar = 0 102 igcm_ar_n2 = 0 103 igcm_co2plus = 0 104 igcm_oplus = 0 105 igcm_o2plus = 0 106 igcm_coplus = 0 107 igcm_cplus = 0 108 igcm_nplus = 0 109 igcm_noplus = 0 110 igcm_n2plus = 0 111 igcm_hplus = 0 112 igcm_hco2plus = 0 113 igcm_elec = 0 78 igcm_dustbin(1:nq)=0 79 igcm_co2_ice=0 80 igcm_ccnco2_mass=0 81 igcm_ccnco2_number=0 82 igcm_dust_mass=0 83 igcm_dust_number=0 84 igcm_ccn_mass=0 85 igcm_ccn_number=0 86 igcm_dust_submicron=0 87 igcm_h2o_vap=0 88 igcm_h2o_ice=0 89 igcm_co2=0 90 igcm_co=0 91 igcm_o=0 92 igcm_o1d=0 93 igcm_o2=0 94 igcm_o3=0 95 igcm_h=0 96 igcm_h2=0 97 igcm_oh=0 98 igcm_ho2=0 99 igcm_h2o2=0 100 igcm_ch4=0 101 igcm_n2=0 102 igcm_ar=0 103 igcm_ar_n2=0 104 igcm_n=0 105 igcm_no=0 106 igcm_no2=0 107 igcm_n2d=0 108 igcm_he=0 109 igcm_co2plus=0 110 igcm_oplus=0 111 igcm_o2plus=0 112 igcm_coplus=0 113 igcm_cplus=0 114 igcm_nplus=0 115 igcm_noplus=0 116 igcm_n2plus=0 117 igcm_hplus=0 118 igcm_hco2plus=0 119 igcm_elec=0 114 120 115 121 ! 1.2 find dust tracers … … 167 173 ! 1.3 find chemistry and water tracers 168 174 169 nbqchem = 0170 175 do iq = 1,nqmx 171 176 if (noms(iq) == "co2") then … … 173 178 mmol(igcm_co2) = 44. 174 179 count = count + 1 175 nbqchem = nbqchem + 1176 180 end if 177 181 if (noms(iq) == "co") then … … 179 183 mmol(igcm_co) = 28. 180 184 count = count + 1 181 nbqchem = nbqchem + 1182 185 end if 183 186 if (noms(iq) == "o") then … … 185 188 mmol(igcm_o) = 16. 186 189 count = count + 1 187 nbqchem = nbqchem + 1188 190 end if 189 191 if (noms(iq) == "o1d") then … … 191 193 mmol(igcm_o1d) = 16. 192 194 count = count + 1 193 nbqchem = nbqchem + 1194 195 end if 195 196 if (noms(iq) == "o2") then … … 197 198 mmol(igcm_o2) = 32. 198 199 count = count + 1 199 nbqchem = nbqchem + 1200 200 end if 201 201 if (noms(iq) == "o3") then … … 203 203 mmol(igcm_o3) = 48. 204 204 count = count + 1 205 nbqchem = nbqchem + 1206 205 end if 207 206 if (noms(iq) == "h") then … … 209 208 mmol(igcm_h) = 1. 210 209 count = count + 1 211 nbqchem = nbqchem + 1212 210 end if 213 211 if (noms(iq) == "h2") then … … 215 213 mmol(igcm_h2) = 2. 216 214 count = count + 1 217 nbqchem = nbqchem + 1218 215 end if 219 216 if (noms(iq) == "oh") then … … 221 218 mmol(igcm_oh) = 17. 222 219 count = count + 1 223 nbqchem = nbqchem + 1224 220 end if 225 221 if (noms(iq) == "ho2") then … … 227 223 mmol(igcm_ho2) = 33. 228 224 count = count + 1 229 nbqchem = nbqchem + 1230 225 end if 231 226 if (noms(iq) == "h2o2") then … … 233 228 mmol(igcm_h2o2) = 34. 234 229 count = count + 1 235 nbqchem = nbqchem + 1236 230 end if 237 231 if (noms(iq) == "ch4") then … … 239 233 mmol(igcm_ch4) = 16. 240 234 count = count + 1 241 nbqchem = nbqchem + 1242 235 end if 243 236 if (noms(iq) == "n2") then … … 245 238 mmol(igcm_n2) = 28. 246 239 count = count + 1 247 nbqchem = nbqchem + 1248 240 end if 249 241 if (noms(iq) == "n") then … … 251 243 mmol(igcm_n) = 14. 252 244 count = count + 1 253 nbqchem = nbqchem + 1254 245 end if 255 246 if (noms(iq) == "n2d") then … … 257 248 mmol(igcm_n2d) = 14. 258 249 count = count + 1 259 nbqchem = nbqchem + 1260 250 end if 261 251 if (noms(iq) == "no") then … … 263 253 mmol(igcm_no) = 30. 264 254 count = count + 1 265 nbqchem = nbqchem + 1266 255 end if 267 256 if (noms(iq) == "no2") then … … 269 258 mmol(igcm_no2) = 46. 270 259 count = count + 1 271 nbqchem = nbqchem + 1272 260 end if 273 261 if (noms(iq) == "ar") then … … 275 263 mmol(igcm_ar) = 40. 276 264 count = count + 1 277 nbqchem = nbqchem + 1278 265 end if 279 266 if (noms(iq) == "h2o_vap") then … … 281 268 mmol(igcm_h2o_vap) = 18. 282 269 count = count + 1 283 nbqchem = nbqchem + 1284 270 end if 285 271 if (noms(iq) == "h2o_ice") then … … 287 273 mmol(igcm_h2o_ice) = 18. 288 274 count = count + 1 289 nbqchem = nbqchem + 1 290 end if 275 end if 276 if (noms(iq).eq."he") then 277 igcm_he=iq 278 mmol(igcm_he)=4. 279 count=count+1 280 endif 291 281 292 282 ! 1.4 find ions … … 296 286 mmol(igcm_co2plus) = 44. 297 287 count = count + 1 298 nbqchem = nbqchem + 1299 288 end if 300 289 if (noms(iq) == "oplus") then … … 302 291 mmol(igcm_oplus) = 16. 303 292 count = count + 1 304 nbqchem = nbqchem + 1305 293 end if 306 294 if (noms(iq) == "o2plus") then … … 308 296 mmol(igcm_o2plus) = 32. 309 297 count = count + 1 310 nbqchem = nbqchem + 1311 298 end if 312 299 if (noms(iq) == "coplus") then … … 314 301 mmol(igcm_coplus) = 28. 315 302 count = count + 1 316 nbqchem = nbqchem + 1317 303 end if 318 304 if (noms(iq) == "cplus") then … … 320 306 mmol(igcm_cplus) = 12. 321 307 count = count + 1 322 nbqchem = nbqchem + 1323 308 end if 324 309 if (noms(iq) == "nplus") then … … 326 311 mmol(igcm_nplus) = 14. 327 312 count = count + 1 328 nbqchem = nbqchem + 1329 313 end if 330 314 if (noms(iq) == "noplus") then … … 332 316 mmol(igcm_noplus) = 30. 333 317 count = count + 1 334 nbqchem = nbqchem + 1335 318 end if 336 319 if (noms(iq) == "n2plus") then … … 338 321 mmol(igcm_n2plus) = 28. 339 322 count = count + 1 340 nbqchem = nbqchem + 1341 323 end if 342 324 if (noms(iq) == "hplus") then … … 344 326 mmol(igcm_hplus) = 1. 345 327 count = count + 1 346 nbqchem = nbqchem + 1347 328 end if 348 329 if (noms(iq) == "hco2plus") then … … 350 331 mmol(igcm_hco2plus) = 45. 351 332 count = count + 1 352 nbqchem = nbqchem + 1353 333 end if 354 334 if (noms(iq) == "elec") then -
trunk/LMDZ.MARS/libf/aeronomars/moldiff_red.F90
r1543 r1660 64 64 real*8,dimension(:),allocatable,save :: wi,Wad,Uthermal,Lambdaexo,Hspecie 65 65 real*8,dimension(:),allocatable,save :: Mtot1,Mtot2,Mraf1,Mraf2 66 character(len=20),dimension(14) :: ListeDiff 66 integer,parameter :: ListeDiffNb=15 67 character(len=20),dimension(ListeDiffNb) :: ListeDiff 67 68 real*8,parameter :: pi=3.141592653 68 69 real*8,parameter :: g=3.72d0 … … 108 109 real,save :: step 109 110 111 110 112 ! Initializations at first call 111 113 if (firstcall) then … … 127 129 ListeDiff(13)='o3' 128 130 ListeDiff(14)='n' 131 ListeDiff(15)='he' 129 132 i_h=1000 130 133 i_h2=1000 … … 135 138 136 139 do nn=1,nq 137 do n=1, 14140 do n=1,ListeDiffNb 138 141 if (ListeDiff(n) .eq. noms(nn)) then 139 142 indic_diff(nn)=1 -
trunk/LMDZ.MARS/libf/aeronomars/photochemistry.F
r1499 r1660 188 188 c***************************************************************** 189 189 190 use tracer_mod, only: igcm_ch4 190 191 implicit none 191 192 … … 686 687 production(l,i_ch4) = 0. 687 688 688 loss(l,i_ch4) = j(l,j_ch4_ch3_h) 689 $ + j(l,j_ch4_1ch2_h2) 690 $ + j(l,j_ch4_3ch2_h_h) 691 $ + j(l,j_ch4_ch_h2_h) 692 $ + b007(l)*cc(l,i_o1d) 693 $ + b008(l)*cc(l,i_o1d) 694 $ + b009(l)*cc(l,i_o1d) 695 $ + e003(l)*cc(l,i_oh) 689 if (igcm_ch4/=0) then 690 loss(l,i_ch4) = j(l,j_ch4_ch3_h) 691 $ + j(l,j_ch4_1ch2_h2) 692 $ + j(l,j_ch4_3ch2_h_h) 693 $ + j(l,j_ch4_ch_h2_h) 694 $ + b007(l)*cc(l,i_o1d) 695 $ + b008(l)*cc(l,i_o1d) 696 $ + b009(l)*cc(l,i_o1d) 697 $ + e003(l)*cc(l,i_oh) 698 else 699 loss(l,i_ch4) = 0. 700 endif 696 701 697 702 end do -
trunk/LMDZ.MARS/libf/phymars/initracer.F
r1621 r1660 88 88 igcm_no2=0 89 89 igcm_n2d=0 90 igcm_he=0 90 91 igcm_co2plus=0 91 92 igcm_oplus=0 … … 238 239 count=count+1 239 240 endif 241 if (noms(iq).eq."he") then 242 igcm_he=iq 243 mmol(igcm_he)=4. 244 count=count+1 245 endif 240 246 if (noms(iq).eq."co2plus") then 241 247 igcm_co2plus=iq -
trunk/LMDZ.MARS/libf/phymars/physiq_mod.F
r1649 r1660 20 20 & rho_ice_co2,nuiceco2_sed,nuiceco2_ref, 21 21 & igcm_dust_mass, igcm_dust_number, igcm_h2o2, 22 & nuice_ref, rho_ice, rho_dust, ref_r0 22 & nuice_ref, rho_ice, rho_dust, ref_r0, 23 & igcm_he 23 24 use comsoil_h, only: inertiedat, ! soil thermal inertia 24 25 & tsoil, nsoilmx ! number of subsurface layers … … 2336 2337 endif ! of if (tracer.and.(igcm_co2.ne.0)) 2337 2338 2339 2340 ! Output He tracer, if there is one 2341 if (tracer.and.(igcm_he.ne.0)) then 2342 call WRITEDIAGFI(ngrid,"he","helium mass mixing ratio", 2343 & "kg/kg",3,zq(1,1,igcm_he)) 2344 vmr=zq(1:ngrid,1:nlayer,igcm_he) 2345 & *mmean(1:ngrid,1:nlayer)/mmol(igcm_he) 2346 call WRITEDIAGFI(ngrid,'vmr_he','helium vol. mixing ratio', 2347 & 'mol/mol',3,vmr) 2348 endif 2349 2338 2350 c ---------------------------------------------------------- 2339 2351 c Outputs of the water cycle -
trunk/LMDZ.MARS/libf/phymars/tracer_mod.F90
r1655 r1660 73 73 integer,save :: igcm_no2 74 74 integer,save :: igcm_n2d 75 integer,save :: igcm_he 75 76 integer,save :: igcm_ch4 76 77 ! Ions
Note: See TracChangeset
for help on using the changeset viewer.