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

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

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

revision 1.8 by edhill, Tue Dec 14 23:00:53 2004 UTC revision 1.17 by edhill, Thu Oct 20 20:23:15 2005 UTC
# Line 40  C     !LOCAL VARIABLES: Line 40  C     !LOCAL VARIABLES:
40  C     tmpfld  - Temporary array used to compute & write Total Depth  C     tmpfld  - Temporary array used to compute & write Total Depth
41  C               has to be in common for multi threading  C               has to be in common for multi threading
42  C     ?aja: not sure why the COMMON block is necessary - should ask JMC?  C     ?aja: not sure why the COMMON block is necessary - should ask JMC?
43        COMMON / LOCAL_INI_MASKS_ETC / tmpfld  c     COMMON / LOCAL_INI_MASKS_ETC / tmpfld
44        _RS tmpfld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RS tmpfld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
45        INTEGER i,j,bi,bj        INTEGER i,j,bi,bj
46  CEOP  CEOP
# Line 59  C             Total fluid column thickne Line 59  C             Total fluid column thickne
59          ENDDO          ENDDO
60        ENDDO        ENDDO
61    
62    #ifdef ALLOW_MNC
63          IF ( (.NOT. useMNC) .OR. (outputTypesInclusive) ) THEN
64    #endif /* ALLOW_MNC */
65    
66        _BEGIN_MASTER( myThid )        _BEGIN_MASTER( myThid )
67    
68  C     Write horizontal grid arrays  C     Write horizontal grid arrays
# Line 69  C     Write horizontal grid arrays Line 73  C     Write horizontal grid arrays
73        CALL WRITE_FLD_XY_RS( 'RAC',' ',rA,0,myThid)        CALL WRITE_FLD_XY_RS( 'RAC',' ',rA,0,myThid)
74        CALL WRITE_FLD_XY_RS( 'RAW',' ',rAw,0,myThid)        CALL WRITE_FLD_XY_RS( 'RAW',' ',rAw,0,myThid)
75        CALL WRITE_FLD_XY_RS( 'RAS',' ',rAs,0,myThid)        CALL WRITE_FLD_XY_RS( 'RAS',' ',rAs,0,myThid)
76          CALL WRITE_FLD_XY_RS( 'RAZ',' ',rAz,0,myThid)
77        CALL WRITE_FLD_XY_RS( 'DXG',' ',DXG,0,myThid)        CALL WRITE_FLD_XY_RS( 'DXG',' ',DXG,0,myThid)
78        CALL WRITE_FLD_XY_RS( 'DYG',' ',DYG,0,myThid)        CALL WRITE_FLD_XY_RS( 'DYG',' ',DYG,0,myThid)
79        CALL WRITE_FLD_XY_RS( 'DXC',' ',DXC,0,myThid)        CALL WRITE_FLD_XY_RS( 'DXC',' ',DXC,0,myThid)
80        CALL WRITE_FLD_XY_RS( 'DYC',' ',DYC,0,myThid)        CALL WRITE_FLD_XY_RS( 'DYC',' ',DYC,0,myThid)
81          IF ( usingCurvilinearGrid ) THEN
82            CALL WRITE_FLD_XY_RS( 'AngleCS',' ',angleCosC,0,myThid)
83            CALL WRITE_FLD_XY_RS( 'AngleSN',' ',angleSinC,0,myThid)
84          ENDIF
85  C     Write 3D geometry arrays  C     Write 3D geometry arrays
86        CALL WRITE_FLD_XY_RS( 'Depth',' ',tmpfld,0,myThid)        CALL WRITE_FLD_XY_RS( 'Depth',' ',tmpfld,0,myThid)
87        CALL WRITE_FLD_XYZ_RS( 'hFacC',' ',hFacC,0,myThid)        CALL WRITE_FLD_XYZ_RS( 'hFacC',' ',hFacC,0,myThid)
# Line 84  C     Write 3D geometry arrays Line 93  C     Write 3D geometry arrays
93        _END_MASTER(myThid)        _END_MASTER(myThid)
94    
95  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
96        _BEGIN_MASTER( myThid )        ELSE
97        IF (useMNC) THEN  
98            _BEGIN_MASTER( myThid )
99          bfname='grid'          bfname='grid'
100                    
 C       Grid spacing, areas and hFacs  
         CALL MNC_CW_ADD_VNAME('drC', '-_-_--__C__-', 0,0, myThid)  
         CALL MNC_CW_ADD_VNAME('drF', '-_-_--__C__-', 0,0, myThid)  
         CALL MNC_CW_ADD_VNAME('saFac', '-_-_--__C__-', 0,0, myThid)  
   
         CALL MNC_CW_ADD_VNAME('dxC', 'Cen_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('dyC', 'Cen_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('dxF', 'Cen_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('dyF', 'Cen_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('dxG', 'Cen_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('dyG', 'Cen_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('dxV', 'U_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('dyU', 'V_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('rA', 'Cen_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('rAw', 'Cen_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('rAs', 'Cen_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('rAz', 'Cen_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('fCori', 'Cen_xy_Hn__-__-', 3,4,myThid)  
         CALL MNC_CW_ADD_VNAME('fCoriG','Cen_xy_Hn__-__-', 3,4,myThid)  
         CALL MNC_CW_ADD_VNAME('R_low','Cen_xy_Hn__-__-', 3,4, myThid)  
         CALL MNC_CW_ADD_VNAME('Ro_surf','Cen_xy_Hn__-__-',3,4,myThid)  
         CALL MNC_CW_ADD_VNAME('Depth', 'Cen_xy_Hn__-__-', 3,4,myThid)  
         CALL MNC_CW_ADD_VNAME('HFacC', 'Cen_xy_Hn__C__-', 4,5,myThid)  
         CALL MNC_CW_ADD_VNAME('HFacW', 'Cen_xy_Hn__C__-', 4,5,myThid)  
         CALL MNC_CW_ADD_VNAME('HFacS', 'Cen_xy_Hn__C__-', 4,5,myThid)  
           
         CALL MNC_CW_ADD_VATTR_TEXT('drC','description',  
      &       'r cell center separation',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('drF','description',  
      &       'r cell face separation',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('saFac','description',  
      &       'shallow atmosphere factor',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('dxC','description',  
      &       'x cell center separation',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('dyC','description',  
      &       'y cell center separation',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('dxF','description',  
      &       'x cell face separation',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('dyF','description',  
      &     'y cell face separation',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('dxG','description',  
      &     'x cell face separation',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('dyG','description',  
      &       'y cell face separation',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('dxV','description',  
      &       'x v-velocity separation',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('dyU','description',  
      &       'y u-velocity separation',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('rA','description',  
      &       'r-face area',myThid)  
 C       Its pointless to write blank attributes so these should be  
 C       filled in.  
 C        CALL MNC_CW_ADD_VATTR_TEXT('rAw','description',  
 C     &       '',myThid)  
 C        CALL MNC_CW_ADD_VATTR_TEXT('rAs','description',  
 C     &       '',myThid)  
 C        CALL MNC_CW_ADD_VATTR_TEXT('rAz','description',  
 C       &       '',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('fCori','description',  
      &       'Coriolis f',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('fCoriG','description',  
      &       'Coriolis f',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('R_low','description',  
      &       'base of fluid in r-units',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('Ro_surf','description',  
      &       'surface reference (at rest) position',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('Depth','description',  
      &       'fluid thickness in r coordinates (at rest)',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('HFacC','description',  
      &       'C-facing vertical fraction of open cell',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('HFacW','description',  
      &       'W-facing vertical fraction of open cell',myThid)  
         CALL MNC_CW_ADD_VATTR_TEXT('HFacS','description',  
      &       'S-facing vertical fraction of open cell',myThid)  
           
101  C       Write the GRID.h variables to a file  C       Write the GRID.h variables to a file
102          CALL MNC_CW_SET_UDIM(bfname, 0, myThid)          CALL MNC_CW_SET_UDIM(bfname, 0, myThid)
103            CALL MNC_CW_SET_CITER(bfname, 2, -1, -1, -1, myThid)
104            CALL MNC_CW_SET_UDIM(bfname, 1, myThid)
105          CALL MNC_CW_RL_W('D',bfname,0,0,'RC',rC,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'RC',rC,myThid)
106          CALL MNC_CW_RL_W('D',bfname,0,0,'RF',rF,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'RF',rF,myThid)
107            CALL MNC_CW_RL_W('D',bfname,0,0,'RU',rF(2),myThid)
108            CALL MNC_CW_RL_W('D',bfname,0,0,'RL',rF,myThid)
109          CALL MNC_CW_RL_W('D',bfname,0,0,'drC',drC,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'drC',drC,myThid)
110          CALL MNC_CW_RL_W('D',bfname,0,0,'drF',drF,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'drF',drF,myThid)
         CALL MNC_CW_RL_W('D',bfname,0,0,'saFac',saFac,myThid)  
111          CALL MNC_CW_RL_W('D',bfname,0,0,'XC',xC,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'XC',xC,myThid)
112          CALL MNC_CW_RL_W('D',bfname,0,0,'YC',yC,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'YC',yC,myThid)
113          CALL MNC_CW_RL_W('D',bfname,0,0,'XU',xG,myThid)  c       CALL MNC_CW_RL_W('D',bfname,0,0,'XU',xG,myThid)
114          CALL MNC_CW_RL_W('D',bfname,0,0,'YU',yC,myThid)  c       CALL MNC_CW_RL_W('D',bfname,0,0,'YU',yC,myThid)
115          CALL MNC_CW_RL_W('D',bfname,0,0,'XV',xC,myThid)  c       CALL MNC_CW_RL_W('D',bfname,0,0,'XV',xC,myThid)
116          CALL MNC_CW_RL_W('D',bfname,0,0,'YV',yG,myThid)  c       CALL MNC_CW_RL_W('D',bfname,0,0,'YV',yG,myThid)
117          CALL MNC_CW_RL_W('D',bfname,0,0,'XG',xG,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'XG',xG,myThid)
118          CALL MNC_CW_RL_W('D',bfname,0,0,'YG',yG,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'YG',yG,myThid)
119          CALL MNC_CW_RL_W('D',bfname,0,0,'dxC',dxC,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'dxC',dxC,myThid)
# Line 190  C       Write the GRID.h variables to a Line 128  C       Write the GRID.h variables to a
128          CALL MNC_CW_RL_W('D',bfname,0,0,'rAw',rAw,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'rAw',rAw,myThid)
129          CALL MNC_CW_RL_W('D',bfname,0,0,'rAs',rAs,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'rAs',rAs,myThid)
130          CALL MNC_CW_RL_W('D',bfname,0,0,'rAz',rAz,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'rAz',rAz,myThid)
131            IF ( usingCurvilinearGrid ) THEN
132              CALL MNC_CW_RL_W('D',bfname,0,0,'AngleCS',angleCosC,myThid)
133              CALL MNC_CW_RL_W('D',bfname,0,0,'AngleSN',angleSinC,myThid)
134            ENDIF
135          CALL MNC_CW_RL_W('D',bfname,0,0,'fCori',fCori,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'fCori',fCori,myThid)
136          CALL MNC_CW_RL_W('D',bfname,0,0,'fCoriG',fCoriG,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'fCoriG',fCoriG,myThid)
137          CALL MNC_CW_RL_W('D',bfname,0,0,'R_low',R_low,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'R_low',R_low,myThid)
# Line 198  C       Write the GRID.h variables to a Line 140  C       Write the GRID.h variables to a
140          CALL MNC_CW_RL_W('D',bfname,0,0,'HFacC',HFacC,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'HFacC',HFacC,myThid)
141          CALL MNC_CW_RL_W('D',bfname,0,0,'HFacW',HFacW,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'HFacW',HFacW,myThid)
142          CALL MNC_CW_RL_W('D',bfname,0,0,'HFacS',HFacS,myThid)          CALL MNC_CW_RL_W('D',bfname,0,0,'HFacS',HFacS,myThid)
143            _END_MASTER(myThid)
144    
145        ENDIF        ENDIF
       _END_MASTER(myThid)  
146  #endif /* ALLOW_MNC */  #endif /* ALLOW_MNC */
147    
148        RETURN        RETURN

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.17

  ViewVC Help
Powered by ViewVC 1.1.22