hdiff output

r31260/atom_label_swaps.f90 2016-10-11 12:30:19.382188276 +0100 r31259/atom_label_swaps.f90 2016-10-11 12:30:21.726219467 +0100
  1: SUBROUTINE USWAPS(NP, ITER, TIME, BRUN, QDONE, SCREENC)  1: SUBROUTINE USWAPS(NP, ITER, TIME, BRUN, QDONE, SCREENC)
  2:   !  2:   !
  3:   USE COMMONS, ONLY : NATOMS, NSPECIES, ATOMLISTS, INVATOMLISTS, &  3:   USE COMMONS, ONLY : NATOMS, NSPECIES, ATOMLISTS, INVATOMLISTS, &
  4:        MYUNIT, COORDS, NQ, NPAR, RMS, ECONV, PRTFRQ, HIT, &  4:        MYUNIT, COORDS, NQ, NPAR, RMS, ECONV, PRTFRQ, HIT, &
  5:        LSWAPS_N2, LSWAPS_TEMP, LSWAPS_TFACTOR, LSWAPS_NUP, &  5:        LSWAPS_N2, LSWAPS_TEMP, LSWAPS_TFACTOR, LSWAPS_NUP
  6:        FIXLABELS, NTYPEA 
  7:   !  6:   !
  8:   IMPLICIT NONE  7:   IMPLICIT NONE
  9:   !  8:   !
 10:   ! Parse passed variables  9:   ! Parse passed variables
 11:   INTEGER, INTENT(IN) :: NP 10:   INTEGER, INTENT(IN) :: NP
 12:   INTEGER, INTENT(INOUT):: ITER,BRUN,QDONE ! for QUENCH 11:   INTEGER, INTENT(INOUT):: ITER,BRUN,QDONE ! for QUENCH
 13:   DOUBLE PRECISION, INTENT(INOUT) :: TIME,SCREENC(3*NATOMS) ! QUENCH 12:   DOUBLE PRECISION, INTENT(INOUT) :: TIME,SCREENC(3*NATOMS) ! QUENCH
 14:   ! 13:   !
 15:   LOGICAL :: DONE 
 16:   INTEGER :: NQTOT, ATOMLISTS_MIN(NSPECIES(0),3,0:NATOMS),& 14:   INTEGER :: NQTOT, ATOMLISTS_MIN(NSPECIES(0),3,0:NATOMS),&
 17:        INVATOMLISTS_MIN(NATOMS,3),I1,I2,LIST(0:NATOMS),J,K,N,& 15:        INVATOMLISTS_MIN(NATOMS,3),I1,I2,LIST(0:NATOMS),J,K,N,&
 18:        NACC,NREJ,NREJ_STREAK 16:        NACC,NREJ
 19:   DOUBLE PRECISION :: DPRAND, R, POTEL, X0(1:3*NATOMS), E0, & 17:   DOUBLE PRECISION :: DPRAND, R, POTEL, X0(1:3*NATOMS), E0, &
 20:        XMIN(1:3*NATOMS), EMIN, TEMP 18:        XMIN(1:3*NATOMS), EMIN, TEMP
 21:   ! 19:   !
 22:   ! Energy of COORDS from last quench. Common block in QUENCH.  20:   ! Energy of COORDS from last quench. Common block in QUENCH. 
 23:   COMMON /MYPOT/ POTEL 21:   COMMON /MYPOT/ POTEL
 24:   ! Total quench count. Commom block in MC. 22:   ! Total quench count. Commom block in MC.
 25:   COMMON /TOT/ NQTOT 23:   COMMON /TOT/ NQTOT
 26:   ! 24:   !
 27:   ATOMLISTS_MIN(:,:,:) = ATOMLISTS(:,:,:) 25:   ATOMLISTS_MIN(:,:,:) = ATOMLISTS(:,:,:)
 28:   INVATOMLISTS_MIN(:,:) = INVATOMLISTS(:,:) 26:   INVATOMLISTS_MIN(:,:) = INVATOMLISTS(:,:)
 29:   XMIN(1:3*NATOMS) = COORDS(1:3*NATOMS, NP) 27:   XMIN(1:3*NATOMS) = COORDS(1:3*NATOMS, NP)
 30:   EMIN = POTEL 28:   EMIN = POTEL
 31:   TEMP = LSWAPS_TEMP 29:   TEMP = LSWAPS_TEMP
 32:   ! 30:   !
 33:   WRITE(MYUNIT,'(A,F20.10,A,F10.8)') & 31:   WRITE(MYUNIT,'(A,F20.10,A,F10.8)') &
 34:        'uswaps> Initial E= ', EMIN,' T= ', TEMP 32:        'uswaps> Initial E= ', EMIN,' T= ', TEMP
 35:   ! 33:   !
 36:   NACC = 0 34:   NACC = 0
 37:   NREJ = 0 35:   NREJ = 0
 38:   NREJ_STREAK = 0 36:   DO N=1,LSWAPS_N2
 39:   N=0 
 40:   IF(LSWAPS_N2 /= 0) THEN 
 41:      DONE=.FALSE. 
 42:   ELSE 
 43:      DONE=.TRUE. 
 44:   ENDIF 
 45:   ! 
 46:   DO WHILE (.NOT.DONE) !N=1,LSWAPS_N2 
 47:      ! 37:      !
 48:      N=N+1 
 49:      X0(1:3*NATOMS) = COORDS(1:3*NATOMS,NP) 38:      X0(1:3*NATOMS) = COORDS(1:3*NATOMS,NP)
 50:      E0 = POTEL 39:      E0 = POTEL
 51:      ! 40:      !
 52:      IF(.NOT.FIXLABELS) THEN 41:      LIST(0:NATOMS) = 0
 53:         LIST(0:NATOMS) = 0 42:      DO J=1,NSPECIES(0)
 54:         DO J=1,NSPECIES(0) 43:         DO K=1,ATOMLISTS(J,1,0) ! only group 1
 55:            DO K=1,ATOMLISTS(J,1,0) ! only group 1 44:            LIST(0) = LIST(0) + 1
 56:               LIST(0) = LIST(0) + 1 45:            LIST(LIST(0)) = ATOMLISTS(J,1,K) 
 57:               LIST(LIST(0)) = ATOMLISTS(J,1,K)  
 58:            ENDDO 
 59:         ENDDO 46:         ENDDO
 60:         I1 = INT(DPRAND()*DBLE(LIST(0))) + 1 ! Forgot +1 47:      ENDDO
 61:         I1 = LIST(I1) 48:      I1 = INT(DPRAND()*DBLE(LIST(0))) + 1 ! Forgot +1
 62:         I2 = INVATOMLISTS(I1,1) 49:      I1 = LIST(I1)
 63:         LIST(:) = 0 50:      I2 = INVATOMLISTS(I1,1)
 64:         DO J=1,NSPECIES(0) 51:      LIST(:) = 0
 65:            IF(J==I2) CYCLE 52:      DO J=1,NSPECIES(0)
 66:            DO K=1,ATOMLISTS(J,1,0) ! only group 1 53:         IF(J==I2) CYCLE
 67:               LIST(0) = LIST(0) + 1 54:         DO K=1,ATOMLISTS(J,1,0) ! only group 1
 68:               LIST(LIST(0)) = ATOMLISTS(J,1,K)  55:            LIST(0) = LIST(0) + 1
 69:            ENDDO 56:            LIST(LIST(0)) = ATOMLISTS(J,1,K) 
 70:         ENDDO 57:         ENDDO
 71:         I2 = INT(DPRAND()*DBLE(LIST(0))) + 1 ! Forgot +1 58:      ENDDO
 72:         I2 = LIST(I2) 59:      I2 = INT(DPRAND()*DBLE(LIST(0))) + 1 ! Forgot +1
 73:         CALL SWAP_LABELS(I1,I2,NP) 60:      I2 = LIST(I2)
 74:      ELSE 61:      !
 75:         I1=INT(DPRAND()*DBLE(NTYPEA)) + 1  62:      CALL SWAP_LABELS(I1,I2,NP)
 76:         I2=INT(DPRAND()*DBLE(NATOMS-NTYPEA)) + NTYPEA + 1 
 77:         CALL SWAP_COORDS_V2(COORDS(1:3*NATOMS, NP),I1,I2) 
 78:         !WRITE(MYUNIT, '(A,I5,I5)') & 
 79:         !     'atom_label_swaps> Swapped atoms', I1, I2 
 80:      ENDIF 
 81:      ! 63:      !
 82:      NQTOT = NQTOT + 1 64:      NQTOT = NQTOT + 1
 83:      NQ(NP) = NQ(NP) + 1 65:      NQ(NP) = NQ(NP) + 1
 84:      CALL QUENCH(.FALSE.,NP,ITER,TIME,BRUN,QDONE,SCREENC) 66:      CALL QUENCH(.FALSE.,NP,ITER,TIME,BRUN,QDONE,SCREENC)
 85:      IF (MOD(N-1,PRTFRQ).EQ.0) THEN 67:      IF (MOD(N-1,PRTFRQ).EQ.0) THEN
 86:         IF (NPAR.GT.1) THEN 68:         IF (NPAR.GT.1) THEN
 87:            WRITE(MYUNIT,'(A,I1,A,I10,A,F20.10,A,I5,A,G12.5,A,F11.1)') & 69:            WRITE(MYUNIT,'(A,I1,A,I10,A,F20.10,A,I5,A,G12.5,A,F11.1)') &
 88:                 '[',NP,']Qu ',NQ(NP),' E=',POTEL,' steps=',ITER, & 70:                 '[',NP,']Qu ',NQ(NP),' E=',POTEL,' steps=',ITER, &
 89:                 ' RMS=',RMS,' t=',TIME 71:                 ' RMS=',RMS,' t=',TIME
 90:         ELSE 72:         ELSE
 91:            WRITE(MYUNIT,'(A,I10,A,F20.10,A,I5,A,G12.5,A,F11.1)') & 73:            WRITE(MYUNIT,'(A,I10,A,F20.10,A,I5,A,G12.5,A,F11.1)') &
 92:                 'Qu ',NQ(NP),' E=',POTEL,' steps=',ITER, & 74:                 'Qu ',NQ(NP),' E=',POTEL,' steps=',ITER, &
 93:                 ' RMS=',RMS,' t=',TIME 75:                 ' RMS=',RMS,' t=',TIME
 94:         ENDIF 76:         ENDIF
 95:      ENDIF 77:      ENDIF
 96:      ! 78:      !
 97:      R=EXP(MIN(2.0D0,(E0-POTEL)/TEMP)) 79:      R=EXP(MIN(2.0D0,(E0-POTEL)/TEMP))
 98:      IF(DPRAND() < R) THEN ! Accept 80:      IF(DPRAND() < R) THEN ! Accept
 99:         NACC = NACC + 1 81:         NACC = NACC + 1
