next up previous contents index
Next: VM/CMS specific details Up: The CERNLIB directory Previous: The CERNLIB tree

VMS specific details

On VMS systems, the logical name CERN points to the root directory for the CERNLIB tree, as shown below. The CERN logical name

VXCRNA? sh log cern
   "CERN" = "_$22$DUS206:[CERN.]" (LNM$SYSTEM_TABLE)

This directory contains subdirectories as in the Unix case, as shown below. CERNLIB subdirectory structure

VXCRNA? dir $22$dus206:[cern]
Directory $22$DUS206:[CERN]
000000.DIR;1        92B.DIR;1           93C.DIR;1           93D.DIR;1
94A.DIR;1           CMZ.DIR;1           DECW.DIR;1          FATMEN.DIR;1
GKS.DIR;1           HEPDB.DIR;1         HISTORIAN.DIR;1     HYDRA.DIR;1
LAPACK.DIR;1        MAD.DIR;1           NAG.DIR;1           NEW.DIR;1
OLD.DIR;1           PATCHY.DIR;1        PHIGS.DIR;1         PRO.DIR;1
RELEASE.LEVEL;8     WWW.DIR;1

VXCERN specific details

 

The CERN logical name

On VXCERN, the logical name CERN is a search list. It is composed of three individual logical names, as follows:

CERNAXP
The Alpha specific tree.
CERNVAX
The VAX specific tree.
CERNNFS
The CERN subdirectory of the asis system independant tree /asis/share, NFS mounted.

Defining the CERN logical names on VXCERN

$!
$! CERN library tree is on DISK$CERNLIB volume set
$!
$ if f$logical("disk$cernlib").nes.""
$ then
$   cernlib_disk = F$getdvi("disk$cernlib","FULLDEVNAM")
$   def/sys/exec/tran=(term,conc) cernaxp 'cernlib_disk'[cernaxp.]
$   def/sys/exec/tran=(term,conc) cernvax 'cernlib_disk'[cern.]
$ endif
$!
$! Now mount the /asis/share file system
$!
$ nfsmount/soft asisnfs:"/asis/share"                 ASIS_SHARE
$ nfsdev=F$GETDVI("ASIS_SHARE","FULLDEVNAM")
$ If nfsdev.nes."" Then -
     assign/sys/exec/trans=(conc,term) 'nfsdev'[cern.] NFSCERN
$ If nfsdev.nes."" Then -
     assign/sys/exec/trans=(conc,term) 'nfsdev'[cern.] CERNNFS
$ Endif
$!
$! Now define the CERNlib logical names as a function of the above
$!
$ @cern:[new.mgr]cern\_logicals

At the time of writing, some directories exist only in the CERNVAX tree. However, it is planned that all files shared between the VAX and Alpha architectures be moved progressively to the asis server.

N.B. the binaries and libraries are incompatible between VAX and Alpha systems. Thus, if you wish to copy the VAX executables over DECnet, use

COPY VXCERN::CERNVAX:[PRO.EXE]*.*

Similarly, to get the Alpha versions of the libraries, use

COPY VXCERN::CERNAXP:[PRO.LIB]*.*

The subdirectory structure

On VXCERN, the NEW  , PRO  and OLD  subdirectories are pointers to other subdirectories, created using the VMS command SET FILE/ENTER.

Symbol definitions for CERNLIB products

On VXCERN, much of the system wide login procedure is performed using CLUSTER$MANAGER:EXSYLOGIN.EXE. This is done to speed up logins. The symbols definitions for the CERNLIB commands are defined in the program CERN_ROOT:[MGR]CERNLOGIN.FOR. You may either include this file into your own Fortran file or use the file MAIN_CERNLOGIN.FOR.

MAIN_CERNLOGIN.FOR

      IMPLICIT INTEGER(A-Z)
      INCLUDE '($LIBCLIDEF)'
      CHARACTER*(*) C_EXE
      PARAMETER(C_EXE='CERN_ROOT:[EXE]')
C
      I=LIB$K_CLI_GLOBAL_SYM
C
      INCLUDE 'CERN_ROOT:[MGR]CERNLOGIN.FOR'
C 
      END

Symbol definitions on VXCERN using CERNLOGIN.FOR

C      IMPLICIT INTEGER(A-Z)
C      INCLUDE '($LIBCLIDEF)'
C      CHARACTER*(*) C_EXE
C      PARAMETER(C_EXE='CERN_ROOT:[EXE]')
C
C THIS IS A FAST VERSION OF THE USUAL SYSTEM WIDE LOGIN.COM .
C ALL CERN LIBRARY SYMBOL DEFINITIONS ARE CODED HERE.
C
C ====================================================================
C Customization section: enable if product is available at your site
C
      f_cmz  =1                ! CMZ       - CODEME
      f_garf =1                ! GARFIELD  - CERN
      f_gks  =1                ! GKS       - GTS-GRAL   
      f_his  =1                ! HISTORIAN - OPCODE
      f_mad  =1                ! MAD       - CERN
      f_nag  =1                ! NAG       - NAG Ltd
      f_patc =1                ! PATCHY    - CERN
      f_rzco =1                ! RZCONV    - CERN
      f_umon =1                ! UMON      - CERN
      f_vaxt =1                ! VAXTAP    - CERN
      f_www  =1                ! WWW       - CERN
