source: trunk/LMDZ.MARS/libf/phymars/nlte_commons.h @ 2156

Last change on this file since 2156 was 757, checked in by emillour, 12 years ago

Mars GCM:

  • Improvement of the NLTE 15um scheme (for running with nltemodel = 2); now MUCH faster than previously (by a factor 5 or so):
  • Improvements included to the parameterization:
    • Cool-to-space calculation included above P(atm)=1e-10, with a soft merging to the full result (without the CTS approximation) below that level
    • exhaustive cleaning of the code, including FTNCHK and reordering of loops, subroutines and internal calls
    • simplification of the precomputed tables of CO2 bands' atmospheric transmittances
    • the two internal grids (the one used in the CTS region and the one below) have been , in order to reduce the CPU time consumption
    • reading of the spectroscopic histograms is made only once, at the beginning of the GCM, to avoid repetitive readings of ASCII files
    • F90 matrix operations (matmul,...) included.
  • Changes in routines:
    • removed nlte_leedat.F
    • updated nlte_calc.F, nlte_tcool.F, nlte_aux.F
    • updated nlte_commons.h, nlte_paramdef.h
    • added nlte_setup.F
  • Important: The input files (in the NLTEDAT directory) read as input by these routines have changed. the NLTEDAT directory should now on contain only the following files:

deltanu26.dat enelow27.dat hid26-3.dat parametp_Tstar_IAA1204.dat
deltanu27.dat enelow28.dat hid26-4.dat parametp_VC_IAA1204.dat
deltanu28.dat enelow36.dat hid27-1.dat
deltanu36.dat hid26-1.dat hid28-1.dat
enelow26.dat hid26-2.dat hid36-1.dat

FGG+MALV