100:         NREJ_STREAK=0 
101:         IF(POTEL < EMIN - ECONV) THEN ! Store labels and coordinates 82:         IF(POTEL < EMIN - ECONV) THEN ! Store labels and coordinates
102:            EMIN=POTEL 83:            EMIN=POTEL
103:            XMIN(1:3*NATOMS)=COORDS(1:3*NATOMS, NP) 84:            XMIN(1:3*NATOMS)=COORDS(1:3*NATOMS, NP)
104:            ATOMLISTS_MIN(:,:,:) = ATOMLISTS(:,:,:) 85:            ATOMLISTS_MIN(:,:,:) = ATOMLISTS(:,:,:)
105:            INVATOMLISTS_MIN(:,:) = INVATOMLISTS(:,:) 86:            INVATOMLISTS_MIN(:,:) = INVATOMLISTS(:,:)
106:            WRITE(MYUNIT,'(A,F20.10,A,I8,A,F10.8)') & 87:            WRITE(MYUNIT,'(A,F20.10,A,I8,A,F10.8)') &
107:                 'uswaps> New EMIN= ',EMIN,' on swap', N,& 88:                 'uswaps> New EMIN= ',EMIN,' on swap', N,&
108:                 ' at T=', TEMP 89:                 ' at T=', TEMP
109:            IF(HIT) RETURN 90:            IF(HIT) RETURN
110:         ENDIF 91:         ENDIF
111:      ELSE ! Reject. Revert labels and coordinates. 92:      ELSE ! Reject. Revert labels and coordinates.
112:         NREJ = NREJ + 1 93:         NREJ = NREJ + 1
113:         IF(.NOT.FIXLABELS) THEN 94:         CALL SWAP_LABELS(I1,I2,NP)
114:            CALL SWAP_LABELS(I1,I2,NP) 
115:         ENDIF 
116:         COORDS(1:3*NATOMS,NP) = X0(1:3*NATOMS) 95:         COORDS(1:3*NATOMS,NP) = X0(1:3*NATOMS)
117:         POTEL = E0 96:         POTEL = E0
118:      ENDIF 97:      ENDIF
119:      ! 98:      !
120:      IF(MOD(N,LSWAPS_NUP)==0) THEN 99:      IF(MOD(N,LSWAPS_NUP)==0) THEN
121:         IF(LSWAPS_TFACTOR <= 1.0D0) THEN 100:         IF(LSWAPS_TFACTOR <= 1.0D0) THEN 
122:            ! Simulated annealing: always decrease temperature. 101:            ! Simulated annealing: always decrease temperature. 
123:            TEMP = TEMP*LSWAPS_TFACTOR102:            TEMP = TEMP*LSWAPS_TFACTOR
124:         ELSE ! Strive for ACC/REJ ratio of 0.5.103:         ELSE ! Strive for ACC/REJ ratio of 0.5.
125:            ! This will have to be recoded for desired ACC/REJ 104:            ! This will have to be recoded for desired ACC/REJ 
129:            ELSEIF(NACC > NREJ) THEN108:            ELSEIF(NACC > NREJ) THEN
130:               TEMP = TEMP/LSWAPS_TFACTOR109:               TEMP = TEMP/LSWAPS_TFACTOR
131:            ENDIF110:            ENDIF
132:            WRITE(MYUNIT,'(A,F7.5,A,F7.5)') &111:            WRITE(MYUNIT,'(A,F7.5,A,F7.5)') &
133:                 'uswaps> Accepted ratio ', &112:                 'uswaps> Accepted ratio ', &
134:                 DBLE(NACC)/DBLE(NACC+NREJ),' new T= ', TEMP113:                 DBLE(NACC)/DBLE(NACC+NREJ),' new T= ', TEMP
135:            NACC = 0; NREJ = 0114:            NACC = 0; NREJ = 0
136:         ENDIF115:         ENDIF
137:      ENDIF116:      ENDIF
138:      !117:      !
139:      IF((N==LSWAPS_N2).OR.(NREJ_STREAK==-LSWAPS_N2)) THEN 
140:         DONE=.TRUE. 
141:      ENDIF 
142:      ! 
143:   ENDDO118:   ENDDO
144:   !119:   !
145:   ATOMLISTS(:,:,:) = ATOMLISTS_MIN(:,:,:)120:   ATOMLISTS(:,:,:) = ATOMLISTS_MIN(:,:,:)
146:   INVATOMLISTS(:,:) = INVATOMLISTS_MIN(:,:)121:   INVATOMLISTS(:,:) = INVATOMLISTS_MIN(:,:)
147:   COORDS(1:3*NATOMS, NP) = XMIN(1:3*NATOMS)122:   COORDS(1:3*NATOMS, NP) = XMIN(1:3*NATOMS)
148:   POTEL = EMIN123:   POTEL = EMIN
149:   !124:   !
150:   WRITE(MYUNIT,'(A,G20.10,A,F8.5)') &125:   WRITE(MYUNIT,'(A,F20.10,A,F10.8)') &
151:        'uswaps> Final E= ', EMIN,' T= ', TEMP126:        'uswaps> Final E= ', EMIN,' T= ', TEMP
152:   !127:   !
153:   RETURN128:   RETURN
154:   !129:   !
155: END SUBROUTINE USWAPS130: END SUBROUTINE USWAPS


