/[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.8 by jmc, Fri May 20 07:28:50 2005 UTC
# 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,n,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            ENDDO            ENDDO
42          ENDDO          ENDDO
43        ENDDO        ENDDO
44    
45    C     Zero out the counters for the qdiag array
46          do n=1,ndiagMax
47            ndiag(n) = 0
48          enddo
49    
50  C     Add pickup capability  C     Zero out the qSdiag array (statistics) which accumulates during integration
51        IF (diag_pickup_read) THEN        DO bj = myByLo(myThid), myByHi(myThid)
52            DO bi = myBxLo(myThid), myBxHi(myThid)
53  #ifdef ALLOW_MNC            DO k = 1,diagSt_size
54          IF (diag_pickup_read_mnc) THEN              DO j = 0,nRegions
55            DO i = 1,NLEN                DO i = 0,nStats
56              dn_blnk(i:i) = ' '                  qSdiag(i,j,k,bi,bj) = 0. _d 0
57            ENDDO                ENDDO
58            DO i = 1,MAX_LEN_FNAM              ENDDO
             diag_mnc_bn(i:i) = ' '  
59            ENDDO            ENDDO
60            WRITE(diag_mnc_bn,'(A)') 'pickup_diagnostics'          ENDDO
61          ENDDO
62    
63  C         Update the record dimension by writing the iteration number        CALL DIAGNOSTICS_READ_PICKUP( myThid )
           CALL MNC_FILE_CLOSE_ALL_MATCHING(diag_mnc_bn, myThid)  
           CALL MNC_CW_SET_UDIM(diag_mnc_bn, 1, 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  
64    
65        ENDIF        CALL DIAGSTATS_INI_IO( myThid )
66    
67        RETURN        RETURN
68        END        END

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

  ViewVC Help
Powered by ViewVC 1.1.22