== Windows machines == Single-processor machines need the following: * Cygwin - ROMS_SED works fine on Windows-based machines, but it really helps to use Cygwin * [wiki:SvnStuff SVN] client - You can use the command-line interface in Cygwin, or a GUI client like TortoiseSVN * netCDF - Required. If you want to do coupling (e.g., waves with SWAN), you also need * MPICH Also, you need a Fortran compiler. We have experience with * g95 Gnu Fortran * df Compaq/Digital (no longer being distributed) * ifort Intel '''What you need to do''' * Install and configure Cygwin * Install svn * Install netCDF libraries * Get a copy of the code * Edit the makefile * Type make to compile * Type ./oceanS < ROMS/External/ocean_upwelling.in '''Install and configure Cygwin''' Get Cygwin from http://x.cygwin.com/ Install it by clicking on the Install Cygwin/X now icon. At the step where you are asked to Setup in your Cygwin home directory, you should have (or create) a file called {{{.bashrc}}} Edit it to indicate where some key stuff resides. Mine looks like {{{ export LIB="C:\Program Files\Intel\Compiler\Fortran\9.1\IA32\Bin;C:\Program Files\Intel\Compiler\Fortran\9.1\IA32\Lib;C:\Program Files\Microsoft Visual Studio\VC98\LIB;C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Lib\;C:\Program Files\Microsoft Visual Studio\DF98\IMSL\LIB;C:\Program Files\Microsoft Visual Studio\DF98\LIB" export NETCDF_INCDIR="/usr/local/include" export NETCDF_LIBDIR="/usr/local/lib" export UDUNITS_PATH="/usr/local/lib/udunits.dat" # Ignore case while completing set completion-ignore-case on # Make Bash 8bit clean set meta-flag on set convert-meta off set output-meta on alias less='/bin/less -r' # alias ls='/bin/ls -F --color=tty --show-control-chars' alias cdroms='cd ~/src/roms_sed/branches/crs_branch' }}} On a Windows desktop with a two single processors, and hyperthreading turned on, you can set: {{{export OMP_NUM_THREADS = 4}}} Edit {{{makefile}}} to compile with {{{ USE_OpenMP ?= on ... FORT ?= ifort }}} Edit {{{./ROMS/External/ocean_upwelling.in}}} and set {{{ NtileI == 2 NtileJ == 2 }}} and then run {{{./oceanO < ROMS/External/ocean_upwelling.in }}} But Rich says that it might be faster to set it as 1 x 4, or even 3 x 20 (because with OpenMP, the tiling is not limited to the actual number of processes.