/[MITgcm]/MITgcm/model/src/load_grid_spacing.F
ViewVC logotype

Diff of /MITgcm/model/src/load_grid_spacing.F

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

revision 1.1 by jmc, Sun Jul 31 22:07:48 2005 UTC revision 1.4 by jmc, Wed Dec 22 00:05:31 2010 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4  #include "PACKAGES_CONFIG.h"  c #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    #undef LOAD_GRID_SPACING_OLD
7    
8  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
9  CBOP  CBOP
# Line 11  C     !INTERFACE: Line 12  C     !INTERFACE:
12        SUBROUTINE LOAD_GRID_SPACING( myThid )        SUBROUTINE LOAD_GRID_SPACING( myThid )
13    
14  C     !DESCRIPTION:  C     !DESCRIPTION:
15  C     load grid-spacing (vector array) delX, delY or delR from file.  C     load grid-spacing (vector array) delX, delY, delR or delRc from file.
16  C     notes: loading of delR from file not yet implemented  
         
17  C     !USES:  C     !USES:
18        IMPLICIT NONE        IMPLICIT NONE
19  #include "SIZE.h"  #include "SIZE.h"
# Line 22  C     !USES: Line 22  C     !USES:
22  #include "GRID.h"  #include "GRID.h"
23    
24  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
25  C     myThid - Number of this instance of INI_PARMS  C     myThid    :: my Thread Id. number
26        INTEGER myThid        INTEGER myThid
27  CEOP  CEOP
28    
29  C     !LOCAL VARIABLES:  C     !FUNCTIONS:
 C     tmp4delX  :: temporary arrays to read in delX  
 C     tmp8delX  :: temporary arrays to read in delX  
 C     tmp4delY  :: temporary arrays to read in delY  
 C     tmp8delY  :: temporary arrays to read in delY  
 C     msgBuf    :: Informational/error meesage buffer  
 C     iUnit     :: Work variable for IO unit number  
 C     i, j      :: Loop counters  
       REAL*4 tmp4delX(Nx), tmp4delY(Ny)  
       REAL*8 tmp8delX(Nx), tmp8delY(Ny)  
       CHARACTER*(MAX_LEN_MBUF) msgBuf  
       INTEGER i, j, iLen, iUnit  
30        INTEGER  ILNBLNK        INTEGER  ILNBLNK
31        EXTERNAL ILNBLNK        EXTERNAL ILNBLNK
32    
33  C     X coordinate  C     !LOCAL VARIABLES:
34    C     msgBuf    :: Informational/error message buffer
35          INTEGER iLen
36          CHARACTER*(MAX_LEN_MBUF) msgBuf
37    
38    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
39    
40          _BEGIN_MASTER( myThid )
41    
42    C--   X coordinate
43        IF ( delXFile .NE. ' ' ) THEN        IF ( delXFile .NE. ' ' ) THEN
         _BEGIN_MASTER( myThid )  
         CALL MDSFINDUNIT( iUnit, myThid )  
44          iLen = ILNBLNK(delXFile)          iLen = ILNBLNK(delXFile)
45          IF (readBinaryPrec.EQ.precFloat32) THEN          CALL READ_GLVEC_RL( delXFile, ' ', delX, Nx, 1, myThid )
          OPEN(iUnit, FILE=delXFile(1:iLen), STATUS='OLD',  
      &        FORM='UNFORMATTED',ACCESS='DIRECT',RECL=WORDLENGTH*Nx)  
          READ(iUnit,rec=1) tmp4delX  
          CLOSE(iUnit)  
 #ifdef _BYTESWAPIO  
         CALL MDS_BYTESWAPR4( Nx, tmp4delX )  
 #endif  
          DO i=1,Nx  
            delX(i) = tmp4delX(i)  
          ENDDO  
         ELSEIF (readBinaryPrec.EQ.precFloat64) THEN  
          OPEN(iUnit, FILE=delXFile(1:iLen), STATUS='OLD',  
      &        FORM='UNFORMATTED',ACCESS='DIRECT',RECL=WORDLENGTH*2*Nx)  
          READ(iUnit,rec=1) tmp8delX  
          CLOSE(iUnit)  
 #ifdef _BYTESWAPIO  
          CALL MDS_BYTESWAPR8( Nx, tmp8delX )  
 #endif  
          DO i=1,Nx  
            delX(i) = tmp8delX(i)  
          ENDDO  
         ENDIF  
