File indexing completed on 2018-03-02 18:36:47 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
a6cbc7a360 Mart*0001 #include "PACKAGES_CONFIG.h"
1dbaea09ee Chri*0002 #include "CPP_OPTIONS.h"
924557e60a Chri*0003
9366854e02 Chri*0004
0005
0006
924557e60a Chri*0007 SUBROUTINE INI_DEPTHS( myThid )
fb2f11e499 Jean*0008
9366854e02 Chri*0009
0010
8d70182ac2 Jean*0011
0012
9366854e02 Chri*0013
8d70182ac2 Jean*0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
9366854e02 Chri*0027
0028
924557e60a Chri*0029
9366854e02 Chri*0030
0031 IMPLICIT NONE
924557e60a Chri*0032
0033 #include "SIZE.h"
0034 #include "EEPARAMS.h"
0035 #include "PARAMS.h"
0036 #include "GRID.h"
681eca3696 Jean*0037 #include "SURFACE.h"
5f4df5533c Ed H*0038 #ifdef ALLOW_MNC
76da4a5e0b Mart*0039 # include "MNC_PARAMS.h"
5f4df5533c Ed H*0040 #endif
924557e60a Chri*0041
9366854e02 Chri*0042
924557e60a Chri*0043
fb2f11e499 Jean*0044
924557e60a Chri*0045 INTEGER myThid
0046
9366854e02 Chri*0047
924557e60a Chri*0048
fb2f11e499 Jean*0049
0050
0051
0052
0053
924557e60a Chri*0054 INTEGER iG, jG
0055 INTEGER bi, bj
fb2f11e499 Jean*0056 INTEGER i, j
6c9bcec054 Jean*0057 CHARACTER*(MAX_LEN_MBUF) msgBuf
9366854e02 Chri*0058
6c9bcec054 Jean*0059
8d70182ac2 Jean*0060 IF (usingPCoords .AND. bathyFile .NE. ' '
0061 & .AND. topoFile .NE. ' ' ) THEN
6c9bcec054 Jean*0062 WRITE(msgBuf,'(A,A)')
0063 & 'S/R INI_DEPTHS: both bathyFile & topoFile are specified:',
0064 & ' select the right one !'
0065 CALL PRINT_ERROR( msgBuf , myThid)
0066 STOP 'ABNORMAL END: S/R INI_DEPTHS'
0067 ENDIF
0068
0069
0070
0071
0072 DO bj = myByLo(myThid), myByHi(myThid)
0073 DO bi = myBxLo(myThid), myBxHi(myThid)
522c728681 Jean*0074 DO j=1-OLy,sNy+OLy
0075 DO i=1-OLx,sNx+OLx
c2953005c8 Jean*0076 R_low(i,j,bi,bj) = 0. _d 0
0077 Ro_surf(i,j,bi,bj) = 0. _d 0
0078 topoZ(i,j,bi,bj) = 0. _d 0
6c9bcec054 Jean*0079 ENDDO
0080 ENDDO
0081 ENDDO
0082 ENDDO
0083
c2953005c8 Jean*0084
3365bdc872 Jean*0085
0086
c2953005c8 Jean*0087
6c9bcec054 Jean*0088
0089
0090
8d70182ac2 Jean*0091 IF (usingPCoords .OR. bathyFile .EQ. ' ') THEN
6c9bcec054 Jean*0092
6bf17245c3 Jean*0093
81bc00c2f0 Chri*0094 DO bj = myByLo(myThid), myByHi(myThid)
0095 DO bi = myBxLo(myThid), myBxHi(myThid)
6bf17245c3 Jean*0096 DO j=1,sNy
0097 DO i=1,sNx
6c9bcec054 Jean*0098 R_low(i,j,bi,bj) = rF(Nr+1)
81bc00c2f0 Chri*0099 ENDDO
924557e60a Chri*0100 ENDDO
0101 ENDDO
0102 ENDDO
81bc00c2f0 Chri*0103 ELSE
5f4df5533c Ed H*0104
0105 #ifdef ALLOW_MNC
0106 IF (useMNC .AND. mnc_read_bathy) THEN
0107 CALL MNC_CW_ADD_VNAME('bathy', 'Cen_xy_Hn__-__-', 3,4, myThid)
0108 CALL MNC_FILE_CLOSE_ALL_MATCHING(bathyFile, myThid)
0109 CALL MNC_CW_SET_UDIM(bathyFile, 1, myThid)
0110 CALL MNC_CW_SET_CITER(bathyFile, 2, -1, -1, -1, myThid)
0111 CALL MNC_CW_SET_UDIM(bathyFile, 1, myThid)
fa6c69f783 Jean*0112 CALL MNC_CW_RS_R('D',bathyFile,0,0,'bathy',R_low, myThid)
5f4df5533c Ed H*0113 CALL MNC_FILE_CLOSE_ALL_MATCHING(bathyFile, myThid)
0114 CALL MNC_CW_DEL_VNAME('bathy', myThid)
0115 ELSE
0116 #endif /* ALLOW_MNC */
c2953005c8 Jean*0117
ab42872a05 Alis*0118
5f4df5533c Ed H*0119 CALL READ_REC_XY_RS( bathyFile, R_low, 1, 0, myThid )
c2953005c8 Jean*0120
ab42872a05 Alis*0121
6c9bcec054 Jean*0122
ab42872a05 Alis*0123
6c9bcec054 Jean*0124
0125
5f4df5533c Ed H*0126
0127 #ifdef ALLOW_MNC
0128 ENDIF
0129 #endif /* ALLOW_MNC */
0130
81bc00c2f0 Chri*0131 ENDIF
6bf17245c3 Jean*0132
0133
c2953005c8 Jean*0134
12c8b75709 Jean*0135 _EXCH_XY_RS(R_low, myThid )
fb481a83c2 Alis*0136
522c728681 Jean*0137 IF ( plotLevel.GE.debLevC ) THEN
f6070d4bb4 Patr*0138
9f60bc5a7c Jean*0139 CALL PLOT_FIELD_XYRS( R_low, 'Bottom depths (ini_depths)',
0140 & -1, myThid )
0141 ENDIF
8d70182ac2 Jean*0142
6c9bcec054 Jean*0143
0144
fb481a83c2 Alis*0145
6c9bcec054 Jean*0146
0147
0148
0149
8d70182ac2 Jean*0150 IF ( usingPCoords .AND. bathyFile.NE.' ' ) THEN
0151
6bf17245c3 Jean*0152
0153 CALL READ_REC_XY_RS( bathyFile, Ro_surf, 1, 0, myThid )
0154
0155 ELSEIF ( topoFile.EQ.' ' ) THEN
0156
6c9bcec054 Jean*0157
0158 DO bj = myByLo(myThid), myByHi(myThid)
0159 DO bi = myBxLo(myThid), myBxHi(myThid)
6bf17245c3 Jean*0160 DO j=1,sNy
0161 DO i=1,sNx
ccf58cd9c3 Jean*0162 Ro_surf(i,j,bi,bj) = rF(1)
6c9bcec054 Jean*0163 ENDDO
0164 ENDDO
0165 ENDDO
0166 ENDDO
0167
0168 ELSE
6bf17245c3 Jean*0169
6c9bcec054 Jean*0170
0171
c2953005c8 Jean*0172
681eca3696 Jean*0173 CALL READ_REC_XY_RS( topoFile, topoZ, 1, 0, myThid )
32faf9b967 Jean*0174 _EXCH_XY_RS( topoZ, myThid )
6c9bcec054 Jean*0175
0176 IF (buoyancyRelation .EQ. 'ATMOSPHERIC') THEN
6bf17245c3 Jean*0177
8d70182ac2 Jean*0178
6c9bcec054 Jean*0179
6bf17245c3 Jean*0180
8d70182ac2 Jean*0181
6c9bcec054 Jean*0182
46ac67bdf3 Jean*0183 CALL INI_P_GROUND( 2, topoZ,
0184 O Ro_surf,
463053c692 Jean*0185 I myThid )
6c9bcec054 Jean*0186
f4a7634227 Alis*0187
8d70182ac2 Jean*0188
6c9bcec054 Jean*0189
ccf58cd9c3 Jean*0190 ELSEIF ( buoyancyRelation.EQ.'OCEANICP' ) THEN
0191
0192 WRITE(msgBuf,'(A,A)') 'S/R INI_DEPTHS: ',
0193 & 'from topoFile (in m) to ref.bottom pressure: Not yet coded'
0194 CALL PRINT_ERROR( msgBuf , myThid)
0195 STOP 'ABNORMAL END: S/R INI_DEPTHS'
0196
6c9bcec054 Jean*0197 ELSE
6bf17245c3 Jean*0198
8d70182ac2 Jean*0199
46ac67bdf3 Jean*0200
6c9bcec054 Jean*0201 DO bj = myByLo(myThid), myByHi(myThid)
0202 DO bi = myBxLo(myThid), myBxHi(myThid)
0203 DO j=1,sNy
0204 DO i=1,sNx
681eca3696 Jean*0205 Ro_surf(i,j,bi,bj) = topoZ(i,j,bi,bj)
6c9bcec054 Jean*0206 ENDDO
0207 ENDDO
0208 ENDDO
0209 ENDDO
0210
6bf17245c3 Jean*0211 ENDIF
6c9bcec054 Jean*0212
6bf17245c3 Jean*0213
6c9bcec054 Jean*0214 ENDIF
0215
c2953005c8 Jean*0216
12c8b75709 Jean*0217 _EXCH_XY_RS(Ro_surf, myThid )
6bf17245c3 Jean*0218
6c9bcec054 Jean*0219
0220
0221
0222
0223
8d70182ac2 Jean*0224 IF (usingPCoords) THEN
fb481a83c2 Alis*0225 DO bj = myByLo(myThid), myByHi(myThid)
0226 DO bi = myBxLo(myThid), myBxHi(myThid)
522c728681 Jean*0227 DO j=1-OLy,sNy+OLy
0228 DO i=1-OLx,sNx+OLx
fb2f11e499 Jean*0229 iG = myXGlobalLo-1+(bi-1)*sNx+i
0230 jG = myYGlobalLo-1+(bj-1)*sNy+j
6c9bcec054 Jean*0231
0232
0233
0234
fb2f11e499 Jean*0235
0236
0237
0238
0239 IF ( usingSphericalPolarGrid .AND.
0240 & ABS(yC(i,j,bi,bj)).GE.90. )
0241 & Ro_surf(i,j,bi,bj) = rF(Nr+1)
aea29c8517 Alis*0242 ENDDO
0243 ENDDO
0244 ENDDO
0245 ENDDO
0246 ELSE
0247 DO bj = myByLo(myThid), myByHi(myThid)
0248 DO bi = myBxLo(myThid), myBxHi(myThid)
522c728681 Jean*0249 DO j=1-OLy,sNy+OLy
0250 DO i=1-OLx,sNx+OLx
fb2f11e499 Jean*0251 iG = myXGlobalLo-1+(bi-1)*sNx+i
0252 jG = myYGlobalLo-1+(bj-1)*sNy+j
6c9bcec054 Jean*0253
0254
0255
0256
fb2f11e499 Jean*0257
0258
0259
0260
0261 IF ( usingSphericalPolarGrid .AND.
0262 & ABS(yC(i,j,bi,bj)).GE.90. )
0263 & R_low(i,j,bi,bj) = rF(1)
fb481a83c2 Alis*0264 ENDDO
0265 ENDDO
0266 ENDDO
0267 ENDDO
0268 ENDIF
aea29c8517 Alis*0269
522c728681 Jean*0270 IF ( plotLevel.GE.debLevC ) THEN
3365bdc872 Jean*0271 _BARRIER
9f60bc5a7c Jean*0272 CALL PLOT_FIELD_XYRS( Ro_surf,
0273 & 'Surface reference r-position (ini_depths)',
0274 & -1, myThid )
0275 ENDIF
8d70182ac2 Jean*0276
6c9bcec054 Jean*0277
06bb0cec77 Jean*0278
fb2f11e499 Jean*0279
3365bdc872 Jean*0280
0281
06bb0cec77 Jean*0282
76da4a5e0b Mart*0283 #ifdef ALLOW_OBCS
0284 IF ( useOBCS ) THEN
0285
0916a7672c Jean*0286 CALL OBCS_CHECK_DEPTHS( myThid )
76da4a5e0b Mart*0287
fb2f11e499 Jean*0288 _EXCH_XY_RS( R_low, myThid )
76da4a5e0b Mart*0289 ENDIF
0290 #endif /* ALLOW_OBCS */
0291
0916a7672c Jean*0292 #ifdef ALLOW_EXCH2
0293
0294 CALL EXCH2_CHECK_DEPTHS( R_low, Ro_surf, myThid )
0295 #endif
0296
924557e60a Chri*0297 RETURN
0298 END