NEMO Survival Guide


... Some nice blurb will go here, that explains quickly what NEMO is all about. But you already knew that...

First, you need to know how to modify your UNIX environment such that your can run NEMO programs. This is described in the next Section...

Next, it's good to know how to get online help, and get a hardcopy of it. For this, each program will have a corresponding manual page, that you can print.

Then, you ought to know how to get graphics output, both to the screen and as a hardcopy. Though we can give a general description, the actual implementation on your site may be different due to differences in the hardware.


There are all too many ways to add NEMO to your environment, though they all have in common that something has to be changed to your .cshrc startup file. Pick any you like from the ones described next (assuming you use the csh C-shell):


The most laborious way, but safe and flexible is by making the following four additions/modifications to your startup script:


Adding the following to your .cshrc script, anywhere AFTER your PATH has been defined, will insert NEMO into your environment:

    setenv NEMO /smc/teuben/nemo
    if(-e $NEMO/nemo.rc) source $NEMO/nemo.rc

For safety the `nemo.rc' will not be executed when it doesn't exist. This is a safe way to prevent being logged in with a partial environment.


Adding the following to your .cshrc script, anywhere AFTER your PATH has been defined, will insert NEMO into your environment:

    source /saturn/teuben/nemo/nemo_start

You can also define an alias (say, nemo) for this command. This would not load NEMO into your environment when you logon, when only after the command nemo has been executed.


When you have set yourself up for MIRIAD (see section Setup), an alias nemo has been added that will insert NEMO into your environment whenever you type


on the UNIX commandline; all of NEMO's commands and help facilities will be available. If you prefer to have NEMO present automatically each time you log in, one of the methods descibed before this section must be used.

User Interfaces

NEMO programs are invoked from the commandline (advanced user interfaces are described in See section Advanced User Interfaces), just like any other UNIX program, with a series of parameters of the form keyword=value. We call these keywords program keywords, as their names are unique to a program. The keyword= part is not needed in case the original order of the keywords is used. Once a parameter is specifically named, all remaining parameters need to be named too, e.g. prognam val1 val2 key6=val6 key7=val7. The values of a program keyword can also be obtained from a 'MACRO' file by using the keyword=@file construct.

There also exist a fixed set of system keywords, which are defined for every NEMO program. They can be preset (such that you don't have to supply them for each program) by setting the corresponding environment variable (in UPPER case though). Reminder: environment variables can be set/reset using the shell commands setenv and unsetenv.


Sets help level to program(1) and can aid in command completion. Consist of a numeric and alpha part. The numeric part is the numerical sum of individual help levels, each of them a power of 2:

     0    no help (the default)
     1    restore and save keywords in keyword file prognam.def.
     2    interactive prompting per keyword
     4    menu interface using environment variable EDITOR.
     8    curses based menu interface.
    16    reserved

For example, help=5 would no only use the menu interface, but also restore and save the keyword file. The alpha part typically shows various form of inline help. (2) They can be simple catenated in a string:

  ?     list of options of help keyword (this list)
  h     list keywords plus help string, one on each line.
  u     show one line description of what the program does
  a     show the keyword=value strings. (see also n)
  p,k   show the keyword strings.  (see also n)
  d,v   show the value strings.  (see also n)
  n     add newline between above keyword=value strings
  t     output in miriad-doc format
  z     output in khoros-pane format
  q     quit

The HELP environment variable will be used if keyword is not used

Example: help=1a would always remember keywords between invocations of the program, and show their values when the program is run. Note that keyword files are stored in the current directory, unless the NEMODEF environment variable is set to a directory other then the current one (.).


Define debug output level between 0 and 9. Negative numbers are allowed, and should produce absolutely no warning messages. The higher the level, the more warnings and debug output. The routine dprintf(3NEMO) uses the debug value. The DEBUG environment variable will be used if keyword is not used.

Debug output appears on stderr, thus

	progname ...   debug=1 > progname.log
would still produce output on your terminal. To add this debug output to the logfile also, you would need to redirect with >&:
	progname ...   debug=1 >& progname.log


Bypass a number of fatal error(3NEMO) calls. It's really cheating, use at your own risk. The ERROR environment variable will be used if keyword is not used.


Define the graphics device, if applicable, for the program. The YAPP environment variable will be used if keyword is not used.

If PGPLOT is installed as YAPP device driver, you can use the same argument to the MIRIAD device= keyword as to yapp= (@xref{Plot Device, , , uguide,}),


In one of the following ways you can get more help on NEMO (assuming it's all installed for you (@xref{setup}).

progname help=h
Inline program help. This info is short, but always present.

man progname
Online manual pages. These explain in much more detail how a program works, what the options are, sometimes algorithms are explained. To get a hardcopy of a manual page, try:

    % troff -man -t $NEMO/man/man1/progname.1 | lpr -t
    % manlaser progname
the manlaser command is a shell script is normally installed by NEMO.

CAVEAT: Sometimes a man page is absent, when the programmer has been lazy and didn't write a manual page.

The NEMO User/Programmers Manual
There is a manual, which more or less goes in depth how to use and extend the NEMO environment. You also learn here how to program in NEMO. To get a hardcopy of this manual (be aware: it's big):

    % dvipr $NEMO/text/manuals/nemo.dvi

or any command that sends a `dvi' file to thr printer. If the `svi' file is not present, you'd have to consult the local `Makefile' how to generate the `dvi' file.

e-mail will answer most questions in a polite way.

Advanced User Interfaces

There are a few more "advanced" user interfaces to NEMO (their user friendlyness varies):

Within NEMO the command nemo is an alias calling the miriad shell program to understand NEMO's environment. It is a shell which bears some similarity to AIPS.

The command nemotool is a suntools based program that allows you to select programs, fill in the values of the keywords and run the programs.

shell scripts
Any decent Unix programming shell (csh, bash), perhaps in combination with tools like perl(1), awk(1), and grep, will give you the most powerfull use of a package like NEMO.

The Visual Programming language system cantata, within the khoros system has also been used to execute NEMO programs. However, due to it's experimental nature, we do not recomment this approach for the time being.

Introduction to Programming

All about Makefile's, bake, mknemo, etc...