source: trunk/LMDZ.MARS/libf/aeronomars/thermosphere.F @ 652

Last change on this file since 652 was 635, checked in by emillour, 13 years ago

Mars GCM: Update of the chemistry package, including:

  • 93 reactions are accounted for (instead of 22); tracking 28 species (instead of 11)
  • computation of photoabsorption using raytracing
  • improved time stepping in the photochemistry
  • updated parameters (cross-sections); with this new version input files

are in 'EUV/param_v5' of "datafile" directory.

  • transition between lower and upper atmosphere chemistry set to 0.1 Pa (calchim.F90)
  • Lots of code clean-up: removed obsolete files column.F, param_v3.h, flujo.F, phdisrate.F, ch.F, interpfast.F, paramfoto.F, getch.F Converted chemtermos.F -> chemthermos.F90 and euvheat.F -> euvheat.F90. Added paramfoto_compact.F , param_v4.h and iono.h
  • Upadted surfacearea.F
  • Cleaned initracer.F and callkeys.h (removed use of obsolete "nqchem" and "oldnames" case when initializing tracers).
  • Minor correction in "callsedim": compute "rdust" and/or "rice" only when it makes sense.

FGG+FL+EM

File size: 2.4 KB
RevLine 
[38]1      subroutine thermosphere(pplev,pplay,dist_sol,
2     $     mu0,ptimestep,ptime,zday,tsurf,zzlev,zzlay,
3     &     pt,pq,pu,pv,pdt,pdq,
4     $     zdteuv,zdtconduc,zdumolvis,zdvmolvis,zdqmoldiff)
5
6      implicit none
7
8#include "dimensions.h"
9#include "dimphys.h"
10#include "comcstfi.h"
11#include "callkeys.h"
12#include "comdiurn.h"
13#include "param.h"
[635]14#include "param_v4.h"
[38]15#include "chimiedata.h"
16#include "conc.h"
17
18
19      INTEGER l,ig
20
21      REAL pplay(ngridmx,nlayermx)
22      real pplev(ngridmx,nlayermx+1)
23      REAL zzlay(ngridmx,nlayermx)
24      real zzlev(ngridmx,nlayermx+1)
25      REAL pt(ngridmx,nlayermx)
26      real zday
27      REAL dist_sol
28      real mu0(ngridmx)
29      real pq(ngridmx,nlayermx,nqmx)
30      real ptimestep
31      real ptime
32      real tsurf(ngridmx)
33      REAL pu(ngridmx,nlayermx),pv(ngridmx,nlayermx)
34      REAL pdt(ngridmx,nlayermx),pdq(ngridmx,nlayermx,nqmx)
35
36      REAL zdteuv(ngridmx,nlayermx)
37      REAL zdtconduc(ngridmx,nlayermx)
38      REAL zdumolvis(ngridmx,nlayermx)
39      REAL zdvmolvis(ngridmx,nlayermx)
40      real zdqmoldiff(ngridmx,nlayermx,nqmx)
41
42      logical firstcall
43      save firstcall
44      data firstcall /.true./
45
46      if (firstcall) then
47        if (.not. tracer) then
48          do l=1,nlayermx
49            do ig=1,ngridmx
50              rnew(ig,l)=r
51              cpnew(ig,l)=cpp
52            enddo
53          enddo
54        endif
55        firstcall= .false.
56      endif
57
58      if (calleuv) then
59        call zerophys(ngridmx*nlayermx,zdteuv)
[635]60        call euvheat(pt,pdt,pplev,pplay,zzlay,
[38]61     $               mu0,ptimestep,ptime,zday,pq,pdq,zdteuv)
62      endif
63
64      if (callconduct) THEN
65        call zerophys(ngridmx*nlayermx,zdtconduc)
66        call conduction(ptimestep,pplay,pplev,pt,zdteuv,
67     $                   tsurf,zzlev,zzlay,zdtconduc)
68      endif
69
70      if (callmolvis) THEN
71        call zerophys(ngridmx*nlayermx,zdumolvis)
72        call molvis(ptimestep,pplay,pplev,pt,zdteuv,zdtconduc,pu,
73     $                   tsurf,zzlev,zzlay,zdumolvis)
74        call zerophys(ngridmx*nlayermx,zdvmolvis)
75        call molvis(ptimestep,pplay,pplev,pt,zdteuv,zdtconduc,pv,
76     $                   tsurf,zzlev,zzlay,zdvmolvis)
77      endif
78
79      if (callmoldiff) THEN
80        call zerophys(ngridmx*nlayermx*nqmx,zdqmoldiff)
[635]81        call moldiff(pplay,pplev,pt,pdt,pq,pdq,ptimestep,
[38]82     &                   zzlay,zdteuv,zdtconduc,zdqmoldiff)
83      endif
84
85      return
86      end
87
88
Note: See TracBrowser for help on using the repository browser.