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) |
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 |