
















































































      CHARACTER*28 FUNCTION DIF000(IAT)



















      IMPLICIT      NONE 
      INCLUDE       'BIGINC.INC'
      INTEGER       IAT, IAA
      LOGICAL       WIFITW, WIFITI
      CHARACTER*4   T4
      CHARACTER*28  LOC
      CHARACTER*23  DIF001







      IF (.NOT.WIFITI(IAT)) THEN
         CALL GVSTTB ('?M0052A')
         CALL GVSSTX (DIF000,'?M1040')
         CALL GVSTTI2 ('IAT,NUMAFT=',IAT,NUMATF)
         CALL GVSKIL
         GOTO 998
      END IF



      IAA=ATIAA(IAT)
      LOC=DIF001(IAA)



      IF (WIFITW(IAT)) THEN
         CALL GVSSTX (LOC(12:15),T4(ORGNAM(IAT)))
         CALL GVSSTX (LOC(25:28),T4(ONESAT(IAT)))
      ELSE
         CALL GVSSTX (LOC(25:28),T4(ONESAT(IAT)))
      END IF



      IF (USEALT.AND.ALTATM(IAT).NE.' ') CALL GVSSTX (LOC(24:24),
     + ALTATM(IAT))



      CALL GVSSTX (DIF000,LOC)



  998 CONTINUE


      RETURN
      END
      CHARACTER*23 FUNCTION DIF001(IAA)



















      IMPLICIT      NONE
      INCLUDE       'BIGINC.INC'
      CHARACTER*1   INSLOC, CHAOUT
      CHARACTER*2   MODCHR
      CHARACTER*5   RESN
      CHARACTER*23  LOCLIN
      CHARACTER*80  LOCFMT
      INTEGER       IAA
      LOGICAL       WIFIRI, WIFIRR







      IF (.NOT.WIFIRI(IAA)) THEN
         CALL GVSTTB ('?M0052A')
         CALL GVSTTI2 ('?M0934A',IAA,NUMAAT)
         CALL GVSSTX (DIF001,'?M1041')
         CALL GVSKIL
         GOTO 998
      END IF



      IF (INSRTC(IAA).EQ.' ') THEN
         IF (WIFPAR(436).EQ.2) THEN
            CALL GVSSTX (INSLOC,'-')
         ELSE IF (WIFPAR(436).EQ.1) THEN
            CALL GVSSTX (INSLOC,'-')
         ELSE IF (WIFPAR(436).EQ.0) THEN
            INSLOC=' '
         END IF
      ELSE
         INSLOC=INSRTC(IAA)
      END IF

      IF (INSLOC.EQ.' ') THEN
         CALL GVSSTX (RESN,NUMNAM(IAA))
      ELSE
         CALL GVSCCC (RESN,NUMNAM(IAA),INSLOC)
      END IF



      IF (MODNMB(IAA).EQ.0) THEN
         IF (WIFPAR(436).EQ.2) THEN
            CALL GVSSTX (MODCHR,' -')
         ELSE IF (WIFPAR(436).EQ.1) THEN
            CALL GVSSTX (MODCHR,' -')
         ELSE IF (WIFPAR(436).EQ.0) THEN
            CALL GVSCTB (MODCHR,2)
         END IF
      ELSE
         CALL GVSSTX (LOCFMT,'?FMT1404')
         WRITE (MODCHR,LOCFMT,ERR=999) MODNMB(IAA)
      END IF



      IF (CHANAM(IAA).EQ.' ') THEN
         CHAOUT='-'
      ELSE
         CHAOUT=CHANAM(IAA)
      END IF











      IF (WIFPAR(1).EQ.0.AND.WIFIRR(IAA)) THEN
         IF (IAA.LE.9999) THEN
            CALL GVSSTX (LOCFMT,'?FMT279A4')
         ELSE
            CALL GVSSTX (LOCFMT,'?FMT279A5')
         END IF
         WRITE (LOCLIN,LOCFMT,ERR=999) IAA,A1NAME(RESTYP(IAA)),
     +    RESN,CHAOUT,MODCHR



      ELSE
         IF (IAA.LE.9999) THEN
            CALL GVSSTX (LOCFMT,'?FMT279B4')
         ELSE
            CALL GVSSTX (LOCFMT,'?FMT279B5')
         END IF
         WRITE (LOCLIN,LOCFMT,ERR=999) IAA,ONESA3(IAA),RESN,CHAOUT,
     +    MODCHR
      END IF



      DIF001=LOCLIN
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF001')
      CALL GVSSTX (DIF001,'?M1042')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF002 (IUNIT,IAA,VALUE)

















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT
      REAL          VALUE
      CHARACTER*20  FMT
      CHARACTER*23  DIF001, IAAS
      CHARACTER*40  LOCLIN







      IAAS=DIF001(IAA)



      CALL GVSCTB (LOCLIN,LEN(LOCLIN))



      CALL GVSFMTL (FMT,'?FMT831')
      CALL GVSCTB (LOCLIN,40)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,VALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSFMTL (FMT,'?FMT088')
         WRITE (IUNIT,FMT,ERR=999) LOCLIN
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF002')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF002A (IUNIT,IAA,IVALUE)

















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT, IVALUE
      CHARACTER*20  FMT
      CHARACTER*23  DIF001, IAAS
      CHARACTER*40  LOCLIN







      IAAS=DIF001(IAA)



      CALL GVSCTB (LOCLIN,LEN(LOCLIN))



      CALL GVSFMTL (FMT,'?FMT198')
      CALL GVSCTB (LOCLIN,40)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,IVALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSFMTL (FMT,'?FMT088')
         WRITE (IUNIT,FMT,ERR=999) LOCLIN
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF002A')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF002B (IUNIT,IAA,IVALUE,VALUE)

















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT, IVALUE
      REAL          VALUE
      CHARACTER*20  FMT
      CHARACTER*23  DIF001, IAAS
      CHARACTER*80  LOCLIN







      IAAS=DIF001(IAA)



      CALL GVSCTB (LOCLIN,LEN(LOCLIN))



      CALL GVSFMTL (FMT,'?FMT198A')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,IVALUE,VALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSFMTL (FMT,'?FMT111')
         WRITE (IUNIT,FMT,ERR=999) LOCLIN
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF002B')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF002C (IUNIT,IAA,IVALUE,VALUE1,VALUE2)

















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT, IVALUE
      REAL          VALUE1, VALUE2
      CHARACTER*20  FMT
      CHARACTER*23  DIF001, IAAS
      CHARACTER*80  LOCLIN







      IAAS=DIF001(IAA)



      CALL GVSCTB (LOCLIN,LEN(LOCLIN))



      CALL GVSFMTL (FMT,'?FMT198A')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,IVALUE,VALUE1,VALUE2
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSFMTL (FMT,'?FMT111')
         WRITE (IUNIT,FMT,ERR=999) LOCLIN
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF002C')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF002D (IUNIT,IAA,IVALUE,VALUE1,VALUE2,VALUE3)

















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT, IVALUE
      REAL          VALUE1, VALUE2, VALUE3
      CHARACTER*20  FMT
      CHARACTER*23  DIF001, IAAS
      CHARACTER*80  LOCLIN







      IAAS=DIF001(IAA)



      CALL GVSCTB (LOCLIN,LEN(LOCLIN))



      CALL GVSFMTL (FMT,'?FMT198A')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,IVALUE,VALUE1,VALUE2,VALUE3
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSFMTL (FMT,'?FMT111')
         WRITE (IUNIT,FMT,ERR=999) LOCLIN
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF002D')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF002E (IUNIT,IAA,IVALUE,VALUE)

















      IMPLICIT      NONE
      INCLUDE       'BIGINC.INC'
      INCLUDE       'HSTINC.INC'
      INTEGER       IAA, IUNIT, IVALUE
      REAL          VALUE
      CHARACTER*1   CHAR1
      CHARACTER*23  DIF001, IAAS
      CHARACTER*80  LOCLIN







      IAAS=DIF001(IAA)



      CALL GVSCTB (LOCLIN,LEN(LOCLIN))
      CHAR1=LOCHST(IAA)



      CALL GVSFMTL (FMT,'?FMT198B')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,CHAR1,IVALUE,VALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSFMTL (FMT,'?FMT111')
         WRITE (IUNIT,FMT,ERR=999) LOCLIN
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF002E')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF003 (IUNIT,IAA,ICLU,LOCLIN)

















      IMPLICIT      NONE
      INCLUDE       'CLUFAM.INC'
      INTEGER       IAA, ICLU, LOCLEN, IUNIT
      CHARACTER*20  FMT
      CHARACTER*80  LOCLIN













      LOCLEN=LEN(LOCLIN)
      IF (LOCLEN.LT.80) THEN
         CALL GVSTTI ('?CLUCMM2',ICLU)
         CALL GVSTTI ('?CLUCNB2',LENCLU(ICLU))
         GOTO 998
      END IF



      CALL GVSSTX (LOCLIN,'?CLUCMM')
      CALL GVSFMTL (FMT,'?FMT024')
      WRITE (LOCLIN(60:80),FMT,ERR=999) ICLU
      CALL GVSRDB (LOCLIN)
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF



      CALL GVSSTX (LOCLIN,'?CLUCNB2')
      CALL GVSFMTL (FMT,'?FMT024')
      WRITE (LOCLIN(60:80),FMT,ERR=999) LENCLU(ICLU)
      CALL GVSRDB (LOCLIN)
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF



      CALL GVSSTX (LOCLIN,'?CLUCNM2')
      CALL GVSSTX (LOCLIN(51:LOCLEN),CLUNAM(ICLU)
     + (1:MIN(30,LEN(CLUNAM(ICLU)))))
      CALL GVSRDB (LOCLIN)
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF003')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF004 (IUNIT,IAA,VALUE1,VALUE2)

















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT
      REAL          VALUE1, VALUE2
      CHARACTER*6   HST, DSP006
      CHARACTER*23  IAAS, DIF001, FMT
      CHARACTER*132 LOCLIN







      IAAS=DIF001(IAA)
      HST=DSP006(IAA)



      CALL GVSFMTL (FMT,'?FMT391')
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,HST,VALUE1,VALUE2
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSFMTL (FMT,'?FMT208')
         WRITE (IUNIT,FMT,ERR=999) LOCLIN
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF004')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF005 (IUNIT,IAA,IFAM,LOCLIN)

















      IMPLICIT      NONE
      INCLUDE       'CLUFAM.INC'
      INTEGER       IAA, IFAM, LOCLEN, IUNIT
      LOGICAL       GVFIBN
      CHARACTER*80  LOCLIN, FMT







      IF (.NOT.GVFIBN(IAA,FAMILY(1,IFAM),FAMILY(2,IFAM))) GOTO 998
      LOCLEN=LEN(LOCLIN)
      IF (LOCLEN.LT.80) THEN
         CALL GVSTTIU (IUNIT,'?CLUFMM2',IFAM)
         CALL GVSTTIu2 (IUNIT,'?CLUFNB3',FAMILY(1,IFAM),FAMILY(2,IFAM))
         GOTO 998
      END IF



      CALL GVSFMTL (FMT,'?FMT340')



      CALL GVSSTX (LOCLIN,'?CLUFMM')
      WRITE (LOCLIN(60:80),FMT,ERR=999) IFAM
      CALL GVSRDB (LOCLIN)
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF



      CALL GVSSTX (LOCLIN,'?CLUFNB2')
      WRITE (LOCLIN(60:80),FMT,ERR=999) FAMILY(1,IFAM),FAMILY(2,IFAM)
      CALL GVSRDB (LOCLIN)
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF



      CALL GVSSTX (LOCLIN,'?CLUFNM2')
      CALL GVSSTX (LOCLIN(51:LOCLEN),FAMNAM(IFAM)
     + (1:MIN(30,LEN(FAMNAM(IFAM)))))
      CALL GVSRDB (LOCLIN)
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF005')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF006 (IUNIT,IAA,VALUE1,VALUE2,VALUE3)

















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT
      REAL          VALUE1, VALUE2, VALUE3
      CHARACTER*6   HST, DSP006
      CHARACTER*23  IAAS, DIF001
      CHARACTER*80  LOCLIN, FMT







      CALL GVSCTB (LOCLIN,LEN(LOCLIN))
      IAAS=DIF001(IAA)
      HST=DSP006(IAA)



      CALL GVSFMTL (FMT,'?FMT885A')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,HST,VALUE1,VALUE2,VALUE3
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF006')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF006A (IUNIT,IAA,VALUE1,VALUE2,VALUE3,VALUE4)

















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT
      REAL          VALUE1, VALUE2, VALUE3, VALUE4
      CHARACTER*23  IAAS, DIF001
      CHARACTER*80  LOCLIN, FMT







      CALL GVSCTB (LOCLIN,LEN(LOCLIN))
      IAAS=DIF001(IAA)



      CALL GVSFMTL (FMT,'?FMT885')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,VALUE1,VALUE2,VALUE3,VALUE4
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF006')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF006A2 (IUNIT,IAA,VALUE1,VALUE2,VALUE3,VALUE4,
     + VALUE5,VALUE6)

















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT
      REAL          VALUE1, VALUE2, VALUE3, VALUE4, VALUE5, VALUE6
      CHARACTER*23  IAAS, DIF001
      CHARACTER*100  LOCLIN, FMT







      CALL GVSCTB (LOCLIN,LEN(LOCLIN))
      IAAS=DIF001(IAA)



      CALL GVSFMTL (FMT,'?FMT885')
      CALL GVSCTB (LOCLIN,100)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,VALUE1,VALUE2,VALUE3,VALUE4,
     +     VALUE5, VALUE6
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF006')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF006B (IUNIT,IAA,JAA,VALUE1,VALUE2,VALUE3)

















      IMPLICIT      NONE
      INTEGER       IAA, JAA, IUNIT
      REAL          VALUE1, VALUE2, VALUE3
      CHARACTER*23  IAAS, JAAS, DIF001
      CHARACTER*80  LOCLIN, FMT







      CALL GVSCTB (LOCLIN,LEN(LOCLIN))
      IAAS=DIF001(IAA)
      JAAS=DIF001(JAA)



      CALL GVSFMTL (FMT,'?FMT886')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,JAAS,VALUE1,VALUE2,VALUE3
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF006')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF006C (IUNIT,IAA,JAA,VALUE1,VALUE2,VALUE3,VALUE4)

















      IMPLICIT      NONE
      INTEGER       IAA, JAA, IUNIT
      REAL          VALUE1, VALUE2, VALUE3, VALUE4
      CHARACTER*23  IAAS, JAAS, DIF001
      CHARACTER*132 LOCLIN, FMT







      CALL GVSCTB (LOCLIN,LEN(LOCLIN))
      IAAS=DIF001(IAA)
      JAAS=DIF001(JAA)



      CALL GVSFMTL (FMT,'?FMT886')
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,JAAS,VALUE1,VALUE2,VALUE3,VALUE4
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF006')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF006D (IUNIT,IAA,VALUE1,VALUE2,VALUE3,TEXT)

















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT
      REAL          VALUE1, VALUE2, VALUE3
      CHARACTER*23  IAAS, DIF001
      CHARACTER*132 LOCLIN, FMT
      CHARACTER*(*) TEXT







      CALL GVSCTB (LOCLIN,LEN(LOCLIN))
      IAAS=DIF001(IAA)



      CALL GVSFMTL (FMT,'?FMT887')
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,VALUE1,VALUE2,VALUE3,TEXT
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF006D')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF007 (IUNIT,IAA,V1,V2,V3,V4,V5,LOCLIN)



















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT
      REAL          V1, V2, V3, V4, V5
      CHARACTER*(*) LOCLIN
      CHARACTER*80  LINE, FMT







      IF (LEN(LOCLIN).LE.79) THEN
         CALL GVSFMTL (FMT,'?FMT888')
         CALL GVSCTB (LINE,80)
         WRITE (LINE,FMT,ERR=999) IAA,V1,V2,V3,V4,V5
         IF (IUNIT.EQ.6) THEN
            CALL GVSTT6 (LINE)
         ELSE
            CALL GVSTTU (IUNIT,LINE)
         END IF
         GOTO 998
      END IF



      CALL GVSFMTL (FMT,'?FMT889')
      CALL GVSCTB (LOCLIN,LEN(LOCLIN))
      WRITE (LOCLIN,FMT,ERR=999) IAA,V1,V2,V3,V4,V5



      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF007')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF007A (IUNIT,IAA,V1,V2,V3,V4,V5,V6)



















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT
      REAL          V1, V2, V3, V4, V5, V6
      CHARACTER*132 LOCLIN
      CHARACTER*80  FMT
      CHARACTER*23  DIF001, IAAS







      IAAS=DIF001(IAA)
      CALL GVSFMTL (FMT,'?FMT890')
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,V1,V2,V3,V4,V5,V6
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF007A')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF008 (TEXT,IAA)

















      IMPLICIT      NONE
      CHARACTER*(*) TEXT
      CHARACTER*132 LOCLIN
      CHARACTER*23  IAAS, DIF001
      INTEGER       IAA, GVFLEN







      CALL GVSCTB (LOCLIN,132)
      IAAS=DIF001(IAA)



      CALL GVSSTX (LOCLIN,TEXT(1:GVFLEN(TEXT)))
      CALL GVSSTX (LOCLIN(GVFLEN(LOCLIN)+2:132),IAAS)
      CALL GVSTT6 (LOCLIN)




      
      RETURN
      END   
      SUBROUTINE DIF008A (IUNIT,IAA,TEXT)

















      IMPLICIT      NONE
      INTEGER       IAA, GVFLEN, IUNIT
      CHARACTER*(*) TEXT
      CHARACTER*132 LOCLIN
      CHARACTER*23  IAAS, DIF001







      IAAS=DIF001(IAA)



      CALL GVSSTX (LOCLIN,IAAS)
      CALL GVSSTX (LOCLIN(GVFLEN(LOCLIN)+2:132),TEXT(1:GVFLEN(TEXT)))
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF




      
      RETURN
      END   
      SUBROUTINE DIF008B (IUNIT,IAA,TEXT,V1,V2)

















      IMPLICIT      NONE
      INTEGER       IAA, GVFLEN, IUNIT
      REAL          V1, V2
      CHARACTER*(*) TEXT
      CHARACTER*132 LOCLIN
      CHARACTER*23  IAAS, DIF001, FMT







      IAAS=DIF001(IAA)



      CALL GVSSTX (LOCLIN,IAAS)
      CALL GVSSTX (LOCLIN(25:48),TEXT(1:MIN(24,GVFLEN(TEXT))))
      CALL GVSFMTL (FMT,'?FMT302')
      WRITE (LOCLIN(49:64),FMT,ERR=999) V1,V2
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



 999  CONTINUE
      CALL GVSEIW ('?DIF008B')



 998  CONTINUE

      
      RETURN
      END   
      SUBROUTINE DIF008C (IUNIT,IAA,TEXT,IVALUE)

















      IMPLICIT      NONE
      INTEGER       IAA, GVFLEN, IUNIT, IVALUE
      CHARACTER*(*) TEXT
      CHARACTER*132 LOCLIN
      CHARACTER*23  IAAS, DIF001, FMT







      IAAS=DIF001(IAA)



      CALL GVSSTX (LOCLIN,IAAS)
      CALL GVSSTX (LOCLIN(25:114),TEXT(1:MIN(90,GVFLEN(TEXT))))
      CALL GVSFMTL (FMT,'?FMT306')
      WRITE (LOCLIN(116:125),FMT,ERR=999) IVALUE
      CALL GVSRDB (LOCLIN(25:132))
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



 999  CONTINUE
      CALL GVSEIW ('?DIF008C')



 998  CONTINUE

      
      RETURN
      END   
      SUBROUTINE DIF008D (IUNIT,IAA,VALUE,TEXT)

















      IMPLICIT      NONE
      INTEGER       IAA, GVFLEN, IUNIT
      REAL          VALUE
      CHARACTER*(*) TEXT
      CHARACTER*132 LOCLIN
      CHARACTER*23  IAAS, DIF001, FMT







      IAAS=DIF001(IAA)



      CALL GVSSTX (LOCLIN,IAAS)
      CALL GVSFMTL (FMT,'?FMT302')
      WRITE (LOCLIN(25:33),FMT,ERR=999) VALUE
      CALL GVSSTX (LOCLIN(43:132),TEXT(1:MIN(90,GVFLEN(TEXT))))
      CALL GVSRDB (LOCLIN(30:132))
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



 999  CONTINUE
      CALL GVSEIW ('?DIF008D')



 998  CONTINUE

      
      RETURN
      END   
      SUBROUTINE DIF008E (IUNIT,TEXT,IAA,VALUE)

















      IMPLICIT      NONE
      INTEGER       IAA, GVFLEN, IUNIT, LENLIN
      REAL          VALUE
      CHARACTER*(*) TEXT
      CHARACTER*132 LOCLIN
      CHARACTER*23  IAAS, DIF001, FMT







      IAAS=DIF001(IAA)



      CALL GVSSTX (LOCLIN,TEXT(1:MIN(90,GVFLEN(TEXT))))
      CALL GVSCBC (LOCLIN,IAAS)
      LENLIN=GVFLEN(LOCLIN)
      CALL GVSFMTL (FMT,'?FMT302')
      WRITE (LOCLIN(LENLIN+2:LENLIN+10),FMT,ERR=999) VALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



 999  CONTINUE
      CALL GVSEIW ('?DIF008E')



 998  CONTINUE

      
      RETURN
      END   
      SUBROUTINE DIF009 (IUNIT,IAA,JAA)

















      IMPLICIT      NONE
      CHARACTER*60  LOCLIN
      INTEGER       IAA, JAA, IUNIT
      CHARACTER*23  IAAS, JAAS, DIF001, FMT







      IAAS=DIF001(IAA)
      JAAS=DIF001(JAA)



      CALL GVSFMTL (FMT,'?FMT027')
      CALL GVSCTB (LOCLIN,60)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,JAAS
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF009')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF009S (IAA,JAA,C1,C2,IVAL)

















      IMPLICIT      NONE
      INTEGER       IAA, JAA, IVAL
      CHARACTER*1   C1, C2
      CHARACTER*23  IAAS, JAAS, DIF001
      CHARACTER*60  LOCLIN, FMT







      IAAS=DIF001(IAA)
      JAAS=DIF001(JAA)



      CALL GVSFMTL (FMT,'?FMT892')
      CALL GVSCTB (LOCLIN,60)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,JAAS,C1,C2,IVAL
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF009')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF010 (IAA,JAA,TEXT,VALUE)

















      IMPLICIT      NONE
      INTEGER       IAA, JAA, GVFLEN
      REAL          VALUE
      CHARACTER*23  DIF001, IAAS, JAAS
      CHARACTER*80  LOCLIN, XTEXT, FMT
      CHARACTER*(*) TEXT







      IAAS=DIF001(IAA)
      JAAS=DIF001(JAA)



      CALL GVSSTX (XTEXT,TEXT)
      CALL GVSFMTL (FMT,'?FMT893')
      WRITE (LOCLIN,FMT,ERR=999) XTEXT(1:GVFLEN(XTEXT)),IAAS,JAAS,VALUE
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF010')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF010A (IAA,JAA,TEXT)

















      IMPLICIT      NONE
      INTEGER       IAA, JAA, GVFLEN
      CHARACTER*(*) TEXT
      CHARACTER*23  DIF001, IAAS, JAAS
      CHARACTER*80  LOCLIN, XTEXT, FMT







      IAAS=DIF001(IAA)
      JAAS=DIF001(JAA)



      CALL GVSFMTL (FMT,'?FMT894')
      CALL GVSSTX (XTEXT,TEXT)
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) XTEXT(1:GVFLEN(XTEXT)),IAAS,JAAS
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF010A')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF010B (IUNIT,IAA,JAA,VALUE)

















      IMPLICIT      NONE
      INTEGER       IAA, JAA, IUNIT
      REAL          VALUE
      CHARACTER*23  DIF001, IAAS, JAAS
      CHARACTER*80  LOCLIN, FMT







      IAAS=DIF001(IAA)
      JAAS=DIF001(JAA)



      CALL GVSFMTL (FMT,'?FMT895')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,JAAS,VALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF010B')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF010C (IUNIT,IAA,JAA,VAL1,VAL2)

















      IMPLICIT      NONE
      INTEGER       IAA, JAA, IUNIT
      REAL          VAL1, VAL2
      CHARACTER*23  DIF001, IAAS, JAAS
      CHARACTER*80  LOCLIN, FMT







      IAAS=DIF001(IAA)
      JAAS=DIF001(JAA)



      CALL GVSFMTL (FMT,'?FMT895')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IAAS,JAAS,VAL1,VAL2
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF010C')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF010CU (IUNIT,IAA,JAA,VAL1,VAL2)

















      IMPLICIT      NONE
      INTEGER       IAA, JAA, IUNIT
      REAL          VAL1, VAL2
      CHARACTER*23  DIF001, IAAS, JAAS, FMT
      LOGICAL       GVFFOP







      IF (.NOT.GVFFOP(IUNIT)) THEN
         CALL GVSTTB ('?M1480')
         GOTO 998
      END IF



      IAAS=DIF001(IAA)
      JAAS=DIF001(JAA)



      CALL GVSFMTL (FMT,'?FMT895')
      WRITE (IUNIT,FMT,ERR=999) IAAS,JAAS,VAL1,VAL2
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF010CU')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF010U (IUNIT,IAA,JAA,TEXT,VALUE)

















      IMPLICIT      NONE
      INTEGER       IAA, JAA, GVFLEN, IUNIT
      REAL          VALUE
      LOGICAL       GVFFOP
      CHARACTER*23  DIF001, IAAS, JAAS
      CHARACTER*80  XTEXT, FMT
      CHARACTER*132 LOCLIN
      CHARACTER*(*) TEXT







      IF (.NOT.GVFFOP(IUNIT)) THEN
         CALL GVSTTE ('?M1514')
         GOTO 998
      END IF



      IAAS=DIF001(IAA)
      JAAS=DIF001(JAA)



      CALL GVSFMTL (FMT,'?FMT893')
      CALL GVSSTX (XTEXT,TEXT)
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) XTEXT(1:GVFLEN(XTEXT)),IAAS,JAAS,VALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF010')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF011 (IAA1,IAA2,JAA1,JAA2,TEXT,VALUE,LOCLIN)

















      IMPLICIT      NONE
      INTEGER       IAA1, IAA2, JAA1, JAA2
      REAL          VALUE
      CHARACTER*(*) LOCLIN, TEXT
      CHARACTER*80  BUF, FMT







      IF (LEN(LOCLIN).LE.79) THEN
         CALL GVSFMTL (FMT,'?FMT897')
         CALL GVSCTB (BUF,80)
         CALL GVSTT6 (TEXT)
         WRITE (BUF,FMT,ERR=999) IAA1,IAA2,JAA1,JAA2,VALUE
         CALL GVSTT6 (BUF)
         GOTO 998
      END IF



      CALL GVSSTX (LOCLIN,TEXT)



      CALL GVSFMTL (FMT,'?FMT897')
      WRITE (LOCLIN(41:80),FMT,ERR=999) IAA1,IAA2,JAA1,JAA2,VALUE



      CALL GVSRDB (LOCLIN)



      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF011')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF012 (IUNIT,IAT,JAT,VALUE)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT, IUNIT
      REAL          VALUE
      LOGICAL       WIFITI
      CHARACTER*80  LOCLIN, FMT
      CHARACTER*28  DIF000, IATS, JATS







      IF ((.NOT.WIFITI(IAT)).OR.(.NOT.WIFITI(JAT))) THEN
         CALL GVSTTB ('?M1520')
         CALL GVSKIL
         GOTO 998
      END IF



      IATS=DIF000(IAT)
      JATS=DIF000(JAT)



      CALL GVSFMTL (FMT,'?FMT896')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,VALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF012')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF012A (IAT,JAT,VALUE1,VALUE2)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT
      REAL          VALUE1, VALUE2
      CHARACTER*80  LOCLIN
      CHARACTER*28  IATS, JATS, DIF000, FMT







      IATS=DIF000(IAT)
      JATS=DIF000(JAT)



      CALL GVSFMTL (FMT,'?FMT896')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,VALUE1,VALUE2
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF012A')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF012B (IAT,JAT,VALUE1,VALUE2,VALUE3)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT
      REAL          VALUE1, VALUE2, VALUE3
      CHARACTER*28  DIF000, IATS, JATS, FMT
      CHARACTER*90  LOCLIN







      IATS=DIF000(IAT)
      JATS=DIF000(JAT)



      CALL GVSFMTL (FMT,'?FMT896')
      CALL GVSCTB (LOCLIN,90)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,VALUE1,VALUE2,VALUE3
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF012B')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF012C (IAT,JAT,VALUE1,VALUE2,VALUE3,VALUE4)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT
      REAL          VALUE1, VALUE2, VALUE3, VALUE4
      CHARACTER*28  DIF000, IATS, JATS, FMT
      CHARACTER*100 LOCLIN







      IATS=DIF000(IAT)
      JATS=DIF000(JAT)



      CALL GVSFMTL (FMT,'?FMT896')
      CALL GVSCTB (LOCLIN,100)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,VALUE1,VALUE2,
     + VALUE3,VALUE4
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF012C')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF012D (IUNIT,IAT,JAT,TEXT,VALUE)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT, IUNIT, ILEN, GVFLEN
      REAL          VALUE
      LOGICAL       WIFITI
      CHARACTER*30  FMT
      CHARACTER*28  DIF000, IATS, JATS
      CHARACTER*128 LOCLIN
      CHARACTER*(*) TEXT







      IF ((.NOT.WIFITI(IAT)).OR.(.NOT.WIFITI(JAT))) THEN
         CALL GVSTTB ('?M1520')
         CALL GVSKIL
         GOTO 998
      END IF



      IATS=DIF000(IAT)
      JATS=DIF000(JAT)



      CALL GVSFMTL (FMT,'?FMT896')
      CALL GVSSTX (LOCLIN,TEXT)
      ILEN=GVFLEN(LOCLIN)
      WRITE (LOCLIN(ILEN+3:128),FMT,ERR=999) IATS,JATS,VALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF012D')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF012S (IUNIT,IAT,JAT,VALUE,ISYM)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT, IUNIT, ISYM
      REAL          VALUE
      LOGICAL       WIFITI
      CHARACTER*80  LOCLIN, FMT
      CHARACTER*28  DIF000, IATS, JATS







      IF ((.NOT.WIFITI(IAT)).OR.(.NOT.WIFITI(JAT))) THEN
         CALL GVSTTB ('?M1520')
         CALL GVSKIL
         GOTO 998
      END IF



      IATS=DIF000(IAT)
      JATS=DIF000(JAT)



      CALL GVSFMTL (FMT,'?FMT896S')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,VALUE,ISYM
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF012S')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF013 (IUNIT,IAT,VALUE)

















      IMPLICIT      NONE
      INTEGER       IAT, IUNIT
      REAL          VALUE
      CHARACTER*80  LOCLIN
      CHARACTER*28  DIF000, ATS, FMT





      ATS=DIF000(IAT)

      CALL GVSFMTL (FMT,'?FMT885')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) ATS,VALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF013')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF013A (IUNIT,IAT,VALUE1,VALUE2)

















      IMPLICIT      NONE
      INTEGER       IAT, IUNIT
      REAL          VALUE1, VALUE2
      CHARACTER*80  LOCLIN
      CHARACTER*28  DIF000, ATS, FMT





      ATS=DIF000(IAT)

      CALL GVSFMTL (FMT,'?FMT885')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) ATS,VALUE1,VALUE2
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF013A')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF013B (IUNIT,IAT,VALUE1,VALUE2,VALUE3)

















      IMPLICIT      NONE
      INTEGER       IAT, IUNIT
      REAL          VALUE1, VALUE2, VALUE3
      CHARACTER*80  LOCLIN
      CHARACTER*28  DIF000, ATS, FMT





      ATS=DIF000(IAT)

      CALL GVSFMTL (FMT,'?FMT885')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) ATS,VALUE1,VALUE2,VALUE3
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF013B')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF013C (IUNIT,IAT,IVALUE)

















      IMPLICIT      NONE
      INTEGER       IAT, IVALUE, IUNIT
      CHARACTER*80  LOCLIN
      CHARACTER*28  DIF000, ATS, FMT







      ATS=DIF000(IAT)



      CALL GVSFMTL (FMT,'?FMT898')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) ATS,IVALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF013C')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF013D (IUNIT,IAT,IVALUE1,IVALUE2)

















      IMPLICIT      NONE
      INTEGER       IAT, IVALUE1, IVALUE2, IUNIT
      CHARACTER*80  LOCLIN
      CHARACTER*28  DIF000, ATS, FMT







      ATS=DIF000(IAT)



      CALL GVSFMTL (FMT,'?FMT898')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) ATS,IVALUE1,IVALUE2
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF013D')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF013E (IUNIT,IAT,VALUE,IVALUE)

















      IMPLICIT      NONE
      INTEGER       IAT, IUNIT, IVALUE
      REAL          VALUE
      CHARACTER*80  LOCLIN
      CHARACTER*28  DIF000, ATS, FMT





      ATS=DIF000(IAT)

      CALL GVSFMTL (FMT,'?FMT885M')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) ATS,VALUE,IVALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF013E')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF014 (IUNIT,IAA,JAA)

















      IMPLICIT      NONE
      INCLUDE       'BIGINC.INC'
      INTEGER       IAA, JAA, IUNIT
      REAL          WIFDST
      LOGICAL       WIFIRA, WIFIRN
      CHARACTER*80  LOCLIN
      CHARACTER*23  IAAS, JAAS, DIF001







      IAAS=DIF001(IAA)
      JAAS=DIF001(JAA)



      CALL GVSFMT ('?FMT899')
      CALL GVSCTB (LINE,80)
      IF (WIFIRA(IAA)) THEN
         WRITE (LOCLIN,FMT,ERR=999) IAAS,JAAS,WIFDST(PNTAAC(IAA),
     +    PNTAAC(JAA))
      ELSE IF (WIFIRN(IAA)) THEN
         WRITE (LOCLIN,FMT,ERR=999) IAAS,JAAS,WIFDST(PNTAAS(IAA),
     +    PNTAAS(JAA))
      ELSE 
         WRITE (LOCLIN,FMT,ERR=999) IAAS, JAAS
      END IF
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF014')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF014A (IAA,JAA,KAA)

















      IMPLICIT      NONE
      INTEGER       IAA, JAA, KAA
      LOGICAL       WIFIRA, WIFIRN
      CHARACTER*80  LOCLIN
      CHARACTER*23  IAAS, JAAS, KAAS, DIF001, FMT







      IAAS=DIF001(IAA)
      JAAS=DIF001(JAA)
      KAAS=DIF001(KAA)



      CALL GVSFMTL (FMT,'?FMT900')
      CALL GVSCTB (LOCLIN,80)
      IF (WIFIRA(IAA)) THEN
         WRITE (LOCLIN,FMT,ERR=999) IAAS,JAAS,KAAS
      ELSE IF (WIFIRN(IAA)) THEN
         WRITE (LOCLIN,FMT,ERR=999) IAAS,JAAS,KAAS
      ELSE 
         WRITE (LOCLIN,FMT,ERR=999) IAAS,JAAS,KAAS
      END IF
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF014A')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF015 (IUNIT,TEXT,IAT)



















      IMPLICIT      NONE 
      INTEGER       IAT, GVFLEN, IUNIT
      CHARACTER*80  LOCLIN
      CHARACTER*28  IATS, DIF000
      CHARACTER*(*) TEXT







      IATS=DIF000(IAT)



      CALL GVSSTX (LOCLIN,TEXT)
      CALL GVSSTX (LOCLIN(GVFLEN(LOCLIN)+2:),IATS)
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF





      RETURN
      END
      SUBROUTINE DIF015A (IAT,TEXT)

















      IMPLICIT      NONE 
      CHARACTER*28  IATS, DIF000
      CHARACTER*(*) TEXT
      INTEGER       IAT







      IATS=DIF000(IAT)



      CALL GVST6C (TEXT,IATS,.TRUE.)





      RETURN
      END
      SUBROUTINE DIF015B (INUNIT,IAT,TEXT,VALUE1)

















      IMPLICIT      NONE 
      INTEGER       IAT, IUNIT, INUNIT
      REAL          VALUE1
      CHARACTER*132 LOCLIN
      CHARACTER*80  XTEXT
      CHARACTER*28  IATS, DIF000, FMT
      CHARACTER*(*) TEXT







      IF (INUNIT.LT.1.OR.INUNIT.EQ.5.OR.INUNIT.GT.120) THEN
         IUNIT=6
      ELSE
         IUNIT=INUNIT
      END IF



      IATS=DIF000(IAT)



      CALL GVSSTX (XTEXT,TEXT)
      CALL GVSFMTL (FMT,'?FMT901')
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) IATS,XTEXT,VALUE1
      CALL GVSRDB (LOCLIN(33:132))
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF015B')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF015C (IAT,TEXT,VALUE1,VALUE2)

















      IMPLICIT      NONE 
      INTEGER       IAT
      REAL          VALUE1, VALUE2
      CHARACTER*80  LOCLIN, XTEXT
      CHARACTER*28  IATS, DIF000, FMT
      CHARACTER*(*) TEXT







      IATS=DIF000(IAT)



      CALL GVSSTX (XTEXT,TEXT)
      CALL GVSFMTL (FMT,'?FMT901')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IATS,XTEXT,VALUE1,VALUE2
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF015C')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF015D (IUNIT,IAT,TEXT,VALUE1,VALUE2,VALUE3)

















      IMPLICIT      NONE 
      INTEGER       IAT, IUNIT
      REAL          VALUE1, VALUE2, VALUE3
      CHARACTER*80  LOCLIN, XTEXT
      CHARACTER*28  IATS, DIF000, FMT
      CHARACTER*(*) TEXT







      IATS=DIF000(IAT)



      CALL GVSSTX (XTEXT,TEXT)
      CALL GVSFMTL (FMT,'?FMT901')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IATS,TEXT,VALUE1,VALUE2,VALUE3
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF015D')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF015E (IUNIT,IAT,TEXT)

















      IMPLICIT      NONE 
      INTEGER       IAT, IUNIT
      CHARACTER*28  IATS, DIF000
      CHARACTER*(*) TEXT







      IATS=DIF000(IAT)



      CALL GVSTUC (IUNIT,TEXT,IATS,.TRUE.)





      RETURN
      END
      SUBROUTINE DIF015F (INUNIT,TEXT,IAT,VALUE1)

















      IMPLICIT      NONE 
      INTEGER       IAT, IUNIT, INUNIT, ILEN, GVFLEN
      REAL          VALUE1
      CHARACTER*132 LOCLIN
      CHARACTER*28  IATS, DIF000, FMT
      CHARACTER*(*) TEXT







      IF (INUNIT.LT.1.OR.INUNIT.EQ.5.OR.INUNIT.GT.120) THEN
         IUNIT=6
      ELSE
         IUNIT=INUNIT
      END IF



      IATS=DIF000(IAT)



      CALL GVSFMTL (FMT,'?FMT901A')
      CALL GVSSTX (LOCLIN,TEXT)
      ILEN=GVFLEN(LOCLIN)
      WRITE (LOCLIN(ILEN+3:132),FMT,ERR=999) IATS,VALUE1
      CALL GVSRDB (LOCLIN(33:132))
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF015F')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF015G (INUNIT,TEXT,IAT,JAT,VALUE1,IVALUE2,IVALUE3)

















      IMPLICIT      NONE 
      INTEGER       IAT, JAT, IUNIT, INUNIT, ILEN, GVFLEN, IVALUE2,
     +              IVALUE3
      REAL          VALUE1
      CHARACTER*132 LOCLIN
      CHARACTER*28  IATS, JATS, DIF000, FMT
      CHARACTER*(*) TEXT







      IF (INUNIT.LT.1.OR.INUNIT.EQ.5.OR.INUNIT.GT.120) THEN
         IUNIT=6
      ELSE
         IUNIT=INUNIT
      END IF



      IATS=DIF000(IAT)
      JATS=DIF000(JAT)



      CALL GVSFMTL (FMT,'?FMT901B')
      CALL GVSCTB (LOCLIN,132)
      CALL GVSSTX (LOCLIN,TEXT)
      ILEN=GVFLEN(LOCLIN)
      WRITE (LOCLIN(ILEN+3:132),FMT,ERR=999) IATS,JATS,VALUE1,IVALUE2,
     + IVALUE3
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF015G')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF015H (INUNIT,TEXT,IAT,JAT,VALUE)

















      IMPLICIT      NONE 
      INTEGER       IAT, JAT, IUNIT, INUNIT, ILEN, GVFLEN
      REAL          VALUE
      CHARACTER*132 LOCLIN
      CHARACTER*28  IATS, JATS, DIF000, FMT
      CHARACTER*(*) TEXT







      IF (INUNIT.LT.1.OR.INUNIT.EQ.5.OR.INUNIT.GT.120) THEN
         IUNIT=6
      ELSE
         IUNIT=INUNIT
      END IF



      IATS=DIF000(IAT)
      JATS=DIF000(JAT)



      CALL GVSFMTL (FMT,'?FMT901B')
      CALL GVSCTB (LOCLIN,132)
      CALL GVSSTX (LOCLIN,TEXT)
      ILEN=GVFLEN(LOCLIN)
      WRITE (LOCLIN(ILEN+3:132),FMT,ERR=999) IATS,JATS,VALUE
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF015H')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF016 (IUNIT,IAT,JAT)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT, IUNIT
      REAL          WIFDST







      CALL DIF012 (IUNIT,IAT,JAT,WIFDST(IAT,JAT))





      RETURN
      END
      SUBROUTINE DIF016A (IAT,JAT,DPREF)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT
      REAL          WIFDST, DPREF







      CALL DIF012A (IAT,JAT,WIFDST(IAT,JAT),DPREF)





      RETURN
      END
      SUBROUTINE DIF016B (IAT,JAT,TEXT)

















      IMPLICIT      NONE 
      CHARACTER*132 LOCLIN
      CHARACTER*28  IATS, JATS, DIF000, FMT
      CHARACTER*(*) TEXT
      INTEGER       IAT, JAT







      IATS=DIF000(IAT)
      JATS=DIF000(JAT)



      CALL GVSFMTL (FMT,'?FMT902')
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,TEXT
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF016B')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF017 (NUMB,IAT,JAT)

















      IMPLICIT      NONE
      INCLUDE       'BIGINC.INC'
      LOGICAL       WIFITI
      CHARACTER*80  LOCLIN
      CHARACTER*28  IATS, JATS, DIF000
      INTEGER       IAT, JAT, NUMB
      REAL          WIFDST







      IF (.NOT.WIFITI(IAT)) THEN
         CALL GVSTTB ('?BATS2T')
         GOTO 998
      END IF
      IF (.NOT.WIFITI(JAT)) THEN
         CALL GVSTTB ('?BATS2T')
         GOTO 998
      END IF



      IATS=DIF000(IAT)
      JATS=DIF000(JAT)
      NUMB=NUMB+1



      CALL GVSFMT ('?FMT280')
      WRITE (LOCLIN,FMT,ERR=999) NUMB,IATS,JATS,WIFDST(IAT,JAT)
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSTTE ('?WERS2T')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF018 (NUMB,IAT,JAT,ISYM)

















      IMPLICIT      NONE
      INCLUDE       'BIGINC.INC'
      INCLUDE       'SYMINC.INC'
      LOGICAL       WIFITI
      INTEGER       IAT, JAT, NUMB, ISYM, IPOS, GVFPOS, JSYM, SYMNEG
      REAL          D12, TMP(3), HBOVAL, HBOQVAL
      LOGICAL       WIFIRW, WIFIRN, WIFIRA, WIFIRZ, WIFIRND, WIFIRNR,
     +              WIFIRD
      CHARACTER*28  IATS, JATS, DIF000
      CHARACTER*132 LOCLIN







      IF (.NOT.WIFITI(IAT)) THEN
         CALL GVSTTB ('?BATS2T')
         GOTO 998
      END IF
      IF (.NOT.WIFITI(JAT)) THEN
         CALL GVSTTB ('?BATS2T')
         GOTO 998
      END IF



      IATS=DIF000(IAT)
      JATS=DIF000(JAT)
      NUMB=NUMB+1
      HBOVAL=0.0



      TMP(1)=XCOORD(JAT)
      TMP(2)=YCOORD(JAT)
      TMP(3)=ZCOORD(JAT)
      IF (ISYM.GT.1) CALL GVSMPV (TMP,SYMMAT(1,1,ISYM),SYMVEC(1,ISYM))
      D12=SQRT((TMP(1)-XCOORD(IAT))**2+
     +         (TMP(2)-YCOORD(IAT))**2+
     +         (TMP(3)-ZCOORD(IAT))**2)



      IF (ISYM.LE.0) THEN
         JSYM=1
      ELSE
         JSYM=ISYM
      END IF

         HBOVAL=MAX(HBOQVAL(IAT,JAT,JSYM),HBOQVAL(JAT,IAT,SYMNEG(JSYM)))




      CALL GVSCTB (LOCLIN,132)



      CALL GVSFMT ('?FMT281')
      IF (ISYM.GT.0) THEN
         WRITE (LOCLIN,FMT,ERR=999) NUMB,IATS,JATS,D12,HBOVAL,ISYM
      ELSE
         WRITE (LOCLIN,FMT,ERR=999) NUMB,IATS,JATS,D12,HBOVAL
      END IF



      IF (WIFIRW(ATIAA(IAT))) THEN
         CALL GVSCPC (LOCLIN,'  (W-')
      ELSE IF (WIFIRD(ATIAA(IAT))) THEN
         CALL GVSCPC (LOCLIN,'  (D-')
      ELSE IF (WIFIRZ(ATIAA(IAT))) THEN
         CALL GVSCPC (LOCLIN,'  (C-')
      ELSE IF (WIFIRA(ATIAA(IAT))) THEN
         IF (IAT-PNTAAS(ATIAA(IAT))+1.LE.4) THEN
            CALL GVSCPC (LOCLIN,'  (B-')
         ELSE
            CALL GVSCPC (LOCLIN,'  (S-')
         END IF
      ELSE IF (WIFIRN(ATIAA(IAT))) THEN
         IF (WIFIRND(ATIAA(IAT))) THEN
            IF (IAT-PNTAAS(ATIAA(IAT))+1.LE.11) THEN
               CALL GVSCPC (LOCLIN,'  (B-')
            ELSE
               CALL GVSCPC (LOCLIN,'  (S-')
            END IF
         ELSE IF (WIFIRNR(ATIAA(IAT))) THEN
            IF (IAT-PNTAAS(ATIAA(IAT))+1.LE.11.OR.
     +         (ONESAT(IAT)(1:2).EQ.' O'.AND.
     +          ONESAT(IAT)(3:3).EQ.''''.AND.
     +          ONESAT(IAT)(4:5).EQ.'  ')) THEN
               CALL GVSCPC (LOCLIN,'  (B-')
            ELSE
               CALL GVSCPC (LOCLIN,'  (S-')
            END IF
         END IF
      ELSE
         CALL GVSCPC (LOCLIN,'  (.-')
      END IF
      IF (WIFIRW(ATIAA(JAT))) THEN
         CALL GVSCPC (LOCLIN,'W)')
      ELSE IF (WIFIRD(ATIAA(JAT))) THEN
         CALL GVSCPC (LOCLIN,'D)')
      ELSE IF (WIFIRZ(ATIAA(JAT))) THEN
         CALL GVSCPC (LOCLIN,'C)')
      ELSE IF (WIFIRA(ATIAA(JAT))) THEN
         IF (JAT-PNTAAS(ATIAA(JAT))+1.LE.4) THEN
            CALL GVSCPC (LOCLIN,'B)')
         ELSE
            CALL GVSCPC (LOCLIN,'S)')
         END IF
      ELSE IF (WIFIRN(ATIAA(JAT))) THEN
         IF (WIFIRND(ATIAA(JAT))) THEN
            IF (JAT-PNTAAS(ATIAA(JAT))+1.LE.11) THEN
               CALL GVSCPC (LOCLIN,'B)')
            ELSE
               CALL GVSCPC (LOCLIN,'S)')
            END IF
         ELSE IF (WIFIRNR(ATIAA(JAT))) THEN
            IF (JAT-PNTAAS(ATIAA(JAT))+1.LE.11.OR.
     +         (ONESAT(JAT)(1:2).EQ.' O)'.AND.
     +          ONESAT(JAT)(3:3).EQ.''''.AND.
     +          ONESAT(JAT)(4:5).EQ.'  ')) THEN
               CALL GVSCPC (LOCLIN,'B)')
            ELSE
               CALL GVSCPC (LOCLIN,'S)')
            END IF
         END IF
      ELSE
         CALL GVSCPC (LOCLIN,'.)')
      END IF



      IPOS=GVFPOS(LOCLIN,' 0.00')
      IF (IPOS.GT.1) LOCLIN(IPOS:IPOS+3)=' -- '



      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSTTE ('?WERS2T')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF019 (IAT,JAT)

















      IMPLICIT      NONE
      INCLUDE       'BIGINC.INC'
      INTEGER       IAT, JAT, IPOS, GVFPOS, IAA, JAA
      REAL          D12, TMP(3)
      LOGICAL       WIFIRW, WIFITI, WIFIRD, AREBOUND, AREB13, WIFIRA,
     +              WIFIRN
      CHARACTER*5   OUT1, OUT2
      CHARACTER*28  IATS, JATS, DIF000
      CHARACTER*132 LOCLIN







      IF (.NOT.WIFITI(IAT)) THEN
         CALL GVSTTB ('?BATS2T')
         GOTO 998
      END IF
      IF (.NOT.WIFITI(JAT)) THEN
         CALL GVSTTB ('?BATS2T')
         GOTO 998
      END IF



      IAA=ATIAA(IAT)
      JAA=ATIAA(JAT)
      IATS=DIF000(IAT)
      JATS=DIF000(JAT)
      CALL GVSCTB (OUT1,5)
      CALL GVSCTB (OUT2,5)



      TMP(1)=XCOORD(JAT)
      TMP(2)=YCOORD(JAT)
      TMP(3)=ZCOORD(JAT)
      D12=SQRT((TMP(1)-XCOORD(IAT))**2+
     +         (TMP(2)-YCOORD(IAT))**2+
     +         (TMP(3)-ZCOORD(IAT))**2)



      CALL GVSCTB (LOCLIN,132)



      CALL GVSFMT ('?FMT281A')
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,D12



      IF (WIFIRW(IAA)) THEN
         CALL GVSCPC (LOCLIN,'  (W-')
      ELSE IF (WIFIRD(IAA)) THEN
         CALL GVSCPC (LOCLIN,'  (D-')
      ELSE IF (WIFIRA(IAA)) THEN
         IF (IAT-PNTAAS(IAA)+1.LE.4) THEN
            CALL GVSCPC (LOCLIN,'  (B-')
         ELSE
            CALL GVSCPC (LOCLIN,'  (S-')
         END IF
      ELSE IF (WIFIRN(IAA)) THEN
         IF (ONESA3(IAA)(1:1).EQ.'D') THEN
            IF (IAT-PNTAAS(IAA)+1.LE.8) THEN
               CALL GVSCPC (LOCLIN,'  (B-')
            ELSE
               IF (IAT-PNTAAS(IAA)+1.LE.11) THEN
                  CALL GVSCPC (LOCLIN,'  (Z-')
               ELSE
                  CALL GVSCPC (LOCLIN,'  (P-')
               END IF
            END IF
         ELSE IF (ONESA3(IAA)(1:1).EQ.'O') THEN
            IF (IAT-PNTAAS(IAA)+1.LE.8) THEN
               CALL GVSCPC (LOCLIN,'  (B-')
            ELSE IF (IAT-PNTAAS(IAA)+1.LE.11.OR.IAT.EQ.PNTAAE(IAA)) THEN
               CALL GVSCPC (LOCLIN,'  (Z-')
            ELSE
               CALL GVSCPC (LOCLIN,'  (P-')
            END IF
         END IF
      ELSE
         CALL GVSCPC (LOCLIN,'  (L-')
      END IF



      IF (WIFIRW(JAA)) THEN
         CALL GVSCPC (LOCLIN,'W)')
      ELSE IF (WIFIRD(JAA)) THEN
         CALL GVSCPC (LOCLIN,'D)')
      ELSE IF (WIFIRA(JAA)) THEN
         IF (JAT-PNTAAS(JAA)+1.LE.4) THEN
            CALL GVSCPC (LOCLIN,'B)')
         ELSE
            CALL GVSCPC (LOCLIN,'S)')
         END IF
      ELSE IF (WIFIRN(JAA)) THEN
         IF (ONESA3(JAA)(1:1).EQ.'D') THEN
            IF (JAT-PNTAAS(JAA)+1.LE.8) THEN
               CALL GVSCPC (LOCLIN,'B)')
            ELSE
               IF (JAT-PNTAAS(JAA)+1.LE.11) THEN
                  CALL GVSCPC (LOCLIN,'Z)')
               ELSE
                  CALL GVSCPC (LOCLIN,'P)')
               END IF
            END IF
         ELSE IF (ONESA3(JAA)(1:1).EQ.'O') THEN
            IF (JAT-PNTAAS(JAA)+1.LE.8) THEN
               CALL GVSCPC (LOCLIN,'B)')
            ELSE IF (JAT-PNTAAS(JAA)+1.LE.11.OR.JAT.EQ.PNTAAE(JAA)) THEN
               CALL GVSCPC (LOCLIN,'Z)')
            ELSE
               CALL GVSCPC (LOCLIN,'P)')
            END IF
         END IF
      ELSE
         CALL GVSCPC (LOCLIN,'L)')
      END IF
      IF (AREBOUND(IAT,JAT)) CALL GVSCPC (LOCLIN,' (BONDED)')
      IF (AREB13(IAT,JAT,1)) CALL GVSCPC (LOCLIN,' (1-3 BOND)')



      IPOS=GVFPOS(LOCLIN,' 0.00')
      IF (IPOS.GT.1) LOCLIN(IPOS:IPOS+3)=' -- '



      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSTTE ('?WERS2T')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF020 (TEXT1,IAA,TEXT2)

















      IMPLICIT      NONE
      CHARACTER*(*) TEXT1, TEXT2
      CHARACTER*132 LOCLIN
      CHARACTER*80  XTEXT1, XTEXT2
      INTEGER       IAA, GVFLEN
      CHARACTER*23  IAAS, DIF001, FMT







      IAAS=DIF001(IAA)



      CALL GVSSTX (XTEXT1,TEXT1)
      CALL GVSSTX (XTEXT2,TEXT2)
      CALL GVSFMTL (FMT,'?FMT902')
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) XTEXT1(1:GVFLEN(XTEXT1)),IAAS,
     + XTEXT2(1:GVFLEN(XTEXT2))
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF020')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF022 (IUNIT,IAT,JAT,TEXT)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT, GVFLEN, IUNIT
      CHARACTER*28  DIF000, IATS, JATS, FMT
      CHARACTER*80  LOCLIN, XTEXT
      CHARACTER*(*) TEXT







      IATS=DIF000(IAT)
      JATS=DIF000(JAT)



      CALL GVSSTX (XTEXT,TEXT)
      CALL GVSFMTL (FMT,'?FMT903')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,XTEXT(1:GVFLEN(XTEXT))
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF022')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF023 (IAT,JAT,KAT,LAT,VALUE1,VALUE2)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT, KAT, LAT
      CHARACTER*28  IATS, JATS, KATS, LATS, DIF000, FMT
      REAL          VALUE1, VALUE2
      CHARACTER*132 LOCLIN







      IATS=DIF000(IAT)
      JATS=DIF000(JAT)
      KATS=DIF000(KAT)
      LATS=DIF000(LAT)



      CALL GVSFMTL (FMT,'?FMT904')
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,KATS,LATS,VALUE1,VALUE2
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSTTE ('?WERS2T')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF024 (IUNIT,IAT,JAT,KAT,VALUE1,VALUE2)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT, KAT, IUNIT
      REAL          VALUE1, VALUE2
      CHARACTER*132 LOCLIN
      CHARACTER*28  IATS, JATS, KATS, DIF000, FMT







      IATS=DIF000(IAT)
      JATS=DIF000(JAT)
      KATS=DIF000(KAT)



      CALL GVSFMTL (FMT,'?FMT905')
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,KATS,VALUE1,VALUE2
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSTTE ('?WERS2T')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF024A (IAT,JAT,KAT,VALUE1,VALUE2,VALUE3)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT, KAT
      REAL          VALUE1, VALUE2, VALUE3
      CHARACTER*132 LOCLIN
      CHARACTER*28  IATS, JATS, KATS, DIF000, FMT







      IATS=DIF000(IAT)
      JATS=DIF000(JAT)
      KATS=DIF000(KAT)



      CALL GVSFMTL (FMT,'?FMT905')
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,KATS,VALUE1,VALUE2,VALUE3
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSTTE ('?WERS2T')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF024B (IUNIT,IAT,JAT,KAT,V1,V2,V3,V4)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT, KAT, IUNIT
      REAL          V1, V2, V3, V4
      CHARACTER*160 LOCLIN
      CHARACTER*28  IATS, JATS, KATS, DIF000, FMT







      IATS=DIF000(IAT)
      JATS=DIF000(JAT)
      KATS=DIF000(KAT)



      CALL GVSFMTL (FMT,'?FMT905')
      CALL GVSCTB (LOCLIN,160)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,KATS,V1,V2,V3,V4
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSTTE ('?WERS2T')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF024C (IUNIT,IAT,JAT,KAT,VALUE1)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT, KAT, IUNIT
      CHARACTER*28  IATS, JATS, KATS, DIF000, FMT
      REAL          VALUE1
      CHARACTER*132 LOCLIN







      IATS=DIF000(IAT)
      JATS=DIF000(JAT)
      KATS=DIF000(KAT)



      CALL GVSFMTL (FMT,'?FMT905')
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,KATS,VALUE1
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSTTE ('?WERS2T')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF024D (IUNIT,IAT,JAT,KAT,TEXT,VALUE1)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT, KAT, IUNIT
      REAL          VALUE1
      CHARACTER*28  IATS, JATS, KATS, DIF000, FMT
      CHARACTER*256 LOCLIN
      CHARACTER*(*) TEXT







      IATS=DIF000(IAT)
      JATS=DIF000(JAT)
      KATS=DIF000(KAT)
      CALL GVSSTX (LOCLIN,TEXT)



      CALL GVSFMTL (FMT,'?FMT905A')
      CALL GVSCTB (LOCLIN,256)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,KATS,LOCLIN,VALUE1
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSTTE ('?WERS2T')



  998 CONTINUE


      RETURN
      END
      SUBROUTINE DIF025 (IAT)

















      IMPLICIT      NONE
      INCLUDE       'BIGINC.INC'
      INTEGER       IAT
      CHARACTER*28  IATS, DIF000
      CHARACTER*80  LOCLIN







      IATS=DIF000(IAT)



      CALL GVSFMT ('?FMT901')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IATS,ORGNAM(IAT)
      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF025')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF025A (IUNIT,IAT)

















      IMPLICIT      NONE
      INCLUDE       'BIGINC.INC'
      INTEGER       IAT, IUNIT
      CHARACTER*28  IATS, DIF000
      CHARACTER*80  LOCLIN







      IATS=DIF000(IAT)



      CALL GVSFMT ('?FMT901')
      CALL GVSCTB (LOCLIN,80)
      WRITE (LOCLIN,FMT,ERR=999) IATS,ORGNAM(IAT)
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF025A')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF026 (ISOUP,TEXT,LOCLIN)

















      IMPLICIT      NONE
      INCLUDE       'BIGINC.INC'
      INTEGER       IAA, JAA, LENLIN, GVFPOS, IPOS, ISOUP
      CHARACTER*(*) LOCLIN, TEXT
      CHARACTER*23  IAAS, JAAS, DIF001
      LOGICAL       GVFIBN







      IF (.NOT.GVFIBN(ISOUP,1,NUMSOU)) THEN
         CALL GVSTTI ('?M0895',ISOUP)
         CALL GVSKIL
         GOTO 998
      END IF



      LENLIN=LEN(LOCLIN)
      IF (LENLIN.LE.79) THEN
         CALL GVSTTE ('?M0896')
         CALL GVSKIL
         GOTO 998
      END IF



      IAA=SOUADM(1,ISOUP)
      JAA=SOUADM(2,ISOUP)



      CALL GVSSTX (LOCLIN,TEXT)
      CALL GVSFMT ('?FMT907')
      WRITE (LOCLIN(51:80),FMT,ERR=999) ISOUP
      CALL GVSRDB (LOCLIN)
      CALL GVSTT6 (LOCLIN)



      CALL GVSCTB (LOCLIN,LEN(LOCLIN))
      CALL GVSSTX (LOCLIN(1:10),'?CHKM19')

      IAAS=DIF001(IAA)
      CALL GVSFMT ('?FMT906')
      WRITE (LOCLIN(11:LENLIN),FMT,ERR=999) IAAS,PRPVAL(IAA)



      IPOS=GVFPOS(LOCLIN,'Prp')
      IF (IPOS.GT.10) CALL GVSRDB (LOCLIN(IPOS:LENLIN))



      CALL GVSTT6 (LOCLIN)



      CALL GVSCTB (LOCLIN,LEN(LOCLIN))
      CALL GVSSTX (LOCLIN(1:10),'?CHKM19')
      JAAS=DIF001(JAA)
      CALL GVSFMT ('?FMT906')
      WRITE (LOCLIN(11:LENLIN),FMT,ERR=999) JAAS,PRPVAL(JAA)



      IPOS=GVFPOS(LOCLIN,'Prp')
      IF (IPOS.GT.10) CALL GVSRDB (LOCLIN(IPOS:))



      CALL GVSTT6 (LOCLIN)
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF026')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF028 (IUNIT,IAA)

















      IMPLICIT      NONE
      INCLUDE       'BIGINC.INC'
      INCLUDE       'SUGARS.INC'
      INCLUDE       'ESPACE.INC'
      INTEGER       IAA, GVFPOS, IPOS, IUNIT, ICYS, IAT
      CHARACTER*12  TEXT
      CHARACTER*23  DIF001, IAAS, BRIDGE
      CHARACTER*90  LOCLIN
      LOGICAL       WIFIRZ







      CALL GVSCTB (LOCLIN,90)
      CALL GVSSTX (LOCLIN(1:10),'?CHKM19')



      CALL GVSCTB (BRIDGE,23)
      CALL GVSCTB (TEXT,12)
      IF (RESTYP(IAA).EQ.2.AND.NUMCYS.GT.0) THEN
         DO 10 ICYS=1,NUMCYS
            IF (IAA.EQ.CYSCYS(1,ICYS)) THEN
               BRIDGE=DIF001(CYSCYS(2,ICYS))
               CALL GVSSTX (TEXT,'?M2056')
               GOTO 11
            END IF 
   10    CONTINUE
      END IF
   11 CONTINUE



      IF (WIFIRZ(IAA)) THEN
         IF (SUGREA(IAA).LE.0) THEN
            CALL GVSSTX (TEXT,'?M2057')
         ELSE
            CALL GVSSTX (TEXT,SUGEPI(SUGREA(IAA)))
         END IF
      END IF



      DO 20 IAT=PNTAAS(IAA),PNTAAE(IAA)
         IF (.NOT.PROTON(IAT)) GOTO 30
   20 CONTINUE
      IF (PNTAAS(IAA).EQ.PNTAAE(IAA)) THEN
         CALL GVSSTX (TEXT,'?M2058')
      ELSE
         CALL GVSSTX (TEXT,'?M2058A')
      END IF
   30 CONTINUE



      IAAS=DIF001(IAA)
      CALL GVSFMT ('?FMT582')
      WRITE (LOCLIN(11:90),FMT,ERR=999) IAAS,PRPVAL(IAA),TEXT,BRIDGE
      CALL GVSRDB (LOCLIN(42:90))



      IPOS=GVFPOS(LOCLIN,'Prp')
      IF (IPOS.GT.10) CALL GVSRDB (LOCLIN(IPOS:80))



      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF028')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF029 (IUNIT,IAA)

















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT
      CHARACTER*23  IAAS, DIF001







      IAAS=DIF001(IAA)



      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (IAAS)
      ELSE
         CALL GVSTTU (IUNIT,IAAS)
      END IF





      RETURN
      END   
      SUBROUTINE DIF030 (IUNIT,IAA,BOOL1,BOOL2)

















      IMPLICIT      NONE
      INTEGER       IAA, IUNIT
      LOGICAL       BOOL1, BOOL2
      CHARACTER*23  IAAS, DIF001, FMT
      CHARACTER*60  LOCLIN







      IAAS=DIF001(IAA)



      CALL GVSFMTL (FMT,'?FMT908')
      CALL GVSCTB (LOCLIN,60)
      WRITE (LOCLIN,FMT,ERR=999) IAAS
      IF (BOOL1) THEN
         LOCLIN(25:25)='T'
      ELSE
         LOCLIN(25:25)='F'
      END IF
      IF (BOOL2) THEN
         LOCLIN(27:27)='T'
      ELSE
         LOCLIN(27:27)='F'
      END IF
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSEIW ('DIF029')



  998 CONTINUE


      RETURN
      END   
      SUBROUTINE DIF031 (IUNIT,IAT,JAT,KAT)

















      IMPLICIT      NONE
      INTEGER       IAT, JAT, KAT, IUNIT
      CHARACTER*132 LOCLIN
      CHARACTER*28  IATS, JATS, KATS, DIF000, FMT







      IATS=DIF000(IAT)
      JATS=DIF000(JAT)
      KATS=DIF000(KAT)



      CALL GVSFMTL (FMT,'?FMT905')
      CALL GVSCTB (LOCLIN,132)
      WRITE (LOCLIN,FMT,ERR=999) IATS,JATS,KATS
      IF (IUNIT.EQ.6) THEN
         CALL GVSTT6 (LOCLIN)
      ELSE
         CALL GVSTTU (IUNIT,LOCLIN)
      END IF
      GOTO 998



  999 CONTINUE
      CALL GVSTTE ('?WERS2T')



  998 CONTINUE


      RETURN
      END
