Changeset 1246 for trunk/LMDZ.MARS/libf/phymars/dimradmars_mod.F90
- Timestamp:
- May 11, 2014, 2:37:58 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/phymars/dimradmars_mod.F90
r1224 r1246 16 16 ! Number of kind of tracer radiative properties 17 17 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 18 ! naerkind is set in scatterers.h (built when compiling with makegcm -s #) 19 20 #include"scatterers.h" 21 ! NB: May have to change value of nsizemax below when changing scatterers 18 ! naerkind is set by reading callphys.def 19 ! -- see conf_phys 20 ! -- value of nsizemax below is comfortably high 21 ! but beware in case you add a lot of scatterers 22 INTEGER, SAVE :: naerkind 23 24 ! AS: previously in aerkind.h 25 character*20, SAVE, ALLOCATABLE :: name_iaer(:) ! name of the scatterers 26 integer iaer_dust_conrath ! Typical dust profiles using a 27 ! Conrath type analytical equation 28 integer iaer_dust_doubleq ! Dust profile is given by the 29 ! mass mixing ratio of the two- 30 ! moment scheme method (doubleq) 31 integer iaer_dust_submicron ! Dust profile is given by a 32 ! submicron population of dust 33 ! particles 34 integer iaer_h2o_ice ! Water ice particles 35 36 ! AS: was in aeropacity 37 INTEGER,SAVE,ALLOCATABLE :: iaerdust(:) 38 39 ! AS: was in suaer 40 CHARACTER(LEN=30), SAVE, ALLOCATABLE :: file_id(:,:) 22 41 23 42 ! Reference wavelengths used to compute reference optical depth (m) 24 43 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25 26 real,save :: longrefir(naerkind),longrefvis(naerkind) 44 REAL,SAVE,ALLOCATABLE :: longrefir(:),longrefvis(:) 27 45 28 46 ! Definition of spectral intervals at thermal infrared wavelengths (LW) … … 86 104 REAL,SAVE,ALLOCATABLE :: nueffdust(:,:) ! Dust effective variance 87 105 106 !! ------------------------------------------------------ 107 !! AS: what was previously in yomaer 108 ! Shortwave 109 ! ~~~~~~~~~ 110 ! 111 ! tauvis: dust optical depth at reference wavelength ("longrefvis" set 112 ! in dimradmars_mod : typically longrefvis = 0.67E-6 m, as measured by Viking ) 113 114 ! For the "naerkind" kind of aerosol radiative properties : 115 ! QVISsQREF : Qext / Qext("longrefvis") <--- For both solar bands 116 ! omegavis : sinle scattering albedo <--- For both solar bands 117 ! gvis : assymetry factor <--- For both solar bands 118 ! 119 ! Longwave 120 ! ~~~~~~~~ 121 ! 122 ! For the "naerkind" kind of aerosol radiative properties : 123 ! QIRsQREF : Qext / Qext("longrefvis") <--- For the nir bandes IR 124 ! omegaIR : mean single scattering albedo <--- For the nir bandes IR 125 ! gIR : mean assymetry factor <--- For the nir bandes IR 126 ! 127 real,save :: tauvis 128 real,save,allocatable :: QVISsQREF(:,:,:) 129 real,save,allocatable :: omegavis(:,:,:) 130 real,save,allocatable :: gvis(:,:,:) 131 real,save,allocatable :: QIRsQREF(:,:,:) 132 real,save,allocatable :: omegaIR(:,:,:) 133 real,save,allocatable :: gIR(:,:,:) 134 ! Actual number of grain size classes in each domain for a 135 ! given aerosol: 136 integer,save,allocatable :: nsize(:,:) 137 ! Particle size axis (depend on the kind of aerosol and the 138 ! radiation domain) 139 real,save,allocatable :: radiustab(:,:,:) 140 ! Extinction coefficient at reference wavelengths; 141 ! These wavelengths are defined in dimradmars_mod, and called 142 ! longrefvis and longrefir. 143 real,save,allocatable :: QREFvis(:,:) 144 real,save,allocatable :: QREFir(:,:) 145 real,save,allocatable :: omegaREFvis(:,:) 146 real,save,allocatable :: omegaREFir(:,:) 147 !! ------------------------------------------------------ 148 88 149 contains 89 150 90 151 subroutine ini_dimradmars_mod(ngrid,nlayer) 91 152 … … 107 168 allocate(fluxrad(ngrid)) 108 169 allocate(tauscaling(ngrid)) 170 allocate(nueffdust(ngrid,nlayer)) 171 172 end subroutine ini_dimradmars_mod 173 174 subroutine ini_scatterers(ngrid,nlayer) 175 176 implicit none 177 178 integer,intent(in) :: ngrid ! number of atmospheric columns 179 integer,intent(in) :: nlayer ! number of atmospheric layers 180 181 allocate(name_iaer(naerkind)) 109 182 allocate(aerosol(ngrid,nlayer,naerkind)) 110 allocate(nueffdust(ngrid,nlayer)) 111 112 end subroutine ini_dimradmars_mod 113 183 allocate(longrefir(naerkind)) 184 allocate(longrefvis(naerkind)) 185 allocate(iaerdust(naerkind)) 186 allocate(file_id(naerkind,2)) 187 188 allocate(QVISsQREF(nsun,naerkind,nsizemax)) 189 allocate(omegavis(nsun,naerkind,nsizemax)) 190 allocate(gvis(nsun,naerkind,nsizemax)) 191 allocate(QIRsQREF(nir,naerkind,nsizemax)) 192 allocate(omegaIR(nir,naerkind,nsizemax)) 193 allocate(gIR(nir,naerkind,nsizemax)) 194 allocate(nsize(naerkind,2)) 195 allocate(radiustab(naerkind,2,nsizemax)) 196 allocate(QREFvis(naerkind,nsizemax)) 197 allocate(QREFir(naerkind,nsizemax)) 198 allocate(omegaREFvis(naerkind,nsizemax)) 199 allocate(omegaREFir(naerkind,nsizemax)) 200 201 end subroutine ini_scatterers 202 114 203 end module dimradmars_mod
Note: See TracChangeset
for help on using the changeset viewer.