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

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

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

revision 1.20 by jmc, Tue Oct 17 18:52:34 2006 UTC revision 1.21 by jmc, Tue Jan 27 15:35:27 2009 UTC
# Line 9  C     !INTERFACE: Line 9  C     !INTERFACE:
9        SUBROUTINE INI_CARTESIAN_GRID( myThid )        SUBROUTINE INI_CARTESIAN_GRID( myThid )
10  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
11  C     *==========================================================*  C     *==========================================================*
12  C     | SUBROUTINE INI_CARTESIAN_GRID                              C     | SUBROUTINE INI_CARTESIAN_GRID
13  C     | o Initialise model coordinate system                        C     | o Initialise model coordinate system
14  C     *==========================================================*  C     *==========================================================*
15  C     | The grid arrays, initialised here, are used throughout  C     | The grid arrays, initialised here, are used throughout
16  C     | the code in evaluating gradients, integrals and spatial  C     | the code in evaluating gradients, integrals and spatial
17  C     | avarages. This routine    C     | avarages. This routine
18  C     | is called separately by each thread and initialises only    C     | is called separately by each thread and initialises only
19  C     | the region of the domain it is "responsible" for.          C     | the region of the domain it is "responsible" for.
20  C     | Notes:                                                      C     | Notes:
21  C     | Two examples are included. One illustrates the              C     | Two examples are included. One illustrates the
22  C     | initialisation of a cartesian grid (this routine).  C     | initialisation of a cartesian grid (this routine).
23  C     | The other shows the    C     | The other shows the
24  C     | inialisation of a spherical polar grid. Other orthonormal  C     | inialisation of a spherical polar grid. Other orthonormal
25  C     | grids can be fitted into this design. In this case          C     | grids can be fitted into this design. In this case
26  C     | custom metric terms also need adding to account for the    C     | custom metric terms also need adding to account for the
27  C     | projections of velocity vectors onto these grids.          C     | projections of velocity vectors onto these grids.
28  C     | The structure used here also makes it possible to          C     | The structure used here also makes it possible to
29  C     | implement less regular grid mappings. In particular        C     | implement less regular grid mappings. In particular
30  C     | o Schemes which leave out blocks of the domain that are    C     | o Schemes which leave out blocks of the domain that are
31  C     |   all land could be supported.                              C     |   all land could be supported.
32  C     | o Multi-level schemes such as icosohedral or cubic          C     | o Multi-level schemes such as icosohedral or cubic
33  C     |   grid projections onto a sphere can also be fitted        C     |   grid projections onto a sphere can also be fitted
34  C     |   within the strategy we use.                              C     |   within the strategy we use.
35  C     |   Both of the above also require modifying the support      C     |   Both of the above also require modifying the support
36  C     |   routines that map computational blocks to simulation      C     |   routines that map computational blocks to simulation
37  C     |   domain blocks.                                            C     |   domain blocks.
38  C     | Under the cartesian grid mode primitive distances in X      C     | Under the cartesian grid mode primitive distances in X
39  C     | and Y are in metres. Disktance in Z are in m or Pa          C     | and Y are in metres. Disktance in Z are in m or Pa
40  C     | depending on the vertical gridding mode.                    C     | depending on the vertical gridding mode.
41  C     *==========================================================*  C     *==========================================================*
42  C     \ev  C     \ev
43    
# Line 51  C     === Global variables === Line 51  C     === Global variables ===
51    
52  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
53  C     == Routine arguments ==  C     == Routine arguments ==
54  C     myThid -  Number of this instance of INI_CARTESIAN_GRID  C     myThid  ::  Number of this instance of INI_CARTESIAN_GRID
55        INTEGER myThid        INTEGER myThid
56    
57  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
# Line 78  C--     "Global" index (place holder) Line 78  C--     "Global" index (place holder)
78          iG = myXGlobalLo + (bi-1)*sNx          iG = myXGlobalLo + (bi-1)*sNx
79    
80  C--   First find coordinate of tile corner (meaning outer corner of halo)  C--   First find coordinate of tile corner (meaning outer corner of halo)
81          xG0 = 0.          xG0 = xgOrigin
82  C       Find the X-coordinate of the outer grid-line of the "real" tile  C       Find the X-coordinate of the outer grid-line of the "real" tile
83          DO i=1, iG-1          DO i=1, iG-1
84           xG0 = xG0 + delX(i)           xG0 = xG0 + delX(i)
# Line 88  C       Back-step to the outer grid-line Line 88  C       Back-step to the outer grid-line
88           xG0 = xG0 - delX( 1+mod(Olx*Nx-1+iG-i,Nx) )           xG0 = xG0 - delX( 1+mod(Olx*Nx-1+iG-i,Nx) )
89          ENDDO          ENDDO
90  C       Find the Y-coordinate of the outer grid-line of the "real" tile  C       Find the Y-coordinate of the outer grid-line of the "real" tile
91          yG0 = 0.          yG0 = ygOrigin
92          DO j=1, jG-1          DO j=1, jG-1
93           yG0 = yG0 + delY(j)           yG0 = yG0 + delY(j)
94          ENDDO          ENDDO
# Line 188  c         dYU(I,J,bi,bj) = 0.5*(dYC(I,J, Line 188  c         dYU(I,J,bi,bj) = 0.5*(dYC(I,J,
188           ENDDO           ENDDO
189          ENDDO          ENDDO
190    
191  C--     Calculate vertical face area  C--     Calculate vertical face area
192          DO J=1-Oly,sNy+Oly          DO J=1-Oly,sNy+Oly
193           DO I=1-Olx,sNx+Olx           DO I=1-Olx,sNx+Olx
194            rA (I,J,bi,bj) = dxF(I,J,bi,bj)*dyF(I,J,bi,bj)            rA (I,J,bi,bj) = dxF(I,J,bi,bj)*dyF(I,J,bi,bj)
# Line 211  C--     Cosine(lat) scaling Line 211  C--     Cosine(lat) scaling
211           sqcosFacV(J,bi,bj)=1.           sqcosFacV(J,bi,bj)=1.
212          ENDDO          ENDDO
213    
214         ENDDO ! bi  C--   end bi,bj loops
215        ENDDO ! bj         ENDDO
216          ENDDO
217    
218  C--   Set default (=whole domain) for where relaxation to climatology applies  C--   Set default (=whole domain) for where relaxation to climatology applies
219        _BEGIN_MASTER(myThid)        _BEGIN_MASTER(myThid)
# Line 222  C--   Set default (=whole domain) for wh Line 223  C--   Set default (=whole domain) for wh
223            latBandClimRelax = latBandClimRelax + delY(j)            latBandClimRelax = latBandClimRelax + delY(j)
224          ENDDO          ENDDO
225          latBandClimRelax = latBandClimRelax*3. _d 0          latBandClimRelax = latBandClimRelax*3. _d 0
226        ENDIF        ENDIF
227        _END_MASTER(myThid)        _END_MASTER(myThid)
228    
229        RETURN        RETURN

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.21

  ViewVC Help
Powered by ViewVC 1.1.22