Changeset 1246 for trunk/LMDZ.MARS/libf/phymars/aeroptproperties.F
- Timestamp:
- May 11, 2014, 2:37:58 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/phymars/aeroptproperties.F
r1212 r1246 4 4 & QREFvis3d,QREFir3d, 5 5 & omegaREFvis3d,omegaREFir3d) 6 use dimradmars_mod, only: nir, nsun 7 use yomaer_h, only:radiustab, nsize, QVISsQREF, omegavis, gvis,8 & 9 & 6 use dimradmars_mod, only: nir, nsun, naerkind, 7 & radiustab, nsize, QVISsQREF, omegavis, gvis, 8 & QIRsQREF, omegaIR, gIR, QREFvis, QREFir, 9 & omegaREFvis, omegaREFir 10 10 IMPLICIT NONE 11 11 c ============================================================= … … 31 31 #include "callkeys.h" 32 32 !#include "dimradmars.h" 33 !#include "yomaer.h"34 ! naerkind is set in scatterers.h (built when compiling with makegcm -s #)35 #include"scatterers.h"36 33 37 34 c Local variables … … 39 36 40 37 c ============================================================= 41 LOGICAL, PARAMETER :: varyingnueff(naerkind) = .false.38 LOGICAL,SAVE,ALLOCATABLE :: varyingnueff(:) 42 39 c ============================================================= 43 40 44 41 c Min. and max radius of the interpolation grid (in METERS) 45 REAL, SAVE :: refftabmin(naerkind,2) 46 REAL, SAVE :: refftabmax(naerkind,2) 42 REAL, SAVE, ALLOCATABLE :: refftabmin(:,:) 43 REAL, SAVE, ALLOCATABLE :: refftabmax(:,:) 44 47 45 c Log of the min and max variance of the interpolation grid 48 46 REAL, PARAMETER :: nuefftabmin = -4.6 … … 97 95 REAL,SAVE,ALLOCATABLE :: nuefftab(:,:,:) 98 96 c Volume ratio of the grid 99 REAL,SAVE :: logvratgrid(naerkind,2)97 REAL,SAVE,ALLOCATABLE :: logvratgrid(:,:) 100 98 c Grid used to remember which calculation is done 101 LOGICAL,SAVE :: checkgrid(refftabsize,nuefftabsize,naerkind,2) 102 & = .false. 99 LOGICAL,SAVE,ALLOCATABLE :: checkgrid(:,:,:,:) 103 100 c Optical properties of the grid (VISIBLE) 104 101 REAL,SAVE,ALLOCATABLE :: qsqrefVISgrid(:,:,:,:) … … 114 111 REAL,SAVE,ALLOCATABLE :: gIRgrid(:,:,:,:) 115 112 c Optical properties of the grid (REFERENCE WAVELENGTHS) 116 REAL,SAVE :: qrefVISgrid(refftabsize,nuefftabsize,naerkind)117 REAL,SAVE :: qscatrefVISgrid(refftabsize,nuefftabsize,naerkind)118 REAL,SAVE :: qrefIRgrid(refftabsize,nuefftabsize,naerkind)119 REAL,SAVE :: qscatrefIRgrid(refftabsize,nuefftabsize,naerkind)120 REAL,SAVE :: omegrefVISgrid(refftabsize,nuefftabsize,naerkind)121 REAL,SAVE :: omegrefIRgrid(refftabsize,nuefftabsize,naerkind)113 REAL,SAVE,ALLOCATABLE :: qrefVISgrid(:,:,:) 114 REAL,SAVE,ALLOCATABLE :: qscatrefVISgrid(:,:,:) 115 REAL,SAVE,ALLOCATABLE :: qrefIRgrid(:,:,:) 116 REAL,SAVE,ALLOCATABLE :: qscatrefIRgrid(:,:,:) 117 REAL,SAVE,ALLOCATABLE :: omegrefVISgrid(:,:,:) 118 REAL,SAVE,ALLOCATABLE :: omegrefIRgrid(:,:,:) 122 119 c Firstcall 123 120 LOGICAL,SAVE :: firstcall = .true. 124 121 c Variables used by the Gauss-Legendre integration: 125 REAL,SAVE :: normd(refftabsize,nuefftabsize,naerkind,2) 126 REAL,SAVE :: dista(refftabsize,nuefftabsize,naerkind,2,ngau) 127 REAL,SAVE :: distb(refftabsize,nuefftabsize,naerkind,2,ngau) 128 129 REAL,SAVE :: radGAUSa(ngau,naerkind,2) 130 REAL,SAVE :: radGAUSb(ngau,naerkind,2) 122 REAL,SAVE,ALLOCATABLE :: normd(:,:,:,:) 123 REAL,SAVE,ALLOCATABLE :: dista(:,:,:,:,:) 124 REAL,SAVE,ALLOCATABLE :: distb(:,:,:,:,:) 125 REAL,SAVE,ALLOCATABLE :: radGAUSa(:,:,:) 126 REAL,SAVE,ALLOCATABLE :: radGAUSb(:,:,:) 131 127 132 128 REAL,SAVE,ALLOCATABLE :: qsqrefVISa(:,:,:) … … 233 229 allocate(gIRa(nir,ngau,naerkind)) 234 230 allocate(gIRb(nir,ngau,naerkind)) 235 231 232 allocate(qrefVISgrid(refftabsize,nuefftabsize,naerkind)) 233 allocate(qscatrefVISgrid(refftabsize,nuefftabsize,naerkind)) 234 allocate(qrefIRgrid(refftabsize,nuefftabsize,naerkind)) 235 allocate(qscatrefIRgrid(refftabsize,nuefftabsize,naerkind)) 236 allocate(omegrefVISgrid(refftabsize,nuefftabsize,naerkind)) 237 allocate(omegrefIRgrid(refftabsize,nuefftabsize,naerkind)) 238 239 allocate(normd(refftabsize,nuefftabsize,naerkind,2)) 240 allocate(dista(refftabsize,nuefftabsize,naerkind,2,ngau)) 241 allocate(distb(refftabsize,nuefftabsize,naerkind,2,ngau)) 242 allocate(radGAUSa(ngau,naerkind,2)) 243 allocate(radGAUSb(ngau,naerkind,2)) 244 245 allocate(checkgrid(refftabsize,nuefftabsize,naerkind,2)) 246 checkgrid(1:refftabsize,1:nuefftabsize,1:naerkind,1:2) = .false. 247 248 allocate(logvratgrid(naerkind,2)) 249 250 allocate(refftabmin(naerkind,2)) 251 allocate(refftabmax(naerkind,2)) 252 253 allocate(varyingnueff(naerkind)) 254 varyingnueff(1:naerkind) = .false. 255 236 256 c 0.1 Pi! 237 257 pi = 2. * asin(1.e0)
Note: See TracChangeset
for help on using the changeset viewer.