Tutorial de uso básico de LiveCROCO v2.1.2 con CROCO_PYTOOLS v2.0.1
Abstract
Tutorial para hacer la simulación básica Benguela con CROCO v2.1.2 y CROCO_PYTOOLS v2.0.1 en la máquina virtual LiveCROCO
Full text
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 Uso B´asico 1. Prop´osito En este tutorial revisaremos las instrucciones b´asicas usar la m´aquina virtual LiveCROCO, basada en Sep´ulveda et al. (2011), que le permitir´a tener un ambiente de trabajo con el modelo CROCO v2.1.2 y la versi´on python de CROCO TOOLS en su computador personal. 2. VirtualBox Las m´aquinas virtuales son ambientes aut´onomos de trabajo que uno puede instalar en su computador, sin necesidad de hacer una partici´on 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´aquina virtual con Linux y muchos de los programas necesarios para usar CROCO. A esta m´aquina virtual la llamaremos LiveCROCO. Asegurese de tener suficiente memoria RAM, 4 o m´as GB, y espacio de disco duro, m´as de 100GB libres. Note que la informaci´on de la pantalla que aqu´ı se observa puede ser distintos a lo que Ud. ver´a, dependiendo de su sistema operativo. 2.1. Instalaci´on de VirtualBox Consiga e instale el programa VirtualBox desde esta direcci´on 1https://www.virtualbox.org/ Figura 1: Sitio web de VirtualBox e inst´alelo en su computadora. 2.2. Instalaci´on de LiveCROCO Baje el siguiente archivo. 1http://mosa.dgeo.udec.cl/LiveCROCO/LiveCROCO-v2.1.2-Python.ova ¡Atenci´on que pesa 21G! Para saber si el archivo baj´o correctamente verifique usando el comando md5sum 1md5sum LiveCROCO-v2.1.2-Python.ova 1
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 deber´ıa obtener 1fbe231fb0213105ea5ba60e4388e05a1 LiveCROCO-v2.1.2-Python.ova Abra el programa VirtualBox y seleccione la pesta˜na de Archivo. Seleccione la opci´on 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´onelo (Fig. 4). 2
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 Figura 4: Seleccionar servicio virtualizado Apriete el bot´on de Next (Fig. 5) Figura 5: Cargar el archivo y luego el de Importar (Fig. 6). 3
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 Figura 6: Iniciando la instalaci´on Con eso empieza el proceso de instalaci´on (Fig. 7). Figura 7: Barra de instalaci´on del servicio virtualizado Cuando la instalaci´on termine, ver´a una pantalla similar a esta, donde estar´a entre sus opciones la m´aquina virtual que acaba de importar (Fig. 8). Figura 8: Maquinas virtuales disponibles Seleccione la opci´on LiveCROCO-v2.1.2-Python y apriete el bot´on de iniciar (la flecha verde). Eso activar´a la m´aquina virtual y despu´es de un rato se encontrar´a con Fig. 9 4
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 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 El ejemplo m´as sencillo de CROCO es la configuraci´on llamada BENGUELA que corresponde a un dominio de la zona de surgencia de Benguela de baja resoluci´on. Esta configuraci´on es la que viene por defecto en el c´odigo 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 1cd Desktop despu´es 1./create_config.bash lo que le dar´a 1Your choices : 2CROCO_DIR : /home/livecroco/croco-v2.1.2 3TOOLS_DIR : /home/livecroco/croco_tools-v2.1.0 4PYTOOLS_DIR : /home/livecroco/croco_pytools-v2.0.1 5CONFIG_HOME_DIR : /home/livecroco/Desktop/ 6CONFIG_WORK_DIR : /home/livecroco/Desktop/ 7CONFIG_NAME : Run 8OPTIONS : oce-dev xios test_cases agrif inter forc pisces sediment mustang 9oanalysis mattools pytools 10 Do you want to proceed ? [Y/n] y al apretar la tecla Yaparece 5
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 1Creating configuration ... 2 3Copy CROCO useful scripts and input files 4----------------------------------------- Figura 10: Creando una configuraci´on en LiveCROCO Este script crea un directorio con el nombre definido por la variable CONFIG NAME con todos los c´odigos necesarios para realizar su simulaci´on, este ser´a nuestro directorio de trabajo. El contenido de esta carpeta debe ser parecido al siguiente: 1AGRIF_FixedGrids.in croco_tools namelist_pisces_cfg_p5z 2cppdefs_dev.h DATA namelist_pisces_ref 3cppdefs.h example_job_run_croco_inter.pbs namelist_pisces_ref.1 4create_config.bash.bck example_job_run_croco.pbs namelist_sediment_cfg 5CROCO_FILES example_job_run_croco.sh namelist_sediment_ref 6croco_forecast.in example_job_run_croco.slurm param.h 7croco.in jobcomp process_xios_xml.sh 8croco.in.1 MUSTANG_NAMELIST run_croco.bash 9croco_inter.in NAMELIST_OANALYSIS run_croco_forecast.bash 10 croco_inter.in.1 namelist_pisces_cfg run_croco_inter.bash 11 croco_pytools-v2.0.1 namelist_pisces_cfg.1 sediment.in 12 croco_stations.in namelist_pisces_cfg_p2z TEST_CASES 4. Compilando CROCO Primero vamos a compilar el ejecutable de CROCO usamos las siguientes instrucciones 1cd Run 2./jobcomp y la compilaci´on del c´odigo comienza con los siguientes mensajes en pantalla 6
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 1OPERATING SYSTEM IS: Linux 2file namelist_pisces exists in Run directory 3Mustang namelist directory MUSTANG_NAMELIST exists 4Checking COMPILEAGRIF... 5Checking COMPILEMPI... 6Checking COMPILEXIOS... 7Checking COMPILEOASIS... 8Checking COMPILEOMP... 9Checking COMPILEOPENACC... 10 cpp -traditional -DLinux -P -I/usr/include -ICROCOFILES/AGRIF_INC mpc.F > mpc_.f 11 gfortran -O2 -mcmodel=medium -fdefault-real-8 -fdefault-double-8 -std=legacy -I/usr/include 12 ... Ahora hay que esperar un par de minutos a que el compilador gfortran genere el archivo ejecutable. Cuando la compilaci´on termina exitosamente, ver´a las siguientes l´ıneas en su pantalla 1... 2_devices.o exchange_device_host.o init_acc.o -L/usr/lib/x86_64-linux-gnu -lnetcdff -Wl, 3-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -lnetcdf -lnetcdf 4mv a.out croco 5 6 7.,:looddddddd: ,;' 8.cdddo;;oo'.... .ldd; 9,ddddd, ;odoc. 10 .oddddo: .'';odoc 11 'dddddd;':, .;; .;;. :ccdo; 12 .oddddddddooooddoooddooodl. 13 .oddddddddddddddddddddddl;; 14 .,ldddddddddddddddddddoc:lolo'.. 15 ;ddc;::::::::::codo, .';:, 16 .ccc ,cc, 17 18 CROCO is OK Al final se ve c´omo el archivo compilado, cuyo nombre por defecto es a.out es renombrado como croco. Ese es el ejecutable que usaremos. 5. Creando los archivos de entrada Para crear los archivos de entrada que leer´a el ejecutable croco usaremos una serie de funciones llamadas en su conjunto CROCO PYTOOLS. Estas funciones fueron escritas en Python y se inspiran en las rutinas CROCO TOOLS escritas en Matlab (Penven et al., 2008), que tambi´en han sido adaptadas para funcionar en Octave, usando el paquete OctCDF v1.1.10. 5.1. CROCO PYTOOLS Para crear los archivos de entrada usando Python comenzamos cambi´andonos al directorio donde est´an las rutinas CROCO PYTOOLS 1cd croco_pytools-v2.0.1/ luego activamos el ambiente conda con el que fueron instaladas estas rutinas 7
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 1(base)livecroco@livecroco:~/Desktop/Run$ conda activate croco_pyenv 2(croco_pyenv)livecroco@livecroco:~/Desktop/Run$ Primero usaremos las rutinas de preprocesamiento para la creaci´on de los archivos de entrada que usa el modelo. Estas rutinas se encuentran en el directorio prepro 1cd prepro en este directorio encontraremos las siguientes rutinas 1download_era5.py make_bry.py nb_make_grid.ipynb 2download_glofas_river.py make_grid.py nb_make_grid_zoom.ipynb 3download_hycom.py make_ini.py nb_make_rivers.ipynb 4download_mercator.py make_rivers.py readers.jsonc 5Examples make_tides.py Tests 6__init__.py Modules Usaremos las rutinas make grid.py para generar la grilla (archivo GRD), la rutina make ini.py para generar la condici´on inicial del modelo (archivo INI) y la rutina make bry.py para generar las condiciones de borde del modelo (archivo BRY). Las tres rutinas usaran el archivo de par´ametros que copiaremos desde el subdirectorio Examples 1cp Examples/benguela/benguela.ini . 5.1.1. Archivo de Grilla Para generar el archivo de grilla usaremos como fuente de informaci´on el archivo etopo2.nc que ya viene incluido en LiveCROCO. Ahora usamos la instrucci´on 1python make_grid.py benguela.ini que despliega el mensaje 8
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 1Geographical extents of the dataset: 2Longitude min/max =4.533333 25.433332 3Latitude min/max =-39.033333 -24.633333 4 5Geographical extents of requested ROMS grid: 6Longitude min/max =4.593267 25.406733 7Latitude min/max =-38.981699 -24.685657 8 9Bounding indices for the portion of dataset covering the entire model grid: 10 iwest,ieast =2 627 out of 628 jsouth,jnorth =2 431 out of 433 11 12 Averaging window width =2.00000 in grid spaces. 13 ......... 14 15 Wall Clock time spent to compute hraw 0.04 sec running 1threads. 16 enter smooth_thread r_max =0.2000000 iters_cond =500 iters_lin =0 17 set_tiles: nx =42 ny =41 numthreads =1nsub_x =1nsub_y =3 18 nsub_x =1nsub_y =3isize =42 jsize =14 trd =0 19 20 iter i,jrx_max rx_max i,jry_max ry_max 21 ------------------------------------------------------------------ 22 0 5 35 rx_max =0.5817376 15 29 ry_max =0.6761963 23 1 5 35 rx_max =0.5094584 15 29 ry_max =0.5796164 24 2 5 35 rx_max =0.4651541 15 28 ry_max =0.5124254 25 26 ... y finalmente 1... 2496 4 35 rx_max =0.2000000 34 20 ry_max =0.2001091 3497 4 35 rx_max =0.2000000 34 20 ry_max =0.2001078 4498 4 35 rx_max =0.2000000 34 20 ry_max =0.2001065 5499 4 35 rx_max =0.2000000 34 20 ry_max =0.2001051 6 7Wall Clock time spent in smoothing 0.06 sec running 1threads. 8Writting /home/livecroco/Desktop/Run/CROCO_FILES/croco_grd.nc done En la ultima linea podemos ver que el archivo croco grd.nc qued´o en el subdirectorio CROCO FILES 5.1.2. Archivo de Condiciones Iniciales Para generar el archivo de condiciones iniciales usaremos como fuente de informaci´on el archivo mercator Y2013M01.cdf que ya viene incluido en LiveCROCO. Ahora usamos la instrucci´on 1python make_ini.py benguela.ini que despliega el mensaje 9
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 Si hacemos ahora click con el rat´on en alg´un punto del mar, ncview nos muestra la serie de tiempo, en superficie, de esa variable. Figura 14: Serie de tiempo En resumen, ncview es una herramienta muy r´apida y sencilla que nos permite tener una visualizaci´on inmediata de los archivos obtenidos. Es muy ´util usarla para observar si los resultados son, a primera vista, razonables. 8.3. CROCO PYTOOLS La herramienta CROCO PYTOOLS contiene varias funciones que son ´utiles para visualizar los resultados de nuestra simulaci´on. Estas funciones nos permiten hacer varios tipos de gr´aficos como secciones verticales, mapas superficiales, perfiles en profundidad, series de tiempo y otros. El detalle de su uso est´a descrito en otro tutorial. 9. Detalles avanzados Hay aspectos importantes para realizar una simulaci´on usando CROCO que dependen de c´omo configuremos los archivos 1benguela.ini 2cppdefs.h 3param.h 4croco.in En este caso, todo funcion´o por que estos archivos est´an preconfigurados para el caso de ejemplo Run. En otro tutorial discutiremos qu´e modificar de esos archivos para estudiar la zona que sea de su inter´es. 16
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 10. Conclusi´on En este tutorial aprendi´o a instalar la m´aquina virtual LiveCROCO, a compilar el modelo croco y a preparar los archivos de entrada con el c´odigo croco pytools. Adem´as logr´o lanzar la simulaci´on b´asica para la zona de Benguela y visualiz´o los resultados usando ncview. Para m´as informaci´on: Andr´es Sep´ulveda (hectorsepulv[email protected]) Contribuciones de: Si le sirvi´o este tutorial mande una postal a: Dr. Andr´es Sep´ulveda Departamento de Geof´ısica Casilla 160-C Correo 3 Concepci´on Chile 17
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 11. Referencias Penven, P., Roy, C., Brundrit, G. B., De Verdi`ere, A. C., Fr´eon, 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`evre, J. (2008). Software tools for pre-and post-processing of oceanic regional simulations. Environmental Modelling & Software, 23(5), 660-662. Sep´ulveda, 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 ´utiles 12.1. El modelo CROCO http://www.croco-ocean.org 12.2. El foro de usuarios de CROCO https://forum.croco-ocean.org/questions/ 12.3. Tutoriales de CROCO (en ingl´es) https://croco-ocean.gitlabpages.inria.fr/croco_doc/index.html 12.4. Tutoriales de LiveCROCO http://mosa.dgeo.udec.cl/LiveCROCO/ 12.5. Video de LiveCROCO: Pasos B´asicos https://www.youtube.com/watch?v=KTu6DqNbYz8 18
LiveCROCO-v2.1.2-Python Versi´on 0.9 11/2025 13. Errata Compendium Un mensaje de este tipo Figura 15: Mensaje de error al lanzar una m´aquina virtual Si Ud. no logra que la m´aquina virtual empiece a funcionar, con un mensaje similar al mostrado en la Fig. 15, puede que esto sea solucionado activando la virtualizaci´on en la BIOS de su computador (PMAC Valentina Nu˜nez). 19