source: trunk/LMDZ.MARS/libf/phymars/nlte_commons_h.F90

Last change on this file was 3018, checked in by emillour, 16 months ago

Mars PCM:
Further code cleanup with NLTE routines; converted nlte_paramdef.h to module
nlte_paramdef_h.F90 and nlte_commons.h to module nlte_commons_h.F90
(could not turn nlte_aux.F, nlte_setup.F and nlte_calc.F into modules due
to circular dependencies; would require further code reorganization).
EM

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