Ignore:
Timestamp:
Nov 7, 2011, 6:39:24 PM (13 years ago)
Author:
aslmd
Message:

LMDZ.MARS:


A FIRST VERSION WITH SCAVENGING
TRANSPARENT TO CASUAL USER
FOR WATER CYCLE FOLKS, SEE BELOW


[TN and AS solved conflicts due to r330 >> r357]


07/11/11 == JBM

Changed watercloud.F to call two separate routines,

simpleclouds.F or improvedclouds.F, which are a simplified and
full microphysical scheme for cloud formation, respectively.
Removed the tag called "improved" in watercloud.F, and added
another tag called "microphys" which is defined in callphys.F
instead. Changed routines: callkeys, inifis, physiq, watercloud.

Reimplemented the use of typical profiles of dust particle sizes

and CCNs in simpleclouds.F. Corrected the previously used
analytical CCN profile. Moved ccn_factor to simpleclouds.F,
which won't be used in the new microphysical scheme. Changed
routines: aeropacity, physiq, simpleclouds, watercloud.

Computed rdust at the end of callsedim instead of updatereffrad,

except at firstcall. Renamed rfall into rsedcloud and moved it
in simpleclouds. Moved nuice_sed to initracer.F and added it to
tracer.h. Changed routines: callsedim, physiq, tracer.h,
watercloud, initracer, simpleclouds, updatereffrad.

Added two tracers for the CCNs. Added the different tests in

initracer.F to make sure that, for example, microphys is not
used without doubleq, etc. Corrected an inconsistency in
callsedim.F, and changed the way r0 is updated. Changes
routines: callsedim, inifis, initracer, physiq, testphys1d,
tracer.h.

Added the ability to have a spatially variable density in

newsedim (same method as that used for the radius of
sedimentation). Required the addition of one input to newsedim,
which is the size of the density variable "rho". Changed
routines: callsedim, newsedim.

Added an output to aeropacity called "tauscaling", which is a

factor to convert dust_mass and dust_number to true quantities,
based on tauvis. Removed ccn and qdust from aeropacity, which
are obsolete now.

Wrote improvedcloud.F which includes all the microphysical

scheme, and connected it to the sedimentation scheme. Added and
changed routines: callsedim, physiq, growthrate, nuclea,
improvedclouds, initracer, watercloud, microphys.h.

07/11/11 == TN

Added CCN & dust tracers updates in physiq.F

Corrected a bug that can give negative CCN numbers, due to the
use of single precision values (only 6 decimals) whereas up to 10E+10
CCN can be formed or disappears...

Corrected physical bug that causes h2o_vap or h2o_ice

to be negative in improvedclouds.F.

Corrected physical bug that causes CCN & dust tracers

to be negative in improvedclouds.F when all ice sublimates and
releases dust

Added parameter contact mteta in callphys.def

Default value is still 0.95, see inifis.F

Changed tendancy computation for dust_number in improvedclouds.F

that was not the right one. Indeed, the scavenged dust_number tracer
is computed from the dust_mass one, and its tendancy before scavenging
must be taken into account to compute its scavenging's tendancy.

File:
1 edited

Legend:

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

    r324 r358  
    213213      igcm_dust_mass=0
    214214      igcm_dust_number=0
     215      igcm_ccn_mass=0
     216      igcm_ccn_number=0
    215217      igcm_dust_submicron=0
    216218      igcm_h2o_vap=0
     
    271273        enddo
    272274      endif ! of if (doubleq)
     275      if (scavenging) then
     276        do iq=1,nqmx
     277          if (noms(iq).eq."ccn_mass") then
     278            igcm_ccn_mass=iq
     279            count=count+1
     280          endif
     281          if (noms(iq).eq."ccn_number") then
     282            igcm_ccn_number=iq
     283            count=count+1
     284          endif
     285        enddo
     286      endif ! of if (scavenging)
    273287      if (submicron) then
    274288        do iq=1,nqmx
     
    481495      rho_ice=920.    ! Water ice density (kg.m-3)
    482496      nuice_ref=0.1   ! Effective variance nueff of the
    483                       ! water-ice size distributions
     497                      ! water-ice size distribution
     498      nuice_sed=0.45   ! Sedimentation effective variance
     499                      ! of the water-ice size distribution
    484500
    485501      if (doubleq) then
     
    530546        write(*,*) "initracer: doubleq_param alpha_lift:",
    531547     &    alpha_lift(igcm_dust_mass)
    532 
    533548      else
    534549
     
    549564       endif
    550565      end if    ! (doubleq)
     566
     567
     568c     Scavenging of dust particles by H2O clouds:
     569c     ------------------------------------------
     570c     Initialize the two tracers used for the CCNs
     571      if (water.AND.doubleq.AND.scavenging) then
     572        radius(igcm_ccn_mass) = radius(igcm_dust_mass)
     573        alpha_lift(igcm_ccn_mass) = 1e-30
     574        alpha_devil(igcm_ccn_mass) = 1e-30
     575        rho_q(igcm_ccn_mass) = rho_dust
     576
     577        radius(igcm_ccn_number) = radius(igcm_ccn_mass)
     578        alpha_lift(igcm_ccn_number) = alpha_lift(igcm_ccn_mass)
     579        alpha_devil(igcm_ccn_number) = alpha_devil(igcm_ccn_mass)
     580        rho_q(igcm_ccn_number) = rho_q(igcm_ccn_mass)
     581      endif ! of if (water.AND.doubleq.AND.scavenging)
    551582
    552583c     Submicron dust mode:
     
    670701       endif
    671702
     703       if (scavenging) then
     704       ! verify that we indeed have ccn_mass and ccn_number tracers
     705         if (igcm_ccn_mass.eq.0) then
     706           write(*,*) "initracer: error !!"
     707           write(*,*) "  cannot use scavenging option without ",
     708     &                "a ccn_mass tracer !"
     709           stop
     710         endif
     711         if (igcm_ccn_number.eq.0) then
     712           write(*,*) "initracer: error !!"
     713           write(*,*) "  cannot use scavenging option without ",
     714     &                "a ccn_number tracer !"
     715           stop
     716         endif
     717       endif ! of if (scavenging)
     718
    672719       if (photochem .or. callthermos) then
    673720       ! verify that we indeed have the chemistry tracers
Note: See TracChangeset for help on using the changeset viewer.