Basic Linux Requirements
Air Quality Models require:
1. Linux-like environment
3. GNU Make
4. Fortran 90 compiler
5. NetCDF4 and HDF5
Exercise 1: Get Connected on Linux
To run air quality models, your computing environment is expected to meet certain requirements. First, the computer must provide a basic Unix/Linux environment. Linux is a free Unix-like environment that is typically made available by different groups. Each group makes and distributes their own "flavors," which are typically referred to as distributions. The basic Unix/Linux environment will also need a host of software that will be described below.
Appropriate Unix/Linux environments include RedHat, SuSE, Ubuntu, and Mac OS X. RedHat or SuSE are commonly deployed Linux environments that you can buy and have supported by their respective companies. These are a good options if you will be "in charge" of the server and do not have much experience. Ubuntu is free and easy to use, but may not be as easy to get support for. Mac OS X is a viable option; in practice, it requires more effort on your part until it is more widely used by the community.
Our Linux environment in this class will be the University of Florida's High Performance Computing server. The HPC is maintained by the University of Florida and has the necessary options to run air quality models. On the HPC, these options must be enabled in the "compile-time" environment and in the "run-time" environment. "Compile-time" and "run-time" environments will be described in more detail in their respective following sections.
Your first exercise in this section is to prepare your machine to connect to the HPC. In the steps below, (a Linux environment listed above).
1. Download and install access programs (For more details, go to "www.hpc.ufl.edu" and click on "Help" and click on "Getting Started")
2. Download PuTTY (remember where it is, you double click to start) (If you have a mac, you can just use the existing terminal)
3. Download and install FileZilla
4. Configure PuTTY
(a) Double click putty.exe, where you will be presented with a PuTTY Configuration screen
(b) Enter the hostname in the Host Name block
(c) Enter HPC for the connection in the Saved Sessions block.
(d) Expand the Connection line on the left hand menu.
(e) Expand the SSH line under Connection
(f) Select X11 under SSH
(g) Check Enable X11 Forwarding in the box on the right.
(h) Select Session on the left hand menu again.
(i) Click on the Save button on the right.
(j) Your session settings are now saved with the name of the connection you specified.
(k) 1. Close PuTTY for now
5. Configure FileZilla
(a) Start up FileZilla normally
(b) From the "File" menu select "Site Manager"
(c) Click "New Site" at the bottom left
(d) Enter "HPC" in the site name (beside the little computer icon)
(e) enter "gator.hpc.ufl.edu" in Host (no quotes)
(f) Select "SFTP - SSH File Transfer Protocol" from the protocol drop down
(g) Select "Interactive" from "Logon Type"
(h) Enter your user name in "User"
(i) Click OK
(j) Close FileZilla for now
`man` is THE MOST IMPORTANT command. Executing `man man` will give you a manual about `man`. To navigate the manual, you use the “j” key to go down, “k” key to go up, and “q” to quit. `man` provides manuals on any command. In general, it lists the command syntax including options, and arguments. Options are also known as flags. If an option for a command to give some “help”, the flag might be “-h.” Try `man -h` and then run `man man`. Note that -h is one of many options in “[-acdfFhkKtwW]”. Two things about this block are important. First, the  indicates that these options are optional. Second, options can be put together “-hv” is the same as help and version. Finally, the man help line ends with “name.” “name” is an argument (not an option) and is the name of the command that you want a manual for.
Exercise 2: Check Linux
Your second exercise in this section is to connect your machine to the HPC and verify that it has a supported operating system.
1. Open putty
2. Double click "HPC" from the "Saved Sessions"
3. Enter your username after the "login as:" prompt and hit enter
4. Enter you password when prompted and hit enter (note: when you type your password, you will not see any characters, this is okay, just finish typing the password and hit enter)
5. To identify your system, you will use the `uname` command
6. Type (i.e. call) `uname` and note the response here: ______________________
7. first get more information using the `man` command (`man uname`)
(a) Navigate the manual using "j" to go down and "k" to go up and ''q'' to quit
(b) Find the flags (options to uname identified by a dash and letter, like -x where x is any letter) to get the "kernel name", "kernel version", "kernel release", "machine" and "operating system"
8. call `uname` with the necessary flags. If the flags were a, b, c, d, and e; the command would be `uname -abcde`
9. Enter the response here: _____________________________________
10. Identifying the "flavor" of linux is operating system specific (google options if you need them). On this machine, use the `lsb_release` command
(a) Use `man` to find the "identifier" and "release" flags (i.e., man lsb_release)
(b) execute the lsb_release command and enter the response here
i. Distributor ID: _______________________
ii. Release: _________
iii. Is the distributor in the list of supported distributions? (see distributions listed in intro section)
Exercise 3: Test Auxillary Software
Given a supported distribution, you must also have certain other software. air quality models typically require that you have a Fortran 90 compliant compiler, GNU Make, and git. On the HPC, some of this software is in place by default, while the compiler must be chosen by the user (you). The first exercise in this section is to check that git and make are working. In this example, a command is working unless you get the error (`-bash: command: command not found`)
1. Login to HPC using putty (see above)
2. Execute `git`, `gmake`, and `make` with no options or arguments (options: are flags, arguments: are trailing words after the command)
3. Did all the commands exist and execute? _______________