This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
>From: "Kwan-yin Kong" <address@hidden> >Organization: CCNY >Keywords: 200301272351.h0RNpd617689 McIDAS DSSERVE Kwan-yin, >Thank you. After getting rid of the apostrophy, I was >able to list and display the images. Amazing how an >apostrophy can mess things up. That is pretty amazing, isn't it :-) >About the path in mcidas and user accounts: When I >proceeded through the steps of installing McIDAS, I had to >type in by hand the MCGUI path into the 'set path=(....)' >line in .tcshrc before mcidas could be started. Is this a >"standard" step that we have to do? No, it isn't. The block of defines that I recommend for McIDAS, and that you include in your message, should take care of that. >I don't seem to find >that in the mcidas installation tutorial web page. The setting of the McIDAS environment variables is covered in detail in the McIDAS installation and configuration portion of the Unidata McIDAS web site. In the .tcshrc file you include below, I can see that if you define path at the top of the file, then when McIDAS gets executed, the knowledge of where the McIDAS binaries are will get lost. Let's take an example where you set path at the top of the .tcshrc file without specifying the path to the McIDAS executables: # umask umask 002 set prompt="<-$LOGNAME-> " alias dir "ls -alg;echo 'Current Directory:';pwd" alias mv "mv -i" setenv EDITOR vi set path= ( /usr/bin /usr/dt/bin /usr/openwin/bin /usr/local/bin /usr/ccs/bin /opt/sfw/bin .) # MCHOME and McINST_ROOT setenv MCHOME $HOME setenv McINST_ROOT $MCHOME # NOTE: conditional definition is only needed for C-shell users if ( ! ${?MCPATH} ) then setenv MCDATA $MCHOME/workdata setenv MCPATH ${MCDATA}:$MCHOME/data:$MCHOME/help setenv MCGUI $MCHOME/bin setenv MCTABLE_READ "${MCDATA}/MCTABLE.TXT;$MCHOME/data/ADDESITE.TXT" setenv MCTABLE_WRITE "$MCHOME/data/ADDESITE.TXT" setenv XCD_disp_file $MCDATA/DECOSTAT.DAT if ( ! ${?path} ) then set path=$MCGUI else set path=(${MCGUI} $path) endif endif # Limit ADDE transfers to compressed ones setenv MCCOMPRESS TRUE When you first login, path gets set and then the McIDAS environment variables get set. Since MCPATH is not defined at this point, the code within the 'if ( ! ${?MCPATH} ) then' is executed. This means that MCDATA is first set, then MCPATH, then MCGUI, then MCTABLE_READ, then MCTABLE_WRITE., and then XCD_disp_file. Then the 'if ( ! ${?path} ) then' section says "if path is not set, then define it to be $MCGUI; if it is set, put MCGUI at the beginning of the path. In this case, path existed, so MCGUI is prepended at the front of path. Now when McIDAS is started, mcenv rereads .cshrc and path gets reset. However, MCPATH now exists, so the McIDAS environment variables don't get refined, and the 'if ( ! ${?path} ) then' clause never gets executed. This leaves you with a path without the location of the McIDAS binaries in it. So, if you defined path _after_ the 'if ( ! ${?MCPATH} ) then' block as follows, you should not see the problem: # umask umask 002 set prompt="<-$LOGNAME-> " alias dir "ls -alg;echo 'Current Directory:';pwd" alias mv "mv -i" setenv EDITOR vi # MCHOME and McINST_ROOT setenv MCHOME $HOME setenv McINST_ROOT $MCHOME # NOTE: conditional definition is only needed for C-shell users if ( ! ${?MCPATH} ) then setenv MCDATA $MCHOME/workdata setenv MCPATH ${MCDATA}:$MCHOME/data:$MCHOME/help setenv MCGUI $MCHOME/bin setenv MCTABLE_READ "${MCDATA}/MCTABLE.TXT;$MCHOME/data/ADDESITE.TXT" setenv MCTABLE_WRITE "$MCHOME/data/ADDESITE.TXT" setenv XCD_disp_file $MCDATA/DECOSTAT.DAT if ( ! ${?path} ) then set path=$MCGUI else set path=(${MCGUI} $path) endif endif # Limit ADDE transfers to compressed ones setenv MCCOMPRESS TRUE set path= ( $path /usr/bin /usr/dt/bin /usr/openwin/bin /usr/local/bin /usr/ccs/bin /opt/sfw/bin .) Does this make sense to you? Tom