r31260/commons.f90 2016-10-11 12:30:19.642191734 +0100 r31259/commons.f90 2016-10-11 12:30:21.982222874 +0100
301:       INTEGER MAX_NPCALL301:       INTEGER MAX_NPCALL
302: 302: 
303: !ds656> Binary Gupta keywords, parameters, variables...303: !ds656> Binary Gupta keywords, parameters, variables...
304:       LOGICAL :: BGUPTAT, BGUPTATAB, BGUPTATBB304:       LOGICAL :: BGUPTAT, BGUPTATAB, BGUPTATBB
305: !ds656> Binary swap keywords and parameters305: !ds656> Binary swap keywords and parameters
306:       LOGICAL :: BASWAP, BASWAPTEST306:       LOGICAL :: BASWAP, BASWAPTEST
307:       INTEGER :: BASWAP_NMAX, BASWAP_NWAIT307:       INTEGER :: BASWAP_NMAX, BASWAP_NWAIT
308:       DOUBLE PRECISION :: BASWAP_FRAC !, BASWAP_TEMP no longer used 308:       DOUBLE PRECISION :: BASWAP_FRAC !, BASWAP_TEMP no longer used 
309: !ds656> Sequence of label swaps (a.k.a. block of basin-hopping with309: !ds656> Sequence of label swaps (a.k.a. block of basin-hopping with
310: !       exchange moves only)310: !       exchange moves only)
311:       LOGICAL :: LSWAPST, FIXLABELS311:       LOGICAL :: LSWAPST
312:       INTEGER :: LSWAPS_N1, LSWAPS_N2, LSWAPS_NUP312:       INTEGER :: LSWAPS_N1, LSWAPS_N2, LSWAPS_NUP
313:       DOUBLE PRECISION :: LSWAPS_TEMP, LSWAPS_TFACTOR313:       DOUBLE PRECISION :: LSWAPS_TEMP, LSWAPS_TFACTOR
314: !ds656> Sequence of label flips (a.k.a. block of semi-grand-314: !ds656> Sequence of label flips (a.k.a. block of semi-grand-
315: !       canonical basin-hopping with flip moves only)315: !       canonical basin-hopping with flip moves only)
316:       LOGICAL :: LFLIPST, LFLIPS_RESET316:       LOGICAL :: LFLIPST, LFLIPS_RESET
317:       INTEGER :: LFLIPS_N1, LFLIPS_N2, LFLIPS_NUP317:       INTEGER :: LFLIPS_N1, LFLIPS_N2, LFLIPS_NUP
318:       DOUBLE PRECISION :: LFLIPS_TEMP, LFLIPS_TFACTOR318:       DOUBLE PRECISION :: LFLIPS_TEMP, LFLIPS_TFACTOR
319: !ds656> Homotop refinement319: !ds656> Homotop refinement
320:       LOGICAL :: HOMOREFT, HOMOREFTEST, RANDPERMT, RANDMULTIPERMT,&320:       LOGICAL :: HOMOREFT, HOMOREFTEST, RANDPERMT, RANDMULTIPERMT,&
321:            HOMOREF_AUXT,HOMOREFCHECK, HOMOREF_BHT321:            HOMOREF_AUXT,HOMOREFCHECK, HOMOREF_BHT


