source: trunk/LMDZ.MARS/libf/phymars/nlte_curtis.h @ 496

Last change on this file since 496 was 414, checked in by aslmd, 14 years ago

LMDZ.MARS : NEW NLTE MODEL FROM GRANADA AMIGOS

23/11/11 == FGG + MALV

New parameterization of the NLTE 15 micron cooling. The old parameterization is kept as an option, including or not variable atomic oxygen concentration. A new flag is introduced in callphys.def, nltemodel, to select which parameterization wants to be used (new one, old one with variable [O], or old one with fixed [O], see below). Includes many new subroutines and commons in phymars. Some existing routines are also modified:

-physiq.F. Call to the new subroutine NLTE_leedat in first call. Call to nltecool modified to allow for variable atomic oxygen. Depending on the value of nltemodel, the new subroutine NLTEdlvr09_TCOOL is called instead of nltecool.

-inifis.F. Reading of nltemodel is added.

-callkeys.h Declaration of nltemodel is added.

The following lines should be added to callphys.def (ideally after setting callnlte):

# NLTE 15um scheme to use.
# 0-> Old scheme, static oxygen
# 1-> Old scheme, dynamic oxygen
# 2-> New scheme
nltemodel = 2

A new directory, NLTEDAT, has to be included in datagcm.

Improvements into NLTE NIR heating parameterization to take into account variability with O/CO2 ratio and SZA. A new subroutine, NIR_leedat.F, and a new common, NIRdata.h, are included. A new flag, nircorr, is added in callphys.def, to include or not these corrections. The following files are modified:

-nirco2abs.F: nq and pq are added in the arguments. The corrections factors are interpolated to the GCM grid and included in the clculation. A new subroutine, interpnir, is added at the end of the file.

-physiq.F: Call to NIR_leedat added at first call. Modified call to nirco2abs

-inifis: Reading new flag nircorr.

-callkeys.h: Declaration of nircorr.

The following lines have to be added to callphys.def (ideally after callnirco2):

# NIR NLTE correction for variable SZA and O/CO2?
# matters only if callnirco2=T
# 0-> no correction
# 1-> include correction
nircorr=1

A new data file, NIRcorrection_feb2011.dat, has to be included in datagcm.

Small changes to the molecular diffusion scheme to fix the number of species considered, to avoid problems when compiling with more than 15 tracers (for example, when CH4 is included). Modified subroutines: aeronomars/moldiff.F and aeronomars/moldiffcoeff.F

