LiveCROCO Básico Versión 1.
5, 19 octubre 2022
Tutorial 01 LiveCROCO:
Uso Básico
1. Propósito
En este tutorial revisaremos las instrucciones básicas usar la máquina virtual LiveCROCO, basada en Sepúlveda
et al. (2011), que le permitirá tener un ambiente de trabajo con las herramientas de CROCO y CROCO TOOLS
en su computador personal.
2. VirtualBox
Las máquinas virtuales son ambientes autónomos de trabajo que uno puede instalar en su computador, sin
necesidad de hacer una partición del disco duro. Para esto necesita primero un programa que maneje las maquinas
virtuales. En este caso usaremos el programa VirtualBox, a donde instalaremos una máquina virtual con Linux y
muchos de los programas necesarios para usar CROCO. A esta máquina virtual la llamaremos LiveCROCO.
Asegurese de tener suficiente memoria RAM, 4 o más GB, y espacio de disco duro, más 100GB
libres.
Note que la información de la pantalla que aquı́ se observa puede ser distintos a lo que Ud. verá, dependiendo
de su sistema operativo.
2.1. Instalación de VirtualBox
Consiga e instale el programa VirtualBox desde esta dirección
1 [Link]
Figura 1: Sitio web de VirtualBox
e instálelo en su computadora.
2.2. Instalación de LiveCROCO
Baje el siguiente archivo.
1 [Link]
¡Atención que pesa 16G!
Para saber si el archivo bajó correctamente verifique usando el comando md5sum
1
LiveCROCO Básico Versión 1.5, 19 octubre 2022
1 md5sum LiveCROCO_v1.[Link]
deberı́a obtener
1 9e935d7fb1815cf3db68a4fa3f6acea1 LiveCROCO_v1.[Link]
Abra el programa VirtualBox y seleccione la pestaña de Archivo. Seleccione la opción Importar servicio
virtualizado... (Fig. 2)
Figura 2: Importando servicio virtualizado
Luego busque el archivo .ova que acaba de bajar (Fig. 3),
Figura 3: Buscar servicio virtualizado
y selecciónelo (Fig. 4).
2
LiveCROCO Básico Versión 1.5, 19 octubre 2022
Figura 4: Seleccionar servicio virtualizado
Apriete el botón de Next (Fig. 5)
Figura 5: Cargar el archivo
y luego el de Importar (Fig. 6).
3
LiveCROCO Básico Versión 1.5, 19 octubre 2022
Figura 6: Iniciando la instalación
Con eso empieza el proceso de instalación (Fig. 7).
Figura 7: Barra de instalación del servicio virtualizado
Cuando la instalación termine, verá una pantalla similar a esta, donde estará entre sus opciones la máquina
virtual que acaba de importar (Fig. 8).
Figura 8: Maquinas virtuales disponibles
Seleccione la opción LiveCROCO v1.2.1b y apriete el botón de iniciar (la flecha verde). Eso activará la
máquina virtual y después de un rato se encontrará con Fig. 9
4
LiveCROCO Básico Versión 1.5, 19 octubre 2022
Figura 9: Pantalla inicial de LiveCROCO
El nombre del usuario y su clave es livecroco. El usuario pertenece al grupo sudo.
3. Usando LiveCROCO
3.1. Creando el directorio de trabajo Run BENGUELA LR
El ejemplo más sencillo de CROCO es la configuración llamada BENGUELA LR que corresponde a un dominio
de la zona de surgencia de Benguela de baja resolución (de ahı́ el LR : Low Resolution). Esta configuración es la
que viene por defecto en el código de CROCO y lo que haremos es similar a lo descrito en Penven et al. (2001).
El primer paso es abrir un terminal apretando en el ı́cono rojo a la izquierda, bajo el sı́mbolo de Firefox, y en
ese terminal escribir
1 cd Desktop
después
1 ./create_config.bash
lo que le dará
1 Your choices :
2 - SOURCES_DIR : /home/livecroco/croco
3 - TOOLS_DIR : /home/livecroco/croco_tools
4 - CONFIG_DIR : /home/livecroco/Desktop
5 - CONFIG_NAME : Run
6 Do you want to proceed ? [Y/n]
y al apretar la tecla Y aparece
5
LiveCROCO Básico Versión 1.5, 19 octubre 2022
1 Creating configuration ...
2
3 => Copy the source files from /home/livecroco/croco
4 needed to setup your own simulations
5
6 => Copy from /home/livecroco/croco done
7
8 => Copy the tools from and /home/livecroco/croco_tools
9 needed to setup your own simulations
10
11 => Copy from /home/livecroco/croco_tools done
12 /home/livecroco/Desktop
Figura 10: Creando una configuración en LiveCROCO
Este script crea un directorio con el nombre que Ud. definió en CONFIG NAME con todos los códigos
necesarios para realizar su simulación, este será nuestro directorio de trabajo. El contenido de esta carpeta debe ser
parecido al siguiente:
1 cppdefs.h domain_def.xml namelist_pisces_ref SCRATCH
2 create_run.[Link] field_def.xml_full namelist_pisces_ref.1 [Link]
3 CROCO_FILES [Link] oct_start.m start.m
4 [Link] jobcomp param.h TEST_CASES
5 [Link].1 Misc README_XIOS xios_launch.file
6 croco_inter.in NAMELIST_OANALYSIS run_croco.bash
7 crocotools_param.m namelist_pisces_cfg run_croco_forecast.bash
8 DATA namelist_pisces_cfg.1 run_croco_inter.bash
4. Compilando CROCO
Primero vamos a compilar el ejecutable de CROCO usamos las siguientes instrucciones
1 cd Run
2 ./jobcomp
y la compilación del código comienza con los siguientes mensajes en pantalla
6
LiveCROCO Básico Versión 1.5, 19 octubre 2022
1 OPERATING SYSTEM IS: Linux
2 cp: -r not specified; omitting directory '/home/livecroco/croco/OCEAN/../PISCES/SED'
3 file namelist_pisces exists in Run directory
4 Checking COMPILEAGRIF...
5 Checking COMPILEMPI...
6 Checking COMPILEXIOS...
7 Checking COMPILEOASIS...
8 Checking COMPILEOMP...
9 cpp -traditional -DLinux -P -I/usr/include
10 -ICROCOFILES/AGRIF_INC mpc.F > mpc_.f
11 gfortran -O3 -fdefault-real-8 -fdefault-double-8 -o mpc mpc_.f
12 cpp -traditional -DLinux -P -I/usr/include
13 -ICROCOFILES/AGRIF_INC cppcheck.F | ./mpc > cppcheck_.f
14 gfortran -c -O3 -fdefault-real-8 -fdefault-double-8 cppcheck_.f
15 -o cppcheck.o
16 gfortran -O3 -fdefault-real-8 -fdefault-double-8 -o cppcheck
17 cppcheck.o
18 cat cppdefs.h cppdefs_dev.h > [Link]
Ahora hay que esperar un par de minutos a que el compilador gfortran genere el archivo ejecutable. Cuando
la compilación termina exitosamente, verá las siguientes lı́neas en su pantalla
1 _rho.o def_floats.o init_arrays_floats.o random_walk.o
2 get_initial_floats.o init_sta.o wrt_sta.o step_sta.o
3 interp_sta.o def_sta.o init_arrays_sta.o biology.o o2sato.o
4 sediment.o bbl.o MPI_Setup.o MessPass2D.o MessPass3D.o
5 exchange.o autotiling.o zoom.o update2D.o set_nudgcof_fine.o
6 zoombc_2D.o zoombc_3D.o uv3dpremix.o t3dpremix.o update3D.o
7 zoombc_3Dfast.o Agrif2Model.o send_xios_diags.o
8 cpl_prism_define.o cpl_prism_put.o cpl_prism_init.o
9 cpl_prism_get.o cpl_prism_getvar.o cpl_prism_grid.o -L/usr/lib
10 -lnetcdff -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now
11 -lnetcdf -lnetcdf
12 mv [Link] croco
En la última lı́nea se ve cómo el archivo compilado, cuyo nombre por defecto es [Link] es renombrado como
croco. Ese es el ejecutable que usaremos.
5. Creando los archivos de entrada
Para crear los archivos de entrada que leerá el ejecutable croco usaremos una serie de funciones llamadas en su
conjunto CROCO TOOLS. Estas funciones fueron escritas en Matlab (Penven et al., 2008) y han sido adaptadas
para funcionar en Octave, usando el paquete OCTCDF.
5.1. Usando Octave
Para crear los archivos de entrada usando Octave comenzamos con
1 octave-cli
Primero definir los caminos de búsqueda (path) de las herramientas que usa CROCO TOOLS
1 oct_start
lo que entrega
7
LiveCROCO Básico Versión 1.5, 19 octubre 2022
1 >> oct_start
2 Add the paths of the different toolboxes
Luego escribimos la instrucción para generar la grilla del modelo, la que queda descrita en el archivo cro-
co [Link] que se generará en el directorio CROCO FILES
1 >> make_grid
2 mkdir: cannot create directory ‘/home/livecroco/Desktop/Run/CROCO_FILES/’:
3 File exists
4
5 Making the grid: /home/livecroco/Desktop/Run/CROCO_FILES/croco_grd.nc
6
7 Title: Benguela Model
8
9 Resolution: 1/3 deg
10
11 Create the grid file...
12 LLm = 41
13 MMm = 42
14
15 Fill the grid file...
16
17 Compute the metrics...
18
19 Min dx=29.1913 km - Max dx=33.3244 km
20 Min dy=29.2434 km - Max dy=33.1967 km
21
22 Fill the grid file...
23
24 Add topography...
25 CROCO resolution : 31.3 km
26 Topography data resolution : 3.42 km
27 Topography resolution halved 4 times
28 New topography resolution : 54.6 km
29 Processing coastline_l.mat ...
30
31 Filter topography ...
32 Apply a filter on the Deep Ocean to reduce isolated seamounts :
33 4 pass of a selective filter.
34 Apply a selective filter on log(h) to reduce grad(h)/h :
35 20 iterations - r_max = 0.27931
36 29 iterations - r_max = 0.24975
37 Smooth the topography a last time to prevent 2DX noise:
38 2 pass of a hanning smoother.
39
40 Write it down...
y obtendremos la Fig. 11
8
LiveCROCO Básico Versión 1.5, 19 octubre 2022
Figura 11: Mapa final del dominio Benguela
La siguiente instrucción es make forcing que genera el archivo croco [Link] con la información del forzante
atmosférico.
1 >> make_forcing
2 mkdir: cannot create directory ‘/home/livecroco/Desktop/Run/CROCO_FILES/’:
3 File exists
4
5 Benguela Model
6
7 Read in the grid...
8
9 Create the forcing file...
10 Getting taux for time index 1
11 Getting tauy for time index 1
12 Getting taux for time index 2
13 Getting tauy for time index 2
14 Getting taux for time index 3
15 Getting tauy for time index 3
16 Getting taux for time index 4
17 ....
18 Getting shortrad for time index 7
19 Getting shortrad for time index 8
20 Getting shortrad for time index 9
21 Getting shortrad for time index 10
22 Getting shortrad for time index 11
23 Getting shortrad for time index 12
24 >>
nos entrega 7 figuras, Figs 12-15.
9
LiveCROCO Básico Versión 1.5, 19 octubre 2022
Figura 12: Variables de forzamiento atmosférico: esfuerzo del viento superficial y flujo neto de calor superficial
Figura 13: Variables de forzamiento atmosférico: balance superficial de agua fresca (E-P) y temperatura superficial
del mar
Figura 14: Variables de forzamiento atmosférico: salinidad superficial del mar y sensibilidad a la temperatura
superficial del mar del flujo de calor latente
10
LiveCROCO Básico Versión 1.5, 19 octubre 2022
Figura 15: Variables de forzamiento atmosférico: radiación solar de onda corta
Y finalmente la instrucción make clim que crea el archivo croco [Link] con la condición de borde oceánica
11
LiveCROCO Básico Versión 1.5, 19 octubre 2022
1 make_clim
2 >>mkdir: cannot create directory ‘/home/livecroco/Desktop/Run/CROCO_FILES/’:
3 File exists
4
5 Making the clim: /home/livecroco/Desktop/Run/CROCO_FILES/croco_clm.nc
6
7 Title: Benguela Model
8
9 Read in the grid...
10
11 Create the climatology file...
12
13 Creating the file : /home/livecroco/Desktop/Run/CROCO_FILES/croco_clm.nc
14
15 VTRANSFORM = 2
16 ...
17 PSI: 72 iterations
18 Flux correction : 5.2674e-15
19 ========================
20 Initial
21
22 Creating the file : /home/livecroco/Desktop/Run/CROCO_FILES/croco_ini.nc
23 VTRANSFORM = 2
24
25 Temperature...
26 Time index: 1
27
28 Salinity...
29 Time index: 1
30
31 Compute potential temperature from in-situ...
32 getpot: Time index: 1 of total: 1
33 >>
nos entrega 8 figuras, Figs 16-19.
Figura 16: Variables de forzamiento lateral oceánico: temperatura en secciones verticales y en superficie en t = 1.
12
LiveCROCO Básico Versión 1.5, 19 octubre 2022
Figura 17: Variables de forzamiento lateral oceánico: salinidad en secciones verticales y en superficie en t = 1.
Figura 18: Variables de forzamiento lateral oceánico: temperatura en secciones verticales y en superficie en t = 6.
Figura 19: Variables de forzamiento lateral oceánico: salinidad en secciones verticales y en superficie en t = 6.
Notemos que esta instrucción también implica la creación del archivo de condiciones iniciales croco [Link], el
cual puede ser creado independientemente usando la instrucción make ini
Es importante que primero llamemos la función make forcing y despues make clim. Estas instrucciones crea-
ran los archivos de entrada, en formato NetCDF. Estos archivos quedarán dentro del directorio CROCO FILES
y son
1 croco_clm.nc croco_frc.nc croco_grd.nc croco_ini.nc croco_oa.nc
Los archivos que obtenga deben ser iguales a los que se encuentran en
1 [Link]
si tuvo problemas con esta etapa, copie esos archivos en el directorio CROCO FILES para avanzar a la siguiente
sección usando las instrucciones
13
LiveCROCO Básico Versión 1.5, 19 octubre 2022
1 cd CROCO_FILES
2 wget [Link]
3 wget [Link]
4 wget [Link]
5 wget [Link]
6. Lanzando la simulación climatológica
Para lanzar la simulación hay que escribir, desde el directorio de trabajo Run
1 ./run_croco.bash
y obtendrá
1 Getting croco from /home/livecroco/Desktop/Run
2 Getting croco_bry.nc from /home/livecroco/Desktop/Run/CROCO_FILES
3 /bin/cp: cannot stat '/home/livecroco/Desktop/Run/CROCO_FILES/croco_bry.nc':
4 No such file or directory
5 Getting croco_grd.nc from /home/livecroco/Desktop/Run/CROCO_FILES
6 Getting croco_frc.nc from /home/livecroco/Desktop/Run/CROCO_FILES
7 Getting croco_blk.nc from /home/livecroco/Desktop/Run/CROCO_FILES
8 /bin/cp: cannot stat '/home/livecroco/Desktop/Run/CROCO_FILES/croco_blk.nc':
9 No such file or directory
10 Getting croco_clm.nc from /home/livecroco/Desktop/Run/CROCO_FILES
11 Getting croco_runoff.nc from /home/livecroco/Desktop/Run/CROCO_FILES
12 /bin/cp: cannot stat '/home/livecroco/Desktop/Run/CROCO_FILES/croco_runoff.nc':
13 No such file or directory
14 Getting croco_ini.nc from /home/livecroco/Desktop/Run/CROCO_FILES
15 Getting croco_inter.in from /home/livecroco/Desktop/Run
16
17 Writing in croco_inter.in
18 USING DT = 3600
19 USING NFAST = 60
20 USING NUMTIMES = 720
21 USING NUMAVG = 72
22 USING NUMHIS = 720
23 USING NUMRST = 720
24
25 Computing for Y1M1
26 mié ene 6 [Link] -03 2021
7. Archivos de salida
Una vez que la simulación termine exitosamente, encontraremos en el directorio CROCO FILES los archivos
de salida.
8. Visualización de resultados
8.1. ncdump
El programa ncdump es muy útil para mirar el contenido de un archivo NetCDF. Recuerden que tanto los
archivos de entrada como los archivos de salida de CROCO están en el formato NetCDF.
14
LiveCROCO Básico Versión 1.5, 19 octubre 2022
La instrucción
1 ncdump -h CROCO_FILES/croco_avg_Y1M1.nc | less
nos mostrará información del contenido del archivo croco avg [Link]
1 netcdf croco_avg_Y1M1 {
2 dimensions:
3 xi_rho = 43 ;
4 xi_u = 42 ;
5 eta_rho = 44 ;
6 eta_v = 43 ;
7 s_rho = 32 ;
8 s_w = 33 ;
9 time = UNLIMITED ; // (120 currently)
10 auxil = 4 ;
11 variables:
12 char spherical ;
13 spherical:long_name = "grid type logical switch" ;
14 spherical:option_T = "spherical" ;
15 spherical:option_F = "cartesian" ;
16 float xl ;
17 xl:long_name = "domain length in the XI-direction" ;
18 xl:units = "meter" ;
De esta forma podemos ver detalles como las dimensiones del dominio y el número de pasos de tiempo ahı́
grabados. Esto lo podemos comparar con nuestras estimaciones del número de pasos de tiempo que deberı́a grabar,
por ejemplo. Para salir de ncdump hay que apretar la tecla q.
8.2. ncview
El programa ncview es muy útil para hacer una visualización preeliminar de los archivos, en formato NetCDF,
que obtuvimos en nuestra simulación para esto hacemos
1 ncview CROCO_FILES/croco_avg_Y1M1.nc
esto nos muestra la siguiente interfaz
15
LiveCROCO Básico Versión 1.5, 19 octubre 2022
Figura 20: Interfaz gráfica de ncview
al apretar en la variable temp obtenemos
16
LiveCROCO Básico Versión 1.5, 19 octubre 2022
Figura 21: Temperatura del mar
Esta figura nos muestra la temperatura del mar en la campa sigma del modelo mas profunda. Si queremos ver
los valores de la temperatura superficial del mar apretamos el botón derecho del ratón sobre la caja que tiene el
valor -0.984375 que corresponde al nivel vertical s rho que queremos analizar. Al hacer esto el valor de esa caja
cambia a -0.015625. Además conviene apretar en el botón que dice Bi-lin, para que ncview no interpole los valores
que fueron calculados en cada celda. Una vez hecho esto obtenemos la siguiente figura
Figura 22: Temperatura superficial
17
LiveCROCO Básico Versión 1.5, 19 octubre 2022
Si hacemos ahora click con el ratón en algún punto del mar, ncview nos muestra la serie de tiempo, en superficie,
de esa variable.
Figura 23: Serie de tiempo
En resumen, ncview es una herramienta muy rápida y sencilla que nos permite tener una visualización inmediata
de los archivos obtenidos. Es muy útil usarla para observar si los resultados son, a primera vista, razonables.
8.3. CROCO TOOLS
La herramienta CROCO TOOLS contiene varias funciones que son útiles para visualizar los resultados de
nuestra simulación. Estas funciones nos permiten hacer varios tipos de gráficos como secciones verticales, mapas
superficiales, perfiles en profundidad, series de tiempo y otros. El detalle de su uso está descrito en otro tutorial.
9. Detalles avanzados
Hay aspectos importantes para realizar una simulación usando CROCO que dependen de cómo configuremos
los archivos
1 crocotools_param.m
2 cppdefs.h
3 param.h
4 [Link]
En este caso, todo funcionó por que estos archivos están preconfigurados para el caso de ejemplo Run. En el
siguiente tutorial discutiremos qué modificar de esos archivos para estudiar la zona que sea de su interés.
18
LiveCROCO Básico Versión 1.5, 19 octubre 2022
10. Conclusión
En este tutorial aprendió a instalar la máquina virtual LiveCROCO, a compilar el modelo croco y a preparar
los archivos de entrada con el código croco tools. Además logró lanzar la simulación básica para la zona de Ben-
guela y visualizó los resultados usando ncview.
Para más información:
Andrés Sepúlveda (asepulveda@[Link])
Contribuciones de:
Marcela Contreras
Scarlett Moraga
Mauro Santiago
Constanza Zambrano
Si le sirvió este tutorial mande una postal a:
Dr. Andrés Sepúlveda
Departamento de Geofı́sica
Casilla 160-C
Correo 3
Concepción
Chile
19
LiveCROCO Básico Versión 1.5, 19 octubre 2022
11. Referencias
Penven, P., Roy, C., Brundrit, G. B., De Verdière, A. C., Fréon, P.,
Johnson, A. S., Lutjeharms J. R. E. & Shillington, F. A. (2001). A
regional hydrodynamic model of upwelling in the Southern Benguela.
South African Journal of Science, 97(11-12), 472-475.
Penven, P., Marchesiello, P., Debreu, L., & Lefèvre, J. (2008).
Software tools for pre-and post-processing of oceanic regional
simulations. Environmental Modelling & Software, 23(5), 660-662.
Sepúlveda, H. H., Artal, O. E., & Torregrosa, C. (2011). LiveROMS:
A virtual environment for ocean numerical simulations. Environmental
Modelling & Software, 26(11), 1372-1373.
12. Enlaces útiles
12.1. El modelo CROCO
[Link]
12.2. El foro de usuarios de CROCO
[Link]
12.3. Tutoriales de CROCO (en inglés)
[Link]
12.4. El paquete OctCDF
[Link]
12.5. Video de LiveCROCO: Pasos Básicos
[Link]
20