Departamento de Geofísica - Universidad de Chile
Tutorial del Modelo PLANET SIMULATOR (PLASIM)

Creado por: Alejandra Molina - Dic. 2007
Modificado por René Garreaud y Rodrigo Sánchez - Ene. 2008


1. Introducción

El modelo PLANET SIMULATOR (PLASIM) ha sido desarrollado por el Instituto de Meteorología de la Universidad de Hamburgo, Alemania. Sus autores lo describen como un modelo de circulación de la atmósfera (GCM) de complejidad intermedia,  que permite  correr simulaciones climáticas y  paleo-climáticas (decenas a miles de años) en un computador mediano y en un tiempo de procesamiento aceptable (referencia_1). PLASIM consiste de un núcleo dinámico de la atmósfera y una serie de parametrizaciones de procesos subgrilla y representación de otros subsistemas climaticos (un modelo de capa de mezcla para el océano y un modelo termodinámico para el hielo marino).

PLASIM es portable, escalable y de dominio publico. Entre otras aplicaciones, PLASIM puede ser empleado como un laboratorio virtual simplificado para una mejor comprensión de la dinámica del clima terrestre y de otros planetas. La documentación completa del modelo, la guía del usuario y los programas fuentes pueden ser obtenidos directamente de la pagina Web de PLASIM, donde también existe un foro de usuarios.

En este tutorial, solo pretendemos entregar una guía simplificada de la instalación y ejecución de PLASIM en computadores del Departamento de Geofísica de la Universidad de Chile, donde este modelo se emplea mayormente con fines docentes.

2. Requerimientos básicos e Instalación 

PLASIM puede ser instalado en computadores corriendo Windows, Linux, Mac OSX y eventualmente Solaris. Los requerimientos básicos para la instalación son:

El único sistema operativo totalmente soportado es Linux, en casi todas sus versiones. Hasta ahora hemos instalado PLASIM sin problemas sobre Mandriva y Fedora. Sobre linux se pueden utilizar los paquetes de desarrollo de GNU (gfortran para F90, y gcc para C), sin embargo, en términos de desempeño y reconocimiento correcto de algunas sintaxis de F90, se recomienda instalar los compiladores de fortran y C++ de Intel, disponibles en forma gratuita para uso no-comercial sobre Linux. Para las nuevas líneas de procesadores Intel y AMD, se recomienda utilizar el documento de optimización de aplicaciones indicado en éste link, para obtener mejores desempeños en corridas largas.

Los resultados de PLASIM pueden ser convertidos a formato NetCDF. Una vez convertidos a NetCDF, los resultados pueden ser visualizados con software de dominio público como: GrADS e IDV, o con software comercial como Matlab a través de mexcdf.

Para comenzar baje el archivo Most15.tgz (o la versión más reciente) del sitio http://www.mi.uni-hamburg.de/Downloads.245.0.html
y ejecute los siguientes comandos en un terminal:

tar -zxvf Most15.tgz
cd Most15
./configure.sh

Si todo resultó bien aparecerá el mensaje: configuration complete y se habrá generado un directorio Most15 con todos los archivos necesarios.

3. Ejecución del Modelo

Para ejecutar el programa se debe escribir dentro del directorio Most15:

    ./most.x

Con esto se abrirá una interfaz gráfica donde se puede seleccionar el tipo de modelo (Planet Simulator o Puma), la resolución, la utilización de interfaz gráfica (GUI) mientras se ejecuta el modelo (solo disponible para T21) y algunos otros parámetros.

Es muy importante marcar la opción Write Output, pues le indica al programa crear el archivo final que contiene el resultado de la simulación.

Al presionar Save and Run se ejecutará el modelo inmediatamente con los parámetros que vienen por defecto, o que se han modificado previamente en el directorio Most15/plasim/dat.

Si previamente se escogió la opción correr con GUI, ésta se abrirá y para iniciar la ejecución se debe presionar la flecha verde. Si no, el programa comenzará a correr solo. El modelo quedará guardado en el directorio Most15/plasim/run.

Para un mejor orden se recomienda escoger Save and Exit y copiar los archivos generados en el directorio Most15/plasim/run dentro de algún directorio aparte, donde se deseen guardar los resultados. Supongamos que este directorio es: /home/Most15/EXPERIMENTO. Estos archivos son los necesarios para la ejecución del modelo:
IMPORTANTE: Existe una excepción en los casos de ocean_namelist y ice_namelist, que traen predefinidos los parámetros NOCEAN=0, NICE=0 para desactivar la interacción con el océano y la criosfera, los cuales no son los valores por defecto. Si se quiere emplear los valores por defecto (=1), se deben modificar ambos namelists.
Un último paso es escribir el nombre del experimento dentro del archivo most_plasim_run, el cuál se encuentra en el directorio que el usuario escogió para guardar los archivos. Para esto se debe modificar la siguiente línea:

set EXP = MI_EXPERIMENTO #name your experiment here

Ahora está todo listo para correr el modelo con la instrucción, dentro del directorio /home/Most15/EXPERIMENTO :

    ./most_plasim_run

