File indexing completed on 2023-07-14 05:09:58 UTC
view on githubraw file Latest commit de57a2ec on 2023-07-13 16:55:13 UTC
aa335bcda3 Ed H*0001 #include "PACKAGES_CONFIG.h"
aea29c8517 Alis*0002 #include "CPP_OPTIONS.h"
0003
9366854e02 Chri*0004
0005
0006
aea29c8517 Alis*0007 SUBROUTINE INI_CURVILINEAR_GRID( myThid )
9744e36521 Jean*0008
9366854e02 Chri*0009
0010
a7f6b46be7 Jean*0011
0012
9366854e02 Chri*0013
0014
0015
0016
0017
0018
0019
aea29c8517 Alis*0020
9366854e02 Chri*0021
0022 IMPLICIT NONE
aea29c8517 Alis*0023
0024 #include "SIZE.h"
0025 #include "EEPARAMS.h"
0026 #include "PARAMS.h"
0027 #include "GRID.h"
4749c74143 Alis*0028 #ifdef ALLOW_EXCH2
1cc6effca6 Jean*0029 #include "W2_EXCH2_SIZE.h"
bdac319189 Jean*0030 #include "W2_EXCH2_TOPOLOGY.h"
0031 #endif
e808c5b132 Ed H*0032 #ifdef ALLOW_MNC
0033 #include "MNC_PARAMS.h"
0034 #endif
bdac319189 Jean*0035
9366854e02 Chri*0036
aea29c8517 Alis*0037
530d89e069 Jean*0038
aea29c8517 Alis*0039 INTEGER myThid
0040
9366854e02 Chri*0041
54a8fe0a22 Jean*0042
0043 LOGICAL anglesAreSet
0044 COMMON /LOCAL_INI_CURVILINEAR_GRID/ anglesAreSet
aea29c8517 Alis*0045
ae73826a86 Jean*0046 INTEGER bi,bj
7d173b8d56 Jean*0047 INTEGER i,j
8996cf5a3c Jean*0048 CHARACTER*(MAX_LEN_MBUF) msgBuf
30d424dc37 Jean*0049 INTEGER fp
9744e36521 Jean*0050 _RL tmpFac, tmpFac2
e808c5b132 Ed H*0051 #ifdef ALLOW_MNC
de57a2ec4b Mart*0052 CHARACTER*(MAX_LEN_FNAM) mncFn
e808c5b132 Ed H*0053 #endif
8996cf5a3c Jean*0054 #ifndef OLD_GRID_IO
623695a379 Jean*0055 INTEGER iG, jG, iL, iLen
8996cf5a3c Jean*0056 CHARACTER*(MAX_LEN_FNAM) fName
0057 CHARACTER*(MAX_LEN_MBUF) tmpBuf
56cf4bd603 Jean*0058 INTEGER ILNBLNK
0059 EXTERNAL ILNBLNK
8996cf5a3c Jean*0060 #endif
b9dadda204 Mart*0061 #ifdef ALLOW_EXCH2
0062 CHARACTER*(6) fmtStr
0063 INTEGER iTmp
0064 #endif
9366854e02 Chri*0065
aea29c8517 Alis*0066
0067
be9aaf9124 Jean*0068
aea29c8517 Alis*0069
0070
0071
0072
bdac319189 Jean*0073 #ifdef OLD_GRID_IO
30d424dc37 Jean*0074
0075
0076 fp = readBinaryPrec
bdac319189 Jean*0077
4d2c31cbda Jean*0078 # ifdef ALLOW_MDSIO
aea29c8517 Alis*0079
30d424dc37 Jean*0080 CALL READ_REC_3D_RS( 'LONC.bin', fp, 1, xC, 1, 0, myThid )
0081 CALL READ_REC_3D_RS( 'LATC.bin', fp, 1, yC, 1, 0, myThid )
12c8b75709 Jean*0082 _EXCH_XY_RS(xC,myThid)
0083 _EXCH_XY_RS(yC,myThid)
aea29c8517 Alis*0084
30d424dc37 Jean*0085 CALL READ_REC_3D_RS( 'DXF.bin', fp, 1, dxF, 1, 0, myThid )
0086 CALL READ_REC_3D_RS( 'DYF.bin', fp, 1, dyF, 1, 0, myThid )
d8a7c4feca Jean*0087 CALL EXCH_UV_AGRID_3D_RS( dxF, dyF, .FALSE., 1, myThid )
a7f6b46be7 Jean*0088
30d424dc37 Jean*0089 CALL READ_REC_3D_RS( 'RA.bin' , fp, 1, rA, 1, 0, myThid )
12c8b75709 Jean*0090 _EXCH_XY_RS(rA,myThid )
aea29c8517 Alis*0091
54a8fe0a22 Jean*0092 _BEGIN_MASTER(myThid)
0093 anglesAreSet = .FALSE.
0094 _END_MASTER(myThid)
0095
aea29c8517 Alis*0096
30d424dc37 Jean*0097 CALL READ_REC_3D_RS( 'LONG.bin', fp, 1, xG, 1, 0, myThid )
0098 CALL READ_REC_3D_RS( 'LATG.bin', fp, 1, yG, 1, 0, myThid )
f424074f4f Dimi*0099 IF (useCubedSphereExchange) THEN
aea29c8517 Alis*0100
30d424dc37 Jean*0101 IF ( nPx*nPy*nSy.EQ.1 .AND. nSx.EQ.6 ) THEN
0102 _BARRIER
0103 _BEGIN_MASTER(myThid)
0104 bi=3
0105 bj=1
0106 yG(1,sNy+1,bj,1)=yG(1,1,bi,1)
0107 bj=bj+2
0108 yG(1,sNy+1,bj,1)=yG(1,1,bi,1)
0109 bj=bj+2
0110 yG(1,sNy+1,bj,1)=yG(1,1,bi,1)
0111 bi=6
0112 bj=2
0113 yG(sNx+1,1,bj,1)=yG(1,1,bi,1)
0114 bj=bj+2
0115 yG(sNx+1,1,bj,1)=yG(1,1,bi,1)
0116 bj=bj+2
0117 yG(sNx+1,1,bj,1)=yG(1,1,bi,1)
0118 _END_MASTER(myThid)
0119 _BARRIER
0120 ELSE
0121 WRITE(msgBuf,'(2A)') 'INI_CURVILINEAR_GRID:',
0122 & ' OLD_GRID_IO only works for 6 tiles on 1 proc'
0123 CALL PRINT_ERROR( msgBuf, myThid )
0124 STOP 'ABNORMAL END: S/R INI_CURVILINEAR_GRID'
0125 ENDIF
aea29c8517 Alis*0126
f424074f4f Dimi*0127 ENDIF
d8a7c4feca Jean*0128 CALL EXCH_Z_3D_RS( xG, 1, myThid )
0129 CALL EXCH_Z_3D_RS( yG, 1, myThid )
aea29c8517 Alis*0130
30d424dc37 Jean*0131 CALL READ_REC_3D_RS( 'DXV.bin', fp, 1, dxV, 1, 0, myThid )
0132 CALL READ_REC_3D_RS( 'DYU.bin', fp, 1, dyU, 1, 0, myThid )
aea29c8517 Alis*0133
30d424dc37 Jean*0134 IF ( useCubedSphereExchange ) THEN
0135 IF ( nPx*nPy*nSx*nSy.EQ.6 .AND. sNx.EQ.sNy ) THEN
0136 DO bj = myByLo(myThid), myByHi(myThid)
0137 DO bi = myBxLo(myThid), myBxHi(myThid)
0138 dxV(sNx+1,1,bi,bj)=dxV(1,1,bi,bj)
0139 dxV(1,sNy+1,bi,bj)=dxV(1,1,bi,bj)
0140 dyU(sNx+1,1,bi,bj)=dyU(1,1,bi,bj)
0141 dyU(1,sNy+1,bi,bj)=dyU(1,1,bi,bj)
f9915c1d33 Alis*0142 ENDDO
0143 ENDDO
30d424dc37 Jean*0144 ELSE
0145 WRITE(msgBuf,'(2A)') 'INI_CURVILINEAR_GRID:',
0146 & ' OLD_GRID_IO only works with 1 tile per face'
0147 CALL PRINT_ERROR( msgBuf, myThid )
0148 STOP 'ABNORMAL END: S/R INI_CURVILINEAR_GRID'
0149 ENDIF
aea29c8517 Alis*0150
f424074f4f Dimi*0151 ENDIF
30d424dc37 Jean*0152 CALL EXCH_UV_BGRID_3D_RS( dxV, dyU, .FALSE., 1, myThid )
aea29c8517 Alis*0153
30d424dc37 Jean*0154 CALL READ_REC_3D_RS( 'RAZ.bin', fp, 1, rAz, 1, 0, myThid )
f424074f4f Dimi*0155 IF (useCubedSphereExchange) THEN
aea29c8517 Alis*0156
30d424dc37 Jean*0157 DO bj = myByLo(myThid), myByHi(myThid)
0158 DO bi = myBxLo(myThid), myBxHi(myThid)
0159 rAz(sNx+1,1,bi,bj)=rAz(1,1,bi,bj)
0160 rAz(1,sNy+1,bi,bj)=rAz(1,1,bi,bj)
0161 ENDDO
aea29c8517 Alis*0162 ENDDO
0163
f424074f4f Dimi*0164 ENDIF
d8a7c4feca Jean*0165 CALL EXCH_Z_3D_RS( rAz, 1, myThid )
aea29c8517 Alis*0166
0167
30d424dc37 Jean*0168 CALL READ_REC_3D_RS( 'DXC.bin', fp, 1, dxC, 1, 0, myThid )
0169 CALL READ_REC_3D_RS( 'DYC.bin', fp, 1, dyC, 1, 0, myThid )
a7f6b46be7 Jean*0170 CALL EXCH_UV_XY_RS(dxC,dyC,.FALSE.,myThid)
aea29c8517 Alis*0171
30d424dc37 Jean*0172 CALL READ_REC_3D_RS( 'RAW.bin', fp, 1, rAw, 1, 0, myThid )
0173 CALL READ_REC_3D_RS( 'RAS.bin', fp, 1, rAs, 1, 0, myThid )
a7f6b46be7 Jean*0174 CALL EXCH_UV_XY_RS(rAw,rAs,.FALSE.,myThid)
aea29c8517 Alis*0175
30d424dc37 Jean*0176 CALL READ_REC_3D_RS( 'DXG.bin', fp, 1, dxG, 1, 0, myThid )
0177 CALL READ_REC_3D_RS( 'DYG.bin', fp, 1, dyG, 1, 0, myThid )
a7f6b46be7 Jean*0178 CALL EXCH_UV_XY_RS(dyG,dxG,.FALSE.,myThid)
4d2c31cbda Jean*0179 # else /* ALLOW_MDSIO */
0180 WRITE(msgBuf,'(2A)')
0181 & 'INI_CURVILINEAR_GRID: In order to use OLD_GRID_IO code,'
0182 CALL PRINT_ERROR( msgBuf, myThid )
0183 WRITE(msgBuf,'(2A)')
0184 & 'INI_CURVILINEAR_GRID: needs to compile MDSIO pkg'
0185 CALL PRINT_ERROR( msgBuf, myThid )
0186 STOP 'ABNORMAL END: S/R INI_CURVILINEAR_GRID'
0187 # endif /* ALLOW_MDSIO */
aea29c8517 Alis*0188
a7f6b46be7 Jean*0189
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
aea29c8517 Alis*0205
f2ad5f0777 Dimi*0206 #else /* ifndef OLD_GRID_IO */
bdac319189 Jean*0207
285a3c0cbd Jean*0208 #ifdef ALLOW_MNC
0209 IF (useMNC .AND. readgrid_mnc) THEN
0210
0211
0212 DO i = 1,80
0213 mncFn(i:i) = ' '
0214 ENDDO
0215 write(mncFn,'(a)') 'mitgrid'
0216 DO i = 1,MAX_LEN_MBUF
0217 msgBuf(i:i) = ' '
0218 ENDDO
0219 WRITE(msgBuf,'(2A)') msgBuf,' ; Reading grid info using MNC'
0220 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0221 & SQUEEZE_RIGHT , myThid)
0222 CALL MNC_FILE_CLOSE_ALL_MATCHING(mncFn, myThid)
0223 CALL MNC_CW_SET_UDIM(mncFn, 1, myThid)
0224 CALL MNC_CW_SET_CITER(mncFn, 2, -1, -1, -1, myThid)
0225 CALL MNC_CW_SET_UDIM(mncFn, 1, myThid)
0226 CALL MNC_CW_RS_R('D',mncFn,0,0,'XC', xC, myThid)
0227 CALL MNC_CW_RS_R('D',mncFn,0,0,'XG', xG, myThid)
0228 CALL MNC_CW_RS_R('D',mncFn,0,0,'YC', yC, myThid)
0229 CALL MNC_CW_RS_R('D',mncFn,0,0,'YG', yG, myThid)
0230 CALL MNC_CW_RS_R('D',mncFn,0,0,'dxC',dxC, myThid)
0231 CALL MNC_CW_RS_R('D',mncFn,0,0,'dyC',dyC, myThid)
0232 CALL MNC_CW_RS_R('D',mncFn,0,0,'dxF',dxF, myThid)
0233 CALL MNC_CW_RS_R('D',mncFn,0,0,'dyF',dyF, myThid)
0234 CALL MNC_CW_RS_R('D',mncFn,0,0,'dxG',dxG, myThid)
0235 CALL MNC_CW_RS_R('D',mncFn,0,0,'dyG',dyG, myThid)
0236 CALL MNC_CW_RS_R('D',mncFn,0,0,'dxV',dxV, myThid)
0237 CALL MNC_CW_RS_R('D',mncFn,0,0,'dyU',dyU, myThid)
0238 CALL MNC_CW_RS_R('D',mncFn,0,0,'rA', rA, myThid)
0239 CALL MNC_CW_RS_R('D',mncFn,0,0,'rAz',rAz, myThid)
0240 CALL MNC_CW_RS_R('D',mncFn,0,0,'rAw',rAw, myThid)
0241 CALL MNC_CW_RS_R('D',mncFn,0,0,'rAs',rAs, myThid)
0242 CALL MNC_CW_RS_R('D',mncFn,0,0,'AngleCS',angleCosC,myThid)
0243 CALL MNC_CW_RS_R('D',mncFn,0,0,'AngleSN',angleSinC,myThid)
0244 anglesAreSet = .TRUE.
0245
0246 ELSE
0247
0248 #endif /* ALLOW_MNC */
0249
7d173b8d56 Jean*0250
0251
0252 fp = precFloat64
0253
0254
30d424dc37 Jean*0255
0256 _BARRIER
0257
0258
0259 _BEGIN_MASTER(myThid)
0260
56cf4bd603 Jean*0261 DO bj = 1,nSy
0262 DO bi = 1,nSx
4749c74143 Alis*0263 #ifdef ALLOW_EXCH2
623695a379 Jean*0264
8adbfea2f8 Jean*0265 jG = W2_myTileList(bi,bj)
623695a379 Jean*0266 iG = exch2_myface(jG)
b9dadda204 Mart*0267 iTmp = MAX(4,1 + INT(LOG10(DFLOAT(W2_maxNbTiles))))
0268 WRITE(fmtStr,'(A,I1,A)') '(A,I',iTmp,')'
0269 WRITE(tmpBuf,fmtStr) 'tile:',jG
623695a379 Jean*0270 #else
0271
0272 iG = bi+(myXGlobalLo-1)/sNx
0273 jG = bj+(myYGlobalLo-1)/sNy
0274 WRITE(tmpBuf,'(2(A,I3))') 'tile:',iG,' ,',jG
0275 iG = iG + (jG-1)*(nSx*nPx)
bdac319189 Jean*0276 #endif
7d173b8d56 Jean*0277
f23e97a1aa Jean*0278 iLen = ILNBLNK(horizGridFile)
0279 IF ( iLen .EQ. 0 ) THEN
0280 WRITE(fName,'("tile",I3.3,".mitgrid")') iG
0281 ELSE
0282 WRITE(fName,'(2A,I3.3,A)') horizGridFile(1:iLen),
0283 & '.face',iG,'.bin'
0284 ENDIF
0285 iLen = ILNBLNK(fName)
0286 iL = ILNBLNK(tmpBuf)
0287 WRITE(msgBuf,'(3A)') tmpBuf(1:iL),
0288 & ' ; Read from file ',fName(1:iLen)
56cf4bd603 Jean*0289 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0290 & SQUEEZE_RIGHT , myThid)
0291 WRITE(msgBuf,'(A)') ' =>'
0292
7d173b8d56 Jean*0293 #ifdef ALLOW_MDSIO
0294 CALL MDS_FACEF_READ_RS( fName, fp, 1, xC, bi, bj, myThid )
56cf4bd603 Jean*0295 iL = ILNBLNK(msgBuf)
a7f6b46be7 Jean*0296 WRITE(tmpBuf,'(A,1X,A)') msgBuf(1:iL),'xC'
7d173b8d56 Jean*0297 CALL MDS_FACEF_READ_RS( fName, fp, 2, yC, bi, bj, myThid )
f23e97a1aa Jean*0298 iL = ILNBLNK(tmpBuf)
a7f6b46be7 Jean*0299 WRITE(msgBuf,'(A,1X,A)') tmpBuf(1:iL),'yC'
7d173b8d56 Jean*0300 CALL MDS_FACEF_READ_RS( fName, fp, 3, dxF, bi, bj, myThid )
56cf4bd603 Jean*0301 iL = ILNBLNK(msgBuf)
a7f6b46be7 Jean*0302 WRITE(tmpBuf,'(A,1X,A)') msgBuf(1:iL),'dxF'
7d173b8d56 Jean*0303 CALL MDS_FACEF_READ_RS( fName, fp, 4, dyF, bi, bj, myThid )
f23e97a1aa Jean*0304 iL = ILNBLNK(tmpBuf)
a7f6b46be7 Jean*0305 WRITE(msgBuf,'(A,1X,A)') tmpBuf(1:iL),'dyF'
7d173b8d56 Jean*0306 CALL MDS_FACEF_READ_RS( fName, fp, 5, rA, bi, bj, myThid )
56cf4bd603 Jean*0307 iL = ILNBLNK(msgBuf)
a7f6b46be7 Jean*0308 WRITE(tmpBuf,'(A,1X,A)') msgBuf(1:iL),'rA'
7d173b8d56 Jean*0309 CALL MDS_FACEF_READ_RS( fName, fp, 6, xG, bi, bj, myThid )
f23e97a1aa Jean*0310 iL = ILNBLNK(tmpBuf)
a7f6b46be7 Jean*0311 WRITE(msgBuf,'(A,1X,A)') tmpBuf(1:iL),'xG'
7d173b8d56 Jean*0312 CALL MDS_FACEF_READ_RS( fName, fp, 7, yG, bi, bj, myThid )
56cf4bd603 Jean*0313 iL = ILNBLNK(msgBuf)
a7f6b46be7 Jean*0314 WRITE(tmpBuf,'(A,1X,A)') msgBuf(1:iL),'yG'
7d173b8d56 Jean*0315 CALL MDS_FACEF_READ_RS( fName, fp, 8, dxV, bi, bj, myThid )
f23e97a1aa Jean*0316 iL = ILNBLNK(tmpBuf)
a7f6b46be7 Jean*0317 WRITE(msgBuf,'(A,1X,A)') tmpBuf(1:iL),'dxV'
7d173b8d56 Jean*0318 CALL MDS_FACEF_READ_RS( fName, fp, 9, dyU, bi, bj, myThid )
56cf4bd603 Jean*0319 iL = ILNBLNK(msgBuf)
a7f6b46be7 Jean*0320 WRITE(tmpBuf,'(A,1X,A)') msgBuf(1:iL),'dyU'
7d173b8d56 Jean*0321 CALL MDS_FACEF_READ_RS( fName, fp,10, rAz, bi, bj, myThid )
f23e97a1aa Jean*0322 iL = ILNBLNK(tmpBuf)
a7f6b46be7 Jean*0323 WRITE(msgBuf,'(A,1X,A)') tmpBuf(1:iL),'rAz'
7d173b8d56 Jean*0324 CALL MDS_FACEF_READ_RS( fName, fp,11, dxC, bi, bj, myThid )
56cf4bd603 Jean*0325 iL = ILNBLNK(msgBuf)
a7f6b46be7 Jean*0326 WRITE(tmpBuf,'(A,1X,A)') msgBuf(1:iL),'dxC'
7d173b8d56 Jean*0327 CALL MDS_FACEF_READ_RS( fName, fp,12, dyC, bi, bj, myThid )
f23e97a1aa Jean*0328 iL = ILNBLNK(tmpBuf)
a7f6b46be7 Jean*0329 WRITE(msgBuf,'(A,1X,A)') tmpBuf(1:iL),'dyC'
7d173b8d56 Jean*0330 CALL MDS_FACEF_READ_RS( fName, fp,13, rAw, bi, bj, myThid )
56cf4bd603 Jean*0331 iL = ILNBLNK(msgBuf)
a7f6b46be7 Jean*0332 WRITE(tmpBuf,'(A,1X,A)') msgBuf(1:iL),'rAw'
7d173b8d56 Jean*0333 CALL MDS_FACEF_READ_RS( fName, fp,14, rAs, bi, bj, myThid )
f23e97a1aa Jean*0334 iL = ILNBLNK(tmpBuf)
a7f6b46be7 Jean*0335 WRITE(msgBuf,'(A,1X,A)') tmpBuf(1:iL),'rAs'
7d173b8d56 Jean*0336 CALL MDS_FACEF_READ_RS( fName, fp,15, dxG, bi, bj, myThid )
56cf4bd603 Jean*0337 iL = ILNBLNK(msgBuf)
a7f6b46be7 Jean*0338 WRITE(tmpBuf,'(A,1X,A)') msgBuf(1:iL),'dxG'
7d173b8d56 Jean*0339 CALL MDS_FACEF_READ_RS( fName, fp,16, dyG, bi, bj, myThid )
f23e97a1aa Jean*0340 iL = ILNBLNK(tmpBuf)
a7f6b46be7 Jean*0341 WRITE(msgBuf,'(A,1X,A)') tmpBuf(1:iL),'dyG'
f23e97a1aa Jean*0342
0343 iLen = ILNBLNK(horizGridFile)
0344 IF ( iLen.GT.0 ) THEN
7d173b8d56 Jean*0345 CALL MDS_FACEF_READ_RS(fName,fp,17,angleCosC,bi,bj,myThid)
f23e97a1aa Jean*0346 iL = ILNBLNK(msgBuf)
0347 WRITE(tmpBuf,'(A,1X,A)') msgBuf(1:iL),'AngleCS'
7d173b8d56 Jean*0348 CALL MDS_FACEF_READ_RS(fName,fp,18,angleSinC,bi,bj,myThid)
f23e97a1aa Jean*0349 iL = ILNBLNK(tmpBuf)
0350 WRITE(msgBuf,'(A,1X,A)') tmpBuf(1:iL),'AngleSN'
b3e3d8ed80 Jean*0351 anglesAreSet = .TRUE.
0352 ELSE
0353 anglesAreSet = .FALSE.
f23e97a1aa Jean*0354 ENDIF
7d173b8d56 Jean*0355 #else /* ALLOW_MDSIO */
0356 WRITE(msgBuf,'(2A)')
0357 & 'INI_CURVILINEAR_GRID: Needs to compile MDSIO pkg'
0358 CALL PRINT_ERROR( msgBuf, myThid )
0359 STOP 'ABNORMAL END: S/R INI_CURVILINEAR_GRID'
0360 #endif /* ALLOW_MDSIO */
56cf4bd603 Jean*0361
0362 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0363 & SQUEEZE_RIGHT , myThid)
bdac319189 Jean*0364
0365 ENDDO
0366 ENDDO
e808c5b132 Ed H*0367
30d424dc37 Jean*0368 _END_MASTER(myThid)
0369
285a3c0cbd Jean*0370 #ifdef ALLOW_MNC
0371 ENDIF
0372 #endif /* ALLOW_MNC */
0373
a7f6b46be7 Jean*0374 CALL EXCH_XY_RS(xC,myThid)
0375 CALL EXCH_XY_RS(yC,myThid)
d8a7c4feca Jean*0376 CALL EXCH_UV_AGRID_3D_RS( dxF, dyF, .FALSE., 1, myThid )
a7f6b46be7 Jean*0377 CALL EXCH_XY_RS(rA,myThid )
d8a7c4feca Jean*0378 CALL EXCH_Z_3D_RS( xG, 1, myThid )
0379 CALL EXCH_Z_3D_RS( yG, 1, myThid )
d04bef6537 Jean*0380 CALL EXCH_UV_BGRID_3D_RS( dxV, dyU, .FALSE., 1, myThid)
d8a7c4feca Jean*0381 CALL EXCH_Z_3D_RS( rAz, 1, myThid )
a7f6b46be7 Jean*0382 CALL EXCH_UV_XY_RS(dxC,dyC,.FALSE.,myThid)
0383 CALL EXCH_UV_XY_RS(rAw,rAs,.FALSE.,myThid)
0384 CALL EXCH_UV_XY_RS(dyG,dxG,.FALSE.,myThid)
bdac319189 Jean*0385
f2ad5f0777 Dimi*0386 #endif /* OLD_GRID_IO */
bdac319189 Jean*0387
9744e36521 Jean*0388
0389
0390 IF ( rSphere.NE.radius_fromHorizGrid ) THEN
0391 tmpFac = rSphere / radius_fromHorizGrid
0392 tmpFac2 = tmpFac*tmpFac
0393 DO bj = myByLo(myThid), myByHi(myThid)
0394 DO bi = myBxLo(myThid), myBxHi(myThid)
c679ff8f37 Jean*0395 DO j=1-OLy,sNy+OLy
0396 DO i=1-OLx,sNx+OLx
9744e36521 Jean*0397 dxC(i,j,bi,bj) = dxC(i,j,bi,bj)*tmpFac
0398 dyC(i,j,bi,bj) = dyC(i,j,bi,bj)*tmpFac
0399 dxG(i,j,bi,bj) = dxG(i,j,bi,bj)*tmpFac
0400 dyG(i,j,bi,bj) = dyG(i,j,bi,bj)*tmpFac
0401 dxF(i,j,bi,bj) = dxF(i,j,bi,bj)*tmpFac
0402 dyF(i,j,bi,bj) = dyF(i,j,bi,bj)*tmpFac
0403 dxV(i,j,bi,bj) = dxV(i,j,bi,bj)*tmpFac
0404 dyU(i,j,bi,bj) = dyU(i,j,bi,bj)*tmpFac
0405 rA (i,j,bi,bj) = rA (i,j,bi,bj)*tmpFac2
0406 rAz(i,j,bi,bj) = rAz(i,j,bi,bj)*tmpFac2
0407 rAw(i,j,bi,bj) = rAw(i,j,bi,bj)*tmpFac2
0408 rAs(i,j,bi,bj) = rAs(i,j,bi,bj)*tmpFac2
0409 ENDDO
0410 ENDDO
0411 ENDDO
0412 ENDDO
0413 ENDIF
0414
30d424dc37 Jean*0415
be9aaf9124 Jean*0416
0417 CALL CALC_GRID_ANGLES( anglesAreSet, myThid )
0418
54a8fe0a22 Jean*0419
0420 CALL EXCH_UV_AGRID_3D_RS(angleSinC,angleCosC,.TRUE., 1, myThid)
0421
aa6b2555c8 Jean*0422
0423
0424
0425
0426
bdac319189 Jean*0427
ff02675122 Jean*0428
522c728681 Jean*0429 IF ( plotLevel.GE.debLevC ) THEN
42b7ef933b Jean*0430 CALL PLOT_FIELD_XYRS( xC , 'Current xC ', 0, myThid )
0431 CALL PLOT_FIELD_XYRS( yC , 'Current yC ', 0, myThid )
0432 CALL PLOT_FIELD_XYRS( dxF , 'Current dxF ', 0, myThid )
0433 CALL PLOT_FIELD_XYRS( dyF , 'Current dyF ', 0, myThid )
0434 CALL PLOT_FIELD_XYRS( rA , 'Current rA ', 0, myThid )
0435 CALL PLOT_FIELD_XYRS( xG , 'Current xG ', 0, myThid )
0436 CALL PLOT_FIELD_XYRS( yG , 'Current yG ', 0, myThid )
0437 CALL PLOT_FIELD_XYRS( dxV , 'Current dxV ', 0, myThid )
0438 CALL PLOT_FIELD_XYRS( dyU , 'Current dyU ', 0, myThid )
0439 CALL PLOT_FIELD_XYRS( rAz , 'Current rAz ', 0, myThid )
0440 CALL PLOT_FIELD_XYRS( dxC , 'Current dxC ', 0, myThid )
0441 CALL PLOT_FIELD_XYRS( dyC , 'Current dyC ', 0, myThid )
0442 CALL PLOT_FIELD_XYRS( rAw , 'Current rAw ', 0, myThid )
0443 CALL PLOT_FIELD_XYRS( rAs , 'Current rAs ', 0, myThid )
0444 CALL PLOT_FIELD_XYRS( dxG , 'Current dxG ', 0, myThid )
0445 CALL PLOT_FIELD_XYRS( dyG , 'Current dyG ', 0, myThid )
0446 CALL PLOT_FIELD_XYRS(angleCosC, 'Current AngleCS ', 0, myThid )
0447 CALL PLOT_FIELD_XYRS(angleSinC, 'Current AngleSN ', 0, myThid )
3e0af136db Dimi*0448 ENDIF
bdac319189 Jean*0449
0450 RETURN
0451 END