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

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

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


Revision 1.3 - (show annotations) (download)
Wed Sep 26 18:09:15 2001 UTC (22 years, 8 months ago) by cnh
Branch: MAIN
CVS Tags: release1_b1, checkpoint43, ecco-branch-mod1, release1_beta1, checkpoint42, checkpoint41
Branch point for: release1, ecco-branch, release1_coupled
Changes since 1.2: +21 -8 lines
Bringing comments up to data and formatting for document extraction.

1 C $Header: /u/gcmpack/models/MITgcmUV/model/src/ini_curvilinear_grid.F,v 1.2 2001/05/29 14:01:37 adcroft Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: INI_CURVILINEAR_GRID
8 C !INTERFACE:
9 SUBROUTINE INI_CURVILINEAR_GRID( myThid )
10 C !DESCRIPTION: \bv
11 C *==========================================================*
12 C | SUBROUTINE INI_CURVILINEAR_GRID
13 C | o Initialise curvilinear coordinate system
14 C *==========================================================*
15 C | Curvilinear grid settings are read from a file rather
16 C | than coded in-line as for cartesian and spherical polar.
17 C | This is more general but you have to create the grid
18 C | yourself.
19 C *==========================================================*
20 C \ev
21
22 C !USES:
23 IMPLICIT NONE
24 C === Global variables ===
25 #include "SIZE.h"
26 #include "EEPARAMS.h"
27 #include "PARAMS.h"
28 #include "GRID.h"
29
30 C !INPUT/OUTPUT PARAMETERS:
31 C == Routine arguments ==
32 C myThid - Number of this instance of INI_CARTESIAN_GRID
33 INTEGER myThid
34
35 C !LOCAL VARIABLES:
36 C == Local variables ==
37 INTEGER bi,bj
38 INTEGER I,J
39 CEOP
40
41 C-- Set everything to zero everywhere
42 DO bj = myByLo(myThid), myByHi(myThid)
43 DO bi = myBxLo(myThid), myBxHi(myThid)
44
45 DO J=1-Oly,sNy+Oly
46 DO I=1-Olx,sNx+Olx
47 XC(i,j,bi,bj)=0.
48 YC(i,j,bi,bj)=0.
49 XG(i,j,bi,bj)=0.
50 YG(i,j,bi,bj)=0.
51 DXC(i,j,bi,bj)=0.
52 DYC(i,j,bi,bj)=0.
53 DXG(i,j,bi,bj)=0.
54 DYG(i,j,bi,bj)=0.
55 DXF(i,j,bi,bj)=0.
56 DYF(i,j,bi,bj)=0.
57 DXV(i,j,bi,bj)=0.
58 DYU(i,j,bi,bj)=0.
59 RA(i,j,bi,bj)=0.
60 RAZ(i,j,bi,bj)=0.
61 RAW(i,j,bi,bj)=0.
62 RAS(i,j,bi,bj)=0.
63 tanPhiAtU(i,j,bi,bj)=0.
64 tanPhiAtV(i,j,bi,bj)=0.
65 cosFacU(J,bi,bj)=1.
66 cosFacV(J,bi,bj)=1.
67 sqcosFacU(J,bi,bj)=1.
68 sqcosFacV(J,bi,bj)=1.
69 ENDDO
70 ENDDO
71
72 ENDDO ! bi
73 ENDDO ! bj
74
75 C Here we make no assumptions about grid symmetry and simply
76 C read the raw grid data from files
77
78 C- Cell centered quantities
79 CALL MDSREADFIELD('LONC.bin',readBinaryPrec,'RL',1,XC, 1,myThid)
80 CALL MDSREADFIELD('LATC.bin',readBinaryPrec,'RL',1,YC, 1,myThid)
81 _EXCH_XY_R4(XC,myThid)
82 _EXCH_XY_R4(YC,myThid)
83
84 CALL MDSREADFIELD('DXF.bin',readBinaryPrec,'RL',1,DXF, 1,myThid)
85 CALL MDSREADFIELD('DYF.bin',readBinaryPrec,'RL',1,DYF, 1,myThid)
86 C !!! _EXCH_OUV_XY_R4(DXF, DYF, unSigned, myThid )
87 cs! this is not correct! <= need paired exchange for DXF,DYF
88 _EXCH_XY_R4(DXF,myThid)
89 _EXCH_XY_R4(DYF,myThid)
90
91 CALL MDSREADFIELD('RA.bin',readBinaryPrec,'RL',1,RA, 1,myThid)
92 _EXCH_XY_R4(RA,myThid )
93
94 C- Corner quantities
95 C *********** this are not degbugged ************
96 CALL MDSREADFIELD('LONG.bin',readBinaryPrec,'RL',1,XG, 1,myThid)
97 CALL MDSREADFIELD('LATG.bin',readBinaryPrec,'RL',1,YG, 1,myThid)
98 cs- this block needed by cubed sphere until we write more useful I/O routines
99 bi=3
100 bj=1
101 YG(1,sNy+1,bj,1)=YG(1,1,bi,1)
102 bj=bj+2
103 YG(1,sNy+1,bj,1)=YG(1,1,bi,1)
104 bj=bj+2
105 YG(1,sNy+1,bj,1)=YG(1,1,bi,1)
106 bi=6
107 bj=2
108 YG(sNx+1,1,bj,1)=YG(1,1,bi,1)
109 bj=bj+2
110 YG(sNx+1,1,bj,1)=YG(1,1,bi,1)
111 bj=bj+2
112 YG(sNx+1,1,bj,1)=YG(1,1,bi,1)
113 cs- end block
114 CALL EXCH_Z_XY_RS(XG,myThid)
115 CALL EXCH_Z_XY_RS(YG,myThid)
116
117 CALL MDSREADFIELD('DXV.bin',readBinaryPrec,'RL',1,DXV, 1,myThid)
118 CALL MDSREADFIELD('DYU.bin',readBinaryPrec,'RL',1,DYU, 1,myThid)
119 cs- this block needed by cubed sphere until we write more useful I/O routines
120 C !!! _EXCH_ZUV_XY_R4(DXV, DYU, unSigned, myThid)
121 cs! this is not correct <= need paired exchange for dxv,dyu
122 CALL EXCH_Z_XY_RS(DXV,myThid)
123 CALL EXCH_Z_XY_RS(DYU,myThid)
124 DO bj = myByLo(myThid), myByHi(myThid)
125 DO bi = myBxLo(myThid), myBxHi(myThid)
126 DXV(sNx+1,1,bi,bj)=DXV(1,1,bi,bj)
127 DXV(1,sNy+1,bi,bj)=DXV(1,1,bi,bj)
128 DYU(sNx+1,1,bi,bj)=DYU(1,1,bi,bj)
129 DYU(1,sNy+1,bi,bj)=DYU(1,1,bi,bj)
130 ENDDO
131 ENDDO
132 cs- end block
133 C !!! _EXCH_ZUV_XY_R4(DXV, DYU, unSigned, myThid)
134 cs! this is not correct <= need paired exchange for dxv,dyu
135 CALL EXCH_Z_XY_RS(DXV,myThid)
136 CALL EXCH_Z_XY_RS(DYU,myThid)
137
138 CALL MDSREADFIELD('RAZ.bin',readBinaryPrec,'RL',1,RAZ, 1,myThid)
139 cs- this block needed by cubed sphere until we write more useful I/O routines
140 CALL EXCH_Z_XY_RS(RAZ , myThid )
141 DO bj = myByLo(myThid), myByHi(myThid)
142 DO bi = myBxLo(myThid), myBxHi(myThid)
143 RAZ(sNx+1,1,bi,bj)=RAZ(1,1,bi,bj)
144 RAZ(1,sNy+1,bi,bj)=RAZ(1,1,bi,bj)
145 ENDDO
146 ENDDO
147 cs- end block
148 CALL EXCH_Z_XY_RS(RAZ,myThid)
149
150 C- Staggered (u,v pairs) quantities
151 CALL MDSREADFIELD('DXC.bin',readBinaryPrec,'RL',1,DXC, 1,myThid)
152 CALL MDSREADFIELD('DYC.bin',readBinaryPrec,'RL',1,DYC, 1,myThid)
153 CALL EXCH_UV_XY_RS(DXC,DYC,.FALSE.,myThid)
154
155 CALL MDSREADFIELD('RAW.bin',readBinaryPrec,'RL',1,RAW, 1,myThid)
156 CALL MDSREADFIELD('RAS.bin',readBinaryPrec,'RL',1,RAS, 1,myThid)
157 cs- this block needed by cubed sphere until we write more useful I/O routines
158 DO bj = myByLo(myThid), myByHi(myThid)
159 DO bi = myBxLo(myThid), myBxHi(myThid)
160 DO J = 1,sNy
161 c RAW(sNx+1,J,bi,bj)=RAW(1,J,bi,bj)
162 c RAS(J,sNy+1,bi,bj)=RAS(J,1,bi,bj)
163 ENDDO
164 ENDDO
165 ENDDO
166 cs- end block
167 CALL EXCH_UV_XY_RS(RAW,RAS,.FALSE.,myThid)
168
169 CALL MDSREADFIELD('DXG.bin',readBinaryPrec,'RL',1,DXG, 1,myThid)
170 CALL MDSREADFIELD('DYG.bin',readBinaryPrec,'RL',1,DYG, 1,myThid)
171 cs- this block needed by cubed sphere until we write more useful I/O routines
172 DO bj = myByLo(myThid), myByHi(myThid)
173 DO bi = myBxLo(myThid), myBxHi(myThid)
174 DO J = 1,sNy
175 c DYG(sNx+1,J,bi,bj)=DYG(1,J,bi,bj)
176 c DXG(J,sNy+1,bi,bj)=DXG(J,1,bi,bj)
177 ENDDO
178 ENDDO
179 ENDDO
180 cs- end block
181 CALL EXCH_UV_XY_RS(DYG,DXG,.FALSE.,myThid)
182
183 c write(10) XC
184 c write(10) YC
185 c write(10) DXF
186 c write(10) DYF
187 c write(10) RA
188 c write(10) XG
189 c write(10) YG
190 c write(10) DXV
191 c write(10) DYU
192 c write(10) RAZ
193 c write(10) DXC
194 c write(10) DYC
195 c write(10) RAW
196 c write(10) RAS
197 c write(10) DXG
198 c write(10) DYG
199
200 RETURN
201 END

  ViewVC Help
Powered by ViewVC 1.1.22