File indexing completed on 2024-06-06 05:11:01 UTC
view on githubraw file Latest commit af61e5eb on 2024-06-06 03:30:35 UTC
56f43c4e8a Mart*0001 #include "OBCS_OPTIONS.h"
1b21d1d746 Jean*0002
acc2fd269d Jean*0003
0004
50e2c0b6cd Jean*0005
0006
0007
acc2fd269d Jean*0008
0009
56f43c4e8a Mart*0010
50e2c0b6cd Jean*0011
56f43c4e8a Mart*0012
50e2c0b6cd Jean*0013 SUBROUTINE OBCS_FIELDS_LOAD( myTime, myIter, myThid )
8b081ca9eb Jean*0014
56f43c4e8a Mart*0015
0016
50e2c0b6cd Jean*0017
1b21d1d746 Jean*0018
56f43c4e8a Mart*0019
ee1c912a22 Mart*0020
1b21d1d746 Jean*0021
0022
ee1c912a22 Mart*0023
0024
0025
1b21d1d746 Jean*0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
56f43c4e8a Mart*0037
0038
0039
0040
0041
0042
0043
1b21d1d746 Jean*0044
ee1c912a22 Mart*0045
56f43c4e8a Mart*0046
0047
0048
0049
0050 IMPLICIT NONE
0051
0052 #include "SIZE.h"
0053 #include "EEPARAMS.h"
0054 #include "PARAMS.h"
0055 #include "GRID.h"
9b4f2a04e2 Jean*0056 #include "OBCS_PARAMS.h"
0057 #include "OBCS_FIELDS.h"
9bd340abd6 Jean*0058 #ifdef ALLOW_PTRACERS
0059 #include "PTRACERS_SIZE.h"
0060 #include "OBCS_PTRACERS.h"
0061 #include "PTRACERS_PARAMS.h"
0062 #endif /* ALLOW_PTRACERS */
1b21d1d746 Jean*0063
56f43c4e8a Mart*0064
0065
0fc7dbfcbd Jean*0066
0067
50e2c0b6cd Jean*0068
56f43c4e8a Mart*0069 _RL myTime
0070 INTEGER myIter
0fc7dbfcbd Jean*0071 INTEGER myThid
1b21d1d746 Jean*0072
9bd340abd6 Jean*0073
0074
af61e5eb16 Mart*0075 #ifndef EXCLUDE_FFIELDS_LOAD
0076 #if ( defined ALLOW_OBCS && defined ALLOW_OBCS_PRESCRIBE )
56f43c4e8a Mart*0077
0078
0079
0080
2d12bccb16 Jean*0081
0fc7dbfcbd Jean*0082 INTEGER fp
8b081ca9eb Jean*0083 INTEGER iRecP, iRec0, iRec1
0084 _RL aWght, bWght
ee1c912a22 Mart*0085 CHARACTER*(MAX_LEN_MBUF) msgBuf
8b081ca9eb Jean*0086 INTEGER bi, bj
8d129534f3 Jean*0087 #ifdef NONLIN_FRSURF
005af54e38 Jean*0088 # if (defined ALLOW_OBCS_EAST ) || (defined ALLOW_OBCS_WEST )
0089 INTEGER j
0090 # endif
0091 # if (defined ALLOW_OBCS_NORTH) || (defined ALLOW_OBCS_SOUTH)
0092 INTEGER i
0093 # endif
8d129534f3 Jean*0094 #endif /* NONLIN_FRSURF */
0095 #ifdef ALLOW_PTRACERS
0096 INTEGER iTr
0097 #endif
56f43c4e8a Mart*0098
0099
0fc7dbfcbd Jean*0100 fp = readBinaryPrec
0101
56f43c4e8a Mart*0102 IF ( periodicExternalForcing ) THEN
0103
8b081ca9eb Jean*0104
0105 CALL GET_PERIODIC_INTERVAL(
0106 O iRecP, iRec0, iRec1, bWght, aWght,
0107 I externForcingCycle, externForcingPeriod,
005af54e38 Jean*0108 I deltaTClock, myTime, myThid )
8b081ca9eb Jean*0109
0110 bi = myBxLo(myThid)
0111 bj = myByLo(myThid)
0112 #ifdef ALLOW_DEBUG
f3b6ef0cda Patr*0113 # ifndef ALLOW_AUTODIFF
8830b8f970 Jean*0114 IF ( debugLevel.GE.debLevB ) THEN
8b081ca9eb Jean*0115 _BEGIN_MASTER(myThid)
0116 WRITE(standardMessageUnit,'(A,I10,A,4I5,A,2F14.10)')
0117 & ' OBCS_FIELDS_LOAD,', myIter,
0118 & ' : iP,iLd,i0,i1=', iRecP,OBCS_ldRec(bi,bj), iRec0,iRec1,
0119 & ' ; Wght=', bWght, aWght
0120 _END_MASTER(myThid)
0121 ENDIF
f3b6ef0cda Patr*0122 # endif
8b081ca9eb Jean*0123 #endif /* ALLOW_DEBUG */
0124
f3b6ef0cda Patr*0125 #ifdef ALLOW_AUTODIFF
8b081ca9eb Jean*0126
0127
0128
0129
0130 IF ( iRec0.NE.iRecP .OR. myIter.EQ.nIter0 ) THEN
f3b6ef0cda Patr*0131 #else /* ALLOW_AUTODIFF */
8b081ca9eb Jean*0132
0133
0134
0135 IF ( iRec1.NE.OBCS_ldRec(bi,bj) ) THEN
f3b6ef0cda Patr*0136 #endif /* ALLOW_AUTODIFF */
8b081ca9eb Jean*0137
f3b6ef0cda Patr*0138 # ifndef ALLOW_AUTODIFF
8b081ca9eb Jean*0139
0140
8830b8f970 Jean*0141 IF ( debugLevel.GE.debLevZero ) THEN
8b081ca9eb Jean*0142 _BEGIN_MASTER(myThid)
0143 WRITE(standardMessageUnit,'(A,I10,A,2(2I5,A))')
0144 & ' OBCS_FIELDS_LOAD, it=', myIter,
0145 & ' : Reading new data, i0,i1=', iRec0, iRec1,
0146 & ' (prev=', iRecP, OBCS_ldRec(bi,bj), ' )'
0147 _END_MASTER(myThid)
8830b8f970 Jean*0148 ENDIF
f3b6ef0cda Patr*0149 # endif /* ALLOW_AUTODIFF */
56f43c4e8a Mart*0150
0fc7dbfcbd Jean*0151 #ifndef ALLOW_MDSIO
50e2c0b6cd Jean*0152 STOP 'ABNORMAL END: OBCS_FIELDS_LOAD: NEEDS MSDIO PKG'
0fc7dbfcbd Jean*0153 #endif /* ALLOW_MDSIO */
0154
392e004d68 Jean*0155 _BARRIER
56f43c4e8a Mart*0156
b67ae883c8 Mart*0157 #ifdef ALLOW_OBCS_EAST
56f43c4e8a Mart*0158
0159 IF ( OBEuFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0160 CALL READ_REC_YZ_RL( OBEuFile, fp,Nr,OBEu0,iRec0,myIter,myThid )
0161 CALL READ_REC_YZ_RL( OBEuFile, fp,Nr,OBEu1,iRec1,myIter,myThid )
56f43c4e8a Mart*0162 ENDIF
0163 IF ( OBEvFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0164 CALL READ_REC_YZ_RL( OBEvFile, fp,Nr,OBEv0,iRec0,myIter,myThid )
0165 CALL READ_REC_YZ_RL( OBEvFile, fp,Nr,OBEv1,iRec1,myIter,myThid )
56f43c4e8a Mart*0166 ENDIF
b67ae883c8 Mart*0167 IF ( OBEtFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0168 CALL READ_REC_YZ_RL( OBEtFile, fp,Nr,OBEt0,iRec0,myIter,myThid )
0169 CALL READ_REC_YZ_RL( OBEtFile, fp,Nr,OBEt1,iRec1,myIter,myThid )
56f43c4e8a Mart*0170 ENDIF
b67ae883c8 Mart*0171 IF ( OBEsFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0172 CALL READ_REC_YZ_RL( OBEsFile, fp,Nr,OBEs0,iRec0,myIter,myThid )
0173 CALL READ_REC_YZ_RL( OBEsFile, fp,Nr,OBEs1,iRec1,myIter,myThid )
56f43c4e8a Mart*0174 ENDIF
2d12bccb16 Jean*0175 # ifdef ALLOW_NONHYDROSTATIC
0176 IF ( OBEwFile .NE. ' ' ) THEN
0177 CALL READ_REC_YZ_RL( OBEwFile, fp,Nr,OBEw0,iRec0,myIter,myThid )
0178 CALL READ_REC_YZ_RL( OBEwFile, fp,Nr,OBEw1,iRec1,myIter,myThid )
0179 ENDIF
0180 # endif /* ALLOW_NONHYDROSTATIC */
d260176b41 Mart*0181 # ifdef NONLIN_FRSURF
0182 IF ( OBEetaFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0183 CALL READ_REC_YZ_RL(OBEetaFile,fp,1,OBEeta0,iRec0,myIter,myThid)
0184 CALL READ_REC_YZ_RL(OBEetaFile,fp,1,OBEeta1,iRec1,myIter,myThid)
d260176b41 Mart*0185 ENDIF
0186 # endif /* NONLIN_FRSURF */
0187 #endif /* ALLOW_OBCS_EAST */
56f43c4e8a Mart*0188 #ifdef ALLOW_OBCS_WEST
0189
0190 IF ( OBWuFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0191 CALL READ_REC_YZ_RL( OBWuFile, fp,Nr,OBWu0,iRec0,myIter,myThid )
0192 CALL READ_REC_YZ_RL( OBWuFile, fp,Nr,OBWu1,iRec1,myIter,myThid )
56f43c4e8a Mart*0193 ENDIF
0194 IF ( OBWvFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0195 CALL READ_REC_YZ_RL( OBWvFile, fp,Nr,OBWv0,iRec0,myIter,myThid )
0196 CALL READ_REC_YZ_RL( OBWvFile, fp,Nr,OBWv1,iRec1,myIter,myThid )
56f43c4e8a Mart*0197 ENDIF
b67ae883c8 Mart*0198 IF ( OBWtFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0199 CALL READ_REC_YZ_RL( OBWtFile, fp,Nr,OBWt0,iRec0,myIter,myThid )
0200 CALL READ_REC_YZ_RL( OBWtFile, fp,Nr,OBWt1,iRec1,myIter,myThid )
56f43c4e8a Mart*0201 ENDIF
b67ae883c8 Mart*0202 IF ( OBWsFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0203 CALL READ_REC_YZ_RL( OBWsFile, fp,Nr,OBWs0,iRec0,myIter,myThid )
0204 CALL READ_REC_YZ_RL( OBWsFile, fp,Nr,OBWs1,iRec1,myIter,myThid )
56f43c4e8a Mart*0205 ENDIF
2d12bccb16 Jean*0206 # ifdef ALLOW_NONHYDROSTATIC
0207 IF ( OBWwFile .NE. ' ' ) THEN
0208 CALL READ_REC_YZ_RL( OBWwFile, fp,Nr,OBWw0,iRec0,myIter,myThid )
0209 CALL READ_REC_YZ_RL( OBWwFile, fp,Nr,OBWw1,iRec1,myIter,myThid )
0210 ENDIF
0211 # endif /* ALLOW_NONHYDROSTATIC */
d260176b41 Mart*0212 # ifdef NONLIN_FRSURF
0213 IF ( OBWetaFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0214 CALL READ_REC_YZ_RL(OBWetaFile,fp,1,OBWeta0,iRec0,myIter,myThid)
0215 CALL READ_REC_YZ_RL(OBWetaFile,fp,1,OBWeta1,iRec1,myIter,myThid)
d260176b41 Mart*0216 ENDIF
0217 # endif /* NONLIN_FRSURF */
56f43c4e8a Mart*0218 #endif /* ALLOW_OBCS_WEST */
0219 #ifdef ALLOW_OBCS_NORTH
0220
0221 IF ( OBNuFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0222 CALL READ_REC_XZ_RL( OBNuFile, fp,Nr,OBNu0,iRec0,myIter,myThid )
0223 CALL READ_REC_XZ_RL( OBNuFile, fp,Nr,OBNu1,iRec1,myIter,myThid )
56f43c4e8a Mart*0224 ENDIF
0225 IF ( OBNvFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0226 CALL READ_REC_XZ_RL( OBNvFile, fp,Nr,OBNv0,iRec0,myIter,myThid )
0227 CALL READ_REC_XZ_RL( OBNvFile, fp,Nr,OBNv1,iRec1,myIter,myThid )
56f43c4e8a Mart*0228 ENDIF
b67ae883c8 Mart*0229 IF ( OBNtFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0230 CALL READ_REC_XZ_RL( OBNtFile, fp,Nr,OBNt0,iRec0,myIter,myThid )
0231 CALL READ_REC_XZ_RL( OBNtFile, fp,Nr,OBNt1,iRec1,myIter,myThid )
56f43c4e8a Mart*0232 ENDIF
b67ae883c8 Mart*0233 IF ( OBNsFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0234 CALL READ_REC_XZ_RL( OBNsFile, fp,Nr,OBNs0,iRec0,myIter,myThid )
0235 CALL READ_REC_XZ_RL( OBNsFile, fp,Nr,OBNs1,iRec1,myIter,myThid )
56f43c4e8a Mart*0236 ENDIF
2d12bccb16 Jean*0237 # ifdef ALLOW_NONHYDROSTATIC
0238 IF ( OBNwFile .NE. ' ' ) THEN
0239 CALL READ_REC_XZ_RL( OBNwFile, fp,Nr,OBNw0,iRec0,myIter,myThid )
0240 CALL READ_REC_XZ_RL( OBNwFile, fp,Nr,OBNw1,iRec1,myIter,myThid )
0241 ENDIF
0242 # endif /* ALLOW_NONHYDROSTATIC */
d260176b41 Mart*0243 # ifdef NONLIN_FRSURF
0244 IF ( OBNetaFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0245 CALL READ_REC_XZ_RL(OBNetaFile,fp,1,OBNeta0,iRec0,myIter,myThid)
0246 CALL READ_REC_XZ_RL(OBNetaFile,fp,1,OBNeta1,iRec1,myIter,myThid)
d260176b41 Mart*0247 ENDIF
0248 # endif /* NONLIN_FRSURF */
56f43c4e8a Mart*0249 #endif /* ALLOW_OBCS_NORTH */
0250 #ifdef ALLOW_OBCS_SOUTH
0251
0252 IF ( OBSuFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0253 CALL READ_REC_XZ_RL( OBSuFile, fp,Nr,OBSu0,iRec0,myIter,myThid )
0254 CALL READ_REC_XZ_RL( OBSuFile, fp,Nr,OBSu1,iRec1,myIter,myThid )
56f43c4e8a Mart*0255 ENDIF
0256 IF ( OBSvFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0257 CALL READ_REC_XZ_RL( OBSvFile, fp,Nr,OBSv0,iRec0,myIter,myThid )
0258 CALL READ_REC_XZ_RL( OBSvFile, fp,Nr,OBSv1,iRec1,myIter,myThid )
56f43c4e8a Mart*0259 ENDIF
b67ae883c8 Mart*0260 IF ( OBStFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0261 CALL READ_REC_XZ_RL( OBStFile, fp,Nr,OBSt0,iRec0,myIter,myThid )
0262 CALL READ_REC_XZ_RL( OBStFile, fp,Nr,OBSt1,iRec1,myIter,myThid )
56f43c4e8a Mart*0263 ENDIF
b67ae883c8 Mart*0264 IF ( OBSsFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0265 CALL READ_REC_XZ_RL( OBSsFile, fp,Nr,OBSs0,iRec0,myIter,myThid )
0266 CALL READ_REC_XZ_RL( OBSsFile, fp,Nr,OBSs1,iRec1,myIter,myThid )
56f43c4e8a Mart*0267 ENDIF
2d12bccb16 Jean*0268 # ifdef ALLOW_NONHYDROSTATIC
0269 IF ( OBSwFile .NE. ' ' ) THEN
0270 CALL READ_REC_XZ_RL( OBSwFile, fp,Nr,OBSw0,iRec0,myIter,myThid )
0271 CALL READ_REC_XZ_RL( OBSwFile, fp,Nr,OBSw1,iRec1,myIter,myThid )
0272 ENDIF
0273 # endif /* ALLOW_NONHYDROSTATIC */
d260176b41 Mart*0274 # ifdef NONLIN_FRSURF
0275 IF ( OBSetaFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0276 CALL READ_REC_XZ_RL(OBSetaFile,fp,1,OBSeta0,iRec0,myIter,myThid)
0277 CALL READ_REC_XZ_RL(OBSetaFile,fp,1,OBSeta1,iRec1,myIter,myThid)
d260176b41 Mart*0278 ENDIF
0279 # endif /* NONLIN_FRSURF */
56f43c4e8a Mart*0280 #endif /* ALLOW_OBCS_SOUTH */
f3b6ef0cda Patr*0281
ee1c912a22 Mart*0282 #ifdef ALLOW_PTRACERS
0283 IF (usePTRACERS) THEN
0284
0fc7dbfcbd Jean*0285 DO iTr = 1, PTRACERS_numInUse
ee1c912a22 Mart*0286 # ifdef ALLOW_OBCS_EAST
0287
0fc7dbfcbd Jean*0288 IF ( OBEptrFile(iTr) .NE. ' ' ) THEN
0289 CALL READ_REC_YZ_RL( OBEptrFile(iTr), fp, Nr,
005af54e38 Jean*0290 & OBEptr0(1-OLy,1,1,1,iTr), iRec0, myIter, myThid )
0fc7dbfcbd Jean*0291 CALL READ_REC_YZ_RL( OBEptrFile(iTr), fp, Nr,
005af54e38 Jean*0292 & OBEptr1(1-OLy,1,1,1,iTr), iRec1, myIter, myThid )
ee1c912a22 Mart*0293 ENDIF
65e667c895 Mart*0294 # endif /* ALLOW_OBCS_EAST */
ee1c912a22 Mart*0295 # ifdef ALLOW_OBCS_WEST
0296
0fc7dbfcbd Jean*0297 IF ( OBWptrFile(iTr) .NE. ' ' ) THEN
0298 CALL READ_REC_YZ_RL( OBWptrFile(iTr), fp, Nr,
005af54e38 Jean*0299 & OBWptr0(1-OLy,1,1,1,iTr), iRec0, myIter, myThid )
0fc7dbfcbd Jean*0300 CALL READ_REC_YZ_RL( OBWptrFile(iTr), fp, Nr,
005af54e38 Jean*0301 & OBWptr1(1-OLy,1,1,1,iTr), iRec1, myIter, myThid )
ee1c912a22 Mart*0302 ENDIF
0303 # endif /* ALLOW_OBCS_WEST */
0304 # ifdef ALLOW_OBCS_NORTH
0305
0fc7dbfcbd Jean*0306 IF ( OBNptrFile(iTr) .NE. ' ' ) THEN
0307 CALL READ_REC_XZ_RL( OBNptrFile(iTr), fp, Nr,
005af54e38 Jean*0308 & OBNptr0(1-OLy,1,1,1,iTr), iRec0, myIter, myThid )
0fc7dbfcbd Jean*0309 CALL READ_REC_XZ_RL( OBNptrFile(iTr), fp, Nr,
005af54e38 Jean*0310 & OBNptr1(1-OLy,1,1,1,iTr), iRec1, myIter, myThid )
ee1c912a22 Mart*0311 ENDIF
0312 # endif /* ALLOW_OBCS_NORTH */
0313 # ifdef ALLOW_OBCS_SOUTH
0314
0fc7dbfcbd Jean*0315 IF ( OBSptrFile(iTr) .NE. ' ' ) THEN
0316 CALL READ_REC_XZ_RL( OBSptrFile(iTr), fp, Nr,
005af54e38 Jean*0317 & OBSptr0(1-OLy,1,1,1,iTr), iRec0, myIter, myThid )
0fc7dbfcbd Jean*0318 CALL READ_REC_XZ_RL( OBSptrFile(iTr), fp, Nr,
005af54e38 Jean*0319 & OBSptr1(1-OLy,1,1,1,iTr), iRec1, myIter, myThid )
ee1c912a22 Mart*0320 ENDIF
0321 # endif /* ALLOW_OBCS_SOUTH */
0fc7dbfcbd Jean*0322
ee1c912a22 Mart*0323 ENDDO
0324
0325 ENDIF
0326 #endif /* ALLOW_PTRACERS */
1b21d1d746 Jean*0327
56f43c4e8a Mart*0328
1b21d1d746 Jean*0329
56f43c4e8a Mart*0330
1b21d1d746 Jean*0331
56f43c4e8a Mart*0332
392e004d68 Jean*0333 _BARRIER
0334
f3b6ef0cda Patr*0335 # ifndef ALLOW_AUTODIFF
8b081ca9eb Jean*0336
0337 DO bj = myByLo(myThid), myByHi(myThid)
0338 DO bi = myBxLo(myThid), myBxHi(myThid)
0339 OBCS_ldRec(bi,bj) = iRec1
0340 ENDDO
0341 ENDDO
f3b6ef0cda Patr*0342 # endif /* ALLOW_AUTODIFF */
8b081ca9eb Jean*0343
392e004d68 Jean*0344
56f43c4e8a Mart*0345 ENDIF
0346
0347
0348 ELSE
ee1c912a22 Mart*0349 aWght = 0. _d 0
0350 bWght = 1. _d 0
56f43c4e8a Mart*0351
0352 IF ( myIter .EQ. nIter0 ) THEN
0fc7dbfcbd Jean*0353 #ifndef ALLOW_MDSIO
50e2c0b6cd Jean*0354 STOP 'ABNORMAL END: OBCS_FIELDS_LOAD: NEEDS MSDIO PKG'
0fc7dbfcbd Jean*0355 #endif /* ALLOW_MDSIO */
392e004d68 Jean*0356 _BARRIER
b67ae883c8 Mart*0357
ee1c912a22 Mart*0358 WRITE(msgBuf,'(1X,A,I10,1P1E20.12)')
50e2c0b6cd Jean*0359 & 'OBCS_FIELDS_LOAD: Reading initial data:',
ee1c912a22 Mart*0360 & myIter, myTime
0361 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0362 & SQUEEZE_RIGHT,myThid)
0fc7dbfcbd Jean*0363 iRec0 = 1
0364
b67ae883c8 Mart*0365 #ifdef ALLOW_OBCS_EAST
56f43c4e8a Mart*0366
0367 IF ( OBEuFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0368 CALL READ_REC_YZ_RL( OBEuFile,fp,Nr,OBEu0,iRec0,myIter,myThid )
56f43c4e8a Mart*0369 ENDIF
0370 IF ( OBEvFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0371 CALL READ_REC_YZ_RL( OBEvFile,fp,Nr,OBEv0,iRec0,myIter,myThid )
56f43c4e8a Mart*0372 ENDIF
b67ae883c8 Mart*0373 IF ( OBEtFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0374 CALL READ_REC_YZ_RL( OBEtFile,fp,Nr,OBEt0,iRec0,myIter,myThid )
56f43c4e8a Mart*0375 ENDIF
b67ae883c8 Mart*0376 IF ( OBEsFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0377 CALL READ_REC_YZ_RL( OBEsFile,fp,Nr,OBEs0,iRec0,myIter,myThid )
56f43c4e8a Mart*0378 ENDIF
2d12bccb16 Jean*0379 # ifdef ALLOW_NONHYDROSTATIC
0380 IF ( OBEwFile .NE. ' ' ) THEN
0381 CALL READ_REC_YZ_RL( OBEwFile,fp,Nr,OBEw0,iRec0,myIter,myThid )
0382 ENDIF
0383 # endif /* ALLOW_NONHYDROSTATIC */
d260176b41 Mart*0384 # ifdef NONLIN_FRSURF
0385 IF ( OBEetaFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0386 CALL READ_REC_YZ_RL( OBEetaFile, fp, 1, OBEeta0, iRec0,
0387 & myIter, myThid )
d260176b41 Mart*0388 ENDIF
0389 # endif /* NONLIN_FRSURF */
65e667c895 Mart*0390 #endif /* ALLOW_OBCS_EAST */
56f43c4e8a Mart*0391 #ifdef ALLOW_OBCS_WEST
0392
0393 IF ( OBWuFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0394 CALL READ_REC_YZ_RL( OBWuFile,fp,Nr,OBWu0,iRec0,myIter,myThid )
56f43c4e8a Mart*0395 ENDIF
0396 IF ( OBWvFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0397 CALL READ_REC_YZ_RL( OBWvFile,fp,Nr,OBWv0,iRec0,myIter,myThid )
56f43c4e8a Mart*0398 ENDIF
b67ae883c8 Mart*0399 IF ( OBWtFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0400 CALL READ_REC_YZ_RL( OBWtFile,fp,Nr,OBWt0,iRec0,myIter,myThid )
56f43c4e8a Mart*0401 ENDIF
b67ae883c8 Mart*0402 IF ( OBWsFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0403 CALL READ_REC_YZ_RL( OBWsFile,fp,Nr,OBWs0,iRec0,myIter,myThid )
56f43c4e8a Mart*0404 ENDIF
2d12bccb16 Jean*0405 # ifdef ALLOW_NONHYDROSTATIC
0406 IF ( OBWwFile .NE. ' ' ) THEN
0407 CALL READ_REC_YZ_RL( OBWwFile,fp,Nr,OBWw0,iRec0,myIter,myThid )
0408 ENDIF
0409 # endif /* ALLOW_NONHYDROSTATIC */
d260176b41 Mart*0410 # ifdef NONLIN_FRSURF
0411 IF ( OBWetaFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0412 CALL READ_REC_YZ_RL( OBWetaFile, fp, 1, OBWeta0, iRec0,
0413 & myIter, myThid )
d260176b41 Mart*0414 ENDIF
0415 # endif /* NONLIN_FRSURF */
56f43c4e8a Mart*0416 #endif /* ALLOW_OBCS_WEST */
0417 #ifdef ALLOW_OBCS_NORTH
0418
0419 IF ( OBNuFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0420 CALL READ_REC_XZ_RL( OBNuFile,fp,Nr,OBNu0,iRec0,myIter,myThid )
56f43c4e8a Mart*0421 ENDIF
0422 IF ( OBNvFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0423 CALL READ_REC_XZ_RL( OBNvFile,fp,Nr,OBNv0,iRec0,myIter,myThid )
56f43c4e8a Mart*0424 ENDIF
b67ae883c8 Mart*0425 IF ( OBNtFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0426 CALL READ_REC_XZ_RL( OBNtFile,fp,Nr,OBNt0,iRec0,myIter,myThid )
56f43c4e8a Mart*0427 ENDIF
b67ae883c8 Mart*0428 IF ( OBNsFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0429 CALL READ_REC_XZ_RL( OBNsFile,fp,Nr,OBNs0,iRec0,myIter,myThid )
56f43c4e8a Mart*0430 ENDIF
2d12bccb16 Jean*0431 # ifdef ALLOW_NONHYDROSTATIC
0432 IF ( OBNwFile .NE. ' ' ) THEN
acc2fd269d Jean*0433 CALL READ_REC_XZ_RL( OBNwFile,fp,Nr,OBNw0,iRec0,myIter,myThid )
2d12bccb16 Jean*0434 ENDIF
0435 # endif /* ALLOW_NONHYDROSTATIC */
d260176b41 Mart*0436 # ifdef NONLIN_FRSURF
0437 IF ( OBNetaFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0438 CALL READ_REC_XZ_RL( OBNetaFile, fp, 1, OBNeta0, iRec0,
0439 & myIter, myThid )
d260176b41 Mart*0440 ENDIF
0441 # endif /* NONLIN_FRSURF */
56f43c4e8a Mart*0442 #endif /* ALLOW_OBCS_NORTH */
0443 #ifdef ALLOW_OBCS_SOUTH
0444
0445 IF ( OBSuFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0446 CALL READ_REC_XZ_RL( OBSuFile,fp,Nr,OBSu0,iRec0,myIter,myThid )
56f43c4e8a Mart*0447 ENDIF
0448 IF ( OBSvFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0449 CALL READ_REC_XZ_RL( OBSvFile,fp,Nr,OBSv0,iRec0,myIter,myThid )
56f43c4e8a Mart*0450 ENDIF
b67ae883c8 Mart*0451 IF ( OBStFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0452 CALL READ_REC_XZ_RL( OBStFile,fp,Nr,OBSt0,iRec0,myIter,myThid )
56f43c4e8a Mart*0453 ENDIF
b67ae883c8 Mart*0454 IF ( OBSsFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0455 CALL READ_REC_XZ_RL( OBSsFile,fp,Nr,OBSs0,iRec0,myIter,myThid )
56f43c4e8a Mart*0456 ENDIF
2d12bccb16 Jean*0457 # ifdef ALLOW_NONHYDROSTATIC
0458 IF ( OBSwFile .NE. ' ' ) THEN
acc2fd269d Jean*0459 CALL READ_REC_XZ_RL( OBSwFile,fp,Nr,OBSw0,iRec0,myIter,myThid )
2d12bccb16 Jean*0460 ENDIF
0461 # endif /* ALLOW_NONHYDROSTATIC */
d260176b41 Mart*0462 # ifdef NONLIN_FRSURF
0463 IF ( OBSetaFile .NE. ' ' ) THEN
0fc7dbfcbd Jean*0464 CALL READ_REC_XZ_RL( OBSetaFile, fp, 1, OBSeta0, iRec0,
0465 & myIter, myThid )
d260176b41 Mart*0466 ENDIF
0467 # endif /* NONLIN_FRSURF */
56f43c4e8a Mart*0468 #endif /* ALLOW_OBCS_SOUTH */
005af54e38 Jean*0469
ee1c912a22 Mart*0470 #ifdef ALLOW_PTRACERS
0471 IF (usePTRACERS) THEN
0472
0fc7dbfcbd Jean*0473 DO iTr = 1, PTRACERS_numInUse
ee1c912a22 Mart*0474 # ifdef ALLOW_OBCS_EAST
0475
0fc7dbfcbd Jean*0476 IF ( OBEptrFile(iTr) .NE. ' ' ) THEN
0477 CALL READ_REC_YZ_RL( OBEptrFile(iTr), fp, Nr,
005af54e38 Jean*0478 & OBEptr0(1-OLy,1,1,1,iTr), iRec0,myIter, myThid )
ee1c912a22 Mart*0479 ENDIF
65e667c895 Mart*0480 # endif /* ALLOW_OBCS_EAST */
ee1c912a22 Mart*0481 # ifdef ALLOW_OBCS_WEST
0482
0fc7dbfcbd Jean*0483 IF ( OBWptrFile(iTr) .NE. ' ' ) THEN
0484 CALL READ_REC_YZ_RL( OBWptrFile(iTr), fp, Nr,
005af54e38 Jean*0485 & OBWptr0(1-OLy,1,1,1,iTr), iRec0, myIter, myThid )
ee1c912a22 Mart*0486 ENDIF
0487 # endif /* ALLOW_OBCS_WEST */
0488 # ifdef ALLOW_OBCS_NORTH
0489
0fc7dbfcbd Jean*0490 IF ( OBNptrFile(iTr) .NE. ' ' ) THEN
0491 CALL READ_REC_XZ_RL( OBNptrFile(iTr), fp, Nr,
005af54e38 Jean*0492 & OBNptr0(1-OLy,1,1,1,iTr), iRec0, myIter, myThid )
ee1c912a22 Mart*0493 ENDIF
0494 # endif /* ALLOW_OBCS_NORTH */
0495 # ifdef ALLOW_OBCS_SOUTH
0496
0fc7dbfcbd Jean*0497 IF ( OBSptrFile(iTr) .NE. ' ' ) THEN
0498 CALL READ_REC_XZ_RL( OBSptrFile(iTr), fp, Nr,
005af54e38 Jean*0499 & OBSptr0(1-OLy,1,1,1,iTr), iRec0, myIter, myThid )
ee1c912a22 Mart*0500 ENDIF
0501 # endif /* ALLOW_OBCS_SOUTH */
0fc7dbfcbd Jean*0502
ee1c912a22 Mart*0503 ENDDO
0504
0505 ENDIF
0506 #endif /* ALLOW_PTRACERS */
392e004d68 Jean*0507 _BARRIER
56f43c4e8a Mart*0508
0509 ENDIF
ee1c912a22 Mart*0510
0511 ENDIF
0512
0513
1b21d1d746 Jean*0514
0515
ee1c912a22 Mart*0516
b67ae883c8 Mart*0517 #ifdef ALLOW_OBCS_EAST
50e2c0b6cd Jean*0518 IF ( OBEuFile .NE. ' ' ) CALL OBCS_TIME_INTERP_YZ(
ee1c912a22 Mart*0519 & OBEu, OBEu0, OBEu1, aWght, bWght, myThid )
50e2c0b6cd Jean*0520 IF ( OBEvFile .NE. ' ' ) CALL OBCS_TIME_INTERP_YZ(
ee1c912a22 Mart*0521 & OBEv, OBEv0, OBEv1, aWght, bWght, myThid )
50e2c0b6cd Jean*0522 IF ( OBEtFile .NE. ' ' ) CALL OBCS_TIME_INTERP_YZ(
ee1c912a22 Mart*0523 & OBEt, OBEt0, OBEt1, aWght, bWght, myThid )
50e2c0b6cd Jean*0524 IF ( OBEsFile .NE. ' ' ) CALL OBCS_TIME_INTERP_YZ(
ee1c912a22 Mart*0525 & OBEs, OBEs0, OBEs1, aWght, bWght, myThid )
2d12bccb16 Jean*0526 # ifdef ALLOW_NONHYDROSTATIC
50e2c0b6cd Jean*0527 IF ( OBEwFile .NE. ' ' ) CALL OBCS_TIME_INTERP_YZ(
2d12bccb16 Jean*0528 & OBEw, OBEw0, OBEw1, aWght, bWght, myThid )
0529 # endif /* ALLOW_NONHYDROSTATIC */
d260176b41 Mart*0530 # ifdef NONLIN_FRSURF
0531 IF ( OBEetaFile .NE. ' ' ) THEN
0532 DO bj = myByLo(myThid), myByHi(myThid)
0533 DO bi = myBxLo(myThid), myBxHi(myThid)
005af54e38 Jean*0534 DO j=1-OLy,sNy+OLy
d260176b41 Mart*0535 OBEeta(j,bi,bj) = bWght*OBEeta0(j,bi,bj)
0536 & +aWght*OBEeta1(j,bi,bj)
0537 ENDDO
0538 ENDDO
0fc7dbfcbd Jean*0539 ENDDO
d260176b41 Mart*0540 ENDIF
0541 # endif /* NONLIN_FRSURF */
b67ae883c8 Mart*0542 #endif /* ALLOW_OBCS_EAST */
0543 #ifdef ALLOW_OBCS_WEST
50e2c0b6cd Jean*0544 IF ( OBWuFile .NE. ' ' ) CALL OBCS_TIME_INTERP_YZ(
ee1c912a22 Mart*0545 & OBWu, OBWu0, OBWu1, aWght, bWght, myThid )
50e2c0b6cd Jean*0546 IF ( OBWvFile .NE. ' ' ) CALL OBCS_TIME_INTERP_YZ(
ee1c912a22 Mart*0547 & OBWv, OBWv0, OBWv1, aWght, bWght, myThid )
50e2c0b6cd Jean*0548 IF ( OBWtFile .NE. ' ' ) CALL OBCS_TIME_INTERP_YZ(
ee1c912a22 Mart*0549 & OBWt, OBWt0, OBWt1, aWght, bWght, myThid )
50e2c0b6cd Jean*0550 IF ( OBWsFile .NE. ' ' ) CALL OBCS_TIME_INTERP_YZ(
ee1c912a22 Mart*0551 & OBWs, OBWs0, OBWs1, aWght, bWght, myThid )
2d12bccb16 Jean*0552 # ifdef ALLOW_NONHYDROSTATIC
50e2c0b6cd Jean*0553 IF ( OBWwFile .NE. ' ' ) CALL OBCS_TIME_INTERP_YZ(
2d12bccb16 Jean*0554 & OBWw, OBWw0, OBWw1, aWght, bWght, myThid )
0555 # endif /* ALLOW_NONHYDROSTATIC */
d260176b41 Mart*0556 # ifdef NONLIN_FRSURF
0557 IF ( OBWetaFile .NE. ' ' ) THEN
0558 DO bj = myByLo(myThid), myByHi(myThid)
0559 DO bi = myBxLo(myThid), myBxHi(myThid)
005af54e38 Jean*0560 DO j=1-OLy,sNy+OLy
d260176b41 Mart*0561 OBWeta(j,bi,bj) = bWght*OBWeta0(j,bi,bj)
0562 & +aWght*OBWeta1(j,bi,bj)
0563 ENDDO
0564 ENDDO
0fc7dbfcbd Jean*0565 ENDDO
d260176b41 Mart*0566 ENDIF
0567 # endif /* NONLIN_FRSURF */
b67ae883c8 Mart*0568 #endif /* ALLOW_OBCS_WEST */
0569 #ifdef ALLOW_OBCS_NORTH
50e2c0b6cd Jean*0570 IF ( OBNuFile .NE. ' ' ) CALL OBCS_TIME_INTERP_XZ(
ee1c912a22 Mart*0571 & OBNu, OBNu0, OBNu1, aWght, bWght, myThid )
50e2c0b6cd Jean*0572 IF ( OBNvFile .NE. ' ' ) CALL OBCS_TIME_INTERP_XZ(
ee1c912a22 Mart*0573 & OBNv, OBNv0, OBNv1, aWght, bWght, myThid )
50e2c0b6cd Jean*0574 IF ( OBNtFile .NE. ' ' ) CALL OBCS_TIME_INTERP_XZ(
ee1c912a22 Mart*0575 & OBNt, OBNt0, OBNt1, aWght, bWght, myThid )
50e2c0b6cd Jean*0576 IF ( OBNsFile .NE. ' ' ) CALL OBCS_TIME_INTERP_XZ(
ee1c912a22 Mart*0577 & OBNs, OBNs0, OBNs1, aWght, bWght, myThid )
2d12bccb16 Jean*0578 # ifdef ALLOW_NONHYDROSTATIC
50e2c0b6cd Jean*0579 IF ( OBNwFile .NE. ' ' ) CALL OBCS_TIME_INTERP_XZ(
2d12bccb16 Jean*0580 & OBNw, OBNw0, OBNw1, aWght, bWght, myThid )
0581 # endif /* ALLOW_NONHYDROSTATIC */
d260176b41 Mart*0582 # ifdef NONLIN_FRSURF
0583 IF ( OBNetaFile .NE. ' ' ) THEN
0584 DO bj = myByLo(myThid), myByHi(myThid)
0585 DO bi = myBxLo(myThid), myBxHi(myThid)
005af54e38 Jean*0586 DO i=1-OLx,sNx+OLx
d260176b41 Mart*0587 OBNeta(i,bi,bj) = bWght*OBNeta0(i,bi,bj)
0588 & +aWght*OBNeta1(i,bi,bj)
0589 ENDDO
0590 ENDDO
0fc7dbfcbd Jean*0591 ENDDO
d260176b41 Mart*0592 ENDIF
0593 # endif /* NONLIN_FRSURF */
b67ae883c8 Mart*0594 #endif /* ALLOW_OBCS_NORTH */
0595 #ifdef ALLOW_OBCS_SOUTH
50e2c0b6cd Jean*0596 IF ( OBSuFile .NE. ' ' ) CALL OBCS_TIME_INTERP_XZ(
ee1c912a22 Mart*0597 & OBSu, OBSu0, OBSu1, aWght, bWght, myThid )
50e2c0b6cd Jean*0598 IF ( OBSvFile .NE. ' ' ) CALL OBCS_TIME_INTERP_XZ(
ee1c912a22 Mart*0599 & OBSv, OBSv0, OBSv1, aWght, bWght, myThid )
50e2c0b6cd Jean*0600 IF ( OBStFile .NE. ' ' ) CALL OBCS_TIME_INTERP_XZ(
ee1c912a22 Mart*0601 & OBSt, OBSt0, OBSt1, aWght, bWght, myThid )
50e2c0b6cd Jean*0602 IF ( OBSsFile .NE. ' ' ) CALL OBCS_TIME_INTERP_XZ(
ee1c912a22 Mart*0603 & OBSs, OBSs0, OBSs1, aWght, bWght, myThid )
2d12bccb16 Jean*0604 # ifdef ALLOW_NONHYDROSTATIC
50e2c0b6cd Jean*0605 IF ( OBSwFile .NE. ' ' ) CALL OBCS_TIME_INTERP_XZ(
2d12bccb16 Jean*0606 & OBSw, OBSw0, OBSw1, aWght, bWght, myThid )
0607 # endif /* ALLOW_NONHYDROSTATIC */
d260176b41 Mart*0608 # ifdef NONLIN_FRSURF
0609 IF ( OBSetaFile .NE. ' ' ) THEN
0610 DO bj = myByLo(myThid), myByHi(myThid)
0611 DO bi = myBxLo(myThid), myBxHi(myThid)
005af54e38 Jean*0612 DO i=1-OLx,sNx+OLx
d260176b41 Mart*0613 OBSeta(i,bi,bj) = bWght*OBSeta0(i,bi,bj)
0614 & +aWght*OBSeta1(i,bi,bj)
0615 ENDDO
0616 ENDDO
0fc7dbfcbd Jean*0617 ENDDO
d260176b41 Mart*0618 ENDIF
0619 # endif /* NONLIN_FRSURF */
b67ae883c8 Mart*0620 #endif /* ALLOW_OBCS_SOUTH */
005af54e38 Jean*0621
ee1c912a22 Mart*0622 #ifdef ALLOW_PTRACERS
0623 IF (usePTRACERS) THEN
0624
0fc7dbfcbd Jean*0625 DO iTr = 1, PTRACERS_numInUse
ee1c912a22 Mart*0626 # ifdef ALLOW_OBCS_EAST
0fc7dbfcbd Jean*0627 IF ( OBEptrFile(iTr) .NE. ' ' )
50e2c0b6cd Jean*0628 & CALL OBCS_TIME_INTERP_YZ(
005af54e38 Jean*0629 O OBEptr (1-OLy,1,1,1,iTr),
0630 I OBEptr0(1-OLy,1,1,1,iTr),
0631 I OBEptr1(1-OLy,1,1,1,iTr), aWght, bWght, myThid )
ee1c912a22 Mart*0632 # endif /* ALLOW_OBCS_EAST */
0633 # ifdef ALLOW_OBCS_WEST
0fc7dbfcbd Jean*0634 IF ( OBWptrFile(iTr) .NE. ' ' )
50e2c0b6cd Jean*0635 & CALL OBCS_TIME_INTERP_YZ(
005af54e38 Jean*0636 O OBWptr (1-OLy,1,1,1,iTr),
0637 I OBWptr0(1-OLy,1,1,1,iTr),
0638 I OBWptr1(1-OLy,1,1,1,iTr), aWght, bWght, myThid )
ee1c912a22 Mart*0639 # endif /* ALLOW_OBCS_WEST */
0640 # ifdef ALLOW_OBCS_NORTH
0fc7dbfcbd Jean*0641 IF ( OBNptrFile(iTr) .NE. ' ' )
50e2c0b6cd Jean*0642 & CALL OBCS_TIME_INTERP_XZ(
005af54e38 Jean*0643 O OBNptr (1-OLx,1,1,1,iTr),
0644 I OBNptr0(1-OLx,1,1,1,iTr),
0645 I OBNptr1(1-OLx,1,1,1,iTr), aWght, bWght, myThid )
ee1c912a22 Mart*0646 # endif /* ALLOW_OBCS_NORTH */
0647 # ifdef ALLOW_OBCS_SOUTH
0fc7dbfcbd Jean*0648 IF ( OBSptrFile(iTr) .NE. ' ' )
50e2c0b6cd Jean*0649 & CALL OBCS_TIME_INTERP_XZ(
005af54e38 Jean*0650 O OBSptr (1-OLx,1,1,1,iTr),
0651 I OBSptr0(1-OLx,1,1,1,iTr),
0652 I OBSptr1(1-OLx,1,1,1,iTr), aWght, bWght, myThid )
ee1c912a22 Mart*0653 # endif /* ALLOW_OBCS_SOUTH */
0fc7dbfcbd Jean*0654
ee1c912a22 Mart*0655 ENDDO
0656
0657 ENDIF
0658 #endif /* ALLOW_PTRACERS */
0659
0660 RETURN
0661 END
0662
acc2fd269d Jean*0663
ee1c912a22 Mart*0664
50e2c0b6cd Jean*0665
ee1c912a22 Mart*0666
50e2c0b6cd Jean*0667 SUBROUTINE OBCS_TIME_INTERP_XZ(
1b21d1d746 Jean*0668 O fld,
ee1c912a22 Mart*0669 I fld0, fld1, aWght, bWght, myThid )
8b081ca9eb Jean*0670
ee1c912a22 Mart*0671
0672
50e2c0b6cd Jean*0673
ee1c912a22 Mart*0674
0675
0676
0677
0678
0679 IMPLICIT NONE
0680
0681 #include "SIZE.h"
0682 #include "EEPARAMS.h"
0683 #include "PARAMS.h"
1b21d1d746 Jean*0684
ee1c912a22 Mart*0685
0686
0687
50e2c0b6cd Jean*0688
005af54e38 Jean*0689 _RL fld (1-OLx:sNx+OLx,Nr,nSx,nSy)
0690 _RL fld0(1-OLx:sNx+OLx,Nr,nSx,nSy)
0691 _RL fld1(1-OLx:sNx+OLx,Nr,nSx,nSy)
50e2c0b6cd Jean*0692 _RL aWght,bWght
0693 INTEGER myThid
ee1c912a22 Mart*0694
0695
0696
0697
0698 INTEGER bi,bj,i,k
0699
0700 DO bj = myByLo(myThid), myByHi(myThid)
0701 DO bi = myBxLo(myThid), myBxHi(myThid)
50e2c0b6cd Jean*0702 DO k = 1, Nr
005af54e38 Jean*0703 DO i=1-OLx,sNx+OLx
1b21d1d746 Jean*0704 fld(i,k,bi,bj) = bWght*fld0(i,k,bi,bj)
ee1c912a22 Mart*0705 & +aWght*fld1(i,k,bi,bj)
b67ae883c8 Mart*0706 ENDDO
0707 ENDDO
0708 ENDDO
392e004d68 Jean*0709 ENDDO
56f43c4e8a Mart*0710
0711 RETURN
0712 END
acc2fd269d Jean*0713
0714
ee1c912a22 Mart*0715
50e2c0b6cd Jean*0716
ee1c912a22 Mart*0717
50e2c0b6cd Jean*0718 SUBROUTINE OBCS_TIME_INTERP_YZ(
1b21d1d746 Jean*0719 O fld,
ee1c912a22 Mart*0720 I fld0, fld1, aWght, bWght, myThid )
8b081ca9eb Jean*0721
ee1c912a22 Mart*0722
0723
50e2c0b6cd Jean*0724
ee1c912a22 Mart*0725
0726
0727
0728
0729
0730 IMPLICIT NONE
0731
0732 #include "SIZE.h"
0733 #include "EEPARAMS.h"
0734 #include "PARAMS.h"
1b21d1d746 Jean*0735
ee1c912a22 Mart*0736
0737
0738
50e2c0b6cd Jean*0739
005af54e38 Jean*0740 _RL fld (1-OLy:sNy+OLy,Nr,nSx,nSy)
0741 _RL fld0(1-OLy:sNy+OLy,Nr,nSx,nSy)
0742 _RL fld1(1-OLy:sNy+OLy,Nr,nSx,nSy)
50e2c0b6cd Jean*0743 _RL aWght,bWght
0744 INTEGER myThid
ee1c912a22 Mart*0745
0746
0747
0748
0749 INTEGER bi,bj,j,k
0750
0751 DO bj = myByLo(myThid), myByHi(myThid)
0752 DO bi = myBxLo(myThid), myBxHi(myThid)
50e2c0b6cd Jean*0753 DO k = 1, Nr
005af54e38 Jean*0754 DO j=1-OLy,sNy+OLy
1b21d1d746 Jean*0755 fld(j,k,bi,bj) = bWght*fld0(j,k,bi,bj)
ee1c912a22 Mart*0756 & +aWght*fld1(j,k,bi,bj)
0757 ENDDO
0758 ENDDO
0759 ENDDO
0fc7dbfcbd Jean*0760 ENDDO
ee1c912a22 Mart*0761
9bd340abd6 Jean*0762 #endif /* ALLOW_OBCS AND ALLOW_OBCS_PRESCRIBE */
af61e5eb16 Mart*0763 #endif /* ndef EXCLUDE_FFIELDS_LOAD */
56f43c4e8a Mart*0764
ee1c912a22 Mart*0765 RETURN
0766 END