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

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

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


Revision 1.1 - (show annotations) (download)
Sun Jul 31 22:07:48 2005 UTC (18 years, 9 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58l_post, checkpoint57t_post, checkpoint58e_post, checkpoint57s_post, checkpoint58r_post, checkpoint57y_post, checkpoint58n_post, checkpoint58h_post, checkpoint57y_pre, checkpoint58q_post, checkpoint57v_post, checkpoint58j_post, checkpoint57r_post, checkpoint58, checkpoint58f_post, checkpoint57x_post, checkpoint58d_post, checkpoint58c_post, checkpoint57w_post, checkpoint57p_post, checkpint57u_post, checkpoint58a_post, checkpoint58i_post, checkpoint57q_post, checkpoint58g_post, checkpoint58o_post, checkpoint57z_post, checkpoint58k_post, checkpoint58p_post, checkpoint58b_post, checkpoint58m_post
reading of delXfile & delYfile moved from ini_parms.F to ini_grid.F
(ini_parms.F is shorter ; allows later to read from netcdf files)

1 C $Header: $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6
7 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
8 CBOP
9 C !ROUTINE: LOAD_GRID_SPACING
10 C !INTERFACE:
11 SUBROUTINE LOAD_GRID_SPACING( myThid )
12
13 C !DESCRIPTION:
14 C load grid-spacing (vector array) delX, delY or delR from file.
15 C notes: loading of delR from file not yet implemented
16
17 C !USES:
18 IMPLICIT NONE
19 #include "SIZE.h"
20 #include "EEPARAMS.h"
21 #include "PARAMS.h"
22 #include "GRID.h"
23
24 C !INPUT/OUTPUT PARAMETERS:
25 C myThid - Number of this instance of INI_PARMS
26 INTEGER myThid
27 CEOP
28
29 C !LOCAL VARIABLES:
30 C tmp4delX :: temporary arrays to read in delX
31 C tmp8delX :: temporary arrays to read in delX
32 C tmp4delY :: temporary arrays to read in delY
33 C tmp8delY :: temporary arrays to read in delY
34 C msgBuf :: Informational/error meesage buffer
35 C iUnit :: Work variable for IO unit number
36 C i, j :: Loop counters
37 REAL*4 tmp4delX(Nx), tmp4delY(Ny)
38 REAL*8 tmp8delX(Nx), tmp8delY(Ny)
39 CHARACTER*(MAX_LEN_MBUF) msgBuf
40 INTEGER i, j, iLen, iUnit
41 INTEGER ILNBLNK
42 EXTERNAL ILNBLNK
43
44 C X coordinate
45 IF ( delXFile .NE. ' ' ) THEN
46 _BEGIN_MASTER( myThid )
47 CALL MDSFINDUNIT( iUnit, myThid )
48 iLen = ILNBLNK(delXFile)
49 IF (readBinaryPrec.EQ.precFloat32) THEN
50 OPEN(iUnit, FILE=delXFile(1:iLen), STATUS='OLD',
51 & FORM='UNFORMATTED',ACCESS='DIRECT',RECL=WORDLENGTH*Nx)
52 READ(iUnit,rec=1) tmp4delX
53 CLOSE(iUnit)
54 #ifdef _BYTESWAPIO
55 CALL MDS_BYTESWAPR4( Nx, tmp4delX )
56 #endif
57 DO i=1,Nx
58 delX(i) = tmp4delX(i)
59 ENDDO
60 ELSEIF (readBinaryPrec.EQ.precFloat64) THEN
61 OPEN(iUnit, FILE=delXFile(1:iLen), STATUS='OLD',
62 & FORM='UNFORMATTED',ACCESS='DIRECT',RECL=WORDLENGTH*2*Nx)
63 READ(iUnit,rec=1) tmp8delX
64 CLOSE(iUnit)
65 #ifdef _BYTESWAPIO
66 CALL MDS_BYTESWAPR8( Nx, tmp8delX )
67 #endif
68 DO i=1,Nx
69 delX(i) = tmp8delX(i)
70 ENDDO
71 ENDIF
72 WRITE(msgBuf,'(3A)') 'S/R LOAD_GRID_SPACING:',
73 & ' delX loaded from file: ', delXFile(1:iLen)
74 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
75 & SQUEEZE_RIGHT , myThid)
76 _END_MASTER(myThid)
77 ENDIF
78
79 C Y coordinate
80 IF ( delYFile .NE. ' ' ) THEN
81 _BEGIN_MASTER( myThid )
82 CALL MDSFINDUNIT( iUnit, myThid )
83 iLen = ILNBLNK(delYFile)
84 IF (readBinaryPrec.EQ.precFloat32) THEN
85 OPEN(iUnit, FILE=delYFile(1:iLen), STATUS='OLD',
86 & FORM='UNFORMATTED',ACCESS='DIRECT',RECL=WORDLENGTH*Ny)
87 READ(iUnit,rec=1) tmp4delY
88 CLOSE(iUnit)
89 #ifdef _BYTESWAPIO
90 CALL MDS_BYTESWAPR4( Ny, tmp4delY )
91 #endif
92 DO j=1,Ny
93 delY(j) = tmp4delY(j)
94 ENDDO
95 ELSEIF (readBinaryPrec.EQ.precFloat64) THEN
96 OPEN(iUnit, FILE=delYFile(1:iLen), STATUS='OLD',
97 & FORM='UNFORMATTED',ACCESS='DIRECT',RECL=WORDLENGTH*2*Ny)
98 READ(iUnit,rec=1) tmp8delY
99 CLOSE(iUnit)
100 #ifdef _BYTESWAPIO
101 CALL MDS_BYTESWAPR8( Ny, tmp8delY )
102 #endif
103 DO j=1,Ny
104 delY(j) = tmp8delY(j)
105 ENDDO
106 ENDIF
107 WRITE(msgBuf,'(3A)') 'S/R LOAD_GRID_SPACING:',
108 & ' delY loaded from file: ', delYFile(1:iLen)
109 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
110 & SQUEEZE_RIGHT , myThid)
111 _END_MASTER(myThid)
112 ENDIF
113
114 C-- Everyone else must wait for the parameters to be loaded
115 _BARRIER
116
117 RETURN
118 END

  ViewVC Help
Powered by ViewVC 1.1.22