# define module command and surrounding initial environment (default value
# for MODULESHOME, MODULEPATH, LOADEDMODULES and parse of init/.modulespath)
eval "`/usr/bin/tclsh /usr/lib64/Modules//modulecmd.tcl csh autoinit`"

# clarify compat version is not enabled for below tests
if ( ! $?MODULES_USE_COMPAT_VERSION ) then
   setenv MODULES_USE_COMPAT_VERSION 0
endif

# redefine module command if compat version has been activated
if ( "$MODULES_USE_COMPAT_VERSION" == '1' ) then
   setenv MODULES_CMD /usr/lib64/Modules//modulecmd-compat ;
   if ( $?histchars && $?prompt ) alias module 'set _histchars = $histchars; unset histchars; set _prompt="$prompt"; set prompt=""; eval `/usr/lib64/Modules//modulecmd-compat csh \!*`; set _exit="$status";  set histchars = $_histchars; unset _histchars; set prompt="$_prompt"; unset _prompt; test 0 = $_exit' ;
   if ( $?histchars && ! $?prompt ) alias module 'set _histchars = $histchars; unset histchars; eval `/usr/lib64/Modules//modulecmd-compat csh \!*`; set _exit="$status";  set histchars = $_histchars; unset _histchars; test 0 = $_exit' ;
   if ( ! $?histchars && $?prompt ) alias module 'set _prompt="$prompt"; set prompt=""; eval `/usr/lib64/Modules//modulecmd-compat csh \!*`; set _exit="$status";  set prompt="$_prompt";unset _prompt; test 0 = $_exit' ;
   if ( ! $?histchars && ! $?prompt ) alias module 'eval `/usr/lib64/Modules//modulecmd-compat csh \!*`' ;
endif

# define function to switch between C and Tcl versions of Modules
set switchml_defined="`alias switchml`"
if ( "$switchml_defined" == '' ) then
   alias switchml 'set swfound=1; \\
      if ( ! $?MODULES_USE_COMPAT_VERSION ) setenv MODULES_USE_COMPAT_VERSION 0; \\
      if ( "$MODULES_USE_COMPAT_VERSION" == "1" ) set swname="main"; \\
      if ( "$MODULES_USE_COMPAT_VERSION" == "1" && -e /usr/lib64/Modules//modulecmd.tcl ) set swfound=0; \\
      if ( "$MODULES_USE_COMPAT_VERSION" != "1" ) set swname="compatibility"; \\
      if ( "$MODULES_USE_COMPAT_VERSION" != "1" && -e /usr/lib64/Modules//modulecmd-compat ) set swfound=0; \\
      if ( $swfound == 0 && $swname == "main" ) setenv MODULES_USE_COMPAT_VERSION 0; \\
      if ( $swfound == 0 && $swname == "compatibility" ) setenv MODULES_USE_COMPAT_VERSION 1; \\
      if ( $swfound == 0 ) echo "Switching to Modules $swname version"; \\
      if ( $swfound == 0 ) source /usr/share/Modules/init/csh; \\
      if ( $swfound != 0 ) echo "Cannot switch to Modules $swname version, command not found"; \\
      unset swfound swname;'
endif
unset switchml_defined

if ( $?tcsh && $?prompt && -r /usr/share/Modules/init/tcsh_completion ) then
if ( "$MODULES_USE_COMPAT_VERSION" != '1' ) then
   source /usr/share/Modules/init/tcsh_completion
else
   # no completion support on compat version
   uncomplete module
endif
endif

# setup ENV variables to get module defined in sub-shells (works for 'sh'
# and 'ksh' in interactive mode and 'sh' (zsh-compat), 'bash' and 'ksh'
# (zsh-compat) in non-interactive mode.
setenv ENV /usr/share/Modules/init/profile.sh
setenv BASH_ENV /usr/share/Modules/init/bash

if ( ":${PATH}:" !~ '*:/usr/bin:*' ) then
   if ( "$PATH" == '' ) then
      setenv PATH /usr/bin
   else
      setenv PATH "/usr/bin:$PATH"
   endif
endif

if ( $?MANPATH ) then
   set manpath = $MANPATH
else
   set manpath = ''
endif
if ( ":${manpath}:" !~ '*:/usr/share/man:*' ) then
   if ( "$manpath" == '' ) then
      setenv MANPATH /usr/share/man
   else
      setenv MANPATH "/usr/share/man:$manpath"
   endif
endif
unset manpath
