> For the complete documentation index, see [llms.txt](https://docs.ccv.brown.edu/oscar/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ccv.brown.edu/oscar/software/using-idl.md).

# IDL

## Setting Up IDL

First load the IDL module that you want to use with `module load idl/version_number`:

{% hint style="info" %}
You can use the command `module load idl` to simply load the default version. This is demonstrated in the following command followed by system dialogue.
{% endhint %}

```console
$ module load idl
module: loading 'idl/8.5.1'
module: idl: License owned by Jonathan Pober. Set up the environment for IDL by running: "shopt -s expand_aliases; source $IDL/envi53/bin/envi_setup.bash".
```

As indicated by the system dialogue, you will need to enter the following command to set up the environment for IDL:

```console
$ shopt -s expand_aliases; source $IDL/envi53/bin/envi_setup.bash
```

## IDL Command Line

Once you've set up IDL in the way outlined above, you can open the IDL command line by simply using the command `idl`:

```console
$ idl
IDL Version 8.5.1 (linux x86_64 m64). (c) 2015, Exelis Visual Information Solutions, Inc., a subsidiary of Harris Corporation.
Installation number: 5501393-2.
Licensed for use by: Brown University

IDL>
```

{% hint style="info" %}
Note: To exit this environment, simply use the command `exit`
{% endhint %}

As is stated in the [IDL Documentation](https://www.l3harrisgeospatial.com/docs/using_idl_home.html), IDL in command-line mode "uses a text-only interface and sends output to your terminal screen or shell window." Thus, this is a mode in which you can enter commands and see their results in real time, but it is not where one should write full IDL programs.

## IDL Programs

To write an IDL program, you can use any of the text editors on Oscar (such as vim, emacs, and nano) or you can create the program in a file on your own computer and then copy that file to Oscar when you are finished. Here is an example (hello world) IDL program `idl_hello_world.pro`:

```idl
PRO IDL_HELLO_WORLD

PRINT, ("Hello World!")

END
```

{% hint style="info" %}
This file and the batch file below can be found at `/oscar/runtime/software_examples/idl/8.5.1` if you wish to copy them and test the process yourself.
{% endhint %}

Once you have the `.pro` file on Oscar, you can then run this file using a batch script. Here is a bare bones version of a batch script (called `idl_hello_world.sh)`that will run the script `idl_hello_world.pro` (note that the `.pro` is omitted in the script).

```bash
#!/bin/bash

module load idl
shopt -s expand_aliases; source $IDL/envi53/bin/envi_setup.bash

idl -e idl_hello_world
```

We can then run the batch file by using the `sbatch` command:

```console
$ sbatch idl_hello_world.sh
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ccv.brown.edu/oscar/software/using-idl.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
