Changeset 2258


Ignore:
Timestamp:
Mar 12, 2020, 4:16:39 PM (5 years ago)
Author:
emillour
Message:

Mars GCM:
Update newstart option "composition" with Trainer et al 2019. (and ACS)
values.
FL+EM

Location:
trunk/LMDZ.MARS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/README

    r2257 r2258  
    28832883- look for NaN using logical test a/=a instead of isnan() which is not standard
    28842884- use erf() function as it handles single/double precision (derf is obsolete)
     2885
     2886== 12/03/2020 == FL+EM
     2887Update newstart option "composition" with Trainer et al 2019. (and ACS)
     2888values.
    28852889 
  • trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/newstart.F

    r2217 r2258  
    2424     &                      igcm_ccn_number, igcm_ccn_mass,
    2525     &                      igcm_h2o_vap, igcm_h2o_ice, igcm_co2,
    26      &                      igcm_n2, igcm_ar, igcm_o2, igcm_co
     26     &                      igcm_n2, igcm_ar, igcm_o2, igcm_co,
     27     &                      igcm_o, igcm_h2
    2728      use surfdat_h, only: phisfi, z0, zmea, zstd, zsig, zgam, zthe,
    2829     &                     albedodat, z0_default, qsurf, tsurf,
     
    176177      real :: Mair_old,Mair_new,vmr_old,vmr_new
    177178      real,allocatable :: coefvmr(:)  ! Correction coefficient when changing composition
     179      real :: maxq
    178180      integer :: iloc(1), iqmax
    179181! sub-grid cloud fraction
     
    10671069
    10681070              if (iq.eq.igcm_n2) then
    1069                 write(*,*) "New vmr(n2)? (MSL: 2.03e-02 at Ls~184)"
     1071                write(*,*) "New vmr(n2)? (MSL: 2.8e-02 at Ls~180,",
     1072     &           " Trainer et al. 2019)"
    10701073              endif
    10711074              if (iq.eq.igcm_ar) then
    1072                 write(*,*) "New vmr(ar)? (MSL: 2.07e-02 at Ls~184)"
     1075                write(*,*) "New vmr(ar)? (MSL: 2.1e-02 at Ls~180)"
    10731076              endif
    10741077              if (iq.eq.igcm_o2) then
    1075                 write(*,*) "New vmr(o2)? (MSL: 1.73e-03 at Ls~184)"
     1078                write(*,*) "New vmr(o2)? (MSL: 1.7e-03 at Ls~180)"
    10761079              endif
    10771080              if (iq.eq.igcm_co) then
    1078                 write(*,*) "New vmr(co)? (MSL: 7.49e-04 at Ls~184)"
     1081                write(*,*) "New vmr(co)? (ACS: 1e-03 at Ls~180)"
    10791082              endif
    10801083 302          read(*,*,iostat=ierr) vmr_new
     
    10931096            vmr_old=q(iref,jref,1,igcm_co2)*Mair_old/mmol(igcm_co2) 
    10941097            write(*,*) "Previous vmr(co2)=", vmr_old
    1095             write(*,*) "New vmr(co2) ? (MSL: 0.956521 at Ls~184)"
     1098            write(*,*) "New vmr(co2) ? (MSL: 0.947 at Ls~180)",
     1099     &                  " Trainer et al. 2019)"
    10961100 666          read(*,*,iostat=ierr) vmr_new
    10971101              if(ierr.ne.0) goto 666
     
    11321136                if ((iq.eq.igcm_co2).or.(iq.eq.igcm_n2)
    11331137     &          .or.(iq.eq.igcm_ar)
    1134      &          .or. (iq.eq.igcm_o2).or.(iq.eq.igcm_co)) then
     1138     &          .or. (iq.eq.igcm_o2).or.(iq.eq.igcm_co)
     1139     &          .or. (iq.eq.igcm_o) .or. (iq.eq. igcm_h2) ) then
    11351140                   Smmr_old = Smmr_old + q(i,j,l,iq) ! sum of old mmr
    11361141                   q(i,j,l,iq)=q(i,j,l,iq)*coefvmr(iq)*Mair_old/Mair_new
     
    11381143                end if
    11391144              enddo
    1140               iloc = maxloc(q(i,j,l,:))
    1141               iqmax = iloc(1)
     1145              !iloc = maxloc(q(i,j,l,:))
     1146              iqmax=0 ; maxq=0
     1147              do iq=1,nqtot
     1148                if ((iq.eq.igcm_co2).or.(iq.eq.igcm_n2)
     1149     &          .or.(iq.eq.igcm_ar)
     1150     &          .or. (iq.eq.igcm_o2).or.(iq.eq.igcm_co)
     1151     &          .or. (iq.eq.igcm_o) .or. (iq.eq. igcm_h2) ) then
     1152                  if (q(i,j,l,iq).gt.maxq) then
     1153                    maxq=q(i,j,l,iq)
     1154                    iqmax=iq
     1155                  endif
     1156                endif
     1157              enddo
     1158              !iqmax = iloc(1)
    11421159              q(i,j,l,iqmax) = q(i,j,l,iqmax) + Smmr_old - Smmr_new
    11431160            enddo
     
    11501167          write(*,*) 'At reference site vmr(CO2)=',
    11511168     &        q(iref,jref,1,igcm_co2)*Mair_new/mmol(igcm_co2)
    1152           write(*,*) "Compared to MSL observation: vmr(CO2)= 0.957 "//
    1153      &   "at Ls=184"
     1169          write(*,*) "Compared to MSL observation: vmr(CO2)= 0.947 "//
     1170     &   "at Ls=180"
     1171
     1172          Sn = q(iref,jref,1,igcm_co2)*Mair_new/mmol(igcm_co2)
     1173     &       + q(iref,jref,1,igcm_n2)*Mair_new/mmol(igcm_n2)
     1174     &       + q(iref,jref,1,igcm_ar)*Mair_new/mmol(igcm_ar)
     1175     &       + q(iref,jref,1,igcm_o2)*Mair_new/mmol(igcm_o2)
     1176     &       + q(iref,jref,1,igcm_co)*Mair_new/mmol(igcm_co)
     1177
     1178          write(*,*) 'Sum of volume mixing ratios = ', Sn
    11541179
    11551180c      wetstart : wet atmosphere with a north to south gradient
Note: See TracChangeset for help on using the changeset viewer.