File indexing completed on 2018-03-02 18:42:39 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
3221ad5c59 Jean*0001 #include "OBCS_OPTIONS.h"
0002
0003
0004
0005
0006
0007
0008 SUBROUTINE OBCS_READ_PICKUP( myIter, myThid )
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 IMPLICIT NONE
0020
0021 #include "SIZE.h"
0022 #include "EEPARAMS.h"
0023 #include "PARAMS.h"
9b4f2a04e2 Jean*0024 #include "OBCS_PARAMS.h"
0025 #include "OBCS_FIELDS.h"
3221ad5c59 Jean*0026 #include "ORLANSKI.h"
0027
0028
0029 INTEGER myIter
0030 INTEGER myThid
0031
0032
2c64c37c71 Mart*0033 #if (defined ALLOW_ORLANSKI) || (defined ALLOW_OBCS_STEVENS)
3221ad5c59 Jean*0034
0035
0036 CHARACTER*(MAX_LEN_FNAM) fn
0037 CHARACTER*(10) suff
0038 INTEGER prec
0039
0040 IF ( pickupSuff.EQ.' ' ) THEN
df5a9764ba Jean*0041 IF ( rwSuffixType.EQ.0 ) THEN
0042 WRITE(suff,'(I10.10)') myIter
0043 ELSE
0044 CALL RW_GET_SUFFIX( suff, startTime, myIter, myThid )
0045 ENDIF
3221ad5c59 Jean*0046 ELSE
0047 suff = pickupSuff
0048 ENDIF
0049 prec = precFloat64
0050
58a0264bb8 Jean*0051
0052
0053
0054 _BARRIER
0055
2c64c37c71 Mart*0056 #ifdef ALLOW_ORLANSKI
3221ad5c59 Jean*0057 #ifdef ALLOW_OBCS_NORTH
0058 IF ( useOrlanskiNorth ) THEN
0059
0060 WRITE(fn,'(2A)') 'pickup_orlanskiN.',suff
0061 CALL READ_REC_XZ_RL(fn,prec,Nr,UN_STORE_1, 1,myIter,myThid)
0062 CALL READ_REC_XZ_RL(fn,prec,Nr,UN_STORE_2, 2,myIter,myThid)
0063 CALL READ_REC_XZ_RL(fn,prec,Nr,UN_STORE_3, 3,myIter,myThid)
0064 CALL READ_REC_XZ_RL(fn,prec,Nr,UN_STORE_4, 4,myIter,myThid)
0065 CALL READ_REC_XZ_RL(fn,prec,Nr,VN_STORE_1, 5,myIter,myThid)
0066 CALL READ_REC_XZ_RL(fn,prec,Nr,VN_STORE_2, 6,myIter,myThid)
0067 CALL READ_REC_XZ_RL(fn,prec,Nr,VN_STORE_3, 7,myIter,myThid)
0068 CALL READ_REC_XZ_RL(fn,prec,Nr,VN_STORE_4, 8,myIter,myThid)
0069 CALL READ_REC_XZ_RL(fn,prec,Nr,TN_STORE_1, 9,myIter,myThid)
0070 CALL READ_REC_XZ_RL(fn,prec,Nr,TN_STORE_2,10,myIter,myThid)
0071 CALL READ_REC_XZ_RL(fn,prec,Nr,TN_STORE_3,11,myIter,myThid)
0072 CALL READ_REC_XZ_RL(fn,prec,Nr,TN_STORE_4,12,myIter,myThid)
0073 CALL READ_REC_XZ_RL(fn,prec,Nr,SN_STORE_1,13,myIter,myThid)
0074 CALL READ_REC_XZ_RL(fn,prec,Nr,SN_STORE_2,14,myIter,myThid)
0075 CALL READ_REC_XZ_RL(fn,prec,Nr,SN_STORE_3,15,myIter,myThid)
0076 CALL READ_REC_XZ_RL(fn,prec,Nr,SN_STORE_4,16,myIter,myThid)
0077 CALL READ_REC_XZ_RL(fn,prec,Nr, CVEL_UN , 17,myIter,myThid)
0078 CALL READ_REC_XZ_RL(fn,prec,Nr, CVEL_VN , 18,myIter,myThid)
0079 CALL READ_REC_XZ_RL(fn,prec,Nr, CVEL_TN , 19,myIter,myThid)
0080 CALL READ_REC_XZ_RL(fn,prec,Nr, CVEL_SN , 20,myIter,myThid)
0081 #ifdef ALLOW_NONHYDROSTATIC
0082 IF ( nonHydrostatic ) THEN
0083 CALL READ_REC_XZ_RL(fn,prec,Nr,WN_STORE_1,21,myIter,myThid)
0084 CALL READ_REC_XZ_RL(fn,prec,Nr,WN_STORE_2,22,myIter,myThid)
0085 CALL READ_REC_XZ_RL(fn,prec,Nr,WN_STORE_3,23,myIter,myThid)
0086 CALL READ_REC_XZ_RL(fn,prec,Nr,WN_STORE_4,24,myIter,myThid)
0087 CALL READ_REC_XZ_RL(fn,prec,Nr, CVEL_WN , 25,myIter,myThid)
0088 CALL READ_REC_XZ_RL(fn,prec,Nr, OBNw , 26,myIter,myThid)
0089 ENDIF
0090 #endif
0091 ENDIF
0092 #endif /* ALLOW_OBCS_NORTH */
0093
0094 #ifdef ALLOW_OBCS_SOUTH
0095 IF ( useOrlanskiSouth ) THEN
0096 WRITE(fn,'(2A)') 'pickup_orlanskiS.',suff
0097 CALL READ_REC_XZ_RL(fn,prec,Nr,US_STORE_1, 1,myIter,myThid)
0098 CALL READ_REC_XZ_RL(fn,prec,Nr,US_STORE_2, 2,myIter,myThid)
0099 CALL READ_REC_XZ_RL(fn,prec,Nr,US_STORE_3, 3,myIter,myThid)
0100 CALL READ_REC_XZ_RL(fn,prec,Nr,US_STORE_4, 4,myIter,myThid)
0101 CALL READ_REC_XZ_RL(fn,prec,Nr,VS_STORE_1, 5,myIter,myThid)
0102 CALL READ_REC_XZ_RL(fn,prec,Nr,VS_STORE_2, 6,myIter,myThid)
0103 CALL READ_REC_XZ_RL(fn,prec,Nr,VS_STORE_3, 7,myIter,myThid)
0104 CALL READ_REC_XZ_RL(fn,prec,Nr,VS_STORE_4, 8,myIter,myThid)
0105 CALL READ_REC_XZ_RL(fn,prec,Nr,TS_STORE_1, 9,myIter,myThid)
0106 CALL READ_REC_XZ_RL(fn,prec,Nr,TS_STORE_2,10,myIter,myThid)
0107 CALL READ_REC_XZ_RL(fn,prec,Nr,TS_STORE_3,11,myIter,myThid)
0108 CALL READ_REC_XZ_RL(fn,prec,Nr,TS_STORE_4,12,myIter,myThid)
0109 CALL READ_REC_XZ_RL(fn,prec,Nr,SS_STORE_1,13,myIter,myThid)
0110 CALL READ_REC_XZ_RL(fn,prec,Nr,SS_STORE_2,14,myIter,myThid)
0111 CALL READ_REC_XZ_RL(fn,prec,Nr,SS_STORE_3,15,myIter,myThid)
0112 CALL READ_REC_XZ_RL(fn,prec,Nr,SS_STORE_4,16,myIter,myThid)
0113 CALL READ_REC_XZ_RL(fn,prec,Nr, CVEL_US , 17,myIter,myThid)
0114 CALL READ_REC_XZ_RL(fn,prec,Nr, CVEL_VS , 18,myIter,myThid)
0115 CALL READ_REC_XZ_RL(fn,prec,Nr, CVEL_TS , 19,myIter,myThid)
0116 CALL READ_REC_XZ_RL(fn,prec,Nr, CVEL_SS , 20,myIter,myThid)
0117 #ifdef ALLOW_NONHYDROSTATIC
0118 IF ( nonHydrostatic ) THEN
0119 CALL READ_REC_XZ_RL(fn,prec,Nr,WS_STORE_1,21,myIter,myThid)
0120 CALL READ_REC_XZ_RL(fn,prec,Nr,WS_STORE_2,22,myIter,myThid)
0121 CALL READ_REC_XZ_RL(fn,prec,Nr,WS_STORE_3,23,myIter,myThid)
0122 CALL READ_REC_XZ_RL(fn,prec,Nr,WS_STORE_4,24,myIter,myThid)
0123 CALL READ_REC_XZ_RL(fn,prec,Nr, CVEL_WS , 25,myIter,myThid)
0124 CALL READ_REC_XZ_RL(fn,prec,Nr, OBSw , 26,myIter,myThid)
0125 ENDIF
0126 #endif
0127 ENDIF
0128 #endif /* ALLOW_OBCS_SOUTH */
0129
0130
0131 #ifdef ALLOW_OBCS_EAST
0132 IF ( useOrlanskiEast ) THEN
0133 WRITE(fn,'(2A)') 'pickup_orlanskiE.',suff
0134 CALL READ_REC_YZ_RL(fn,prec,Nr,UE_STORE_1, 1,myIter,myThid)
0135 CALL READ_REC_YZ_RL(fn,prec,Nr,UE_STORE_2, 2,myIter,myThid)
0136 CALL READ_REC_YZ_RL(fn,prec,Nr,UE_STORE_3, 3,myIter,myThid)
0137 CALL READ_REC_YZ_RL(fn,prec,Nr,UE_STORE_4, 4,myIter,myThid)
0138 CALL READ_REC_YZ_RL(fn,prec,Nr,VE_STORE_1, 5,myIter,myThid)
0139 CALL READ_REC_YZ_RL(fn,prec,Nr,VE_STORE_2, 6,myIter,myThid)
0140 CALL READ_REC_YZ_RL(fn,prec,Nr,VE_STORE_3, 7,myIter,myThid)
0141 CALL READ_REC_YZ_RL(fn,prec,Nr,VE_STORE_4, 8,myIter,myThid)
0142 CALL READ_REC_YZ_RL(fn,prec,Nr,TE_STORE_1, 9,myIter,myThid)
0143 CALL READ_REC_YZ_RL(fn,prec,Nr,TE_STORE_2,10,myIter,myThid)
0144 CALL READ_REC_YZ_RL(fn,prec,Nr,TE_STORE_3,11,myIter,myThid)
0145 CALL READ_REC_YZ_RL(fn,prec,Nr,TE_STORE_4,12,myIter,myThid)
0146 CALL READ_REC_YZ_RL(fn,prec,Nr,SE_STORE_1,13,myIter,myThid)
0147 CALL READ_REC_YZ_RL(fn,prec,Nr,SE_STORE_2,14,myIter,myThid)
0148 CALL READ_REC_YZ_RL(fn,prec,Nr,SE_STORE_3,15,myIter,myThid)
0149 CALL READ_REC_YZ_RL(fn,prec,Nr,SE_STORE_4,16,myIter,myThid)
0150 CALL READ_REC_YZ_RL(fn,prec,Nr, CVEL_UE , 17,myIter,myThid)
0151 CALL READ_REC_YZ_RL(fn,prec,Nr, CVEL_VE , 18,myIter,myThid)
0152 CALL READ_REC_YZ_RL(fn,prec,Nr, CVEL_TE , 19,myIter,myThid)
0153 CALL READ_REC_YZ_RL(fn,prec,Nr, CVEL_SE , 20,myIter,myThid)
0154 #ifdef ALLOW_NONHYDROSTATIC
0155 IF ( nonHydrostatic ) THEN
0156 CALL READ_REC_YZ_RL(fn,prec,Nr,WE_STORE_1,21,myIter,myThid)
0157 CALL READ_REC_YZ_RL(fn,prec,Nr,WE_STORE_2,22,myIter,myThid)
0158 CALL READ_REC_YZ_RL(fn,prec,Nr,WE_STORE_3,23,myIter,myThid)
0159 CALL READ_REC_YZ_RL(fn,prec,Nr,WE_STORE_4,24,myIter,myThid)
0160 CALL READ_REC_YZ_RL(fn,prec,Nr, CVEL_WE , 25,myIter,myThid)
0161 CALL READ_REC_YZ_RL(fn,prec,Nr, OBEw , 26,myIter,myThid)
0162 ENDIF
0163 #endif
0164 ENDIF
0165 #endif /* ALLOW_OBCS_EAST */
0166
0167 #ifdef ALLOW_OBCS_WEST
0168 IF ( useOrlanskiWest ) THEN
0169 WRITE(fn,'(2A)') 'pickup_orlanskiW.',suff
0170 CALL READ_REC_YZ_RL(fn,prec,Nr,UW_STORE_1, 1,myIter,myThid)
0171 CALL READ_REC_YZ_RL(fn,prec,Nr,UW_STORE_2, 2,myIter,myThid)
0172 CALL READ_REC_YZ_RL(fn,prec,Nr,UW_STORE_3, 3,myIter,myThid)
0173 CALL READ_REC_YZ_RL(fn,prec,Nr,UW_STORE_4, 4,myIter,myThid)
0174 CALL READ_REC_YZ_RL(fn,prec,Nr,VW_STORE_1, 5,myIter,myThid)
0175 CALL READ_REC_YZ_RL(fn,prec,Nr,VW_STORE_2, 6,myIter,myThid)
0176 CALL READ_REC_YZ_RL(fn,prec,Nr,VW_STORE_3, 7,myIter,myThid)
0177 CALL READ_REC_YZ_RL(fn,prec,Nr,VW_STORE_4, 8,myIter,myThid)
0178 CALL READ_REC_YZ_RL(fn,prec,Nr,TW_STORE_1, 9,myIter,myThid)
0179 CALL READ_REC_YZ_RL(fn,prec,Nr,TW_STORE_2,10,myIter,myThid)
0180 CALL READ_REC_YZ_RL(fn,prec,Nr,TW_STORE_3,11,myIter,myThid)
0181 CALL READ_REC_YZ_RL(fn,prec,Nr,TW_STORE_4,12,myIter,myThid)
0182 CALL READ_REC_YZ_RL(fn,prec,Nr,SW_STORE_1,13,myIter,myThid)
0183 CALL READ_REC_YZ_RL(fn,prec,Nr,SW_STORE_2,14,myIter,myThid)
0184 CALL READ_REC_YZ_RL(fn,prec,Nr,SW_STORE_3,15,myIter,myThid)
0185 CALL READ_REC_YZ_RL(fn,prec,Nr,SW_STORE_4,16,myIter,myThid)
0186 CALL READ_REC_YZ_RL(fn,prec,Nr, CVEL_UW , 17,myIter,myThid)
0187 CALL READ_REC_YZ_RL(fn,prec,Nr, CVEL_VW , 18,myIter,myThid)
0188 CALL READ_REC_YZ_RL(fn,prec,Nr, CVEL_TW , 19,myIter,myThid)
0189 CALL READ_REC_YZ_RL(fn,prec,Nr, CVEL_SW , 20,myIter,myThid)
0190 #ifdef ALLOW_NONHYDROSTATIC
0191 IF ( nonHydrostatic ) THEN
0192 CALL READ_REC_YZ_RL(fn,prec,Nr,WW_STORE_1,21,myIter,myThid)
0193 CALL READ_REC_YZ_RL(fn,prec,Nr,WW_STORE_2,22,myIter,myThid)
0194 CALL READ_REC_YZ_RL(fn,prec,Nr,WW_STORE_3,23,myIter,myThid)
0195 CALL READ_REC_YZ_RL(fn,prec,Nr,WW_STORE_4,24,myIter,myThid)
0196 CALL READ_REC_YZ_RL(fn,prec,Nr, CVEL_WW , 25,myIter,myThid)
0197 CALL READ_REC_YZ_RL(fn,prec,Nr, OBWw , 26,myIter,myThid)
0198 ENDIF
0199 #endif
0200 ENDIF
0201 #endif /* ALLOW_OBCS_WEST */
0202
0203
0204
0205
0206
0207
0208
0209
0210
0211
0212
0213
0214
0215
0216
0217
0218
2c64c37c71 Mart*0219 #endif /* ALLOW_ORLANSKI */
0220
0221 #ifdef ALLOW_OBCS_STEVENS
0222 #ifdef ALLOW_OBCS_NORTH
0223 IF ( useStevensNorth ) THEN
0224 WRITE(fn,'(2A)') 'pickup_stevensN.',suff
0225 CALL READ_REC_XZ_RL(fn,prec,Nr,OBNvStevens, 1,myIter,myThid)
b1353a35da Mart*0226 CALL READ_REC_XZ_RL(fn,prec,Nr,OBNtStevens, 2,myIter,myThid)
0227 CALL READ_REC_XZ_RL(fn,prec,Nr,OBNsStevens, 3,myIter,myThid)
2c64c37c71 Mart*0228 ENDIF
0229 #endif /* ALLOW_OBCS_NORTH */
0230
0231 #ifdef ALLOW_OBCS_SOUTH
0232 IF ( useStevensSouth ) THEN
0233 WRITE(fn,'(2A)') 'pickup_stevensS.',suff
0234 CALL READ_REC_XZ_RL(fn,prec,Nr,OBSvStevens, 1,myIter,myThid)
b1353a35da Mart*0235 CALL READ_REC_XZ_RL(fn,prec,Nr,OBStStevens, 2,myIter,myThid)
0236 CALL READ_REC_XZ_RL(fn,prec,Nr,OBSsStevens, 3,myIter,myThid)
2c64c37c71 Mart*0237 ENDIF
0238 #endif /* ALLOW_OBCS_SOUTH */
0239
0240 #ifdef ALLOW_OBCS_EAST
0241 IF ( useStevensEast ) THEN
0242 WRITE(fn,'(2A)') 'pickup_stevensE.',suff
0243 CALL READ_REC_YZ_RL(fn,prec,Nr,OBEuStevens, 1,myIter,myThid)
b1353a35da Mart*0244 CALL READ_REC_YZ_RL(fn,prec,Nr,OBEtStevens, 2,myIter,myThid)
0245 CALL READ_REC_YZ_RL(fn,prec,Nr,OBEsStevens, 3,myIter,myThid)
2c64c37c71 Mart*0246 ENDIF
0247 #endif /* ALLOW_OBCS_EAST */
0248
0249 #ifdef ALLOW_OBCS_WEST
0250 IF ( useStevensWest ) THEN
0251 WRITE(fn,'(2A)') 'pickup_stevensW.',suff
0252 CALL READ_REC_YZ_RL(fn,prec,Nr,OBWuStevens, 1,myIter,myThid)
b1353a35da Mart*0253 CALL READ_REC_YZ_RL(fn,prec,Nr,OBWtStevens, 2,myIter,myThid)
0254 CALL READ_REC_YZ_RL(fn,prec,Nr,OBWsStevens, 3,myIter,myThid)
2c64c37c71 Mart*0255 ENDIF
0256 #endif /* ALLOW_OBCS_WEST */
0257 #endif /* ALLOW_OBCS_STEVENS */
3221ad5c59 Jean*0258
58a0264bb8 Jean*0259
0260 _BARRIER
0261
2c64c37c71 Mart*0262 #endif /* ALLOW_ORLANSKI or ALLOW_OBCS_STEVENS */
3221ad5c59 Jean*0263 RETURN
0264 END