[cdftools] 87/228: JMM : check missing values in cdfmax

Alastair McKinstry mckinstry at moszumanska.debian.org
Fri Jun 12 08:21:32 UTC 2015


This is an automated email from the git hooks/post-receive script.

mckinstry pushed a commit to branch master
in repository cdftools.

commit a0061e12659c4944b6e6974842cb803eeb3e939b
Author: molines <molines at 1055176f-818a-41d9-83e1-73fbe5b947c5>
Date:   Fri Apr 8 10:07:33 2011 +0000

    JMM : check missing values in cdfmax
    
    
    git-svn-id: http://servforge.legi.grenoble-inp.fr/svn/CDFTOOLS/trunk@440 1055176f-818a-41d9-83e1-73fbe5b947c5
---
 cdfmax.f90 | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/cdfmax.f90 b/cdfmax.f90
index 6b3c0cb..ce8804c 100644
--- a/cdfmax.f90
+++ b/cdfmax.f90
@@ -37,6 +37,7 @@ PROGRAM cdfmax
   REAL ,DIMENSION(:),ALLOCATABLE     :: h, rtime
   REAL ,DIMENSION (:,:), ALLOCATABLE :: v2d, rlon, rlat
   REAL                               :: rfact=1.0
+  REAL                               :: rmissing=0.
   !
   CHARACTER(LEN=256) ::  cfilein, cline1, cline2
   CHARACTER(LEN=256) :: cvar='none', cdim
@@ -57,7 +58,6 @@ PROGRAM cdfmax
           ' -zoom imin imax jmin jmax  -fact multfact -xy ]'
      PRINT *, '   -lev and -zoom limit the area for min/max computation'
      PRINT *, '    if not specified : the 3D data is taken '
-     PRINT *, '    spval is assumed to be 0 (not taken into account)'
      PRINT *, '    if either imin=imax or jmin=jmax a vertical slab is considered'
      PRINT *, '     UNLESS -xy option is specified !!! '
 
@@ -202,6 +202,7 @@ PROGRAM cdfmax
   rlon=getvar(cfilein,'nav_lon',1,niz,njz,imin,jmin)
   rlat=getvar(cfilein,'nav_lat',1,niz,njz,imin,jmin)
 
+  rmissing=getatt(cfilein, cvar,'missing_value')
   DO
      ndim=getvdim(cfilein,cvar)+1   ! getvdim gives ndim-1 !
      PRINT *,TRIM(cvar),' with multiplying factor of ', rfact
@@ -219,7 +220,7 @@ PROGRAM cdfmax
            DO jt=1,nt
               DO jk =kmin,kmax
                  v2d(:,:)=getvar(cfilein,cvar,jk,niz,njz,kimin=imin,kjmin=jmin,ktime=jt)
-                 lmask(:,:)=.TRUE. ; WHERE ( v2d == 0 ) lmask=.FALSE.
+                 lmask(:,:)=.TRUE. ; WHERE ( v2d == rmissing ) lmask=.FALSE.
                  ilmax=MAXLOC(v2d,lmask)
                  ilmin=MINLOC(v2d,lmask)
                  i1=ilmax(1) ; j1=ilmax(2)
@@ -240,7 +241,7 @@ PROGRAM cdfmax
         CASE( 4 )  ! assume x,y,z,t variable
            ipmin=jmin ; ipmax=jmax; jpmin=kmin; jpmax=kmax
            v2d(:,:)=getvaryz(cfilein,cvar,imin,njz,nkz,jmin,kmin)
-           lmask(:,:)=.TRUE. ; WHERE ( v2d == 0 ) lmask=.FALSE.
+           lmask(:,:)=.TRUE. ; WHERE ( v2d == rmissing ) lmask=.FALSE.
            ilmax=MAXLOC(v2d,lmask)
            ilmin=MINLOC(v2d,lmask)
            i1=ilmax(1) ; j1=ilmax(2)
@@ -260,7 +261,7 @@ PROGRAM cdfmax
         CASE( 4 )  ! assume x,y,z,t variable
            ipmin=imin ; ipmax=imax; jpmin=kmin; jpmax=kmax
            v2d(:,:)=getvarxz(cfilein,cvar,jmin,niz,nkz,imin,kmin)
-           lmask(:,:)=.TRUE. ; WHERE ( v2d == 0 ) lmask=.FALSE.
+           lmask(:,:)=.TRUE. ; WHERE ( v2d == rmissing ) lmask=.FALSE.
            ilmax=MAXLOC(v2d,lmask)
            ilmin=MINLOC(v2d,lmask)
            i1=ilmax(1) ; j1=ilmax(2)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/cdftools.git



More information about the debian-science-commits mailing list