Ignore:
Timestamp:
Nov 22, 2016, 12:08:15 PM (8 years ago)
Author:
jaudouard
Message:

Bug fix concerning riceco2 declaration and some cleaning concerning the CO2 clouds scheme

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

Legend:

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

    r1617 r1629  
    8383                                   ! a la chaleur latente
    8484
    85       REAL riceco2(ngrid,nlay)    ! Ice mass mean radius (m)
     85      DOUBLE PRECISION riceco2(ngrid,nlay)    ! Ice mass mean radius (m)
    8686                               ! (r_c in montmessin_2004)
    8787      REAL nuice(ngrid,nlay)   ! Estimated effective variance
     
    755755            enddo
    756756         enddo
    757 c       call WRITEDIAGFI(ngrid,"satuco2","vap in satu","kg/kg",1,
    758 c     &        satuco2)
    759        call WRITEdiagfi(ngrid,"riceco2","ice radius","m"
    760 c     &        ,1,riceco2)
     757       call WRITEDIAGFI(ngrid,"satuco2","vap in satu","kg/kg",1,
     758     &        satuco2)
     759       call WRITEdiagfi(ngrid,"riceco2","ice radius","m"
     760     &        ,1,riceco2)
    761761! or output in diagfi.nc (for testphys1d)
    762762c         call WRITEDIAGFI(ngrid,'ps','Surface pressure','Pa',0,ps)
  • trunk/LMDZ.MARS/libf/phymars/physiq_mod.F

    r1627 r1629  
    18511851
    18521852           if (co2clouds) then
    1853               mtotco2(:)=0
    1854               icetotco2(:)=0
    1855               raveco2(:)=0
    1856               do ig=1,ngrid
    1857                  do l=1,nlayer
    1858                     mtotco2(ig) = mtotco2(ig) +
    1859      &                   zq(ig,l,igcm_co2) *
    1860      &                   (zplev(ig,l) - zplev(ig,l+1)) / g
    1861                     icetotco2(ig) = icetotco2(ig) +
    1862      &                   zq(ig,l,igcm_co2_ice) *
    1863      &                    (zplev(ig,l) - zplev(ig,l+1)) / g
    1864 
    1865 c      Computing abs optical depth at 825 cm-1 in each   ! for now commented for CO2 - listo  layer to simulate NEW TES retrieval
    1866                     Qabsice = min( max(0.4e6*riceco2(ig,l)*
    1867      &                   (1.+nuiceco2_ref)-0.05 ,0.),1.2)
    1868 c                    opTESco2(ig,l)= 0.75 * Qabsice *
     1853c     mtotco2(:)=0
     1854c     icetotco2(:)=0
     1855c     raveco2(:)=0
     1856c     do ig=1,ngrid
     1857c     do l=1,nlayer
     1858c     mtotco2(ig) = mtotco2(ig) +
     1859c     &                   zq(ig,l,igcm_co2) *
     1860c     &                   (zplev(ig,l) - zplev(ig,l+1)) / g
     1861c     icetotco2(ig) = icetotco2(ig) +
     1862c     &                   zq(ig,l,igcm_co2_ice) *
     1863c     &                    (zplev(ig,l) - zplev(ig,l+1)) / g
     1864             
     1865c     Computing abs optical depth at 825 cm-1 in each   ! for now commented for CO2 - listo  layer to simulate NEW TES retrieval
     1866c     Qabsice = min( max(0.4e6*riceco2(ig,l)*
     1867c     &                   (1.+nuiceco2_ref)-0.05 ,0.),1.2)
     1868c     opTESco2(ig,l)= 0.75 * Qabsice *
    18691869c     &                   zq(ig,l,igcm_co2_ice) *
    18701870c     &                   (zplev(ig,l) - zplev(ig,l+1)) / g
    18711871c     &                   / (rho_ice_co2 * riceco2(ig,l)
    18721872c     &                   * (1.+nuiceco2_ref))
    1873 c                    tauTESco2(ig)=tauTESco2(ig)+ opTESco2(ig,l)
    1874                  enddo
    1875               enddo
     1873c     tauTESco2(ig)=tauTESco2(ig)+ opTESco2(ig,l)
     1874c     enddo
     1875c     enddo
    18761876              call co2sat(ngrid*nlayer,zt,zplay,zqsatco2)
    18771877              do ig=1,ngrid
     
    18811881                 enddo
    18821882              enddo
    1883 
     1883             
    18841884              if (scavenging) then
    18851885                 Nccntot(:)= 0
     
    18901890                    do l=1,nlayer
    18911891                       icetotco2(ig) = icetotco2(ig) +
    1892      &                   zq(ig,l,igcm_co2_ice) *
    1893      &                    (zplev(ig,l) - zplev(ig,l+1)) / g
     1892     &                      zq(ig,l,igcm_co2_ice) *
     1893     &                      (zplev(ig,l) - zplev(ig,l+1)) / g
    18941894                       Nccntot(ig) = Nccntot(ig) +
    18951895     &                      zq(ig,l,igcm_ccnco2_number)*tauscaling(ig)
     
    18991899     &                      *(zplev(ig,l) - zplev(ig,l+1)) / g
    19001900cccc  Column integrated effective ice radius
    1901 cccc is weighted by total ice surface area (BETTER than total ice mass)
     1901cccc  is weighted by total ice surface area (BETTER than total ice mass)
    19021902                       raveco2(ig) = raveco2(ig) +
    19031903     &                      tauscaling(ig) *
     
    19241924     &                   max(icetotco2(ig),1.e-30),1.e-30) ! mass weight
    19251925                 enddo
    1926               endif   ! of if (scavenging)
    1927            endif    ! of if (co2clouds)
    1928          endif ! of if (tracer)
     1926              endif             ! of if (scavenging)
     1927           endif                ! of if (co2clouds)
     1928        endif                  ! of if (tracer)
    19291929
    19301930#ifndef MESOSCALE
     
    26822682         
    26832683         
    2684          call WRITEDIAGFI(ngrid,"satuco2","vap in satu","kg/kg",1,
    2685      &        satuco2(1,:))
    2686          call WRITEdiagfi(ngrid,"riceco2","ice radius","m"
    2687      &        ,1,riceco2(1,:))
     2684c         call WRITEDIAGFI(ngrid,"satuco2","vap in satu","kg/kg",1,
     2685c     &        satuco2)
     2686c         call WRITEdiagfi(ngrid,"riceco2","ice radius","m"
     2687c     &        ,1,riceco2)
    26882688! or output in diagfi.nc (for testphys1d)
    26892689         call WRITEDIAGFI(ngrid,'ps','Surface pressure','Pa',0,ps)
    26902690         call WRITEDIAGFI(ngrid,'temp','Temperature ',
    2691      &                       'K JA',1,zt(1,:))
     2691     &                       'K JA',1,zt)
    26922692c         call WRITEDIAGFI(ngrid,'temp2','Temperature ',
    26932693c     &        'K JA2',1,pt)
  • trunk/LMDZ.MARS/libf/phymars/updaterad.F90

    r1619 r1629  
    2323real, parameter :: ricemax  = 500.e-6
    2424
    25 real, parameter :: r3iceco2min = 1.e-30
    26 real, parameter :: riceco2min  = 1.e-10
    27 
    28 real, parameter :: r3iceco2max = 125.e-12
    29 real, parameter :: riceco2max  = 500.e-6
     25double precision, parameter :: r3iceco2min = 1.e-30
     26double precision, parameter :: riceco2min  = 1.e-10
     27
     28double precision, parameter :: r3iceco2max = 125.e-12
     29double precision, parameter :: riceco2max  = 500.e-6
    3030
    3131
     
    112112real, intent(in)  :: qice,qccn,nccn
    113113real, intent(in)  :: coeff         ! this coeff is tauscaling if microphy = T (possibly ccn_factor^-1 otherwise)
    114 real, intent(out) :: rice,rhocloudco2 ! rhocloud is needed for sedimentation and is also a good diagnostic variable
     114real, intent(out) :: rhocloudco2 ! rhocloud is needed for sedimentation and is also a good diagnostic variable
     115double precision, intent(out) :: rice
    115116real nccn_true,qccn_true ! nombre et masse de CCN
    116117   
Note: See TracChangeset for help on using the changeset viewer.