Files
GEOS-Chem-adjoint-v35-note/code/jv_cmn.h
2018-08-28 00:46:26 -04:00

124 lines
5.5 KiB
C

! $Id: jv_cmn.h,v 1.1 2009/06/09 21:51:52 daven Exp $
!
!----jv_cmn.h---COMMON BLOCKS for new FAST-J code (wild/prather 7/99)
!
! Parameters
! ----------
!
! NB Number of levels in CTM plus one for above model top
! NC Number of levels in the fundamental Fast-J grid
! NS Maximum number of species which require J-values calculating
! NW Maximum number of wavelength bins that can be used
! NP Maximum number of aerosol/cloud types that can be used
! MX Number of aerosol/cloud types supplied from CTM
! NDUST Number of mineral dust categories
!
! Note: THETA(NL) no longer used
!
! NOTES for CTM Interface (bmy, 10/27/99, 3/23/03)
! =====================================================================
! (1) Change JPNL and JPPJ from parameters to variables, which are
! set in "inphot.f". This allows the user to switch the number
! of levels at run-time via the CTM inputs.
!
! (2) Now make RAD, ZZHT, DTAUMAX, DTAUSUB, DSUBDIV, SZAMAX into
! parameters instead of holding them in common blocks.
!
! (3) Create new common blocks /WLLOC/ and /JVLOC/ to hold certain
! quantities -Xlocal for parallel code (ppm, 4/98, bmy, 9/21/99)
!
! (4) The common blocks that must be held -Xlocal are:
! /ATMOS/, /JVSUB/, /WLLOC/, /JVLOC/
!
! (4a) Declare the above commons THREADPRIVATE for the Compaq
! Alpha platform (bmy, 7/10/01)
!
! (5) Break MIEDX off from the WLLOC common block, since it must
! not be declared LOCAL for the parallelization. (bmy, 5/2/00)
!
! (6) For including aerosol optical depths: (rvm, bmy, 9/30/00)
! (a) Increase MX from 3 to 10 .
! (c) Add ODMDUST(IPAR,JPAR,LPAR,NDUST) to common block /CLIM/
!
! (7) Move NDUST to CMN_SIZE to avoid conflicts (bmy, 11/15/01)
!
! (8) For updating aerosol optical depths again (rvm, bmy, 2/27/02):
! (a) Change NP from 21 to 56
! (b) Change MX from 10 to 35
! (c) Add ODAER(IPAR,JPAR,LPAR,NAER*NRH) to common block /CLIM/
!
! (9) Changed RCS ID tag comment character from "C" to "!" to allow freeform
! compilation. Also added & continuation characters in column 73
! to allow header files to be included in F90 freeform files.
! Also changed comment character from "C" to "!" to allow this
! file to be inlined into freeform source code. (bmy, 6/25/02)
!
! (10) Renamed cpp switch from DEC_COMPAQ to COMPAQ. Also declare common
! blocks ATMOS, JVLOC, WLLOC, JVSUB as !$OMP THREADPRIVATE for
! all platforms. (bmy, 3/23/03)
! (11) Added new pressure denpendencies algorithm parameters
! for MGLY. (tmf, 1/7/09)
! (12) Added 'pdepf' as pressure dependancy function selector. (tmf, 1/31/06)
! (14) Add new optical variables for AOD calculation (clh, 05/06/10)
!-----------------------------------------------------------------------------
INTEGER NB, NC, NS, NW, NP, MX
PARAMETER (NB=LPAR+1, NC=2*NB, NS=51, NW=15, NP=56, MX=35)
CHARACTER*20 TITLEA(NP)
CHARACTER*78 TITLE0
CHARACTER*7 TITLEJ(3,NS), jlabel(JPMAX)
INTEGER jind(JPMAX),jadsub(nc)
INTEGER NJVAL,NW1,NW2,MIEDX,NAA,NLBATM,npdep,jpdep(NS)
REAL*8 TJ,PJ,DM,DO3,Z,AER,AMF,RAD,RFLECT,SZA,U0,TANHT,ZZHT
REAL*8 WBIN,WL,FL,QO2,QO3,Q1D,QQQ,QRAYL,TQQ,FFF,VALJ,WAA,QAA,PAA
REAL*8 RAA,SSA,TREF,OREF,BREF,QBC,DBC,zpdep(NW,7)
REAL*8 WAA_AOD,QAA_AOD,PAA_AOD,RAA_AOD,SSA_AOD
REAL*8 dtaumax,szamax,zj(LPAR,JPMAX),jfacta(JPMAX)
REAL*8 dtausub,dsubdiv
REAL*8 ODMDUST,ODAER
INTEGER PDEPF(7)
REAL*8 MGLYPDEP(NW, 3)
!-----------------------------------------------------------------------
! These common blocks MUST NOT be held local (bmy, 5/2/00)
COMMON /TITLS/TITLE0,TITLEJ,TITLEA
COMMON /CCWVL/WBIN(NW+1),WL(NW),FL(NW),QO2(NW,3),QO3(NW,3),
& Q1D(NW,3),QQQ(NW,2,NS-3),QRAYL(NW),TQQ(3,NS),
& WAA(4,NP),QAA(4,NP),
& PAA(8,4,NP),RAA(4,NP),SSA(4,NP),QBC(NW),
& NJVAL,NW1,NW2,NAA,NLBATM,
& WAA_AOD(NP),QAA_AOD(NP),PAA_AOD(8,NP),
& RAA_AOD(NP),SSA_AOD(NP)
COMMON /CLIM/ TREF(51,18,12),OREF(51,18,12),BREF(51),
& ODMDUST(IPAR,JPAR,LPAR,NDUST),
& ODAER(IPAR,JPAR,LPAR,NAER*NRH)
COMMON /JVALS/jfacta,zpdep,npdep,jpdep,jind,jlabel, &
& pdepf,mglypdep
COMMON /JVIDX/MIEDX(MX)
!-----------------------------------------------------------------------
! These common blocks MUST be held local for the parallelization (bmy, 5/2/00)
COMMON /ATMOS/TJ(NB),PJ(NB+1),DM(NB),DO3(NB),DBC(NB),Z(NB), &
& AER(MX,NB),AMF(NB,NB),RFLECT,SZA,U0,TANHT
COMMON /JVLOC/zj
COMMON /WLLOC/FFF(NW,lpar),VALJ(NS)
COMMON /JVSUB/jadsub
!=================================================================
! Declare the following common blocks as THREADPRIVATE for the
! OpenMP parallelization on all platforms (bmy, 3/23/03)
!=================================================================
!$OMP THREADPRIVATE( /ATMOS/ )
!$OMP THREADPRIVATE( /JVLOC/ )
!$OMP THREADPRIVATE( /WLLOC/ )
!$OMP THREADPRIVATE( /JVSUB/ )
!-----------------------------------------------------------------------
! Parameters for FAST-J
PARAMETER ( RAD = 6375.d5 )
PARAMETER ( ZZHT = 5.d5 )
PARAMETER ( dtaumax = 1.d0 )
PARAMETER ( dtausub = 1.d0 )
PARAMETER ( dsubdiv = 10.d0 )
PARAMETER ( szamax = 98.0d0 )
!-----------------------------------------------------------------------