Contains and compilation

Principales programas

Hablar de que es en la carpeta bin dond enos vamos a mover y es importante tener un buen manejo y conocimiento de todo lo que haya en ella, no necesariamente script a scipt pero sí algo recordado

En bin se almacenan todos los comandos ejecutables de WW3 para la compilación del mismo.

  • install ww3 tar Script to install WAVEWATCH III from tar files.

  • w3_setup: Script for creating/editing the WAVEWATCH III environment setup file. The default setup file is bin/.wwatch3.env. switch and compiler are given in arguments. (see options, link a un capítulo dedicado a setup)

  • w3_clean: Script to clean up WAVEWATCH III directories by removing files generated during compilation or test runs. 3 levels of clean*up. (see options). Cuando hago el clean es como si cambiara el molde pero no la panadería o el entorno de trabajo.

  • w3_make: Script to compile and link components of WAVEWATCH III using a makefile. A list of programs can be given in arguments. Es para hacer los moldes del pan (o casos que quiero trabajar) link a un capítulo dedicado a compilación

  • w3_automake: Script to automatically compile separately sequential and distributed programs in MPI, OMP or HYB depending on the switch file content. A list of programs can be given in arguments.

  • w3_new: Script to touch all correct source code files to account for changes in compiler switches in combination with the makefile.

  • ww3_gspl.sh: Script to automate use of ww3 gspl program (seeSection 4.4.11). ¿Crear multi…? para qué es …?

  • arc wwatch3 tar Program to archive versions of WAVEWATCH III in the directory arc.

  • ww3_from_ftp.sh: Script to download all the binary files not provided by git

Hablar de los más improtantes para el proyecto

Compilación

Creación del setup

Después de los dos comandos anteriores, WAVEWATCHIII está listo para ser compilado bajo la configuración que requiera el usuario

Para cualquier compilación se escribe el siguiente comando desde el directorio bin

w3_setup /home/user/WW3/model -c <comp> -s <switch>

En <comp> se escribe el nombre del compilador y en <switch> el nombre del switch

Compiladores

Switch

EJEMPLO DE UN SWITCH

Primer grupo

  • F90: Swith que selecciona el código dependiente de la máquina. La otra opción disponible es: DUM

Segundo grupo

Aquí se define el modelo de kardware y el protocolo de transferencia de mensajes hay una pareja de opciones:

  • SHRD shared memory model o DIST distribuites memory model (hardware)

  • SHRD shared memory model o MPI message passing interface (messaging)

Notese que si se selecciona MPI, no puede seleccionarse SHRD en el hardware

Tercer grupo: Esquemas de propagación

  • PRO, PR1,PR2,PR3,PRX: se elige uno de aquí

  • PRO, PR1,UNO,UQ: se elige uno de aquí

Cuarto grupo: Selection of flux computation

  • FLX0: Rutinas no usadas, flujo de computación incluida en los términos fuente

  • FLX1: velocidad de fricción según una ecuación

  • FLX2: vel fricción dede Tolman y CHalikov

  • FLX3: Idem

  • FLX4: vel fricción según otra ecuación

  • FLXX: Definida por usuario

** Quinto grupo**: Selection of linear input * ln0: No linear input. * seed: Spectral seeding of Eq. (3.70). * ln1: Cavaleri and Malanotte*Rizzoli with filter. * lnx: Experimental (user supplied)

Sexto grupo: Selection of input and dissipation, stabn switches are optional and additional to corresponding stn switch:

  • st0 No input and dissipation used.

  • st1 WAM3 source term package.

  • st2 Tolman and Chalikov (1996) source term package. See also the optional stab2 switch.

  • stab0 No stability correction. Compatible with any source term (st) package. Including this switch has no effect.

  • stab2 Enable stability correction (2.95) * (2.98). Compatible with st2 only.

  • st3 WAM4 and variants source term package.

  • stab3 Enable stability correction from Abdalla and Bidlot (2002).Compatible with st3 and st4 only.

  • st4 Ardhuin et al. (2010) source term package.

  • st6 BYDRZ source term package.

  • stx Experimental (user supplied).

Séptimo grupo: Selection of nonlinear interactions: * nl0 No nonlinear interactions used. * nl1 Discrete interaction approximation (DIA). * nl2 Exact interaction approximation (WRT). * nl3 Generalized Multiple DIA (GMD). * nl4 Two*scale approximation (TSA). * nlx Experimental (user supplied)

Octavo grupo: Selection of bottom friction: * bt0 No bottom friction used. * bt1 JONSWAP bottom friction formulation. * bt4 SHOWEX bottom friction formulation. * bt8 Dalrymple and Liu formulation (fluid mud seafloor). * bt9 Ng formulation (fluid mud seafloor). * btx Experimental (user supplied)

Noveno grupo: Selection of term for damping by sea ice: * ic0 No damping by sea ice. * ic1 Simple formulation. * ic2 Liu et al. formulation. * ic3 Wang and Shen formulation. * ic4 Frequency*dependent damping by sea ice

