File indexing completed on 2018-03-02 18:40:00 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
6d54cf9ca1 Ed H*0001 #include "EXF_OPTIONS.h"
7f861c1808 Patr*0002
66208f8733 Jean*0003
0004
0005
0006
f694f549b7 Jean*0007
0008
66208f8733 Jean*0009
0010
0011
0012 SUBROUTINE EXF_SET_OBCS_XZ (
0013 U obcs_fld_xz, obcs_xz_0, obcs_xz_1,
f694f549b7 Jean*0014 I obcs_file, obcsmask, nNz,
66208f8733 Jean*0015 I fac, first, changed, useYearlyFields, obcs_period,
0016 I count0, count1, year0, year1,
0017 I myTime, myIter, myThid )
7f861c1808 Patr*0018
f694f549b7 Jean*0019
0020
0021
0022
0023
0024
0025
0026
7f861c1808 Patr*0027
f694f549b7 Jean*0028
0029
0030
7f861c1808 Patr*0031
66208f8733 Jean*0032 IMPLICIT NONE
7f861c1808 Patr*0033
f694f549b7 Jean*0034
7f861c1808 Patr*0035 #include "EEPARAMS.h"
0036 #include "SIZE.h"
0037 #include "GRID.h"
082e18c36c Jean*0038 #include "EXF_PARAM.h"
0039 #include "EXF_CONSTANTS.h"
7f861c1808 Patr*0040
f694f549b7 Jean*0041
0042
0043 INTEGER nNz
0044 _RL obcs_fld_xz(1-OLx:sNx+OLx,nNz,nSx,nSy)
0045 _RL obcs_xz_0(1-OLx:sNx+OLx,nNz,nSx,nSy)
0046 _RL obcs_xz_1(1-OLx:sNx+OLx,nNz,nSx,nSy)
3a075b3d72 Dimi*0047
66208f8733 Jean*0048 CHARACTER*(128) obcs_file
0049 CHARACTER*1 obcsmask
0050 LOGICAL first, changed
0051 LOGICAL useYearlyFields
6b9fc2ad14 Mart*0052 _RL obcs_period
66208f8733 Jean*0053 INTEGER count0, count1, year0, year1
7f861c1808 Patr*0054 _RL fac
66208f8733 Jean*0055 _RL myTime
0056 INTEGER myIter
0057 INTEGER myThid
7f861c1808 Patr*0058
0059 #ifdef ALLOW_OBCS
0060
f694f549b7 Jean*0061
7f861c1808 Patr*0062
66208f8733 Jean*0063 CHARACTER*(128) obcs_file0, obcs_file1
0064 INTEGER bi, bj
0065 INTEGER i, k
6b9fc2ad14 Mart*0066
f694f549b7 Jean*0067
7f861c1808 Patr*0068
66208f8733 Jean*0069 IF ( obcs_file .NE. ' ' ) THEN
6060ec2938 Dimi*0070
66208f8733 Jean*0071 IF ( first ) THEN
6b9fc2ad14 Mart*0072
66208f8733 Jean*0073 CALL exf_GetYearlyFieldName(
510778fc01 Mart*0074 I useYearlyFields, twoDigitYear, obcs_period, year0,
0075 I obcs_file,
0076 O obcs_file0,
66208f8733 Jean*0077 I myTime, myIter, myThid )
6b9fc2ad14 Mart*0078
f694f549b7 Jean*0079 _BARRIER
0080 CALL READ_REC_XZ_RL( obcs_file0, exf_iprec_obcs, nNz,
66208f8733 Jean*0081 & obcs_xz_1, count0, myIter, myThid )
f694f549b7 Jean*0082 _BARRIER
66208f8733 Jean*0083 ENDIF
6060ec2938 Dimi*0084
f694f549b7 Jean*0085 IF ( first .OR. changed ) THEN
0086 CALL exf_swapffields_xz( obcs_xz_0, obcs_xz_1, nNz,myThid )
6060ec2938 Dimi*0087
66208f8733 Jean*0088 CALL exf_GetYearlyFieldName(
0089 I useYearlyFields, twoDigitYear, obcs_period, year1,
510778fc01 Mart*0090 I obcs_file,
0091 O obcs_file1,
66208f8733 Jean*0092 I myTime, myIter, myThid )
0093
f694f549b7 Jean*0094 _BARRIER
0095 CALL READ_REC_XZ_RL( obcs_file1, exf_iprec_obcs, nNz,
66208f8733 Jean*0096 & obcs_xz_1, count1, myIter, myThid )
f694f549b7 Jean*0097 _BARRIER
66208f8733 Jean*0098 ENDIF
0099
0100 DO bj = myByLo(myThid),myByHi(myThid)
0101 DO bi = myBxLo(myThid),myBxHi(myThid)
f694f549b7 Jean*0102 DO k = 1,nNz
66208f8733 Jean*0103 DO i = 1,sNx
0104 obcs_fld_xz(i,k,bi,bj) =
3a075b3d72 Dimi*0105 & fac * obcs_xz_0(i,k,bi,bj) +
6060ec2938 Dimi*0106 & (exf_one - fac) * obcs_xz_1(i,k,bi,bj)
66208f8733 Jean*0107 ENDDO
0108 ENDDO
0109 ENDDO
0110 ENDDO
7f861c1808 Patr*0111
66208f8733 Jean*0112 ENDIF
7f861c1808 Patr*0113
fe50289ca9 Dimi*0114 #endif /* ALLOW_OBCS */
7f861c1808 Patr*0115
66208f8733 Jean*0116 RETURN
0117 END
0118
0119
7f861c1808 Patr*0120
66208f8733 Jean*0121 SUBROUTINE EXF_SET_OBCS_YZ (
0122 U obcs_fld_yz, obcs_yz_0, obcs_yz_1,
f694f549b7 Jean*0123 I obcs_file, obcsmask, nNz,
66208f8733 Jean*0124 I fac, first, changed, useYearlyFields, obcs_period,
0125 I count0, count1, year0, year1,
0126 I myTime, myIter, myThid)
7f861c1808 Patr*0127
f694f549b7 Jean*0128
0129
0130
0131
0132
0133
0134
7f861c1808 Patr*0135
f694f549b7 Jean*0136
0137
0138
7f861c1808 Patr*0139
66208f8733 Jean*0140 IMPLICIT NONE
7f861c1808 Patr*0141
f694f549b7 Jean*0142
7f861c1808 Patr*0143 #include "EEPARAMS.h"
0144 #include "SIZE.h"
0145 #include "GRID.h"
082e18c36c Jean*0146 #include "EXF_PARAM.h"
0147 #include "EXF_CONSTANTS.h"
7f861c1808 Patr*0148
f694f549b7 Jean*0149
0150
0151 INTEGER nNz
0152 _RL obcs_fld_yz(1-OLy:sNy+OLy,nNz,nSx,nSy)
0153 _RL obcs_yz_0(1-OLy:sNy+OLy,nNz,nSx,nSy)
0154 _RL obcs_yz_1(1-OLy:sNy+OLy,nNz,nSx,nSy)
66208f8733 Jean*0155 CHARACTER*(MAX_LEN_FNAM) obcs_file
0156 CHARACTER*1 obcsmask
0157 LOGICAL first, changed
0158 LOGICAL useYearlyFields
6b9fc2ad14 Mart*0159 _RL obcs_period
66208f8733 Jean*0160 INTEGER count0, count1, year0, year1
7f861c1808 Patr*0161 _RL fac
66208f8733 Jean*0162 _RL myTime
0163 INTEGER myIter
0164 INTEGER myThid
7f861c1808 Patr*0165
0166 #ifdef ALLOW_OBCS
0167
f694f549b7 Jean*0168
7f861c1808 Patr*0169
66208f8733 Jean*0170 CHARACTER*(128) obcs_file0, obcs_file1
0171 INTEGER bi, bj
0172 INTEGER j, k
de416ebcde Patr*0173
f694f549b7 Jean*0174
7f861c1808 Patr*0175
66208f8733 Jean*0176 IF ( obcs_file .NE. ' ' ) THEN
7f861c1808 Patr*0177
66208f8733 Jean*0178 IF ( first ) THEN
6b9fc2ad14 Mart*0179
66208f8733 Jean*0180 CALL exf_GetYearlyFieldName(
0181 I useYearlyFields, twoDigitYear, obcs_period, year0,
510778fc01 Mart*0182 I obcs_file,
0183 O obcs_file0,
66208f8733 Jean*0184 I myTime, myIter, myThid )
6b9fc2ad14 Mart*0185
f694f549b7 Jean*0186 _BARRIER
0187 CALL READ_REC_YZ_RL( obcs_file0, exf_iprec_obcs, nNz,
66208f8733 Jean*0188 & obcs_yz_1, count0, myIter, myThid )
f694f549b7 Jean*0189 _BARRIER
66208f8733 Jean*0190 ENDIF
7f861c1808 Patr*0191
f694f549b7 Jean*0192 IF ( first .OR. changed ) THEN
0193 CALL exf_swapffields_yz( obcs_yz_0, obcs_yz_1, nNz,myThid )
7109a141b2 Patr*0194
66208f8733 Jean*0195 CALL exf_GetYearlyFieldName(
0196 I useYearlyFields, twoDigitYear, obcs_period, year1,
510778fc01 Mart*0197 I obcs_file,
0198 O obcs_file1,
66208f8733 Jean*0199 I myTime, myIter, myThid )
0200
f694f549b7 Jean*0201 _BARRIER
0202 CALL READ_REC_YZ_RL( obcs_file1, exf_iprec_obcs, nNz,
66208f8733 Jean*0203 & obcs_yz_1, count1, myIter, myThid )
f694f549b7 Jean*0204 _BARRIER
66208f8733 Jean*0205 ENDIF
0206
0207 DO bj = myByLo(myThid),myByHi(myThid)
0208 DO bi = myBxLo(myThid),myBxHi(myThid)
f694f549b7 Jean*0209 DO k = 1,nNz
66208f8733 Jean*0210 DO j = 1,sNy
0211 obcs_fld_yz(j,k,bi,bj) =
3a075b3d72 Dimi*0212 & fac *obcs_yz_0(j,k,bi,bj) +
0213 & (exf_one - fac) *obcs_yz_1(j,k,bi,bj)
66208f8733 Jean*0214 ENDDO
0215 ENDDO
0216 ENDDO
0217 ENDDO
7109a141b2 Patr*0218
66208f8733 Jean*0219 ENDIF
7f861c1808 Patr*0220
fe50289ca9 Dimi*0221 #endif /* ALLOW_OBCS */
0222
66208f8733 Jean*0223 RETURN
0224 END
0225
0226
fe50289ca9 Dimi*0227
66208f8733 Jean*0228 SUBROUTINE EXF_SET_OBCS_X (
0229 U obcs_fld_x, obcs_x_0, obcs_x_1,
0230 I obcs_file, obcsmask,
0231 I fac, first, changed, useYearlyFields, obcs_period,
0232 I count0, count1, year0, year1,
0233 I myTime, myIter, myThid )
fe50289ca9 Dimi*0234
f694f549b7 Jean*0235
0236
0237
0238
0239
0240
0241
0242
0243
0244
fe50289ca9 Dimi*0245
66208f8733 Jean*0246 IMPLICIT NONE
fe50289ca9 Dimi*0247
f694f549b7 Jean*0248
fe50289ca9 Dimi*0249
0250 #include "EEPARAMS.h"
0251 #include "SIZE.h"
0252 #include "GRID.h"
0253 #include "EXF_PARAM.h"
0254 #include "EXF_CONSTANTS.h"
0255
f694f549b7 Jean*0256
fe50289ca9 Dimi*0257
66208f8733 Jean*0258 _RL obcs_fld_x(1-OLx:sNx+OLx,nSx,nSy)
0259 _RL obcs_x_0(1-OLx:sNx+OLx,nSx,nSy)
0260 _RL obcs_x_1(1-OLx:sNx+OLx,nSx,nSy)
3a075b3d72 Dimi*0261
66208f8733 Jean*0262 CHARACTER*(128) obcs_file
0263 CHARACTER*1 obcsmask
0264 LOGICAL first, changed
0265 LOGICAL useYearlyFields
6b9fc2ad14 Mart*0266 _RL obcs_period
66208f8733 Jean*0267 INTEGER count0, count1, year0, year1
fe50289ca9 Dimi*0268 _RL fac
66208f8733 Jean*0269 _RL myTime
0270 INTEGER myIter
0271 INTEGER myThid
fe50289ca9 Dimi*0272
0273 #ifdef ALLOW_OBCS
0274
f694f549b7 Jean*0275
fe50289ca9 Dimi*0276
66208f8733 Jean*0277 CHARACTER*(128) obcs_file0, obcs_file1
0278 INTEGER bi, bj, i
6b9fc2ad14 Mart*0279
f694f549b7 Jean*0280
0281
0282 STOP 'S/R EXF_SET_OBCS_X no longer maintained'
fe50289ca9 Dimi*0283
66208f8733 Jean*0284 IF ( obcs_file .NE. ' ' ) THEN
fe50289ca9 Dimi*0285
66208f8733 Jean*0286 IF ( first ) THEN
6b9fc2ad14 Mart*0287
66208f8733 Jean*0288 CALL exf_GetYearlyFieldName(
0289 I useYearlyFields, twoDigitYear, obcs_period, year0,
510778fc01 Mart*0290 I obcs_file,
0291 O obcs_file0,
66208f8733 Jean*0292 I myTime, myIter, myThid )
6b9fc2ad14 Mart*0293
66208f8733 Jean*0294 CALL READ_REC_XZ_RL( obcs_file0, exf_iprec_obcs, 1,
0295 & obcs_x_1, count0, myIter, myThid )
0296 ENDIF
fe50289ca9 Dimi*0297
66208f8733 Jean*0298 IF (( first ) .OR. ( changed )) THEN
f694f549b7 Jean*0299 CALL exf_swapffields_xz( obcs_x_0, obcs_x_1, 1,myThid )
fe50289ca9 Dimi*0300
66208f8733 Jean*0301 CALL exf_GetYearlyFieldName(
0302 I useYearlyFields, twoDigitYear, obcs_period, year1,
510778fc01 Mart*0303 I obcs_file,
0304 O obcs_file1,
66208f8733 Jean*0305 I myTime, myIter, myThid )
6b9fc2ad14 Mart*0306
66208f8733 Jean*0307 CALL READ_REC_XZ_RL( obcs_file1, exf_iprec_obcs, 1,
0308 & obcs_x_1, count1, myIter, myThid )
0309 ENDIF
fe50289ca9 Dimi*0310
66208f8733 Jean*0311 DO bj = myByLo(myThid),myByHi(myThid)
0312 DO bi = myBxLo(myThid),myBxHi(myThid)
0313 DO i = 1,sNx
0314 obcs_fld_x(i,bi,bj) =
3a075b3d72 Dimi*0315 & fac * obcs_x_0(i,bi,bj) +
fe50289ca9 Dimi*0316 & (exf_one - fac) * obcs_x_1(i,bi,bj)
66208f8733 Jean*0317 ENDDO
0318 ENDDO
0319 ENDDO
fe50289ca9 Dimi*0320
66208f8733 Jean*0321 ENDIF
fe50289ca9 Dimi*0322
0323 #endif /* ALLOW_OBCS */
0324
66208f8733 Jean*0325 RETURN
0326 END
fe50289ca9 Dimi*0327
66208f8733 Jean*0328
0329
0330 SUBROUTINE EXF_SET_OBCS_Y (
0331 U obcs_fld_y, obcs_y_0, obcs_y_1,
0332 I obcs_file, obcsmask,
0333 I fac, first, changed, useYearlyFields, obcs_period,
0334 I count0, count1, year0, year1,
0335 I myTime, myIter, myThid )
fe50289ca9 Dimi*0336
f694f549b7 Jean*0337
0338
0339
0340
0341
0342
0343
0344
0345
0346
fe50289ca9 Dimi*0347
66208f8733 Jean*0348 IMPLICIT NONE
fe50289ca9 Dimi*0349
f694f549b7 Jean*0350
fe50289ca9 Dimi*0351
0352 #include "EEPARAMS.h"
0353 #include "SIZE.h"
0354 #include "GRID.h"
0355 #include "EXF_PARAM.h"
0356 #include "EXF_CONSTANTS.h"
0357
f694f549b7 Jean*0358
fe50289ca9 Dimi*0359
66208f8733 Jean*0360 _RL obcs_fld_y(1-OLy:sNy+OLy,nSx,nSy)
0361 _RL obcs_y_0(1-OLy:sNy+OLy,nSx,nSy)
0362 _RL obcs_y_1(1-OLy:sNy+OLy,nSx,nSy)
0363 CHARACTER*(MAX_LEN_FNAM) obcs_file
0364 CHARACTER*1 obcsmask
0365 LOGICAL first, changed
0366 LOGICAL useYearlyFields
6b9fc2ad14 Mart*0367 _RL obcs_period
66208f8733 Jean*0368 INTEGER count0, count1, year0, year1
fe50289ca9 Dimi*0369 _RL fac
66208f8733 Jean*0370 _RL myTime
0371 INTEGER myIter
0372 INTEGER myThid
fe50289ca9 Dimi*0373
0374 #ifdef ALLOW_OBCS
0375
f694f549b7 Jean*0376
fe50289ca9 Dimi*0377
66208f8733 Jean*0378 CHARACTER*(128) obcs_file0, obcs_file1
0379 INTEGER bi, bj, j
6b9fc2ad14 Mart*0380
f694f549b7 Jean*0381
0382
0383 STOP 'S/R EXF_SET_OBCS_X no longer maintained'
fe50289ca9 Dimi*0384
66208f8733 Jean*0385 IF ( obcs_file .NE. ' ' ) THEN
fe50289ca9 Dimi*0386
66208f8733 Jean*0387 IF ( first ) THEN
6b9fc2ad14 Mart*0388
66208f8733 Jean*0389 CALL exf_GetYearlyFieldName(
0390 I useYearlyFields, twoDigitYear, obcs_period, year0,
510778fc01 Mart*0391 I obcs_file,
0392 O obcs_file0,
66208f8733 Jean*0393 I myTime, myIter, myThid )
6b9fc2ad14 Mart*0394
66208f8733 Jean*0395 CALL READ_REC_YZ_RL( obcs_file0, exf_iprec_obcs, 1,
0396 & obcs_y_1, count0, myIter, myThid )
0397 ENDIF
fe50289ca9 Dimi*0398
66208f8733 Jean*0399 IF (( first ) .OR. ( changed )) THEN
f694f549b7 Jean*0400 CALL exf_swapffields_yz( obcs_y_0, obcs_y_1, 1,myThid )
fe50289ca9 Dimi*0401
66208f8733 Jean*0402 CALL exf_GetYearlyFieldName(
0403 I useYearlyFields, twoDigitYear, obcs_period, year1,
510778fc01 Mart*0404 I obcs_file,
0405 O obcs_file1,
66208f8733 Jean*0406 I myTime, myIter, myThid )
6b9fc2ad14 Mart*0407
66208f8733 Jean*0408 CALL READ_REC_YZ_RL( obcs_file1, exf_iprec_obcs, 1,
0409 & obcs_y_1, count1, myIter, myThid )
0410 ENDIF
fe50289ca9 Dimi*0411
66208f8733 Jean*0412 DO bj = myByLo(myThid),myByHi(myThid)
0413 DO bi = myBxLo(myThid),myBxHi(myThid)
0414 DO j = 1,sNy
0415 obcs_fld_y(j,bi,bj) =
3a075b3d72 Dimi*0416 & fac *obcs_y_0(j,bi,bj) +
0417 & (exf_one - fac) *obcs_y_1(j,bi,bj)
66208f8733 Jean*0418 ENDDO
0419 ENDDO
0420 ENDDO
fe50289ca9 Dimi*0421
66208f8733 Jean*0422 ENDIF
fe50289ca9 Dimi*0423
0424 #endif /* ALLOW_OBCS */
7f861c1808 Patr*0425
66208f8733 Jean*0426 RETURN
0427 END