File size: 4.1 KB
Line 
1c****************************************************************************
2c
3c       curtis.cmn
4c
5c       Common blocks for Curtis Matrix calculation
6c       
7c       JAN 98  MALV            First version
8c****************************************************************************
9
10
11        common/block1/s,alsa,alna,alda,ka,kr
12        real*8 ka(nbox_max),alsa(nbox_max),alna(nbox_max),alda(nbox_max),s
13        integer kr
14
15        common/block2/hisfile, hfile1
16        character hisfile*75, hfile1*3
17
18        common/block3/sl_ua,ua,pt,pp,ta,w, icls
19        real*8 sl_ua,ua(nbox_max),pt,pp,ta(nbox_max),w
20        integer icls
21
22        common/block4/no,sk1,xls1,xln1,xld1,thist,dist, nbox
23        real*8  sk1(nhist,nbox_max)     ! line intensity
24        real*8  xls1(nhist,nbox_max)    ! Lorentz half width (self-col.)
25        real*8  xln1(nhist,nbox_max)    ! Lorentz half width
26        real*8  xld1(nhist,nbox_max)    ! Doppler half width
27        real*8  thist(nhist)            ! temperatures in the histogram
28        real*8  no(nbox_max)            ! number of lines in box
29        real*8  dist(nbox_max)          ! mean distance between lines in box
30        integer nbox            ! actual number of boxes
31
32        common/block5/eqw, aa, bb, cc, dd, ddbox, ccbox
33        real*8 eqw, aa, bb, cc, dd
34        real*8 ddbox(nbox_max), ccbox(nbox_max)
35
36        common/block7/ mr, p
37        real*8  mr(nzy), p(nzy)
38
39        common/block8/ tmin,tmax, mm
40        real*8 tmin,tmax
41        integer mm
42
43        common/block9/ w_strongLor_prev
44        real*8 w_strongLor_prev(nbox_max)
45
46        common/block10/no_c1,no_c2,no_c3,no_c4,no_c5,no_c6,no_c7
47        real*8  no_c1(nbox_max)
48        real*8  no_c2(nbox_max)
49        real*8  no_c3(nbox_max)
50        real*8  no_c4(nbox_max)
51        real*8  no_c5(nbox_max)
52        real*8  no_c6(nbox_max)
53        real*8  no_c7(nbox_max)
54
55        common/block11/nbox_c1,nbox_c2,nbox_c3,nbox_c4,
56     $     nbox_c5,nbox_c6,nbox_c7
57        integer nbox_c1
58        integer nbox_c2
59        integer nbox_c3
60        integer nbox_c4
61        integer nbox_c5
62        integer nbox_c6
63        integer nbox_c7
64
65        common/block12/thist_c1,thist_c2,thist_c3,thist_c4,thist_c5,
66     $    thist_c6,thist_c7
67        real*8  thist_c1(nhist)
68        real*8  thist_c2(nhist)
69        real*8  thist_c3(nhist)
70        real*8  thist_c4(nhist)
71        real*8  thist_c5(nhist)
72        real*8  thist_c6(nhist)
73        real*8  thist_c7(nhist)
74
75        common/block13/dist_c1,dist_c2,dist_c3,dist_c4,dist_c5,
76     $    dist_c6,dist_c7
77        real*8  dist_c1(nbox_max)
78        real*8  dist_c2(nbox_max)
79        real*8  dist_c3(nbox_max)
80        real*8  dist_c4(nbox_max)
81        real*8  dist_c5(nbox_max)
82        real*8  dist_c6(nbox_max)
83        real*8  dist_c7(nbox_max)
84
85        common/block14/sk1_c1,sk1_c2,sk1_c3,sk1_c4,sk1_c5,sk1_c6,sk1_c7
86        real*8  sk1_c1(nhist,nbox_max)
87        real*8  sk1_c2(nhist,nbox_max)
88        real*8  sk1_c3(nhist,nbox_max)
89        real*8  sk1_c4(nhist,nbox_max)
90        real*8  sk1_c5(nhist,nbox_max)
91        real*8  sk1_c6(nhist,nbox_max)
92        real*8  sk1_c7(nhist,nbox_max)
93
94        common/block15/xls1_c1,xls1_c2,xls1_c3,xls1_c4,xls1_c5,xls1_c6,
95     $     xls1_c7
96        real*8  xls1_c1(nhist,nbox_max)
97        real*8  xls1_c2(nhist,nbox_max)
98        real*8  xls1_c3(nhist,nbox_max)
99        real*8  xls1_c4(nhist,nbox_max)
100        real*8  xls1_c5(nhist,nbox_max)
101        real*8  xls1_c6(nhist,nbox_max)
102        real*8  xls1_c7(nhist,nbox_max)
103
104        common/block16/xln1_c1,xln1_c2,xln1_c3,xln1_c4,xln1_c5,xln1_c6,
105     $     xln1_c7
106        real*8  xln1_c1(nhist,nbox_max)
107        real*8  xln1_c2(nhist,nbox_max)
108        real*8  xln1_c3(nhist,nbox_max)
109        real*8  xln1_c4(nhist,nbox_max)
110        real*8  xln1_c5(nhist,nbox_max)
111        real*8  xln1_c6(nhist,nbox_max)
112        real*8  xln1_c7(nhist,nbox_max)
113
114        common/block17/xld1_c1,xld1_c2,xld1_c3,xld1_c4,xld1_c5,xld1_c6,
115     $     xld1_c7
116        real*8  xld1_c1(nhist,nbox_max)
117        real*8  xld1_c2(nhist,nbox_max)
118        real*8  xld1_c3(nhist,nbox_max)
119        real*8  xld1_c4(nhist,nbox_max)
120        real*8  xld1_c5(nhist,nbox_max)
121        real*8  xld1_c6(nhist,nbox_max)
122        real*8  xld1_c7(nhist,nbox_max)
123
124        common/block18/mm_c1,mm_c2,mm_c3,mm_c4,mm_c5,mm_c6,mm_c7
125        integer mm_c1
126        integer mm_c2
127        integer mm_c3
128        integer mm_c4
129        integer mm_c5
130        integer mm_c6
131        integer mm_c7
132
133        common/block19/tmin_c1,tmin_c2,tmin_c3,tmin_c4,tmin_c5,tmin_c6,
134     $     tmin_c7
135        real*8 tmin_c1
136        real*8 tmin_c2
137        real*8 tmin_c3
138        real*8 tmin_c4
139        real*8 tmin_c5
140        real*8 tmin_c6
141        real*8 tmin_c7
142
143        common/block20/tmax_c1,tmax_c2,tmax_c3,tmax_c4,tmax_c5,tmax_c6,
144     $     tmax_c7
145        real*8 tmax_c1
146        real*8 tmax_c2
147        real*8 tmax_c3
148        real*8 tmax_c4
149        real*8 tmax_c5
150        real*8 tmax_c6
151        real*8 tmax_c7
152
153        common /lor_overlap/ asat_box, i_supersat
154        real*8          asat_box
155        integer         i_supersat
Note: See TracBrowser for help on using the repository browser.