r31260/keywords.f 2016-10-11 12:30:21.466222681 +0100 r31259/keywords.f 2016-10-11 12:30:22.246226387 +0100
474:       RINGROTSCALE=0.0D0474:       RINGROTSCALE=0.0D0
475:       TRACKDATAT=.FALSE.475:       TRACKDATAT=.FALSE.
476:       PROGRESS=.FALSE.476:       PROGRESS=.FALSE.
477:       listupdate=20477:       listupdate=20
478: 478: 
479:       BLJCLUSTER=.FALSE.479:       BLJCLUSTER=.FALSE.
480:       BLJCLUSTER_NOCUT=.FALSE.480:       BLJCLUSTER_NOCUT=.FALSE.
481:       BGUPTAT=.FALSE.481:       BGUPTAT=.FALSE.
482:       BGUPTATAB=.FALSE.482:       BGUPTATAB=.FALSE.
483:       BGUPTATBB=.FALSE.483:       BGUPTATBB=.FALSE.
484:       FIXLABELS=.FALSE. 
485:       LSWAPST=.FALSE.484:       LSWAPST=.FALSE.
486:       LSWAPS_N1 = 1485:       LSWAPS_N1 = 1
487:       LSWAPS_N2 = 1486:       LSWAPS_N2 = 1
488:       LSWAPS_TEMP = 0.1487:       LSWAPS_TEMP = 0.1
489:       LSWAPS_TFACTOR = 1.0488:       LSWAPS_TFACTOR = 1.0
490:       LSWAPS_NUP = 1489:       LSWAPS_NUP = 1
491:       LFLIPST=.FALSE.490:       LFLIPST=.FALSE.
492:       LFLIPS_RESET=.FALSE.491:       LFLIPS_RESET=.FALSE.
493:       LFLIPS_N1 = 1492:       LFLIPS_N1 = 1
494:       LFLIPS_N2 = 1493:       LFLIPS_N2 = 1
1595:          CALL READF(QAB)1594:          CALL READF(QAB)
1596:          CALL READF(ZAB)1595:          CALL READF(ZAB)
1597:          CALL READF(R0AB)1596:          CALL READF(R0AB)
1598:        ELSE IF (WORD.EQ.'BGUPTATBB') THEN1597:        ELSE IF (WORD.EQ.'BGUPTATBB') THEN
1599:          CALL READF(ABB)1598:          CALL READF(ABB)
1600:          CALL READF(PBB)1599:          CALL READF(PBB)
1601:          CALL READF(QBB)1600:          CALL READF(QBB)
1602:          CALL READF(ZBB)1601:          CALL READF(ZBB)
1603:          CALL READF(R0BB)1602:          CALL READF(R0BB)
1604:        ELSE IF (WORD.EQ.'BASWAPTEST') THEN1603:        ELSE IF (WORD.EQ.'BASWAPTEST') THEN
1605:           BASWAPTEST=.TRUE.1604:          BASWAPTEST=.TRUE.
1606:        ELSE IF (WORD.EQ.'FIXLABELS') THEN 
1607:           FIXLABELS=.TRUE. 
1608:        ELSE IF (WORD.EQ.'LSWAPS') THEN1605:        ELSE IF (WORD.EQ.'LSWAPS') THEN
1609:          LSWAPST=.TRUE.1606:          LSWAPST=.TRUE.
1610:          CALL READI(LSWAPS_N1)1607:          CALL READI(LSWAPS_N1)
1611:          CALL READI(LSWAPS_N2)1608:          CALL READI(LSWAPS_N2)
1612:          CALL READF(LSWAPS_TEMP)1609:          CALL READF(LSWAPS_TEMP)
1613:          IF(NITEMS > 4) CALL READF(LSWAPS_TFACTOR)1610:          IF(NITEMS > 4) CALL READF(LSWAPS_TFACTOR)
1614:          IF(NITEMS > 5) CALL READI(LSWAPS_NUP)1611:          IF(NITEMS > 5) CALL READI(LSWAPS_NUP)
1615:       ELSE IF (WORD.EQ.'LFLIPS') THEN1612:       ELSE IF (WORD.EQ.'LFLIPS') THEN
1616:          LFLIPST=.TRUE.1613:          LFLIPST=.TRUE.
1617:          CALL READI(LFLIPS_N1)1614:          CALL READI(LFLIPS_N1)
3801: !--------------------------------!3798: !--------------------------------!
3802: ! hk286 > Generalised Thomson    !3799: ! hk286 > Generalised Thomson    !
3803: !--------------------------------!3800: !--------------------------------!
3804: 3801: 
3805:       ELSE IF (WORD .EQ. 'GTHOMSONBIN') THEN3802:       ELSE IF (WORD .EQ. 'GTHOMSONBIN') THEN
3806:          GTHOMSONT = .TRUE.3803:          GTHOMSONT = .TRUE.
3807:          THOMSONT=.TRUE.3804:          THOMSONT=.TRUE.
3808:          RIGID = .TRUE.3805:          RIGID = .TRUE.
3809:          GTHOMPOT=73806:          GTHOMPOT=7
3810:          CALL READI(GTHOMSONBINN)3807:          CALL READI(GTHOMSONBINN)
3811:          NTYPEA = GTHOMSONBINN 
3812:          CALL READF(GTHOMSONBIND)3808:          CALL READF(GTHOMSONBIND)
3813:       ELSE IF (WORD .EQ. 'GTHOMSON') THEN3809:       ELSE IF (WORD .EQ. 'GTHOMSON') THEN
3814:          GTHOMSONT = .TRUE.3810:          GTHOMSONT = .TRUE.
3815:          THOMSONT=.TRUE.3811:          THOMSONT=.TRUE.
3816:          RIGID = .TRUE.3812:          RIGID = .TRUE.
3817:          CALL READI(GTHOMMET)3813:          CALL READI(GTHOMMET)
3818:          CALL READF(GTHOMSONZ)3814:          CALL READF(GTHOMSONZ)
3819:          IF (NITEMS.GT.3) THEN3815:          IF (NITEMS.GT.3) THEN
3820:             CALL READF(GTHOMSONC)3816:             CALL READF(GTHOMSONC)
3821:          ENDIF3817:          ENDIF


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0