1
C===========================================================================
2
C Copyright (C) 1995-2010 European Southern Observatory (ESO)
4
C This program is free software; you can redistribute it and/or
5
C modify it under the terms of the GNU General Public License as
6
C published by the Free Software Foundation; either version 2 of
7
C the License, or (at your option) any later version.
9
C This program is distributed in the hope that it will be useful,
10
C but WITHOUT ANY WARRANTY; without even the implied warranty of
11
C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
C GNU General Public License for more details.
14
C You should have received a copy of the GNU General Public
15
C License along with this program; if not, write to the Free
16
C Software Foundation, Inc., 675 Massachusetts Ave, Cambridge,
19
C Correspondence concerning ESO-MIDAS should be addressed as follows:
20
C Internet e-mail: midas@eso.org
21
C Postal address: European Southern Observatory
22
C Data Management Division
23
C Karl-Schwarzschild-Strasse 2
24
C D 85748 Garching bei Muenchen
26
C===========================================================================
28
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
30
C.LANGUAGE: F77+ESOext
35
C.IDENTIFICATION TDCOPY.FOR
36
C.KEYWORDS TABLE, APPLICATIONS
39
C UTILITIES USED INTERNALLY IN THE PACKAGE TO COPY SCALARS, VECTORS AND
42
C.VERSION: 1.0 ESO-FORTRAN Conversion, AA 19:37 - 11 DEC 1987
46
C------------------------------------------------------------------
48
SUBROUTINE TDCPVV(INPUT,OUTPUT,N)
50
C COPY INPUT(N) INTO OUTPUT(N)
51
C INTERNAL ROUTINE TO BE USED IN THE MAPPING CONTEXT
67
SUBROUTINE TDCPSV(INPUT,OUTPUT,N,I)
69
C COPY THE SINGLE PRECISION VALUE INPUT(I) INTO THE ARRAY OUTPUT(N)
70
C INTERNAL ROUTINE TO BE USED IN THE MAPPING CONTEXT
74
REAL INPUT(I),OUTPUT(N)
83
SUBROUTINE TDCPDV(INPUT,OUTPUT,N,I)
85
C COPY THE DOUBLE PRECISION VALUE INPUT(I) INTO THE ARRAY OUTPUT(N)
86
C INTERNAL ROUTINE TO BE USED IN THE MAPPING CONTEXT
90
DOUBLE PRECISION INPUT(I),OUTPUT(N)
99
SUBROUTINE TDCPSS(INPUT,OUTPUT,I,J)
101
C COPY INPUT(I) INTO OUTPUT(J)
102
C INTERNAL ROUTINE TO BE USED IN THE MAPPING CONTEXT
107
REAL INPUT(I),OUTPUT(J)
114
SUBROUTINE TDCPDD(INPUT,OUTPUT,I,J)
116
C COPY INPUT(I) INTO OUTPUT(J)
118
C INTERNAL ROUTINE TO BE USED IN THE MAPPING CONTEXT
122
DOUBLE PRECISION INPUT(I),OUTPUT(J)
129
SUBROUTINE TDCCRR(MASK,INPUT,OUTPUT,N)
131
C COPY REAL ARRAY ACCORDING TO MASK.
133
C SKIP OVER NON SELECTED VALUES
136
REAL MASK(N),INPUT(N),OUTPUT(N)
139
DOUBLE PRECISION TDTRUE, TDFALS
141
C ... GET SELECTION VALUE
143
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
148
IF (MASK(I).EQ.TBLSEL) OUTPUT(I) = INPUT(I)
154
SUBROUTINE TDCCR1(MASK,INPUT,OUTPUT,N,NT)
156
C COPY REAL ARRAY ACCORDING TO MASK.
157
C DO NOT SKIP OVER NON SELECTED VALUES
161
REAL MASK(N),INPUT(N),OUTPUT(N)
164
DOUBLE PRECISION TDTRUE, TDFALS
166
C ... GET SELECTION VALUE
168
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
174
IF (MASK(I).EQ.TBLSEL) THEN
176
OUTPUT(NNT) = INPUT(I)
185
SUBROUTINE TDCCR2(MASK,INPUT,OUTPUT,N,NT)
187
C COPY REAL ARRAY ACCORDING TO MASK.
188
C DO NOT SKIP OVER NON SELECTED VALUES
189
C DO NOT COPY THE NULL VALUES
193
REAL MASK(N),INPUT(N),OUTPUT(N)
197
DOUBLE PRECISION TDTRUE, TDFALS, TDNULL
199
C ... GET MACHINE DEPENDENT VALUES
201
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
202
CALL TBMNUL(TINULL, TRNULL, TDNULL)
208
IF (MASK(I).EQ.TBLSEL .AND. INPUT(I).NE.TRNULL) THEN
210
OUTPUT(NNT) = INPUT(I)
219
SUBROUTINE TDCCDD(MASK,INPUT,OUTPUT,N)
221
C COPY DOUBLE PRECISION ARRAY ACCORDING TO MASK.
222
C SKIP OVER NON SELECTED VALUES
227
DOUBLE PRECISION INPUT(N),OUTPUT(N)
230
DOUBLE PRECISION TDTRUE, TDFALS
232
C ... GET MACHINE DEPENDENT VALUES
234
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
239
IF (MASK(I).EQ.TBLSEL) OUTPUT(I) = INPUT(I)
245
SUBROUTINE TDCCD1(MASK,INPUT,OUTPUT,N,NT)
247
C COPY REAL ARRAY ACCORDING TO MASK.
248
C DO NOT SKIP OVER NON SELECTED VALUES
253
DOUBLE PRECISION INPUT(N),OUTPUT(N)
256
DOUBLE PRECISION TDTRUE, TDFALS
258
C ... GET MACHINE DEPENDENT VALUES
260
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
266
IF (MASK(I).EQ.TBLSEL) THEN
268
OUTPUT(NNT) = INPUT(I)
277
SUBROUTINE TDCCD2(MASK,INPUT,OUTPUT,N,NT)
279
C COPY REAL ARRAY ACCORDING TO MASK.
280
C DO NOT SKIP OVER NON SELECTED VALUES
281
C DO NOT COPY NULL VALUES
286
DOUBLE PRECISION INPUT(N),OUTPUT(N)
290
DOUBLE PRECISION TDTRUE, TDFALS, TDNULL
292
C ... GET MACHINE DEPENDENT VALUES
294
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
295
CALL TBMNUL(TINULL, TRNULL, TDNULL)
301
IF (MASK(I).EQ.TBLSEL .AND. INPUT(I).NE.TDNULL) THEN
303
OUTPUT(NNT) = INPUT(I)
312
SUBROUTINE TDCCWW(MASK,INPUT,OUTPUT,N,NW)
314
C COPY BYTE ARRAY ACCORDING TO MASK.
315
C SKIP OVER NON SELECTED VALUES
320
REAL INPUT(NW,N),OUTPUT(NW,N)
323
DOUBLE PRECISION TDTRUE, TDFALS
325
C ... GET MACHINE DEPENDENT VALUES
327
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
332
IF (MASK(I).EQ.TBLSEL) THEN
334
OUTPUT(J,I) = INPUT(J,I)
343
SUBROUTINE TDCCW1(MASK,INPUT,OUTPUT,N,NW,NT)
345
C COPY ARRAY ACCORDING TO MASK.
346
C DO NOT SKIP OVER NON SELECTED VALUES
348
INTEGER I,J,N,NW,NT,NNT
350
REAL INPUT(NW,N),OUTPUT(NW,N)
353
DOUBLE PRECISION TDTRUE, TDFALS
355
C ... GET MACHINE DEPENDENT VALUES
357
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
363
IF (MASK(I).EQ.TBLSEL) THEN
366
OUTPUT(J,NNT) = INPUT(J,I)
376
SUBROUTINE TDCCSS(MASK,INPUT,OUTPUT,N,ISI,NB,ISO,NBI,NBO)
378
C COPY BYTE SUBSTRINGS ACCORDING TO MASK.
379
C SKIP OVER NON SELECTED VALUES
383
INTEGER I,J,J1,ISI,NB,NBI,NBO,ISO,IEND,N
385
INTEGER INPUT(NBI,N),OUTPUT(NBO,N)
388
DOUBLE PRECISION TDTRUE, TDFALS
390
C ... GET MACHINE DEPENDENT VALUES
392
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
399
IF (MASK(I).EQ.TBLSEL) THEN
402
OUTPUT(J1,I) = INPUT(J,I)
412
SUBROUTINE TDCCS1(MASK,INPUT,OUTPUT,N,ISI,NB,ISO,NBI,NBO,NT)
414
C COPY BYTE SUBSTRINGS ACCORDING TO MASK.
415
C DO NOT SKIP OVER NON SELECTED VALUES
419
INTEGER I,J,N,J1,NB,ISI,ISO,NBI,NBO,NT,NNT,IEND
421
INTEGER INPUT(NBI,N),OUTPUT(NBO,N)
424
DOUBLE PRECISION TDTRUE, TDFALS
426
C ... GET MACHINE DEPENDENT VALUES
428
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
436
IF (MASK(I).EQ.TBLSEL) THEN
440
OUTPUT(J1,NNT) = INPUT(J,I)
451
SUBROUTINE TDCRRR(MASK,IDENT1,IDENT2,IREF,ISORT,NBYTES,INPUT,NBI,
452
+ ISI,OUTPUT,NBO,ISO,NIN,NOUT)
455
C COPY BY REFERENCE VALUES
456
C REFERENCE COLUMN IN SINGLE PRECISION
458
INTEGER IREF,ISORT,NBYTES,NBI,ISI,ISO,NBO,NIN,NOUT,N
459
INTEGER NB,I,N1,I1,NN1,NEXT
460
REAL MASK(NIN),INPUT(1),OUTPUT(1)
461
REAL IDENT1(NIN),IDENT2(NOUT),ZERO,VALUE
465
DOUBLE PRECISION TDTRUE, TDFALS, TDNULL
467
C ... GET MACHINE DEPENDENT VALUES
469
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
470
CALL TBMNUL(TINULL, TRNULL, TDNULL)
476
C ... JUMP ACCORDING TO OUTPUT FORMAT
478
C IF(NBYTES+4)10,80,150
483
ELSE IF (I .EQ. 0) THEN
489
C ... DOUBLE PRECISION
492
IF (IREF.EQ.IABS(ISORT)) THEN
496
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TRNULL) THEN
497
CALL TZSBAR(IDENT2,NOUT,VALUE,ZERO,1,NEXT)
501
OUTPUT(N1) = INPUT(I1)
504
OUTPUT(N1) = INPUT(I1)
506
C ... CASE OF EQUAL OUTPUT REFERENCES
508
IF (NEXT.LT.NOUT) THEN
510
IF (IDENT2(NEXT-1).EQ.
511
+ IDENT2(NEXT)) GO TO 20
523
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TRNULL) THEN
524
CALL TZSBDR(IDENT2,NOUT,VALUE,ZERO,1,NEXT)
528
OUTPUT(N1) = INPUT(I1)
531
OUTPUT(N1) = INPUT(I1)
533
C ... CASE OF EQUAL OUTPUT REFERENCES
535
IF (NEXT.LT.NOUT) THEN
537
IF (IDENT2(NEXT-1).EQ.
538
+ IDENT2(NEXT)) GO TO 40
551
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TRNULL) THEN
553
60 CALL TZSCSR(IDENT2,NOUT,VALUE,ZERO,NN1,NEXT)
557
OUTPUT(N1) = INPUT(I1)
560
OUTPUT(N1) = INPUT(I1)
562
IF (NN1.LE.NOUT) GO TO 60
572
C ... SINGLE PRECISION
575
IF (IREF.EQ.IABS(ISORT)) THEN
579
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TRNULL) THEN
580
CALL TZSBAR(IDENT2,NOUT,VALUE,ZERO,1,NEXT)
582
90 OUTPUT(NEXT) = INPUT(I)
584
C ... CASE OF EQUAL OUTPUT REFERENCES
586
IF (NEXT.LT.NOUT) THEN
588
IF (IDENT2(NEXT-1).EQ.
589
+ IDENT2(NEXT)) GO TO 90
601
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TRNULL) THEN
602
CALL TZSBDR(IDENT2,NOUT,VALUE,ZERO,1,NEXT)
604
110 OUTPUT(NEXT) = INPUT(I)
606
C ... CASE OF EQUAL OUTPUT REFERENCES
608
IF (NEXT.LT.NOUT) THEN
610
IF (IDENT2(NEXT-1).EQ.
611
+ IDENT2(NEXT)) GO TO 110
624
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TRNULL) THEN
626
130 CALL TZSCSR(IDENT2,NOUT,VALUE,ZERO,NN1,NEXT)
628
OUTPUT(NEXT) = INPUT(I)
630
IF (NN1.LE.NOUT) GO TO 130
640
C ... CHARACTER STRING
643
IF (IREF.EQ.IABS(ISORT)) THEN
647
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TRNULL) THEN
648
CALL TZSBAR(IDENT2,NOUT,VALUE,ZERO,1,NEXT)
650
160 CALL TDCPBY(INPUT,I,NBI,ISI,OUTPUT,NEXT,NBO,
653
C ... CASE OF EQUAL OUTPUT REFERENCES
655
IF (NEXT.LT.NOUT) THEN
657
IF (IDENT2(NEXT-1).EQ.
658
+ IDENT2(NEXT)) GO TO 160
670
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TRNULL) THEN
671
CALL TZSBDR(IDENT2,NOUT,VALUE,ZERO,1,NEXT)
673
180 CALL TDCPBY(INPUT,I,NBI,ISI,OUTPUT,NEXT,NBO,
676
C ... CASE OF EQUAL OUTPUT REFERENCES
678
IF (NEXT.LT.NOUT) THEN
680
IF (IDENT2(NEXT-1).EQ.
681
+ IDENT2(NEXT)) GO TO 180
694
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TRNULL) THEN
696
200 CALL TZSCSR(IDENT2,NOUT,VALUE,ZERO,NN1,NEXT)
698
CALL TDCPBY(INPUT,I,NBI,ISI,OUTPUT,NEXT,NBO,ISO,
701
IF (NN1.LE.NOUT) GO TO 200
713
SUBROUTINE TDCRDD(MASK,IDENT1,IDENT2,IREF,ISORT,NBYTES,INPUT,NBI,
714
+ ISI,OUTPUT,NBO,ISO,NIN,NOUT)
716
C COPY BY REFERENCE VALUES
717
C REFERENCE COLUMN IN DOUBLE PRECISION
720
INTEGER IREF,ISORT,NBYTES,NBI,ISI,ISO,NIN,NOUT,I,I1,N1
721
REAL MASK(NIN),INPUT(1),OUTPUT(1)
722
DOUBLE PRECISION IDENT1(NIN),IDENT2(NOUT),VALUE,ZERO
724
INTEGER TINULL,NBO,N,NB,NEXT,NN1
726
DOUBLE PRECISION TDTRUE, TDFALS, TDNULL
728
C ... GET MACHINE DEPENDENT VALUES
730
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
731
CALL TBMNUL(TINULL, TRNULL, TDNULL)
736
C ... JUMP ACCORDING TO OUTPUT FORMAT
738
C IF (NBYTES+4) 10,80,150
743
ELSE IF (I .EQ. 0) THEN
750
C ... DOUBLE PRECISION
753
IF (IREF.EQ.IABS(ISORT)) THEN
757
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TDNULL) THEN
758
CALL TZSBAD(IDENT2,NOUT,VALUE,ZERO,1,NEXT)
762
OUTPUT(N1) = INPUT(I1)
765
OUTPUT(N1) = INPUT(I1)
767
C ... CASE OF EQUAL OUTPUT REFERENCES
769
IF (NEXT.LT.NOUT) THEN
771
IF (IDENT2(NEXT-1).EQ.
772
+ IDENT2(NEXT)) GO TO 20
784
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TDNULL) THEN
785
CALL TZSBDD(IDENT2,NOUT,VALUE,ZERO,1,NEXT)
789
OUTPUT(N1) = INPUT(I1)
792
OUTPUT(N1) = INPUT(I1)
794
C ... CASE OF EQUAL OUTPUT REFERENCES
796
IF (NEXT.LT.NOUT) THEN
798
IF (IDENT2(NEXT-1).EQ.
799
+ IDENT2(NEXT)) GO TO 40
812
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TDNULL) THEN
814
60 CALL TZSCSD(IDENT2,NOUT,VALUE,ZERO,NN1,NEXT)
818
OUTPUT(N1) = INPUT(I1)
821
OUTPUT(N1) = INPUT(I1)
823
IF (NN1.LE.NOUT) GO TO 60
833
C ... SINGLE PRECISION
836
IF (IREF.EQ.IABS(ISORT)) THEN
840
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TDNULL) THEN
841
CALL TZSBAD(IDENT2,NOUT,VALUE,ZERO,1,NEXT)
843
90 OUTPUT(NEXT) = INPUT(I)
845
C ... CASE OF EQUAL OUTPUT REFERENCES
847
IF (NEXT.LT.NOUT) THEN
849
IF (IDENT2(NEXT-1).EQ.
850
+ IDENT2(NEXT)) GO TO 90
862
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TDNULL) THEN
863
CALL TZSBDD(IDENT2,NOUT,VALUE,ZERO,1,NEXT)
865
110 OUTPUT(NEXT) = INPUT(I)
867
C ... CASE OF EQUAL OUTPUT REFERENCES
869
IF (NEXT.LT.NOUT) THEN
871
IF (IDENT2(NEXT-1).EQ.
872
+ IDENT2(NEXT)) GO TO 110
885
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TDNULL) THEN
887
130 CALL TZSCSD(IDENT2,NOUT,VALUE,ZERO,NN1,NEXT)
889
OUTPUT(NEXT) = INPUT(I)
891
IF (NN1.LE.NOUT) GO TO 130
901
C ... CHARACTER STRING
904
IF (IREF.EQ.IABS(ISORT)) THEN
908
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TDNULL) THEN
909
CALL TZSBAD(IDENT2,NOUT,VALUE,ZERO,1,NEXT)
911
160 CALL TDCPBY(INPUT,I,NBI,ISI,OUTPUT,NEXT,NBO,
914
C ... CASE OF EQUAL OUTPUT REFERENCES
916
IF (NEXT.LT.NOUT) THEN
918
IF (IDENT2(NEXT-1).EQ.
919
+ IDENT2(NEXT)) GO TO 160
931
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TDNULL) THEN
932
CALL TZSBDD(IDENT2,NOUT,VALUE,ZERO,1,NEXT)
934
180 CALL TDCPBY(INPUT,I,NBI,ISI,OUTPUT,NEXT,NBO,
937
C ... CASE OF EQUAL OUTPUT REFERENCES
939
IF (NEXT.LT.NOUT) THEN
941
IF (IDENT2(NEXT-1).EQ.
942
+ IDENT2(NEXT)) GO TO 180
955
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.TDNULL) THEN
957
200 CALL TZSCSD(IDENT2,NOUT,VALUE,ZERO,NN1,NEXT)
959
CALL TDCPBY(INPUT,I,NBI,ISI,OUTPUT,NEXT,NBO,ISO,
962
IF (NN1.LE.NOUT) GO TO 200
974
SUBROUTINE TDCRSS(MASK,IDENT1,IDENT2,NW,NBR,IREF,ISORT,NBYTES,
975
+ INPUT,NBI,ISI,OUTPUT,NBO,ISO,NIN,NOUT)
978
C COPY BY REFERENCE VALUES
979
C REFERENCE COLUMN AS CHARACTER STRING
981
INTEGER NBR,NW,IREF,ISORT,NBYTES,NBI,NBO,ISI,ISO,NIN
982
INTEGER NOUT,I,NEXT,I1,N1,NB,N
983
REAL MASK(NIN),INPUT(1),OUTPUT(1)
984
INTEGER IDENT1(NW,NIN),IDENT2(NW,NOUT),VALUE
988
DOUBLE PRECISION TDTRUE, TDFALS, TDNULL
990
C ... GET MACHINE DEPENDENT VALUES
992
CALL TBMCON(TBLSEL, TDTRUE, TDFALS)
993
CALL TBMNUL(TINULL, TRNULL, TDNULL)
998
C ... JUMP ACCORDING TO OUTPUT FORMAT
1000
C IF (NBYTES+4) 10,50,90
1005
ELSE IF (I .EQ. 0) THEN
1012
C ... DOUBLE PRECISION
1015
IF (IREF.EQ.IABS(ISORT)) THEN
1016
IF (ISORT.GT.0) THEN
1019
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.0) THEN
1020
CALL TZSBAC(IDENT2,NW,NOUT,IDENT1(1,I),1,NBR,1,
1025
OUTPUT(N1) = INPUT(I1)
1028
OUTPUT(N1) = INPUT(I1)
1038
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.0) THEN
1039
CALL TZSBDC(IDENT2,NW,NOUT,IDENT1(1,I),1,NBR,1,
1044
OUTPUT(N1) = INPUT(I1)
1047
OUTPUT(N1) = INPUT(I1)
1058
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.0) THEN
1059
CALL TZSCSC(IDENT2,NW,NOUT,IDENT1(1,I),1,NBR,1,NEXT)
1063
OUTPUT(N1) = INPUT(I1)
1066
OUTPUT(N1) = INPUT(I1)
1076
C ... SINGLE PRECISION
1079
IF (IREF.EQ.IABS(ISORT)) THEN
1080
IF (ISORT.GT.0) THEN
1083
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.0) THEN
1084
CALL TZSBAC(IDENT2,NW,NOUT,IDENT1(1,I),1,NBR,1,
1086
IF (NEXT.GT.0) OUTPUT(NEXT) = INPUT(I)
1094
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.0) THEN
1095
CALL TZSBDC(IDENT2,NW,NOUT,IDENT1(1,I),1,NBR,1,
1097
IF (NEXT.GT.0) OUTPUT(NEXT) = INPUT(I)
1106
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.0) THEN
1107
CALL TZSCSC(IDENT2,NW,NOUT,IDENT1(1,I),1,NBR,1,NEXT)
1108
IF (NEXT.GT.0) OUTPUT(NEXT) = INPUT(I)
1116
C ... CHARACTER STRING
1119
IF (IREF.EQ.IABS(ISORT)) THEN
1120
IF (ISORT.GT.0) THEN
1123
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.0) THEN
1124
CALL TZSBAC(IDENT2,NW,NOUT,IDENT1(1,I),1,NBR,1,
1126
IF (NEXT.GT.0) CALL TDCPBY(INPUT,I,NBI,ISI,OUTPUT,
1127
+ NEXT,NBO,ISO,NB,N)
1135
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.0) THEN
1136
CALL TZSBDC(IDENT2,NW,NOUT,IDENT1(1,I),1,NBR,1,
1138
IF (NEXT.GT.0) CALL TDCPBY(INPUT,I,NBI,ISI,OUTPUT,
1139
+ NEXT,NBO,ISO,NB,N)
1148
IF (MASK(I).EQ.TBLSEL .AND. VALUE.NE.0) THEN
1149
CALL TZSCSC(IDENT2,NW,NOUT,IDENT1(1,I),1,NBR,1,NEXT)
1150
IF (NEXT.GT.0) CALL TDCPBY(INPUT,I,NBI,ISI,OUTPUT,
1151
+ NEXT,NBO,ISO,NB,N)
1161
SUBROUTINE TDCPBY(INPUT,IP,NBI,ISI,OUTPUT,NEXT,NBO,ISO,NB,N)
1166
INTEGER IP,NBI,ISI,NEXT,NBO,ISO,NB,I,N,I1,I2
1167
INTEGER INPUT(NBI,N),OUTPUT(NBO,N)
1172
OUTPUT(I2,NEXT) = INPUT(I1,IP)