Ignore:
Timestamp:
Apr 28, 2020, 9:53:07 AM (5 years ago)
Author:
emillour
Message:

Mars GCM:

  • Add H2O+ ion chemistry

FGG

Location:
trunk/LMDZ.MARS/libf/phymars
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/initracer.F

    r2284 r2302  
    105105      igcm_hco2plus=0
    106106      igcm_hcoplus=0
     107      igcm_h2oplus=0
    107108      igcm_elec=0
    108109
     
    327328          igcm_hcoplus=iq
    328329          mmol(igcm_hcoplus)=29.
     330          count=count+1
     331        endif
     332        if (noms(iq).eq."h2oplus") then
     333          igcm_h2oplus=iq
     334          mmol(igcm_h2oplus)=18.
    329335          count=count+1
    330336        endif
     
    374380          write(*,*)'      ',iq,' ',trim(noms(iq))
    375381        enddo
    376         stop
     382        call abort_physic("initracer","tracer mismatch",1)
    377383      else
    378384        write(*,*) "initracer: found all expected tracers, namely:"
     
    522528        print*,'initracer: STOP!',
    523529     $   ' properties of dust need to be set in initracer !!!'
    524         stop
     530        call abort_physic("initracer","dustbin properties issue",1)
    525531
    526532       else if (dustbin.eq.1) then
     
    633639           write(*,*) "  cannot use doubleq option without ",
    634640     &                "a dust_mass tracer !"
    635            stop
     641           call abort_physic("initracer","doubleq issue",1)
    636642         endif
    637643         if (igcm_dust_number.eq.0) then
     
    639645           write(*,*) "  cannot use doubleq option without ",
    640646     &                "a dust_number tracer !"
    641            stop
     647           call abort_physic("initracer","doubleq issue",1)
    642648         endif
    643649       endif
     
    653659         if (count.ne.dustbin) then
    654660           write(*,*) "initracer: error !!"
    655            write(*,*) "  dusbin is set to ",dustbin,
     661           write(*,*) "  dustbin is set to ",dustbin,
    656662     &                " but we only have the following dust tracers:"
    657663           do iq=1,count
    658664             write(*,*)"   ",trim(noms(igcm_dustbin(iq)))
    659665           enddo
    660            stop
     666           call abort_physic("initracer","dustbin issue",1)
    661667         endif
    662668       endif
     
    668674           write(*,*) "  cannot use water option without ",
    669675     &                "an h2o_vap tracer !"
    670            stop
     676           call abort_physic("initracer","water cycle issue",1)
    671677         endif
    672678         if (igcm_h2o_ice.eq.0) then
     
    674680           write(*,*) "  cannot use water option without ",
    675681     &                "an h2o_ice tracer !"
    676            stop
     682           call abort_physic("initracer","water cycle issue",1)
    677683         endif
    678684       endif
     
    684690             write(*,*) "  cannot use co2 clouds option without ",
    685691     &            "a co2 tracer !"
    686           stop
     692             call abort_physic("initracer","co2 clouds issue",1)
    687693          endif
    688694          if (igcm_co2_ice .eq. 0) then
     
    690696             write(*,*) "  cannot use co2 clouds option without ",
    691697     &            "a co2_ice tracer !"
    692              stop
     698             call abort_physic("initracer","co2 clouds issue",1)
    693699          endif
    694700       endif
     
    700706           write(*,*) "  cannot use rdstorm option without ",
    701707     &                "a stormdust_mass tracer !"
    702            stop
     708           call abort_physic("initracer","rdstorm issue",1)
    703709         endif
    704710         if (igcm_stormdust_number.eq.0) then
     
    706712           write(*,*) "  cannot use rdstorm option without ",
    707713     &                "a stormdust_number tracer !"
    708            stop
     714           call abort_physic("initracer","rdstorm issue",1)
    709715         endif
    710716       endif
     
    716722           write(*,*) "  cannot use slpwind option without ",
    717723     &                "a topdust_mass tracer !"
    718            stop
     724           call abort_physic("initracer","slpwind issue",1)
    719725         endif
    720726         if (igcm_topdust_number.eq.0) then
     
    722728           write(*,*) "  cannot use slpwind option without ",
    723729     &                "a topdust_number tracer !"
    724            stop
     730           call abort_physic("initracer","slpwind issue",1)
    725731         endif
    726732       endif
     
    732738             write(*,*) "initracer: error !!"
    733739             write(*,*) "  with nltemodel>0, we need the co2 tracer!"
    734              stop
     740             call abort_physic("initracer","missing co2 tracer",1)
    735741           endif
    736742           if (igcm_co.eq.0) then
    737743             write(*,*) "initracer: error !!"
    738744             write(*,*) "  with nltemodel>0, we need the co tracer!"
    739              stop
     745             call abort_physic("initracer","missing co tracer",1)
    740746           endif
    741747           if (igcm_o.eq.0) then
    742748             write(*,*) "initracer: error !!"
    743749             write(*,*) "  with nltemodel>0, we need the o tracer!"
    744              stop
     750             call abort_physic("initracer","missing o tracer",1)
    745751           endif
    746752           if (igcm_n2.eq.0) then
    747753             write(*,*) "initracer: error !!"
    748754             write(*,*) "  with nltemodel>0, we need the n2 tracer!"
    749              stop
     755             call abort_physic("initracer","missing n2 tracer",1)
    750756           endif
    751757         endif
     
    758764           write(*,*) "  cannot use scavenging option without ",
    759765     &                "a ccn_mass or ccnco2_mass tracer !"
    760            stop
     766             call abort_physic("initracer","scavenging issue",1)
    761767         endif
    762768         if (igcm_ccn_number.eq.0 .and. igcm_ccnco2_number.eq.0 ) then
     
    764770           write(*,*) "  cannot use scavenging option without ",
    765771     &                "a ccn_number or ccnco2_number tracer !"
    766            stop
     772             call abort_physic("initracer","scavenging issue",1)
    767773         endif
    768774       endif ! of if (scavenging)
     
    774780           write(*,*) "  cannot use chemistry option without ",
    775781     &                "a co2 tracer !"
    776          stop
     782           call abort_physic("initracer","missing co2 tracer",1)
    777783         endif
    778784         if (igcm_co.eq.0) then
     
    780786           write(*,*) "  cannot use chemistry option without ",
    781787     &                "a co tracer !"
    782          stop
     788           call abort_physic("initracer","missing co tracer",1)
    783789         endif
    784790         if (igcm_o.eq.0) then
     
    786792           write(*,*) "  cannot use chemistry option without ",
    787793     &                "a o tracer !"
    788          stop
     794           call abort_physic("initracer","missing o tracer",1)
    789795         endif
    790796         if (igcm_o1d.eq.0) then
     
    792798           write(*,*) "  cannot use chemistry option without ",
    793799     &                "a o1d tracer !"
    794          stop
     800           call abort_physic("initracer","missing o1d tracer",1)
    795801         endif
    796802         if (igcm_o2.eq.0) then
     
    798804           write(*,*) "  cannot use chemistry option without ",
    799805     &                "an o2 tracer !"
    800          stop
     806           call abort_physic("initracer","missing o2 tracer",1)
    801807         endif
    802808         if (igcm_o3.eq.0) then
     
    804810           write(*,*) "  cannot use chemistry option without ",
    805811     &                "an o3 tracer !"
    806          stop
     812           call abort_physic("initracer","missing o3 tracer",1)
    807813         endif
    808814         if (igcm_h.eq.0) then
     
    810816           write(*,*) "  cannot use chemistry option without ",
    811817     &                "a h tracer !"
    812          stop
     818           call abort_physic("initracer","missing h tracer",1)
    813819         endif
    814820         if (igcm_h2.eq.0) then
     
    816822           write(*,*) "  cannot use chemistry option without ",
    817823     &                "a h2 tracer !"
    818          stop
     824           call abort_physic("initracer","missing h2 tracer",1)
    819825         endif
    820826         if (igcm_oh.eq.0) then
     
    822828           write(*,*) "  cannot use chemistry option without ",
    823829     &                "an oh tracer !"
    824          stop
     830           call abort_physic("initracer","missing oh tracer",1)
    825831         endif
    826832         if (igcm_ho2.eq.0) then
     
    828834           write(*,*) "  cannot use chemistry option without ",
    829835     &                "a ho2 tracer !"
    830          stop
     836           call abort_physic("initracer","missing ho2 tracer",1)
    831837      endif
    832838         if (igcm_h2o2.eq.0) then
     
    834840           write(*,*) "  cannot use chemistry option without ",
    835841     &                "a h2o2 tracer !"
    836          stop
     842           call abort_physic("initracer","missing h2o2 tracer",1)
    837843         endif
    838844         if (igcm_n2.eq.0) then
     
    840846           write(*,*) "  cannot use chemistry option without ",
    841847     &                "a n2 tracer !"
    842          stop
     848           call abort_physic("initracer","missing n2 tracer",1)
    843849         endif
    844850         if (igcm_ar.eq.0) then
     
    846852           write(*,*) "  cannot use chemistry option without ",
    847853     &                "an ar tracer !"
    848          stop
     854           call abort_physic("initracer","missing ar tracer",1)
    849855         endif
    850856       endif ! of if (photochem .or. callthermos)
  • trunk/LMDZ.MARS/libf/phymars/tracer_mod.F90

    r2284 r2302  
    8787      integer,save :: igcm_hco2plus
    8888      integer,save :: igcm_hcoplus
     89      integer,save :: igcm_h2oplus
    8990      integer,save :: igcm_elec
    9091      ! other tracers
Note: See TracChangeset for help on using the changeset viewer.