Changeset 3027
- Timestamp:
- Aug 14, 2023, 11:41:45 AM (16 months ago)
- Location:
- trunk/LMDZ.MARS/libf/phymars
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/phymars/dyn1d/testphys1d.F
r3026 r3027 445 445 paleomars=.false. ! Default: no water ice reservoir 446 446 call getin("paleomars",paleomars) 447 if (paleomars .eqv..true.) then447 if (paleomars) then 448 448 write(*,*) "paleomars=", paleomars 449 449 write(*,*) "Orbital parameters from callphys.def" -
trunk/LMDZ.MARS/libf/phymars/initracer.F
r3026 r3027 39 39 real, parameter :: popratio = 25. 40 40 character(len=30) :: txt ! to store some text 41 character(len=30), dimension(nq) :: idtracers 41 42 42 43 c----------------------------------------------------------------------- … … 133 134 if (noms(iq).eq.txt) then 134 135 count=count+1 136 idtracers(count) = txt 135 137 igcm_dustbin(count)=iq 136 138 mmol(iq)=100. … … 143 145 igcm_dust_mass=iq 144 146 count=count+1 147 idtracers(count) = "dust_mass" 145 148 endif 146 149 if (noms(iq).eq."dust_number") then 147 150 igcm_dust_number=iq 148 151 count=count+1 152 idtracers(count) = "dust_number" 149 153 endif 150 154 enddo … … 155 159 igcm_ccn_mass=iq 156 160 count=count+1 161 idtracers(count) = "ccn_mass" 157 162 endif 158 163 if (noms(iq).eq."ccn_number") then 159 164 igcm_ccn_number=iq 160 165 count=count+1 166 idtracers(count) = "ccn_number" 161 167 endif 162 168 enddo … … 168 174 mmol(iq)=100. 169 175 count=count+1 176 idtracers(count) = "dust_submicron" 170 177 endif 171 178 enddo … … 176 183 igcm_stormdust_mass=iq 177 184 count=count+1 185 idtracers(count) = "stormdust_mass" 178 186 endif 179 187 if (noms(iq).eq."stormdust_number") then 180 188 igcm_stormdust_number=iq 181 189 count=count+1 190 idtracers(count) = "stormdust_number" 182 191 endif 183 192 enddo … … 188 197 igcm_topdust_mass=iq 189 198 count=count+1 199 idtracers(count) = "topdust_mass" 190 200 endif 191 201 if (noms(iq).eq."topdust_number") then 192 202 igcm_topdust_number=iq 193 203 count=count+1 204 idtracers(count) = "topdust_number" 194 205 endif 195 206 enddo … … 201 212 mmol(igcm_co2)=44. 202 213 count=count+1 214 idtracers(count) = "co2" 203 215 endif 204 216 if (noms(iq).eq."co") then … … 206 218 mmol(igcm_co)=28. 207 219 count=count+1 220 idtracers(count) = "co" 208 221 endif 209 222 if (noms(iq).eq."o") then … … 211 224 mmol(igcm_o)=16. 212 225 count=count+1 226 idtracers(count) = "o" 213 227 endif 214 228 if (noms(iq).eq."o1d") then … … 216 230 mmol(igcm_o1d)=16. 217 231 count=count+1 232 idtracers(count) = "o1d" 218 233 endif 219 234 if (noms(iq).eq."o2") then … … 221 236 mmol(igcm_o2)=32. 222 237 count=count+1 238 idtracers(count) = "o2" 223 239 endif 224 240 if (noms(iq).eq."o3") then … … 226 242 mmol(igcm_o3)=48. 227 243 count=count+1 244 idtracers(count) = "o3" 228 245 endif 229 246 if (noms(iq).eq."h") then … … 231 248 mmol(igcm_h)=1. 232 249 count=count+1 250 idtracers(count) = "h" 233 251 endif 234 252 if (noms(iq).eq."h2") then … … 236 254 mmol(igcm_h2)=2. 237 255 count=count+1 256 idtracers(count) = "h2" 238 257 endif 239 258 if (noms(iq).eq."oh") then … … 241 260 mmol(igcm_oh)=17. 242 261 count=count+1 262 idtracers(count) = "oh" 243 263 endif 244 264 if (noms(iq).eq."ho2") then … … 246 266 mmol(igcm_ho2)=33. 247 267 count=count+1 268 idtracers(count) = "ho2" 248 269 endif 249 270 if (noms(iq).eq."h2o2") then … … 251 272 mmol(igcm_h2o2)=34. 252 273 count=count+1 274 idtracers(count) = "h2o2" 253 275 endif 254 276 if (noms(iq).eq."n2") then … … 256 278 mmol(igcm_n2)=28. 257 279 count=count+1 280 idtracers(count) = "n2" 258 281 endif 259 282 if (noms(iq).eq."ch4") then … … 261 284 mmol(igcm_ch4)=16. 262 285 count=count+1 286 idtracers(count) = "ch4" 263 287 endif 264 288 if (noms(iq).eq."ar") then … … 266 290 mmol(igcm_ar)=40. 267 291 count=count+1 292 idtracers(count) = "ar" 268 293 endif 269 294 if (noms(iq).eq."n") then … … 271 296 mmol(igcm_n)=14. 272 297 count=count+1 298 idtracers(count) = "n" 273 299 endif 274 300 if (noms(iq).eq."no") then … … 276 302 mmol(igcm_no)=30. 277 303 count=count+1 304 idtracers(count) = "no" 278 305 endif 279 306 if (noms(iq).eq."no2") then … … 281 308 mmol(igcm_no2)=46. 282 309 count=count+1 310 idtracers(count) = "no2" 283 311 endif 284 312 if (noms(iq).eq."n2d") then … … 286 314 mmol(igcm_n2d)=28. 287 315 count=count+1 316 idtracers(count) = "n2d" 288 317 endif 289 318 if (noms(iq).eq."he") then … … 291 320 mmol(igcm_he)=4. 292 321 count=count+1 322 idtracers(count) = "he" 293 323 endif 294 324 if (noms(iq).eq."co2plus") then … … 296 326 mmol(igcm_co2plus)=44. 297 327 count=count+1 328 idtracers(count) = "co2plus" 298 329 endif 299 330 if (noms(iq).eq."oplus") then … … 301 332 mmol(igcm_oplus)=16. 302 333 count=count+1 334 idtracers(count) = "oplus" 303 335 endif 304 336 if (noms(iq).eq."o2plus") then … … 306 338 mmol(igcm_o2plus)=32. 307 339 count=count+1 340 idtracers(count) = "o2plus" 308 341 endif 309 342 if (noms(iq).eq."coplus") then … … 311 344 mmol(igcm_coplus)=28. 312 345 count=count+1 346 idtracers(count) = "coplus" 313 347 endif 314 348 if (noms(iq).eq."cplus") then … … 316 350 mmol(igcm_cplus)=12. 317 351 count=count+1 352 idtracers(count) = "cplus" 318 353 endif 319 354 if (noms(iq).eq."nplus") then … … 321 356 mmol(igcm_nplus)=14. 322 357 count=count+1 358 idtracers(count) = "nplus" 323 359 endif 324 360 if (noms(iq).eq."noplus") then … … 326 362 mmol(igcm_noplus)=30. 327 363 count=count+1 364 idtracers(count) = "noplus" 328 365 endif 329 366 if (noms(iq).eq."n2plus") then … … 331 368 mmol(igcm_n2plus)=28. 332 369 count=count+1 370 idtracers(count) = "n2plus" 333 371 endif 334 372 if (noms(iq).eq."hplus") then … … 336 374 mmol(igcm_hplus)=1. 337 375 count=count+1 376 idtracers(count) = "hplus" 338 377 endif 339 378 if (noms(iq).eq."hco2plus") then … … 341 380 mmol(igcm_hco2plus)=45. 342 381 count=count+1 382 idtracers(count) = "hco2plus" 343 383 endif 344 384 if (noms(iq).eq."hcoplus") then … … 346 386 mmol(igcm_hcoplus)=29. 347 387 count=count+1 388 idtracers(count) = "hcoplus" 348 389 endif 349 390 if (noms(iq).eq."h2oplus") then … … 351 392 mmol(igcm_h2oplus)=18. 352 393 count=count+1 394 idtracers(count) = "h2oplus" 353 395 endif 354 396 if (noms(iq).eq."h3oplus") then … … 356 398 mmol(igcm_h3oplus)=19. 357 399 count=count+1 400 idtracers(count) = "h3oplus" 358 401 endif 359 402 if (noms(iq).eq."ohplus") then … … 361 404 mmol(igcm_ohplus)=17. 362 405 count=count+1 406 idtracers(count) = "ohplus" 363 407 endif 364 408 if (noms(iq).eq."elec") then … … 366 410 mmol(igcm_elec)=1./1822.89 367 411 count=count+1 412 idtracers(count) = "elec" 368 413 endif 369 414 if (noms(iq).eq."h2o_vap") then … … 371 416 mmol(igcm_h2o_vap)=18. 372 417 count=count+1 418 idtracers(count) = "h2o_vap" 373 419 endif 374 420 if (noms(iq).eq."hdo_vap") then … … 376 422 mmol(igcm_hdo_vap)=19. 377 423 count=count+1 424 idtracers(count) = "hdo_vap" 378 425 endif 379 426 if (noms(iq).eq."od") then … … 381 428 mmol(igcm_od)=18. 382 429 count=count+1 430 idtracers(count) = "od" 383 431 endif 384 432 if (noms(iq).eq."d") then … … 386 434 mmol(igcm_d)=2. 387 435 count=count+1 436 idtracers(count) = "d" 388 437 endif 389 438 if (noms(iq).eq."hd") then … … 391 440 mmol(igcm_hd)=3. 392 441 count=count+1 442 idtracers(count) = "hd" 393 443 endif 394 444 if (noms(iq).eq."do2") then … … 396 446 mmol(igcm_do2)=34. 397 447 count=count+1 448 idtracers(count) = "do2" 398 449 endif 399 450 if (noms(iq).eq."hdo2") then … … 401 452 mmol(igcm_hdo2)=35. 402 453 count=count+1 454 idtracers(count) = "hdo2" 403 455 endif 404 456 if (noms(iq).eq."co2_ice") then … … 406 458 mmol(igcm_co2_ice)=44. 407 459 count=count+1 460 idtracers(count) = "co2_ice" 408 461 endif 409 462 if (noms(iq).eq."h2o_ice") then … … 411 464 mmol(igcm_h2o_ice)=18. 412 465 count=count+1 466 idtracers(count) = "h2o_ice" 413 467 endif 414 468 if (noms(iq).eq."hdo_ice") then … … 416 470 mmol(igcm_hdo_ice)=19. 417 471 count=count+1 472 idtracers(count) = "hdo_ice" 418 473 endif 419 474 ! Other stuff: e.g. for simulations using co2 + neutral gaz … … 422 477 mmol(igcm_ar_n2)=30. 423 478 count=count+1 479 idtracers(count) = "Ar_N2" 424 480 endif 425 481 if (co2clouds) then … … 427 483 igcm_ccnco2_mass=iq 428 484 count=count+1 485 idtracers(count) = "ccnco2_mass" 429 486 endif 430 487 if (noms(iq).eq."ccnco2_number") then 431 488 igcm_ccnco2_number=iq 432 489 count=count+1 490 idtracers(count) = "ccnco2_number" 433 491 endif 434 492 if (meteo_flux) then … … 436 494 igcm_ccnco2_meteor_mass=iq 437 495 count=count+1 496 idtracers(count) = "ccnco2_meteor_mass" 438 497 endif 439 498 if (noms(iq).eq."ccnco2_meteor_number") then 440 499 igcm_ccnco2_meteor_number=iq 441 500 count=count+1 501 idtracers(count) = "ccnco2_meteor_number" 442 502 endif 443 503 end if … … 446 506 igcm_ccnco2_h2o_number=iq 447 507 count=count+1 508 idtracers(count) = "ccnco2_h2o_number" 448 509 endif 449 510 if (noms(iq).eq."ccnco2_h2o_mass_ice") then 450 511 igcm_ccnco2_h2o_mass_ice=iq 451 512 count=count+1 513 idtracers(count) = "ccnco2_h2o_mass_ice" 452 514 endif 453 515 if (noms(iq).eq."ccnco2_h2o_mass_ccn") then 454 516 igcm_ccnco2_h2o_mass_ccn=iq 455 517 count=count+1 518 idtracers(count) = "ccnco2_h2o_mass_ccn" 456 519 endif 457 520 end if … … 460 523 461 524 ! check that we identified all tracers: 462 if (count.ne.nq) then 463 write(*,*) "initracer: found only ",count," tracers" 464 write(*,*) " expected ",nq 525 if (count /= nq) then 526 write(*,*) "initracer: found only",count,"tracers but", 527 &nq,"are expected according to traceur.def!" 528 write(*,*) "initracer: the only identified tracers are:" 529 do iq = 1,count 530 write(*,*) ' ',iq,trim(idtracers(iq)) 531 enddo 465 532 call abort_physic("initracer","tracer mismatch",1) 466 533 else 467 534 write(*,*) "initracer: found all expected tracers, namely:" 468 do iq =1,nq469 write(*,*) ' ',iq,' ',trim(noms(iq))535 do iq = 1,nq 536 write(*,*) ' ',iq,' ',trim(noms(iq)) 470 537 enddo 471 538 endif -
trunk/LMDZ.MARS/libf/phymars/physiq_mod.F
r3026 r3027 3845 3845 ENDIF ! hdo 3846 3846 endif !not.scavenging 3847 ENDIF ! of IF (water)3848 3847 3849 3848 ! Output needed by the PEM … … 3893 3892 CALL write_output("co2_layer1","co2 mass mr in the first layer", 3894 3893 & 'kg/kg',zq(:,1,igcm_co2)) 3894 ENDIF ! of IF (water) 3895 3895 3896 3896 !PREVIOUSLY IN 1D ONLY
Note: See TracChangeset
for help on using the changeset viewer.