The GETM utilities repositories is a container for many different types of programs, and the programs are written by different programmers/authors in different programming languages.
To compile and use all utilities, it is necessary to have access to a number of different compilers, scripting interpreters and libraries.
You do not need to have all compilers/environments available, only those necessary for the utilities, which you are actually going to use. However, if you do have access to "everything", then the build/installation may become simpler.
If you want to use the tools, then it is expected that you have a basic understanding of Linux, shells (terminals) and environment variables. If you have never used Linux or Unix before, then you should expect a very steep learning curve, and you should be prepared to do a significant amount of reading along the way.
Most utilities are developed and tested on a Linux machine. Although many of the utilities should be portable to other operating systems, it will likely take some level of wizard skills to make it work. Until somebody does that - or unless you possess some of that magic yourself - it is strongly recommended that you only try to use the utilities on a linux box.
This said, it should be possible to make everything work on e.g. a standard Ubuntu LTS box.
An important exception is the matlab utilities. The [SubdomainDivision] tool was developed under a Windows environment.
In linux the type of shell you run will affect, which types of commands you can make. In particular, the so-called environment variables are set differently on the two most common shell types used.
I try to write all documentation for BASH-type environment. If you want to use an alternative, which is typically a (t)csh type shell, then you are free to do so. But then you must know what you are doing, and know the differences between bash and csh.
If you are in doubt, then type the following in your present shell (after login on the computer / in a terminal):
echo $SHELL
If it is /bin/csh or /bin/tcsh (or just contains csh), then you use a C-type shell, and you must carefully modify the examples to make them work. Alternatively, you can change to e.g. bash, either during or after login. If the output is e.g. /bin/bash or /bin/sh, then you already use bash/sh, and should be able to use the examples without modification.
In order to even download the source code and examples, you need a git client and the build system "make", i.e. the following commands should be able to find git and make on your local system:
which git which make
At DaMSA, we use intels fortran compiler (ifort) operationally. As a consequence it is also the compiler of choise for most other development.
It should, however, be possible to compile and use the Fortran-based utilities with other compilers, e.g. gfortran. In general, follow the instructions for GETM to set the environment variable FORTRAN_COMPILER. That should work for getm-utils as well. You may have to change some of the compilation flags, though. If you use other compilers and have suggestions to updated Makefiles to make it work, then let me know.
I develop/test with gcc, but other compilers should work. You may have to change some of the compilation flags, though.
You need perl installed to run e.g. [ncscatter].
An increasing number of the utilities are written in python. In order to use the array computation features (and more), it is necessary to install some python modules, the most important of which is NumPy.
The python-scripts will try to check the environment during the make process.
There are no installation scripts for the matlab utilities, so you do not need matlab on the machine on which you build the other utilities. However, to use the matlab tools, you will need matlab on some machine.
Many tools will require access to netCDF libraries. You should have both headers and libraries installed. You need to be able to link to the netCDF libraries with your Fortan and C compilers. It is possible to use separate libraries for Fortran and C linking.
TODO: Add specific requirements for each tool.
Wiki: BuildInstructions
Wiki: GETM Utils
Wiki: OtpsTides
Wiki: ncscatter
Anonymous