      PROGRAM TRANSLATION
      include 'com_avoir.f'
      CHARACTER*128 FICH1,FICH2
      CHARACTER*8   EXT
C
 1    CALL LIFICH('Prefix of the initial mesh ?',0,FICH1,LONG1)
      CALL LIFICH('Prefix of the translated mesh ?',0,FICH2,LONG2)
      CALL LIENTIER('2d or 3d ? (2/3)',0,IDIM)
      IF (IDIM.EQ.2) THEN
        EXT = '.avoir2D'
        CALL LI2REEL1('Translation vector (x,y) ?',0,X,Y)
      ELSE
        EXT = '.avoir3D'
        CALL LI3REEL1('Translation vector (x,y,z) ?',0,X,Y,Z)
      ENDIF
      FICH = FICH1(1:LONG1)//EXT
      LONG = LONG1+8
      CALL LITAVOIR(FICH,LONG,HED,NUMNP,NELTOT,NGMAX,NMAX,NDSMAX,XYZ,IBC
     &             ,NODE,NPR,NFPR,PR,NGROUP,NTYP,NEL,NDS,NUMSD,2,IENDIAN
     &             ,IERR,0)
      IF (IERR.NE.0) GOTO 1
C
      DO I=1,NUMNP
        XYZ(1,I) = XYZ(1,I)+X
        XYZ(2,I) = XYZ(2,I)+Y
        IF (IDIM.NE.2) XYZ(3,I) = XYZ(3,I)+Z
      ENDDO
C
      FICH = FICH2(1:LONG2)//EXT
      LONG = LONG2+8
      CALL ECRITAVOIR(FICH,LONG,HED,NUMNP,NDSMAX,XYZ,IBC,NODE,NPR,NFPR
     &               ,PR,NGROUP,NTYP,NEL,NDS,NUMSD,2,ITRAD,IERR)
C
      END
