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

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

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

revision 1.3 by edhill, Sun Feb 20 05:28:19 2005 UTC revision 1.9 by jmc, Sun Jun 26 16:51:49 2005 UTC
# Line 2  C $Header$ Line 2  C $Header$
2  C $Name$  C $Name$
3    
4  #include "DIAG_OPTIONS.h"  #include "DIAG_OPTIONS.h"
5          
6  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7  CBOP 0  CBOP 0
8  C     !ROUTINE: DIAGNOSTICS_INIT_VARIA  C     !ROUTINE: DIAGNOSTICS_INIT_VARIA
# Line 13  C     !INTERFACE: Line 13  C     !INTERFACE:
13    
14  C     !DESCRIPTION:  C     !DESCRIPTION:
15  C     Initialize the qdiag array which accumulates during integration  C     Initialize the qdiag array which accumulates during integration
16          
17  C     !USES:  C     !USES:
18        IMPLICIT NONE        IMPLICIT NONE
19  #include "SIZE.h"  #include "SIZE.h"
# Line 27  C     !INPUT PARAMETERS: Line 27  C     !INPUT PARAMETERS:
27  CEOP  CEOP
28    
29  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
30        INTEGER i,j,n,bi,bj        INTEGER i,j,k,bi,bj
       CHARACTER*(80) fn  
       LOGICAL glf  
   
 #ifdef ALLOW_MNC  
       INTEGER ii  
       CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn  
       INTEGER CW_DIMS, NLEN  
       PARAMETER ( CW_DIMS = 10 )  
       PARAMETER ( NLEN    = 80 )  
       INTEGER dim(CW_DIMS), ib(CW_DIMS), ie(CW_DIMS)  
       CHARACTER*(NLEN) dn(CW_DIMS)  
       CHARACTER*(NLEN) d_cw_name  
       CHARACTER*(NLEN) dn_blnk  
 #endif /*  ALLOW_MNC  */  
31    
32  C     Zero out the qdiag array which accumulates during integration  C     Zero out the qdiag array which accumulates during integration
33        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
34          DO bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
35            DO n = 1,numdiags            DO k = 1,numdiags
36              DO j = 1-Oly,sNy+Oly              DO j = 1-Oly,sNy+Oly
37                DO i = 1-Olx,sNx+Olx                DO i = 1-Olx,sNx+Olx
38                  qdiag(i,j,n,bi,bj) = 0. _d 0                  qdiag(i,j,k,bi,bj) = 0. _d 0
39                ENDDO                ENDDO
40              ENDDO              ENDDO
41    C     Zero out the counters for the qdiag array
42                ndiag(k,bi,bj) = 0
43            ENDDO            ENDDO
44          ENDDO          ENDDO
45        ENDDO        ENDDO
46    
47    C     Zero out the qSdiag array (statistics) which accumulates during integration
48  C     Add pickup capability        DO bj = myByLo(myThid), myByHi(myThid)
49        IF (diag_pickup_read) THEN          DO bi = myBxLo(myThid), myBxHi(myThid)
50              DO k = 1,diagSt_size
51  #ifdef ALLOW_MNC              DO j = 0,nRegions
52          IF (diag_pickup_read_mnc) THEN                DO i = 0,nStats
53            DO i = 1,NLEN                  qSdiag(i,j,k,bi,bj) = 0. _d 0
54              dn_blnk(i:i) = ' '                ENDDO
55            ENDDO              ENDDO
           DO i = 1,MAX_LEN_FNAM  
             diag_mnc_bn(i:i) = ' '  
56            ENDDO            ENDDO
57            WRITE(diag_mnc_bn,'(A)') 'pickup_diagnostics'          ENDDO
58          ENDDO
59    
60  C         Update the record dimension by writing the iteration number        CALL DIAGNOSTICS_READ_PICKUP( myThid )
61            CALL MNC_FILE_CLOSE_ALL_MATCHING(diag_mnc_bn, myThid)  
62            CALL MNC_CW_SET_UDIM(diag_mnc_bn, 1, myThid)        CALL DIAGSTATS_INI_IO( myThid )
             
           d_cw_name(1:NLEN) = dn_blnk(1:NLEN)  
           DO ii = 1,CW_DIMS  
             dn(ii)(1:NLEN) = dn_blnk(1:NLEN)  
           ENDDO  
           d_cw_name(1:10) = 'diag_state'  
           dn(1)(1:3) = 'Xp1'  
           dim(1)     = sNx + 2*OLx  
           ib(1)      = OLx + 1  
           ie(1)      = OLx + sNx + 1  
           dn(2)(1:3) = 'Yp1'  
           dim(2)     = sNy + 2*OLy  
           ib(2)      = OLy + 1  
           ie(2)      = OLy + sNy + 1  
           dn(3)(1:2) = 'Zd'  
           dim(3)     = numdiags  
           ib(3)      = 1  
           ie(3)      = numdiags  
           dn(4)(1:1) = 'T'  
           dim(4)     = -1  
           ib(4)      = 1  
           ie(4)      = 1  
             
           CALL MNC_CW_ADD_GNAME(d_cw_name, 4,  
      &         dim, dn, ib, ie, myThid)  
           CALL MNC_CW_ADD_VNAME(d_cw_name, d_cw_name,  
      &         4,5, myThid)  
   
           CALL MNC_CW_RL_R('D',diag_mnc_bn,0,0,  
      &         d_cw_name, qdiag, myThid)  
             
           CALL MNC_CW_DEL_VNAME(d_cw_name, myThid)  
           CALL MNC_CW_DEL_GNAME(d_cw_name, myThid)  
             
         ENDIF  
 #endif /* ALLOW_MNC */  
             
         IF (diag_pickup_read_mdsio) THEN  
           DO i = 1,80  
             fn(i:i) = ' '  
           ENDDO  
           write(fn,'(a)') 'pickup_diagnostics'  
           glf = globalFiles  
           CALL MDSREADFIELD(fn,readBinaryPrec,glf,'RL',  
      &         numdiags,qdiag,1,myThid)  
         ENDIF  
63    
64        ENDIF        CALL DIAGNOSTICS_SUMMARY( startTime, nIter0, myThid )
65    
66        RETURN        RETURN
67        END        END

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

  ViewVC Help
Powered by ViewVC 1.1.22