Guest User

Untitled

a guest
Sep 6th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. INDSHF=IIII(ISYMA)
  2.       NBFA=NBFT(ISYMA)
  3.       ISM =NZBF(ISYMA)
  4.       ISYMAK=ISYMA
  5.       READ(ITAPE)IBX
  6.       allocate (vv(lenb))
  7.       IF(ITYP.LT.0) GO TO 450
  8.       IJ2=0
  9.       DO 411 I=1,NBFA
  10.       INDI=I*(I-1)/2
  11.       IX=I+ISM
  12.       INDIX=IX*(IX-1)/2+ISM
  13.       DO 412 J=1,I
  14.       IJ=INDIX+J
  15.       IJF=INDI+J
  16.       IJ2=IJ2+1
  17.       IF(IJX.NE.IJ2) GO TO 412
  18.       KL2=0
  19.       CALL INTAPE(VV,LENB,ITAPE)
  20. c
  21.       IN=1
  22.       KLX=imask(VV(IN))
  23.       IF(IFULLI.NE.0) KLX=1
  24.       VAL=VV(IN)
  25.       INDJ=J*(J-1)/2
  26.       DO 413 K=1,I
  27.       INDIK=INDI+K
  28.       INDK=K*(K-1)/2
  29.       KX=K+ISM
  30.       INDKX=KX*(KX-1)/2+ISM
  31.       IF(J.ge.K) then
  32.         INDJK=INDJ+K
  33.       else
  34.         INDJK=INDK+J
  35.       endif
  36.       LEND=K
  37.       IF(I.EQ.K) LEND=J
  38.       DO 414 L=1,LEND
  39.       KL=INDKX+L
  40.       KL2=KL2+1
  41.       IF(KL2.NE.KLX) GO TO 414
  42.       IF(ABS(VAL).LT.THRESH .AND. IFULLO .EQ. 0) GO TO 98
  43.       VAA=VAL*4.0
  44.       IF(IJ.EQ.KL) VAA=VAA*0.5d0
  45.       IJBUF=IJBUF+1
  46.       IF (IFULLO .EQ. 0) THEN
  47.         BUF(IJBUF)=jmask(VAA,KL)
  48.       ELSE
  49.         BUF(IJBUF) = VAA
  50.       ENDIF
  51.       INDIL=INDI+L
  52.       IF(J.ge.L) then
  53.         INDJL=INDJ+L
  54.       else
  55.         INDJL=L*(L-1)/2+J
  56.       endif
  57.       IF(INDJK.le.INDIL) then
  58.         INDEX1=INDIL*(INDIL-1)/2+INDJK+INDSHF
  59.       else
  60.         INDEX1=INDJK*(INDJK-1)/2+INDIL+INDSHF
  61.       endif
  62.       IF(INDJL.le.INDIK) then
  63.         INDEX2=INDIK*(INDIK-1)/2+INDJL+INDSHF
  64.       else
  65.         INDEX2=INDJL*(INDJL-1)/2+INDIK+INDSHF
  66.       endif
  67.       IF(INCOR.EQ.0) GO TO 200
  68.       IF(I.EQ.J.OR.K.EQ.L) GO TO 250
  69.       IF(I.ne.L.and.J.ne.K) then
  70.         A(INDEX1)=VAL+A(INDEX1)
  71.       else
  72.         A(INDEX1)=VAL*2.d0+A(INDEX1)
  73.       endif
  74. 250   CONTINUE
  75.       IF(I.EQ.K.OR.J.EQ.L) VAL=VAL*2.d0
  76.       A(INDEX2)=VAL+A(INDEX2)
  77.       GO TO 98
  78. 200   CONTINUE
  79.       IBIN1=(INDEX1-1)/NBINFD+1
  80.       IBIN2=(INDEX2-1)/NBINFD+1
  81.       IF(I.EQ.J.OR.K.EQ.L) GO TO 8002
  82.       IW1=IBIN(1,IBIN1)
  83.       IPUTX=IW1+3
  84.       IPUTI=IPUTX+INTSPB
  85.       IF(I.EQ.L.OR.J.EQ.K) then
  86.         BIN(IPUTX,IBIN1)=VAL*2.d0
  87.       else
  88.         BIN(IPUTX,IBIN1)=VAL
  89.       endif
  90.       IBIN(IPUTI,IBIN1)=INDEX1
  91.       IW1=IW1+1
  92.       IBIN(1,IBIN1)=IW1
  93.       IF(IW1.eq.INTSPB) then
  94.         CALL OUTAPD(BIN(1,IBIN1),NWRDPB,ISCR,LX)
  95.         IBIN(2,IBIN1)=LX
  96.         IBIN(1,IBIN1)=0
  97.       endif
  98. 8002  CONTINUE
  99.       IF(I.EQ.K.OR.J.EQ.L) VAL=VAL*2.d0
  100.       IW2=IBIN(1,IBIN2)
  101.       IPUTX=IW2+3
  102.       IPUTI=IPUTX+INTSPB
  103.       BIN(IPUTX,IBIN2)=VAL
  104.       IBIN(IPUTI,IBIN2)=INDEX2
  105.       IW2=IW2+1
  106.       IBIN(1,IBIN2)=IW2
  107.       IF(IW2.eq.INTSPB) then
  108.         CALL OUTAPD(BIN(1,IBIN2),NWRDPB,ISCR,LX)
  109.         IBIN(2,IBIN2)=LX
  110.         IBIN(1,IBIN2)=0
  111.       endif
  112. c
  113. 98    IN=IN+1
  114.       IF(IN.GT.LENB) GO TO 415
  115.       VAL=VV(IN)
  116.       KLX=imask(VV(IN))
  117.       IF(IFULLI.NE.0) KLX=KL2+1
  118.       IF(KLX.GT.IJ2) GO TO 415
  119. 414   CONTINUE
  120. 413   CONTINUE
  121. 415   CONTINUE
  122. c
  123.       IF (IFULLO .EQ. 0) THEN
  124.         CALL FILB(BUF,IJBUF,IJ,IPUNIT,ISYMAK,ISYMAK)
  125.       ELSE
  126.         CALL FILB(BUF,IJBUF,IJF,IPUNIT,ISYMAK,ISYMAK)
  127.       ENDIF
  128.       IF (IPFLG .EQ. 2) THEN
  129.         IF (IFULLO .EQ. 0) THEN
  130.           CALL PRINTR(IJ,IJBUF,BUF)
  131.         ELSE
  132.           CALL PRINTS(IJF,IJBUF,BUF,ISYMAK,ISYMAK)
  133.         ENDIF
  134.       ENDIF
  135.       READ(ITAPE)IBX
  136.       IJBUF=0
  137.       IF(ITYP.LT.0) GO TO 450
  138. 412   CONTINUE
  139. 411   CONTINUE
  140. C
  141.       GO TO 450
Add Comment
Please, Sign In to add comment