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

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

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


Revision 1.2 - (hide 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 adcroft 1.2 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