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

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

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

revision 1.12 by cnh, Wed Sep 26 18:09:16 2001 UTC revision 1.13 by jmc, Thu Mar 7 14:09:02 2002 UTC
# Line 29  C     myThid -  Number of this instance Line 29  C     myThid -  Number of this instance
29    
30  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
31  C     == Local variables ==  C     == Local variables ==
32  C     K  C     K        :: loop index
33    C     msgBuf   :: Informational/error meesage buffer  
34        INTEGER K        INTEGER K
35          CHARACTER*(MAX_LEN_MBUF) msgBuf
36  CEOP  CEOP
37    
38  C     Calculate depths of centers and interfaces        IF (setCenterDr) THEN
39    C-- Interface at middle between 2 centers :
40    
41    C-    Check that all thickness are > 0 :
42           DO K=1,Nr+1
43            IF (delRc(K).LE.0.) THEN
44             WRITE(msgBuf,'(A,I4,A,E16.8)')
45         &  'S/R INI_VERTICAL_GRID: delRc(K=',K,' )=',delRc(K)
46             CALL PRINT_ERROR( msgBuf , 1)
47             WRITE(msgBuf,'(A)')
48         &  'S/R INI_VERTICAL_GRID: Vert. grid spacing MUST BE > 0'
49             CALL PRINT_ERROR( msgBuf , 1)
50             STOP 'ABNORMAL END: S/R INI_VERTICAL_GRID'
51            ENDIF
52           ENDDO
53    
54    C-    Calculate depths of centers and interfaces
55            rF(1)  = Ro_SeaLevel
56            rC(1)  = rF(1) - rkFac*delRc(1)
57            drC(1) = delRc(1)
58            drF(1) = delRc(1)
59           DO K=2,Nr
60            drC(K)   = delRc(K)
61            drF(K-1) =  drF(K-1) + 0.5 _d 0*delRc(K)
62            drF(K)   = 0.5 _d 0*delRc(K)
63            rC(K)    = rC(K-1) - rkFac*drC(K)
64            rF(K)    = rF(K-1) - rkFac*drF(K-1)
65           ENDDO
66            drF(Nr)  = drF(Nr) + delRc(Nr+1)
67            rF(Nr+1) = rF(Nr) - rkFac*drF(Nr)
68    
69          ELSE
70    C-- Center at middle between 2 interfaces :
71    
72    C-    Check that all thickness are > 0 :
73           DO K=1,Nr
74            IF (delR(K).LE.0.) THEN
75             WRITE(msgBuf,'(A,I4,A,E16.8)')
76         &  'S/R INI_VERTICAL_GRID: delR(K=',K,' )=',delR(K)
77             CALL PRINT_ERROR( msgBuf , 1)
78             WRITE(msgBuf,'(A)')
79         &  'S/R INI_VERTICAL_GRID: Vert. grid spacing MUST BE > 0'
80             CALL PRINT_ERROR( msgBuf , 1)
81             STOP 'ABNORMAL END: S/R INI_VERTICAL_GRID'
82            ENDIF
83           ENDDO
84    
85    C-    Calculate depths of interfaces and centers
86        rF(1) = Ro_SeaLevel        rF(1) = Ro_SeaLevel
87        DO K=1,Nr        DO K=1,Nr
88         drF(K)     = delR(K)         drF(K)     = delR(K)
# Line 45  C     Calculate depths of centers and in Line 94  C     Calculate depths of centers and in
94         drC(K)     = 0.5 _d 0 *(delR(K-1)+delR(K))         drC(K)     = 0.5 _d 0 *(delR(K-1)+delR(K))
95         rC(K)      = rC(K-1) - rkFac*drC(K)         rC(K)      = rC(K-1) - rkFac*drC(K)
96        ENDDO        ENDDO
97    
98    C--
99          ENDIF
100    
101    C-    Calculate reciprol vertical grid spacing :
102        DO K=1,Nr        DO K=1,Nr
103         saFac(K)  = 1. _d 0         saFac(K)  = 1. _d 0
104         recip_drC(K)   = 1. _d 0/drC(K)         recip_drC(K)   = 1. _d 0/drC(K)
105         recip_drF(K)   = 1. _d 0/drF(K)         recip_drF(K)   = 1. _d 0/drF(K)
106        ENDDO        ENDDO
107  C  
108        RETURN        RETURN
109        END        END

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.22