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

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

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

revision 1.3 by jmc, Thu Jun 23 15:29:01 2011 UTC revision 1.4 by jmc, Mon Jun 27 22:27:23 2011 UTC
# Line 16  C     !ROUTINE: DIAGNOSTICS_MNC_SET Line 16  C     !ROUTINE: DIAGNOSTICS_MNC_SET
16  C     !INTERFACE:  C     !INTERFACE:
17        SUBROUTINE DIAGNOSTICS_MNC_SET(        SUBROUTINE DIAGNOSTICS_MNC_SET(
18       I     nLevOutp, listId, lm,       I     nLevOutp, listId, lm,
19       O     diag_mnc_bn, missingValFillsMask,       O     diag_mnc_bn,
20       I     misValLoc, myTime, myIter, myThid )       I     misValLoc, myTime, myIter, myThid )
21    
22  C     !DESCRIPTION:  C     !DESCRIPTION:
# Line 37  C     nLevOutp        :: number of level Line 37  C     nLevOutp        :: number of level
37  C     listId          :: Diagnostics list number being written  C     listId          :: Diagnostics list number being written
38  C     lm              :: loop index (averageCycle)  C     lm              :: loop index (averageCycle)
39  C     diag_mnc_bn     :: NetCDF output file name  C     diag_mnc_bn     :: NetCDF output file name
 C     missingValFillsMask :: fill output-field with Missing-Value where mask=0  
40  C     misValLoc       :: local Missing Value  C     misValLoc       :: local Missing Value
41  C     myTime          :: current time of simulation (s)  C     myTime          :: current time of simulation (s)
42  C     myIter          :: current iteration number  C     myIter          :: current iteration number
# Line 45  C     myThid          :: my Thread Id nu Line 44  C     myThid          :: my Thread Id nu
44        INTEGER nLevOutp        INTEGER nLevOutp
45        INTEGER listId, lm        INTEGER listId, lm
46        CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn        CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn
       LOGICAL missingValFillsMask  
47        _RL     misValLoc        _RL     misValLoc
48        _RL     myTime        _RL     myTime
49        INTEGER myIter, myThid        INTEGER myIter, myThid
# Line 85  C---+----1----+----2----+----3----+----4 Line 83  C---+----1----+----2----+----3----+----4
83  c     IF (useMNC .AND. diag_mnc) THEN  c     IF (useMNC .AND. diag_mnc) THEN
84    
85  C     Handle missing value attribute (land points)  C     Handle missing value attribute (land points)
         missingValFillsMask = .FALSE.  
 #ifdef DIAGNOSTICS_MISSING_VALUE  
         missingValFillsMask = .TRUE.  
 #endif /* DIAGNOSTICS_MISSING_VALUE */  
86  C     Defaults to UNSET_I  C     Defaults to UNSET_I
87          misvalIntLoc = misvalInt(listId)          misvalIntLoc = misvalInt(listId)
88          DO ii=1,2          DO ii=1,2
# Line 192  C         for averaged levels. Line 186  C         for averaged levels.
186       &           myThid)       &           myThid)
187            ENDIF            ENDIF
188  C     suppress the missing value attribute (iflag = 0)  C     suppress the missing value attribute (iflag = 0)
189            IF (missingValFillsMask)            IF (useMissingValue)
190       &          CALL MNC_CW_VATTR_MISSING(dn(1), 0,       &          CALL MNC_CW_VATTR_MISSING(dn(1), 0,
191       I          misval_r8, misval_r4, misval_int, myThid )       I          misval_r8, misval_r4, misval_int, myThid )
192            CALL MNC_CW_RS_W('D',diag_mnc_bn,0,0, dn(1), ztmp, myThid)            CALL MNC_CW_RS_W('D',diag_mnc_bn,0,0, dn(1), ztmp, myThid)
# Line 214  C     !ROUTINE: DIAGNOSTICS_MNC_OUT Line 208  C     !ROUTINE: DIAGNOSTICS_MNC_OUT
208  C     !INTERFACE:  C     !INTERFACE:
209        SUBROUTINE DIAGNOSTICS_MNC_OUT(        SUBROUTINE DIAGNOSTICS_MNC_OUT(
210       I     NrMax, nLevOutp, listId, ndId, mate,       I     NrMax, nLevOutp, listId, ndId, mate,
211       I     diag_mnc_bn,       I     diag_mnc_bn, qtmp,
212       I     missingValFillsMask, misValLoc,       I     misValLoc, myTime, myIter, myThid )
      I     qtmp,  
      I     myTime, myIter, myThid )  
213    
214  C     !DESCRIPTION:  C     !DESCRIPTION:
215  C     write diagnostics fields to MNC file.  C     write diagnostics fields to MNC file.
# Line 238  C     listId          :: Diagnostics lis Line 230  C     listId          :: Diagnostics lis
230  C     ndId            :: diagnostics Id number (in available diagnostics list)  C     ndId            :: diagnostics Id number (in available diagnostics list)
231  C     mate            :: counter diagnostic number if any ; 0 otherwise  C     mate            :: counter diagnostic number if any ; 0 otherwise
232  C     diag_mnc_bn     :: NetCDF output file name  C     diag_mnc_bn     :: NetCDF output file name
 C     missingValFillsMask :: fill output-field with Missing-Value where mask=0  
 C     misValLoc       :: local Missing Value  
233  C     qtmp            :: output-field array to write  C     qtmp            :: output-field array to write
234    C     misValLoc       :: local Missing Value
235  C     myTime          :: current time of simulation (s)  C     myTime          :: current time of simulation (s)
236  C     myIter          :: current iteration number  C     myIter          :: current iteration number
237  C     myThid          :: my Thread Id number  C     myThid          :: my Thread Id number
# Line 248  C     myThid          :: my Thread Id nu Line 239  C     myThid          :: my Thread Id nu
239        INTEGER nLevOutp        INTEGER nLevOutp
240        INTEGER listId, ndId, mate        INTEGER listId, ndId, mate
241        CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn        CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn
       LOGICAL missingValFillsMask  
       _RL     misValLoc  
242        _RL     qtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,NrMax,nSx,nSy)        _RL     qtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,NrMax,nSx,nSy)
243          _RL     misValLoc
244        _RL     myTime        _RL     myTime
245        INTEGER myIter, myThid        INTEGER myIter, myThid
246  CEOP  CEOP
# Line 369  C        Time dimension Line 359  C        Time dimension
359           useMisValForThisDiag = mate.GT.0           useMisValForThisDiag = mate.GT.0
360  C     Use the missing values for masking out the land points:  C     Use the missing values for masking out the land points:
361  C     only for scalar diagnostics at mass points (so far)  C     only for scalar diagnostics at mass points (so far)
362           IF ( missingValFillsMask.AND.gdiag(ndId)(1:2).EQ.'SM' ) THEN           IF ( useMissingValue.AND.gdiag(ndId)(1:2).EQ.'SM' ) THEN
363             useMisValForThisDiag = .TRUE.             useMisValForThisDiag = .TRUE.
364  C     note: better to use 2-D mask if kdiag <> Nr or vert.integral  C     note: better to use 2-D mask if kdiag <> Nr or vert.integral
365             DO bj = myByLo(myThid), myByHi(myThid)             DO bj = myByLo(myThid), myByHi(myThid)

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22