source: trunk/LMDZ.MARS/libf/phymars/calcstormfract_mod.F90 @ 3026

Last change on this file since 3026 was 1974, checked in by mvals, 6 years ago

Mars GCM:
Integration of the detached dust layer parametrizations (rocket dust storm, slope wind lifting, CW, and dust injection scheme, DB).
Still experimental, default behaviour (rdstorm=.false., dustinjection=0) identical to previous revision.
NB: Updated newstart requires an updated "surface.nc" containing the "hmons" field.
EM+MV

File size: 2.7 KB
Line 
1      MODULE calcstormfract_mod
2
3      IMPLICIT NONE
4
5      CONTAINS
6!=======================================================================
7! ROCKET DUST STORM - Defining dust storm fraction of the mesh
8!=======================================================================
9! before calling radiative transfer
10! SUBGRID PARAMETRIZATION
11! -----------------------------------------------------------------------
12! Author : T. Bertrand 2014-05
13! Institution : Laboratoire de Meteorologie Dynamique (LMD) Paris, France
14! -----------------------------------------------------------------------
15! defining the fraction of the mesh containing the rocket dust storm.
16! file using the fraction: aeropacity.F, before calling radiative transfer
17! the radiative transfer is performed in the mesh without the storm and in the mesh with the storm
18! the fraction is used to calculate the true opacity of dust within the storm
19
20      SUBROUTINE calcstormfract(ngrid,nlayer,nq,pq,totstormfract)
21                                 
22      use tracer_mod, only: igcm_stormdust_mass
23
24      implicit none
25
26!--------------------------------------------------------
27! Input Variables
28!--------------------------------------------------------
29
30      INTEGER, INTENT(IN) :: ngrid ! number of horizontal grid points
31      INTEGER, INTENT(IN) :: nlayer ! number of vertical grid points
32      INTEGER, INTENT(IN) :: nq ! number of tracer species
33      REAL, INTENT(IN) ::  pq(ngrid,nlayer,nq) ! advected field nq
34
35!--------------------------------------------------------
36! Output Variables
37!--------------------------------------------------------
38
39      REAL, INTENT(OUT) :: totstormfract(ngrid) ! fraction of the mesh containing the dust storm
40
41!--------------------------------------------------------
42! Local variables
43!--------------------------------------------------------
44
45      REAL, PARAMETER :: mmr_ref=5.e-4 ! mass reference mixing ratio (corresponding
46                                       ! to the tau=10 reference OMEGA local dust storm)
47      REAL, PARAMETER :: fracmax=0.6    ! maximal fraction of the storm
48      REAL, PARAMETER :: fracmin=1.e-2 ! minimal fraction of the storm
49      INTEGER ig     
50 
51! **********************************************************************
52! Definition of stormfraction
53! **********************************************************************
54
55      DO ig=1, ngrid
56       totstormfract(ig)=abs(maxval(pq(ig,2:nlayer,  & !why from 2nd layer?
57     &                     igcm_stormdust_mass)))/mmr_ref
58       totstormfract(ig)=max(totstormfract(ig),fracmin) 
59       totstormfract(ig)=min(totstormfract(ig),fracmax)
60      ENDDO
61
62      END SUBROUTINE calcstormfract
63
64      END MODULE calcstormfract_mod
Note: See TracBrowser for help on using the repository browser.