/[MITgcm]/MITgcm/pkg/diagnostics/diagnostics_out.F
ViewVC logotype

Diff of /MITgcm/pkg/diagnostics/diagnostics_out.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.36 by jmc, Tue Feb 5 20:19:18 2008 UTC revision 1.37 by mlosch, Thu May 22 08:35:44 2008 UTC
# Line 54  C              diagnostic storage qdiag Line 54  C              diagnostic storage qdiag
54        COMMON /LOCAL_DIAGNOSTICS_OUT/ qtmp1        COMMON /LOCAL_DIAGNOSTICS_OUT/ qtmp1
55        _RL qtmp1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,NrMax,nSx,nSy)        _RL qtmp1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,NrMax,nSx,nSy)
56    
57        INTEGER i, j, k, lm        INTEGER i, j, k, lm, klev
58        INTEGER bi, bj        INTEGER bi, bj
59        INTEGER md, ndId, ip, im        INTEGER md, ndId, ip, im
60        INTEGER mate, mVec        INTEGER mate, mVec
# Line 88  C              diagnostic storage qdiag Line 88  C              diagnostic storage qdiag
88        CHARACTER*(5) ctmp        CHARACTER*(5) ctmp
89        _RS ztmp(NrMax)        _RS ztmp(NrMax)
90  #endif  #endif
91          REAL*8 misvalLoc
92          REAL*8 misval_r8(2)
93          REAL*4 misval_r4(2)
94          INTEGER misvalIntLoc, misval_int(2)
95  #endif /*  ALLOW_MNC  */  #endif /*  ALLOW_MNC  */
96    
97  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
# Line 433  C           Time dimension Line 437  C           Time dimension
437              CALL MNC_CW_ADD_VATTR_TEXT(cdiag(ndId),'units',              CALL MNC_CW_ADD_VATTR_TEXT(cdiag(ndId),'units',
438       &             udiag(ndId),myThid)       &             udiag(ndId),myThid)
439    
440  C           Per the observations of Baylor, this has been commented out  C     Handle missing value attribute (land points)
441  C           until we have code that can write missing_value attributes              IF ( misvalFlt(listId) .NE. UNSET_RL ) THEN
442  C           in a way thats compatible with most of the more popular               misvalLoc = misvalFlt(listId)
443  C           netCDF tools including ferret.  Using all-zeros completely              ELSE
444  C           breaks ferret.               misvalLoc = undef
445                ENDIF
446  C           CALL MNC_CW_ADD_VATTR_DBL(cdiag(ndId),'missing_value',  C     Defaults to UNSET_I
447  C           &             0.0 _d 0,myThid)              misvalIntLoc = misvalInt(listId)
448                DO ii=1,2
449    C            misval_r4(ii)  = UNSET_FLOAT4
450    C            misval_r8(ii)  = UNSET_FLOAT8
451                 misval_r4(ii)  = misvalLoc
452                 misval_r8(ii)  = misvalLoc
453                 misval_int(ii) = UNSET_I
454                ENDDO
455    C     Missing values only for scalar diagnostics at mass points (so far)
456                IF ( gdiag(ndId)(1:2) .EQ. 'SM' ) THEN
457    C     assign missing values and set flag for adding the netCDF atttibute
458                 CALL MNC_CW_VATTR_MISSING(cdiag(ndId), 2,
459         I            misval_r8, misval_r4, misval_int,
460         I            myThid )
461    C     and now use the missing values for masking out the land points
462                 DO bj = myByLo(myThid), myByHi(myThid)
463                  DO bi = myBxLo(myThid), myBxHi(myThid)
464                   DO k = 1,nlevels(listId)
465                    klev = NINT(levs(k,listId))
466                    DO j = 1-OLy,sNy+OLy
467                     DO i = 1-OLx,sNx+OLx
468                      IF ( _hFacC(I,J,klev,bi,bj) .EQ. 0. )
469         &                 qtmp1(i,j,k,bi,bj) = misvalLoc
470                     ENDDO
471                    ENDDO
472                   ENDDO
473                  ENDDO
474                 ENDDO
475                ELSE
476    C     suppress the missing value attribute (iflag = 0)
477    C     Note: I have no idea, why we have to do this here, but if we do not
478    C     do it, variables get the missing_value attribute (the one of the
479    C     previous varable) that are not supposed to get one. These is something
480    C     fishy with the flag array mnc_cw_vfmv.
481                 CALL MNC_CW_VATTR_MISSING(cdiag(ndId), 0,
482         I            misval_r8, misval_r4, misval_int,
483         I            myThid )
484                ENDIF
485    
486              IF ( ( (writeBinaryPrec .EQ. precFloat32)              IF ( ( (writeBinaryPrec .EQ. precFloat32)
487       &           .AND. (fflags(listId)(1:1) .NE. 'D')       &           .AND. (fflags(listId)(1:1) .NE. 'D')

Legend:
Removed from v.1.36  
changed lines
  Added in v.1.37

  ViewVC Help
Powered by ViewVC 1.1.22