46          WRITE(msgBuf,'(3A)') 'S/R LOAD_GRID_SPACING:',          WRITE(msgBuf,'(3A)') 'S/R LOAD_GRID_SPACING:',
47       &    ' delX loaded from file: ', delXFile(1:iLen)       &    ' delX loaded from file: ', delXFile(1:iLen)
48          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
49       &                      SQUEEZE_RIGHT , myThid)       &                      SQUEEZE_RIGHT , myThid )
         _END_MASTER(myThid)  
50        ENDIF        ENDIF
51    
52  C     Y coordinate  C--   Y coordinate
53        IF ( delYFile .NE. ' ' ) THEN        IF ( delYFile .NE. ' ' ) THEN
         _BEGIN_MASTER( myThid )  
         CALL MDSFINDUNIT( iUnit, myThid )  
54          iLen = ILNBLNK(delYFile)          iLen = ILNBLNK(delYFile)
55          IF (readBinaryPrec.EQ.precFloat32) THEN          CALL READ_GLVEC_RL( delYFile, ' ', delY, Ny, 1, myThid )
          OPEN(iUnit, FILE=delYFile(1:iLen), STATUS='OLD',  
      &        FORM='UNFORMATTED',ACCESS='DIRECT',RECL=WORDLENGTH*Ny)  
          READ(iUnit,rec=1) tmp4delY  
          CLOSE(iUnit)  
 #ifdef _BYTESWAPIO  
          CALL MDS_BYTESWAPR4( Ny, tmp4delY )  
 #endif  
          DO j=1,Ny  
            delY(j) = tmp4delY(j)  
          ENDDO  
         ELSEIF (readBinaryPrec.EQ.precFloat64) THEN  
          OPEN(iUnit, FILE=delYFile(1:iLen), STATUS='OLD',  
      &        FORM='UNFORMATTED',ACCESS='DIRECT',RECL=WORDLENGTH*2*Ny)  
          READ(iUnit,rec=1) tmp8delY  
          CLOSE(iUnit)  
 #ifdef _BYTESWAPIO  
          CALL MDS_BYTESWAPR8( Ny, tmp8delY )  
 #endif  
          DO j=1,Ny  
            delY(j) = tmp8delY(j)  
          ENDDO  
         ENDIF  
56          WRITE(msgBuf,'(3A)') 'S/R LOAD_GRID_SPACING:',          WRITE(msgBuf,'(3A)') 'S/R LOAD_GRID_SPACING:',
57       &    ' delY loaded from file: ', delYFile(1:iLen)       &    ' delY loaded from file: ', delYFile(1:iLen)
58          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
59       &                      SQUEEZE_RIGHT , myThid)       &                      SQUEEZE_RIGHT , myThid )
60          _END_MASTER(myThid)        ENDIF
61    
62    C--   vertical coordinate "R"
63          IF ( delRFile .NE. ' ' ) THEN
64            iLen = ILNBLNK(delRFile)
65            CALL READ_GLVEC_RL( delRFile, ' ', delR, Nr, 1, myThid )
66            WRITE(msgBuf,'(3A)') 'S/R LOAD_GRID_SPACING:',
67         &    ' delR loaded from file: ', delRFile(1:iLen)
68            CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
69         &                      SQUEEZE_RIGHT , myThid )
70          ENDIF
71    
72          IF ( delRcFile .NE. ' ' ) THEN
73            iLen = ILNBLNK(delRcFile)
74            CALL READ_GLVEC_RL( delRcFile, ' ', delRc, Nr+1, 1, myThid )
75            WRITE(msgBuf,'(3A)') 'S/R LOAD_GRID_SPACING:',
76         &    ' delRc loaded from file: ', delRcFile(1:iLen)
77            CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
78         &                      SQUEEZE_RIGHT , myThid )
79          ENDIF
80    
81    C--   hybrid sigma vertical coordinate coefficient
82          IF ( hybSigmFile .NE. ' ' ) THEN
83            iLen = ILNBLNK(hybSigmFile)
84            CALL READ_GLVEC_RL( hybSigmFile,' ',aHybSigmF,Nr+1, 1,myThid )
85            CALL READ_GLVEC_RL( hybSigmFile,' ',bHybSigmF,Nr+1, 2,myThid )
86            WRITE(msgBuf,'(3A)') 'S/R LOAD_GRID_SPACING:',
87         &    ' a&b_HybSigmF loaded from file: ', hybSigmFile(1:iLen)
88            CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
89         &                      SQUEEZE_RIGHT , myThid )
90        ENDIF        ENDIF
91    
92          _END_MASTER(myThid)
93  C--   Everyone else must wait for the parameters to be loaded  C--   Everyone else must wait for the parameters to be loaded
94        _BARRIER        _BARRIER
95    

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

  ViewVC Help
Powered by ViewVC 1.1.22