Changeset 1454 for trunk/LMDZ.TITAN/Tools/stability.F90
- Timestamp:
- Jun 16, 2015, 7:01:30 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/Tools/stability.F90
r816 r1454 31 31 integer,dimension(4) :: datashape4d ! shape of 4D datasets 32 32 33 real :: miss_val =9.99e+33! special "missing value" to specify missing data34 real,parameter :: miss_val_def= 9.99e+33 ! default value for "missing value"33 real :: miss_val ! special "missing value" to specify missing data 34 real,parameter :: miss_val_def=-9.99e+33 ! default value for "missing value" 35 35 real :: pi 36 36 real,dimension(:),allocatable :: lon ! longitude 37 37 integer lonlength ! # of grid points along longitude 38 38 real,dimension(:),allocatable :: lat ! latitude 39 real,dimension(:),allocatable :: latrad ! latitude in radian39 real,dimension(:),allocatable :: coslat ! cos of latitude 40 40 integer latlength ! # of grid points along latitude 41 41 real,dimension(:),allocatable :: plev ! Pressure levels (Pa) … … 91 91 92 92 pi = 2.*asin(1.) 93 miss_val = miss_val_def 93 94 94 95 write(*,*) "" … … 129 130 if (ierr.ne.NF_NOERR) stop "Error: Failed reading lat" 130 131 131 allocate(latrad(latlength)) 132 latrad = lat*pi/180. 132 allocate(coslat(latlength)) 133 ! Beware of rounding problems at poles... 134 coslat(:) = max(0.,cos(lat(:)*pi/180.)) 133 135 134 136 ! Lat, lon pressure intervals 135 deltalat = abs(lat rad(2)-latrad(1))137 deltalat = abs(lat(2)-lat(1))*pi/180. 136 138 deltalon = abs(lon(2)-lon(1))*pi/180. 137 139 … … 180 182 181 183 text="temp" 182 call get_var4d(infid,lonlength,latlength,altlength,timelength,text,temp, ierr1,ierr2)184 call get_var4d(infid,lonlength,latlength,altlength,timelength,text,temp,miss_val,ierr1,ierr2) 183 185 if (ierr1.ne.NF_NOERR) then 184 186 write(*,*) " looking for t instead... " 185 187 text="t" 186 call get_var4d(infid,lonlength,latlength,altlength,timelength,text,temp, ierr1,ierr2)188 call get_var4d(infid,lonlength,latlength,altlength,timelength,text,temp,miss_val,ierr1,ierr2) 187 189 if (ierr1.ne.NF_NOERR) stop "Error: Failed to get temperature ID" 188 190 endif … … 197 199 ! zonal wind vitu (in m/s) 198 200 text="vitu" 199 call get_var4d(infid,lonlength,latlength,altlength,timelength,text,vitu, ierr1,ierr2)201 call get_var4d(infid,lonlength,latlength,altlength,timelength,text,vitu,miss_val,ierr1,ierr2) 200 202 if (ierr1.ne.NF_NOERR) stop "Error: Failed to get vitu ID" 201 203 if (ierr2.ne.NF_NOERR) stop "Error: Failed reading zonal wind" … … 203 205 ! meridional wind vitv (in m/s) 204 206 text="vitv" 205 call get_var4d(infid,lonlength,latlength,altlength,timelength,text,vitv, ierr1,ierr2)207 call get_var4d(infid,lonlength,latlength,altlength,timelength,text,vitv,miss_val,ierr1,ierr2) 206 208 if (ierr1.ne.NF_NOERR) stop "Error: Failed to get vitv ID" 207 209 if (ierr2.ne.NF_NOERR) stop "Error: Failed reading meridional wind" … … 215 217 216 218 ! text="zareoid" 217 ! call get_var4d(infid,lonlength,latlength,altlength,timelength,text,za, ierr1,ierr2)219 ! call get_var4d(infid,lonlength,latlength,altlength,timelength,text,za,miss_val,ierr1,ierr2) 218 220 ! if (ierr1.ne.NF_NOERR) stop "Error: Failed to get za ID" 219 221 ! if (ierr2.ne.NF_NOERR) stop "Error: Failed reading zareoid" … … 276 278 grav(lonlength+1,:,:,:) = grav(1,:,:,:) 277 279 278 call cellmass(infid,latlength,lonlength+1,altlength,timelength, &279 lmdflag,deltalon,deltalat,latrad,plev,ps,grav,rayon, &280 call cellmass(infid,latlength,lonlength+1,altlength,timelength,lmdflag, & 281 miss_val,deltalon,deltalat,coslat,plev,ps,grav,rayon, & 280 282 dmass ) 281 283 … … 364 366 365 367 do ilat=2,latlength-1 366 if (tan(lat rad(ilat)).ne.0.) then367 fac1 = R0/tan(lat rad(ilat))368 if (tan(lat(ilat)*pi/180.).ne.0.) then 369 fac1 = R0/tan(lat(ilat)*pi/180.) 368 370 else 369 371 fac1 = miss_val
Note: See TracChangeset
for help on using the changeset viewer.