* * $Id: mget.F,v 1.1.1.1 1996/03/08 15:44:19 mclareni Exp $ * * $Log: mget.F,v $ * Revision 1.1.1.1 1996/03/08 15:44:19 mclareni * Cspack * * #include "cspack/pilot.h" SUBROUTINE MGET *-- Author : Jamie Shiers 12/02/91 CHARACTER*64 LOCAL,REMOTE,FNAME1,FNAME2 CHARACTER*8 LOCTYP,REMTYP CHARACTER*4 CHOPT PARAMETER (NMAX=100) CHARACTER*128 FILES(NMAX) #include "cspack/quest.inc" #include "cspack/hcmail.inc" #include "cspack/czsock.inc" #include "cspack/czunit.inc" #include "cspack/czopen.inc" * * Get multiple files from remote node, with optional * change of extension name (e.g. .CAR -> .CARDS) * CALL KUGETC(REMOTE,NCHR) CALL KUGETC(LOCAL,NCHL) CALL KUGETC(CHOPT,NCH) IF(NCHL.EQ.0) THEN LOCAL = REMOTE NCHL = NCHR ENDIF IF((NCHL.EQ.1).AND.(LOCAL(1:1).EQ.'=')) THEN LOCAL = REMOTE NCHL = NCHR ENDIF * * Get list of file names * IF(IDEBXZ.GE.1) PRINT *,'MGET. retrieving list of file names...' ICONT = 0 JDOT = INDEX(LOCAL(1:NCHL),'.') IF(IDEBXZ.GE.3) PRINT *,'MGET. call XZLS for ',REMOTE(1:NCHR) 1 CONTINUE CALL XZLS(REMOTE(1:NCHR),FILES,NMAX,NFILES,ICONT,' ',IC) IF(IDEBXZ.GE.3) PRINT *,'MGET. ',NFILES,' files found ' IF(ICONT.NE.0) THEN PRINT *,'MGET. too many files found. Excess names will be ', + 'discarded' #include "cspack/czflush.inc" ENDIF DO 20 I = 1,NFILES ISTART = 1 IEND = LENOCC(FILES(I)) * * Fix VM file names... * CALL CSQMBL(FILES(I),ISTART,IEND) IEND = LENOCC(FILES(I)) CALL CTRANS(' ','.',FILES(I),ISTART,IEND) * * Fix VMS file names... * IBRA = ICFMUL(']>',FILES(I),1,IEND) IF(IBRA.LE.IEND) ISTART = IBRA + 1 FNAME1 = FILES(I)(ISTART:IEND) LF1 = LENOCC(FNAME1) ICOL = INDEX(FNAME1(1:LF1),';') IF(ICOL.NE.0) LF1 = ICOL - 1 IF(IDEBXZ.GE.1) PRINT *,'MGET. processing ',FNAME1(1:LF1), + '...' CALL CLTOU(FNAME1) IDOT = INDEX(FNAME1(1:LF1),'.') IF((IDOT.NE.0).AND.(JDOT.NE.0)) THEN IF(LOCAL(1:NCHL).NE.REMOTE(1:NCHR)) THEN FNAME2 = FNAME1(1:IDOT)//LOCAL(JDOT+1:NCHL) LF2 = LENOCC(FNAME2) ELSE FNAME2 = FNAME1 LF2 = LF1 ENDIF ENDIF IF(LENOCC(FNAME2).EQ.0) THEN FNAME2 = FNAME1 LF2 = LF1 ENDIF #if !defined(CERNLIB_IBMVM) * * Remove file mode from VM file names... * KDOT = INDEX(FNAME1(1:LF1),'.') LDOT = INDEXB(FNAME1(1:LF1),'.') IF(LDOT.GT.KDOT) THEN LF1 = LDOT - 1 ENDIF #endif IF(INDEX(FNAME1(1:LF1),'.PAM').NE.0) THEN IF(IDEBXZ.GE.2) PRINT *,'MGET. retrieving ',FNAME2(1:LF2), + ' to ',FNAME1(1:LF1),' via GETP' CALL XZGETP(FNAME1(1:LF1),FNAME2(1:LF2),CHOPT,IC) ELSEIF(INDEX(FNAME1(1:LF1),'.CET').NE.0) THEN IF(IDEBXZ.GE.2) PRINT *,'MGET. retrieving ',FNAME2(1:LF2), + ' to ',FNAME1(1:LF1),' via GETB' CALL XZGETB(FNAME1(1:LF1),FNAME2(1:LF2),3600,CHOPT,IC) ELSEIF(INDEX(FNAME1(1:LF1),'.CMZ').NE.0) THEN IF(IDEBXZ.GE.2) PRINT *,'MGET. retrieving ',FNAME2(1:LF2), + ' to ',FNAME1(1:LF1),' via GETRZ' CALL XZGETR(FNAME1(1:LF1),FNAME2(1:LF2),CHOPT,IC) ELSE IF(IDEBXZ.GE.2) PRINT *,'MGET. retrieving ',FNAME2(1:LF2), + ' to ',FNAME1(1:LF1),' via GETA' CALL XZGETA(FNAME1(1:LF1),FNAME2(1:LF2),CHOPT,IC) ENDIF 20 CONTINUE 99 END