Changeset 1266 for trunk


Ignore:
Timestamp:
May 19, 2014, 10:05:08 AM (11 years ago)
Author:
aslmd
Message:

LMDZ.MARS
IMPORTANT CHANGE

  • Remove all reference/use of nlayermx and dimphys.h
  • Made use of automatic arrays whenever arrays are needed with dimension nlayer
  • Remove lots of obsolete reference to dimensions.h
  • Converted iono.h and param_v4.h into corresponding modules

(with embedded subroutine to allocate arrays)
(no arrays allocated if thermosphere not used)

  • Deleted param.h and put contents into module param_v4_h
  • Adapted testphys1d, newstart, etc...
  • Made DATA arrays in param_read to be initialized by subroutine

fill_data_thermos in module param_v4_h

  • Optimized computations in paramfoto_compact (twice less dlog10 calculations)
  • Checked consistency before/after modification in debug mode
  • Checked performance is not impacted (same as before)
Location:
trunk/LMDZ.MARS
Files:
2 added
4 deleted
96 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/README

    r1260 r1266  
    21072107  angle when SZA slightly greater than 90
    21082108- Corrected misleading warning in nlte_tcool.F
     2109
     2110== 20/05/2014 == AS
     2111IMPORTANT CHANGE
     2112- Remove all reference/use of nlayermx and dimphys.h
     2113- Made use of automatic arrays whenever arrays are needed with dimension nlayer
     2114- Remove lots of obsolete reference to dimensions.h
     2115- Converted iono.h and param_v4.h into corresponding modules
     2116   (with embedded subroutine to allocate arrays)
     2117   (no arrays allocated if thermosphere not used)
     2118- Deleted param.h and put contents into module param_v4_h
     2119- Adapted testphys1d, newstart, etc...
     2120- Made DATA arrays in param_read to be initialized by subroutine
     2121   fill_data_thermos in module param_v4_h
     2122- Optimized computations in paramfoto_compact (twice less dlog10 calculations)
     2123- Checked consistency before/after modification in debug mode
     2124- Checked performance is not impacted (same as before)
  • trunk/LMDZ.MARS/libf/aeronomars/calchim.F90

    r1226 r1266  
    6767!=======================================================================
    6868
    69 !#include "dimensions.h"
    70 !#include "dimphys.h"
    7169#include "chimiedata.h"
    72 !#include "tracer.h"
    7370#include "callkeys.h"
    74 !#include "conc.h"
    7571
    7672!     input:
     
    668664       
    669665         if (thermochem) then
    670             call chemthermos(ig,lswitch,chemthermod,zycol,ztemp,zdens,  &
    671                              zpress,zlocal,szacol,ptimestep,zday)
     666            call chemthermos(ig,nlayer,lswitch,chemthermod,zycol,ztemp,&
     667                             zdens,zpress,zlocal,szacol,ptimestep,zday)
    672668         end if
    673669
  • trunk/LMDZ.MARS/libf/aeronomars/chemthermos.F90

    r1226 r1266  
    1       SUBROUTINE chemthermos(ig,lswitch,chemthermod,zycol,ztemp,zdens, &
    2            zpress,zlocal,zenit,ptimestep,zday)
     1      SUBROUTINE chemthermos(ig,nlayer,lswitch,chemthermod,zycol,ztemp, &
     2           zdens,zpress,zlocal,zenit,ptimestep,zday)
    33
    44      use tracer_mod, only: nqmx, igcm_co2, igcm_co, igcm_o, igcm_o1d,  &
     
    3030!    ------------------
    3131!
    32 #include "dimensions.h"
    33 #include "dimphys.h"
    3432#include "callkeys.h"
    35 !#include "comdiurn.h"
    36 #include "param.h"
    37 #include "param_v4.h"
    38 !#include"tracer.h"
    3933!-----------------------------------------------------------------------
    4034!    Input/Output
    4135!    ------------
    42       integer :: lswitch,ig,chemthermod
    43       real :: zycol(nlayermx,nqmx)
    44       real :: ztemp(nlayermx)
    45       real :: zdens(nlayermx)
    46       real :: zpress(nlayermx)                  ! in mbar
    47       real :: zlocal(nlayermx)
     36      integer :: lswitch,ig,chemthermod,nlayer
     37      real :: zycol(nlayer,nqmx)
     38      real :: ztemp(nlayer)
     39      real :: zdens(nlayer)
     40      real :: zpress(nlayer)                    ! in mbar
     41      real :: zlocal(nlayer)
    4842      real :: zenit
    4943      real :: ptimestep
     
    426420
    427421      !Allocate density vector
    428       allocate(rm(nlayermx,nesptherm))
    429 
    430       do l=1,nlayermx
     422      allocate(rm(nlayer,nesptherm))
     423
     424      do l=1,nlayer
    431425        rm(l,i_co2)     = max(zycol(l,g_co2)*zdens(l),1.e-30)
    432426        rm(l,i_co)      = max(zycol(l,g_co)*zdens(l),1.e-30)
     
    474468      call flujo(solarcondate)
    475469      if(solvarmod.eq.0) then
    476          call jthermcalc(ig,chemthermod,rm,nesptherm,ztemp,zlocal,zenit)
     470         call jthermcalc(ig,nlayer,chemthermod,rm,nesptherm,ztemp,zlocal,zenit)
    477471      else if(solvarmod.eq.1) then
    478          call jthermcalc_e107(ig,chemthermod,rm,nesptherm,ztemp,zlocal,zenit,zday)
     472         call jthermcalc_e107(ig,nlayer,chemthermod,rm,nesptherm,ztemp,zlocal,zenit,zday)
    479473      endif
    480474         
     
    482476      !Chemistry
    483477      call paramfoto_compact  &
    484            (ig,chemthermod,lswitch,ztemp,ptimestep,zenit,zlocal,rm,nesptherm)
     478           (ig,nlayer,chemthermod,lswitch,ztemp,ptimestep,zenit,zlocal,rm,nesptherm)
    485479
    486480      !Concentrations back to GCM
    487       do l=lswitch,nlayermx
     481      do l=lswitch,nlayer
    488482        zycol(l,g_co2)     = max(rm(l,i_co2)     / zdens(l) , 1.e-30)
    489483        zycol(l,g_co)      = max(rm(l,i_co)      / zdens(l) , 1.e-30)
  • trunk/LMDZ.MARS/libf/aeronomars/chemthermos_readini.F

    r1013 r1266  
    11      subroutine chemthermos_readini
    22
     3      use param_v4_h, only: rcoef
    34      implicit none
    4 
    5 
    6 c     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       include "callkeys.h"
    13 
    145
    156c     local variables
  • trunk/LMDZ.MARS/libf/aeronomars/concentrations.F

    r1226 r1266  
    2727!     declarations
    2828 
    29 !#include "dimensions.h"
    30 !#include "dimphys.h"
    3129#include "callkeys.h"
    32 !#include "comdiurn.h"
    3330#include "chimiedata.h"
    34 !#include "tracer.h"
    35 !#include "conc.h"
    3631
    3732!     input/output
  • trunk/LMDZ.MARS/libf/aeronomars/conduction.F

    r1226 r1266  
    1616c   declarations:
    1717c-----------------------------------------------------------------------
    18 
    19 !#include "dimensions.h"
    20 !#include "dimphys.h"
    21 !#include "surfdat.h"
    22 !#include "chimiedata.h"
    23 !#include "conc.h"
    2418
    2519c   arguments:
  • trunk/LMDZ.MARS/libf/aeronomars/deposition.F

    r1226 r1266  
    1212      implicit none
    1313c
    14 !#include "dimensions.h"
    15 !#include "dimphys.h"
    16 !#include "chimiedata.h"
    17 !#include "conc.h"
    18 !#include "surfdat.h"
    1914c
    2015c     input
  • trunk/LMDZ.MARS/libf/aeronomars/euvheat.F90

    r1226 r1266  
    3131!    ------------------
    3232!
    33 !#include "dimensions.h"
    34 !#include "dimphys.h"
    3533#include "callkeys.h"
    36 !#include "comdiurn.h"
    37 !#include "param.h"
    38 !#include "param_v4.h"
    39 !#include "chimiedata.h"
    40 !#include "tracer.h"
    41 !#include "conc.h"
    4234!-----------------------------------------------------------------------
    4335!    Input/Output
     
    413405         enddo
    414406        !Routine to calculate the UV heating
    415          call hrtherm (ig,euvmod,rm,nespeuv,tx,zlocal,zenit,zday,jtot)
     407         call hrtherm (ig,nlayer,euvmod,rm,nespeuv,tx,zlocal,zenit,zday,jtot)
    416408
    417409!        euveff=0.16    !UV heating efficiency. Following Fox et al. ASR 1996
  • trunk/LMDZ.MARS/libf/aeronomars/hrtherm.F

    r1119 r1266  
    11c**********************************************************************
    22
    3       subroutine hrtherm(ig,euvmod,rm,nespeuv,tx,iz,zenit,zday,jtot)
     3      subroutine hrtherm(ig,nlayer,
     4     .      euvmod,rm,nespeuv,tx,iz,zenit,zday,jtot)
    45
    56
     
    910c**********************************************************************
    1011
     12      use param_v4_h, only: ninter,nabs,jfotsout,fluxtop,freccen
     13
    1114      implicit none
    1215
    1316c     common variables and constants
    14 
    15 
    16       include 'dimensions.h'
    17       include 'dimphys.h'
    18       include 'param.h'
    19       include 'param_v4.h'
    2017      include "callkeys.h"
    2118
     
    2320c    local parameters and variables
    2421
    25       real       xabsi(nabs,nlayermx)                   !densities
    26       real       jergs(ninter,nabs,nlayermx)
     22      real       xabsi(nabs,nlayer)                     !densities
     23      real       jergs(ninter,nabs,nlayer)
    2724     
    2825      integer    i,j,k,indexint          !indexes
     
    3229c     input and output variables
    3330
    34       integer    ig  ,euvmod
     31      integer    ig  ,euvmod,nlayer
    3532      integer    nespeuv
    36       real       rm(nlayermx,nespeuv)              !density matrix (cm^-3)
    37       real       jtot(nlayermx)                    !output: heating rate(erg/s)
    38       real       tx(nlayermx)                      !temperature
     33      real       rm(nlayer,nespeuv)              !density matrix (cm^-3)
     34      real       jtot(nlayer)                    !output: heating rate(erg/s)
     35      real       tx(nlayer)                      !temperature
    3936      real       zenit
    40       real       iz(nlayermx)
     37      real       iz(nlayer)
    4138      real       zday
    4239
     
    6764      end if
    6865      if(dn.eq.'n') then
    69         do i=1,nlayermx                                   
     66        do i=1,nlayer                                   
    7067              jtot(i)=0.
    7168        enddo       
     
    7875      jtot(:)=0.
    7976      !All number densities to a single array, xabsi(species,layer)
    80       do i=1,nlayermx
     77      do i=1,nlayer
    8178         xabsi(1,i)  = rm(i,i_co2)
    8279         xabsi(2,i)  = rm(i,i_o2)
     
    10299      !Calculation of photoabsortion coefficient
    103100      if(solvarmod.eq.0) then
    104          call jthermcalc(ig,euvmod,rm,nespeuv,tx,iz,zenit)
     101         call jthermcalc(ig,nlayer,euvmod,rm,nespeuv,tx,iz,zenit)
    105102      else if (solvarmod.eq.1) then
    106          call jthermcalc_e107(ig,euvmod,rm,nespeuv,tx,iz,zenit,zday)
     103         call jthermcalc_e107(ig,nlayer,euvmod,
     104     .           rm,nespeuv,tx,iz,zenit,zday)
    107105      endif
    108106
    109107      !Total photoabsorption coefficient
    110       do i=1,nlayermx
     108      do i=1,nlayer
    111109         jtot(i)=0.
    112110        do j=1,nabs
  • trunk/LMDZ.MARS/libf/aeronomars/inichim_newstart.F90

    r1047 r1266  
    3434
    3535#include "dimensions.h"
    36 !#include "dimphys.h"
    3736#include "paramet.h"
    38 !#include "tracer.h"
    3937#include "comvert.h"
    4038#include "callkeys.h"
  • trunk/LMDZ.MARS/libf/aeronomars/jthermcalc.F

    r1260 r1266  
    11c**********************************************************************
    22
    3       subroutine jthermcalc(ig,chemthermod,rm,nesptherm,tx,iz,zenit)
     3      subroutine jthermcalc(ig,nlayer,chemthermod,
     4     .      rm,nesptherm,tx,iz,zenit)
    45
    56
     
    1112c**********************************************************************
    1213
     14      use param_v4_h, only: jfotsout,crscabsi2,
     15     .    c1_16,c17_24,c25_29,c30_31,c32,c33,c34,c35,c36,
     16     .    co2crsc195,co2crsc295,t0,
     17     .    jabsifotsintpar,ninter,nz2
     18
    1319      implicit none
    1420
    15 c     common variables and constants
    16       include "dimensions.h"
    17       include "dimphys.h"
    18       include 'param.h'
    19       include 'param_v4.h'
    20 
    2121c     input and output variables
    2222
    23       integer    ig
     23      integer    ig,nlayer
    2424      integer    chemthermod
    2525      integer    nesptherm                      !Number of species considered
    26       real       rm(nlayermx,nesptherm)         !Densities (cm-3)
    27       real       tx(nlayermx)                   !temperature
     26      real       rm(nlayer,nesptherm)         !Densities (cm-3)
     27      real       tx(nlayer)                   !temperature
    2828      real       zenit                          !SZA
    29       real       iz(nlayermx)                   !Local altitude
     29      real       iz(nlayer)                   !Local altitude
    3030
    3131
    3232c    local parameters and variables
    3333
    34       real       co2colx(nlayermx)              !column density of CO2 (cm^-2)
    35       real       o2colx(nlayermx)               !column density of O2(cm^-2)
    36       real       o3pcolx(nlayermx)              !column density of O(3P)(cm^-2)
    37       real       h2colx(nlayermx)               !H2 column density (cm-2)
    38       real       h2ocolx(nlayermx)              !H2O column density (cm-2)
    39       real       h2o2colx(nlayermx)             !column density of H2O2(cm^-2)
    40       real       o3colx(nlayermx)               !O3 column density (cm-2)
    41       real       n2colx(nlayermx)               !N2 column density (cm-2)
    42       real       ncolx(nlayermx)                !N column density (cm-2)
    43       real       nocolx(nlayermx)               !NO column density (cm-2)
    44       real       cocolx(nlayermx)               !CO column density (cm-2)
    45       real       hcolx(nlayermx)                !H column density (cm-2)
    46       real       no2colx(nlayermx)              !NO2 column density (cm-2)
    47       real       t2(nlayermx)
    48       real       coltemp(nlayermx)
    49       real       sigma(ninter,nlayermx)
    50       real       alfa(ninter,nlayermx)
     34      real       co2colx(nlayer)              !column density of CO2 (cm^-2)
     35      real       o2colx(nlayer)               !column density of O2(cm^-2)
     36      real       o3pcolx(nlayer)              !column density of O(3P)(cm^-2)
     37      real       h2colx(nlayer)               !H2 column density (cm-2)
     38      real       h2ocolx(nlayer)              !H2O column density (cm-2)
     39      real       h2o2colx(nlayer)             !column density of H2O2(cm^-2)
     40      real       o3colx(nlayer)               !O3 column density (cm-2)
     41      real       n2colx(nlayer)               !N2 column density (cm-2)
     42      real       ncolx(nlayer)                !N column density (cm-2)
     43      real       nocolx(nlayer)               !NO column density (cm-2)
     44      real       cocolx(nlayer)               !CO column density (cm-2)
     45      real       hcolx(nlayer)                !H column density (cm-2)
     46      real       no2colx(nlayer)              !NO2 column density (cm-2)
     47      real       t2(nlayer)
     48      real       coltemp(nlayer)
     49      real       sigma(ninter,nlayer)
     50      real       alfa(ninter,nlayer)
    5151     
    5252      integer    i,j,k,indexint                 !indexes
     
    7171      real*8      auxjh(nz2)
    7272      real*8      auxjno2(nz2)
    73       real*8      wp(nlayermx),wm(nlayermx)
    74       real*8      auxcolinp(nlayermx)
    75       integer     auxind(nlayermx)
     73      real*8      wp(nlayer),wm(nlayer)
     74      real*8      auxcolinp(nlayer)
     75      integer     auxind(nlayer)
    7676      integer     auxi
    7777      integer     ind
    78       real*8      cortemp(nlayermx)
     78      real*8      cortemp(nlayer)
    7979
    8080      real*8      limdown                      !limits for interpolation
     
    102102      !Auxiliar temperature to take into account the temperature dependence
    103103      !of CO2 cross section
    104       do i=1,nlayermx
     104      do i=1,nlayer
    105105         t2(i)=tx(i)
    106106         if(t2(i).lt.195.0) t2(i)=195.0
     
    109109
    110110      !Calculation of column amounts
    111       call column(ig,chemthermod,rm,nesptherm,tx,iz,zenit,
     111      call column(ig,nlayer,chemthermod,rm,nesptherm,tx,iz,zenit,
    112112     $     co2colx,o2colx,o3pcolx,h2colx,h2ocolx,
    113113     $     h2o2colx,o3colx,n2colx,ncolx,nocolx,cocolx,hcolx,no2colx)
     
    115115      !Auxiliar column to include the temperature dependence
    116116      !of CO2 cross section
    117       coltemp(nlayermx)=co2colx(nlayermx)*abs(t2(nlayermx)-t0(nlayermx))
    118       do i=nlayermx-1,1,-1
     117      coltemp(nlayer)=co2colx(nlayer)*abs(t2(nlayer)-t0(nlayer))
     118      do i=nlayer-1,1,-1
    119119        coltemp(i)=!coltemp(i+1)+     PQ SE ELIMINA? REVISAR
    120120     $         ( rm(i,i_co2) + rm(i+1,i_co2) ) * 0.5
     
    123123     
    124124      !Calculation of CO2 cross section at temperature t0(i)
    125       do i=1,nlayermx
     125      do i=1,nlayer
    126126         do indexint=24,32
    127127           sigma(indexint,i)=co2crsc195(indexint-23)
     
    148148c     Input atmospheric column
    149149      indexint=1
    150       do i=1,nlayermx
    151          auxcolinp(nlayermx-i+1) = co2colx(i)*crscabsi2(1,indexint) +
     150      do i=1,nlayer
     151         auxcolinp(nlayer-i+1) = co2colx(i)*crscabsi2(1,indexint) +
    152152     $        o2colx(i)*crscabsi2(2,indexint) +
    153153     $        o3pcolx(i)*crscabsi2(3,indexint) +
     
    159159      limdown=1.e-20
    160160      limup=1.e26
    161 
    162161
    163162c     Interpolations
     
    185184
    186185      call interfast
    187      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    188       do i=1,nlayermx
     186     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     187      do i=1,nlayer
    189188         ind=auxind(i)
    190          auxi=nlayermx-i+1
     189         auxi=nlayer-i+1
    191190         ! Ehouarn: test
    192191          if ((ind+1.gt.nz2).or.(ind.le.0)) then
    193192            write(*,*) "jthercalc error: ind=",ind,ig,zenit
    194             write(*,*) " auxind(1:nlayermx)=",auxind
    195             write(*,*) " auxcolinp(:nlayermx)=",auxcolinp
    196             write(*,*) " co2colx(:nlayermx)=",co2colx
    197             write(*,*) " o2colx(:nlayermx)=",o2colx
    198             write(*,*) " o3pcolx(:nlayermx)=",o3pcolx
    199             write(*,*) " h2colx(:nlayermx)=",h2colx
    200             write(*,*) " ncolx(:nlayermx)=",ncolx
     193            write(*,*) " auxind(1:nlayer)=",auxind
     194            write(*,*) " auxcolinp(:nlayer)=",auxcolinp
     195            write(*,*) " co2colx(:nlayer)=",co2colx
     196            write(*,*) " o2colx(:nlayer)=",o2colx
     197            write(*,*) " o3pcolx(:nlayer)=",o3pcolx
     198            write(*,*) " h2colx(:nlayer)=",h2colx
     199            write(*,*) " ncolx(:nlayer)=",ncolx
    201200            write(*,*) " auxcoltab(1:nz2)=",auxcoltab
    202201            write(*,*) " limdown=",limdown
     
    220219      !N interpolated coefficient
    221220      if(chemthermod.ge.2) then
    222          do i=1,nlayermx
     221         do i=1,nlayer
    223222            ind=auxind(i)
    224             jfotsout(indexint,9,nlayermx-i+1) =  wm(i)*auxjn(ind+1) +
     223            jfotsout(indexint,9,nlayer-i+1) =  wm(i)*auxjn(ind+1) +
    225224     $         wp(i)*auxjn(ind)
    226225         enddo
     
    241240c     Input atmospheric column
    242241      do indexint=2,15
    243          do i=1,nlayermx
    244             auxcolinp(nlayermx-i+1) = co2colx(i)*crscabsi2(1,indexint)+
     242         do i=1,nlayer
     243            auxcolinp(nlayer-i+1) = co2colx(i)*crscabsi2(1,indexint)+
    245244     $           o2colx(i)*crscabsi2(2,indexint)+
    246245     $           o3pcolx(i)*crscabsi2(3,indexint)+
     
    288287         endif
    289288
    290           call interfast(wm,wp,auxind,auxcolinp,nlayermx,
     289          call interfast(wm,wp,auxind,auxcolinp,nlayer,
    291290     $        auxcoltab,nz2,limdown,limup)
    292           do i=1,nlayermx
     291          do i=1,nlayer
    293292             ind=auxind(i)
    294              auxi = nlayermx-i+1
     293             auxi = nlayer-i+1
    295294             !O2 interpolated coefficient
    296295             jfotsout(indexint,2,auxi) = wm(i)*auxjo2(ind+1) +
     
    317316          !Only if chemthermod.ge.2
    318317          if(chemthermod.ge.2) then
    319              do i=1,nlayermx
     318             do i=1,nlayer
    320319                ind=auxind(i)
    321                 auxi = nlayermx-i+1
     320                auxi = nlayer-i+1
    322321                !N interpolated coefficient
    323322                jfotsout(indexint,9,auxi) = wm(i)*auxjn(ind+1) +
     
    346345c     Input atmospheric column
    347346      indexint=16
    348       do i=1,nlayermx
    349          auxcolinp(nlayermx-i+1) = co2colx(i)*crscabsi2(1,indexint)+
     347      do i=1,nlayer
     348         auxcolinp(nlayer-i+1) = co2colx(i)*crscabsi2(1,indexint)+
    350349     $        o2colx(i)*crscabsi2(2,indexint)+
    351350     $        o3pcolx(i)*crscabsi2(3,indexint)+
     
    393392
    394393      call interfast
    395      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    396       do i=1,nlayermx
     394     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     395      do i=1,nlayer
    397396         ind=auxind(i)
    398          auxi = nlayermx-i+1
     397         auxi = nlayer-i+1
    399398         !O2 interpolated coefficient
    400399         jfotsout(indexint,2,auxi) = wm(i)*auxjo2(ind+1) +
     
    418417      !Only if chemthermod.ge.2
    419418      if(chemthermod.ge.2) then
    420          do i=1,nlayermx
     419         do i=1,nlayer
    421420            ind=auxind(i)
    422             auxi = nlayermx-i+1
     421            auxi = nlayer-i+1
    423422            !N interpolated coefficient
    424423            jfotsout(indexint,9,auxi) = wm(i)*auxjn(ind+1) +
     
    444443c     Input column
    445444
    446       do i=1,nlayermx
    447          auxcolinp(nlayermx-i+1) = co2colx(i) + o2colx(i) + n2colx(i) +
     445      do i=1,nlayer
     446         auxcolinp(nlayer-i+1) = co2colx(i) + o2colx(i) + n2colx(i) +
    448447     $        nocolx(i) + cocolx(i) + no2colx(i)
    449448      end do
     
    478477
    479478         call interfast
    480      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
     479     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
    481480         !Correction to include T variation of CO2 cross section
    482481         if(indexint.eq.24) then
    483             do i=1,nlayermx
    484                auxi = nlayermx-i+1
     482            do i=1,nlayer
     483               auxi = nlayer-i+1
    485484               if(sigma(indexint,auxi)*
    486485     $              alfa(indexint,auxi)*coltemp(auxi)
     
    493492            enddo
    494493         else
    495             do i=1,nlayermx
     494            do i=1,nlayer
    496495               cortemp(i)=1.
    497496            enddo
    498497         end if
    499          do i=1,nlayermx           
     498         do i=1,nlayer           
    500499            ind=auxind(i)
    501             auxi = nlayermx-i+1
     500            auxi = nlayer-i+1
    502501            !O2 interpolated coefficient
    503502            jfotsout(indexint,2,auxi) = (wm(i)*auxjo2(ind+1) +
     
    519518         !Only if chemthermod.ge.2
    520519         if(chemthermod.ge.2) then
    521             do i=1,nlayermx
     520            do i=1,nlayer
    522521               ind=auxind(i)
    523                auxi = nlayermx-i+1
     522               auxi = nlayer-i+1
    524523               !NO interpolated coefficient
    525524               jfotsout(indexint,10,auxi)=(wm(i)*auxjno(ind+1) +
     
    544543c     Input atmospheric column
    545544
    546       do i=1,nlayermx
    547          auxcolinp(nlayermx-i+1) = co2colx(i) + o2colx(i) + h2ocolx(i) +
     545      do i=1,nlayer
     546         auxcolinp(nlayer-i+1) = co2colx(i) + o2colx(i) + h2ocolx(i) +
    548547     $        h2o2colx(i) + nocolx(i) + cocolx(i) + no2colx(i)
    549548      end do
     
    579578         endif
    580579         call interfast
    581      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    582          do i=1,nlayermx
     580     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     581         do i=1,nlayer
    583582            ind=auxind(i)
    584             auxi = nlayermx-i+1
     583            auxi = nlayer-i+1
    585584            !Correction to include T variation of CO2 cross section
    586585            if(sigma(indexint,auxi)*alfa(indexint,auxi)*
     
    611610         !Only if chemthermod.ge.2
    612611         if(chemthermod.ge.2) then
    613             do i=1,nlayermx
     612            do i=1,nlayer
    614613               ind=auxind(i)
    615                auxi = nlayermx-i+1
     614               auxi = nlayer-i+1
    616615               !NO interpolated coefficient
    617616               jfotsout(indexint,10,auxi)=(wm(i)*auxjno(ind+1) +
     
    638637c     Input atmospheric column
    639638
    640       do i=1,nlayermx
    641          auxcolinp(nlayermx-i+1) = co2colx(i) + o2colx(i) + h2ocolx(i) +
     639      do i=1,nlayer
     640         auxcolinp(nlayer-i+1) = co2colx(i) + o2colx(i) + h2ocolx(i) +
    642641     $        h2o2colx(i) + nocolx(i) + no2colx(i)
    643642      end do
     
    672671
    673672         call interfast
    674      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    675          do i=1,nlayermx
     673     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     674         do i=1,nlayer
    676675            ind=auxind(i)
    677             auxi = nlayermx-i+1
     676            auxi = nlayer-i+1
    678677            !Correction to include T variation of CO2 cross section
    679678            if(sigma(indexint,auxi)*alfa(indexint,auxi)*
     
    701700         !Only if chemthermod.ge.2
    702701         if(chemthermod.ge.2) then
    703             do i=1,nlayermx
     702            do i=1,nlayer
    704703               ind=auxind(i)
    705                auxi = nlayermx-i+1
     704               auxi = nlayer-i+1
    706705               !NO interpolated coefficient
    707706               jfotsout(indexint,10,auxi)=(wm(i)*auxjno(ind+1) +
     
    728727
    729728      indexint=32
    730       do i=1,nlayermx
    731          auxcolinp(nlayermx-i+1) =co2colx(i) + o2colx(i) + h2o2colx(i) +
     729      do i=1,nlayer
     730         auxcolinp(nlayer-i+1) =co2colx(i) + o2colx(i) + h2o2colx(i) +
    732731     $        nocolx(i) + no2colx(i)
    733732      end do
     
    757756      endif
    758757      call interfast
    759      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    760       do i=1,nlayermx
     758     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     759      do i=1,nlayer
    761760         ind=auxind(i)
    762          auxi = nlayermx-i+1
     761         auxi = nlayer-i+1
    763762         !Correction to include T variation of CO2 cross section
    764          if(sigma(indexint,nlayermx-i+1)*alfa(indexint,auxi)*
     763         if(sigma(indexint,nlayer-i+1)*alfa(indexint,auxi)*
    765764     $        coltemp(auxi).lt.60.) then
    766765            cortemp(i)=exp(-sigma(indexint,auxi)*
     
    783782      !Only if chemthermod.ge.2
    784783      if(chemthermod.ge.2) then
    785          do i=1,nlayermx
    786             auxi = nlayermx-i+1
     784         do i=1,nlayer
     785            auxi = nlayer-i+1
    787786            ind=auxind(i)
    788787            !NO interpolated coefficient
     
    808807
    809808      indexint=33
    810       do i=1,nlayermx
    811          auxcolinp(nlayermx-i+1) = o2colx(i) + h2o2colx(i) + no2colx(i)
     809      do i=1,nlayer
     810         auxcolinp(nlayer-i+1) = o2colx(i) + h2o2colx(i) + no2colx(i)
    812811      end do
    813812
     
    831830      endif
    832831      call interfast
    833      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    834       do i=1,nlayermx
     832     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     833      do i=1,nlayer
    835834         ind=auxind(i)
    836          auxi = nlayermx-i+1
     835         auxi = nlayer-i+1
    837836         !O2 interpolated coefficient
    838837         jfotsout(indexint,2,auxi) = wm(i)*auxjo2(ind+1) +
     
    844843      !Only if chemthermod.ge.2
    845844      if(chemthermod.ge.2) then
    846          do i=1,nlayermx
     845         do i=1,nlayer
    847846            ind=auxind(i)
    848847            !NO2 interpolated coefficient
    849             jfotsout(indexint,13,nlayermx-i+1) = wm(i)*auxjno2(ind+1) +
     848            jfotsout(indexint,13,nlayer-i+1) = wm(i)*auxjno2(ind+1) +
    850849     $           wp(i)*auxjno2(ind)
    851850         enddo
     
    865864
    866865      indexint=34
    867       do i=1,nlayermx
    868          auxcolinp(nlayermx-i+1) = h2o2colx(i) + o2colx(i) + o3colx(i) +
     866      do i=1,nlayer
     867         auxcolinp(nlayer-i+1) = h2o2colx(i) + o2colx(i) + o3colx(i) +
    869868     $        no2colx(i)
    870869      end do
     
    891890      endif
    892891      call interfast
    893      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    894       do i=1,nlayermx
     892     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     893      do i=1,nlayer
    895894         ind=auxind(i)
    896          auxi = nlayermx-i+1
     895         auxi = nlayer-i+1
    897896         !O2 interpolated coefficient
    898897         jfotsout(indexint,2,auxi) = wm(i)*auxjo2(ind+1) +
     
    907906      !Only if chemthermod.ge.2
    908907      if(chemthermod.ge.2) then
    909          do i=1,nlayermx
     908         do i=1,nlayer
    910909            ind=auxind(i)
    911910            !NO2 interpolated coefficient
    912             jfotsout(indexint,13,nlayermx-i+1) = wm(i)*auxjno2(ind+1) +
     911            jfotsout(indexint,13,nlayer-i+1) = wm(i)*auxjno2(ind+1) +
    913912     $           wp(i)*auxjno2(ind)
    914913         enddo
     
    928927
    929928      indexint=35
    930       do i=1,nlayermx
    931          auxcolinp(nlayermx-i+1) = h2o2colx(i) + o3colx(i) + no2colx(i)
     929      do i=1,nlayer
     930         auxcolinp(nlayer-i+1) = h2o2colx(i) + o3colx(i) + no2colx(i)
    932931      end do
    933932
     
    951950      endif
    952951      call interfast
    953      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    954       do i=1,nlayermx
     952     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     953      do i=1,nlayer
    955954         ind=auxind(i)
    956          auxi = nlayermx-i+1
     955         auxi = nlayer-i+1
    957956         !H2O2 interpolated coefficient
    958957         jfotsout(indexint,6,auxi) = wm(i)*auxjh2o2(ind+1) +
     
    963962      enddo
    964963      if(chemthermod.ge.2) then
    965          do i=1,nlayermx
     964         do i=1,nlayer
    966965            ind=auxind(i)
    967966            !NO2 interpolated coefficient
    968             jfotsout(indexint,13,nlayermx-i+1) = wm(i)*auxjno2(ind+1) +
     967            jfotsout(indexint,13,nlayer-i+1) = wm(i)*auxjno2(ind+1) +
    969968     $           wp(i)*auxjno2(ind)
    970969         enddo
     
    983982
    984983      indexint=36
    985       do i=1,nlayermx
    986          auxcolinp(nlayermx-i+1) = o3colx(i) + no2colx(i)
     984      do i=1,nlayer
     985         auxcolinp(nlayer-i+1) = o3colx(i) + no2colx(i)
    987986      end do
    988987
     
    10041003      endif
    10051004      call interfast
    1006      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    1007       do i=1,nlayermx
     1005     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     1006      do i=1,nlayer
    10081007         ind=auxind(i)
    10091008         !O3 interpolated coefficient
    1010          jfotsout(indexint,7,nlayermx-i+1) = wm(i)*auxjo3(ind+1) +
     1009         jfotsout(indexint,7,nlayer-i+1) = wm(i)*auxjo3(ind+1) +
    10111010     $        wp(i)*auxjo3(ind)         
    10121011      enddo
    10131012      !Only if chemthermod.ge.2
    10141013      if(chemthermod.ge.2) then
    1015          do i=1,nlayermx
     1014         do i=1,nlayer
    10161015            ind=auxind(i)
    10171016            !NO2 interpolated coefficient
    1018             jfotsout(indexint,13,nlayermx-i+1) = wm(i)*auxjno2(ind+1) +
     1017            jfotsout(indexint,13,nlayer-i+1) = wm(i)*auxjno2(ind+1) +
    10191018     $           wp(i)*auxjno2(ind)
    10201019         enddo
     
    10351034c**********************************************************************
    10361035
    1037       subroutine column(ig,chemthermod,rm,nesptherm,tx,iz,zenit,
     1036      subroutine column(ig,nlayer,chemthermod,rm,nesptherm,tx,iz,zenit,
    10381037     $     co2colx,o2colx,o3pcolx,h2colx,h2ocolx,h2o2colx,o3colx,
    10391038     $     n2colx,ncolx,nocolx,cocolx,hcolx,no2colx)
     
    10471046     &                      igcm_o3, igcm_n2, igcm_n, igcm_no, igcm_no2,
    10481047     &                      mmol
     1048      use param_v4_h, only: radio,gg,masa,kboltzman,n_avog
     1049
    10491050      implicit none
    10501051
    10511052
    10521053c     common variables and constants
    1053       include "dimensions.h"
    1054       include "dimphys.h"
    1055 !      include "tracer.h"
    1056       include 'param.h'
    1057       include 'param_v4.h'
    10581054      include 'callkeys.h'
    10591055
     
    10661062c     input and output variables
    10671063
    1068       integer    ig
     1064      integer    ig,nlayer
    10691065      integer    chemthermod
    10701066      integer    nesptherm                      !# of species undergoing chemistry, input
    1071       real       rm(nlayermx,nesptherm)         !densities (cm-3), input
    1072       real       tx(nlayermx)                   !temperature profile, input
    1073       real       iz(nlayermx+1)                 !height profile, input
     1067      real       rm(nlayer,nesptherm)         !densities (cm-3), input
     1068      real       tx(nlayer)                   !temperature profile, input
     1069      real       iz(nlayer+1)                 !height profile, input
    10741070      real       zenit                          !SZA, input
    1075       real       co2colx(nlayermx)              !column density of CO2 (cm^-2), output
    1076       real       o2colx(nlayermx)               !column density of O2(cm^-2), output
    1077       real       o3pcolx(nlayermx)              !column density of O(3P)(cm^-2), output
    1078       real       h2colx(nlayermx)               !H2 column density (cm-2), output
    1079       real       h2ocolx(nlayermx)              !H2O column density (cm-2), output
    1080       real       h2o2colx(nlayermx)             !column density of H2O2(cm^-2), output
    1081       real       o3colx(nlayermx)               !O3 column density (cm-2), output
    1082       real       n2colx(nlayermx)               !N2 column density (cm-2), output
    1083       real       ncolx(nlayermx)                !N column density (cm-2), output
    1084       real       nocolx(nlayermx)               !NO column density (cm-2), output
    1085       real       cocolx(nlayermx)               !CO column density (cm-2), output
    1086       real       hcolx(nlayermx)                !H column density (cm-2), output
    1087       real       no2colx(nlayermx)              !NO2 column density (cm-2), output
    1088      
     1071      real       co2colx(nlayer)              !column density of CO2 (cm^-2), output
     1072      real       o2colx(nlayer)               !column density of O2(cm^-2), output
     1073      real       o3pcolx(nlayer)              !column density of O(3P)(cm^-2), output
     1074      real       h2colx(nlayer)               !H2 column density (cm-2), output
     1075      real       h2ocolx(nlayer)              !H2O column density (cm-2), output
     1076      real       h2o2colx(nlayer)             !column density of H2O2(cm^-2), output
     1077      real       o3colx(nlayer)               !O3 column density (cm-2), output
     1078      real       n2colx(nlayer)               !N2 column density (cm-2), output
     1079      real       ncolx(nlayer)                !N column density (cm-2), output
     1080      real       nocolx(nlayer)               !NO column density (cm-2), output
     1081      real       cocolx(nlayer)               !CO column density (cm-2), output
     1082      real       hcolx(nlayer)                !H column density (cm-2), output
     1083      real       no2colx(nlayer)              !NO2 column density (cm-2), output
     1084
    10891085
    10901086c     local variables
    10911087
    10921088      real       xx
    1093       real       grav(nlayermx)
     1089      real       grav(nlayer)
    10941090      real       Hco2,Ho3p,Ho2,Hh2,Hh2o,Hh2o2
    10951091      real       Ho3,Hn2,Hn,Hno,Hco,Hh,Hno2
    10961092
    1097       real       co2x(nlayermx)
    1098       real       o2x(nlayermx)
    1099       real       o3px(nlayermx)
    1100       real       cox(nlayermx)
    1101       real       hx(nlayermx)
    1102       real       h2x(nlayermx)
    1103       real       h2ox(nlayermx)
    1104       real       h2o2x(nlayermx)
    1105       real       o3x(nlayermx)
    1106       real       n2x(nlayermx)
    1107       real       nx(nlayermx)
    1108       real       nox(nlayermx)
    1109       real       no2x(nlayermx)
     1093      real       co2x(nlayer)
     1094      real       o2x(nlayer)
     1095      real       o3px(nlayer)
     1096      real       cox(nlayer)
     1097      real       hx(nlayer)
     1098      real       h2x(nlayer)
     1099      real       h2ox(nlayer)
     1100      real       h2o2x(nlayer)
     1101      real       o3x(nlayer)
     1102      real       n2x(nlayer)
     1103      real       nx(nlayer)
     1104      real       nox(nlayer)
     1105      real       no2x(nlayer)
    11101106
    11111107      integer    i,j,k,icol,indexint          !indexes
     
    11171113
    11181114      integer    jj
    1119       real*8      esp(nlayermx*2)
    1120       real*8      ilayesp(nlayermx*2)
    1121       real*8      szalayesp(nlayermx*2)
     1115      real*8      esp(nlayer*2)
     1116      real*8      ilayesp(nlayer*2)
     1117      real*8      szalayesp(nlayer*2)
    11221118      integer     nlayesp
    11231119      real*8      zmini
     
    11491145c*************************PROGRAM STARTS*******************************
    11501146
    1151       nz3 = nlayermx*2
    1152       do i=1,nlayermx
     1147      nz3 = nlayer*2
     1148      do i=1,nlayer
    11531149         xx = ( radio + iz(i) ) * 1.e5
    11541150         grav(i) = gg * masa /(xx**2)
     
    11561152
    11571153      !Scale heights
    1158       xx = kboltzman * tx(nlayermx) * n_avog / grav(nlayermx)
     1154      xx = kboltzman * tx(nlayer) * n_avog / grav(nlayer)
    11591155      Ho3p  = xx / mmol(igcm_o)
    11601156      Hco2  = xx / mmol(igcm_co2)
     
    11761172      endif
    11771173      ! first loop in altitude : initialisation
    1178       do i=nlayermx,1,-1
     1174      do i=nlayer,1,-1
    11791175         !Column initialisation
    11801176         co2colx(i)  = 0.
     
    12121208      enddo
    12131209      ! second loop in altitude : column calculations
    1214       do i=nlayermx,1,-1
     1210      do i=nlayer,1,-1
    12151211         !Routine to calculate the geometrical length of each layer
    1216          call espesor_optico_A(ig,i,zenit,iz(i),nz3,iz,esp,ilayesp,
    1217      $         szalayesp,nlayesp, zmini)
     1212         call espesor_optico_A(ig,i,nlayer,zenit,iz(i),nz3,iz,esp,
     1213     $         ilayesp,szalayesp,nlayesp, zmini)
    12181214         if(ilayesp(nlayesp).eq.-1) then
    12191215            co2colx(i)=1.e25
     
    12311227            no2colx(i)=1.e25
    12321228         else
    1233             rcmnz = ( radio + iz(nlayermx) ) * 1.e5
     1229            rcmnz = ( radio + iz(nlayer) ) * 1.e5
    12341230            rcmmini = ( radio + zmini ) * 1.e5
    12351231            !Column calculation taking into account the geometrical depth
     
    12381234               jj=ilayesp(j)
    12391235               !Top layer
    1240                if(jj.eq.nlayermx) then
     1236               if(jj.eq.nlayer) then
    12411237                  if(zenit.le.60.) then
    1242                      o3pcolx(i)=o3pcolx(i)+o3px(nlayermx)*Ho3p*esp(j)
     1238                     o3pcolx(i)=o3pcolx(i)+o3px(nlayer)*Ho3p*esp(j)
    12431239     $                    *1.e-5
    1244                      co2colx(i)=co2colx(i)+co2x(nlayermx)*Hco2*esp(j)
     1240                     co2colx(i)=co2colx(i)+co2x(nlayer)*Hco2*esp(j)
    12451241     $                    *1.e-5
    12461242                     h2o2colx(i)=h2o2colx(i)+
    1247      $                    h2o2x(nlayermx)*Hh2o2*esp(j)*1.e-5
    1248                      o2colx(i)=o2colx(i)+o2x(nlayermx)*Ho2*esp(j)
     1243     $                    h2o2x(nlayer)*Hh2o2*esp(j)*1.e-5
     1244                     o2colx(i)=o2colx(i)+o2x(nlayer)*Ho2*esp(j)
    12491245     $                    *1.e-5
    1250                      h2colx(i)=h2colx(i)+h2x(nlayermx)*Hh2*esp(j)
     1246                     h2colx(i)=h2colx(i)+h2x(nlayer)*Hh2*esp(j)
    12511247     $                    *1.e-5
    1252                      h2ocolx(i)=h2ocolx(i)+h2ox(nlayermx)*Hh2o*esp(j)
     1248                     h2ocolx(i)=h2ocolx(i)+h2ox(nlayer)*Hh2o*esp(j)
    12531249     $                    *1.e-5                     
    1254                      cocolx(i)=cocolx(i)+cox(nlayermx)*Hco*esp(j)
     1250                     cocolx(i)=cocolx(i)+cox(nlayer)*Hco*esp(j)
    12551251     $                    *1.e-5
    1256                      hcolx(i)=hcolx(i)+hx(nlayermx)*Hh*esp(j)
     1252                     hcolx(i)=hcolx(i)+hx(nlayer)*Hh*esp(j)
    12571253     $                    *1.e-5
    12581254                     !Only if O3 chemistry required
    12591255                     if(chemthermod.ge.1) o3colx(i)=
    1260      $                    o3colx(i)+o3x(nlayermx)*Ho3*esp(j)
     1256     $                    o3colx(i)+o3x(nlayer)*Ho3*esp(j)
    12611257     $                    *1.e-5
    12621258                     !Only if N or ion chemistry requested
    12631259                     if(chemthermod.ge.2) then
    1264                         n2colx(i)=n2colx(i)+n2x(nlayermx)*Hn2*esp(j)
     1260                        n2colx(i)=n2colx(i)+n2x(nlayer)*Hn2*esp(j)
    12651261     $                    *1.e-5
    1266                         ncolx(i)=ncolx(i)+nx(nlayermx)*Hn*esp(j)
     1262                        ncolx(i)=ncolx(i)+nx(nlayer)*Hn*esp(j)
    12671263     $                       *1.e-5
    1268                         nocolx(i)=nocolx(i)+nox(nlayermx)*Hno*esp(j)
     1264                        nocolx(i)=nocolx(i)+nox(nlayer)*Hno*esp(j)
    12691265     $                       *1.e-5
    1270                         no2colx(i)=no2colx(i)+no2x(nlayermx)*Hno2*esp(j)
     1266                        no2colx(i)=no2colx(i)+no2x(nlayer)*Hno2*esp(j)
    12711267     $                       *1.e-5
    12721268                     endif
     
    12901286                        espno2=sqrt((rcmnz+Hno2)**2-rcmmini**2)- esp(j)
    12911287                     endif
    1292                      co2colx(i) = co2colx(i) + espco2*co2x(nlayermx)
    1293                      o2colx(i)  = o2colx(i)  + espo2*o2x(nlayermx)
    1294                      o3pcolx(i) = o3pcolx(i) + espo3p*o3px(nlayermx)
    1295                      h2colx(i)  = h2colx(i)  + esph2*h2x(nlayermx)
    1296                      h2ocolx(i) = h2ocolx(i) + esph2o*h2ox(nlayermx)
    1297                      h2o2colx(i)= h2o2colx(i)+ esph2o2*h2o2x(nlayermx)
    1298                      cocolx(i)  = cocolx(i)  + espco*cox(nlayermx)
    1299                      hcolx(i)   = hcolx(i)   + esph*hx(nlayermx)
     1288                     co2colx(i) = co2colx(i) + espco2*co2x(nlayer)
     1289                     o2colx(i)  = o2colx(i)  + espo2*o2x(nlayer)
     1290                     o3pcolx(i) = o3pcolx(i) + espo3p*o3px(nlayer)
     1291                     h2colx(i)  = h2colx(i)  + esph2*h2x(nlayer)
     1292                     h2ocolx(i) = h2ocolx(i) + esph2o*h2ox(nlayer)
     1293                     h2o2colx(i)= h2o2colx(i)+ esph2o2*h2o2x(nlayer)
     1294                     cocolx(i)  = cocolx(i)  + espco*cox(nlayer)
     1295                     hcolx(i)   = hcolx(i)   + esph*hx(nlayer)
    13001296                     !Only if O3 chemistry required
    13011297                     if(chemthermod.ge.1)                     
    1302      $                  o3colx(i) = o3colx(i)  + espo3*o3x(nlayermx)
     1298     $                  o3colx(i) = o3colx(i)  + espo3*o3x(nlayer)
    13031299                     !Only if N or ion chemistry requested
    13041300                     if(chemthermod.ge.2) then
    1305                         n2colx(i)  = n2colx(i)  + espn2*n2x(nlayermx)
    1306                         ncolx(i)   = ncolx(i)   + espn*nx(nlayermx)
    1307                         nocolx(i)  = nocolx(i)  + espno*nox(nlayermx)
    1308                         no2colx(i) = no2colx(i) + espno2*no2x(nlayermx)
     1301                        n2colx(i)  = n2colx(i)  + espn2*n2x(nlayer)
     1302                        ncolx(i)   = ncolx(i)   + espn*nx(nlayer)
     1303                        nocolx(i)  = nocolx(i)  + espno*nox(nlayer)
     1304                        no2colx(i) = no2colx(i) + espno2*no2x(nlayer)
    13091305                     endif
    13101306                  endif !Of if zenit.lt.60
     
    13421338     $                    esp(j) * (no2x(jj)+no2x(jj+1)) / 2.
    13431339                  endif
    1344                endif  !Of if jj.eq.nlayermx
     1340               endif  !Of if jj.eq.nlayer
    13451341            end do    !Of do j=1,nlayesp
    13461342         endif        !Of ilayesp(nlayesp).eq.-1
    1347 
    1348       enddo           !Of do i=nlayermx,1,-1
     1343      enddo           !Of do i=nlayer,1,-1
    13491344
    13501345
     
    13941389c**********************************************************************
    13951390
    1396       subroutine espesor_optico_A (ig,capa, szadeg,z,
     1391      subroutine espesor_optico_A (ig,capa,nlayer, szadeg,z,
    13971392     @                   nz3,iz,esp,ilayesp,szalayesp,nlayesp, zmini)
    13981393
     
    14021397*************************************************************************
    14031398
     1399      use param_v4_h, only: radio
    14041400      implicit none
    1405 
    1406 
    1407 c     common variables and constants
    1408 
    1409       include "dimensions.h"
    1410       include "dimphys.h"
    1411       include 'param.h'
    1412       include 'param_v4.h'
    14131401
    14141402c     arguments
     
    14161404      real        szadeg                ! I. SZA [rad]
    14171405      real        z                     ! I. altitude of interest [km]
    1418       integer     nz3,ig                   ! I. dimension of esp, ylayesp, etc...
    1419                                         !  (=2*nlayermx= max# of layers in ray path)
    1420       real     iz(nlayermx+1)              ! I. Altitude of each layer
     1406      integer     nz3,ig,nlayer         ! I. dimension of esp, ylayesp, etc...
     1407                                        !  (=2*nlayer= max# of layers in ray path)
     1408      real     iz(nlayer+1)              ! I. Altitude of each layer
    14211409      real*8        esp(nz3)            ! O. layer widths after geometrically
    14221410                                        !    amplified; in [cm] except at TOA
     
    14351423        real*8      szarad                ! SZA [deg]
    14361424        real*8      zz
    1437         real*8      diz(nlayermx+1)
     1425        real*8      diz(nlayer+1)
    14381426        real*8      rkmnz                 ! distance TOA to center of Planet [km]
    14391427        real*8      rkmmini               ! distance zmini to center of P [km]
     
    14481436        szarad = dble(szadeg)*3.141592d0/180.d0
    14491437        zz=dble(z)
    1450         do i=1,nlayermx
     1438        do i=1,nlayer
    14511439           diz(i)=dble(iz(i))
    14521440        enddo
     
    14661454
    14671455           zmini = zz
    1468            if(abs(zz-diz(nlayermx)).lt.1.d-3) goto 1357
     1456           if(abs(zz-diz(nlayer)).lt.1.d-3) goto 1357
    14691457           ! 1st Zone: Upper part of ray
    14701458           !
    1471            do j=grid_R8(zz,diz,nlayermx),nlayermx-1
     1459           do j=grid_R8(zz,diz,nlayer),nlayer-1
    14721460             nlayesp = nlayesp + 1
    14731461             ilayesp(nlayesp) = j
     
    14811469 1357      continue
    14821470           nlayesp = nlayesp + 1
    1483            ilayesp(nlayesp) = nlayermx
     1471           ilayesp(nlayesp) = nlayer
    14841472           esp(nlayesp) = 1.d0 / cos(szarad)         ! aux. non-dimens. factor
    14851473           szalayesp(nlayesp) = szadeg
     
    14981486           rkmmini = radio + zmini
    14991487
    1500            if(abs(zz-diz(nlayermx)).lt.1.d-4) goto 1470
     1488           if(abs(zz-diz(nlayer)).lt.1.d-4) goto 1470
    15011489
    15021490           ! 1st Zone: Upper part of ray
    15031491           !
    1504            do j=grid_R8(zz,diz,nlayermx),nlayermx-1
     1492           do j=grid_R8(zz,diz,nlayer),nlayer-1
    15051493              nlayesp = nlayesp + 1
    15061494              ilayesp(nlayesp) = j
     
    15171505           !
    15181506           nlayesp = nlayesp + 1
    1519            ilayesp(nlayesp) = nlayermx
    1520            rkmnz = radio+diz(nlayermx)
     1507           ilayesp(nlayesp) = nlayer
     1508           rkmnz = radio+diz(nlayer)
    15211509           esp(nlayesp)  =  sqrt( rkmnz**2 - rkmmini**2 )       ! aux.factor[km]
    15221510           esp(nlayesp)  =  esp(nlayesp) * 1.d5                 ! aux.f. [cm]
     
    15491537
    15501538           else
    1551               jmin=grid_R8(zmini,diz,nlayermx)+1
     1539              jmin=grid_R8(zmini,diz,nlayer)+1
    15521540              !Correction for possible rounding errors when SZA very close
    15531541              !to 90 degrees
    1554               if(jmin.gt.grid_R8(zz,diz,nlayermx)) then
     1542              if(jmin.gt.grid_R8(zz,diz,nlayer)) then
    15551543                 write(*,*)'jthermcalc warning: possible rounding error'
    15561544                 write(*,*)'point,sza,layer:',ig,szadeg,capa
    1557                  jmin=grid_R8(zz,diz,nlayermx)
     1545                 jmin=grid_R8(zz,diz,nlayer)
    15581546              endif
    15591547
    1560               if(abs(zz-diz(nlayermx)).lt.1.d-4) goto 9876
     1548              if(abs(zz-diz(nlayer)).lt.1.d-4) goto 9876
    15611549
    15621550              ! 1st Zone: Upper part of ray
    15631551              !
    1564               do j=grid_R8(zz,diz,nlayermx),nlayermx-1
     1552              do j=grid_R8(zz,diz,nlayer),nlayer-1
    15651553                nlayesp = nlayesp + 1
    15661554                ilayesp(nlayesp) = j
     
    15781566              !
    15791567              nlayesp = nlayesp + 1
    1580               ilayesp(nlayesp) = nlayermx
    1581               rkmnz = radio+diz(nlayermx)
     1568              ilayesp(nlayesp) = nlayer
     1569              rkmnz = radio+diz(nlayer)
    15821570              esp(nlayesp) =  sqrt( rkmnz**2 - rkmmini**2 )      !aux.factor[km]
    15831571              esp(nlayesp) = esp(nlayesp) * 1.d5                 !aux.f.[cm]
     
    16011589              ! 4th zone: Lower part of ray, increasing from zmin to z
    16021590              !    ( layers with SZA < 90 deg )
    1603               do j=jmin,grid_R8(zz,diz,nlayermx)-1
     1591              do j=jmin,grid_R8(zz,diz,nlayer)-1
    16041592                nlayesp = nlayesp + 1
    16051593                ilayesp(nlayesp) = j
     
    16151603              ! 5th zone: Lower part of ray, decreasing from z to zmin
    16161604              !    ( layers with SZA > 90 deg )
    1617               do j=grid_R8(zz,diz,nlayermx)-1, jmin, -1
     1605              do j=grid_R8(zz,diz,nlayer)-1, jmin, -1
    16181606                nlayesp = nlayesp + 1
    16191607                ilayesp(nlayesp) = j
     
    17211709
    17221710      use comsaison_h, only: dist_sol
     1711      use param_v4_h, only: ninter,
     1712     .                      fluxtop, ct1, ct2, p1, p2
    17231713      implicit none
    17241714
    17251715
    17261716!     common variables and constants
    1727       include "dimensions.h"
    1728       include "dimphys.h"
    1729 !      include "comsaison.h"
    1730       include 'param.h'
    1731       include 'param_v4.h'
    17321717      include "callkeys.h"
    17331718
  • trunk/LMDZ.MARS/libf/aeronomars/jthermcalc_e107.F

    r762 r1266  
    22
    33      subroutine jthermcalc_e107
    4      $     (ig,chemthermod,rm,nesptherm,tx,iz,zenit,zday)
     4     $     (ig,nlayer,chemthermod,rm,nesptherm,tx,iz,zenit,zday)
    55
    66
     
    1212c**********************************************************************
    1313
     14      use param_v4_h, only: jfotsout,crscabsi2,
     15     .    c1_16,c17_24,c25_29,c30_31,c32,c33,c34,c35,c36,
     16     .    co2crsc195,co2crsc295,t0,
     17     .    jabsifotsintpar,ninter,nz2,
     18     .    nabs,e107,date_e107,e107_tab,
     19     .    coefit0,coefit1,coefit2,coefit3,coefit4
     20
    1421      implicit none
    1522
    16 c     common variables and constants
    17       include "dimensions.h"
    18       include "dimphys.h"
    19       include 'param.h'
    20       include 'param_v4.h'
    21 
    2223c     input and output variables
    2324
    24       integer    ig
     25      integer    ig,nlayer
    2526      integer    chemthermod
    2627      integer    nesptherm                      !Number of species considered
    27       real       rm(nlayermx,nesptherm)         !Densities (cm-3)
    28       real       tx(nlayermx)                   !temperature
     28      real       rm(nlayer,nesptherm)         !Densities (cm-3)
     29      real       tx(nlayer)                   !temperature
    2930      real       zenit                          !SZA
    30       real       iz(nlayermx)                   !Local altitude
     31      real       iz(nlayer)                   !Local altitude
    3132      real       zday                           !Martian day after Ls=0
    3233
     
    3435c    local parameters and variables
    3536
    36       real       co2colx(nlayermx)              !column density of CO2 (cm^-2)
    37       real       o2colx(nlayermx)               !column density of O2(cm^-2)
    38       real       o3pcolx(nlayermx)              !column density of O(3P)(cm^-2)
    39       real       h2colx(nlayermx)               !H2 column density (cm-2)
    40       real       h2ocolx(nlayermx)              !H2O column density (cm-2)
    41       real       h2o2colx(nlayermx)             !column density of H2O2(cm^-2)
    42       real       o3colx(nlayermx)               !O3 column density (cm-2)
    43       real       n2colx(nlayermx)               !N2 column density (cm-2)
    44       real       ncolx(nlayermx)                !N column density (cm-2)
    45       real       nocolx(nlayermx)               !NO column density (cm-2)
    46       real       cocolx(nlayermx)               !CO column density (cm-2)
    47       real       hcolx(nlayermx)                !H column density (cm-2)
    48       real       no2colx(nlayermx)              !NO2 column density (cm-2)
    49       real       t2(nlayermx)
    50       real       coltemp(nlayermx)
    51       real       sigma(ninter,nlayermx)
    52       real       alfa(ninter,nlayermx)
     37      real       co2colx(nlayer)              !column density of CO2 (cm^-2)
     38      real       o2colx(nlayer)               !column density of O2(cm^-2)
     39      real       o3pcolx(nlayer)              !column density of O(3P)(cm^-2)
     40      real       h2colx(nlayer)               !H2 column density (cm-2)
     41      real       h2ocolx(nlayer)              !H2O column density (cm-2)
     42      real       h2o2colx(nlayer)             !column density of H2O2(cm^-2)
     43      real       o3colx(nlayer)               !O3 column density (cm-2)
     44      real       n2colx(nlayer)               !N2 column density (cm-2)
     45      real       ncolx(nlayer)                !N column density (cm-2)
     46      real       nocolx(nlayer)               !NO column density (cm-2)
     47      real       cocolx(nlayer)               !CO column density (cm-2)
     48      real       hcolx(nlayer)                !H column density (cm-2)
     49      real       no2colx(nlayer)              !NO2 column density (cm-2)
     50      real       t2(nlayer)
     51      real       coltemp(nlayer)
     52      real       sigma(ninter,nlayer)
     53      real       alfa(ninter,nlayer)
    5354      real       realday
    5455     
     
    7576      real*8      auxjh(nz2)
    7677      real*8      auxjno2(nz2)
    77       real*8      wp(nlayermx),wm(nlayermx)
    78       real*8      auxcolinp(nlayermx)
    79       integer     auxind(nlayermx)
     78      real*8      wp(nlayer),wm(nlayer)
     79      real*8      auxcolinp(nlayer)
     80      integer     auxind(nlayer)
    8081      integer     auxi
    8182      integer     ind
    82       real*8      cortemp(nlayermx)
     83      real*8      cortemp(nlayer)
    8384
    8485      real*8      limdown                      !limits for interpolation
     
    106107      !Auxiliar temperature to take into account the temperature dependence
    107108      !of CO2 cross section
    108       do i=1,nlayermx
     109      do i=1,nlayer
    109110         t2(i)=tx(i)
    110111         if(t2(i).lt.195.0) t2(i)=195.0
     
    113114
    114115      !Calculation of column amounts
    115       call column(ig,chemthermod,rm,nesptherm,tx,iz,zenit,
     116      call column(ig,nlayer,chemthermod,rm,nesptherm,tx,iz,zenit,
    116117     $     co2colx,o2colx,o3pcolx,h2colx,h2ocolx,
    117118     $     h2o2colx,o3colx,n2colx,ncolx,nocolx,cocolx,hcolx,no2colx)
     
    119120      !Auxiliar column to include the temperature dependence
    120121      !of CO2 cross section
    121       coltemp(nlayermx)=co2colx(nlayermx)*abs(t2(nlayermx)-t0(nlayermx))
    122       do i=nlayermx-1,1,-1
     122      coltemp(nlayer)=co2colx(nlayer)*abs(t2(nlayer)-t0(nlayer))
     123      do i=nlayer-1,1,-1
    123124        coltemp(i)=!coltemp(i+1)+     PQ SE ELIMINA? REVISAR
    124125     $         ( rm(i,i_co2) + rm(i+1,i_co2) ) * 0.5
     
    127128     
    128129      !Calculation of CO2 cross section at temperature t0(i)
    129       do i=1,nlayermx
     130      do i=1,nlayer
    130131         do indexint=24,32
    131132           sigma(indexint,i)=co2crsc195(indexint-23)
     
    157158      do j=1,nabs
    158159         do indexint=1,ninter
    159             jfotsout(indexint,j,nlayermx)=coefit0(indexint,j)+
     160            jfotsout(indexint,j,nlayer)=coefit0(indexint,j)+
    160161     $           coefit1(indexint,j)*e107+coefit2(indexint,j)*e107**2+
    161162     $           coefit3(indexint,j)*e107**3+coefit4(indexint,j)*e107**4
     
    179180c     Input atmospheric column
    180181      indexint=1
    181       do i=1,nlayermx
    182          auxcolinp(nlayermx-i+1) = co2colx(i)*crscabsi2(1,indexint) +
     182      do i=1,nlayer
     183         auxcolinp(nlayer-i+1) = co2colx(i)*crscabsi2(1,indexint) +
    183184     $        o2colx(i)*crscabsi2(2,indexint) +
    184185     $        o3pcolx(i)*crscabsi2(3,indexint) +
     
    214215
    215216      call interfast
    216      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    217       do i=1,nlayermx
     217     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     218      do i=1,nlayer
    218219         ind=auxind(i)
    219          auxi=nlayermx-i+1
     220         auxi=nlayer-i+1
    220221         !CO2 interpolated coefficient
    221          jfotsout(indexint,1,auxi) = jfotsout(indexint,1,nlayermx) *
     222         jfotsout(indexint,1,auxi) = jfotsout(indexint,1,nlayer) *
    222223     $        (wm(i)*auxjco2(ind+1) + wp(i)*auxjco2(ind))
    223224         !O2 interpolated coefficient
    224          jfotsout(indexint,2,auxi) = jfotsout(indexint,2,nlayermx) *
     225         jfotsout(indexint,2,auxi) = jfotsout(indexint,2,nlayer) *
    225226     $        (wm(i)*auxjo2(ind+1) + wp(i)*auxjo2(ind))
    226227         !O3p interpolated coefficient
    227          jfotsout(indexint,3,auxi) = jfotsout(indexint,3,nlayermx) *
     228         jfotsout(indexint,3,auxi) = jfotsout(indexint,3,nlayer) *
    228229     $        (wm(i)*auxjo3p(ind+1) + wp(i)*auxjo3p(ind))
    229230         !H2 interpolated coefficient
     
    234235      !N interpolated coefficient
    235236      if(chemthermod.ge.2) then
    236          do i=1,nlayermx
     237         do i=1,nlayer
    237238            ind=auxind(i)
    238             jfotsout(indexint,9,nlayermx-i+1) = 
    239      $           jfotsout(indexint,9,nlayermx) *
     239            jfotsout(indexint,9,nlayer-i+1) = 
     240     $           jfotsout(indexint,9,nlayer) *
    240241     $           (wm(i)*auxjn(ind+1) + wp(i)*auxjn(ind))
    241242         enddo
     
    256257c     Input atmospheric column
    257258      do indexint=2,15
    258          do i=1,nlayermx
    259             auxcolinp(nlayermx-i+1) = co2colx(i)*crscabsi2(1,indexint)+
     259         do i=1,nlayer
     260            auxcolinp(nlayer-i+1) = co2colx(i)*crscabsi2(1,indexint)+
    260261     $           o2colx(i)*crscabsi2(2,indexint)+
    261262     $           o3pcolx(i)*crscabsi2(3,indexint)+
     
    303304         endif
    304305
    305           call interfast(wm,wp,auxind,auxcolinp,nlayermx,
     306          call interfast(wm,wp,auxind,auxcolinp,nlayer,
    306307     $        auxcoltab,nz2,limdown,limup)
    307           do i=1,nlayermx
     308          do i=1,nlayer
    308309             ind=auxind(i)
    309              auxi = nlayermx-i+1
     310             auxi = nlayer-i+1
    310311             !O2 interpolated coefficient
    311312             jfotsout(indexint,2,auxi) =
    312      $            jfotsout(indexint,2,nlayermx) *
     313     $            jfotsout(indexint,2,nlayer) *
    313314     $            (wm(i)*auxjo2(ind+1) + wp(i)*auxjo2(ind))
    314315             !O3p interpolated coefficient
    315316             jfotsout(indexint,3,auxi) =
    316      $            jfotsout(indexint,3,nlayermx) *
     317     $            jfotsout(indexint,3,nlayer) *
    317318     $            (wm(i)*auxjo3p(ind+1) + wp(i)*auxjo3p(ind))
    318319             !CO2 interpolated coefficient
    319320             jfotsout(indexint,1,auxi) =
    320      $            jfotsout(indexint,1,nlayermx) *
     321     $            jfotsout(indexint,1,nlayer) *
    321322     $            (wm(i)*auxjco2(ind+1) + wp(i)*auxjco2(ind))
    322323             !H2 interpolated coefficient
    323324             jfotsout(indexint,5,auxi) =
    324      $            jfotsout(indexint,5,nlayermx) *
     325     $            jfotsout(indexint,5,nlayer) *
    325326     $            (wm(i)*auxjh2(ind+1) + wp(i)*auxjh2(ind))
    326327             !N2 interpolated coefficient
    327328             jfotsout(indexint,8,auxi) =
    328      $            jfotsout(indexint,8,nlayermx) *
     329     $            jfotsout(indexint,8,nlayer) *
    329330     $            (wm(i)*auxjn2(ind+1) + wp(i)*auxjn2(ind))
    330331             !CO interpolated coefficient
    331332             jfotsout(indexint,11,auxi) =
    332      $            jfotsout(indexint,11,nlayermx) *
     333     $            jfotsout(indexint,11,nlayer) *
    333334     $            (wm(i)*auxjco(ind+1) + wp(i)*auxjco(ind))
    334335             !H interpolated coefficient
    335336             jfotsout(indexint,12,auxi) =
    336      $            jfotsout(indexint,12,nlayermx) *
     337     $            jfotsout(indexint,12,nlayer) *
    337338     $            (wm(i)*auxjh(ind+1) + wp(i)*auxjh(ind))
    338339          enddo
    339340          !Only if chemthermod.ge.2
    340341          if(chemthermod.ge.2) then
    341              do i=1,nlayermx
     342             do i=1,nlayer
    342343                ind=auxind(i)
    343                 auxi = nlayermx-i+1
     344                auxi = nlayer-i+1
    344345                !N interpolated coefficient
    345346                jfotsout(indexint,9,auxi) =
    346      $               jfotsout(indexint,9,nlayermx) *
     347     $               jfotsout(indexint,9,nlayer) *
    347348     $               (wm(i)*auxjn(ind+1) + wp(i)*auxjn(ind))
    348349                !NO interpolated coefficient
    349350                jfotsout(indexint,10,auxi)=
    350      $               jfotsout(indexint,10,nlayermx) *
     351     $               jfotsout(indexint,10,nlayer) *
    351352     $               (wm(i)*auxjno(ind+1) + wp(i)*auxjno(ind))
    352353                !NO2 interpolated coefficient
    353354                jfotsout(indexint,13,auxi)=
    354      $               jfotsout(indexint,13,nlayermx) *
     355     $               jfotsout(indexint,13,nlayer) *
    355356     $               (wm(i)*auxjno2(ind+1) + wp(i)*auxjno2(ind))
    356357             enddo
     
    371372c     Input atmospheric column
    372373      indexint=16
    373       do i=1,nlayermx
    374          auxcolinp(nlayermx-i+1) = co2colx(i)*crscabsi2(1,indexint)+
     374      do i=1,nlayer
     375         auxcolinp(nlayer-i+1) = co2colx(i)*crscabsi2(1,indexint)+
    375376     $        o2colx(i)*crscabsi2(2,indexint)+
    376377     $        o3pcolx(i)*crscabsi2(3,indexint)+
     
    418419
    419420      call interfast
    420      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    421       do i=1,nlayermx
     421     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     422      do i=1,nlayer
    422423         ind=auxind(i)
    423          auxi = nlayermx-i+1
     424         auxi = nlayer-i+1
    424425         !O2 interpolated coefficient
    425          jfotsout(indexint,2,auxi) = jfotsout(indexint,2,nlayermx) *
     426         jfotsout(indexint,2,auxi) = jfotsout(indexint,2,nlayer) *
    426427     $        (wm(i)*auxjo2(ind+1) + wp(i)*auxjo2(ind))
    427428         !CO2 interpolated coefficient
    428          jfotsout(indexint,1,auxi) = jfotsout(indexint,1,nlayermx) *
     429         jfotsout(indexint,1,auxi) = jfotsout(indexint,1,nlayer) *
    429430     $        (wm(i)*auxjco2(ind+1) + wp(i)*auxjco2(ind))
    430431         !O3p interpolated coefficient
    431          jfotsout(indexint,3,auxi) = jfotsout(indexint,3,nlayermx) *
     432         jfotsout(indexint,3,auxi) = jfotsout(indexint,3,nlayer) *
    432433     $        (wm(i)*auxjo3p(ind+1) + wp(i)*auxjo3p(ind))
    433434         !N2 interpolated coefficient
    434          jfotsout(indexint,8,auxi) = jfotsout(indexint,8,nlayermx) *
     435         jfotsout(indexint,8,auxi) = jfotsout(indexint,8,nlayer) *
    435436     $        (wm(i)*auxjn2(ind+1) + wp(i)*auxjn2(ind))
    436437         !CO interpolated coefficient
    437438         jfotsout(indexint,11,auxi) =
    438      $        jfotsout(indexint,11,nlayermx) *
     439     $        jfotsout(indexint,11,nlayer) *
    439440     $        (wm(i)*auxjco(ind+1) + wp(i)*auxjco(ind))
    440441         !H interpolated coefficient
    441442         jfotsout(indexint,12,auxi) =
    442      $        jfotsout(indexint,12,nlayermx) *
     443     $        jfotsout(indexint,12,nlayer) *
    443444     $        (wm(i)*auxjh(ind+1) + wp(i)*auxjh(ind))
    444445      enddo
    445446      !Only if chemthermod.ge.2
    446447      if(chemthermod.ge.2) then
    447          do i=1,nlayermx
     448         do i=1,nlayer
    448449            ind=auxind(i)
    449             auxi = nlayermx-i+1
     450            auxi = nlayer-i+1
    450451            !N interpolated coefficient
    451452            jfotsout(indexint,9,auxi) =
    452      $           jfotsout(indexint,9,nlayermx) *
     453     $           jfotsout(indexint,9,nlayer) *
    453454     $           (wm(i)*auxjn(ind+1) + wp(i)*auxjn(ind))
    454455            !NO interpolated coefficient
    455456            jfotsout(indexint,10,auxi) =
    456      $           jfotsout(indexint,10,nlayermx) *
     457     $           jfotsout(indexint,10,nlayer) *
    457458     $           (wm(i)*auxjno(ind+1) + wp(i)*auxjno(ind))
    458459            !NO2 interpolated coefficient
    459460            jfotsout(indexint,13,auxi) =
    460      $           jfotsout(indexint,13,nlayermx) *
     461     $           jfotsout(indexint,13,nlayer) *
    461462     $           (wm(i)*auxjno2(ind+1) + wp(i)*auxjno2(ind))
    462463         enddo
     
    474475c     Input column
    475476
    476       do i=1,nlayermx
    477          auxcolinp(nlayermx-i+1) = co2colx(i) + o2colx(i) + n2colx(i) +
     477      do i=1,nlayer
     478         auxcolinp(nlayer-i+1) = co2colx(i) + o2colx(i) + n2colx(i) +
    478479     $        nocolx(i) + cocolx(i) + no2colx(i)
    479480      end do
     
    508509
    509510         call interfast
    510      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
     511     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
    511512         !Correction to include T variation of CO2 cross section
    512513         if(indexint.eq.24) then
    513             do i=1,nlayermx
    514                auxi = nlayermx-i+1
     514            do i=1,nlayer
     515               auxi = nlayer-i+1
    515516               if(sigma(indexint,auxi)*
    516517     $              alfa(indexint,auxi)*coltemp(auxi)
     
    523524            enddo
    524525         else
    525             do i=1,nlayermx
     526            do i=1,nlayer
    526527               cortemp(i)=1.
    527528            enddo
    528529         end if
    529          do i=1,nlayermx           
     530         do i=1,nlayer           
    530531            ind=auxind(i)
    531             auxi = nlayermx-i+1
     532            auxi = nlayer-i+1
    532533            !O2 interpolated coefficient
    533534            jfotsout(indexint,2,auxi) =
    534      $           jfotsout(indexint,2,nlayermx) *
     535     $           jfotsout(indexint,2,nlayer) *
    535536     $           (wm(i)*auxjo2(ind+1) + wp(i)*auxjo2(ind)) *
    536537     $           cortemp(i)
    537538            !CO2 interpolated coefficient
    538539            jfotsout(indexint,1,auxi) =
    539      $           jfotsout(indexint,1,nlayermx) *
     540     $           jfotsout(indexint,1,nlayer) *
    540541     $           (wm(i)*auxjco2(ind+1) + wp(i)*auxjco2(ind))
    541542     $           * cortemp(i)
     
    546547            !N2 interpolated coefficient
    547548            jfotsout(indexint,8,auxi) =
    548      $           jfotsout(indexint,8,nlayermx) *
     549     $           jfotsout(indexint,8,nlayer) *
    549550     $           (wm(i)*auxjn2(ind+1) + wp(i)*auxjn2(ind)) *
    550551     $           cortemp(i)           
    551552            !CO interpolated coefficient
    552553            jfotsout(indexint,11,auxi) =
    553      $           jfotsout(indexint,11,nlayermx) *
     554     $           jfotsout(indexint,11,nlayer) *
    554555     $           (wm(i)*auxjco(ind+1) + wp(i)*auxjco(ind)) *
    555556     $           cortemp(i)           
     
    557558         !Only if chemthermod.ge.2
    558559         if(chemthermod.ge.2) then
    559             do i=1,nlayermx
     560            do i=1,nlayer
    560561               ind=auxind(i)
    561                auxi = nlayermx-i+1
     562               auxi = nlayer-i+1
    562563               !NO interpolated coefficient
    563564               jfotsout(indexint,10,auxi)=
    564      $              jfotsout(indexint,10,nlayermx) *
     565     $              jfotsout(indexint,10,nlayer) *
    565566     $              (wm(i)*auxjno(ind+1) + wp(i)*auxjno(ind)) *
    566567     $              cortemp(i)
    567568               !NO2 interpolated coefficient
    568569               jfotsout(indexint,13,auxi)=
    569      $              jfotsout(indexint,13,nlayermx) *
     570     $              jfotsout(indexint,13,nlayer) *
    570571     $              (wm(i)*auxjno2(ind+1)+ wp(i)*auxjno2(ind)) *
    571572     $              cortemp(i)
     
    586587c     Input atmospheric column
    587588
    588       do i=1,nlayermx
    589          auxcolinp(nlayermx-i+1) = co2colx(i) + o2colx(i) + h2ocolx(i) +
     589      do i=1,nlayer
     590         auxcolinp(nlayer-i+1) = co2colx(i) + o2colx(i) + h2ocolx(i) +
    590591     $        h2o2colx(i) + nocolx(i) + cocolx(i) + no2colx(i)
    591592      end do
     
    621622         endif
    622623         call interfast
    623      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    624          do i=1,nlayermx
     624     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     625         do i=1,nlayer
    625626            ind=auxind(i)
    626             auxi = nlayermx-i+1
     627            auxi = nlayer-i+1
    627628            !Correction to include T variation of CO2 cross section
    628629            if(sigma(indexint,auxi)*alfa(indexint,auxi)*
     
    635636            !CO2 interpolated coefficient
    636637            jfotsout(indexint,1,auxi) =
    637      $           jfotsout(indexint,1,nlayermx) *
     638     $           jfotsout(indexint,1,nlayer) *
    638639     $           (wm(i)*auxjco2(ind+1) + wp(i)*auxjco2(ind)) *
    639640     $           cortemp(i) *
     
    642643            !O2 interpolated coefficient
    643644            jfotsout(indexint,2,auxi) =
    644      $           jfotsout(indexint,2,nlayermx) *
     645     $           jfotsout(indexint,2,nlayer) *
    645646     $           (wm(i)*auxjo2(ind+1) + wp(i)*auxjo2(ind)) *
    646647     $           cortemp(i)
    647648            !H2O interpolated coefficient
    648649            jfotsout(indexint,4,auxi) =
    649      $           jfotsout(indexint,4,nlayermx) *
     650     $           jfotsout(indexint,4,nlayer) *
    650651     $           (wm(i)*auxjh2o(ind+1) + wp(i)*auxjh2o(ind)) *
    651652     $           cortemp(i)
    652653            !H2O2 interpolated coefficient
    653654            jfotsout(indexint,6,auxi) =
    654      $           jfotsout(indexint,6,nlayermx) *
     655     $           jfotsout(indexint,6,nlayer) *
    655656     $           (wm(i)*auxjh2o2(ind+1) + wp(i)*auxjh2o2(ind)) *
    656657     $           cortemp(i)           
    657658            !CO interpolated coefficient
    658659            jfotsout(indexint,11,auxi) =
    659      $           jfotsout(indexint,11,nlayermx) *
     660     $           jfotsout(indexint,11,nlayer) *
    660661     $           (wm(i)*auxjco(ind+1) + wp(i)*auxjco(ind)) *
    661662     $           cortemp(i)
     
    663664         !Only if chemthermod.ge.2
    664665         if(chemthermod.ge.2) then
    665             do i=1,nlayermx
     666            do i=1,nlayer
    666667               ind=auxind(i)
    667                auxi = nlayermx-i+1
     668               auxi = nlayer-i+1
    668669               !NO interpolated coefficient
    669670               jfotsout(indexint,10,auxi)=
    670      $              jfotsout(indexint,10,nlayermx) *
     671     $              jfotsout(indexint,10,nlayer) *
    671672     $              (wm(i)*auxjno(ind+1) + wp(i)*auxjno(ind)) *
    672673     $              cortemp(i)
    673674               !NO2 interpolated coefficient
    674675               jfotsout(indexint,13,auxi)=
    675      $              jfotsout(indexint,13,nlayermx) *
     676     $              jfotsout(indexint,13,nlayer) *
    676677     $              (wm(i)*auxjno2(ind+1) + wp(i)*auxjno2(ind)) *
    677678     $              cortemp(i)
     
    694695c     Input atmospheric column
    695696
    696       do i=1,nlayermx
    697          auxcolinp(nlayermx-i+1) = co2colx(i) + o2colx(i) + h2ocolx(i) +
     697      do i=1,nlayer
     698         auxcolinp(nlayer-i+1) = co2colx(i) + o2colx(i) + h2ocolx(i) +
    698699     $        h2o2colx(i) + nocolx(i) + no2colx(i)
    699700      end do
     
    728729
    729730         call interfast
    730      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    731          do i=1,nlayermx
     731     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     732         do i=1,nlayer
    732733            ind=auxind(i)
    733             auxi = nlayermx-i+1
     734            auxi = nlayer-i+1
    734735            !Correction to include T variation of CO2 cross section
    735736            if(sigma(indexint,auxi)*alfa(indexint,auxi)*
     
    742743            !CO2 interpolated coefficient
    743744            jfotsout(indexint,1,auxi) =
    744      $           jfotsout(indexint,1,nlayermx) *
     745     $           jfotsout(indexint,1,nlayer) *
    745746     $           (wm(i)*auxjco2(ind+1) + wp(i)*auxjco2(ind)) *
    746747     $           cortemp(i) *
     
    749750            !O2 interpolated coefficient
    750751            jfotsout(indexint,2,auxi) =
    751      $           jfotsout(indexint,2,nlayermx) *
     752     $           jfotsout(indexint,2,nlayer) *
    752753     $           (wm(i)*auxjo2(ind+1) + wp(i)*auxjo2(ind)) *
    753754     $           cortemp(i)
    754755            !H2O interpolated coefficient
    755756            jfotsout(indexint,4,auxi) =
    756      $           jfotsout(indexint,4,nlayermx) *
     757     $           jfotsout(indexint,4,nlayer) *
    757758     $           (wm(i)*auxjh2o(ind+1) + wp(i)*auxjh2o(ind)) *
    758759     $           cortemp(i)
    759760            !H2O2 interpolated coefficient
    760761            jfotsout(indexint,6,auxi) =
    761      $           jfotsout(indexint,6,nlayermx) *
     762     $           jfotsout(indexint,6,nlayer) *
    762763     $           (wm(i)*auxjh2o2(ind+1) + wp(i)*auxjh2o2(ind)) *
    763764     $           cortemp(i)           
     
    765766         !Only if chemthermod.ge.2
    766767         if(chemthermod.ge.2) then
    767             do i=1,nlayermx
     768            do i=1,nlayer
    768769               ind=auxind(i)
    769                auxi = nlayermx-i+1
     770               auxi = nlayer-i+1
    770771               !NO interpolated coefficient
    771772               jfotsout(indexint,10,auxi)=
    772      $              jfotsout(indexint,10,nlayermx) *
     773     $              jfotsout(indexint,10,nlayer) *
    773774     $              (wm(i)*auxjno(ind+1) +wp(i)*auxjno(ind)) *
    774775     $              cortemp(i)
     
    796797
    797798      indexint=32
    798       do i=1,nlayermx
    799          auxcolinp(nlayermx-i+1) =co2colx(i) + o2colx(i) + h2o2colx(i) +
     799      do i=1,nlayer
     800         auxcolinp(nlayer-i+1) =co2colx(i) + o2colx(i) + h2o2colx(i) +
    800801     $        nocolx(i) + no2colx(i)
    801802      end do
     
    825826      endif
    826827      call interfast
    827      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    828       do i=1,nlayermx
     828     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     829      do i=1,nlayer
    829830         ind=auxind(i)
    830          auxi = nlayermx-i+1
     831         auxi = nlayer-i+1
    831832         !Correction to include T variation of CO2 cross section
    832          if(sigma(indexint,nlayermx-i+1)*alfa(indexint,auxi)*
     833         if(sigma(indexint,nlayer-i+1)*alfa(indexint,auxi)*
    833834     $        coltemp(auxi).lt.60.) then
    834835            cortemp(i)=exp(-sigma(indexint,auxi)*
     
    839840         !CO2 interpolated coefficient
    840841         jfotsout(indexint,1,auxi) =
    841      $        jfotsout(indexint,1,nlayermx) *
     842     $        jfotsout(indexint,1,nlayer) *
    842843     $        (wm(i)*auxjco2(ind+1)+wp(i)*auxjco2(ind)) *
    843844     $        cortemp(i) *
     
    846847         !O2 interpolated coefficient
    847848         jfotsout(indexint,2,auxi) =
    848      $        jfotsout(indexint,2,nlayermx) *
     849     $        jfotsout(indexint,2,nlayer) *
    849850     $        (wm(i)*auxjo2(ind+1) + wp(i)*auxjo2(ind)) *
    850851     $        cortemp(i)
    851852         !H2O2 interpolated coefficient
    852853         jfotsout(indexint,6,auxi) =
    853      $        jfotsout(indexint,6,nlayermx) *
     854     $        jfotsout(indexint,6,nlayer) *
    854855     $        (wm(i)*auxjh2o2(ind+1) + wp(i)*auxjh2o2(ind)) *
    855856     $        cortemp(i)         
     
    857858      !Only if chemthermod.ge.2
    858859      if(chemthermod.ge.2) then
    859          do i=1,nlayermx
    860             auxi = nlayermx-i+1
     860         do i=1,nlayer
     861            auxi = nlayer-i+1
    861862            ind=auxind(i)
    862863            !NO interpolated coefficient
    863864            jfotsout(indexint,10,auxi) =
    864      $           jfotsout(indexint,10,nlayermx) *
     865     $           jfotsout(indexint,10,nlayer) *
    865866     $           (wm(i)*auxjno(ind+1) + wp(i)*auxjno(ind)) *
    866867     $           cortemp(i)
    867868           !NO2 interpolated coefficient
    868869            jfotsout(indexint,13,auxi) =
    869      $           jfotsout(indexint,13,nlayermx) *
     870     $           jfotsout(indexint,13,nlayer) *
    870871     $           (wm(i)*auxjno2(ind+1) + wp(i)*auxjno2(ind)) *
    871872     $           cortemp(i)
     
    886887
    887888      indexint=33
    888       do i=1,nlayermx
    889          auxcolinp(nlayermx-i+1) = o2colx(i) + h2o2colx(i) + no2colx(i)
     889      do i=1,nlayer
     890         auxcolinp(nlayer-i+1) = o2colx(i) + h2o2colx(i) + no2colx(i)
    890891      end do
    891892
     
    909910      endif
    910911      call interfast
    911      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    912       do i=1,nlayermx
     912     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     913      do i=1,nlayer
    913914         ind=auxind(i)
    914          auxi = nlayermx-i+1
     915         auxi = nlayer-i+1
    915916         !O2 interpolated coefficient
    916          jfotsout(indexint,2,auxi) = jfotsout(indexint,2,nlayermx) *
     917         jfotsout(indexint,2,auxi) = jfotsout(indexint,2,nlayer) *
    917918     $        (wm(i)*auxjo2(ind+1) + wp(i)*auxjo2(ind))
    918919         !H2O2 interpolated coefficient
    919          jfotsout(indexint,6,auxi) = jfotsout(indexint,6,nlayermx) *
     920         jfotsout(indexint,6,auxi) = jfotsout(indexint,6,nlayer) *
    920921     $        (wm(i)*auxjh2o2(ind+1) + wp(i)*auxjh2o2(ind))
    921922      enddo
    922923      !Only if chemthermod.ge.2
    923924      if(chemthermod.ge.2) then
    924          do i=1,nlayermx
     925         do i=1,nlayer
    925926            ind=auxind(i)
    926927            !NO2 interpolated coefficient
    927             jfotsout(indexint,13,nlayermx-i+1) =
    928      $           jfotsout(indexint,13,nlayermx) *
     928            jfotsout(indexint,13,nlayer-i+1) =
     929     $           jfotsout(indexint,13,nlayer) *
    929930     $           (wm(i)*auxjno2(ind+1) + wp(i)*auxjno2(ind))
    930931         enddo
     
    944945
    945946      indexint=34
    946       do i=1,nlayermx
    947          auxcolinp(nlayermx-i+1) = h2o2colx(i) + o2colx(i) + o3colx(i) +
     947      do i=1,nlayer
     948         auxcolinp(nlayer-i+1) = h2o2colx(i) + o2colx(i) + o3colx(i) +
    948949     $        no2colx(i)
    949950      end do
     
    970971      endif
    971972      call interfast
    972      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    973       do i=1,nlayermx
     973     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     974      do i=1,nlayer
    974975         ind=auxind(i)
    975          auxi = nlayermx-i+1
     976         auxi = nlayer-i+1
    976977         !O2 interpolated coefficient
    977          jfotsout(indexint,2,auxi) = jfotsout(indexint,2,nlayermx) *
     978         jfotsout(indexint,2,auxi) = jfotsout(indexint,2,nlayer) *
    978979     $        (wm(i)*auxjo2(ind+1) + wp(i)*auxjo2(ind))
    979980         !H2O2 interpolated coefficient
    980          jfotsout(indexint,6,auxi) = jfotsout(indexint,6,nlayermx) *
     981         jfotsout(indexint,6,auxi) = jfotsout(indexint,6,nlayer) *
    981982     $        (wm(i)*auxjh2o2(ind+1) + wp(i)*auxjh2o2(ind))
    982983         !O3 interpolated coefficient
    983          jfotsout(indexint,7,auxi) = jfotsout(indexint,7,nlayermx) *
     984         jfotsout(indexint,7,auxi) = jfotsout(indexint,7,nlayer) *
    984985     $        (wm(i)*auxjo3(ind+1) + wp(i)*auxjo3(ind))
    985986      enddo
    986987      !Only if chemthermod.ge.2
    987988      if(chemthermod.ge.2) then
    988          do i=1,nlayermx
     989         do i=1,nlayer
    989990            ind=auxind(i)
    990991            !NO2 interpolated coefficient
    991             jfotsout(indexint,13,nlayermx-i+1) =
    992      $           jfotsout(indexint,13,nlayermx) *
     992            jfotsout(indexint,13,nlayer-i+1) =
     993     $           jfotsout(indexint,13,nlayer) *
    993994     $           (wm(i)*auxjno2(ind+1) + wp(i)*auxjno2(ind))
    994995         enddo
     
    10081009
    10091010      indexint=35
    1010       do i=1,nlayermx
    1011          auxcolinp(nlayermx-i+1) = h2o2colx(i) + o3colx(i) + no2colx(i)
     1011      do i=1,nlayer
     1012         auxcolinp(nlayer-i+1) = h2o2colx(i) + o3colx(i) + no2colx(i)
    10121013      end do
    10131014
     
    10311032      endif
    10321033      call interfast
    1033      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    1034       do i=1,nlayermx
     1034     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     1035      do i=1,nlayer
    10351036         ind=auxind(i)
    1036          auxi = nlayermx-i+1
     1037         auxi = nlayer-i+1
    10371038         !H2O2 interpolated coefficient
    1038          jfotsout(indexint,6,auxi) = jfotsout(indexint,6,nlayermx) *
     1039         jfotsout(indexint,6,auxi) = jfotsout(indexint,6,nlayer) *
    10391040     $        (wm(i)*auxjh2o2(ind+1) + wp(i)*auxjh2o2(ind))
    10401041         !O3 interpolated coefficient
    1041          jfotsout(indexint,7,auxi) = jfotsout(indexint,7,nlayermx) *
     1042         jfotsout(indexint,7,auxi) = jfotsout(indexint,7,nlayer) *
    10421043     $        (wm(i)*auxjo3(ind+1) + wp(i)*auxjo3(ind))
    10431044      enddo
    10441045      if(chemthermod.ge.2) then
    1045          do i=1,nlayermx
     1046         do i=1,nlayer
    10461047            ind=auxind(i)
    10471048            !NO2 interpolated coefficient
    1048             jfotsout(indexint,13,nlayermx-i+1) =
    1049      $           jfotsout(indexint,13,nlayermx) *
     1049            jfotsout(indexint,13,nlayer-i+1) =
     1050     $           jfotsout(indexint,13,nlayer) *
    10501051     $           (wm(i)*auxjno2(ind+1) + wp(i)*auxjno2(ind))
    10511052         enddo
     
    10641065
    10651066      indexint=36
    1066       do i=1,nlayermx
    1067          auxcolinp(nlayermx-i+1) = o3colx(i) + no2colx(i)
     1067      do i=1,nlayer
     1068         auxcolinp(nlayer-i+1) = o3colx(i) + no2colx(i)
    10681069      end do
    10691070
     
    10851086      endif
    10861087      call interfast
    1087      $     (wm,wp,auxind,auxcolinp,nlayermx,auxcoltab,nz2,limdown,limup)
    1088       do i=1,nlayermx
     1088     $     (wm,wp,auxind,auxcolinp,nlayer,auxcoltab,nz2,limdown,limup)
     1089      do i=1,nlayer
    10891090         ind=auxind(i)
    10901091         !O3 interpolated coefficient
    1091          jfotsout(indexint,7,nlayermx-i+1) =
    1092      $        jfotsout(indexint,7,nlayermx) *
     1092         jfotsout(indexint,7,nlayer-i+1) =
     1093     $        jfotsout(indexint,7,nlayer) *
    10931094     $        (wm(i)*auxjo3(ind+1) + wp(i)*auxjo3(ind))
    10941095      enddo
    10951096      !Only if chemthermod.ge.2
    10961097      if(chemthermod.ge.2) then
    1097          do i=1,nlayermx
     1098         do i=1,nlayer
    10981099            ind=auxind(i)
    10991100            !NO2 interpolated coefficient
    1100             jfotsout(indexint,13,nlayermx-i+1) =
    1101      $           jfotsout(indexint,13,nlayermx) *
     1101            jfotsout(indexint,13,nlayer-i+1) =
     1102     $           jfotsout(indexint,13,nlayer) *
    11021103     $           (wm(i)*auxjno2(ind+1) + wp(i)*auxjno2(ind))
    11031104         enddo
  • trunk/LMDZ.MARS/libf/aeronomars/moldiff.F

    r1226 r1266  
    1010      USE comcstfi_h
    1111      implicit none
    12 
    13 !#include "dimensions.h"
    14 !#include "dimphys.h"
    15 !#include "callkeys.h"
    16 !#include "comdiurn.h"
    17 !#include "chimiedata.h"
    18 !#include "tracer.h"
    19 !#include "conc.h"
    20 
    2112
    2213c
  • trunk/LMDZ.MARS/libf/aeronomars/moldiff_red.F90

    r1226 r1266  
    77implicit none
    88
    9 !#include "dimensions.h"
    10 !#include "dimphys.h"
    11 !#include "callkeys.h"
    12 !#include "comdiurn.h"
    13 !#include "chimiedata.h"
    14 !#include "tracer.h"
    15 !#include "conc.h"
    169#include "diffusion.h"
    17 
    1810
    1911!
  • trunk/LMDZ.MARS/libf/aeronomars/moldiffcoeff.F

    r1047 r1266  
    1616c
    1717c=======================================================================
    18 #include "dimensions.h"
    19 #include "dimphys.h"
    2018#include "callkeys.h"
    21 !#include "comdiurn.h"
    2219#include "chimiedata.h"
    23 !#include "tracer.h"
    24 !#include "conc.h"
    2520
    2621c-----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/aeronomars/moldiffcoeff_red.F

    r1047 r1266  
    1212c
    1313c=======================================================================
    14 #include "dimensions.h"
    15 #include "dimphys.h"
    1614#include "callkeys.h"
    17 !#include "comdiurn.h"
    1815#include "chimiedata.h"
    19 !#include "tracer.h"
    20 !#include "conc.h"
    2116#include "diffusion.h"
    2217
  • trunk/LMDZ.MARS/libf/aeronomars/molvis.F

    r1226 r1266  
    1919c   declarations:
    2020c-----------------------------------------------------------------------
    21 
    22 !#include "dimensions.h"
    23 !#include "dimphys.h"
    24 !#include "surfdat.h"
    25 !#include "chimiedata.h"
    26 !#include "conc.h"
    2721
    2822c   arguments:
  • trunk/LMDZ.MARS/libf/aeronomars/param_read.F

    r705 r1266  
    11      subroutine param_read
    22
     3      use param_v4_h, only: jfotsout,crscabsi2,
     4     .    c1_16,c17_24,c25_29,c30_31,c32,c33,c34,c35,c36,
     5     .    co2crsc195,co2crsc295,t0,
     6     .    jabsifotsintpar,ninter,nz2,
     7     .    efdisco2,efdiso2,efdish2o,
     8     .    efdish2o2,efdish2,efdiso3,
     9     .    efdiso,efdisn,efdish,
     10     .    efdisno,efdisn2,efdisno2,
     11     .    efdisco,efionco2,efionn2,
     12     .    efionco,efiono3p,efionn,
     13     .    efionno,efionh,
     14     .    fluxtop,ct1,ct2,p1,p2
     15
    316      implicit none
    417
    518
    619c     common variables and constants
    7       include "dimensions.h"
    8       include "dimphys.h"
    9       include 'param.h'
    10       include 'param_v4.h'
    1120      include 'datafile.h'
    1221 
     
    2029     
    2130c*************************+PROGRAM STARTS**************************
    22 
    23 
    24 c     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/
    8631
    8732c     Reads tabulated functions
  • trunk/LMDZ.MARS/libf/aeronomars/param_read_e107.F

    r705 r1266  
    11      subroutine param_read_e107
    22
     3      use param_v4_h, only: jfotsout,crscabsi2,
     4     .    c1_16,c17_24,c25_29,c30_31,c32,c33,c34,c35,c36,
     5     .    co2crsc195,co2crsc295,t0,
     6     .    jabsifotsintpar,ninter,nz2,
     7     .    nabs,e107,date_e107,e107_tab,
     8     .    coefit0,coefit1,coefit2,coefit3,coefit4,
     9     .    efdisco2,efdiso2,efdish2o,
     10     .    efdish2o2,efdish2,efdiso3,
     11     .    efdiso,efdisn,efdish,
     12     .    efdisno,efdisn2,efdisno2,
     13     .    efdisco,efionco2,efionn2,
     14     .    efionco,efiono3p,efionn,
     15     .    efionno,efionh,
     16     .    fluxtop,ct1,ct2,p1,p2
     17
    318      implicit none
    419
    520
    621c     common variables and constants
    7       include "dimensions.h"
    8       include "dimphys.h"
    9       include 'param.h'
    10       include 'param_v4.h'
    1122      include 'datafile.h'
    1223      include "callkeys.h"
  • trunk/LMDZ.MARS/libf/aeronomars/paramfoto_compact.F

    r1265 r1266  
    22
    33      subroutine paramfoto_compact
    4      $(ig,chemthermod,lswitch,tx,timestep,zenit,zx,rm,nesptherm)
     4     $(ig,nlayer,chemthermod,lswitch,tx,timestep,zenit,zx,rm,nesptherm)
    55 
    66c     may 2008      FGG+MALV,GG             
    77c**********************************************************************
    88
     9      use iono_h
     10      use param_v4_h
    911      implicit none
    10       include "dimensions.h"
    11       include "dimphys.h"
    12       include 'param.h'
    13       include 'param_v4.h'
    14       include 'iono.h'
    1512
    1613c     arguments
    1714
    18       integer lswitch,ig,nesptherm,chemthermod
    19       real zdens(nlayermx)
    20       real tx(nlayermx)
     15      integer lswitch,ig,nesptherm,chemthermod,nlayer
     16      real zdens(nlayer)
     17      real tx(nlayer)
    2118      real zenit
    22       real zx(nlayermx)
    23       real rm(nlayermx,nesptherm)
     19      real zx(nlayer)
     20      real rm(nlayer,nesptherm)
    2421      real timestep
    2522
     
    6764      real*8  delectx,dnplusx
    6865
    69       real*8  jdistot8(nabs,nlayermx)
    70       real*8  jdistot8_b(nabs,nlayermx)
    71       real*8  jion8(nabs,nlayermx,4)
     66      real*8  jdistot8(nabs,nlayer)
     67      real*8  jdistot8_b(nabs,nlayer)
     68      real*8  jion8(nabs,nlayer,4)
    7269      real*8  tx8
    7370         
     
    7673      real*8  alfa_laststep, IonMostAbundant
    7774
    78       real*8  tmin(nlayermx)
     75      real*8  tmin(nlayer)
    7976      real*8  fmargin1,critere
    8077
    81       integer compmin(nlayermx)
     78      integer compmin(nlayer)
    8279      integer i,j,k
    8380      integer numpasos
    84       integer n_comp_en_EQ(nlayermx), paso
     81      integer n_comp_en_EQ(nlayer), paso
    8582
    8683! Tracer indexes in the thermospheric chemistry:
     
    124121      timefrac_sec=dble(timestep)
    125122
    126       do i=nlayermx,lswitch,-1
     123      do i=nlayer,lswitch,-1
    127124c     Concentrations to real*8
    128125
     
    179176         !from photoabsorption rates and ionization-to-dissociation
    180177         !branching ratios
    181          call phdisrate(ig,chemthermod,zenit,i)   
     178         call phdisrate(ig,nlayer,chemthermod,zenit,i)   
    182179         ! Conversion to double precision
    183180         do j=1,nabs
     
    194191                 
    195192         !Lifetimes and temporal integration
    196          call lifetimes(ig,i,chemthermod,zenit,zx,
     193         call lifetimes(ig,i,nlayer,chemthermod,zenit,zx,
    197194     $        jdistot8,jdistot8_b,jion8,
    198195     $        tmin(i),compmin(i),
     
    220217        endif   !Of chemthermod.eq.3
    221218
    222          call timemarching ( ig,i,chemthermod,n_comp_en_EQ,compmin,
    223      $       tmin,timefrac_sec, deltat,fmargin1)
    224 
     219         call timemarching ( ig,i,nlayer,chemthermod,n_comp_en_EQ,
     220     .       compmin,tmin,timefrac_sec, deltat,fmargin1)
    225221
    226222         !Number of timesteps
     
    300296            end if
    301297            !Calculation of productions and losses
    302             call prodsandlosses ( ig, i , chemthermod,zenit, zx,
     298            call prodsandlosses (ig,i,nlayer,chemthermod,zenit, zx,
    303299     &                 jdistot8, jdistot8_b, jion8,
    304300     &                              co2xinput, o2xinput, o3pxinput,
     
    430426            !Third, those species (among the 16 that can be in PE) that are in PE
    431427            call EF_oscilacion
    432      &           ( ig,i, paso,chemthermod,zenit, zx,
     428     &           ( ig,i,nlayer, paso,chemthermod,zenit, zx,
    433429     &           jdistot8, jdistot8_b,jion8,
    434430     &           deltat,
     
    11811177c**********************************************************************
    11821178
    1183       subroutine phdisrate(ig,chemthermod,zenit,i)
     1179      subroutine phdisrate(ig,nlayer,chemthermod,zenit,i)
    11841180
    11851181c     apr 2002       fgg           first version
    11861182c**********************************************************************
    11871183
     1184      use param_v4_h, only: ninter,nabs,
     1185     .    jfotsout,fluxtop,
     1186     .    jion,jdistot,jdistot_b,
     1187     .    efdisco2,efdiso2,efdish2o,
     1188     .    efdish2o2,efdish2,efdiso3,
     1189     .    efdiso,efdisn,efdish,
     1190     .    efdisno,efdisn2,efdisno2,
     1191     .    efdisco,efionco2,efionn2,
     1192     .    efionco,efiono3p,efionn,
     1193     .    efionno,efionh
    11881194
    11891195      implicit none
    1190       include "dimensions.h"
    1191       include "dimphys.h"
    1192       include 'param.h'
    1193       include 'param_v4.h'
    11941196
    11951197c     arguments
    11961198
    11971199      integer         i                !altitude
    1198       integer         ig,chemthermod
     1200      integer         ig,chemthermod,nlayer
    11991201      real            zenit
    12001202
     
    12031205      integer         inter,iz,j
    12041206      real            lambda
    1205       real            jdis(nabs,ninter,nlayermx)
     1207      real            jdis(nabs,ninter,nlayer)
    12061208      character*1     dn
    12071209
     
    13881390c***************************************************************************
    13891391
    1390        
     1392        use param_v4_h, only: rcoef,
     1393     .  ch2, ch3, ch4, ch5, ch7,ch9,ch10,ch11,ch13,ch14,ch15,ch18,
     1394     .  ch19,ch20,ch21,ch22,ch23,ch24,ch30,ch31,ch32,ch33,ch34,
     1395     .  ch35,ch36,ch37,ch38,ch39,ch40,ch41,ch42,ch43,ch45,
     1396     .  ch46,ch47,ch48,ch49,ch50,ch55,ch56,ch57,ch58,ch59,ch62,
     1397     .  ch63,ch64,ch65,ch66,ch67,ch68,ch69,ch70,ch71,
     1398     .  ch72,ch73,ch74,ch75,ch76,ch85,ch86,ch87
     1399
     1400
     1401
    13911402        implicit none
    1392         include "dimensions.h"
    1393         include "dimphys.h"
    1394         include 'param.h'
    1395         include 'param_v4.h'
    13961403
    13971404c Arguments     
     
    20102017
    20112018      subroutine lifetimes
    2012      &   ( ig,i,chemthermod,zenit,zx,jdistot8, jdistot8_b, jion8,
     2019     &   ( ig,i,nlayer,chemthermod,zenit,zx,jdistot8, jdistot8_b, jion8,
    20132020     $     xtmin, xcompmin, xn_comp_en_EQ,
    20142021     $     co2xini,o2xini,o3pxini,coxini,hxini,ohxini,ho2xini,h2xini,
     
    20282035c**********************************************************************
    20292036
     2037      use iono_h
     2038      use param_v4_h
     2039
    20302040      implicit none
    20312041
    2032       include "dimensions.h"
    2033       include "dimphys.h"
    2034       include 'param.h'
    2035       include 'param_v4.h'
    2036       include 'iono.h'
    20372042      include 'callkeys.h'
    20382043
    20392044c     arguments
    20402045c
    2041       integer   i,ig                                  ! I. Layer 
     2046      integer   i,ig,nlayer                               ! I. Layer 
    20422047      integer   chemthermod
    20432048      real      zenit
    2044       real      zx(nlayermx)
    2045       real*8    jdistot8(nabs,nlayermx)                  ! I.
    2046       real*8    jdistot8_b(nabs,nlayermx)                ! I.
    2047       real*8    jion8(nabs,nlayermx,4)                ! I.
     2049      real      zx(nlayer)
     2050      real*8    jdistot8(nabs,nlayer)                  ! I.
     2051      real*8    jdistot8_b(nabs,nlayer)                ! I.
     2052      real*8    jion8(nabs,nlayer,4)                ! I.
    20482053
    20492054      real*8    xtmin                         ! O.
     
    27142719c**********************************************************************
    27152720
    2716       subroutine timemarching( ig,i,chemthermod,n_comp_en_EQ,
     2721      subroutine timemarching( ig,i,nlayer,chemthermod,n_comp_en_EQ,
    27172722     $     compmin,tmin,timefrac_sec, deltat,fmargin1 )
    27182723
     
    27252730c**********************************************************************
    27262731
     2732      use iono_h
     2733      use param_v4_h, only: tminco2,tmino2,tmino3p,tminco,tminh,tminoh,
     2734     .  tminho2,tminh2,tminh2o,tmino1d,tminh2o2,tmino3,tminn,tminno,
     2735     .  tminno2,tminn2,tminn2d,tminco2plus,tminoplus,tmino2plus,
     2736     .  tmincoplus,tmincplus,tminnplus,tminnoplus,tminn2plus,
     2737     .  tminhplus,tminhco2plus
     2738
    27272739      implicit none
    2728 
    2729       include "dimensions.h"
    2730       include "dimphys.h"
    2731       include 'param.h'
    2732       include 'param_v4.h'
    2733       include 'iono.h'
    27342740
    27352741c     arguments
    27362742c
    2737       integer   i,ig                              ! I. Layer 
     2743      integer   i,ig,nlayer                              ! I. Layer 
    27382744      integer   chemthermod
    2739       integer   n_comp_en_EQ(nlayermx)         ! Number of species in PE
    2740       integer   compmin(nlayermx)              ! Species with minimum lifetime
    2741       real*8    tmin(nlayermx)                 ! Minimum lifetime
     2745      integer   n_comp_en_EQ(nlayer)         ! Number of species in PE
     2746      integer   compmin(nlayer)              ! Species with minimum lifetime
     2747      real*8    tmin(nlayer)                 ! Minimum lifetime
    27422748      real*8    timefrac_sec                   ! I.
    27432749      real*8    deltat                         ! O. TimeMarching step
     
    28932899c**********************************************************************
    28942900
    2895       subroutine prodsandlosses ( ig,i,chemthermod,zenit,zx,
     2901      subroutine prodsandlosses ( ig,i,nlayer,chemthermod,zenit,zx,
    28962902     &                 jdistot8, jdistot8_b, jion8,
    28972903     &                              co2xinput, o2xinput, o3pxinput,
     
    29162922c**********************************************************************
    29172923
     2924      use param_v4_h
    29182925      implicit none
    2919       include "dimensions.h"
    2920       include "dimphys.h"
    2921       include 'param.h'
    2922       include 'param_v4.h'
    29232926
    29242927c     arguments
    29252928c
    2926       integer   ig
     2929      integer   ig,nlayer
    29272930      integer   i                                 ! I. Layer 
    29282931      integer   chemthermod
    2929       real      zx(nlayermx)
     2932      real      zx(nlayer)
    29302933      real      zenit
    2931       real*8    jdistot8(nabs,nlayermx)
    2932       real*8    jdistot8_b(nabs,nlayermx)
    2933       real*8    jion8(nabs,nlayermx,4)
     2934      real*8    jdistot8(nabs,nlayer)
     2935      real*8    jdistot8_b(nabs,nlayer)
     2936      real*8    jion8(nabs,nlayer,4)
    29342937      real*8    co2xinput,o2xinput,o3pxinput,coxinput
    29352938      real*8    ho2xinput,h2xinput,hxinput,ohxinput
     
    29392942      real*8    cplusxinput,noplusxinput,n2plusxinput,hplusxinput
    29402943      real*8    electxinput,nplusxinput,hco2plusxinput
    2941 
    29422944
    29432945c     local variables
     
    41284130
    41294131      subroutine EF_oscilacion
    4130      &               (ig,i,paso,chemthermod,zenit, zx,
     4132     &               (ig,i,nlayer,paso,chemthermod,zenit, zx,
    41314133     &                 jdistot8, jdistot8_b,jion8,
    41324134     &                 tminaux,
     
    41704172c**********************************************************************
    41714173
     4174      use iono_h
     4175      use param_v4_h, only: nabs,
     4176     .  ch2, ch3, ch4, ch5, ch7,ch9,ch10,ch11,ch13,ch14,ch15,ch18,
     4177     .  ch19,ch20,ch21,ch22,ch23,ch24,ch30,ch31,ch32,ch33,ch34,
     4178     .  ch35,ch36,ch37,ch38,ch39,ch40,ch41,ch42,ch43,ch45,
     4179     .  ch46,ch47,ch48,ch49,ch50,ch55,ch56,ch57,ch58,ch59,ch62,
     4180     .  ch63,ch64,ch65,ch66,ch67,ch68,ch69,ch70,ch71,
     4181     .  ch72,ch73,ch74,ch75,ch76,ch85,ch86,ch87
     4182
     4183
    41724184      implicit none
    41734185
    4174       include "dimensions.h"
    4175       include "dimphys.h"
    4176       include 'param.h'
    4177       include 'param_v4.h'
    4178       include 'iono.h'
    4179 
    4180 
    41814186c     arguments
    41824187     
    4183       integer   ig
     4188      integer   ig,nlayer
    41844189      integer   i         ! I. Layer                             
    41854190      integer   paso      ! I. paso temporal del timemarching, 1,numpasos
    41864191      integer   chemthermod
    41874192      real*8    tminaux   ! I.
    4188       real      zx(nlayermx)
     4193      real      zx(nlayer)
    41894194      real      zenit
    4190       real*8    jdistot8(nabs,nlayermx)                  ! I.
    4191       real*8    jdistot8_b(nabs,nlayermx)                ! I.
    4192       real*8    jion8(nabs,nlayermx,4)
     4195      real*8    jdistot8(nabs,nlayer)                  ! I.
     4196      real*8    jdistot8_b(nabs,nlayer)                ! I.
     4197      real*8    jion8(nabs,nlayer,4)
    41934198
    41944199      real*8    co2xoutput,o2xoutput,o3pxoutput,coxoutput,h2xoutput
     
    42774282      external ionsec_o2plus
    42784283      real*8   ionsec_o2plus
     4284
     4285      external avg
     4286      real*8   avg
     4287
     4288      external dif
     4289      real*8   dif
     4290
     4291      real*8 log1
     4292      real*8 log2
     4293      real*8 log3
    42794294
    42804295ccccccccccccccc CODE STARTS
     
    47124727           
    47134728            if (o1d_eq(i).eq.'Y') then
    4714                avg_pares = ( dlog10(o1dxpares(1)) +
    4715      &              dlog10(o1dxpares(2)) +
    4716      &              dlog10(o1dxpares(3)) )*0.333
    4717                dif_pares = ( abs(dlog10(o1dxpares(1))-avg_pares) +
    4718      &              abs(dlog10(o1dxpares(2))-avg_pares) +   
    4719      &              abs(dlog10(o1dxpares(3))-avg_pares) ) * 0.333   
    4720                avg_impar = ( dlog10(o1dximpar(1)) +
    4721      &              dlog10(o1dximpar(2)) +
    4722      &              dlog10(o1dximpar(3)) )*0.333
    4723                dif_impar = ( abs(dlog10(o1dximpar(1))-avg_impar) +
    4724      &              abs(dlog10(o1dximpar(2))-avg_impar) +   
    4725      &              abs(dlog10(o1dximpar(3))-avg_impar) ) * 0.333
     4729               log1 = dlog10(o1dxpares(1))
     4730               log2 = dlog10(o1dxpares(2))
     4731               log3 = dlog10(o1dxpares(3))
     4732               avg_pares = avg(log1,log2,log3)
     4733               dif_pares = dif(log1,log2,log3,avg_pares)
     4734               log1 = dlog10(o1dximpar(1))
     4735               log2 = dlog10(o1dximpar(2))
     4736               log3 = dlog10(o1dximpar(3))
     4737               avg_impar = avg(log1,log2,log3)
     4738               dif_impar = dif(log1,log2,log3,avg_impar)
    47264739               dispersion = dif_pares + dif_impar
    47274740               dif_pares_impar = abs(avg_pares-avg_impar)
     
    47334746           
    47344747            if (oh_eq(i).eq.'Y') then
    4735                avg_pares = ( dlog10(ohxpares(1)) +
    4736      &              dlog10(ohxpares(2)) +
    4737      &              dlog10(ohxpares(3)) )*0.333
    4738                dif_pares = ( abs(dlog10(ohxpares(1))-avg_pares) +
    4739      &              abs(dlog10(ohxpares(2))-avg_pares) +   
    4740      &              abs(dlog10(ohxpares(3))-avg_pares) ) * 0.333   
    4741                avg_impar = ( dlog10(ohximpar(1)) +
    4742      &              dlog10(ohximpar(2)) +
    4743      &              dlog10(ohximpar(3)) )*0.333
    4744                dif_impar = ( abs(dlog10(ohximpar(1))-avg_impar) +
    4745      &              abs(dlog10(ohximpar(2))-avg_impar) +   
    4746      &              abs(dlog10(ohximpar(3))-avg_impar) ) * 0.333
     4748               log1 = dlog10(ohxpares(1))
     4749               log2 = dlog10(ohxpares(2))
     4750               log3 = dlog10(ohxpares(3))
     4751               avg_pares = avg(log1,log2,log3)
     4752               dif_pares = dif(log1,log2,log3,avg_pares)
     4753               log1 = dlog10(ohximpar(1))
     4754               log2 = dlog10(ohximpar(2))
     4755               log3 = dlog10(ohximpar(3))
     4756               avg_impar = avg(log1,log2,log3)
     4757               dif_impar = dif(log1,log2,log3,avg_impar)
    47474758               dispersion = dif_pares + dif_impar
    47484759               dif_pares_impar = abs(avg_pares-avg_impar)
     
    47554766           
    47564767            if (ho2_eq(i).eq.'Y') then
    4757                avg_pares = ( dlog10(ho2xpares(1)) +
    4758      &              dlog10(ho2xpares(2)) +
    4759      &              dlog10(ho2xpares(3)) )*0.333
    4760                dif_pares = ( abs(dlog10(ho2xpares(1))-avg_pares) +
    4761      &              abs(dlog10(ho2xpares(2))-avg_pares) +   
    4762      &              abs(dlog10(ho2xpares(3))-avg_pares) ) * 0.333   
    4763                avg_impar = ( dlog10(ho2ximpar(1)) +
    4764      &              dlog10(ho2ximpar(2)) +
    4765      &              dlog10(ho2ximpar(3)) )*0.333
    4766                dif_impar = ( abs(dlog10(ho2ximpar(1))-avg_impar) +
    4767      &              abs(dlog10(ho2ximpar(2))-avg_impar) +   
    4768      &              abs(dlog10(ho2ximpar(3))-avg_impar) ) * 0.333
     4768               log1 = dlog10(ho2xpares(1))
     4769               log2 = dlog10(ho2xpares(2))
     4770               log3 = dlog10(ho2xpares(3))
     4771               avg_pares = avg(log1,log2,log3)
     4772               dif_pares = dif(log1,log2,log3,avg_pares)
     4773               log1 = dlog10(ho2ximpar(1))
     4774               log2 = dlog10(ho2ximpar(2))
     4775               log3 = dlog10(ho2ximpar(3))
     4776               avg_impar = avg(log1,log2,log3)
     4777               dif_impar = dif(log1,log2,log3,avg_impar)
    47694778               dispersion = dif_pares + dif_impar
    47704779               dif_pares_impar = abs(avg_pares-avg_impar)
     
    47764785           
    47774786            if (h_eq(i).eq.'Y') then
    4778                avg_pares = ( dlog10(hxpares(1)) +
    4779      &              dlog10(hxpares(2)) +
    4780      &              dlog10(hxpares(3)) )*0.333
    4781                dif_pares = ( abs(dlog10(hxpares(1))-avg_pares) +
    4782      &              abs(dlog10(hxpares(2))-avg_pares) +   
    4783      &              abs(dlog10(hxpares(3))-avg_pares) ) * 0.333   
    4784                avg_impar = ( dlog10(hximpar(1)) +
    4785      &              dlog10(hximpar(2)) +
    4786      &              dlog10(hximpar(3)) )*0.333
    4787                dif_impar = ( abs(dlog10(hximpar(1))-avg_impar) +
    4788      &              abs(dlog10(hximpar(2))-avg_impar) +   
    4789      &              abs(dlog10(hximpar(3))-avg_impar) ) * 0.333
     4787               log1 = dlog10(hxpares(1))
     4788               log2 = dlog10(hxpares(2))
     4789               log3 = dlog10(hxpares(3))
     4790               avg_pares = avg(log1,log2,log3)
     4791               dif_pares = dif(log1,log2,log3,avg_pares)
     4792               log1 = dlog10(hximpar(1))
     4793               log2 = dlog10(hximpar(2))
     4794               log3 = dlog10(hximpar(3))
     4795               avg_impar = avg(log1,log2,log3)
     4796               dif_impar = dif(log1,log2,log3,avg_impar)
    47904797               dispersion = dif_pares + dif_impar
    47914798               dif_pares_impar = abs(avg_pares-avg_impar)
     
    47994806            if(chemthermod.ge.2) then
    48004807               if (n2d_eq(i).eq.'Y') then
    4801                   avg_pares = ( dlog10(n2dxpares(1)) +
    4802      &                 dlog10(n2dxpares(2)) +
    4803      &                 dlog10( n2dxpares(3)) )*0.333
    4804                   dif_pares = ( abs(dlog10(n2dxpares(1))-avg_pares) +
    4805      &                 abs(dlog10(n2dxpares(2))-avg_pares) +   
    4806      &                 abs(dlog10(n2dxpares(3))-avg_pares) ) * 0.333   
    4807                   avg_impar = ( dlog10(n2dximpar(1)) +
    4808      &                 dlog10(n2dximpar(2)) +
    4809      &                 dlog10( n2dximpar(3)) )*0.333
    4810                   dif_impar = ( abs(dlog10(n2dximpar(1))-avg_impar) +
    4811      &                 abs(dlog10(n2dximpar(2))-avg_impar) +   
    4812      &                 abs(dlog10(n2dximpar(3))-avg_impar) ) * 0.333
     4808                  log1 = dlog10(n2dxpares(1))
     4809                  log2 = dlog10(n2dxpares(2))
     4810                  log3 = dlog10(n2dxpares(3))
     4811                  avg_pares = avg(log1,log2,log3)
     4812                  dif_pares = dif(log1,log2,log3,avg_pares)
     4813                  log1 = dlog10(n2dximpar(1))
     4814                  log2 = dlog10(n2dximpar(2))
     4815                  log3 = dlog10(n2dximpar(3))
     4816                  avg_impar = avg(log1,log2,log3)
     4817                  dif_impar = dif(log1,log2,log3,avg_impar)
    48134818                  dispersion = dif_pares + dif_impar
    48144819                  dif_pares_impar = abs(avg_pares-avg_impar)
     
    48204825           
    48214826               if (no2_eq(i).eq.'Y') then
    4822                   avg_pares = (dlog10(no2xpares(1)) +
    4823      &                 dlog10(no2xpares(2)) +
    4824      &                 dlog10( no2xpares(3)) )*0.333
    4825                   dif_pares = ( abs(dlog10(no2xpares(1))-avg_pares) +
    4826      &                 abs(dlog10(no2xpares(2))-avg_pares) +   
    4827      &                 abs(dlog10(no2xpares(3))-avg_pares) ) * 0.333   
    4828                   avg_impar = ( dlog10(no2ximpar(1)) +
    4829      &                 dlog10(no2ximpar(2)) +
    4830      &                 dlog10( no2ximpar(3)) )*0.333
    4831                   dif_impar = ( abs(dlog10(no2ximpar(1))-avg_impar) +
    4832      &                 abs(dlog10(no2ximpar(2))-avg_impar) +   
    4833      &                 abs(dlog10(no2ximpar(3))-avg_impar) ) * 0.333
     4827                  log1 = dlog10(no2xpares(1))
     4828                  log2 = dlog10(no2xpares(2))
     4829                  log3 = dlog10(no2xpares(3))
     4830                  avg_pares = avg(log1,log2,log3)
     4831                  dif_pares = dif(log1,log2,log3,avg_pares)
     4832                  log1 = dlog10(no2ximpar(1))
     4833                  log2 = dlog10(no2ximpar(2))
     4834                  log3 = dlog10(no2ximpar(3))
     4835                  avg_impar = avg(log1,log2,log3)
     4836                  dif_impar = dif(log1,log2,log3,avg_impar)
    48344837                  dispersion = dif_pares + dif_impar
    48354838                  dif_pares_impar = abs(avg_pares-avg_impar)
     
    48464849            if(chemthermod.eq.3) then
    48474850               if (cplus_eq(i).eq.'Y') then
    4848                   avg_pares = ( dlog10(cplusxpares(1)) +
    4849      &                 dlog10(cplusxpares(2)) +
    4850      &                 dlog10(cplusxpares(3)) ) * 0.333
    4851                   dif_pares = ( abs(dlog10(cplusxpares(1))-avg_pares) +
    4852      &                 abs(dlog10(cplusxpares(2))-avg_pares) +   
    4853      &                 abs(dlog10(cplusxpares(3))-avg_pares) ) * 0.333   
    4854                   avg_impar = ( dlog10(cplusximpar(1)) +
    4855      &                 dlog10(cplusximpar(2)) +
    4856      &                 dlog10(cplusximpar(3)) ) * 0.333
    4857                   dif_impar = ( abs(dlog10(cplusximpar(1))-avg_impar) +
    4858      &                 abs(dlog10(cplusximpar(2))-avg_impar) +   
    4859      &                 abs(dlog10(cplusximpar(3))-avg_impar) ) * 0.333
     4851                  log1 = dlog10(cplusxpares(1))
     4852                  log2 = dlog10(cplusxpares(2))
     4853                  log3 = dlog10(cplusxpares(3))
     4854                  avg_pares = avg(log1,log2,log3)
     4855                  dif_pares = dif(log1,log2,log3,avg_pares)
     4856                  log1 = dlog10(cplusximpar(1))
     4857                  log2 = dlog10(cplusximpar(2))
     4858                  log3 = dlog10(cplusximpar(3))
     4859                  avg_impar = avg(log1,log2,log3)
     4860                  dif_impar = dif(log1,log2,log3,avg_impar)
    48604861                  dispersion = dif_pares + dif_impar
    48614862                  dif_pares_impar = abs(avg_pares-avg_impar)
     
    48674868               
    48684869               if (coplus_eq(i).eq.'Y') then
    4869                   avg_pares = ( dlog10(coplusxpares(1)) +
    4870      &                 dlog10(coplusxpares(2)) +
    4871      &                 dlog10(coplusxpares(3)) )*0.333
    4872                   dif_pares = ( abs(dlog10(coplusxpares(1))-avg_pares)+
    4873      &                 abs(dlog10(coplusxpares(2))-avg_pares) +   
    4874      &                 abs(dlog10(coplusxpares(3))-avg_pares) ) * 0.333   
    4875                   avg_impar = ( dlog10(coplusximpar(1)) +
    4876      &                 dlog10(coplusximpar(2)) +
    4877      &                 dlog10(coplusximpar(3)) )*0.333
    4878                   dif_impar = ( abs(dlog10(coplusximpar(1))-avg_impar)+
    4879      &                 abs(dlog10(coplusximpar(2))-avg_impar) +   
    4880      &                 abs(dlog10(coplusximpar(3))-avg_impar) ) * 0.333
     4870                  log1 = dlog10(coplusxpares(1))
     4871                  log2 = dlog10(coplusxpares(2))
     4872                  log3 = dlog10(coplusxpares(3))
     4873                  avg_pares = avg(log1,log2,log3)
     4874                  dif_pares = dif(log1,log2,log3,avg_pares)
     4875                  log1 = dlog10(coplusximpar(1))
     4876                  log2 = dlog10(coplusximpar(2))
     4877                  log3 = dlog10(coplusximpar(3))
     4878                  avg_impar = avg(log1,log2,log3)
     4879                  dif_impar = dif(log1,log2,log3,avg_impar)
    48814880                  dispersion = dif_pares + dif_impar
    48824881                  dif_pares_impar = abs(avg_pares-avg_impar)
     
    48884887               
    48894888               if (oplus_eq(i).eq.'Y') then
    4890                   avg_pares = ( dlog10(oplusxpares(1)) +
    4891      &                 dlog10(oplusxpares(2)) +
    4892      &                 dlog10( oplusxpares(3)) )*0.333
    4893                   dif_pares = ( abs(dlog10(oplusxpares(1))-avg_pares) +
    4894      &                 abs(dlog10(oplusxpares(2))-avg_pares) +   
    4895      &                 abs(dlog10(oplusxpares(3))-avg_pares) ) * 0.333   
    4896                   avg_impar = ( dlog10(oplusximpar(1)) +
    4897      &                 dlog10(oplusximpar(2)) +
    4898      &                 dlog10(oplusximpar(3)) )*0.333
    4899                   dif_impar = ( abs(dlog10(oplusximpar(1))-avg_impar) +
    4900      &                 abs(dlog10(oplusximpar(2))-avg_impar) +   
    4901      &                 abs(dlog10(oplusximpar(3))-avg_impar) ) * 0.333
     4889                  log1 = dlog10(oplusxpares(1))
     4890                  log2 = dlog10(oplusxpares(2))
     4891                  log3 = dlog10(oplusxpares(3))
     4892                  avg_pares = avg(log1,log2,log3)
     4893                  dif_pares = dif(log1,log2,log3,avg_pares)
     4894                  log1 = dlog10(oplusximpar(1))
     4895                  log2 = dlog10(oplusximpar(2))
     4896                  log3 = dlog10(oplusximpar(3))
     4897                  avg_impar = avg(log1,log2,log3)
     4898                  dif_impar = dif(log1,log2,log3,avg_impar)
    49024899                  dispersion = dif_pares + dif_impar
    49034900                  dif_pares_impar = abs(avg_pares-avg_impar)
     
    49094906               
    49104907               if (n2plus_eq(i).eq.'Y') then
    4911                   avg_pares = ( dlog10(n2plusxpares(1)) +
    4912      &                 dlog10(n2plusxpares(2)) +
    4913      &                 dlog10(n2plusxpares(3)) )*0.333
    4914                   dif_pares = ( abs(dlog10(n2plusxpares(1))-avg_pares)+
    4915      &                 abs(dlog10(n2plusxpares(2))-avg_pares) +   
    4916      &                 abs(dlog10(n2plusxpares(3))-avg_pares) ) * 0.333   
    4917                   avg_impar = ( dlog10(n2plusximpar(1)) +
    4918      &                 dlog10(n2plusximpar(2))+
    4919      &                 dlog10(n2plusximpar(3)) )*0.333
    4920                   dif_impar = ( abs(dlog10(n2plusximpar(1))-avg_impar)+
    4921      &                 abs(dlog10(n2plusximpar(2))-avg_impar) +   
    4922      &                 abs(dlog10(n2plusximpar(3))-avg_impar) ) * 0.333
     4908                  log1 = dlog10(n2plusxpares(1))
     4909                  log2 = dlog10(n2plusxpares(2))
     4910                  log3 = dlog10(n2plusxpares(3))
     4911                  avg_pares = avg(log1,log2,log3)
     4912                  dif_pares = dif(log1,log2,log3,avg_pares)
     4913                  log1 = dlog10(n2plusximpar(1))
     4914                  log2 = dlog10(n2plusximpar(2))
     4915                  log3 = dlog10(n2plusximpar(3))
     4916                  avg_impar = avg(log1,log2,log3)
     4917                  dif_impar = dif(log1,log2,log3,avg_impar)
    49234918                  dispersion = dif_pares + dif_impar
    49244919                  dif_pares_impar = abs(avg_pares-avg_impar)
     
    49304925               
    49314926               if (hplus_eq(i).eq.'Y') then
    4932                   avg_pares = ( dlog10(hplusxpares(1)) +
    4933      &                 dlog10(hplusxpares(2)) +
    4934      &                 dlog10( hplusxpares(3)) )*0.333
    4935                   dif_pares = ( abs(dlog10(hplusxpares(1))-avg_pares) +
    4936      &                 abs(dlog10(hplusxpares(2))-avg_pares) +   
    4937      &                 abs(dlog10(hplusxpares(3))-avg_pares) ) * 0.333   
    4938                   avg_impar = ( dlog10(hplusximpar(1)) +
    4939      &                 dlog10(hplusximpar(2)) +
    4940      &                 dlog10(hplusximpar(3)) )*0.333
    4941                   dif_impar = ( abs(dlog10(hplusximpar(1))-avg_impar) +
    4942      &                 abs(dlog10(hplusximpar(2))-avg_impar) +   
    4943      &                 abs(dlog10(hplusximpar(3))-avg_impar) ) * 0.333
     4927                  log1 = dlog10(hplusxpares(1))
     4928                  log2 = dlog10(hplusxpares(2))
     4929                  log3 = dlog10(hplusxpares(3))
     4930                  avg_pares = avg(log1,log2,log3)
     4931                  dif_pares = dif(log1,log2,log3,avg_pares)
     4932                  log1 = dlog10(hplusximpar(1))
     4933                  log2 = dlog10(hplusximpar(2))
     4934                  log3 = dlog10(hplusximpar(3))
     4935                  avg_impar = avg(log1,log2,log3)
     4936                  dif_impar = dif(log1,log2,log3,avg_impar)
    49444937                  dispersion = dif_pares + dif_impar
    49454938                  dif_pares_impar = abs(avg_pares-avg_impar)
     
    49514944               
    49524945               if (co2plus_eq(i).eq.'Y') then
    4953                   avg_pares = ( dlog10(co2plusxpares(1)) +
    4954      &                 dlog10(co2plusxpares(2)) +
    4955      &                 dlog10(co2plusxpares(3)) )*0.333
    4956                   dif_pares = (abs(dlog10(co2plusxpares(1))-avg_pares)+
    4957      &                 abs(dlog10(co2plusxpares(2))-avg_pares) +   
    4958      &                 abs(dlog10(co2plusxpares(3))-avg_pares) ) * 0.333   
    4959                   avg_impar = ( dlog10(co2plusximpar(1)) +
    4960      &                 dlog10(co2plusximpar(2)) +
    4961      &                 dlog10(co2plusximpar(3)) )*0.333
    4962                   dif_impar = (abs(dlog10(co2plusximpar(1))-avg_impar)+
    4963      &                 abs(dlog10(co2plusximpar(2))-avg_impar) +   
    4964      &                 abs(dlog10(co2plusximpar(3))-avg_impar) ) * 0.333
     4946                  log1 = dlog10(co2plusxpares(1))
     4947                  log2 = dlog10(co2plusxpares(2))
     4948                  log3 = dlog10(co2plusxpares(3))
     4949                  avg_pares = avg(log1,log2,log3)
     4950                  dif_pares = dif(log1,log2,log3,avg_pares)
     4951                  log1 = dlog10(co2plusximpar(1))
     4952                  log2 = dlog10(co2plusximpar(2))
     4953                  log3 = dlog10(co2plusximpar(3))
     4954                  avg_impar = avg(log1,log2,log3)
     4955                  dif_impar = dif(log1,log2,log3,avg_impar)
    49654956                  dispersion = dif_pares + dif_impar
    49664957                  dif_pares_impar = abs(avg_pares-avg_impar)
     
    49724963               
    49734964               if (o2plus_eq(i).eq.'Y') then
    4974                   avg_pares = ( dlog10(o2plusxpares(1)) +
    4975      &                 dlog10(o2plusxpares(2)) +
    4976      &                 dlog10(o2plusxpares(3)) )*0.333
    4977                   dif_pares = ( abs(dlog10(o2plusxpares(1))-avg_pares)+
    4978      &                 abs(dlog10(o2plusxpares(2))-avg_pares) +   
    4979      &                 abs(dlog10(o2plusxpares(3))-avg_pares) ) * 0.333   
    4980                   avg_impar = ( dlog10(o2plusximpar(1)) +
    4981      &                 dlog10(o2plusximpar(2)) +
    4982      &                 dlog10(o2plusximpar(3)) )*0.333
    4983                   dif_impar = ( abs(dlog10(o2plusximpar(1))-avg_impar)+
    4984      &                 abs(dlog10(o2plusximpar(2))-avg_impar) +   
    4985      &                 abs(dlog10(o2plusximpar(3))-avg_impar) ) * 0.333
     4965                  log1 = dlog10(o2plusxpares(1))
     4966                  log2 = dlog10(o2plusxpares(2))
     4967                  log3 = dlog10(o2plusxpares(3))
     4968                  avg_pares = avg(log1,log2,log3)
     4969                  dif_pares = dif(log1,log2,log3,avg_pares)
     4970                  log1 = dlog10(o2plusximpar(1))
     4971                  log2 = dlog10(o2plusximpar(2))
     4972                  log3 = dlog10(o2plusximpar(3))
     4973                  avg_impar = avg(log1,log2,log3)
     4974                  dif_impar = dif(log1,log2,log3,avg_impar)
    49864975                  dispersion = dif_pares + dif_impar
    49874976                  dif_pares_impar = abs(avg_pares-avg_impar)
     
    49934982               
    49944983               if (noplus_eq(i).eq.'Y') then
    4995                   avg_pares = ( dlog10(noplusxpares(1)) +
    4996      &                 dlog10(noplusxpares(2)) +
    4997      &                 dlog10(noplusxpares(3)) )*0.333
    4998                   dif_pares = ( abs(dlog10(noplusxpares(1))-avg_pares)+
    4999      &                 abs(dlog10(noplusxpares(2))-avg_pares) +   
    5000      &                 abs(dlog10(noplusxpares(3))-avg_pares) ) * 0.333   
    5001                   avg_impar = ( dlog10(noplusximpar(1)) +
    5002      &                 dlog10(noplusximpar(2)) +
    5003      &                 dlog10(noplusximpar(3)) )*0.333
    5004                   dif_impar = ( abs(dlog10(noplusximpar(1))-avg_impar)+
    5005      &                 abs(dlog10(noplusximpar(2))-avg_impar) +   
    5006      &                 abs(dlog10(noplusximpar(3))-avg_impar) ) * 0.333
     4984                  log1 = dlog10(noplusxpares(1))
     4985                  log2 = dlog10(noplusxpares(2))
     4986                  log3 = dlog10(noplusxpares(3))
     4987                  avg_pares = avg(log1,log2,log3)
     4988                  dif_pares = dif(log1,log2,log3,avg_pares)
     4989                  log1 = dlog10(noplusximpar(1))
     4990                  log2 = dlog10(noplusximpar(2))
     4991                  log3 = dlog10(noplusximpar(3))
     4992                  avg_impar = avg(log1,log2,log3)
     4993                  dif_impar = dif(log1,log2,log3,avg_impar)
    50074994                  dispersion = dif_pares + dif_impar
    50084995                  dif_pares_impar = abs(avg_pares-avg_impar)
     
    50145001               
    50155002               if (nplus_eq(i).eq.'Y') then
    5016                   avg_pares = ( dlog10(nplusxpares(1)) +
    5017      &                 dlog10(nplusxpares(2)) +
    5018      &                 dlog10( nplusxpares(3)) )*0.333
    5019                   dif_pares = ( abs(dlog10(nplusxpares(1))-avg_pares) +
    5020      &                 abs(dlog10(nplusxpares(2))-avg_pares) +   
    5021      &                 abs(dlog10(nplusxpares(3))-avg_pares) ) * 0.333   
    5022                   avg_impar = ( dlog10(nplusximpar(1)) +
    5023      &                 dlog10(nplusximpar(2)) +
    5024      &                 dlog10(nplusximpar(3)) )*0.333
    5025                   dif_impar = ( abs(dlog10(nplusximpar(1))-avg_impar) +
    5026      &                 abs(dlog10(nplusximpar(2))-avg_impar) +   
    5027      &                 abs(dlog10(nplusximpar(3))-avg_impar) ) * 0.333
     5003                  log1 = dlog10(nplusxpares(1))
     5004                  log2 = dlog10(nplusxpares(2))
     5005                  log3 = dlog10(nplusxpares(3))
     5006                  avg_pares = avg(log1,log2,log3)
     5007                  dif_pares = dif(log1,log2,log3,avg_pares)
     5008                  log1 = dlog10(nplusximpar(1))
     5009                  log2 = dlog10(nplusximpar(2))
     5010                  log3 = dlog10(nplusximpar(3))
     5011                  avg_impar = avg(log1,log2,log3)
     5012                  dif_impar = dif(log1,log2,log3,avg_impar)
    50285013                  dispersion = dif_pares + dif_impar
    50295014                  dif_pares_impar = abs(avg_pares-avg_impar)
     
    50355020
    50365021               if (hco2plus_eq(i).eq.'Y') then
    5037                  avg_pares = ( dlog10(hco2plusxpares(1)) +
    5038      &                dlog10(hco2plusxpares(2)) +
    5039      &                dlog10(hco2plusxpares(3)) )*0.333
    5040                  dif_pares = (abs(dlog10(hco2plusxpares(1))-avg_pares)+
    5041      &                abs(dlog10(hco2plusxpares(2))-avg_pares) +   
    5042      &                abs(dlog10(hco2plusxpares(3))-avg_pares) ) * 0.333   
    5043                  avg_impar = ( dlog10(hco2plusximpar(1)) +
    5044      &                dlog10(hco2plusximpar(2)) +
    5045      &                dlog10(hco2plusximpar(3)) )*0.333
    5046                  dif_impar = (abs(dlog10(hco2plusximpar(1))-avg_impar)+
    5047      &                abs(dlog10(hco2plusximpar(2))-avg_impar) +   
    5048      &                abs(dlog10(hco2plusximpar(3))-avg_impar) ) * 0.333
     5022                 log1 = dlog10(hco2plusxpares(1))
     5023                 log2 = dlog10(hco2plusxpares(2))
     5024                 log3 = dlog10(hco2plusxpares(3))
     5025                 avg_pares = avg(log1,log2,log3)
     5026                 dif_pares = dif(log1,log2,log3,avg_pares)
     5027                 log1 = dlog10(hco2plusximpar(1))
     5028                 log2 = dlog10(hco2plusximpar(2))
     5029                 log3 = dlog10(hco2plusximpar(3))
     5030                 avg_impar = avg(log1,log2,log3)
     5031                 dif_impar = dif(log1,log2,log3,avg_impar)
    50495032                 dispersion = dif_pares + dif_impar
    50505033                 dif_pares_impar = abs(avg_pares-avg_impar)
     
    51205103      end
    51215104
     5105!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     5106        function avg(log1,log2,log3)
     5107        implicit none
     5108        real*8 avg
     5109        real*8 log1,log2,log3
     5110        avg = (log1+log2+log3)*0.333
     5111        return
     5112        end
     5113!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     5114        function dif(log1,log2,log3,avg)
     5115        implicit none
     5116        real*8 dif
     5117        real*8 avg
     5118        real*8 log1,log2,log3
     5119        dif = (abs(log1-avg) +
     5120     &                abs(log2-avg) +
     5121     &                abs(log3-avg) ) * 0.333
     5122        return
     5123        end
     5124!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    51225125
    51235126c**********************************************************************
  • trunk/LMDZ.MARS/libf/aeronomars/perosat.F

    r1226 r1266  
    2525c   -------------
    2626
    27 !#include "dimensions.h"
    28 !#include "dimphys.h"
    29 !#include "chimiedata.h"
    30 !#include "tracer.h"
    31 !#include "conc.h"
    3227c
    3328c   arguments:
  • trunk/LMDZ.MARS/libf/aeronomars/photochemistry.F

    r1226 r1266  
    1717      implicit none
    1818
    19 !#include "dimensions.h"
    20 !#include "dimphys.h"
    2119#include "chimiedata.h"
    2220#include "callkeys.h"
    23 !#include "tracer.h"
    2421
    2522cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
     
    193190      implicit none
    194191
    195 !#include "dimensions.h"
    196 !#include "dimphys.h"
    197192#include "chimiedata.h"
    198193#include "callkeys.h"
     
    790785      implicit none
    791786
    792 !#include "dimensions.h"
    793 !#include "dimphys.h"
    794787#include "chimiedata.h"
    795788
     
    11631156      implicit none
    11641157
    1165 !#include "dimensions.h"
    1166 !#include "dimphys.h"
    11671158#include "callkeys.h"
    1168 !#include "tracer.h"
    11691159
    11701160cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
     
    12681258      implicit none
    12691259
    1270 !#include "dimensions.h"
    1271 !#include "dimphys.h"
    12721260#include "callkeys.h"
    1273 !#include "tracer.h"
    12741261
    12751262cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
     
    13651352      implicit none
    13661353
    1367 !#include "dimensions.h"
    1368 !#include "dimphys.h"
    1369 
    13701354cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    13711355c     inputs:                                                    c
  • trunk/LMDZ.MARS/libf/aeronomars/surfacearea.F

    r1246 r1266  
    2020
    2121#include "dimensions.h"
    22 !#include "dimphys.h"
    2322#include "callkeys.h"
    24 !#include "tracer.h"
    25 !#include "dimradmars.h"
    2623#include "chimiedata.h"
    27 !#include "conc.h"
    2824
    2925! input
  • trunk/LMDZ.MARS/libf/aeronomars/thermosphere.F

    r1226 r1266  
    99      implicit none
    1010
    11 !#include "dimensions.h"
    12 !#include "dimphys.h"
    1311#include "callkeys.h"
    14 !#include "comdiurn.h"
    15 !#include "param.h"
    16 !#include "param_v4.h"
    17 !#include "chimiedata.h"
    18 !#include "conc.h"
    19 
    2012
    2113      integer,intent(in) :: ngrid ! number of atmospheric columns
  • trunk/LMDZ.MARS/libf/dyn3d/writediagdyn.F90

    r1130 r1266  
    3030! Local variables:
    3131!real,dimension(iip1,jjp1,llm) :: data3 ! to store 3D data
    32 ! Note iip1,jjp1 known from paramet.h; nsoilmx known from dimphys.h
     32! Note iip1,jjp1 known from paramet.h; nsoilmx known from comsoil
    3333!real,dimension(iip1,jjp1) :: data2 ! to store 2D data
    3434!real :: data0 ! to store 0D data
  • trunk/LMDZ.MARS/libf/phymars/aeropacity.F

    r1246 r1266  
    5656c
    5757c=======================================================================
    58 !#include "dimensions.h"
    59 !#include "dimphys.h"
    6058#include "callkeys.h"
    61 !#include "comgeomfi.h"
    62 !#include "dimradmars.h"
    63 !#include "tracer.h"
    6459
    6560c-----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/aeroptproperties.F

    r1246 r1266  
    2828
    2929#include "dimensions.h"
    30 #include "dimphys.h"
    3130#include "callkeys.h"
    32 !#include "dimradmars.h"
    3331
    3432c     Local variables
  • trunk/LMDZ.MARS/libf/phymars/albedocaps.F90

    r1130 r1266  
    1313
    1414#include"dimensions.h"
    15 #include"dimphys.h"
    16 !#include"surfdat.h"
    1715#include"callkeys.h"
    18 !#ifdef MESOSCALE
    19 !#include"comgeomfi.h"
    20 !#endif
    2116
    2217! arguments:
     
    10095implicit none
    10196#include"dimensions.h"
    102 #include"dimphys.h"
    103 !#include"surfdat.h"
    104 !#include"comgeomfi.h"
    10597#include"datafile.h"
    10698
  • trunk/LMDZ.MARS/libf/phymars/blendrad.F

    r1047 r1266  
    1515      use yomlw_h, only: nlaylte
    1616      implicit none
    17 !#include "dimensions.h"
    18 !#include "dimphys.h"
    19 !#include "dimradmars.h"
    2017#include "nlteparams.h"
    21 !#include "yomlw.h"
    2218
    2319c     Input:
  • trunk/LMDZ.MARS/libf/phymars/calldrag_noro.F

    r1047 r1266  
    5555c    ------------------
    5656c
    57 !#include "dimensions.h"
    58 !#include "dimphys.h"
    59 !#include "dimradmars.h"
    60 !#include "surfdat.h"
    6157
    6258c-----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/callradite.F

    r1246 r1266  
    8282c   over layers 1..NFLEV (set in dimradmars_mod).  Returns zero for higher
    8383c   layers, if any.
    84 c   In other routines, nlayermx -> nflev.
     84c   In other routines, nlayer -> nflev.
    8585c   Routines affected: lwflux, lwi, lwmain, lwxb, lwxd, lwxn.
    8686c
     
    151151c    -------------
    152152c
    153 !#include "dimensions.h"
    154 !#include "dimphys.h"
    155 !#include "dimradmars.h"
    156153#include "callkeys.h"
    157 !#include "yomlw.h"
    158154
    159155c-----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/callsedim.F

    r1226 r1266  
    3030c   -------------
    3131     
    32 !#include "dimensions.h"
    33 !#include "dimphys.h"
    34 !#include "tracer.h"
    3532#include "callkeys.h"
    3633
  • trunk/LMDZ.MARS/libf/phymars/co2snow.F

    r1226 r1266  
    1818
    1919#include "dimensions.h"
    20 #include "dimphys.h"
    21 !#include "surfdat.h"
    2220#include "callkeys.h"
    2321
  • trunk/LMDZ.MARS/libf/phymars/conf_phys.F

    r1264 r1266  
    4646      IMPLICIT NONE
    4747#include "dimensions.h"
    48 #include "dimphys.h"
    49 !#include "comsaison.h"
    50 !#include "comdiurn.h"
    51 !#include "comgeomfi.h"
    5248#include "callkeys.h"
    53 !#include "surfdat.h"
    54 !#include "dimradmars.h"
    5549#include "datafile.h"
    56 !#include "slope.h"
    5750#include "microphys.h"
    58 !#include "tracer.h"
    5951
    6052      INTEGER,INTENT(IN) :: ngrid,nlayer,nq
  • trunk/LMDZ.MARS/libf/phymars/convadj.F

    r1226 r1266  
    3232!     ------------
    3333
    34 !#include "dimensions.h"
    35 !#include "dimphys.h"
    3634#include "callkeys.h"
    37 !#include "tracer.h"
    3835
    3936
  • trunk/LMDZ.MARS/libf/phymars/dimradmars_mod.F90

    r1246 r1266  
    88  ! NDLO2 and ndomainsz for the splitting in the physics call
    99  ! WARNING:  One must have  1 < ndomainsz =< ngrid
    10   integer,save :: NFLEV !=nlayermx   ! with splitting
     10  integer,save :: NFLEV !=nlayer   ! with splitting
    1111  integer,save :: ndomainsz !=(ngrid-1)/20 + 1
    1212  integer,save :: NDLON !=ndomainsz  ! with splitting
  • trunk/LMDZ.MARS/libf/phymars/drag_noro.F

    r1226 r1266  
    4848C
    4949C     comcstfi.h
    50 C     dimphys.h
    5150C
    5251c
     
    7170c d_v-----output-R-increment de la vitesse v
    7271c======================================================================
    73 !#include "dimensions.h"
    74 !#include "dimphys.h"
    75 !#include "dimradmars.h"
    7672c
    7773c ARGUMENTS
  • trunk/LMDZ.MARS/libf/phymars/dustdevil.F

    r1226 r1266  
    3030c   -------------
    3131
    32 !#include "dimensions.h"
    33 !#include "dimphys.h"
    34 c#include "comconst.h"        ! TEMPORAIRE AVEC ANLDEVIL !!!!
    35 !#include "surfdat.h"
    36 !#include "comgeomfi.h"
    37 !#include "tracer.h"
    3832c   arguments:
    3933c   ----------
  • trunk/LMDZ.MARS/libf/phymars/dustlift.F

    r1226 r1266  
    2424c   declarations:
    2525c   -------------
    26 
    27 !#include "dimensions.h"
    28 !#include "dimphys.h"
    29 !#include "tracer.h"
    3026
    3127c
  • trunk/LMDZ.MARS/libf/phymars/eofdump_mod.F90

    r1226 r1266  
    2222!
    2323#include "dimensions.h"
    24 !#include "dimphys.h"
    2524!
    2625
     
    8685!
    8786#include "dimensions.h"
    88 !#include "dimphys.h"
    8987#include "comvert.h"
    90 !#include "comgeomfi.h"
    9188
    9289      integer,intent(in) :: ngrid ! total number of physics grid points
  • trunk/LMDZ.MARS/libf/phymars/flusv.F

    r1047 r1266  
    11      SUBROUTINE flusv(KDLON,nsf,n,omega,g,tau,emis,bh,bsol,fah,fdh)
    2       use dimradmars_mod, only: ndlo2, ndlon
     2      use dimradmars_mod, only: ndlo2, ndlon, nflev
    33      IMPLICIT NONE
    44c.......................................................................
     
    3737c
    3838#include "dimensions.h"
    39 #include "dimphys.h"
    40 !#include "dimradmars.h"
    4139c.......................................................................
    4240c  declaration des arguments
     
    5250      INTEGER iv,i,j
    5351      REAL beta,gama1,gama2,amu1,grgama,b0,b1
    54       REAL a(NDLON,4*nlayermx),b(NDLON,4*nlayermx)
    55      &    ,d(NDLON,4*nlayermx),e(NDLON,4*nlayermx)
    56      &    ,y(NDLON,4*nlayermx)
    57      &    ,alambda(NDLON,2*nlayermx)
    58      &    ,e1(NDLON,2*nlayermx),e2(NDLON,2*nlayermx)
    59      &    ,e3(NDLON,2*nlayermx),e4(NDLON,2*nlayermx)
    60      &    ,cah(NDLON,2*nlayermx),cab(NDLON,2*nlayermx)
    61      &    ,cdh(NDLON,2*nlayermx),cdb(NDLON,2*nlayermx)
    62       REAL grg(NDLON,2*nlayermx),grh(NDLON,2*nlayermx)
    63      &    ,grj(NDLON,2*nlayermx),grk(NDLON,2*nlayermx)
    64      &    ,alpha1(NDLON,2*nlayermx),alpha2(NDLON,2*nlayermx)
    65      &    ,sigma1(NDLON,2*nlayermx),sigma2(NDLON,2*nlayermx)
     52      REAL a(NDLON,4*nflev),b(NDLON,4*nflev)
     53     &    ,d(NDLON,4*nflev),e(NDLON,4*nflev)
     54     &    ,y(NDLON,4*nflev)
     55     &    ,alambda(NDLON,2*nflev)
     56     &    ,e1(NDLON,2*nflev),e2(NDLON,2*nflev)
     57     &    ,e3(NDLON,2*nflev),e4(NDLON,2*nflev)
     58     &    ,cah(NDLON,2*nflev),cab(NDLON,2*nflev)
     59     &    ,cdh(NDLON,2*nflev),cdb(NDLON,2*nflev)
     60      REAL grg(NDLON,2*nflev),grh(NDLON,2*nflev)
     61     &    ,grj(NDLON,2*nflev),grk(NDLON,2*nflev)
     62     &    ,alpha1(NDLON,2*nflev),alpha2(NDLON,2*nflev)
     63     &    ,sigma1(NDLON,2*nflev),sigma2(NDLON,2*nflev)
    6664      INTEGER nq
    6765      PARAMETER (nq=8)
     
    272270
    273271      SUBROUTINE sys3v(KDLON,n,a,b,d,e,y)
    274       use dimradmars_mod, only: ndlon, ndlo2
     272      use dimradmars_mod, only: ndlon, ndlo2, nflev
    275273      IMPLICIT NONE
    276274c.......................................................................
     
    291289c
    292290c.......................................................................
    293 c  include des dimensions locales
    294 c
    295 #include "dimensions.h"
    296 #include "dimphys.h"
    297 !#include "dimradmars.h"
    298 c.......................................................................
    299291c  declaration des arguments
    300292c
     
    305297c
    306298      INTEGER iv,i
    307       REAL as(NDLON,4*nlayermx),ds(NDLON,4*nlayermx)
    308      &    ,x(NDLON,4*nlayermx)
     299      REAL as(NDLON,4*nflev),ds(NDLON,4*nflev)
     300     &    ,x(NDLON,4*nflev)
    309301c.......................................................................
    310302c
  • trunk/LMDZ.MARS/libf/phymars/getslopes.F90

    r1226 r1266  
    77
    88#include "dimensions.h"
    9 !#include "dimphys.h"
    10 !#include "slope.h"
    11 !#include "comgeomfi.h"
    12 
    139
    1410! This routine computes slope inclination and orientation for the GCM (callslope=.true. in callphys.def)
  • trunk/LMDZ.MARS/libf/phymars/growthrate.F

    r1226 r1266  
    2020c   -------------
    2121
    22 #include "dimensions.h"
    23 #include "dimphys.h"
    24 !#include "tracer.h"
    2522#include "microphys.h"
    2623
  • trunk/LMDZ.MARS/libf/phymars/gwprofil.F

    r1047 r1266  
    5858C
    5959
    60 #include "dimensions.h"
    61 #include "dimphys.h"
    62 !#include "dimradmars.h"
    6360      integer klon,klev,kidia,kfdia
    6461#include "yoegwd.h"
     
    9188
    9289      integer ji,jk,jl,ilevh
    93       REAL ZDZ2 (NDLO2,nlayermx) , ZNORM(NDLO2) , zoro(NDLO2)
    94       REAL ZTAU (NDLO2,nlayermx+1)
     90      REAL ZDZ2 (NDLO2,klev) , ZNORM(NDLO2) , zoro(NDLO2)
     91      REAL ZTAU (NDLO2,klev+1)
    9592C
    9693C-----------------------------------------------------------------------
     
    182179c     write(*,*) 'ptau'
    183180c     write(*,99) ((ji,ilevh,ptau(ji,ilevh),ji=1,NDLO2),
    184 c    .                  ilevh=1,nlayermx+1)
     181c    .                  ilevh=1,klev+1)
    185182 99   FORMAT(i3,i3,f15.5)
    186183
  • trunk/LMDZ.MARS/libf/phymars/gwstress.F

    r1047 r1266  
    4848      implicit none
    4949#include "dimensions.h"
    50 #include "dimphys.h"
    51 !#include "dimradmars.h"
    5250      integer klon,klev,kidia,kfdia
    5351
  • trunk/LMDZ.MARS/libf/phymars/improvedclouds.F

    r1226 r1266  
    3535c           A. Spiga, optimization (February 2012)
    3636c------------------------------------------------------------------
    37 !#include "dimensions.h"
    38 !#include "dimphys.h"
    3937#include "callkeys.h"
    40 !#include "tracer.h"
    41 !#include "comgeomfi.h"
    42 !#include "dimradmars.h"
    4338#include "microphys.h"
    44 !#include "conc.h"
    4539c------------------------------------------------------------------
    4640c     Inputs:
  • trunk/LMDZ.MARS/libf/phymars/ini_archive.F

    r1208 r1266  
    3838
    3939#include "dimensions.h"
    40 #include "dimphys.h"
    4140#include "paramet.h"
    4241#include "comconst.h"
     
    4847#include "description.h"
    4948#include "serre.h"
    50 !#include "control.h"
    51 !#include"comsoil.h"
    52 
    5349#include "netcdf.inc"
    5450
  • trunk/LMDZ.MARS/libf/phymars/initracer.F

    r1226 r1266  
    2727
    2828
    29 !#include "dimensions.h"
    30 !#include "dimphys.h"
    3129#include "callkeys.h"
    32 !#include "tracer.h"
    33 !#include "advtrac.h"
    34 !#include "comgeomfi.h"
    35 
    36 !#include "surfdat.h"
    3730
    3831      integer,intent(in) :: ngrid ! number of atmospheric columns
  • trunk/LMDZ.MARS/libf/phymars/iniwrite.F

    r1226 r1266  
    2323#include "dimensions.h"
    2424#include "paramet.h"
    25 !include "comconst.h"
    2625#include "comvert.h"
    2726#include "comgeom.h"
     
    3231#include "description.h"
    3332#include "serre.h"
    34 !#include"dimphys.h"
    35 !#include"comsoil.h"
    3633
    3734c   Arguments:
  • trunk/LMDZ.MARS/libf/phymars/iniwritesoil.F90

    r1226 r1266  
    1111
    1212#include"dimensions.h"
    13 !#include"dimphys.h"
    1413#include"paramet.h"
    1514#include"comgeom.h"
    16 !#include"comsoil.h"
    1715#include"netcdf.inc"
    1816
     
    5149endif
    5250ierr=NF_DEF_DIM(nid,"depth",nsoilmx,idim_depth)
    53 ! nsoilmx known from dimphys.h
     51! nsoilmx known from comsoil_h
    5452if (ierr.ne.NF_NOERR) then
    5553  write(*,*)"iniwritesoil: Error, could not define depth dimension"
  • trunk/LMDZ.MARS/libf/phymars/lect_start_archive.F

    r1246 r1266  
    2323
    2424#include "dimensions.h"
    25 !#include "dimphys.h"
    26 !#include "surfdat.h"
    27 !#include "comsoil.h"
    28 !#include "dimradmars.h"
    2925#include "paramet.h"
    3026#include "comconst.h"
    3127#include "comvert.h"
    3228#include "comgeom2.h"
    33 !#include "control.h"
    3429#include "logic.h"
    3530#include "description.h"
    3631#include "ener.h"
    3732#include "temps.h"
    38 !#include "lmdstd.h"
    3933#include "netcdf.inc"
    40 !#include "tracer.h"
    41 !#include"advtrac.h"
    4234c=======================================================================
    4335c   Declarations
     
    337329      write(*,*) '    which implies that you want subterranean interpola
    338330     &tion.'
    339       write(*,*) '  Otherwise, set nsoilmx -in dimphys.h- to: ',nsoilold
     331      write(*,*) '  Otherwise, set nsoilmx -in comsoil_h- to: ',nsoilold
    340332      endif
    341333      write(*,*) "time lenght: ",timelen
  • trunk/LMDZ.MARS/libf/phymars/lwb.F

    r1085 r1266  
    1111      implicit none
    1212 
    13 !#include "dimensions.h"
    14 !#include "dimphys.h"
    15 !#include "dimradmars.h"
    16 !#include "callkeys.h"
    17 
    18 !#include "yomlw.h"
    19 
    2013c----------------------------------------------------------------------
    2114c         0.1   arguments
  • trunk/LMDZ.MARS/libf/phymars/lwdiff.F

    r1246 r1266  
    1010      IMPLICIT NONE
    1111 
    12 !#include "dimensions.h"
    13 !#include "dimphys.h"
    14 !#include "dimradmars.h"
    1512#include "callkeys.h"
    1613
    17 !#include "yomlw.h"
    1814C-----------------------------------------------------------------------
    1915C
  • trunk/LMDZ.MARS/libf/phymars/lwflux.F

    r1047 r1266  
    1515      implicit none
    1616 
    17 
    18 !#include "dimensions.h"
    19 !#include "dimphys.h"
    20 !#include "dimradmars.h"
    2117#include "callkeys.h"
    2218#include "comg1d.h"
    23  
    24 !#include "yomlw.h"
    2519
    2620c----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/lwi.F

    r1226 r1266  
    99      implicit none
    1010
    11 
    12 !#include "dimensions.h"
    13 !#include "dimphys.h"
    14 !#include "dimradmars.h"
    1511#include "comg1d.h"
    1612#include "callkeys.h"
    17 !#include "yomlw.h"
    1813 
    1914CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  • trunk/LMDZ.MARS/libf/phymars/lwmain.F

    r1246 r1266  
    1717      implicit none
    1818 
    19 !#include "dimensions.h"
    20 !#include "dimphys.h"
    21 !#include "dimradmars.h"
    2219#include "callkeys.h"
    2320#include "comg1d.h"
    24 !#include "yomlw.h"
    2521
    2622c----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/lwtt.F

    r1047 r1266  
    1010      use yomlw_h, only: ga, gb, cst_voigt
    1111      implicit none
    12 
    13 !#include "dimensions.h"
    14 !#include "dimphys.h"
    15 !#include "dimradmars.h"
    16 !#include "yomlw.h"
    1712
    1813c----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/lwu.F

    r1246 r1266  
    3737      implicit none
    3838
    39 !#include "dimensions.h"
    40 !#include "dimphys.h"
    41 !#include "dimradmars.h"
    42 
    43 !#include "yomlw.h"
    44 
    4539#include "callkeys.h"
    4640
  • trunk/LMDZ.MARS/libf/phymars/lwxb.F

    r1047 r1266  
    3636      use yomlw_h, only: xi, nlaylte
    3737      implicit none
    38 
    39 !#include "dimensions.h"
    40 !#include "dimphys.h"
    41 !#include "dimradmars.h"
    42 !#include "callkeys.h"
    43  
    44 !#include "yomlw.h"
    4538
    4639c----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/lwxd.F

    r1047 r1266  
    3636      implicit none
    3737
    38 !#include "dimensions.h"
    39 !#include "dimphys.h"
    40 !#include "dimradmars.h"
    41  
    42 !#include "yomlw.h"
    4338#include "callkeys.h"
    4439
  • trunk/LMDZ.MARS/libf/phymars/lwxn.F

    r1047 r1266  
    7474      implicit none
    7575
    76 !#include "dimensions.h"
    77 !#include "dimphys.h"
    78 !#include "dimradmars.h"
    79  
    80 !#include "yomlw.h"
    8176#include "callkeys.h"
    8277
  • trunk/LMDZ.MARS/libf/phymars/newcondens.F

    r1263 r1266  
    5959c
    6060#include "dimensions.h"
    61 !#include "dimphys.h"
    62 !#include "surfdat.h"
    63 !#include "comgeomfi.h"
    6461#include "comvert.h"
    65 !#include "paramet.h"
    6662#include "callkeys.h"
    67 !#include "tracer.h"
    6863
    6964c-----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/newsedim.F

    r1226 r1266  
    1414c   declarations:
    1515c   -------------
    16 
    17 !#include "dimensions.h"
    18 !#include "dimphys.h"
    1916
    2017c
  • trunk/LMDZ.MARS/libf/phymars/newstart.F

    r1246 r1266  
    3939#include "dimensions.h"
    4040      integer, parameter :: ngridmx = (2+(jjm-1)*iim - 1/jjm)
    41 #include "dimphys.h"
    42 !#include "surfdat.h"
    43 !#include "comsoil.h"
    44 !#include "dimradmars.h"
    4541#include "paramet.h"
    4642#include "comconst.h"
    4743#include "comvert.h"
    4844#include "comgeom2.h"
    49 !#include "control.h"
    5045#include "logic.h"
    5146#include "description.h"
    5247#include "ener.h"
    5348#include "temps.h"
    54 !#include "lmdstd.h"
    5549#include "comdissnew.h"
    5650#include "clesph0.h"
    5751#include "serre.h"
    5852#include "netcdf.inc"
    59 !#include"advtrac.h"
    60 !#include"tracer.h"
    6153#include "datafile.h"
    6254c=======================================================================
     
    10597c variable physique
    10698c------------------
    107 !      REAL tsurf(ngridmx)      ! surface temperature
    108 !      REAL tsoil(ngridmx,nsoilmx) ! soil temperature
    109 !      REAL co2ice(ngridmx)     ! CO2 ice layer
    110 !      REAL emis(ngridmx)       ! surface emissivity
    111 !      REAL tauscaling(ngridmx) ! dust conversion factor
    11299      REAL tauscadyn(iip1,jjp1) ! dust conversion factor on the dynamics grid
    113 !      REAL,ALLOCATABLE :: qsurf(:,:)
    114 !      REAL q2(ngridmx,nlayermx+1)
    115 !      REAL rnaturfi(ngridmx)
    116100      real alb(iip1,jjp1),albfi(ngridmx) ! albedos
    117101      real ith(iip1,jjp1,nsoilmx),ithfi(ngridmx,nsoilmx) ! thermal inertia (3D)
     
    203187! allocate arrays
    204188      allocate(q(iip1,jjp1,llm,nqtot))
    205 !      allocate(qsurf(ngridmx,nqtot)) ! done in ini_surfdat_h
    206189      allocate(coefvmr(nqtot))
    207190
  • trunk/LMDZ.MARS/libf/phymars/nirco2abs.F

    r1226 r1266  
    4747c    ------------------
    4848c
    49 !#include "dimensions.h"
    50 !#include "dimphys.h"
    5149#include "callkeys.h"
    52 !#include "comdiurn.h"
    5350#include "nirdata.h"
    54 !#include "tracer.h"
    5551
    5652c-----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/nlte_tcool.F

    r1260 r1266  
    3434
    3535      include "dimensions.h"
    36       include "dimphys.h"
    3736      include 'nlte_paramdef.h'
    3837      include 'nlte_commons.h'
    3938      include "chimiedata.h"
    40 !      include "conc.h"
    4139
    4240
     
    13611359     @     ( mmean_nlte,cpmean_nlte )         
    13621360      USE comcstfi_h
     1361      use param_v4_h, only: n_avog
    13631362      implicit none                           
    13641363     
    1365       include 'param.h'
    1366      
    13671364c     argumentos                                   
    1368       real      mmean_nlte,cpmean_nlte
    1369       real      hrkday_convert                           
     1365      real mmean_nlte,cpmean_nlte
     1366      real hrkday_convert                           
    13701367     
    13711368ccccccccccccccccccccccccccccccccccccc
  • trunk/LMDZ.MARS/libf/phymars/nltecool.F

    r1047 r1266  
    3636#include "nltedata.h" ! (Equivalent to the reading of the "nlte_escape.dat" file)
    3737#include "dimensions.h"
    38 #include "dimphys.h"
    3938#include "chimiedata.h"
    40 !#include "conc.h" !Added to have "dynamic composition" in the scheme
    41 !#include "tracer.h" !"
    4239#include "callkeys.h"
    4340
  • trunk/LMDZ.MARS/libf/phymars/nlthermeq.F

    r1047 r1266  
    1010      use yomlw_h, only: nlaylte
    1111      implicit none
    12 !#include "dimensions.h"
    13 !#include "dimphys.h"
    14 !#include "dimradmars.h"
    1512#include "nlteparams.h"
    16 !#include "yomlw.h"
    1713#include "callkeys.h"
    1814
  • trunk/LMDZ.MARS/libf/phymars/nuclea.F

    r1226 r1266  
    1616
    1717#include "dimensions.h"
    18 #include "dimphys.h"
    19 !#include "tracer.h"
    2018#include "microphys.h"
    2119
  • trunk/LMDZ.MARS/libf/phymars/orodrag.F

    r1226 r1266  
    5353C
    5454C     comcstfi.h
    55 C     dimphys.h
    5655C     yoegwd.h
    5756C
     
    7675C
    7776C
    78 #include "dimensions.h"
    79 #include "dimphys.h"
    80 !#include "dimradmars.h"
    8177      integer klon,klev,kidia
    8278      parameter(kidia=1)
     
    123119      real zconb,zabsv,zzd1,ratio,zust,zvst,zdis,ztemp
    124120C
    125       REAL   ZTAU(NDLO2,nlayermx+1),
    126      *       ZSTAB(NDLO2,nlayermx+1),
    127      *       ZVPH(NDLO2,nlayermx+1),
    128      *       ZRHO(NDLO2,nlayermx+1),
    129      *       ZRI(NDLO2,nlayermx+1),
    130      *       ZpsI(NDLO2,nlayermx+1),
    131      *       Zzdep(NDLO2,nlayermx)
     121      REAL   ZTAU(NDLO2,klev+1),
     122     *       ZSTAB(NDLO2,klev+1),
     123     *       ZVPH(NDLO2,klev+1),
     124     *       ZRHO(NDLO2,klev+1),
     125     *       ZRI(NDLO2,klev+1),
     126     *       ZpsI(NDLO2,klev+1),
     127     *       Zzdep(NDLO2,klev)
    132128      REAL   ZDUDT(NDLO2),
    133129     *       ZDVDT(NDLO2),
  • trunk/LMDZ.MARS/libf/phymars/orosetup.F

    r1226 r1266  
    5151C
    5252
    53 #include "dimensions.h"
    54 #include "dimphys.h"
    55 !#include "dimradmars.h"
    5653      integer klon,klev,kidia,kfdia
    5754
     
    8380C
    8481C
    85       LOGICAL LL1(NDLO2,nlayermx+1)
     82      LOGICAL LL1(NDLO2,klev+1)
    8683      integer kknu(NDLO2),kknu2(NDLO2),kknub(NDLO2),kknul(NDLO2),
    8784     *        kentp(NDLO2),ncount(NDLO2) 
    8885C
    89       REAL ZHCRIT(NDLO2,nlayermx),ZNCRIT(NDLO2,nlayermx),
    90      *     ZVPF(NDLO2,nlayermx), ZDP(NDLO2,nlayermx)
     86      REAL ZHCRIT(NDLO2,klev),ZNCRIT(NDLO2,klev),
     87     *     ZVPF(NDLO2,klev), ZDP(NDLO2,klev)
    9188      REAL ZNORM(NDLO2),zpsi(NDLO2),zb(NDLO2),zc(NDLO2),
    9289     *      zulow(NDLO2),zvlow(NDLO2),znup(NDLO2),znum(NDLO2)
  • trunk/LMDZ.MARS/libf/phymars/phyetat0.F90

    r1246 r1266  
    2121!         June 2013 TN : Possibility to read files with a time axis
    2222!         November 2013 EM : Enabeling parallel, using iostart module
    23 !======================================================================
    24 !#include "netcdf.inc"
    25 !#include "dimensions.h"
    26 !#include "dimphys.h"
    27 !#include "comgeomfi.h"
    28 !#include "surfdat.h"
    29 !#include "dimradmars.h"
    30 !#include "tracer.h"
    31 !#include "advtrac.h"
    32 !#include "control.h"
    3323!======================================================================
    3424  INTEGER nbsrf !Mars nbsrf a 1 au lieu de 4
  • trunk/LMDZ.MARS/libf/phymars/physiq.F

    r1264 r1266  
    3434     &                     obliquit
    3535      USE comcstfi_h, only: r, cpp, mugaz, g, rcp, pi, rad, daysec
     36      use param_v4_h, only: nreact,n_avog,
     37     &                      fill_data_thermos, allocate_param_thermos
     38      use iono_h, only: allocate_param_iono
    3639#ifdef MESOSCALE
    3740      use comsoil_h, only: mlayer,layer
     
    144147
    145148#include "dimensions.h"
    146 #include "dimphys.h"
    147 !#include "comgeomfi.h"
    148 !#include "surfdat.h"
    149 !#include "comsoil.h"
    150 !#include "comdiurn.h"
    151149#include "callkeys.h"
    152 !#include "comsaison.h"
    153 !#include "control.h"
    154 !#include "dimradmars.h"
    155150#include "comg1d.h"
    156 !#include "tracer.h"
    157151#include "nlteparams.h"
    158152#include "comvert.h"
    159 
    160153#include "chimiedata.h"
    161 #include "param.h"
    162 #include "param_v4.h"
    163 !#include "conc.h"
    164 
    165154#include "netcdf.inc"
    166 
    167 !#include "slope.h"
    168155
    169156c Arguments :
     
    415402      PRINT*,'check: tracernames ', noms
    416403      PRINT*,'check: emis ',emis(1),emis(ngrid)
    417       PRINT*,'check: q2 ',q2(1,1),q2(ngrid,nlayermx+1)
     404      PRINT*,'check: q2 ',q2(1,1),q2(ngrid,nlayer+1)
    418405      PRINT*,'check: qsurf ',qsurf(1,1),qsurf(ngrid,nq)
    419406      PRINT*,'check: co2 ',co2ice(1),co2ice(ngrid)
     
    463450
    464451         if (callthermos) then
     452            call fill_data_thermos
     453            call allocate_param_thermos(nlayer)
     454            call allocate_param_iono(nlayer,nreact)
    465455            if(solvarmod.eq.0) call param_read
    466456            if(solvarmod.eq.1) call param_read_e107
     
    884874             zdqdif(1:ngrid,1,igcm_dust_mass) =
    885875     .                  -zdqsdif(1:ngrid,igcm_dust_mass)
    886              zdqdif(1:ngrid,2:nlayermx,1:nq) = 0.
     876             zdqdif(1:ngrid,2:nlayer,1:nq) = 0.
    887877             DO iq=1, nq
    888878              IF ((iq .ne. igcm_dust_mass)
  • trunk/LMDZ.MARS/libf/phymars/read_dust_scenario.F90

    r1156 r1266  
    88
    99#include "dimensions.h"
    10 #include "dimphys.h"
    11 !#include "comgeomfi.h"
    1210#include "datafile.h"
    1311#include "callkeys.h"
  • trunk/LMDZ.MARS/libf/phymars/simpleclouds.F

    r1246 r1266  
    3131c                            of the typical CCN profile, Oct. 2011)
    3232c------------------------------------------------------------------
    33 !#include "dimensions.h"
    34 !#include "dimphys.h"
    3533#include "callkeys.h"
    36 !#include "tracer.h"
    37 !#include "comgeomfi.h"
    38 !#include "dimradmars.h"
    3934
    4035c------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/soil.F

    r1224 r1266  
    2121
    2222#include "dimensions.h"
    23 #include "dimphys.h"
    24 
    25 !#include"comsoil.h"
    26 
    27 !#include"surfdat.h"
    28 #include"callkeys.h"
     23#include "callkeys.h"
    2924
    3025c-----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/soil_tifeedback.F

    r1224 r1266  
    2626
    2727#include "dimensions.h"
    28 #include "dimphys.h"
    29 !#include "comsoil.h"
    30 !#include "tracer.h"
    31 !#include "surfdat.h"
    3228
    3329c Local variables
  • trunk/LMDZ.MARS/libf/phymars/start2archive.F

    r1230 r1266  
    3535#include "logic.h"
    3636#include "temps.h"
    37 !#include "control.h"
    3837#include "ener.h"
    3938#include "description.h"
    40 
    41 !#include "dimphys.h"
    42 !#include "comsoil.h"
    43 !#include"advtrac.h"
    4439#include "netcdf.inc"
    4540
  • trunk/LMDZ.MARS/libf/phymars/suaer.F90

    r1246 r1266  
    4545#include "callkeys.h"
    4646#include "datafile.h"
    47 !#include "dimensions.h"
    48 !#include "dimphys.h"
    49 !#include "dimradmars.h"     
    5047
    5148! Optical properties (read in external ASCII files)
  • trunk/LMDZ.MARS/libf/phymars/surfini.F

    r1226 r1266  
    2323c   -------------
    2424#include "dimensions.h"
    25 !#include "dimphys.h"
    26 !#include "surfdat.h"
    2725#include "callkeys.h"
    28 !#include "tracer.h"
    29 !#include "comgeomfi.h"
    30 
    3126#include "datafile.h"
    3227
  • trunk/LMDZ.MARS/libf/phymars/swmain.F

    r1246 r1266  
    1010      IMPLICIT NONE
    1111     
    12 !#include "dimensions.h"
    13 !#include "dimphys.h"
    14 !#include "dimradmars.h"
    15 
    16 !#include "yomlw.h"
    1712#include "callkeys.h"
    1813c     
  • trunk/LMDZ.MARS/libf/phymars/swr_fouquart.F

    r1246 r1266  
    99      IMPLICIT NONE
    1010C     
    11 !#include "dimensions.h"
    12 !#include "dimphys.h"
    13 !#include "dimradmars.h"
    1411#include "callkeys.h"
    15 !#include "yomlw.h"
    1612
    1713C     
     
    382378      implicit none
    383379C
    384 !#include "dimensions.h"
    385 !#include "dimphys.h"
    386 !#include "dimradmars.h"
    387380C
    388381C**** *DEDD* - DELTA-EDDINGTON IN A CLOUDY LAYER
  • trunk/LMDZ.MARS/libf/phymars/swr_toon.F

    r1246 r1266  
    1010      IMPLICIT NONE
    1111C     
    12 !#include "dimensions.h"
    13 !#include "dimphys.h"
    14 !#include "dimradmars.h"
    1512#include "callkeys.h"
    16 !#include "yomaer.h"
    17 !#include "yomlw.h"
    1813
    1914C     
  • trunk/LMDZ.MARS/libf/phymars/tabfi.F

    r1246 r1266  
    3434c                              comparer avec le day_ini dynamique)
    3535c
    36 c      - lmax:    tab_cntrl(tab0+2) (pour test avec nlayermx)
     36c      - lmax:    tab_cntrl(tab0+2) (pour test avec nlayer)
    3737c
    3838c      - p_rad
     
    5454      implicit none
    5555 
    56 !#include "dimensions.h"
    57 !#include "dimphys.h"
    58 !#include "comgeomfi.h"
    59 !#include "surfdat.h"
    60 !#include "comsoil.h"
    6156#include "netcdf.inc"
    62 !#include "dimradmars.h"
    6357
    6458c-----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/testphys1d.F

    r1246 r1266  
    4141
    4242#include "dimensions.h"
    43 #include "dimphys.h"
    4443      integer, parameter :: ngrid = 1 !(2+(jjm-1)*iim - 1/jjm)
     44      integer, parameter :: nlayer = llm
    4545!#include "dimradmars.h"
    4646!#include "comgeomfi.h"
     
    7272      REAL day           ! date durant le run
    7373      REAL time             ! time (0<time<1 ; time=0.5 a midi)
    74       REAL play(nlayermx)   ! Pressure at the middle of the layers (Pa)
    75       REAL plev(nlayermx+1) ! intermediate pressure levels (pa)
     74      REAL play(nlayer)   ! Pressure at the middle of the layers (Pa)
     75      REAL plev(nlayer+1) ! intermediate pressure levels (pa)
    7676      REAL psurf,tsurf(1)     
    77       REAL u(nlayermx),v(nlayermx)  ! zonal, meridional wind
     77      REAL u(nlayer),v(nlayer)  ! zonal, meridional wind
    7878      REAL gru,grv   ! prescribed "geostrophic" background wind
    79       REAL temp(nlayermx)   ! temperature at the middle of the layers
     79      REAL temp(nlayer)   ! temperature at the middle of the layers
    8080      REAL,ALLOCATABLE :: q(:,:) ! tracer mixing ratio (e.g. kg/kg)
    8181      REAL,ALLOCATABLE :: qsurf(:) ! tracer surface budget (e.g. kg.m-2)
     
    8383      REAL co2ice(1)        ! co2ice layer (kg.m-2)
    8484      REAL emis(1)          ! surface layer
    85       REAL q2(nlayermx+1)   ! Turbulent Kinetic Energy
    86       REAL zlay(nlayermx)   ! altitude estimee dans les couches (km)
     85      REAL q2(nlayer+1)   ! Turbulent Kinetic Energy
     86      REAL zlay(nlayer)   ! altitude estimee dans les couches (km)
    8787
    8888c    Physical and dynamical tandencies (e.g.  m.s-2, K/s, Pa/s)
    89       REAL du(nlayermx),dv(nlayermx),dtemp(nlayermx)
    90       REAL dudyn(nlayermx),dvdyn(nlayermx),dtempdyn(nlayermx)
     89      REAL du(nlayer),dv(nlayer),dtemp(nlayer)
     90      REAL dudyn(nlayer),dvdyn(nlayer),dtempdyn(nlayer)
    9191      REAL dpsurf   
    9292      REAL,ALLOCATABLE :: dq(:,:)
     
    9696      INTEGER thermo
    9797      REAL zls
    98       REAL phi(nlayermx),h(nlayermx),s(nlayermx)
    99       REAL pks, ptif, w(nlayermx)
     98      REAL phi(nlayer),h(nlayer),s(nlayer)
     99      REAL pks, ptif, w(nlayer)
    100100      REAL qtotinit,qtot
    101101      real,allocatable :: mqtot(:)
    102102      INTEGER ierr, aslun
    103       REAL tmp1(0:nlayermx),tmp2(0:nlayermx)
     103      REAL tmp1(0:nlayer),tmp2(0:nlayer)
    104104      Logical  tracerdyn
    105105      integer :: nq=1 ! number of tracers
     
    212212        ! allocate arrays:
    213213        allocate(tname(nq))
    214         allocate(q(nlayermx,nq))
     214        allocate(q(nlayer,nq))
    215215        allocate(qsurf(nq))
    216         allocate(dq(nlayermx,nq))
    217         allocate(dqdyn(nlayermx,nq))
     216        allocate(dq(nlayer,nq))
     217        allocate(dqdyn(nlayer,nq))
    218218        allocate(mqtot(nq))
    219219       
     
    247247            if (ierr.eq.0) then
    248248              read(91,*) qsurf(iq)
    249               do ilayer=1,nlayermx
     249              do ilayer=1,nlayer
    250250                read(91,*) q(ilayer,iq)
    251251              enddo
     
    262262            if (ierr.eq.0) then
    263263              read(91,*) qsurf(iq)
    264               do ilayer=1,nlayermx
     264              do ilayer=1,nlayer
    265265                read(91,*) q(ilayer,iq)
    266266              enddo
     
    278278            if (ierr.eq.0) then
    279279              read(91,*) qsurf(iq)
    280               do ilayer=1,nlayermx
     280              do ilayer=1,nlayer
    281281                read(91,*) q(ilayer,iq)
    282282              enddo
     
    293293            if (ierr.eq.0) then
    294294              read(91,*) qsurf(iq)
    295               do ilayer=1,nlayermx
     295              do ilayer=1,nlayer
    296296                read(91,*) q(ilayer,iq)
    297297              enddo
     
    313313            if (ierr.eq.0) then
    314314              read(91,*) qsurf(iq)
    315               do ilayer=1,nlayermx
     315              do ilayer=1,nlayer
    316316                read(91,*) q(ilayer,iq)
    317317!                write(*,*) "l=",ilayer," q(ilayer,iq)=",q(ilayer,iq)
     
    329329            if (ierr.eq.0) then
    330330              read(91,*) qsurf(iq)
    331               do ilayer=1,nlayermx
     331              do ilayer=1,nlayer
    332332                read(91,*) q(ilayer,iq)
    333333              enddo
     
    345345            if (ierr.eq.0) then
    346346              read(91,*) qsurf(iq)
    347               do ilayer=1,nlayermx
     347              do ilayer=1,nlayer
    348348                read(91,*) q(ilayer,iq)
    349349              enddo
     
    360360            if (ierr.eq.0) then
    361361              read(91,*) qsurf(iq)
    362               do ilayer=1,nlayermx
     362              do ilayer=1,nlayer
    363363                read(91,*) q(ilayer,iq)
    364364              enddo
     
    375375        ! allocate arrays:
    376376        allocate(tname(nq))
    377         allocate(q(nlayermx,nq))
     377        allocate(q(nlayer,nq))
    378378        allocate(qsurf(nq))
    379         allocate(dq(nlayermx,nq))
    380         allocate(dqdyn(nlayermx,nq))
     379        allocate(dq(nlayer,nq))
     380        allocate(dqdyn(nlayer,nq))
    381381        allocate(mqtot(nq))
    382382        do iq=1,nq
     
    410410c  --------------
    411411c
    412       nlayer=nlayermx
    413412      nlevel=nlayer+1
    414413      nsoil=nsoilmx
  • trunk/LMDZ.MARS/libf/phymars/updaterad.F90

    r1226 r1266  
    6565USE comcstfi_h
    6666implicit none
    67 
    68 #include "dimensions.h"
    69 #include "dimphys.h"
    70 !#include "tracer.h"
    7167
    7268real, intent(in)  :: qice,qccn,nccn
     
    122118USE comcstfi_h
    123119implicit none
    124 
    125 #include "dimensions.h"
    126 #include "dimphys.h"
    127 !#include "tracer.h"
    128120
    129121real, intent(in)  :: qice
     
    181173implicit none
    182174
    183 #include "dimensions.h"
    184 #include "dimphys.h"
    185 !#include "tracer.h"
    186 
    187175real, intent(in) :: qdust,ndust ! needed if doubleq
    188176real, intent(in), optional :: tauscaling ! useful for realistic thresholds
     
    237225implicit none
    238226
    239 #include "dimensions.h"
    240 #include "dimphys.h"
    241 !#include "tracer.h"
    242 
    243227real, intent(in) :: qccn,nccn ! needed if doubleq
    244228real, intent(in), optional :: tauscaling ! useful for realistic thresholds
  • trunk/LMDZ.MARS/libf/phymars/updatereffrad.F

    r1246 r1266  
    3535c    -------------
    3636c
    37 !#include "dimensions.h"
    38 !#include "dimphys.h"
    3937#include "callkeys.h"
    40 !#include "dimradmars.h"
    41 !#include "tracer.h"
    42 !#include "yomaer.h"
    4338
    4439c-----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/vdif_kc.F

    r1130 r1266  
    55      IMPLICIT NONE
    66c.......................................................................
    7 !#include "dimensions.h"
    8 !#include "dimphys.h"
    9 !#include "tracer.h"
    107#include "callkeys.h"
    118c.......................................................................
  • trunk/LMDZ.MARS/libf/phymars/vdifc.F

    r1242 r1266  
    3636c   -------------
    3737
    38 !#include "dimensions.h"
    39 !#include "dimphys.h"
    4038#include "callkeys.h"
    41 !#include "surfdat.h"
    42 !#include "comgeomfi.h"
    43 !#include "tracer.h"
    4439#include "microphys.h"
    4540
  • trunk/LMDZ.MARS/libf/phymars/vlz_fi.F

    r1047 r1266  
    1616      IMPLICIT NONE
    1717c
    18 !#include "dimensions.h"
    19 !#include "dimphys.h"
    2018
    2119c
  • trunk/LMDZ.MARS/libf/phymars/watercloud.F

    r1246 r1266  
    3636c   -------------
    3737
    38 !#include "dimensions.h"
    39 !#include "dimphys.h"
    4038#include "callkeys.h"
    41 !#include "tracer.h"
    42 !#include "comgeomfi.h"
    43 !#include "dimradmars.h"
    4439
    4540c   Inputs:
  • trunk/LMDZ.MARS/libf/phymars/write_archive.F

    r1208 r1266  
    3636
    3737#include "dimensions.h"
    38 #include "dimphys.h"
    3938#include "paramet.h"
    4039!#include "control.h"
  • trunk/LMDZ.MARS/libf/phymars/writediagfi.F

    r1130 r1266  
    4848! Commons
    4949#include "dimensions.h"
    50 !#include "dimphys.h"
    5150#include "paramet.h"
    52 !#include "control.h"
    5351#include "comvert.h"
    5452#include "comgeom.h"
     
    5654#include "netcdf.inc"
    5755#include "temps.h"
    58 !#include "surfdat.h"
    5956
    6057! Arguments on input:
  • trunk/LMDZ.MARS/libf/phymars/writediagsoil.F90

    r1130 r1266  
    2020
    2121#include"dimensions.h"
    22 !#include"dimphys.h"
    2322#include"paramet.h"
    2423!#include"control.h"
  • trunk/LMDZ.MARS/libf/phymars/wstats.F90

    r1130 r1266  
    77
    88#include "dimensions.h"
    9 #include "dimphys.h"
    109#include "comconst.h"
    1110#include "statto.h"
     
    293292
    294293include "dimensions.h"
    295 include "dimphys.h"
    296294include "netcdf.inc"
    297295
  • trunk/LMDZ.MARS/libf/phymars/yamada4.F

    r1224 r1266  
    1616!.......................................................................
    1717! MARS
    18 #include "dimensions.h"
    19 #include "dimphys.h"
    20 !#include "tracer.h"
    2118#include "callkeys.h"
    2219!.......................................................................
     
    608605!.......................................................................
    609606! MARS
    610 #include "dimensions.h"
    611 #include "dimphys.h"
    612 !#include "tracer.h"
    613607#include "callkeys.h"
    614608!.......................................................................
     
    689683!.......................................................................
    690684! MARS
    691 #include "dimensions.h"
    692 #include "dimphys.h"
    693 !#include "tracer.h"
    694685#include "callkeys.h"
    695686!.......................................................................
Note: See TracChangeset for help on using the changeset viewer.