Presentation Supercomputing Computer Database SIEpedia SIE News

Follow @SIEie_IAC
Logo SIE

FAQs on IRAF upgrade to v2.14.1

In this page we try to answer some of the questions related to the upgrade of IRAF to the latest release, v2.14.1.
Note that these FAQs are in a state of flux, as new questions may be added (so that question numbers may shift) or answers may be revised or rephrased to improve clarity.

Q-01 Why do we jump directly from v2.12 to v2.14; what happened with v2.13?
A-01 V2.13-Beta2 was an IRAF release targeted primarily to Mac OS X and Cygwin users. It never left the Beta stage. Last december IRAF v2.14 was released (with some minor changes and bug fixes published early this year), while patch 2.14.1 was released about one month ago. We believe that the time is mature to switch to this latest IRAF version.
Q-02 What are the most interesting new features in this release?
A-02 Some of the highlights of this latest release are:

A comprehensive list of the changes introduced in this version can be found in http://iraf.net/ftp/iraf/v214/PCIX/README

Also, TABLES and STSDAS have been upgraded to v3.8. See the STSDAS Release Notes for a detailed list of changes.
Q-03 What should I do to use the new IRAF release (and forget about the older one)?

A-03 We do recommend that you switch as soon as possible to IRAF v2.14.1, especially if you do not run any particular program or script which you think may fail in the new release because of modifications to tasks or changes in the task parameters. Please follow these steps to migrate easily to the new IRAF version:
cd ~/iraf
mkiraf - when asked to initialize uparm, answer yes (what happens if I answer yes?) or no (what happens if I answer no?). As terminal type, answer xgterm (it's the only one that should be used for IRAF).

Then revise and modify your login.cl file. You should inspect your loginuser.cl file (if you have it), and check if it contains instructions and commands not compatible with the new version. See the questions about loginuser.cl.
Please use ecl to start IRAF.

Q-04 Can I execute mkiraf in a directory other than ~/iraf or similar?
A-04 I've noticed that some people run mkiraf in a scratch directory (for instance where they keep their data). We strongly recommend against it, as doing so might produce several problems (typically errors in modifying task parameters, permission denied errors, etc.) ... Please set you iraf directory to a subdirectory in your home, and stick with it (you can cd to the scratch directory after starting IRAF).
Q-05 What happens if I answer no to "initialize uparm?"
A-05 IRAF will preserve the parameter files in the uparm directory. This means that you may experience problems when using tasks in IRAF 2.14.1 that have changed from the previous 2.12.2 version. You should read the question about task parameters changes.
Q-06 What happens if I answer yes to "initialize uparm?"
A-06 The content of the uparm directory will be removed, so you'll lose all your task parameter settings. On the other hand, you won't experience any problem with tasks that have changed from the previous versions. This is what I would recommend.
Q-07 Does IRAF v2.14.1 have all the packages that were installed in the previous version?
A-07 Yes, all the existing external packages should also work in IRAF 2.14.1. Should you notice any problem with an external package, or if you need one that is not installed (or wish to upgrade an existing package), just let us know.
See here a list of the packages available in IRAF v2.14.1 @ IAC.
Q-08 I use a task in v2.14.1, but I obtain strange error messages concerning task parameters. Why and what should I do?

A-08 Most probably the errors are generated by tasks with new or modified parameters, which conflict with the ones from the older IRAF version, stored in your uparm directory. In such case, you might try the relearn task in the rvsao package:
cl> relearn task
This command saves the current parameters values for the task, unlearns it, and reassigns the old parameter values to the new file.

However, sometimes relearn fails. In this case you may do something like this:
cl> dpar task > filename       # store the parameter values in a file.
cl> unlearn task    # reset all task parameters to the default values
cl> epar task     # manually set the parameter values to those just saved in the file.   

Q-09 I still need to use the old IRAF version (I have some scripts that do not work in the new one, and have no time to fix them), but I also want to try the new one. What can I do?

A-09 Indeed sometimes a user needs to be able to work with both the old and the new IRAF version. For instance, she has some old scripts and programs (or a home-made package) that do not work in the new IRAF, and has no time to do all the modifications required to fix or adapt them. In this case it is possible to use either version, following carefully the instructions below (you might change the directory names if you wish so):

** IRAF 2.12.2 **
cd ~/      # go to home directory
mkdir iraf212 ; cd iraf212        # create directory for IRAF v2.12.2
mkiraf212          # Initialize IRAF 2.12.2
... revise and modify login.cl ... (you may check against your existing login.cl file)
ecl212       # Start the old IRAF

Alternatively, you can keep your existing iraf directory, or copy over your own files or scripts to the iraf212 directory. You can also move over there the uparm directory.

** IRAF 2.14.1 **
cd ~/         # go to home directory
mkdir iraf214 ; cd iraf214        # create directory for IRAF v2.14.1
mkiraf       # Initialize IRAF (new version)
... revise and modify login.cl ...
ecl     # Start new IRAF

It´s extremely important that each IRAF version be started from its own directory:
cd ~/iraf214 ; ecl     or   cd ~/iraf212 ; ecl212.

If you are still confused about how to proceed, or you have scripts and procedures that you would like to use in IRAF 2.12.2 and do not know exactly what to do, please get in touch with us.

Q-10 Will the command mkiraf create a loginuser.cl file ?
A-10 No, it won't. Also, your existing loginuser.cl file may need some modifications, as it may contain commands and instructions incompatible with this new IRAF version.
If you wish, you can copy this loginuser.cl template over to your new iraf directory, and edit and modify it.
Q-11 What can I do if I experience problems with this new IRAF version?
A-11 As in any major upgrade of big packages such as IRAF, it is possible that you will experience problems, because of some glitch in the installation process, because the migration to the new version was not done properly, or even because of a bug in the IRAF release itself. In any case, please contact with the CAU ( ) or the SIE ().
Remember that by submitting any problems you find to the helpdesk, and collaborating to their solution, you not only help yourself but also all other IAC IRAF users.
Q-12 I was using the task plcreate in the X-ray package to build masks from region created in DS9. Now that this package is no longer available, what task can I use?
A-12 You can use mskregions in the proto package. If you use DS9 to create regions, please note the output DS9 format may be different from the format expected by this task (it seems that mskregions is a little buggy). It might be possible to provide a "standalone" version of the plcreate task in the xray package; get in touch with us if interested.
Q-13 I have used some shell scripts that called cl to execute some IRAF tasks or scripts, and now they all fail with a lot of "ERROR: use 'logout' to log out of the CL" messages Why is that?
A-13 This is because now the command cl by default starts the ecl.e executable. To fix the problem, simply add the -old switch to the cl command line. For further details see the IRAF thread http://iraf.net/phpBB2/viewtopic.php?t=87118. An exhaustive explanation of how to execute IRAF scripts as host commands can be found in Host CL Scripting Capability.
Q-14 I have a question about this new IRAF version, but I can't find it in these FAQs ...
A-14 Well, send your question to , and we will reply and also include the answer in these FAQs, if appropriate.