File indexing completed on 2026-02-06 06:08:13 UTC
view on githubraw file Latest commit 642de414 on 2026-02-05 21:35:24 UTC
b4daa24319 Shre*0001 #include "PACKAGES_CONFIG.h"
0002 #include "CPP_EEOPTIONS.h"
0003
0004
0005
0006
0007
0008
6a9e386e2e dngo*0009
0010
b4daa24319 Shre*0011
0012
6a9e386e2e dngo*0013
0014
b4daa24319 Shre*0015
6a9e386e2e dngo*0016
0017
b4daa24319 Shre*0018
0019
0020
0021 SUBROUTINE EXCH1_UV_RL_CUBE_B(
0022 U Uarray, Uarrayb, Varray, Varrayb,
0023 I withSigns,
0024 I myOLw, myOLe, myOLs, myOLn,
0025 I myNz, exchwidthx,exchWidthY,
0026 I cornerMode, myThid )
0027 IMPLICIT NONE
0028 #include "SIZE.h"
0029 #include "EEPARAMS.h"
0030
0031 INTEGER myOLw, myOLe, myOLs, myOLn, myNz
0032 _RL Uarray( 1-myOLw:sNx+myOLe,
0033 & 1-myOLs:sNy+myOLn,
0034 & myNz, nSx, nSy )
0035 _RL Uarrayb( 1-myOLw:sNx+myOLe,
0036 & 1-myOLs:sNy+myOLn,
0037 & myNz, nSx, nSy )
0038 _RL Varray( 1-myOLw:sNx+myOLe,
0039 & 1-myOLs:sNy+myOLn,
0040 & myNz, nSx, nSy )
0041 _RL Varrayb( 1-myOLw:sNx+myOLe,
0042 & 1-myOLs:sNy+myOLn,
0043 & myNz, nSx, nSy )
0044 LOGICAL withSigns
0045 INTEGER exchWidthX
0046 INTEGER exchWidthY
0047 INTEGER cornerMode
0048 INTEGER myThid
0049
0050 CALL EXCH1_UV_RL_CUBE_AD(
0051 U Uarrayb, Varrayb,
0052 I withSigns,
0053 I myOLw, myOLe, myOLs, myOLn, myNz,
0054 I exchWidthX, exchWidthY,
0055 I cornerMode, myThid )
6a9e386e2e dngo*0056
0057 RETURN
b4daa24319 Shre*0058 END
0059
0060
0061
0062 SUBROUTINE EXCH1_UV_RS_CUBE_B(
0063 U Uarray, Uarrayb, Varray, Varrayb,
0064 I withSigns,
0065 I myOLw, myOLe, myOLs, myOLn,
0066 I myNz, exchwidthx,exchWidthY,
0067 I cornerMode, myThid )
0068 IMPLICIT NONE
0069 #include "SIZE.h"
0070 #include "EEPARAMS.h"
0071
0072 INTEGER myOLw, myOLe, myOLs, myOLn, myNz
0073 _RS Uarray( 1-myOLw:sNx+myOLe,
0074 & 1-myOLs:sNy+myOLn,
0075 & myNz, nSx, nSy )
0076 _RS Uarrayb( 1-myOLw:sNx+myOLe,
0077 & 1-myOLs:sNy+myOLn,
0078 & myNz, nSx, nSy )
0079 _RS Varray( 1-myOLw:sNx+myOLe,
0080 & 1-myOLs:sNy+myOLn,
0081 & myNz, nSx, nSy )
0082 _RS Varrayb( 1-myOLw:sNx+myOLe,
0083 & 1-myOLs:sNy+myOLn,
0084 & myNz, nSx, nSy )
0085 LOGICAL withSigns
0086 INTEGER exchWidthX
0087 INTEGER exchWidthY
0088 INTEGER cornerMode
0089 INTEGER myThid
0090
0091 CALL EXCH1_UV_RS_CUBE_AD(
0092 U Uarrayb, Varrayb,
0093 I withSigns,
0094 I myOLw, myOLe, myOLs, myOLn, myNz,
0095 I exchWidthX, exchWidthY,
0096 I cornerMode, myThid )
6a9e386e2e dngo*0097
0098 RETURN
b4daa24319 Shre*0099 END
0100
0101
0102
0103 SUBROUTINE EXCH1_RL_CUBE_B(
0104 U array, arrayb,
0105 I withSigns,
0106 I myOLw, myOLe, myOLs, myOLn, myNz,
0107 I exchWidthX, exchWidthY,
0108 I cornerMode, myThid )
0109 IMPLICIT NONE
0110 #include "SIZE.h"
0111 #include "EEPARAMS.h"
0112
0113 INTEGER myOLw, myOLe, myOLs, myOLn, myNz
0114 _RL array( 1-myOLw:sNx+myOLe,
0115 & 1-myOLs:sNy+myOLn,
0116 & myNz, nSx, nSy )
0117 _RL arrayb( 1-myOLw:sNx+myOLe,
0118 & 1-myOLs:sNy+myOLn,
0119 & myNz, nSx, nSy )
0120 LOGICAL withSigns
0121 INTEGER exchWidthX
0122 INTEGER exchWidthY
0123 INTEGER cornerMode
0124 INTEGER myThid
0125
0126 CALL EXCH1_RL_CUBE_AD(
0127 U arrayb,
0128 I withSigns,
0129 I myOLw, myOLe, myOLs, myOLn, myNz,
0130 I exchWidthX, exchWidthY,
0131 I cornerMode, myThid )
6a9e386e2e dngo*0132
0133 RETURN
0134 END
0135
0136
0137
0138 SUBROUTINE EXCH1_RL_CUBE_FWD(
0139 U array,
0140 I withSigns,
0141 I myOLw, myOLe, myOLs, myOLn, myNz,
0142 I exchWidthX, exchWidthY,
0143 I cornerMode, myThid )
0144 IMPLICIT NONE
0145 #include "SIZE.h"
0146 #include "EEPARAMS.h"
0147
0148 INTEGER myOLw, myOLe, myOLs, myOLn, myNz
0149 _RL array( 1-myOLw:sNx+myOLe,
0150 & 1-myOLs:sNy+myOLn,
0151 & myNz, nSx, nSy )
0152 LOGICAL withSigns
0153 INTEGER exchWidthX
0154 INTEGER exchWidthY
0155 INTEGER cornerMode
0156 INTEGER myThid
0157
0158 #ifdef ALLOW_TAPENADE
0159
0160
0161
0162
0163 CALL PUSHBOOLEAN(withSigns)
0164 CALL PUSHINTEGER4(myOLw)
0165 CALL PUSHINTEGER4(myOLe)
0166 CALL PUSHINTEGER4(myOLs)
0167 CALL PUSHINTEGER4(myOLn)
0168 CALL PUSHINTEGER4(myNz)
0169 CALL PUSHINTEGER4(exchWidthX)
0170 CALL PUSHINTEGER4(exchWidthY)
0171 CALL PUSHINTEGER4(cornerMode)
0172 CALL PUSHINTEGER4(myThid)
0173 CALL EXCH1_RL_CUBE(
0174 U array,
0175 I withSigns,
0176 I myOLw, myOLe, myOLs, myOLn, myNz,
0177 I exchWidthX, exchWidthY,
0178 I cornerMode, myThid )
0179 #endif
0180
0181 RETURN
0182 END
0183
0184
0185
0186 SUBROUTINE EXCH1_RL_CUBE_BWD(
0187 U array, arrayb,
0188 I withSigns,
0189 I myOLw, myOLe, myOLs, myOLn, myNz,
0190 I exchWidthX, exchWidthY,
0191 I cornerMode, myThid )
0192 IMPLICIT NONE
0193 #include "SIZE.h"
0194 #include "EEPARAMS.h"
0195
0196 INTEGER myOLw, myOLe, myOLs, myOLn, myNz
0197 _RL array( 1-myOLw:sNx+myOLe,
0198 & 1-myOLs:sNy+myOLn,
0199 & myNz, nSx, nSy )
0200 _RL arrayb( 1-myOLw:sNx+myOLe,
0201 & 1-myOLs:sNy+myOLn,
0202 & myNz, nSx, nSy )
0203 LOGICAL withSigns
0204 INTEGER exchWidthX
0205 INTEGER exchWidthY
0206 INTEGER cornerMode
0207 INTEGER myThid
0208
0209 #ifdef ALLOW_TAPENADE
0210 CALL POPBOOLEAN(withSigns)
0211 CALL POPINTEGER4(myOLw)
0212 CALL POPINTEGER4(myOLe)
0213 CALL POPINTEGER4(myOLs)
0214 CALL POPINTEGER4(myOLn)
0215 CALL POPINTEGER4(myNz)
0216 CALL POPINTEGER4(exchWidthX)
0217 CALL POPINTEGER4(exchWidthY)
0218 CALL POPINTEGER4(cornerMode)
0219 CALL POPINTEGER4(myThid)
0220 CALL EXCH1_RL_CUBE_AD(
0221 U arrayb,
0222 I withSigns,
0223 I myOLw, myOLe, myOLs, myOLn, myNz,
0224 I exchWidthX, exchWidthY,
0225 I cornerMode, myThid )
0226
0227
0228
0229 #endif
0230
0231 RETURN
b4daa24319 Shre*0232 END
0233
0234
0235
0236 SUBROUTINE EXCH1_RS_CUBE_B(
0237 U array, arrayb,
0238 I withSigns,
0239 I myOLw, myOLe, myOLs, myOLn, myNz,
0240 I exchWidthX, exchWidthY,
0241 I cornerMode, myThid )
0242 IMPLICIT NONE
0243 #include "SIZE.h"
0244 #include "EEPARAMS.h"
0245
0246 INTEGER myOLw, myOLe, myOLs, myOLn, myNz
0247 _RS array( 1-myOLw:sNx+myOLe,
0248 & 1-myOLs:sNy+myOLn,
0249 & myNz, nSx, nSy )
0250 _RS arrayb( 1-myOLw:sNx+myOLe,
0251 & 1-myOLs:sNy+myOLn,
0252 & myNz, nSx, nSy )
0253 LOGICAL withSigns
0254 INTEGER exchWidthX
0255 INTEGER exchWidthY
0256 INTEGER cornerMode
0257 INTEGER myThid
0258
0259 CALL EXCH1_RS_CUBE_AD(
0260 U arrayb,
0261 I withSigns,
0262 I myOLw, myOLe, myOLs, myOLn, myNz,
0263 I exchWidthX, exchWidthY,
0264 I cornerMode, myThid )
6a9e386e2e dngo*0265
0266 RETURN
b4daa24319 Shre*0267 END
0268
0269
0270
0271 SUBROUTINE EXCH1_RL_B(array, arrayb,
0272 & myOLw, myOLe, myOLs, myOLn, myNz,
0273 & exchWidthX, exchWidthY, cornerMode, myThid)
0274 IMPLICIT NONE
0275 #include "SIZE.h"
0276 #include "EEPARAMS.h"
0277 #include "EXCH.h"
0278 INTEGER myOLw, myOLe, myOLs, myOLn, myNz
0279 _RL array( 1-myOLw:sNx+myOLe,
0280 & 1-myOLs:sNy+myOLn,
0281 & myNz, nSx, nSy )
0282 _RL arrayb( 1-myOLw:sNx+myOLe,
0283 & 1-myOLs:sNy+myOLn,
0284 & myNz, nSx, nSy )
0285 INTEGER exchWidthX
0286 INTEGER exchWidthY
0287 INTEGER cornerMode
0288 INTEGER myThid
0289
0290 CALL EXCH1_RL_AD(arrayb,myOLw, myOLe, myOLs, myOLn,
0291 & myNz, exchWidthX , exchWidthY, cornerMode, myThid )
6a9e386e2e dngo*0292
0293 RETURN
0294 END
0295
0296
0297
0298 SUBROUTINE EXCH1_RL_FWD(array,
0299 & myOLw, myOLe, myOLs, myOLn, myNz,
0300 & exchWidthX, exchWidthY, cornerMode, myThid)
0301 IMPLICIT NONE
0302 #include "SIZE.h"
0303 #include "EEPARAMS.h"
0304 #include "EXCH.h"
0305 INTEGER myOLw, myOLe, myOLs, myOLn, myNz
0306 _RL array( 1-myOLw:sNx+myOLe,
0307 & 1-myOLs:sNy+myOLn,
0308 & myNz, nSx, nSy )
0309 INTEGER exchWidthX
0310 INTEGER exchWidthY
0311 INTEGER cornerMode
0312 INTEGER myThid
0313
0314 #ifdef ALLOW_TAPENADE
0315
0316
0317
0318
0319 CALL PUSHINTEGER4(myOLw)
0320 CALL PUSHINTEGER4(myOLe)
0321 CALL PUSHINTEGER4(myOLs)
0322 CALL PUSHINTEGER4(myOLn)
0323 CALL PUSHINTEGER4(myNz)
0324 CALL PUSHINTEGER4(exchWidthX)
0325 CALL PUSHINTEGER4(exchWidthY)
0326 CALL PUSHINTEGER4(cornerMode)
0327 CALL PUSHINTEGER4(myThid)
0328 CALL EXCH1_RL(array, myOLw, myOLe, myOLs, myOLn,
0329 & myNz, exchWidthX , exchWidthY, cornerMode, myThid )
0330 #endif
0331
0332 RETURN
0333 END
0334
0335
0336
0337 SUBROUTINE EXCH1_RL_BWD(array, arrayb,
0338 & myOLw, myOLe, myOLs, myOLn, myNz,
0339 & exchWidthX, exchWidthY, cornerMode, myThid)
0340 IMPLICIT NONE
0341 #include "SIZE.h"
0342 #include "EEPARAMS.h"
0343 #include "EXCH.h"
0344 INTEGER myOLw, myOLe, myOLs, myOLn, myNz
0345 _RL array( 1-myOLw:sNx+myOLe,
0346 & 1-myOLs:sNy+myOLn,
0347 & myNz, nSx, nSy )
0348 _RL arrayb( 1-myOLw:sNx+myOLe,
0349 & 1-myOLs:sNy+myOLn,
0350 & myNz, nSx, nSy )
0351 INTEGER exchWidthX
0352 INTEGER exchWidthY
0353 INTEGER cornerMode
0354 INTEGER myThid
642de41482 dngo*0355 #ifdef ALLOW_TAPENADE
6a9e386e2e dngo*0356 INTEGER tempCM
0357
0358 CALL POPINTEGER4(myThid)
0359 CALL POPINTEGER4(tempCM)
0360 CALL POPINTEGER4(exchWidthY)
0361 CALL POPINTEGER4(exchWidthX)
0362 CALL POPINTEGER4(myNz)
0363 CALL POPINTEGER4(myOLn)
0364 CALL POPINTEGER4(myOLs)
0365 CALL POPINTEGER4(myOLe)
0366 CALL POPINTEGER4(myOLw)
0367 CALL EXCH1_RL_AD(arrayb, myOLw, myOLe, myOLs, myOLn,
0368 & myNz, exchWidthX , exchWidthY, tempCM, myThid )
0369
0370
0371
0372 #endif
0373
0374 RETURN
b4daa24319 Shre*0375 END
0376
0377
0378
0379 SUBROUTINE EXCH1_RS_B(array, arrayb,
0380 & myOLw, myOLe, myOLs, myOLn, myNz,
0381 & exchWidthX, exchWidthY,
0382 & cornerMode, myThid)
0383 IMPLICIT NONE
0384 #include "SIZE.h"
0385 #include "EEPARAMS.h"
0386 #include "EXCH.h"
0387 INTEGER myOLw, myOLe, myOLs, myOLn, myNz
be017afa44 Jean*0388 _RS array( 1-myOLw:sNx+myOLe,
b4daa24319 Shre*0389 & 1-myOLs:sNy+myOLn,
0390 & myNz, nSx, nSy )
be017afa44 Jean*0391 _RS arrayb( 1-myOLw:sNx+myOLe,
b4daa24319 Shre*0392 & 1-myOLs:sNy+myOLn,
0393 & myNz, nSx, nSy )
0394 INTEGER exchWidthX
0395 INTEGER exchWidthY
0396 INTEGER cornerMode
0397 INTEGER myThid
0398
0399 CALL EXCH1_RS_AD(arrayb, myOLw, myOLe, myOLs,
0400 & myOLn, myNz, exchWidthX, exchWidthY,
0401 & cornerMode, myThid)
6a9e386e2e dngo*0402
0403 RETURN
0404 END
0405
0406
0407
0408 SUBROUTINE EXCH1_RS_FWD(array,
0409 & myOLw, myOLe, myOLs, myOLn, myNz,
0410 & exchWidthX, exchWidthY, cornerMode, myThid)
0411 IMPLICIT NONE
0412 #include "SIZE.h"
0413 #include "EEPARAMS.h"
0414 #include "EXCH.h"
0415 INTEGER myOLw, myOLe, myOLs, myOLn, myNz
0416 _RS array( 1-myOLw:sNx+myOLe,
0417 & 1-myOLs:sNy+myOLn,
0418 & myNz, nSx, nSy )
0419 INTEGER exchWidthX
0420 INTEGER exchWidthY
0421 INTEGER cornerMode
0422 INTEGER myThid
0423
0424 #ifdef ALLOW_TAPENADE
0425
0426
0427
0428
0429 CALL PUSHINTEGER4(myOLw)
0430 CALL PUSHINTEGER4(myOLe)
0431 CALL PUSHINTEGER4(myOLs)
0432 CALL PUSHINTEGER4(myOLn)
0433 CALL PUSHINTEGER4(myNz)
0434 CALL PUSHINTEGER4(exchWidthX)
0435 CALL PUSHINTEGER4(exchWidthY)
0436 CALL PUSHINTEGER4(cornerMode)
0437 CALL PUSHINTEGER4(myThid)
0438 CALL EXCH1_RS(array, myOLw, myOLe, myOLs, myOLn,
0439 & myNz, exchWidthX , exchWidthY, cornerMode, myThid )
0440 #endif
0441
0442 RETURN
0443 END
0444
0445
0446
0447 SUBROUTINE EXCH1_RS_BWD(array, arrayb,
0448 & myOLw, myOLe, myOLs, myOLn, myNz,
0449 & exchWidthX, exchWidthY, cornerMode, myThid)
0450 IMPLICIT NONE
0451 #include "SIZE.h"
0452 #include "EEPARAMS.h"
0453 #include "EXCH.h"
0454 INTEGER myOLw, myOLe, myOLs, myOLn, myNz
0455 _RS array( 1-myOLw:sNx+myOLe,
0456 & 1-myOLs:sNy+myOLn,
0457 & myNz, nSx, nSy )
0458 _RS arrayb( 1-myOLw:sNx+myOLe,
0459 & 1-myOLs:sNy+myOLn,
0460 & myNz, nSx, nSy )
0461 INTEGER exchWidthX
0462 INTEGER exchWidthY
0463 INTEGER cornerMode
0464 INTEGER myThid
642de41482 dngo*0465 #ifdef ALLOW_TAPENADE
6a9e386e2e dngo*0466 INTEGER tempCM
0467
0468 CALL POPINTEGER4(myThid)
0469 CALL POPINTEGER4(tempCM)
0470 CALL POPINTEGER4(exchWidthY)
0471 CALL POPINTEGER4(exchWidthX)
0472 CALL POPINTEGER4(myNz)
0473 CALL POPINTEGER4(myOLn)
0474 CALL POPINTEGER4(myOLs)
0475 CALL POPINTEGER4(myOLe)
0476 CALL POPINTEGER4(myOLw)
0477 CALL EXCH1_RS_AD(arrayb, myOLw, myOLe, myOLs, myOLn,
0478 & myNz, exchWidthX , exchWidthY, cornerMode, myThid )
0479
0480 #endif
0481
0482 RETURN
b4daa24319 Shre*0483 END