[cdftools] 145/228: JMM : fix type of missing value to fit type of associated variable

Alastair McKinstry mckinstry at moszumanska.debian.org
Fri Jun 12 08:21:41 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 2d3c29a7c819fecc9505e1a9da7f7fcbe92b684b
Author: molines <molines at 1055176f-818a-41d9-83e1-73fbe5b947c5>
Date:   Wed Apr 18 07:58:08 2012 +0000

    JMM : fix type of missing value to fit type of associated variable
    
    
    git-svn-id: http://servforge.legi.grenoble-inp.fr/svn/CDFTOOLS/trunk@593 1055176f-818a-41d9-83e1-73fbe5b947c5
---
 cdfio.f90 | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/cdfio.f90 b/cdfio.f90
index c03df21..49647a4 100644
--- a/cdfio.f90
+++ b/cdfio.f90
@@ -443,8 +443,17 @@ CONTAINS
     !!----------------------------------------------------------------------
     putatt=NF90_PUT_ATT(kout,kid,'units',sdtyvar%cunits) 
     IF (putatt /= NF90_NOERR ) THEN ;PRINT *, NF90_STRERROR(putatt)  ; STOP 'putatt units'; ENDIF
-    putatt=NF90_PUT_ATT(kout,kid,cn_missing_value,sdtyvar%rmissing_value)  
+
+    ! With netcdf4, missing value must have the same precision than the variable. Need to convert
+    ! to sdtyvar%cprecision previous PUT_ATT
+    SELECT CASE (sdtyvar%cprecision )
+    CASE ( 'r8' ) ; putatt=NF90_PUT_ATT(kout,kid,cn_missing_value,REAL(sdtyvar%rmissing_value,8) )  
+    CASE ( 'i2' ) ; putatt=NF90_PUT_ATT(kout,kid,cn_missing_value, INT(sdtyvar%rmissing_value,2) )  
+    CASE ( 'by' ) ; putatt=NF90_PUT_ATT(kout,kid,cn_missing_value, INT(sdtyvar%rmissing_value,1) )  
+    CASE DEFAULT  ; putatt=NF90_PUT_ATT(kout,kid,cn_missing_value,REAL(sdtyvar%rmissing_value,4) )
+    END SELECT
     IF (putatt /= NF90_NOERR ) THEN ;PRINT *, NF90_STRERROR(putatt)  ; STOP 'putatt missing value'; ENDIF
+
     putatt=NF90_PUT_ATT(kout,kid,'valid_min',sdtyvar%valid_min) 
     IF (putatt /= NF90_NOERR ) THEN ;PRINT *, NF90_STRERROR(putatt)  ; STOP 'putatt valid_min'; ENDIF
     putatt=NF90_PUT_ATT(kout,kid,'valid_max',sdtyvar%valid_max)

-- 
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