Si se escogió la GUI, se desplegarán varias ventanas con distintos campos. Para comenzar se debe oprimir la flecha verde. La simulación se puede detener en cualquier momento con el botón rojo.

Como resultado el programa creará los archivos siguientes en el directorio /home/Most15/EXPERIMENTO:

4. Cambio de Formato

Para convertir las salidas de PLASIM de su formato nativo a uno más "popular" (Grib o NetCDF) se utiliza el programa burn5, el cual posee múltiples opciones de salida de los datos.  Para configurar estas opciones se debe crear un archivo namelist_output con los parámetros que se desean modificar y su nuevo valor {ver Lista de parámetros Burn5}.

El programa se encuentra dentro de el directorio Most15/postprocessor/ y debe ser compilado (una sola vez y para siempre) empleando:

g++ -O2 -o burn5 burn5.cpp -lm -lnetcdf

(Nota: La librería de netcdf debe estar compilada con el mismo compilador con el que se compila burn5, que eventualmente puede ser distinto al compilador que se utilizado para compilar Plasim).

Si la librería de NetCDF se encuentran en un directorio no-estándar de Linux (Ejemplo: /usr/local/netcdf ), debemos utilizar la siguiente línea de comando para compilar burn5:

g++ -O2 -o burn5 burn5.cpp -lm -I/usr/local/netcdf/include -L/usr/local/netcdf/lib -lnetcdf

Para no tener que buscar el programa burn5 cada vez que lo necesite, una alternativa es copiarlo dentro del directorio donde estén los resultados y correrlo directamente desde ahí (en este ejemplo, copiar burn5 a /home/Most15/EXPERIMENTO)

Para realizar la conversión de formato se emplea la siguiente línea de comando:

./burn5 MI_EXPERIMENTO.001 EXP001 <namelist_output

Para salidas muy grande del modelo (> 2GB), debemos compilar burn5 con algunas opciones especiales:

g++ -O2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -o burn5 burn5.cpp -lm -lnetcdf

./burn5 MI_EXPERIMENTO.001 EXP001 <namelist_output

El archivo de salida tendrá el formato y exención indicada en namelist_output.

5. Ejemplo: Planeta verde versus Planeta desierto

Elegimos este experimento, pues sus resultados estan disponibles en un articulo científico (Referencia_2) y pueden ser contrastados por nosotros.
Para comenzar se escogerán las siguientes opciones en la interfaz desplegada al ejecutar /most.x:

Luego copiaremos los archivos generados por el programa en la carpeta modelos, dentro de la cual modificaremos el archivo land_namelist, aquí agregaremos los siguientes parámetros para cambiar el albedo, la vegetación y la hidrología respectivamente:
 
&landpar&
ALBLAND=0.12
DZ0LAND=2
WSMAX=0.5  
DRHSLAND=0.01

Ahora en el archivo most_plasim_run nombramos al modelo como:

set EXP = GREEN_PLANET \#name your experiment here

Finalmente corremos el modelo con:

    ./most_plasim_run

Repetimos los pasos anteriores para crear el modelo del planeta desierto, pero ahora los parámetros son:

&landpar&
ALBLAND=0.28    
DZ0LAND=0.01      
WSMAX=0.1        
DRHSLAND=0.4

Una vez que tenemos listos ambos modelos los traspasamos a formato NetCDF. Creamos el archivo namelist_out con los siguientes parámetros:

HTYPE=G
VTYPE=P
hPa=500,1000
CODE=130
NETCDF=1

Finalmente creamos los archivo GREEN_PLANET.nc y DESERT_PLANET.nc:
 
./burn5 /modelos$nombre_modelo.001 /modelos/nombre_modelo <namelist_out

6. Cambio de la Topografia

Para modificar la topografía del modelo se pueden emplear dos formas:

La mas sencilla es modificar el parametro oroscale (scaling factor) en la lista SURFPAR. Por defecto oroscale = 1, y se puede poner un numero menor (mayor) a la unidad para reducir (aumentar) la altura de la topografía en *todo* el dominio.

Si se quiere modificar la topografía en un lugar determinado (un continente o una región), Alejandra Molina creo el programa
modsurf.m en  Matlab. El programa amplifica o disminuye la superficie geopotencial de cada continente por separado de acuerdo al factor ingresado por el usuario. El programa también permite modificar una región personalizada (rectangulo de lat-lon).

En este caso, se debe abrir 
Matlab en la carpeta que contiene modsurf.m y el archivo surface.txt (ver detalles aqui), este ultimo generado por PLASIM previo a la simulacion (se encuentra en Most15/plasim/run). En Matlab solo debe escribir

>> modsurf

El programa preguntara el factor de escala para cada continente (el valor por deffecto es 1) y los datos que definen la región especifica.

Si solo se ingresa "Enter" se mantienen los valores por defecto y no se genera ninguna región. Luego de estas "preguntas" de parte de Matlab, se genera el archivo surface_mod.txt. Este archivo se debe copiar a la carpeta
Most15/plasim/run y renombrar como suface.txt (para que el modelo lo emplee como condición de borde).