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