File size: 5.9 KB
Line 
1c****************************************************************************
2c
3c       Merging of different common blocks used in the new NLTE 15um param
4c
5c       jan 2012    fgg+malv
6c****************************************************************************
7c *** Old datitos.cmn ***
8c
9        common /spectralv11/ elow, deltanu
10        real elow(nisot,nb), deltanu(nisot,nb)
11
12
13        common/nu_levs_bands_v11/ nu11, nu12, nu121, 
14     @          nu21, nu31, nu41
15        real*8 nu11, nu12, nu121
16        real*8 nu21
17        real*8 nu31
18        real*8 nu41
19
20
21        common /aeinstein1v11/ a1_010_000, a1_020_010
22        common /aeinstein2v11/ a2_010_000       
23        common /aeinstein3v11/ a3_010_000       
24        common /aeinstein4v11/ a4_010_000       
25
26        real*8 a1_010_000, a1_020_010
27        real*8 a2_010_000       
28        real*8 a3_010_000       
29        real*8 a4_010_000
30
31
32c *** Old tabulation.cmn ***
33
34        common/input_tab_v11/ lnpnbtab, 
35     @          tstar11tab, tstar21tab, tstar31tab, tstar41tab,
36     @          vc210tab, vc310tab, vc410tab
37
38        real*8 lnpnbtab(nztabul)
39        real*8 vc210tab(nztabul), vc310tab(nztabul), vc410tab(nztabul)
40        real*8 tstar11tab(nztabul), tstar21tab(nztabul), 
41     @         tstar31tab(nztabul), tstar41tab(nztabul)
42
43
44c *** Old nlte_results.cmn ***
45
46        common/input_avilable_from/ input_cza
47        integer input_cza
48
49c temperatura vibracional de entrada:
50        common/temp626/ v626t1
51        common/temp628/ v628t1
52        common/temp636/ v636t1
53        common/temp627/ v627t1
54        real*8 v626t1(nl)
55        real*8 v628t1(nl)
56        real*8 v636t1(nl)
57        real*8 v627t1(nl)
58
59c output de cza.for
60        common /tv15um/ vt11, vt12, vt21, vt31, vt41
61        real*8  vt11(nl), vt12(nl), vt21(nl), vt31(nl), vt41(nl)
62
63        common /hr15um/ hr110,hr210,hr310,hr410,hr121
64        real*8  hr110(nl),hr121(nl), 
65     @          hr210(nl),hr310(nl),hr410(nl)
66
67        common/sf15um/ el11,el12, el21, el31, el41
68        real*8 el11(nl), el12(nl)
69        real*8 el21(nl)
70        real*8 el31(nl)
71        real*8 el41(nl)
72
73        common/sl15um/ sl110,sl121, sl210,sl310,sl410
74        real*8 sl110(nl), sl121(nl)
75        real*8 sl210(nl)
76        real*8 sl310(nl)
77        real*8 sl410(nl)
78
79
80c *** Old matrices.cmn ***
81
82
83c curtis matrix de cza:
84        common/curtis_matrixes_15um/ c110,c121, c210,
85     @          c310,c410,
86     @          vc110,vc121,vc210,vc310,vc410
87        real*8 c110(nl,nl), c121(nl,nl)
88        real*8 c210(nl,nl)
89        real*8 c310(nl,nl)
90        real*8 c410(nl,nl)
91        real*8 vc110(nl), vc121(nl)
92        real*8 vc210(nl), vc310(nl), vc410(nl)
93 
94! for the cool-to-space formulation:
95!
96        common/taustar_15um/ taustar11, taustar21, taustar31, 
97     @         taustar41, taustar12, taustar11_cts
98        real*8 taustar11(nl), taustar21(nl), taustar31(nl)
99        real*8 taustar41(nl), taustar12(nl)
100        real*8 taustar11_cts(nl_cts)
101
102
103c *** Old atmref.cmn ***
104
105
106c NLTE Subgrid
107c
108        common /atm_nl/ zl, t, pl, nt, co2, n2, co, o3p, 
109     @    co2vmr, n2vmr, covmr, o3pvmr, 
110     @    hrkday_factor
111
112        real zl(nl), t(nl), pl(nl), nt(nl), 
113     @    co2(nl), n2(nl), co(nl), o3p(nl), 
114     @    co2vmr(nl), n2vmr(nl), covmr(nl), o3pvmr(nl), 
115     @    hrkday_factor(nl)
116
117
118c Subgrid Transmittances
119c
120        common /atm_ny/ zy, ty, py, nty, co2y
121        real zy(nzy), ty(nzy), py(nzy), nty(nzy), co2y(nzy)
122
123c Grids and indexes
124        common/deltazetas/ deltaz, deltazy, deltaz_cts, deltazy_cts, 
125     @        jlowerboundary, jtopboundary, jtopCTS
126        real    deltaz, deltazy, deltaz_cts, deltazy_cts
127        integer jlowerboundary, jtopboundary, jtopCTS
128
129
130c NLTE-CTS Subgrid
131c
132        common /atm_nl_cts/ zl_cts, t_cts, pl_cts, nt_cts, 
133     @    co2_cts, n2_cts, co_cts, o3p_cts, 
134     @    co2vmr_cts, n2vmr_cts, covmr_cts, o3pvmr_cts, 
135     @    hrkday_factor_cts,mmean_cts,cpnew_cts
136
137        real zl_cts(nl_cts), t_cts(nl_cts), pl_cts(nl_cts), 
138     @    nt_cts(nl_cts), co2_cts(nl_cts), 
139     @    n2_cts(nl_cts), co_cts(nl_cts),
140     @    o3p_cts(nl_cts), co2vmr_cts(nl_cts), n2vmr_cts(nl_cts), 
141     @    covmr_cts(nl_cts), o3pvmr_cts(nl_cts), 
142     @    hrkday_factor_cts(nl_cts),mmean_cts(nl_cts),
143     @    cpnew_cts(nl_cts)
144
145
146c CTS Subgrid Transmittances
147c
148        common /atm_ny_cts/ zy_cts, ty_cts, py_cts, nty_cts, co2y_cts
149        real zy_cts(nzy_cts), ty_cts(nzy_cts), py_cts(nzy_cts), 
150     @          nty_cts(nzy_cts), co2y_cts(nzy_cts)
151
152
153c *** Old rates.cmn ***
154
155        common/rates_vt/ 
156     @      k19ba(4),k19bb(4),k19bc(4), k19bap(4),k19bbp(4),k19bcp(4),
157     @      k19ca(4),k19cb(4),k19cc(4), k19cap(4),k19cbp(4),k19ccp(4),
158     @      k20b(4),k20c(4), k20bp(4),k20cp(4)
159
160        real*8 k19ba,k19bb,k19bc, k19bap,k19bbp,k19bcp
161        real*8 k19ca,k19cb,k19cc, k19cap,k19cbp,k19ccp
162        real*8 k20b,k20c, k20bp,k20cp
163
164        common/rates_vv/ 
165     @          k21b(4),k21c(4), k21bp(4),k21cp(4),
166     @          k33c, k33cp(2:4)
167
168        real*8 k21b,k21c, k21bp,k21cp
169        real*8 k33c, k33cp
170
171        common/rates_last/ k23k21c, k24k21c, k34k21c, 
172     @          k23k21cp, k24k21cp, k34k21cp
173
174        real*8 k23k21c,k24k21c,k34k21c, k23k21cp,k24k21cp,k34k21cp
175
176
177
178c *** Old curtis.cmn ***
179
180        common /ini_file/ ibcode1
181        character ibcode1*1
182
183        common/block1/ alsa,alda,ka,kr
184        real*8 ka(nbox_max),alsa(nbox_max),alda(nbox_max)
185        integer kr
186
187        common/block2/ hisfile
188        character hisfile*75
189
190        common/block3/ pp,ta,w
191        real*8 pp,ta(nbox_max),w
192
193        common/block4/ no,sk1,xls1,xld1,thist,nbox
194        real*8  sk1(nhist,nbox_max)
195        real*8  xls1(nhist,nbox_max)   
196        real*8  xld1(nhist,nbox_max)   
197        real*8  thist(nhist)           
198        real*8  no(nbox_max)           
199        integer nbox           
200
201        common/block5/eqw, aa,  cc, dd, ddbox, ccbox, mr, mr_cts
202        real*8 eqw, aa, cc, dd
203        real*8 ddbox(nbox_max), ccbox(nbox_max)
204        real*8  mr(nzy), mr_cts(nzy_cts)
205
206        common/blockstore/no_stored, sk1_stored, xls1_stored, 
207     &          xld1_stored, thist_stored, nbox_stored, 
208     &          mm_stored
209         real*8 sk1_stored(nb,nhist,nbox_max)
210         real*8 xls1_stored(nb,nhist,nbox_max) 
211         real*8 xld1_stored(nb,nhist,nbox_max) 
212         real*8 thist_stored(nb,nhist)         
213         real*8 no_stored(nb,nbox_max)         
214         integer nbox_stored(nb), mm_stored(nb) 
215
216c*****************************************************
217
218
219c*************************************************************
220
221
222
223
224c****************************************************************************
225
226
227
Note: See TracBrowser for help on using the repository browser.