/[MITgcm]/MITgcm/pkg/mnc/mnc_cw_readwrite.template
ViewVC logotype

Diff of /MITgcm/pkg/mnc/mnc_cw_readwrite.template

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

revision 1.27 by edhill, Fri Dec 17 21:28:25 2004 UTC revision 1.28 by edhill, Mon Jan 24 04:40:35 2005 UTC
# Line 263  C         local copy of them Line 263  C         local copy of them
263              ELSE              ELSE
264                dimnc(i) = mnc_cw_ie(i,igrid) - mnc_cw_is(i,igrid) + 1                dimnc(i) = mnc_cw_ie(i,igrid) - mnc_cw_is(i,igrid) + 1
265              ENDIF              ENDIF
 C           CALL MNC_DIM_INIT(fname,  
 C           &           mnc_cw_dn(i,igrid), dimnc(i), myThid)  
266    
267  C           Add the coordinate variables  C           Add the coordinate variables
268              CALL MNC_DIM_INIT_ALL_CV(fname,              CALL MNC_DIM_INIT_ALL_CV(fname,
# Line 558  CEOP Line 556  CEOP
556  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
557        integer i,k, nvf,nvl, n1,n2, igrid, ntot, indu        integer i,k, nvf,nvl, n1,n2, igrid, ntot, indu
558        integer bis,bie, bjs,bje, uniq_tnum, nfname, fid, idv        integer bis,bie, bjs,bje, uniq_tnum, nfname, fid, idv
559        integer ndim, indf, err, lbi,lbj, bidim,bjdim, unlim_sz, kr        integer ndim, err, lbi,lbj, bidim,bjdim, unlim_sz, kr
560        integer ind_fv_ids, ind_vt, ierr, atype, alen        integer ind_vt, npath, unlid
561        integer f_sNx,f_sNy, npath  C     integer f_sNx,f_sNy, alen, atype, ind_fv_ids, ierr, indf
562        integer p(9),s(9),e(9), vstart(9),vcount(9), udo(9)        integer p(9),s(9),e(9), vstart(9),vcount(9), udo(9)
563        integer j1,j2,j3,j4,j5,j6,j7, k1,k2,k3,k4,k5,k6,k7        integer j1,j2,j3,j4,j5,j6,j7, k1,k2,k3,k4,k5,k6,k7
564        character*(MAX_LEN_MBUF) msgbuf        character*(MAX_LEN_MBUF) msgbuf
# Line 647  C         Add the path to the file name Line 645  C         Add the path to the file name
645            ENDIF            ENDIF
646    
647  C         Open the existing file  C         Open the existing file
648            CALL MNC_FILE_TRY_READ( fname, ierr, indf, myThid)  C         CALL MNC_FILE_TRY_READ( fname, ierr, indf, myThid)
649    
650  C         Check that the variable (VType) is defined within the file  C         Check that the variable (VType) is defined within the file
651            CALL MNC_GET_FVINDS( fname, vtype, indf, ind_fv_ids, myThid)  C           CALL MNC_GET_FVINDS( fname, vtype, indf, ind_fv_ids, myThid)
652            IF ((indf .LT. 1) .OR. (ind_fv_ids .LT. 1)) THEN  C           IF ((indf .LT. 1) .OR. (ind_fv_ids .LT. 1)) THEN
653              write(msgbuf,'(4a)') 'MNC_CW_RX_R ERROR: vtype ''',  C             write(msgbuf,'(4a)') 'MNC_CW_RX_R ERROR: vtype ''',
654       &           vtype(nvf:nvl), ''' is not defined within file ''',  C      &           vtype(nvf:nvl), ''' is not defined within file ''',
655       &           fname(1:nfname)  C      &           fname(1:nfname)
656              CALL print_error(msgbuf, mythid)  C             CALL print_error(msgbuf, mythid)
657              STOP 'ABNORMAL END: S/R MNC_CW_RX_R'  C             STOP 'ABNORMAL END: S/R MNC_CW_RX_R'
658            ENDIF  C           ENDIF
659            fid = mnc_f_info(indf,2)  
660            idv = mnc_fv_ids(indf,ind_fv_ids+1)  C         The previous old junk is completely unnecessary.  All we
661    C         should do is (1) open the file in a READ-ONLY mode, (2) get
662    C         the var id for the current variable, (3) read the data, and
663    C         then (4) quickly close the file since theres no need to keep
664    C         it open.
665              write(msgbuf,'(4a)') 'MNC_CW_RX_R: cannot open',
666         &         ' file ''', fname(1:nfname), ''' in read-only mode'
667              err = NF_OPEN(fname, NF_NOWRITE, fid)
668              CALL MNC_HANDLE_ERR(err, msgbuf, myThid)
669    
670              write(msgbuf,'(6a)')
671         &         'MNC_CW_RX_R: cannot get id for variable ''',
672         &         vtype(nvf:nvl), '''in file ''', fname(1:nfname), ''''
673              err = NF_INQ_VARID(fid, vtype, idv)
674              CALL MNC_HANDLE_ERR(err, msgbuf, myThid)
675    
676  C         Check that the current sNy,sNy values and the in-file values  C         Check that the current sNy,sNy values and the in-file values
677  C         are compatible and WARN (only warn) if not  C         are compatible and WARN (only warn) if not
678            f_sNx = -1  C           f_sNx = -1
679            f_sNy = -1  C           f_sNy = -1
680            err = NF_INQ_ATT(fid,NF_GLOBAL, 'sNx',atype,alen)  C           err = NF_INQ_ATT(fid,NF_GLOBAL, 'sNx',atype,alen)
681            IF ((err .EQ. NF_NOERR) .AND. (alen .EQ. 1)) THEN  C           IF ((err .EQ. NF_NOERR) .AND. (alen .EQ. 1)) THEN
682              err = NF_GET_ATT_INT(fid, NF_GLOBAL, 'sNx', f_sNx)  C             err = NF_GET_ATT_INT(fid, NF_GLOBAL, 'sNx', f_sNx)
683              CALL MNC_HANDLE_ERR(err,  C             CALL MNC_HANDLE_ERR(err,
684       &           'reading attribute ''sNx'' in S/R MNC_CW_RX_R',  C      &           'reading attribute ''sNx'' in S/R MNC_CW_RX_R',
685       &           myThid)  C      &           myThid)
686            ENDIF  C           ENDIF
687            err = NF_INQ_ATT(fid,NF_GLOBAL, 'sNy',atype,alen)  C           err = NF_INQ_ATT(fid,NF_GLOBAL, 'sNy',atype,alen)
688            IF ((err .EQ. NF_NOERR) .AND. (alen .EQ. 1)) THEN  C           IF ((err .EQ. NF_NOERR) .AND. (alen .EQ. 1)) THEN
689              err = NF_GET_ATT_INT(fid, NF_GLOBAL, 'sNy', f_sNy)  C             err = NF_GET_ATT_INT(fid, NF_GLOBAL, 'sNy', f_sNy)
690              CALL MNC_HANDLE_ERR(err,  C             CALL MNC_HANDLE_ERR(err,
691       &           'reading attribute ''sNy'' in S/R MNC_CW_RX_R',  C      &           'reading attribute ''sNy'' in S/R MNC_CW_RX_R',
692       &           myThid)  C      &           myThid)
693            ENDIF  C           ENDIF
694            IF ((f_sNx .NE. sNx) .OR. (f_sNy .NE. sNy)) THEN  C           IF ((f_sNx .NE. sNx) .OR. (f_sNy .NE. sNy)) THEN
695              write(msgbuf,'(5a)') 'MNC_CW_RX_R WARNING: the ',  C             write(msgbuf,'(5a)') 'MNC_CW_RX_R WARNING: the ',
696       &           'attributes ''sNx'' and ''sNy'' within the file ''',  C      &           'attributes ''sNx'' and ''sNy'' within the file ''',
697       &           fname(1:nfname), ''' do not exist or do not match ',  C      &           fname(1:nfname), ''' do not exist or do not match ',
698       &           'the current sizes within the model'  C      &           'the current sizes within the model'
699              CALL print_error(msgbuf, mythid)  C             CALL print_error(msgbuf, mythid)
700            ENDIF  C           ENDIF
701    
702  C         Check that the in-memory variable and the in-file variables  C         Check that the in-memory variable and the in-file variables
703  C         are of compatible sizes  C         are of compatible sizes
# Line 744  C           Check for the unlimited dime Line 756  C           Check for the unlimited dime
756                IF (indu .GT. 0) THEN                IF (indu .GT. 0) THEN
757  C               Use the indu value  C               Use the indu value
758                  udo(i) = indu - 1                  udo(i) = indu - 1
               ELSEIF (indu .EQ. -1) THEN  
 C               Append one to the current unlimited dim size  
                 CALL MNC_DIM_UNLIM_SIZE( fname, unlim_sz, myThid)  
                 udo(i) = unlim_sz  
759                ELSE                ELSE
760  C               Use the current unlimited dim size  C               We need the current unlim dim size
761                  CALL MNC_DIM_UNLIM_SIZE( fname, unlim_sz, myThid)                  write(msgbuf,'(5a)') 'MNC_CW_RX_R: getting the ',
762                  udo(i) = unlim_sz - 1       &               'unlim dim id within file ''',
763         &               fname(1:nfname), ''''
764                    err = NF_INQ_UNLIMDIM(fid, unlid)
765                    CALL MNC_HANDLE_ERR(err, msgbuf, myThid)
766                    write(msgbuf,'(5a)') 'MNC_CW_RX_R: getting the ',
767         &               'unlim dim size within file ''',
768         &               fname(1:nfname), ''''
769                    err = NF_INQ_DIMLEN(fid, unlid, unlim_sz)
770                    CALL MNC_HANDLE_ERR(err, msgbuf, myThid)
771                    udo(i) = unlim_sz
772                ENDIF                ENDIF
773              ENDIF              ENDIF
774            ENDDO            ENDDO
# Line 768  C     DO i = 9,1,-1 Line 785  C     DO i = 9,1,-1
785  C     write(*,*) 'i,p(i),s(i),e(i) = ', i,': ',p(i),s(i),e(i)  C     write(*,*) 'i,p(i),s(i),e(i) = ', i,': ',p(i),s(i),e(i)
786  C     ENDDO  C     ENDDO
787                        
           CALL MNC_FILE_ENDDEF(fname, myThid)  
   
788            write(msgbuf,'(5a)') 'reading variable type ''',            write(msgbuf,'(5a)') 'reading variable type ''',
789       &         vtype(nvf:nvl), ''' within file ''',       &         vtype(nvf:nvl), ''' within file ''',
790       &         fname(1:nfname), ''''       &         fname(1:nfname), ''''
# Line 840  C         Read the variable one vector a Line 855  C         Read the variable one vector a
855          ENDDO          ENDDO
856        ENDIF        ENDIF
857    
         
858    
859                      ENDDO                      ENDDO
860                    ENDDO                    ENDDO
# Line 850  C         Read the variable one vector a Line 864  C         Read the variable one vector a
864            ENDDO            ENDDO
865    
866  C         Close the file  C         Close the file
867            CALL MNC_FILE_CLOSE(fname, myThid)  C         CALL MNC_FILE_CLOSE(fname, myThid)
868              err = NF_CLOSE(fid)
869              write(msgbuf,'(3a)') 'MNC_CW_RX_R:  cannot close file ''',
870         &         fname(1:nfname), ''''
871              CALL MNC_HANDLE_ERR(err, msgbuf, myThid)
872    
873    
874  C         End the lbj,lbi loops  C         End the lbj,lbi loops
875          ENDDO          ENDDO

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.28

  ViewVC Help
Powered by ViewVC 1.1.22