Décimo grupo: Selection of term for scattering by sea ice: * is0 No scattering by sea ice. * is1 Diffusive scattering by sea ice (simple). * is2 Floe*size dependent scattering and dissipation

Onceavo grupo: Selection of term for reflection: * ref0 No reflection. * ref1 Enables reflection of shorelines and icebergs

Décimo grupo: Selection depth*induced breaking of : * db0 No depth*induced breaking used. * db1 Battjes*Janssen. * dbx Experimental (user supplied)

Onceavo: Selection of triad interactions: * tr0 No triad interactions used. * tr1 Lumped Triad Interaction (LTA) method. * trx Experimental (user supplied)

#### Selection of bottom scattering: * bs0 No bottom scattering used. * bs1 Magne and Ardhuin. * bsx Experimental (user supplied).

#### Selection of supplemental source term: * xx0 No supplemental source term used. * xxx Experimental (user supplied).

#### Selection of method of wind interpolation (time): * wnt0 No interpolation. * wnt1 Linear interpolation. * wnt2 Approximately quadratic interpolation.

#### Selection of method of wind interpolation (space): * wnx0 Vector interpolation. * wnx1 Approximately linear speed interpolation. * wnx2 Approximately quadratic speed interpolation

#### Selection of method of current interpolation (time): * crt0 No interpolation * crt1 Linear interpolation. * crt2 Approximately quadratic interpolation.

#### Selection of method of current interpolation (space): * crx0 Vector interpolation * crx1 Approximate linear speed interpolation. * crx2 Approximate quadratic speed interpolation.

#### Switch for user supplied GRIB package. * nogrb No package included. * ncep1 NCEP GRIB1 package for IBM SP. * ncep2 NCEP GRIB2 package for IBM SP

#### Opcional switches * o0: imprime el namelist el el preprocesador de la malla (ww3_grid) * o1: imprime los puntos límite en el preprocesador de la malla (ww3_grid) * o2: imprime el mapa de estado de los mapas (ww3_grid) * o3: imprime el ciclo de cada paso de la compilación en el preprocesador del campo (ww3_prnc) * o4: Print plot of normalized one*dimensional energy spectrum in initial conditions program (w3_strt) * o5: Id. two*dimensional energy spectrum. * o6: Id. spatial distribution of wave heights (not adapted for distributed memory). * o7: Echo input data for homogeneous fields in generic shell. * o10: Identify main elements of multi*grid model extensions in standard output. * o11: Additional log output on management algorithm in log.mww3

Cuando se corre w3_setup se crearán 3 scripts/archivos en el directorio bin:

  • comp: script compilador. Este script está basado en la plantilla comp.tmpl con la definición del compilador y sus opciones. <comp> es el compilador que se desea emplear, por lo tanto, es bueno que se verifique cuál es el más aconsejable para su sistema operativo.

  • link: script enlazador. Este script está basado en la plantilla link.tmpl con la definición del compilador y sus opciones

  • switch: es el archivo que contiene todos los switches que activan las configuraciones que queremos y que son reconocidos por el preprocesador w3adc. Copied from switch <switch>

todos los posible archivos comp, swith y link están en el directorio bin

Cuando la sentencia anterior se ejecuta algo como esto:

GIF

El archivo de entorno wwatch3.env o actualizado si ya existe. The auxiliary FORTRAN programs for code prepocessor will be compiled using by default the GNU FORTRAN compiler which can be different to the provided compiler for the WAVEWATCH III programs.

¿Qué creo esto comando?

se crea w3_split, w3_prnt, w3_list,w3_adc, switch, comp y link

  • También crea un make_makefile.sh

GIF

Si desea cambiarse de configuración se recomienda ejecutar el script w3_clean```desde lel directorio ``bin. Para más información ver este [literal](#limpieza*de*las*configuraciones*realizadas):

Compilación a partir de las configuraciones hechas

Existen principalemente 2 formas de compilar

### w3_make

Se usa w3_make para compotlar WAVEWATCH, si es usa sin parámetros se usan todos los programs básicos, sino los que acompañen la ejecucuoón de w3_make

### w3_automake

Para una compilación selectiva

w3_automake

or for a few programs

w3_automake ww3_grid ww3_shel ww3_ounf

Se crean las siguiente carpetas:

Relativas a ejecuciones en serie * mod_SEQ: * obj_SEQ * work_SEQ * tmp_SEQ: se alamacenan los errores, warnings y demás que ocrrieron durante la compilación en serie

Relativas a ejecuciones en paralelo * mod_MPI: * obj_MPI * work_MPI * tmp_MPI: se alamacenan los errores, warnings y demás que ocrrieron durante la compilación en paralelo

Adicionalmente, los programas compilados serán todos almacenados en el directorio exe junto a una copia de los archivos switch, comp y link usados en el setup y sus correspondientes a SEQ y MPI

# Limpieza de las configuraciones realizadas

Uso de w3_clean *c para tal comandos

Uso de w3_clean *m para tal comandos

Aprender a bajar datos de un ftp como el de ifremer