123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- !
- #include "tm5.inc"
- !
- MODULE PHOTOLYSIS_DATA
- use dims, only: nregions
- implicit none
- ! types used in photolysis...
- TYPE PHOT_DATA
- !
- ! o3klim_top
- ! vo3_surf : vertical column ozone at the surface (#/cm2)
- ! cloudfrac : maximum overlap cloud fraction (-)
- ! albedo : surface albedo (UV spectral region)
- ! vo3 : overhead ozone (#/cm2)
- ! ags_av : statistics: contains average albedo
- ! vo3s_av : statistics: contains average ozone column (#/cm2)
- ! cfr_av : statistics: average cloud fraction
- ! jo3_av : statistics: contains average jo3 (1/s)
- ! jno2_av : statistics: contains average jno2 (1/s)
- ! additional fields added to assess the upgrade to the photolysis
- ! jch2o_a_av : statistics: contains average jach2o(1/s)
- ! jch2o_b_av : statistics: contains average jbch2o(1/s)
- ! jmepe_av : statistics: contains average jch3ooh(1/s)
- ! jpan_av : statistics: contains average jpan(1/s)
- ! jorgn_av : statistics: contains average jorgn(1/s)
- ! jno3a_av : statistics: contains average jno3a(1/s)
- ! jno3b_av : statistics: contains average jno3b(1/s)
- ! nj_av, nvo3s_av, ncloud_av, nalb_av : couters for statistics
- !
- real, dimension(:), pointer :: o3klim_top
- real, dimension(:,:), pointer :: albedo
- ! real, dimension(:,:,:), pointer :: vo3
- real, dimension(:,:,:), pointer :: cloud_reff
- real, dimension(:,:,:), pointer :: sad_cld
- real, dimension(:,:,:), pointer :: sad_ice
- real, dimension(:,:,:), pointer :: sad_aer
- real, dimension(:,:,:), pointer :: sad_cld_av
- real, dimension(:,:,:), pointer :: sad_ice_av
- real, dimension(:,:,:), pointer :: sad_aer_av
- real, dimension(:,:,:), pointer :: cfr_av
- real, dimension(:,:,:), pointer :: lwp_av
- real, dimension(:,:,:), pointer :: reff_av
- real, dimension(:,:), pointer :: ags_av
- real, dimension(:,:), pointer :: sza_av
- integer, dimension(:,:), pointer :: aero_surface_clim
- ! J-values and their averages
- real, dimension(:,:,:), pointer :: jo3 , jo3_av
- real, dimension(:,:,:), pointer :: jno2 , jno2_av
- real, dimension(:,:,:), pointer :: jhno2 , jhno2_av
- real, dimension(:,:,:), pointer :: jch2oa, jch2oa_av
- real, dimension(:,:,:), pointer :: jch2ob, jch2ob_av
- ! averaged optical
- real, dimension(:,:,:), pointer :: pmcld_av
- real, dimension(:,:,:), pointer :: taus_cld_av
- real, dimension(:,:,:), pointer :: taua_cld_av
- real, dimension(:,:,:,:,:), pointer :: pmaer_av
- real, dimension(:,:,:,:,:), pointer :: taus_aer_av
- real, dimension(:,:,:,:,:), pointer :: taua_aer_av
- ! counters for averages
- real :: nj_av, nvo3s_av, nalb_av, ncloud_av, naer_av, nsad_av
- ! ONLINE PARAMETERS
- ! ------------------
- ! optical depth aerosol
- real, dimension(:,:,:,:,:), pointer :: taus_aer, taua_aer
- ! optical depth clouds and aerosols
- real, dimension(:,:,:), pointer :: taua_cld, taus_cld
- ! scattering aerosol
- real, dimension(:,:,:,:,:), pointer :: pmaer
- ! scattering cloud
- real, dimension(:,:,:), pointer :: pmcld
- ! column densities
- real, dimension(:,:,:), pointer :: v2, v3
- ! scaling ratio limits
- real, dimension(:,:), pointer :: v3_surf
- ! band limits for low direct fluxes
- real, dimension(:,:), pointer :: band1_limit, band3_limit
- ! temp dependent cross-sections ; the o2 has been replaced by a 1-D array
- ! each individual look up array has been tuned to reduce the overhead (JEW, AUG 2008)
- ! the valuesa are now ascribed in the main loop calculating the photolysis rates
- real, dimension(:,:,:,:), pointer :: qy_ch3cocho
- real, dimension(:,:,:,:), pointer :: qy_c2o3
- END TYPE PHOT_DATA
- type(phot_data),dimension(nregions),target :: phot_dat
- !
- ! Three channels introduced for ALD2 (JEW 24.10.14)
- ! HONO added (JEW 08.01.2015)
- !
- integer,parameter :: nj = 25
- integer,parameter :: jo3d = 1
- integer,parameter :: jno2 = 2
- integer,parameter :: jh2o2 = 3
- integer,parameter :: jhno3 = 4
- integer,parameter :: jhno4 = 5
- integer,parameter :: jn2o5a = 6
- integer,parameter :: jn2o5b = 7
- integer,parameter :: jach2o = 8
- integer,parameter :: jbch2o = 9
- integer,parameter :: jmepe = 10
- integer,parameter :: jano3 = 11
- integer,parameter :: jbno3 = 12
- integer,parameter :: jpana = 13
- integer,parameter :: jpanb = 14
- integer,parameter :: jorgn = 15
- integer,parameter :: jald2 = 16
- integer,parameter :: jmgly = 17
- integer,parameter :: jrooh = 18
- integer,parameter :: jo2 = 19
- integer,parameter :: jispd = 20
- integer,parameter :: ja_acet = 21
- integer,parameter :: jb_acet = 22
- integer,parameter :: jhono = 23
- integer,parameter :: jmo2no2a = 24
- integer,parameter :: jmo2no2b = 25
- character(len=9), dimension(nj), parameter :: jnam = (/ &
- 'jo3d ','jno2 ','jh2o2 ','jhno3 ','jhno4 ', &
- 'jn2o5a ','jn2o5b ','jach2o ','jbch2o ','jmepe ', &
- 'jano3 ','jbno3 ','jpana ','jpanb ','jorgn ',&
- 'jald2 ','jmgly ','jrooh ','jo2 ','jispd ', &
- 'ja_acet ','jb_acet ','jhono ','jmo2no2a ','jmo2no2b '/)
- integer, parameter :: maxwav = 122 ! maximal number of wave length intervals
- integer, parameter :: maxw = 120 ! maximal number of wave length intervals for calculations
- ! purely o2 and o3 absorbing atmosphere
- integer, parameter :: nmom = 16 ! number of moments of phase functions
- integer, parameter :: nbands_trop = 7 ! number of wave length intervals (bands)
- integer, parameter :: ngrid = 2 ! number of spectral grid types: normal and high angle
- integer :: nwdep ! number of wave length intervals (bands)
- ! o2 cross section in band 1
- real,dimension(17) :: cross_o2
- data cross_o2 /7.448E-24, 7.322E-24, 7.002E-24, 6.608E-24, 6.118E-24, 5.736E-24, 5.302E-24,&
- 4.741E-24, 4.261E-24, 3.788E-24, 3.213E-24, 2.69E-24, 2.218E-24, 1.793E-24,&
- 1.384E-24, 1.054E-24, 6.318E-25/
- ! rayleigh scattering cross section [cm^2/part.]
- real,dimension(maxwav) :: cs_ray
- !cross sections [cm^2/part.]
- real,dimension(maxwav,nj) :: cs
- real,dimension(maxwav,8,4) :: sca,abs_eff,g,ext
- ! effective scattering cross section [cm^2/p]
- ! effective absorption cross section [cm^2/p]
- ! effective asymmetry factor,extinction coefficient [1/km]
- ! different aerosol types:
- ! 1 = rural aerosol
- ! 2 = maritime aerosol
- ! 3 = urban aerosol
- ! 4 = free troposphere aerosol
- real,dimension(4) :: pn_ref = (/ 15000., 4000., 20000., 5000./)
- ! The wavelengths < 204 nm are not yet considered for the tropospheric version
- ! ------------------------------------------------------------------------
- ! O2 absorption features:
- ! ------------------------------------------------------------------------
- ! ( 121.4 - 121.9 nm Lyman-Alpha line : removed in trop version)
- ! ( 100 - 175 nm Schumann-Runge continuum : removed in trop version)
- ! ( 175 - 204 nm Schumann-Runge bands : removed in trop version)
- ! 204 - 241 nm Herzberg continuum : include scattering effects
- !
- ! ------------------------------------------------------------------------
- ! O3 absorption features:
- ! ------------------------------------------------------------------------
- ! 204 - 240 nm (no name) : include scattering effects
- ! 240 - 310 nm Hartley band : include scattering effects
- ! 310 - 400 nm Huggins band : include scattering effects
- ! 400 - 850 nm Chappuis bands : include scattering effects
- !
- ! ------------------------------------------------------------------------
- ! Scattering bands: The selection of the bands and their effective
- ! wavelengths are inspired on Landgraf and Crutzen
- ! ------------------------------------------------------------------------
- ! band spectral range eff. wavelength index spectral grid
- ! ------------------------------------------------------------------------
- ! 1 204.082 - 240.964 nm 205.128 1
- ! 2 240.964 - 289.855 nm 287.770 29
- ! 3 289.855 - 305.500 nm 303.000 33
- ! 4 305.500 - 313.500 nm 309.000 39
- ! 5 313.500 - 337.500 nm 320.000 46
- ! 6 337.500 - 422.500 nm 370.000 56
- ! 7 422.500 - 735.000 nm 580.000 98
- !
- ! JEW : band 7 has been optimized and truncated down to end of NO3 spectra
- ! JEW : Removal of bins < 204nm and >640nm reduces the main spectral array by ~25%
- ! JEW : Band limits for band 7 have subsequently changed
-
- real, dimension(:), allocatable :: photo_wavelengths
- integer, dimension(nbands_trop) :: wav_grid , wav_gridA
- integer,dimension(nbands_trop) :: &
- lini = (/1, 18, 31, 40, 48, 61, 78 /), &
- lfin = (/17, 30, 39, 47, 60, 77, 122/), &
- lmid = (/2, 30, 36, 43, 54, 67, 109/)
- integer,dimension(nbands_trop) :: &
- lini_gridA = (/1, 18, 31, 40, 48, 63, 90/), &
- lfin_gridA = (/17, 30, 39, 47, 62, 89, 122/), &
- lmid_gridA = (/4, 30, 36, 45, 58, 70, 115/)
- ! Maximum zenith angle for photolysis calculations. Between SZA_LIMIT and SZA_WIDELIMIT,
- ! photorates are linearly interpolated.
- real, parameter :: sza_limit = 85. ! max angle for calculations
- real, parameter :: sza_widelimit = 94.
- real,dimension(maxwav) :: wave ! wavelength in the middle of the interval
- real,dimension(maxwav+54) :: wave_full ! full 8 band grid
- real,dimension(maxwav) :: dwave ! width of the wavelength intervals [cm]
- real,dimension(maxwav+54) :: dwave_full
- ! extra-terrestrial flux per wave length bin
- real,dimension(maxwav) :: flux
- end module photolysis_data
|