Ignore:
Timestamp:
May 6, 2020, 4:46:33 PM (5 years ago)
Author:
lrossi
Message:

MARS GCM:
Implementation of HDO in the physics
New tracers hdo_vap and hdo_ice are added. Cf. traceur.def.isotopes in deftank for exemple of traceur.def.
All HDO related computations are activated by flag hdo=.true. in callphys.def. (see callphys.def.hdo in deftank for an example)
Additional option hdofrac (true by default) allows for turning on/off fractionation (for tests).
For now, only functional with simplified cloud scheme (so microphys=.false. and activice=.false. also recommended).
Initialisation of start files can be done with option 'inihdo' in newstart.
LR

File:
1 edited

Legend:

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

    r2260 r2312  
    2424     &                      igcm_ccn_number, igcm_ccn_mass,
    2525     &                      igcm_h2o_vap, igcm_h2o_ice, igcm_co2,
     26     &                      igcm_hdo_vap, igcm_hdo_ice,
    2627     &                      igcm_n2, igcm_ar, igcm_o2, igcm_co,
    2728     &                      igcm_o, igcm_h2
     
    157158
    158159      INTEGER :: itau
     160      real DoverH !D/H ratio
    159161     
    160162      INTEGER :: numvanle
     
    514516      write(*,*) 'composition  : change atm main composition: CO2,N2,Ar,
    515517     $ O2,CO'
     518      write(*,*) 'inihdo       : initialize HDO'
    516519      write(*,*) 'ini_h2osurf  : reinitialize surface water ice '
    517520      write(*,*) 'noglacier    : Remove tropical H2O ice if |lat|<45'
     
    986989          write(*,*) 'inichim_newstart: chemical species initialised
    987990     $ (except water vapour)'
     991
     992c      inihdo : initialize HDO with user D/H value
     993c      --------------------------------------------------------
     994       else if (trim(modif) .eq. 'inihdo') then
     995        ! check that there is indeed a water vapor tracer
     996        if (igcm_h2o_vap.eq.0) then
     997          write(*,*) "No water vapour tracer! Can't use this option"
     998          stop
     999        endif
     1000
     1001         write(*,*)'Input D/H ratio (in SMOW)'
     1002         write(*,*)'If value is <0 then HDO=H2O'
     1003 303     read(*,*, iostat=ierr) DoverH
     1004         if(ierr.ne.0) goto 303
     1005
     1006        DoverH = DoverH * 2 * 155.76e-6
     1007        if (DoverH.lt.0.0) then
     1008           DoverH = 1.
     1009        endif
     1010        !D/H (SMOW) = 155.76e-6 so HDO/H2O is twice that
     1011
     1012          DO l=1,llm
     1013            DO j=1,jjp1
     1014              DO i=1,iip1-1
     1015              q(i,j,l,igcm_hdo_vap)= q(i,j,l,igcm_h2o_vap) * DoverH
     1016              q(i,j,l,igcm_hdo_ice)= q(i,j,l,igcm_h2o_ice) * DoverH
     1017              ENDDO
     1018              ! We want to have the very same value at lon -180 and lon 180
     1019              q(iip1,j,l,igcm_hdo_vap) = q(1,j,l,igcm_hdo_vap)
     1020              q(iip1,j,l,igcm_hdo_ice) = q(1,j,l,igcm_hdo_ice)
     1021            ENDDO
     1022          ENDDO
     1023
     1024           do ig=1,ngridmx
     1025           qsurf(ig,igcm_h2o_ice)=max(0.,qsurf(ig,igcm_h2o_ice))
     1026           qsurf(ig,igcm_hdo_ice)= DoverH * qsurf(ig,igcm_h2o_ice)
     1027           end do
     1028
     1029
    9881030
    9891031c      composition : change main composition: CO2,N2,Ar,O2,CO (FF 03/2014)
Note: See TracChangeset for help on using the changeset viewer.