/[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.2 - (show annotations) (download)
Tue May 29 14:01:37 2001 UTC (23 years ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint40pre3, checkpoint40pre1, checkpoint40pre7, checkpoint40pre6, checkpoint40pre9, checkpoint40pre8, checkpoint40pre2, checkpoint40pre4, checkpoint40pre5, checkpoint40
Changes since 1.1: +188 -0 lines
Merge from branch pre38:
 o essential mods for cubed sphere
 o debugged atmosphere, dynamcis + physics (aim)
 o new packages (mom_vecinv, mom_fluxform, ...)

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

  ViewVC Help
Powered by ViewVC 1.1.22