C
C End of customization
C ====================================================================
C
C     I=LIB$K_CLI_GLOBAL_SYM
C
      RECODE=LIB$SET_SYMBOL('CERNLIB','$'//C_EXE//'CERNLIB' ,I)
      RECODE=LIB$SET_SYMBOL('CERN_LEVEL','PRO'                  ,I)
C
C---  PATCHY Symbols
C
      IF(F_PATC.EQ.1) THEN
        RECODE=
     +  LIB$SET_SYMBOL('FCASPLIT','$CERN:[patchy.4_15.EXE]FCASPLIT',I)
C
        RECODE=
     +  LIB$SET_SYMBOL('YCOM*PAR','$CERN:[patchy.4_15.EXE]YCOMPAR',I)
        RECODE=
     +  LIB$SET_SYMBOL('YEDI*T'  ,'$CERN:[patchy.4_15.EXE]YEDIT'  ,I)
        RECODE=
     +  LIB$SET_SYMBOL('YFRC*ETA','$CERN:[patchy.4_15.EXE]YFRCETA',I)
        RECODE=
     +  LIB$SET_SYMBOL('YIND*EX' ,'$CERN:[patchy.4_15.EXE]YINDEX' ,I)
        RECODE=
     +  LIB$SET_SYMBOL('YLIS*T'  ,'$CERN:[patchy.4_15.EXE]YLIST'  ,I)
C 
        RECODE=
     +  LIB$SET_SYMBOL('YPAT*CHY','$CERN:[patchy.4_15.EXE]YPATCHY',I)
        RECODE=
     +  LIB$SET_SYMBOL('YSEA*RCH','$CERN:[patchy.4_15.EXE]YSEARCH',I)
        RECODE=
     +  LIB$SET_SYMBOL('YSHI*FT' ,'$CERN:[patchy.4_15.EXE]YSHIFT' ,I)
        RECODE=
     +  LIB$SET_SYMBOL('YTOBC*D' ,'$CERN:[patchy.4_15.EXE]YTOBCD' ,I)
        RECODE=
     +  LIB$SET_SYMBOL('YTOBI*N' ,'$CERN:[patchy.4_15.EXE]YTOBIN' ,I)
        RECODE=
     +  LIB$SET_SYMBOL('YTOC*ETA','$CERN:[patchy.4_15.EXE]YTOCETA',I)
C 
        RECODE=LIB$SET_SYMBOL('YEXP*AND','@'//C_EXE//'YEXPAND',I)
C 
      ENDIF
C
C---  CERNlib Tools
C
      RECODE=LIB$SET_SYMBOL('GETOPT','@'//C_EXE//'GETOPT'   ,I)
      RECODE=LIB$SET_SYMBOL('SETENV','@'//C_EXE//'SETENV " "',I)
      RECODE=LIB$SET_SYMBOL('XTERM' ,'@'//C_EXE//'XTERM " "',I)
      RECODE=LIB$SET_SYMBOL('RESIZE','@'//C_EXE//'RESIZE'   ,I)
      RECODE=LIB$SET_SYMBOL('MKCOMP*ILE','@'//C_EXE//'MKCOMPILE',I)
C
C---  CERNlib Products
C
      RECODE=LIB$SET_SYMBOL('DZEDIT','@'//C_EXE//'DZEDIT " "',I)
      RECODE=LIB$SET_SYMBOL('FM','$'//C_EXE//'FATMEN'       ,I)
      RECODE=LIB$SET_SYMBOL('HEPDB','$'//C_EXE//'HEPDB'     ,I)
      RECODE=LIB$SET_SYMBOL('GXINT','@'//C_EXE//'GXINT " "' ,I)
      RECODE=LIB$SET_SYMBOL('HIGZCONV','$'//C_EXE//'HIGZCONV',I)
      RECODE=LIB$SET_SYMBOL('KUIPC','$'//C_EXE//'KUIPC'     ,I)
      RECODE=LIB$SET_SYMBOL('PAW' ,'@'//C_EXE//'PAW.COM " "',I)
      RECODE=LIB$SET_SYMBOL('HTONEW','$'//C_EXE//'HTONEW'   ,I)
      RECODE=LIB$SET_SYMBOL('FATSREQ','$'//C_EXE//'FATSREQ' ,I)
      RECODE=LIB$SET_SYMBOL('SYSREQ','$'//C_EXE//'SYSREQ'   ,I)
      RECODE=
     +LIB$SET_SYMBOL('TELNETG','@'//C_EXE//'TELNETG.COM " "',I)
      RECODE=LIB$SET_SYMBOL('ZFTP','$'//C_EXE//'ZFTP'       ,I)
      RECODE=LIB$SET_SYMBOL('WYLBUR','$'//C_EXE//'WYLBUR'   ,I)
      RECODE=LIB$SET_SYMBOL('USE','$'//C_EXE//'WYLBUR'      ,I)
C
      RECODE=LIB$SET_SYMBOL('TO','$'//C_EXE//'NEWTONET.EXE' ,I)
C
C---  CMZ symbols
C
      IF(F_CMZ.EQ.1) THEN
      RECODE=LIB$SET_SYMBOL('CMZ' ,'@'//C_EXE//'CMZ.COM " "',I)
      ENDIF
C
C---  GARFIELD symbols
C
      IF(F_GARF.EQ.1) THEN
      RECODE=LIB$SET_SYMBOL('GA*RFIELD','$'//C_EXE//'GARFRUN',I)
C     RECODE=LIB$SET_SYMBOL('GH*ELP',
C    +                      'HELP/NOLIBLIST/LIBRARY=HELP$GARFIELD',I)
      RECODE=LIB$SET_SYMBOL('GED*IT','LSE/ENV=LSE$GARFIELD',I)
      ENDIF
C
C---  GKS symbols
C
C     IF(F_GKS.EQ.1) THEN
C
C     ENDIF
C
C---  HISTORIAN symbols
C
      IF(F_HIS.EQ.1) THEN
      RECODE=LIB$SET_SYMBOL('HISTE','$HISTORIAN_ROOT:[EXE]HISTE',I)
      RECODE=LIB$SET_SYMBOL('HISTG','$HISTORIAN_ROOT:[EXE]HISTG',I)
      RECODE=LIB$SET_SYMBOL('HISTO*R','$HISTORIAN_ROOT:[EXE]HISTOR',I)
      ENDIF
C
C---  MAD symbols
C
      IF(F_MAD.EQ.1) THEN
      RECODE=LIB$SET_SYMBOL('MAD8','@'//C_EXE//'MAD8.COM " "',I)
      ENDIF
C
C---  NAG symbols
C
      IF(F_NAG.EQ.1) THEN
C     RECODE=LIB$SET_SYMBOL('NAGH*ELP','$NAG_ROOT:[EXE]NAGHELP'    ,I)
      RECODE=LIB$SET_SYMBOL('NAGT*EST','@NAG_ROOT:[EXE]NAGTEST " "',I)
      ENDIF
C
C---  RZCONV symbols
C
      RECODE=LIB$SET_SYMBOL('RTOA','$'//C_EXE//'RTOA',I)
      RECODE=LIB$SET_SYMBOL('RTOX','$'//C_EXE//'RTOX',I)
      RECODE=LIB$SET_SYMBOL('RFRA','$'//C_EXE//'RFRA',I)
      RECODE=LIB$SET_SYMBOL('RFRX','$'//C_EXE//'RFRX',I)
C
C---  VAXTAP symbols
C
      IF(F_VAXT.EQ.1) THEN
       RECODE=LIB$SET_SYMBOL('EINIT'    ,'$'//C_EXE//'EINIT'    ,I)
       RECODE=LIB$SET_SYMBOL('LABELDUMP','$'//C_EXE//'LABELDUMP',I)
       RECODE=LIB$SET_SYMBOL('SETUP'    ,'$'//C_EXE//'SETUP'    ,I)
       RECODE=LIB$SET_SYMBOL('STAGE'    ,'$'//C_EXE//'STAGE'    ,I)
       RECODE=LIB$SET_SYMBOL('TAPECOPY' ,'@'//C_EXE//'TAPECOPY' ,I)
       RECODE=LIB$SET_SYMBOL('WRTAPE'   ,'$'//C_EXE//'WRTAPE'   ,I)
       RECODE=LIB$SET_SYMBOL('XTAPE'    ,'$'//C_EXE//'XTAPE'    ,I)
      ENDIF 
C
C---  WWW symbols
C
      IF(F_WWW.EQ.1) THEN
      RECODE=LIB$SET_SYMBOL('WWW'     ,'$CERN:[WWW.EXE]WWW'        ,I)
      RECODE=LIB$SET_SYMBOL('WEB'     ,'@CERN_ROOT:[EXE]WEB " "'   ,I)
C     RECODE=LIB$SET_SYMBOL('XMOSAIC' ,'@CERN:[WWW.EXE]XMOSAIC'    ,I)
      ENDIF
C


Janne Saarela
Wed Mar 29 15:50:22 METDST 1995