File indexing completed on 2024-03-02 06:10:09 UTC
view on githubraw file Latest commit 5cf43646 on 2024-03-01 18:50:49 UTC
6d54cf9ca1 Ed H*0001 #include "AUTODIFF_OPTIONS.h"
bead363026 Jean*0002 #ifdef ALLOW_CTRL
0003 # include "CTRL_OPTIONS.h"
0004 #endif
4158fdaabc Patr*0005
761964351d Jean*0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 SUBROUTINE ACTIVE_READ_XZ_RL(
0028 I activeVar_file,
0029 O active_var,
0030 I globalFile,
0031 I useCurrentDir,
0032 I lAdInit,
0033 I iRec,
0034 I myNr,
0035 I theSimulationMode,
0036 I myOptimIter,
0037 I myThid )
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053 IMPLICIT NONE
0054
0055
4158fdaabc Patr*0056 #include "EEPARAMS.h"
0057 #include "SIZE.h"
0058 #include "PARAMS.h"
5cf4364659 Mart*0059 #include "CTRL_SIZE.h"
4d72283393 Mart*0060 #include "CTRL.h"
4158fdaabc Patr*0061
761964351d Jean*0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075 CHARACTER*(*) activeVar_file
0076 INTEGER myNr
0077 _RL active_var(1-OLx:sNx+OLx,myNr,nSx,nSy)
0078 LOGICAL globalFile
0079 LOGICAL useCurrentDir
0080 LOGICAL lAdInit
0081 INTEGER iRec
0082 INTEGER theSimulationMode
0083 INTEGER myOptimIter
0084 INTEGER myThid
0085
0086
0087 CHARACTER*(2) adpref
de57a2ec4b Mart*0088 CHARACTER*(MAX_LEN_FNAM) adfname
761964351d Jean*0089 INTEGER bi,bj
0090 INTEGER i,k
0091 INTEGER prec
0092 LOGICAL w_globFile
0093 _RS dummyRS(1)
0094 _RL active_data_t(1-OLx:sNx+OLx,myNr,nSx,nSy)
0095
0096
0097
0098 prec = ctrlprec
4158fdaabc Patr*0099
761964351d Jean*0100
0101 IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN
0102
0103
0104 CALL MDS_READ_SEC_XZ(
0105 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0106 I 'RL', myNr, 1, myNr,
761964351d Jean*0107 O active_var, dummyRS,
0108 I iRec, myThid )
0109
0110 IF ( lAdInit ) THEN
0111
0112
0113
0114 DO bj = myByLo(myThid), myByHi(myThid)
0115 DO bi = myBxLo(myThid), myBxHi(myThid)
0116 DO k = 1, myNr
0117 DO i=1,sNx
0118 active_data_t(i,k,bi,bj) = 0. _d 0
0119 ENDDO
0120 ENDDO
0121 ENDDO
0122 ENDDO
0123
f9d7cbfb72 Ou W*0124 adpref = 'ad'
0125 CALL ADD_PREFIX( adpref, activeVar_file, adfname )
761964351d Jean*0126 CALL MDS_WRITE_SEC_XZ(
0127 I adfname, prec, globalFile, useCurrentDir,
57622776fd Jean*0128 I 'RL', myNr, 1, myNr,
761964351d Jean*0129 I active_data_t, dummyRS,
0130 I iRec, myOptimIter, myThid )
0131
0132 ENDIF
0133
0134 ENDIF
0135
0136
0137 IF (theSimulationMode .EQ. REVERSE_SIMULATION) THEN
0138
0139 CALL MDS_READ_SEC_XZ(
0140 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0141 I 'RL', myNr, 1, myNr,
761964351d Jean*0142 O active_data_t, dummyRS,
0143 I iRec, myThid )
0144
0145
0146 DO bj = myByLo(myThid), myByHi(myThid)
0147 DO bi = myBxLo(myThid), myBxHi(myThid)
0148 DO k = 1, myNr
0149 DO i=1,sNx
0150 active_data_t(i,k,bi,bj) = active_data_t(i,k,bi,bj)
0151 & + active_var(i,k,bi,bj)
0152 ENDDO
0153 ENDDO
0154 ENDDO
0155 ENDDO
0156
0157
0158 w_globFile = .FALSE.
0159 CALL MDS_WRITE_SEC_XZ(
0160 I activeVar_file, prec, w_globFile, useCurrentDir,
57622776fd Jean*0161 I 'RL', myNr, 1, myNr,
761964351d Jean*0162 I active_data_t, dummyRS,
0163 I iRec, myOptimIter, myThid )
0164
0165
0166 DO bj = myByLo(myThid), myByHi(myThid)
0167 DO bi = myBxLo(myThid), myBxHi(myThid)
0168 DO k = 1, myNr
0169 DO i=1,sNx
0170 active_var(i,k,bi,bj) = 0 _d 0
0171 ENDDO
0172 ENDDO
0173 ENDDO
0174 ENDDO
0175
0176 ENDIF
0177
0178
0179 IF (theSimulationMode .EQ. TANGENT_SIMULATION) THEN
0180
0181 CALL MDS_READ_SEC_XZ(
0182 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0183 I 'RL', myNr, 1, myNr,
761964351d Jean*0184 O active_var, dummyRS,
0185 I iRec, myThid )
0186 ENDIF
0187
0188 RETURN
0189 END
0190
0191
0192
0193
0194
0195 SUBROUTINE ACTIVE_READ_XZ_RS(
0196 I activeVar_file,
0197 O active_var,
0198 I globalFile,
0199 I useCurrentDir,
0200 I lAdInit,
0201 I iRec,
0202 I myNr,
0203 I theSimulationMode,
0204 I myOptimIter,
0205 I myThid )
0206
0207
0208
0209
0210
0211
0212
0213
0214
0215
0216
0217
0218
0219
0220
0221
0222 IMPLICIT NONE
0223
0224
4158fdaabc Patr*0225 #include "EEPARAMS.h"
0226 #include "SIZE.h"
0227 #include "PARAMS.h"
5cf4364659 Mart*0228 #include "CTRL_SIZE.h"
4d72283393 Mart*0229 #include "CTRL.h"
4158fdaabc Patr*0230
761964351d Jean*0231
0232
0233
0234
0235
0236
0237
0238
0239
0240
0241
0242
0243
0244 CHARACTER*(*) activeVar_file
0245 INTEGER myNr
0246 _RS active_var(1-OLx:sNx+OLx,myNr,nSx,nSy)
0247 LOGICAL globalFile
0248 LOGICAL useCurrentDir
0249 LOGICAL lAdInit
0250 INTEGER iRec
0251 INTEGER theSimulationMode
0252 INTEGER myOptimIter
0253 INTEGER myThid
0254
0255
0256 CHARACTER*(2) adpref
de57a2ec4b Mart*0257 CHARACTER*(MAX_LEN_FNAM) adfname
761964351d Jean*0258 INTEGER bi,bj
0259 INTEGER i,k
0260 INTEGER prec
0261 LOGICAL w_globFile
0262 _RS active_data_t(1-OLx:sNx+OLx,myNr,nSx,nSy)
0263 _RL dummyRL(1)
0264
0265
0266
0267 prec = ctrlprec
4158fdaabc Patr*0268
761964351d Jean*0269
0270 IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN
0271
0272
0273 CALL MDS_READ_SEC_XZ(
0274 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0275 I 'RS', myNr, 1, myNr,
761964351d Jean*0276 O dummyRL, active_var,
0277 I iRec, myThid )
0278
0279 IF ( lAdInit ) THEN
0280
0281
0282
0283 DO bj = myByLo(myThid), myByHi(myThid)
0284 DO bi = myBxLo(myThid), myBxHi(myThid)
0285 DO k = 1, myNr
0286 DO i=1,sNx
0287 active_data_t(i,k,bi,bj) = 0. _d 0
0288 ENDDO
0289 ENDDO
0290 ENDDO
0291 ENDDO
0292
f9d7cbfb72 Ou W*0293 adpref = 'ad'
0294 CALL ADD_PREFIX( adpref, activeVar_file, adfname )
761964351d Jean*0295 CALL MDS_WRITE_SEC_XZ(
0296 I adfname, prec, globalFile, useCurrentDir,
57622776fd Jean*0297 I 'RS', myNr, 1, myNr,
761964351d Jean*0298 I dummyRL, active_data_t,
0299 I iRec, myOptimIter, myThid )
0300
0301 ENDIF
0302
0303 ENDIF
0304
0305
0306 IF (theSimulationMode .EQ. REVERSE_SIMULATION) THEN
0307
0308 CALL MDS_READ_SEC_XZ(
0309 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0310 I 'RS', myNr, 1, myNr,
761964351d Jean*0311 O dummyRL, active_data_t,
0312 I iRec, myThid )
0313
0314
0315 DO bj = myByLo(myThid), myByHi(myThid)
0316 DO bi = myBxLo(myThid), myBxHi(myThid)
0317 DO k = 1, myNr
0318 DO i=1,sNx
0319 active_data_t(i,k,bi,bj) = active_data_t(i,k,bi,bj)
0320 & + active_var(i,k,bi,bj)
0321 ENDDO
0322 ENDDO
0323 ENDDO
0324 ENDDO
0325
0326
0327 w_globFile = .FALSE.
0328 CALL MDS_WRITE_SEC_XZ(
0329 I activeVar_file, prec, w_globFile, useCurrentDir,
57622776fd Jean*0330 I 'RS', myNr, 1, myNr,
761964351d Jean*0331 I dummyRL, active_data_t,
0332 I iRec, myOptimIter, myThid )
0333
0334
0335 DO bj = myByLo(myThid), myByHi(myThid)
0336 DO bi = myBxLo(myThid), myBxHi(myThid)
0337 DO k = 1, myNr
0338 DO i=1,sNx
0339 active_var(i,k,bi,bj) = 0 _d 0
0340 ENDDO
0341 ENDDO
0342 ENDDO
0343 ENDDO
0344
0345 ENDIF
0346
0347
0348 IF (theSimulationMode .EQ. TANGENT_SIMULATION) THEN
0349
0350 CALL MDS_READ_SEC_XZ(
0351 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0352 I 'RS', myNr, 1, myNr,
761964351d Jean*0353 O dummyRL, active_var,
0354 I iRec, myThid )
0355 ENDIF
0356
0357 RETURN
0358 END
0359
0360
0361
0362
0363
0364 SUBROUTINE ACTIVE_READ_YZ_RL(
0365 I activeVar_file,
0366 O active_var,
0367 I globalFile,
0368 I useCurrentDir,
0369 I lAdInit,
0370 I iRec,
0371 I myNr,
0372 I theSimulationMode,
0373 I myOptimIter,
0374 I myThid )
0375
0376
0377
0378
0379
0380
0381
0382
0383
0384
0385
0386
0387
0388
0389
0390 IMPLICIT NONE
0391
0392
4158fdaabc Patr*0393 #include "EEPARAMS.h"
0394 #include "SIZE.h"
0395 #include "PARAMS.h"
5cf4364659 Mart*0396 #include "CTRL_SIZE.h"
4d72283393 Mart*0397 #include "CTRL.h"
4158fdaabc Patr*0398
761964351d Jean*0399
0400
0401
0402
0403
0404
0405
0406
0407
0408
0409
0410
0411
0412 CHARACTER*(*) activeVar_file
0413 INTEGER myNr
0414 _RL active_var(1-OLy:sNy+OLy,myNr,nSx,nSy)
0415 LOGICAL globalFile
0416 LOGICAL useCurrentDir
0417 LOGICAL lAdInit
0418 INTEGER iRec
0419 INTEGER theSimulationMode
0420 INTEGER myOptimIter
0421 INTEGER myThid
0422
0423
0424 CHARACTER*(2) adpref
de57a2ec4b Mart*0425 CHARACTER*(MAX_LEN_FNAM) adfname
761964351d Jean*0426 INTEGER bi,bj
0427 INTEGER j,k
0428 INTEGER prec
0429 LOGICAL w_globFile
0430 _RS dummyRS(1)
0431 _RL active_data_t(1-OLy:sNy+OLy,myNr,nSx,nSy)
0432
0433
0434
0435 prec = ctrlprec
4158fdaabc Patr*0436
761964351d Jean*0437
0438 IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN
0439
0440
0441 CALL MDS_READ_SEC_YZ(
0442 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0443 I 'RL', myNr, 1, myNr,
761964351d Jean*0444 O active_var, dummyRS,
0445 I iRec, myThid )
0446
0447 IF ( lAdInit ) THEN
0448
0449
0450
0451 DO bj = myByLo(myThid), myByHi(myThid)
0452 DO bi = myBxLo(myThid), myBxHi(myThid)
0453 DO k = 1, myNr
0454 DO j=1,sNy
0455 active_data_t(j,k,bi,bj) = 0. _d 0
0456 ENDDO
0457 ENDDO
0458 ENDDO
0459 ENDDO
0460
f9d7cbfb72 Ou W*0461 adpref = 'ad'
0462 CALL ADD_PREFIX( adpref, activeVar_file, adfname )
761964351d Jean*0463 CALL MDS_WRITE_SEC_YZ(
0464 I adfname, prec, globalFile, useCurrentDir,
57622776fd Jean*0465 I 'RL', myNr, 1, myNr,
761964351d Jean*0466 I active_data_t, dummyRS,
0467 I iRec, myOptimIter, myThid )
0468
0469 ENDIF
0470
0471 ENDIF
0472
0473
0474 IF (theSimulationMode .EQ. REVERSE_SIMULATION) THEN
0475
0476 CALL MDS_READ_SEC_YZ(
0477 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0478 I 'RL', myNr, 1, myNr,
761964351d Jean*0479 O active_data_t, dummyRS,
0480 I iRec, myThid )
0481
0482
0483 DO bj = myByLo(myThid), myByHi(myThid)
0484 DO bi = myBxLo(myThid), myBxHi(myThid)
0485 DO k = 1, myNr
0486 DO j=1,sNy
0487 active_data_t(j,k,bi,bj) = active_data_t(j,k,bi,bj)
0488 & + active_var(j,k,bi,bj)
0489 ENDDO
0490 ENDDO
0491 ENDDO
0492 ENDDO
0493
0494
0495 w_globFile = .FALSE.
0496 CALL MDS_WRITE_SEC_YZ(
0497 I activeVar_file, prec, w_globFile, useCurrentDir,
57622776fd Jean*0498 I 'RL', myNr, 1, myNr,
761964351d Jean*0499 I active_data_t, dummyRS,
0500 I iRec, myOptimIter, myThid )
0501
0502
0503 DO bj = myByLo(myThid), myByHi(myThid)
0504 DO bi = myBxLo(myThid), myBxHi(myThid)
0505 DO k = 1, myNr
0506 DO j=1,sNy
0507 active_var(j,k,bi,bj) = 0 _d 0
0508 ENDDO
0509 ENDDO
0510 ENDDO
0511 ENDDO
0512
0513 ENDIF
0514
0515
0516 IF (theSimulationMode .EQ. TANGENT_SIMULATION) THEN
0517
0518 CALL MDS_READ_SEC_YZ(
0519 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0520 I 'RL', myNr, 1, myNr,
761964351d Jean*0521 O active_var, dummyRS,
0522 I iRec, myThid )
0523 ENDIF
0524
0525 RETURN
0526 END
0527
0528
0529
0530
0531
0532 SUBROUTINE ACTIVE_READ_YZ_RS(
0533 I activeVar_file,
0534 O active_var,
0535 I globalFile,
0536 I useCurrentDir,
0537 I lAdInit,
0538 I iRec,
0539 I myNr,
0540 I theSimulationMode,
0541 I myOptimIter,
0542 I myThid )
0543
0544
0545
0546
0547
0548
0549
0550
0551
0552
0553
0554
0555
0556
0557
0558
0559 IMPLICIT NONE
0560
0561
0562 #include "EEPARAMS.h"
0563 #include "SIZE.h"
0564 #include "PARAMS.h"
5cf4364659 Mart*0565 #include "CTRL_SIZE.h"
4d72283393 Mart*0566 #include "CTRL.h"
4158fdaabc Patr*0567
761964351d Jean*0568
0569
0570
0571
0572
0573
0574
0575
0576
0577
0578
0579
0580
0581 CHARACTER*(*) activeVar_file
0582 INTEGER myNr
0583 _RS active_var(1-OLy:sNy+OLy,myNr,nSx,nSy)
0584 LOGICAL globalFile
0585 LOGICAL useCurrentDir
0586 LOGICAL lAdInit
0587 INTEGER iRec
0588 INTEGER theSimulationMode
0589 INTEGER myOptimIter
0590 INTEGER myThid
0591
0592
0593 CHARACTER*(2) adpref
de57a2ec4b Mart*0594 CHARACTER*(MAX_LEN_FNAM) adfname
761964351d Jean*0595 INTEGER bi,bj
0596 INTEGER j,k
0597 INTEGER prec
0598 LOGICAL w_globFile
0599 _RS active_data_t(1-OLy:sNy+OLy,myNr,nSx,nSy)
0600 _RL dummyRL(1)
0601
0602
0603
0604 prec = ctrlprec
4158fdaabc Patr*0605
761964351d Jean*0606
0607 IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN
0608
0609
0610 CALL MDS_READ_SEC_YZ(
0611 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0612 I 'RS', myNr, 1, myNr,
761964351d Jean*0613 O dummyRL, active_var,
0614 I iRec, myThid )
0615
0616 IF ( lAdInit ) THEN
0617
0618
0619
0620 DO bj = myByLo(myThid), myByHi(myThid)
0621 DO bi = myBxLo(myThid), myBxHi(myThid)
0622 DO k = 1, myNr
0623 DO j=1,sNy
0624 active_data_t(j,k,bi,bj) = 0. _d 0
0625 ENDDO
0626 ENDDO
0627 ENDDO
0628 ENDDO
0629
f9d7cbfb72 Ou W*0630 adpref = 'ad'
0631 CALL ADD_PREFIX( adpref, activeVar_file, adfname )
761964351d Jean*0632 CALL MDS_WRITE_SEC_YZ(
0633 I adfname, prec, globalFile, useCurrentDir,
57622776fd Jean*0634 I 'RS', myNr, 1, myNr,
761964351d Jean*0635 I dummyRL, active_data_t,
0636 I iRec, myOptimIter, myThid )
0637
0638 ENDIF
0639
0640 ENDIF
0641
0642
0643 IF (theSimulationMode .EQ. REVERSE_SIMULATION) THEN
0644
0645 CALL MDS_READ_SEC_YZ(
0646 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0647 I 'RS', myNr, 1, myNr,
761964351d Jean*0648 O dummyRL, active_data_t,
0649 I iRec, myThid )
0650
0651
0652 DO bj = myByLo(myThid), myByHi(myThid)
0653 DO bi = myBxLo(myThid), myBxHi(myThid)
0654 DO k = 1, myNr
0655 DO j=1,sNy
0656 active_data_t(j,k,bi,bj) = active_data_t(j,k,bi,bj)
0657 & + active_var(j,k,bi,bj)
0658 ENDDO
0659 ENDDO
0660 ENDDO
0661 ENDDO
0662
0663
0664 w_globFile = .FALSE.
0665 CALL MDS_WRITE_SEC_YZ(
0666 I activeVar_file, prec, w_globFile, useCurrentDir,
57622776fd Jean*0667 I 'RS', myNr, 1, myNr,
761964351d Jean*0668 I dummyRL, active_data_t,
0669 I iRec, myOptimIter, myThid )
0670
0671
0672 DO bj = myByLo(myThid), myByHi(myThid)
0673 DO bi = myBxLo(myThid), myBxHi(myThid)
0674 DO k = 1, myNr
0675 DO j=1,sNy
0676 active_var(j,k,bi,bj) = 0 _d 0
0677 ENDDO
0678 ENDDO
0679 ENDDO
0680 ENDDO
0681
0682 ENDIF
0683
0684
0685 IF (theSimulationMode .EQ. TANGENT_SIMULATION) THEN
0686
0687 CALL MDS_READ_SEC_YZ(
0688 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0689 I 'RS', myNr, 1, myNr,
761964351d Jean*0690 O dummyRL, active_var,
0691 I iRec, myThid )
0692 ENDIF
0693
0694 RETURN
0695 END
0696
0697
0698
0699
0700
0701 SUBROUTINE ACTIVE_WRITE_XZ_RL(
0702 I activeVar_file,
0703 I active_var,
0704 I globalFile,
0705 I useCurrentDir,
0706 I iRec,
0707 I myNr,
0708 I theSimulationMode,
0709 I myOptimIter,
0710 I myThid )
0711
0712
0713
0714
0715
0716
0717
0718
0719
0720
0721
0722
0723
0724 IMPLICIT NONE
0725
0726
0727 #include "EEPARAMS.h"
0728 #include "SIZE.h"
0729 #include "PARAMS.h"
5cf4364659 Mart*0730 #include "CTRL_SIZE.h"
4d72283393 Mart*0731 #include "CTRL.h"
761964351d Jean*0732
0733
0734
0735
0736
0737
0738
0739
0740
0741
0742
0743
0744 CHARACTER*(*) activeVar_file
0745 INTEGER myNr
0746 _RL active_var(1-OLx:sNx+OLx,myNr,nSx,nSy)
0747 LOGICAL globalFile
0748 LOGICAL useCurrentDir
0749 INTEGER iRec
0750 INTEGER theSimulationMode
0751 INTEGER myOptimIter
0752 INTEGER myThid
0753
0754
0755 INTEGER i,k
0756 INTEGER bi,bj
0757 INTEGER prec
0758 _RS dummyRS(1)
0759 _RL active_data_t(1-OLx:sNx+OLx,myNr,nSx,nSy)
0760
0761
0762
0763 prec = ctrlprec
0764
0765
0766 IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN
0767 CALL MDS_WRITE_SEC_XZ(
0768 I activeVar_file, prec, globalFile, useCurrentDir,
57622776fd Jean*0769 I 'RL', myNr, 1, myNr,
761964351d Jean*0770 I active_var, dummyRS,
0771 I iRec, myOptimIter, myThid )
0772 ENDIF
0773
0774
0775 IF (theSimulationMode .EQ. REVERSE_SIMULATION) THEN
0776
0777 CALL MDS_READ_SEC_XZ(
0778 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0779 I 'RL', myNr, 1, myNr,
761964351d Jean*0780 O active_data_t, dummyRS,
0781 I iRec, myThid )
0782
0783
0784 DO bj = myByLo(myThid), myByHi(myThid)
0785 DO bi = myBxLo(myThid), myBxHi(myThid)
0786 DO k = 1, myNr
0787 DO i=1,sNx
0788 active_var(i,k,bi,bj) = active_var(i,k,bi,bj)
0789 & + active_data_t(i,k,bi,bj)
0790 active_data_t(i,k,bi,bj) = 0. _d 0
0791 ENDDO
0792 ENDDO
0793 ENDDO
0794 ENDDO
0795 CALL MDS_WRITE_SEC_XZ(
0796 I activeVar_file, prec, globalFile, useCurrentDir,
57622776fd Jean*0797 I 'RL', myNr, 1, myNr,
761964351d Jean*0798 I active_data_t, dummyRS,
0799 I iRec, myOptimIter, myThid )
0800
0801 ENDIF
0802
0803
0804 IF (theSimulationMode .EQ. TANGENT_SIMULATION) THEN
0805 CALL MDS_WRITE_SEC_XZ(
0806 I activeVar_file, prec, globalFile, useCurrentDir,
57622776fd Jean*0807 I 'RL', myNr, 1, myNr,
761964351d Jean*0808 I active_var, dummyRS,
0809 I iRec, myOptimIter, myThid )
0810 ENDIF
0811
0812 RETURN
0813 END
0814
0815
0816
0817
0818
0819 SUBROUTINE ACTIVE_WRITE_XZ_RS(
0820 I activeVar_file,
0821 I active_var,
0822 I globalFile,
0823 I useCurrentDir,
0824 I iRec,
0825 I myNr,
0826 I theSimulationMode,
0827 I myOptimIter,
0828 I myThid )
0829
0830
0831
0832
0833
0834
0835
0836
0837
0838
0839
0840
0841
0842 IMPLICIT NONE
0843
0844
0845 #include "EEPARAMS.h"
0846 #include "SIZE.h"
0847 #include "PARAMS.h"
5cf4364659 Mart*0848 #include "CTRL_SIZE.h"
4d72283393 Mart*0849 #include "CTRL.h"
4158fdaabc Patr*0850
761964351d Jean*0851
0852
0853
0854
0855
0856
0857
0858
0859
0860
0861
0862 CHARACTER*(*) activeVar_file
0863 INTEGER myNr
0864 _RS active_var(1-OLx:sNx+OLx,myNr,nSx,nSy)
0865 LOGICAL globalFile
0866 LOGICAL useCurrentDir
0867 INTEGER iRec
0868 INTEGER theSimulationMode
0869 INTEGER myOptimIter
0870 INTEGER myThid
0871
0872
0873 INTEGER i,k
0874 INTEGER bi,bj
0875 INTEGER prec
0876 _RS active_data_t(1-OLx:sNx+OLx,myNr,nSx,nSy)
0877 _RL dummyRL(1)
0878
0879
0880
0881 prec = ctrlprec
0882
0883
0884 IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN
0885 CALL MDS_WRITE_SEC_XZ(
0886 I activeVar_file, prec, globalFile, useCurrentDir,
57622776fd Jean*0887 I 'RS', myNr, 1, myNr,
761964351d Jean*0888 I dummyRL, active_var,
0889 I iRec, myOptimIter, myThid )
0890 ENDIF
0891
0892
0893 IF (theSimulationMode .EQ. REVERSE_SIMULATION) THEN
0894
0895 CALL MDS_READ_SEC_XZ(
0896 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*0897 I 'RS', myNr, 1, myNr,
761964351d Jean*0898 O dummyRL, active_data_t,
0899 I iRec, myThid )
0900
0901
0902 DO bj = myByLo(myThid), myByHi(myThid)
0903 DO bi = myBxLo(myThid), myBxHi(myThid)
0904 DO k = 1, myNr
0905 DO i=1,sNx
0906 active_var(i,k,bi,bj) = active_var(i,k,bi,bj)
0907 & + active_data_t(i,k,bi,bj)
0908 active_data_t(i,k,bi,bj) = 0. _d 0
0909 ENDDO
0910 ENDDO
0911 ENDDO
0912 ENDDO
0913 CALL MDS_WRITE_SEC_XZ(
0914 I activeVar_file, prec, globalFile, useCurrentDir,
57622776fd Jean*0915 I 'RS', myNr, 1, myNr,
761964351d Jean*0916 I dummyRL, active_data_t,
0917 I iRec, myOptimIter, myThid )
0918
0919 ENDIF
0920
0921
0922 IF (theSimulationMode .EQ. TANGENT_SIMULATION) THEN
0923 CALL MDS_WRITE_SEC_XZ(
0924 I activeVar_file, prec, globalFile, useCurrentDir,
57622776fd Jean*0925 I 'RS', myNr, 1, myNr,
761964351d Jean*0926 I dummyRL, active_var,
0927 I iRec, myOptimIter, myThid )
0928 ENDIF
0929
0930 RETURN
0931 END
0932
0933
0934
0935
0936
0937 SUBROUTINE ACTIVE_WRITE_YZ_RL(
0938 I activeVar_file,
0939 I active_var,
0940 I globalFile,
0941 I useCurrentDir,
0942 I iRec,
0943 I myNr,
0944 I theSimulationMode,
0945 I myOptimIter,
0946 I myThid )
0947
0948
0949
0950
0951
0952
0953
0954
0955
0956
0957
0958
0959
0960 IMPLICIT NONE
0961
0962
4158fdaabc Patr*0963 #include "EEPARAMS.h"
0964 #include "SIZE.h"
0965 #include "PARAMS.h"
5cf4364659 Mart*0966 #include "CTRL_SIZE.h"
4d72283393 Mart*0967 #include "CTRL.h"
4158fdaabc Patr*0968
761964351d Jean*0969
0970
0971
0972
0973
0974
0975
0976
0977
0978
0979
0980 CHARACTER*(*) activeVar_file
0981 INTEGER myNr
0982 _RL active_var(1-OLy:sNy+OLy,myNr,nSx,nSy)
0983 LOGICAL globalFile
0984 LOGICAL useCurrentDir
0985 INTEGER iRec
0986 INTEGER theSimulationMode
0987 INTEGER myOptimIter
0988 INTEGER myThid
0989
0990
0991 INTEGER j,k
0992 INTEGER bi,bj
0993 INTEGER prec
0994 _RS dummyRS(1)
0995 _RL active_data_t(1-OLy:sNy+OLy,myNr,nSx,nSy)
0996
0997
0998
0999 prec = ctrlprec
1000
1001
1002 IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN
1003 CALL MDS_WRITE_SEC_YZ(
1004 I activeVar_file, prec, globalFile, useCurrentDir,
57622776fd Jean*1005 I 'RL', myNr, 1, myNr,
761964351d Jean*1006 I active_var, dummyRS,
1007 I iRec, myOptimIter, myThid )
1008 ENDIF
1009
1010
1011 IF (theSimulationMode .EQ. REVERSE_SIMULATION) THEN
1012
1013 CALL MDS_READ_SEC_YZ(
1014 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*1015 I 'RL', myNr, 1, myNr,
761964351d Jean*1016 O active_data_t, dummyRS,
1017 I iRec, myThid )
1018
1019
1020 DO bj = myByLo(myThid), myByHi(myThid)
1021 DO bi = myBxLo(myThid), myBxHi(myThid)
1022 DO k = 1, myNr
1023 DO j=1,sNy
1024 active_var(j,k,bi,bj) = active_var(j,k,bi,bj)
1025 & + active_data_t(j,k,bi,bj)
1026 active_data_t(j,k,bi,bj) = 0. _d 0
1027 ENDDO
1028 ENDDO
1029 ENDDO
1030 ENDDO
1031 CALL MDS_WRITE_SEC_YZ(
1032 I activeVar_file, prec, globalFile, useCurrentDir,
57622776fd Jean*1033 I 'RL', myNr, 1, myNr,
761964351d Jean*1034 I active_data_t, dummyRS,
1035 I iRec, myOptimIter, myThid )
1036
1037 ENDIF
1038
1039
1040 IF (theSimulationMode .EQ. TANGENT_SIMULATION) THEN
1041 CALL MDS_WRITE_SEC_YZ(
1042 I activeVar_file, prec, globalFile, useCurrentDir,
57622776fd Jean*1043 I 'RL', myNr, 1, myNr,
761964351d Jean*1044 I active_var, dummyRS,
1045 I iRec, myOptimIter, myThid )
1046 ENDIF
1047
1048 RETURN
1049 END
1050
1051
1052
1053
1054
1055 SUBROUTINE ACTIVE_WRITE_YZ_RS(
1056 I activeVar_file,
1057 I active_var,
1058 I globalFile,
1059 I useCurrentDir,
1060 I iRec,
1061 I myNr,
1062 I theSimulationMode,
1063 I myOptimIter,
1064 I myThid )
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078 IMPLICIT NONE
1079
1080
1081 #include "EEPARAMS.h"
1082 #include "SIZE.h"
1083 #include "PARAMS.h"
5cf4364659 Mart*1084 #include "CTRL_SIZE.h"
4d72283393 Mart*1085 #include "CTRL.h"
4158fdaabc Patr*1086
761964351d Jean*1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098 CHARACTER*(*) activeVar_file
1099 INTEGER myNr
1100 _RS active_var(1-OLy:sNy+OLy,myNr,nSx,nSy)
1101 LOGICAL globalFile
1102 LOGICAL useCurrentDir
1103 INTEGER iRec
1104 INTEGER theSimulationMode
1105 INTEGER myOptimIter
1106 INTEGER myThid
1107
1108
1109 INTEGER j,k
1110 INTEGER bi,bj
1111 INTEGER prec
1112 _RS active_data_t(1-OLy:sNy+OLy,myNr,nSx,nSy)
1113 _RL dummyRL(1)
1114
1115
1116
1117 prec = ctrlprec
1118
1119
1120 IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN
1121 CALL MDS_WRITE_SEC_YZ(
1122 I activeVar_file, prec, globalFile, useCurrentDir,
57622776fd Jean*1123 I 'RS', myNr, 1, myNr,
761964351d Jean*1124 I dummyRL, active_var,
1125 I iRec, myOptimIter, myThid )
1126 ENDIF
1127
1128
1129 IF (theSimulationMode .EQ. REVERSE_SIMULATION) THEN
1130
1131 CALL MDS_READ_SEC_YZ(
1132 I activeVar_file, prec, useCurrentDir,
57622776fd Jean*1133 I 'RS', myNr, 1, myNr,
761964351d Jean*1134 O dummyRL, active_data_t,
1135 I iRec, myThid )
1136
1137
1138 DO bj = myByLo(myThid), myByHi(myThid)
1139 DO bi = myBxLo(myThid), myBxHi(myThid)
1140 DO k = 1, myNr
1141 DO j=1,sNy
1142 active_var(j,k,bi,bj) = active_var(j,k,bi,bj)
1143 & + active_data_t(j,k,bi,bj)
1144 active_data_t(j,k,bi,bj) = 0. _d 0
1145 ENDDO
1146 ENDDO
1147 ENDDO
1148 ENDDO
1149 CALL MDS_WRITE_SEC_YZ(
1150 I activeVar_file, prec, globalFile, useCurrentDir,
57622776fd Jean*1151 I 'RS', myNr, 1, myNr,
761964351d Jean*1152 I dummyRL, active_data_t,
1153 I iRec, myOptimIter, myThid )
1154
1155 ENDIF
1156
1157
1158 IF (theSimulationMode .EQ. TANGENT_SIMULATION) THEN
1159 CALL MDS_WRITE_SEC_YZ(
1160 I activeVar_file, prec, globalFile, useCurrentDir,
57622776fd Jean*1161 I 'RS', myNr, 1, myNr,
761964351d Jean*1162 I dummyRL, active_var,
1163 I iRec, myOptimIter, myThid )
1164 ENDIF
1165
1166 RETURN
1167 END