Ignore:
Timestamp:
Jun 14, 2012, 4:14:11 PM (13 years ago)
Author:
emillour
Message:

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

Location:
trunk/LMDZ.MARS/libf/aeronomars
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/aeronomars/chemthermos.F90

    r635 r705  
    4444!    Local variables :
    4545!    -----------------
    46       integer :: l,iq
     46      integer :: l
    4747      integer,save :: nesptherm
    4848      real,allocatable :: rm(:,:)               !number density (cm-3)
     
    462462
    463463      !Solar flux calculation
    464       call flujo(solarcondate)!+zday/365.)
    465464
    466465      !Photoabsorption coefficients
    467       call jthermcalc(ig,chemthermod,rm,nesptherm,ztemp,zlocal,zenit)
     466      if(solvarmod.eq.0) then
     467         call flujo(solarcondate)!+zday/365.)
     468         call jthermcalc(ig,chemthermod,rm,nesptherm,ztemp,zlocal,zenit)
     469      else if(solvarmod.eq.1) then
     470         call jthermcalc_e107(ig,chemthermod,rm,nesptherm,ztemp,zlocal,zenit,zday)
     471      endif
     472         
    468473
    469474      !Chemistry
  • trunk/LMDZ.MARS/libf/aeronomars/euvheat.F90

    r635 r705  
    362362     
    363363      !Solar flux calculation
    364       call flujo(solarcondate)
     364      if(solvarmod.eq.0) call flujo(solarcondate)
    365365
    366366                                         ! Not recommended for long runs
     
    407407         enddo
    408408        !Routine to calculate the UV heating
    409          call hrtherm (ig,euvmod,rm,nespeuv,tx,zlocal,zenit,jtot)
     409         call hrtherm (ig,euvmod,rm,nespeuv,tx,zlocal,zenit,zday,jtot)
    410410
    411411!        euveff=0.16    !UV heating efficiency. Following Fox et al. ASR 1996
  • trunk/LMDZ.MARS/libf/aeronomars/hrtherm.F

    r635 r705  
    11c**********************************************************************
    22
    3       subroutine hrtherm(ig,euvmod,rm,nespeuv,tx,iz,zenit,jtot)
     3      subroutine hrtherm(ig,euvmod,rm,nespeuv,tx,iz,zenit,zday,jtot)
    44
    55
     
    1818      include 'param.h'
    1919      include 'param_v4.h'
     20      include "callkeys.h"
    2021
    2122
     
    3839      real       zenit
    3940      real       iz(nlayermx)
     41      real       zday
    4042
    4143      ! tracer indexes for the EUV heating:
     
    99101
    100102      !Calculation of photoabsortion coefficient
    101       call jthermcalc(ig,euvmod,rm,nespeuv,tx,iz,zenit)
     103      if(solvarmod.eq.0) then
     104         call jthermcalc(ig,euvmod,rm,nespeuv,tx,iz,zenit)
     105      else if (solvarmod.eq.1) then
     106         call jthermcalc_e107(ig,euvmod,rm,nespeuv,tx,iz,zenit,zday)
     107         do indexint=1,ninter
     108            fluxtop(indexint)=1.
     109         enddo
     110      endif
    102111
    103112      !Total photoabsorption coefficient
  • trunk/LMDZ.MARS/libf/aeronomars/param_read.F

    r658 r705  
    1515
    1616      integer    i,j,k,inter                          !indexes
    17       integer ierr,lnblnk
     17      integer ierr
    1818      real       nada
    1919 
     
    8989      !Tabulated column amount
    9090      open(210, status = 'old',
    91 c    $file=datafile(1:lnblnk(datafile))//'/EUVDAT/coln.dat',iostat=ierr)
    92      $file=datafile
    93      $   (1:lnblnk(datafile))//'/EUVDAT/param_v5/coln.dat',iostat=ierr)
     91c    $file=trim(datafile)//'/EUVDAT/coln.dat',iostat=ierr)
     92     $file=trim(datafile)//'/EUVDAT/param_v5/coln.dat',iostat=ierr)
    9493
    9594      IF (ierr.NE.0) THEN
    96        write(*,*)'cant find directory EUVDAT and content coln.dat'
     95       write(*,*)'cant find directory EUVDAT containing param_v5 subdir'
    9796       write(*,*)'(in aeronomars/param_read.F)'
    98        write(*,*)'It should be in :', datafile,'/'
     97       write(*,*)'It should be in :', trim(datafile),'/'
    9998       write(*,*)'1) You can change this directory address in '
    100        write(*,*)'   file phymars/datafile.h'
     99       write(*,*)'   callphys.def with datadir=/path/to/dir'
    101100       write(*,*)'2) If necessary, EUVDAT (and other datafiles)'
    102101       write(*,*)'   can be obtained online on:'
     
    106105 
    107106      !Tabulated photoabsorption coefficients
    108       open(220,file=datafile
    109      $     (1:lnblnk(datafile))//'/EUVDAT/param_v5/j2_an.dat')
    110       open(230,file=datafile
    111      $     (1:lnblnk(datafile))//'/EUVDAT/param_v5/j3_an.dat')
    112       open(240,file=datafile
    113      $     (1:lnblnk(datafile))//'/EUVDAT/param_v5/j1_an.dat')
    114       open(250,file=datafile
    115      $     (1:lnblnk(datafile))//'/EUVDAT/param_v5/j2_bn.dat')
    116       open(260,file=datafile
    117      $     (1:lnblnk(datafile))//'/EUVDAT/param_v5/j2_cn.dat')
    118       open(300,file=datafile
    119      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j2_dn.dat')
    120       open(270,file=datafile
    121      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j1_bn.dat')
    122       open(280,file=datafile
    123      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j1_cn.dat')
    124       open(290,file=datafile
    125      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j1_dn.dat')
    126       open(150,file=datafile
    127      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j4n.dat')
    128       open(160,file=datafile
    129      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j5n.dat')
    130       open(170,file=datafile
    131      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j6n.dat')
    132       open(180,file=datafile
    133      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j7n.dat')
    134       open(390,file=datafile
    135      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j8_an.dat')
    136       open(400,file=datafile
    137      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j8_bn.dat')
    138       open(410,file=datafile
    139      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j9n.dat')
    140       open(420,file=datafile
    141      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j10_an.dat')
    142       open(430,file=datafile
    143      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j10_bn.dat')
    144       open(440,file=datafile
    145      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j10_cn.dat')
    146       open(450,file=datafile
    147      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j11_an.dat')
    148       open(460,file=datafile
    149      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j11_bn.dat')
    150       open(470,file=datafile
    151      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j11_cn.dat')
    152       open(480,file=datafile
    153      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j12n.dat')
    154       open(490,file=datafile
    155      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j13_an.dat')
    156       open(500,file=datafile
    157      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j13_bn.dat')
    158       open(510,file=datafile
    159      $     (1:lnblnk(datafile))//'/EUVDAT//param_v5/j13_cn.dat')
     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')
    160133
    161134     
     
    310283
    311284      !Parameters for the variation of the solar flux with 11 years cycle
    312       open(100,file=datafile
    313      $     (1:lnblnk(datafile))//'/EUVDAT/param_v5/varflujo.dat')
     285      open(100,file=trim(datafile)//'/EUVDAT/param_v5/varflujo.dat')
    314286      read(100,*)
    315287      do i=1,24
     
    349321c     CO2, O2, NO
    350322
    351       open(120,file=datafile
    352      $     (1:lnblnk(datafile))//'/EUVDAT/param_v5/efdis_inter.dat')
     323      open(120,file=trim(datafile)//'/EUVDAT/param_v5/efdis_inter.dat')
    353324      read(120,*)
    354325!      do i=1,21
  • trunk/LMDZ.MARS/libf/aeronomars/param_v4.h

    r690 r705  
    99      common/uv/ crscabsi2,c1_16,c17_24,c25_29,c30_31,c32,                         &
    1010     &   c33,c34,c35,c36,jfotsout,co2crsc195,co2crsc295,                           &
    11      &   t0,fluxtop,freccen,jabsifotsintpar
     11     &   t0,fluxtop,freccen,jabsifotsintpar,e107,date_e107,e107_tab,               &
     12     &   coefit0,coefit1,coefit2,coefit3,coefit4
    1213     
    1314     
     
    3031      real freccen(ninter)          !representative wavelenght
    3132      real jabsifotsintpar(nz2,nabs,ninter)
     33      real e107,date_e107(669),e107_tab(669)
     34      real coefit0(ninter,nabs),coefit1(ninter,nabs)
     35      real coefit2(ninter,nabs)
     36      real coefit3(ninter,nabs),coefit4(ninter,nabs)
    3237
    3338
     
    172177        real*8 tminnplus(nlayermx),tminnoplus(nlayermx)
    173178        real*8 tminn2plus(nlayermx)
    174         real*8 tminhplus(nlayermx),tminhcoplus(nlayermx)
     179        real*8 tminhplus(nlayermx)
    175180        real*8 tminhco2plus(nlayermx)
    176181
Note: See TracChangeset for help on using the changeset viewer.