source: trunk/LMDZ.MARS/libf/aeronomars/param_read.F @ 1242

Last change on this file since 1242 was 705, checked in by emillour, 13 years ago

Mars GCM:

  • Added possibility to run with a varying EUV cycle following real one. The flag solvarmod=1 triggers this behaviour, with companion flag solvaryear=## , where ## is the Mars Year (from 23 to 30). Setting solvarmod=0 reverts to 'old' behaviour, where there is a constant EUV forcing throughout the run, set by the "solarcondate" flag.
  • Needs corresponding input data files ("param_v6" subdirectory of "EUV" subdirectory in "datadir").
  • Added files jthermcalc_e107.F and param_read_e107.F in "aeronomars", modified files euvheat.F90, hrtherm.F, chemthermos.F90, param_v4.h and param_read.F in "aeronomars" and files inifis.F, physiq.F and callkeys.h in "phymars".

FGG

File size: 12.4 KB
Line 
1      subroutine param_read
2
3      implicit none
4
5
6c     common variables and constants
7      include "dimensions.h"
8      include "dimphys.h"
9      include 'param.h'
10      include 'param_v4.h'
11      include 'datafile.h'
12 
13 
14c     local variables
15
16      integer    i,j,k,inter                          !indexes
17      integer ierr
18      real       nada
19 
20     
21c*************************+PROGRAM STARTS**************************
22
23
24c     data for the UV heating tabulation
25
26      data (crscabsi2(1,j),j=1,16) /5.61031E-19,1.59677E-18,4.7072E-18,
27     $     1.48254e-17,2.07445e-17,2.573e-17,2.901e-17,3.083e-17,
28     $     3.217e-17,3.539e-17,3.658e-17,3.63e-17,3.41239e-17,
29     $     2.71019e-17,4.93677e-17,1.64e-17/
30
31      data (crscabsi2(2,j),j=1,16) /0.27250E-18,0.11650E-17,0.39250E-17,
32     $     0.10630E-16,0.15590E-16,0.17180E-16,0.19270E-16,0.22860E-16,
33     $     0.24270E-16,0.24440E-16,0.25020E-16,0.26600E-16,0.25400E-16,
34     $     0.35800E-16,0.25590E-16,0.16740E-16/
35
36      data (crscabsi2(3,j),j=1,16) /0.2776E-18,0.9792E-18,0.3313E-17,
37     $     0.6621E-17,0.8481E-17,0.9146E-17,0.9414E-17,0.1039E-16,
38     $     0.1012E-16,0.1033E-16,0.1033E-16,0.1033E-16,0.8268E-17,
39     $     0.6563E-17,0.3506E-17,0.3470E-17/
40
41      data (crscabsi2(5,j),j=1,16) /.5E-20,.1077607E-19,.5670491E-19,
42     $     .3322716E-18,.1054509E-17,.1700005E-17,.3171188E-17,
43     $     .4734241E-17,.5108741E-17,.6022236E-17,.6741537E-17,
44     $     .7277079E-17,.9070787E-17,.9708916E-17,.4026281E-17,0.0/
45
46      data (crscabsi2(8,j),j=1,16) /0.0, 7.44175e-19, 2.23167e-18,
47     $    8.46200e-18,1.18275e-17,1.54900e-17,2.32475e-17,2.41373e-17,
48     $     2.55482e-17,2.38431e-17,2.28600e-17,2.35067e-17,2.56000e-17,
49     $     2.64636e-17,2.86260e-17,3.26561e-17/
50
51      data(crscabsi2(9,j),j=1,16) /3.48182e-20,3.37038e-19,1.03077e-18,
52     $     4.01364e-18,6.45e-18,7.8e-18,1.0e-17,1.13500e-17,1.15500e-17,
53     $     1.18000e-17,1.17500e-17,1.16000e-17,1.28667e-17,1.18500e-17,
54     $     1.11000e-17,9.50000e-18/
55
56      data(crscabsi2(10,j),j=1,16) /0.0,9.39833e-19,2.87714e-18,
57     $     9.66900e-18,1.37063e-17,1.61820e-17,2.30450e-17,2.63373e-17,
58     $     2.63773e-17,2.67677e-17,2.64100e-17,2.53000e-17,2.18100e-17,
59     $     2.04941e-17,2.28160e-17,2.93550e-17/
60
61      data(crscabsi2(11,j),j=1,16) /0.0,9.58555e-19,2.52767e-18,
62     $     8.29700e-18,1.21850e-17,1.40500e-17,1.97025e-17,2.12018e-17,
63     $     2.14673e-17,2.20331e-17,2.21500e-17,2.21600e-17,2.33200e-17,
64     $     2.67800e-17,2.56400e-17,3.58561e-17/
65
66      data(crscabsi2(12,j),j=1,16) /0.0,1.0e-20,2.5e-20,1.30400e-19,
67     $     2.93800e-19,4.36000e-19,8.49400e-19,1.29400e-18,1.40500e-18,
68     $     1.67600e-18,1.93400e-18,2.12200e-18,2.75800e-18,3.48400e-18,
69     $     4.17200e-18,5.26000e-18/
70
71      data(crscabsi2(13,j),j=1,16) /0.0,1.60e-18,4.99111e-18,1.48496e-17
72     $     ,2.17395e-17,2.55857e-17,2.87754e-17,3.65571e-17,3.85691e-17,
73     $     4.16286e-17,4.15117e-17,4.05901e-17,3.64000e-17,2.99670e-17,
74     $     2.46796e-17,2.51789e-17/
75
76      data freccen /3.4,7.5,14.5,23.0,30.3,34.1,49.6,50.5,52.5,56.0,
77     $59.0,61.5,68.7,73.1,78.4,83.1,92.4,97.5,99.3,100.1,100.7,102.1,
78     $104.5,116.8,121.3,127.0,130.6,153.7,162.8,171.4
79     $,195.6,206.3,222.0,236.0,289.0,600./
80
81      data co2crsc195/2.05864e-17,5.90557e-20,3.1027e-19,6.70653e-19,
82     $4.55132e-19,8.87122e-20,1.32138e-20,7.22244e-23,2.88002e-26/
83
84      data co2crsc295/2.05897e-17,6.71104e-20,3.45509e-19,7.45711e-19,
85     $4.82752e-19,1.11594e-19,1.98308e-20,1.3853e-22,2.1414e-25/
86
87c     Reads tabulated functions
88
89      !Tabulated column amount
90      open(210, status = 'old',
91c    $file=trim(datafile)//'/EUVDAT/coln.dat',iostat=ierr)
92     $file=trim(datafile)//'/EUVDAT/param_v5/coln.dat',iostat=ierr)
93
94      IF (ierr.NE.0) THEN
95       write(*,*)'cant find directory EUVDAT containing param_v5 subdir'
96       write(*,*)'(in aeronomars/param_read.F)'
97       write(*,*)'It should be in :', trim(datafile),'/'
98       write(*,*)'1) You can change this directory address in '
99       write(*,*)'   callphys.def with datadir=/path/to/dir'
100       write(*,*)'2) If necessary, EUVDAT (and other datafiles)'
101       write(*,*)'   can be obtained online on:'
102       write(*,*)'   http://www.lmd.jussieu.fr/~forget/datagcm/datafile'
103       STOP
104      ENDIF
105 
106      !Tabulated photoabsorption coefficients
107      open(220,file=trim(datafile)//'/EUVDAT/param_v5/j2_an.dat')
108      open(230,file=trim(datafile)//'/EUVDAT/param_v5/j3_an.dat')
109      open(240,file=trim(datafile)//'/EUVDAT/param_v5/j1_an.dat')
110      open(250,file=trim(datafile)//'/EUVDAT/param_v5/j2_bn.dat')
111      open(260,file=trim(datafile)//'/EUVDAT/param_v5/j2_cn.dat')
112      open(300,file=trim(datafile)//'/EUVDAT//param_v5/j2_dn.dat')
113      open(270,file=trim(datafile)//'/EUVDAT//param_v5/j1_bn.dat')
114      open(280,file=trim(datafile)//'/EUVDAT//param_v5/j1_cn.dat')
115      open(290,file=trim(datafile)//'/EUVDAT//param_v5/j1_dn.dat')
116      open(150,file=trim(datafile)//'/EUVDAT//param_v5/j4n.dat')
117      open(160,file=trim(datafile)//'/EUVDAT//param_v5/j5n.dat')
118      open(170,file=trim(datafile)//'/EUVDAT//param_v5/j6n.dat')
119      open(180,file=trim(datafile)//'/EUVDAT//param_v5/j7n.dat')
120      open(390,file=trim(datafile)//'/EUVDAT//param_v5/j8_an.dat')
121      open(400,file=trim(datafile)//'/EUVDAT//param_v5/j8_bn.dat')
122      open(410,file=trim(datafile)//'/EUVDAT//param_v5/j9n.dat')
123      open(420,file=trim(datafile)//'/EUVDAT//param_v5/j10_an.dat')
124      open(430,file=trim(datafile)//'/EUVDAT//param_v5/j10_bn.dat')
125      open(440,file=trim(datafile)//'/EUVDAT//param_v5/j10_cn.dat')
126      open(450,file=trim(datafile)//'/EUVDAT//param_v5/j11_an.dat')
127      open(460,file=trim(datafile)//'/EUVDAT//param_v5/j11_bn.dat')
128      open(470,file=trim(datafile)//'/EUVDAT//param_v5/j11_cn.dat')
129      open(480,file=trim(datafile)//'/EUVDAT//param_v5/j12n.dat')
130      open(490,file=trim(datafile)//'/EUVDAT//param_v5/j13_an.dat')
131      open(500,file=trim(datafile)//'/EUVDAT//param_v5/j13_bn.dat')
132      open(510,file=trim(datafile)//'/EUVDAT//param_v5/j13_cn.dat')
133
134     
135      do i=210,300,10
136         read(i,*)
137         read(i,*)
138      end do
139
140      do i=150,180,10
141         read(i,*)
142         read(i,*)
143      end do
144
145      do i=390,510,10
146         read(i,*)
147         read(i,*)
148      enddo
149
150      do i=nz2,1,-1
151         read(210,*) (c1_16(i,j),j=1,16),c17_24(i),c25_29(i),c30_31(i),
152     $        c32(i),c33(i),c34(i),c35(i),c36(i)
153      end do
154
155      do i=nz2,1,-1
156         read(220,*) (jabsifotsintpar(i,2,j),j=1,16)
157      end do
158     
159      do i=nz2,1,-1
160         read(230,*) (jabsifotsintpar(i,3,j),j=1,16)
161      end do
162
163      do i=nz2,1,-1
164         read(240,*) (jabsifotsintpar(i,1,j),j=1,16)
165      end do
166
167      do i=nz2,1,-1
168         read(250,*) (jabsifotsintpar(i,2,j),j=17,24)
169      end do
170
171
172      do i=nz2,1,-1
173         read(260,*) (jabsifotsintpar(i,2,j),j=25,31)
174      end do
175
176      do i=nz2,1,-1
177         read(270,*) (jabsifotsintpar(i,1,j),j=17,24)
178      end do
179
180      do i=nz2,1,-1
181         read(280,*) (jabsifotsintpar(i,1,j),j=25,31)
182      end do
183
184      do i=nz2,1,-1
185         read(290,*) jabsifotsintpar(i,1,32)
186      end do
187
188      do i=nz2,1,-1
189         read(300,*) (jabsifotsintpar(i,2,j),j=32,34)
190      end do
191
192      do i=nz2,1,-1
193         read(160,*) (jabsifotsintpar(i,5,j),j=1,15)
194      end do
195
196      do i=nz2,1,-1
197         read(150,*) (jabsifotsintpar(i,4,j),j=25,31)
198      end do
199
200      do i=nz2,1,-1
201         read(170,*) (jabsifotsintpar(i,6,j),j=25,35)
202      end do
203
204      do i=nz2,1,-1
205         read(180,*) (jabsifotsintpar(i,7,j),j=34,36)
206      end do
207
208      do i=nz2,1,-1
209         read(390,*) (jabsifotsintpar(i,8,j),j=2,16)
210      enddo
211
212      do i=nz2,1,-1
213         read(400,*) (jabsifotsintpar(i,8,j),j=17,24)
214      enddo
215
216      do i=nz2,1,-1
217         read(410,*) (jabsifotsintpar(i,9,j),j=1,16)
218      enddo
219
220      do i=nz2,1,-1
221         read(420,*) (jabsifotsintpar(i,10,j),j=2,16)
222      enddo
223
224      do i=nz2,1,-1
225         read(430,*) (jabsifotsintpar(i,10,j),j=17,24)
226      enddo
227
228      do i=nz2,1,-1
229         read(440,*) (jabsifotsintpar(i,10,j),j=25,32)
230      enddo
231
232      do i=nz2,1,-1
233         read(450,*) (jabsifotsintpar(i,11,j),j=2,16)
234      enddo
235
236      do i=nz2,1,-1
237         read(460,*) (jabsifotsintpar(i,11,j),j=17,24)
238      enddo
239
240      do i=nz2,1,-1
241         read(470,*) (jabsifotsintpar(i,11,j),j=25,29)
242      enddo
243     
244      do i=nz2,1,-1
245         read(480,*) (jabsifotsintpar(i,12,j),j=2,16)
246      enddo
247
248      do i=nz2,1,-1
249         read(490,*) (jabsifotsintpar(i,13,j),j=2,16)
250      enddo
251     
252      do i=nz2,1,-1
253         read(500,*) (jabsifotsintpar(i,13,j),j=17,24)
254      enddo
255     
256      do i=nz2,1,-1
257         read(510,*) (jabsifotsintpar(i,13,j),j=25,36)
258      enddo
259
260      do i=210,300,10
261         close(i)
262      end do
263
264      do i=150,180,10
265         close(i)
266      end do
267
268      do i=390,510,10
269         close(i)
270      enddo
271
272
273c     set t0
274
275      do i=1,nz2
276         t0(i)=195.
277      end do
278
279
280      do i=1,ninter
281         fluxtop(i)=1.
282      end do
283
284      !Parameters for the variation of the solar flux with 11 years cycle
285      open(100,file=trim(datafile)//'/EUVDAT/param_v5/varflujo.dat')
286      read(100,*)
287      do i=1,24
288         read(100,*) inter,ct1(i),p1(i),ct2(i),p2(i),nada
289      end do
290      close(100)
291
292c     dissociation and ionization efficiencies
293
294      do inter=1,ninter
295         efdisco2(inter)=0.
296         efdiso2(inter)=0.
297         efdish2(inter)=0.
298         efdish2o(inter)=0.
299         efdish2o2(inter)=0.
300         efdiso3(inter)=0.
301         efdisco(inter)=0.
302         efdisn2(inter)=0.
303         efdisno(inter)=0.
304         efdisno2(inter)=0.
305         efionco2(inter,1)=0.
306         efionco2(inter,2)=0.
307         efionco2(inter,3)=0.
308         efionco2(inter,4)=0.
309         efiono3p(inter)=0.
310         efionn2(inter,1)=0.
311         efionn2(inter,2)=0.
312         efionco(inter,1)=0.
313         efionco(inter,2)=0.
314         efionco(inter,3)=0.
315         efionn(inter)=0.
316         efionh(inter)=0.
317         efionno(inter)=0.
318      enddo
319
320
321c     CO2, O2, NO
322
323      open(120,file=trim(datafile)//'/EUVDAT/param_v5/efdis_inter.dat')
324      read(120,*)
325!      do i=1,21
326!         read(120,*)inter,efdisco2(inter),efdiso2(inter),efdisno(inter)
327      do inter=8,28
328         read(120,*)i,efdisco2(inter),efdiso2(inter),efdisno(inter)
329      enddo
330      do inter=29,ninter
331         efdisco2(inter)=1.
332         efdiso2(inter)=1.
333         efdisno(inter)=1.
334      enddo
335
336
337c     N2
338
339      efdisn2(15)=0.1
340      do inter=16,ninter
341         efdisn2(inter)=1.
342      enddo
343
344
345c     CO
346
347      efdisco(16)=0.5
348      do inter=17,ninter
349         efdisco(inter)=1.
350      enddo
351
352     
353c     O, N, H
354
355      do inter=1,ninter
356         efdiso(inter)=0.
357         efdisn(inter)=0.
358         efdish(inter)=0.
359      enddo
360
361
362c     H2O, H2O2, O3, NO2
363
364      do inter=25,31
365         efdish2o(inter)=1.
366      enddo
367      do inter=25,35
368         efdish2o2(inter)=1.
369      enddo
370      do inter=34,36
371         efdiso3(inter)=1.
372      enddo
373      do inter=27,36
374         efdisno2(inter)=1.
375      enddo
376      do inter=1,15
377         efdish2(inter)=1.
378      enddo
379         
380      !4 possible channels for CO2 ionization
381      do inter=14,16
382         efionco2(inter,1)=1.-efdisco2(inter)
383      enddo
384      efionco2(13,1)=0.805*(1.-efdisco2(13))
385      efionco2(13,2)=0.195*(1.-efdisco2(13))
386      do inter=11,12
387         efionco2(inter,3)=1.-efdisco2(inter)
388      enddo
389      efionco2(10,3)=0.9*(1.-efdisco2(10))
390      efionco2(10,4)=0.1*(1.-efdisco2(10))
391      do inter=2,9
392         efionco2(inter,4)=1.-efdisco2(inter)
393      enddo
394
395      !For O(3p) total ionization under 91.1 nm
396      do inter=1,16
397         efiono3p(inter)=1.d0
398      enddo
399
400      !2 channels for N2 ionization
401      do inter=9,15
402         efionn2(inter,1)=1.-efdisn2(inter)
403      enddo
404      do inter=2,8
405         efionn2(inter,2)=1.-efdisn2(inter)
406      enddo
407     
408      !3 channels for CO ionization
409      do inter=11,16
410         efionco(inter,1)=1.-efdisco(inter)
411      enddo
412      efionco(10,1)=0.87*(1.-efdisco(10))
413      efionco(10,2)=0.13*(1.-efdisco(10))
414      do inter=8,9
415         efionco(inter,2)=1.-efdisco(inter)
416      enddo
417      efionco(7,2)=0.1*(1.-efdisco(7))
418      efionco(7,3)=0.9*(1.-efdisco(7))
419      do inter=2,6
420         efionco(inter,3)=1.-efdisco(inter)
421      enddo
422
423      !Total ionization under 85 nm for N
424      do inter=1,16
425         efionn(inter)=1.
426      enddo
427
428      !NO
429      do inter=2,28
430         efionno(inter)=1.-efdisno(inter)
431      enddo
432
433      !Total ionization under 90 nm for H
434      do inter=3,16
435         efionh(inter)=1.
436      enddo
437
438
439      return
440
441
442      end
443
Note: See TracBrowser for help on using the repository browser.