Last change
on this file since 1150 was
728,
checked in by jleconte, 12 years ago
|
18/07/2012 == JL
- New water cycle scheme:
- largescale now in F90. Robustness increased by i) including evap inside largescale ii) computing the
condensed water amount iteratively
- same improvements in moistadj.
- Water thermodynamical data and saturation curves centralized in module watercommn_h
- The saturation curves used are now Tetens formula as they are analyticaly inversible (Ts(P)-> Ps(T)).
New saturation curve yields very good agreement with the former one.
- Saturation curves are now generalized for arbitrary water amount (not just q<<1)
- The old watersat should be removed soon.
- The effect of water vapor on total (surface) pressure can be taken into account by setting
mass_redistrib=.true. in callphys.def (routine mass_redistribution inspired from co2_condense in martian
model but with a different scheme as many routines evaporate/condense water vapor).
- New cloud and precipitation scheme (JL + BC):
- The default recovery assumption for computing the total cloud fraction has been changed (total random gave too
large cloud fractions). See totalcloudfrac.F90 for details and to change this.
- Totalcloudfraction now set the total cloud fraction to the fraction of the
optically thickest cloud and totalcloudfrac is thus called in aeropacity.
- Only the total cloud fraction is used to compute optical depth in aeropacity (no more effective
optical depth with exponential formula).
- 4 precipitation schemes are now available (see rain.F90 for details). The choice can be made using precip_scheme
in callphys.def. Usage of the more physically based model of Boucher et al 95 (precip_scheme=4) is recommended.
default behavior is set to the former "simple scheme" (precip_scheme=1).
- See rain.f90 to determine the parameter to be defined in callphys.def as a function of the precipitation scheme used.
- Physiq.F90 now written in a matricial (more F90) way.
- Radii (H2O and CO2 cloud particles, aerosols, duts, ...) calculations now centralized in module radii_mod.F90
and work with the new aerosol scheme implemented by Laura K. Some inconsistency may remain in callsedim.
Implementation compiled with ifort and pgf90.
gcm.e runs in Earth and Early Mars case with CO2 and H2O cycle + dust.
|
File size:
1.2 KB
|
Line | |
---|
1 | subroutine watersat(T,p,qsat) |
---|
2 | |
---|
3 | use watercommon_h, only: T_h2O_ice_liq, epsi |
---|
4 | implicit none |
---|
5 | |
---|
6 | !================================================================== |
---|
7 | ! Purpose |
---|
8 | ! ------- |
---|
9 | ! Compute the water mass mixing ratio at saturation (kg/kg) |
---|
10 | ! for a given pressure (Pa) and temperature (K) |
---|
11 | ! A replacement for the old watersat.F in the Martian GCM. |
---|
12 | ! Based on FCTTRE.h in the LMDTERRE model. |
---|
13 | ! |
---|
14 | ! Authors |
---|
15 | ! ------- |
---|
16 | ! Robin Wordsworth (2010) |
---|
17 | ! |
---|
18 | !================================================================== |
---|
19 | |
---|
20 | ! input |
---|
21 | real T, p |
---|
22 | |
---|
23 | ! output |
---|
24 | real qsat |
---|
25 | |
---|
26 | ! checked vs. NIST data 22/06/2010 by RW. |
---|
27 | ! / by p gives partial pressure |
---|
28 | ! x by epsi converts to mass mixing ratio |
---|
29 | |
---|
30 | if (T.lt.T_h2O_ice_liq) then ! solid / vapour |
---|
31 | qsat = 100.0 * 10**(2.07023 - 0.00320991 & |
---|
32 | * T - 2484.896 / T + 3.56654 * alog10(T)) |
---|
33 | else ! liquid / vapour |
---|
34 | qsat = 100.0 * 10**(23.8319 - 2948.964 / T - 5.028 & |
---|
35 | * alog10(T) - 29810.16 * exp( -0.0699382 * T) & |
---|
36 | + 25.21935 * exp(-2999.924/T)) |
---|
37 | endif |
---|
38 | ! qsat=epsi*qsat/p |
---|
39 | if(qsat.gt.p) then |
---|
40 | qsat=1. |
---|
41 | else |
---|
42 | qsat=epsi*qsat/(p-(1.-epsi)*qsat) |
---|
43 | endif |
---|
44 | return |
---|
45 | end subroutine watersat |
---|
Note: See
TracBrowser
for help on using the repository browser.