fotoquímico wrf-chem - gob.mx · c. instalación del plug-in yum-plugin-priorities (utilizado para...

38
Noviembre 2015 (Versión Preliminar) 2015 Guía complementaria para la instalación del modelo fotoquímico WRF-CHEM

Upload: phamkiet

Post on 30-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

1

Noviembre 2015

(Versión Preliminar)

2015

Guía complementaria para la instalación del modelo

fotoquímico WRF-CHEM

2

DIRECTORIO

Dra. María Amparo Martínez Arroyo

Directora General del INECC

Dr. J. Víctor Hugo Paramo Figueroa

Coordinador General de Contaminación y Salud Ambiental

Dr. Arturo Gavilán García

Director de Investigación para el Manejo Sustentable de Sustancias

Químicas Productos y Residuos

M. en C. José Abraham Ortínez Álvarez

Subdirector de Modelación y Salud Ambiental

Instituto Tecnológico de Estudios Superiores de Monterrey

Dr. José Ignacio Huertas

Investigador Titular-ITESM

Dra. María Elena Huertas

Posgrado ITESM

Dra. Jessica Garzón

Posgrado ITESM

Servicios de Consultoría en Medio Ambiente

Ing. Heriberto Castillo Gonzalez

Agradecimientos

Secretaria de Medio Ambiente, Ciudad de México

3

Contenido Guía de instalación ...................................................................................................................... 4

Sistema operativo .................................................................................................................... 5

Paquetes extra ......................................................................................................................... 5

Instalación de compiladores .................................................................................................... 6

Instalación WRF Versión 3.3 .................................................................................................. 8

Ejemplo WRF – CHEM .......................................................................................................... 9

Anexos de la implementación de WRF-CHEM .............................................................................. 11

speaconvert: fuentes de área y móviles. ................................................................................. 11

elpl. ....................................................................................................................................... 15

Fuentes puntuales de emisión. ............................................................................................... 15

Parámetros de las chimeneas. ................................................................................................ 16

Descripción de la malla de emisiones: GRIDDESC. .................................................................... 17

Meteorología. ........................................................................................................................ 18

WRF. .................................................................................................................................. 18

MCIP. ..................................................................................................................................... 22

Archivos intermedios binarios para las fuentes puntuales. ...................................................... 25

convert_emiss. ................................................................................................................... 27

WRF-Chem. ................................................................................................................................ 35

4

Guía de instalación

WRF - CHEM

El presente documento lista las actividades y procedimientos a seguir para realzar la instalación y

correr un ejemplo del modelo fotoquímico WRF – CHEM.

El procedimiento aquí listado fue implementado sobre un servidor con las siguientes características

localizado en las instalaciones del INECC.

a. Equipo: DELL POWEREDGE T620

b. Sistema operativo: Linux Centos

c. Procesadores: 2 procesadores Xeon de 6 núcleos cada uno

d. Memoria RAM : 64 GB

e. Disco duro: 5 discos de 1 TB construido en un raid 5 (HRDWR)

El modelo fotoquímico WRF – CHEM se encuentra constituido por diversos módulos, la Figura 1

presenta el diagrama general del modelo WRF – CHEM. Los cuadros azules representan cada uno

de los módulos, los círculos azules representan los programas incluidos en cada módulo, los círculos

verdes representan archivos de salida y los textos marcados en naranja representan los archivos que

controlan el modulo.

A continuación se presentan cada uno de los pasos a seguir para realizar la instalación del modelo

WRF – CHEM. Inicialmente se requiere la instalación del sistema operativo, compiladores y

diversas librerías, posteriormente se instala el modelo.

5

Sistema operativo

a. Instalación de CentOs como alternativa a REDHAT Enterprise

b. Creación de usuario, en nuestro caso “User1” en donde se instalarán todos los paquetes (Por

seguridad que no sea usuario “root”)

c. Se crea un grupo de modelación “moca” y se modifica el archivo /etc/group agregando a este

grupo todos los usuarios que correrán el programa en este servidor.

Paquetes extra

Repositorio epel

fuse-ntfs-3g (El cual tiene como función reconocer memorias y dispositivos de

almacenamiento con formato ntfs)

gcc-c++.x86_64 libgcc.x86_64 avr-gcc.x86_64 avr-gcc-c++.x86_64 gcc.x86_64 ( las cuales

corresponden a librerías necesarias para la correcta compilación de los paquetes)

nano (Editor de archivos vía consola --opcional--)

redhat-lsb (Paquete de portabilidad de aplicaciones entre diferentes plataformas Linux)

libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 (librerías necesarias para la

correcta compilación de los paquetes )

glibc.i686 glibc-devel.i686 glibc-devel.x86_64 (librerías necesarias para la correcta

compilación de los paquetes)

a. Se baja repositorio epel con el comando:

[root@localhost ~]# wget

http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

b. Después se instala:

rpm -ivh epel-release-6-8.noarch.rpm

c. Instalación del plug-in yum-plugin-priorities (Utilizado para cuando se agreguen repositorios

de terceros, prevenir que los éstos reemplacen paquetes base)

yum install yum-plugin-priorities

d. Después en el archivo nano /etc/yum.repos.d/epel.repo se modifica el valor priority=XX por

un valor de "10"; y en caso de no estar se agrega dicho variable y valor como se muestra a

continuación.

[epel]

name=Extra Packages for Enterprise Linux 6 - $basearch

#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

failovermethod=priority

enabled=1

priority=10

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

6

Nota: De esta forma se evita que el repositorio EPEL reemplace paquetes base del repositorio

base de CentOS.

e. Los demás paquetes son instalados con el comando " yum install paquete a descargar" bajo el

shell de usuario "root".

f. Se instala el paquete jre en su version jre1.7.0_25. De acuerdo a la documentación se agrega

archivo java.sh enla ruta /etc/profile.d con la siguiente información:

export JAVA_HOME=/opt/java/jre1.7.0_25

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=$JAVA_HOME/jre/lib/ext

g. Se agrega una liga suave en la carpeta /etc/rc5.d/ a dicho archivo

S91java -> /etc/profile.d/java.sh

h. Se comprueba que el sistema reconozca dicha ruta con el comando:

[root@localhost ~]# java-version

java version "1.7.0_25"

Java(TM) SE Runtime Environment (build 1.7.0_25-b15)

Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

Instalación de compiladores

1.1 Instalación de los compiladores ifort y C++ de Intel

a. Descargar y guardar las licencias de la página de intel

b. Instalar

./install.sh

c. Seguir el procedimiento descrito en la siguiente página

To create your support account, please visit the Intel(R) Software Development

Products Registration Center web site

https://registrationcenter.intel.com/RegCenter/registerexpress.aspx?clientsn=N3S8-

SBGG6L9H

1.2 Instalación MPICH (última versión)

a. Buscar en los repositorios del sistema, dado que es más funcional para el sistema operativo

yum search MPICH

mpich2.x86_64 : A high-performance implementation of MPI

mpich2-devel.x86_64 : Development files for mpich2

b. Instalar ambos archivos

yum install ####

c. Adicionar en el home del usuario el archivo .mpd.conf la siguiente línea

MPD_SECRETWORD=palabra deseada

1.3 Instalación NETCDF

7

Nota: Compilar manualmente, no desde el repositorio. Porque cuando se hace desde el

repositorio se compila con los gcc y fortran

NETCDF C

a. Descargar NETCDF para C y para FORTRAN de la pagina

http://www.unidata.ucar.edu/downloads/netcdf/index.jsp

b. Crear una carpeta donde se va a instalar

/opt/netcdf-4.3.0

c. Configurar e instalar

./configure --prefix=/opt/netcdf-4.3.0/ --disable-netcdf-4

make check >& make_chek.log

make install >& make_install.log (coloca la información en la carpeta de instalación)

NETCDF FORTRAN

d. Instalar NETCDF Fortran

e. En el archivo .cshrc agregar

#Trayectoria a las librerias de NETCDF

setenv LD_LIBRARY_PATH /opt/netcfd-4.3.0/lib:$LD_LIBRARY_PATH

f. Para refrescar el path de las librerías ubicarse en el home del usuario

source .cshrc

echo $LD_LIBRARY_PATH

g. Declarar la variable de ambiente en la misma terminal

setenv CPPFLAGS -I/opt/netcfd-4.3.0/include

setenv LDFLAGS -L/opt/netcfd-4.3.0/lib

Nota: error: cannot compute sizeof (off_t)

Para solucionar este error identificamos que el PATH del root era diferente al del

usuario y adicionamos en el archivo .cshcr la siguiente variable de ambiente

set path = ($path /usr/lib64/qt-3.3/bin /usr/local/sbin /usr/local/bin /sbin /bin /usr/sbin

/usr/bin /opt/descargas/jre1.7.0_40/bin /root/bin)

h. En la carpeta opt/descargas/netcdf-fortran se ejecuta

make check >& make_check.log

make install >& make_install.log

Nota: Las librerías que terminan en .a son estáticas

Las librerías con .so son dinámicas

Las librerías de fortran contiene una f, ejemplo: libnetcdff.a

1.4 Instalación JASPER

a. Descargar del sitio web: http://www.ece.uvic.ca/~frodo/jasper/#download./configure --

prefix=/opt/librerias/jasper-1.900.1

b. Instalar

make >&make.log

make install>&makeinstall.log

1.5 Instalación zlib

8

Nota: Se instala primero que el libpng

a. Configurar e instalar

./configure --prefix=/opt/librerias/zlib-1.2.

make >&make.log

make install>&makeinstall.log

1.6 Instalación libpng

a. Configurar e instalar

./configure

make check

make install

Instalación WRF Versión 3.3

Nota: Los pasos listados en este inciso también pueden ser seguidos en la siguiente dirección

web http://www.mmm.ucar.edu/wrf/OnLineTutorial/Introduction/index.html

a. Descargar y descomprimir los archivos

- La última versión de WRF ARW tar file, y la última WPS tar file (si se planea correr

con casos reales

http://www.mmm.ucar.edu/wrf/users/download/get_sources.html#V341

- Adicionar la descarga de los archivos configure_fix_tar y module_initialize_real.F.fix

que se encuentran en la siguiente dirección web

http://www.mmm.ucar.edu/wrf/users/wrfv3.3/known-prob-3.3.html

b. Crear un directorio de trabajo WRF/

mkdir WRF # /opt/WRFV3.3

- El archivo configure_fix_tar se debe colocar en la carpeta de WRFV3.3 y cambiarle

los permisos

chmod a=wrx configure_fix_tar

- Copiar el archivo module_initialize_real.F.fix en la carpeta de /WRFV3/dyn_em

c. Configurar

./configure

Opción 19: dmpar : distributed memory option (MPI)

Nota: Revisar que se está utilizando la versión con el tipo correcto de compilador con la

arquitectura apropiada.

Tipo de anidado: 1 (default)

d. Instalar WRF para casos reales

Es necesario establecer las siguientes variables de ambiente en .cshrc antes de compilar

setenv WRF_EM_CORE 1

e. Compilar para caso real

./compile em_real >& compile.log

f. Revisar que los archivos real.exe y wrf.exe fueron creados en la carpeta donde se compilo

g. Configurar WPS

./configure

h. En el archivo configure.wps cambiar la ruta para:

COMPRESSION_LIBS = -L/opt/librerias/jasper-1.900.1/lib -L/opt/librerias/libpng-1.6.6/lib

-L/opt/librerias/zlib-1.2.8 -ljasper -lpng -lz

9

COMPRESSION_INC = -I/opt/librerias/jasper-1.900.1/include -I/opt/librerias/zlib-

1.2.8/include -I/opt/librerias/libpng-1.6.6/include

1.7 Instalación WRF – CHEM

a. Descargar la última versión http://ruc.noaa.gov/wrf/WG11/Welcome.html

b. Descomprimirla

c. Instalar los programas flex http://flex.sourceforge.net/manual/

d. Instalar YACC de bison

e. Generar las variables de ambiente

setenv WRF_CHEM 1

setenv NMM_CORE 0

setenv WRF_KPP 1

setenv YACC „/usr/bin/yacc –d‟

setenv FLEX_LIB_DIR /usr/local/lib

Nota: Para que funcionara no fueron utilizadas las librerías YACC y FLEX

1.8 Instalación programa IDV versión 4.1 (Visualización)

Este es un programa que puede ser descargado con facilidad de la dirección web

http://www.unidata.ucar.edu/blogs/news/entry/idv_version_4_1

Solo se requiere estar registrado

Ejemplo WRF – CHEM

a. Siga las instrucciones del Ejercicio #4

http://ruc.noaa.gov/wrf/WG11/wrf_tutorial_emissions_v35/exercise_4.html

b. Descarga el archivo met_em.d01.2008071412.tar del link

ftp://aftp.fsl.noaa.gov/divisions/taq/wrfchemv33_tutorial/wrfchemv33_tutorial_data/DATA/

WRF-CHEM_WPS/

c. Descomprimir el archivo anterior en la carpeta de em_real de WRFV3

tar -xf /opt/descargas/met_em.d01.2008071412.tar

d. Descargar el archivo namelist.input.01.real

ftp://aftp.fsl.noaa.gov/divisions/taq/wrfchemv33_tutorial/wrfchemv33_tutorial_data/DATA/

WRF-CHEM/exercise_1/

e. Hacer una copia del namelist.input y ese nuevo archivo reemplazarlo con la información del

archivo descargado dejándolo con el nombre de namelist.input antes de correr el real

f. Ejecutar el comando

./real.exe

g. Crear una carpeta de nombre NEI05 dentro de la carpeta de WRFV3

h. Descargar en NEI05 los archivos de la dirección web

ftp://aftp.fsl.noaa.gov/divisions/taq/emissions_data_2005/

10

Incluidos dentro de la carpeta weekday emissions y el archivo emiss_v03_tutorial.F

Sugerencia: Hacer uso del comando wget - c para descargar todos los archivos

i. Cambiar las rutas donde se encuentra la información de fuentes de área y de fuentes

puntuales dentro del archivo emiss_v03_tutorial.F

j. Ejecutar el archivo a.out (ejecutable creado por el archivo emiss_v03_tutorial.F)

k. Pegar los archivos de salida en la carpeta WRFV3/run

l. Crear un link simbolico en la carpeta em_real, como lo muestra el ejemplo

ln -sf /opt/descargas/WRFV3/run/wrfem_12to24Z wrfem_12to24z_d01

m. Crear el archivo ejecutable del programa convert_emiss.exe

- Desplazarse a la carpeta de WRFV3 y digitar el comando

> ./compile emi_conv

- Verificar que en la carpeta chem y en la carpeta de em_real se encuentra el ejecutable

convert_emiss.exe

n. Copiar el convert_emiss.exe de la carpeta de chem a la carpeta de WRFV3/test/em_real

o. Cambiar en el namelist.input

Agregar en la parte de &chem

emiss_opt = 3 (default value)

chem_opt = 1

p. Activar la variable de ambiente de WRF_CHEM

setenv WRF_CHEM 1 (comprobar con echo $)

q. Correr convert_emiss.exe y verificar que se creó el archivo que contiene las 3 horas de datos

de emisión

wrfchemi_12z_d01

r. Editar el namelist para correr WRF para corridas de 30 min

s. Correr en paralelo el ./real.exe

- Para activar la opción de correr en paralelo

mpd & (activa el demonio)

setenv MP_STACK_SIZE 64000000

unlimit

mpirun -np 10 ./real.exe

t. Ejecutar wrf.exe

u. Verificar la existencia del archivo wrfout_d01_"fecha"

11

Anexos de la implementación de WRF-CHEM

speaconvert: fuentes de área y móviles.

El objetivo del programa “speaconvert” es leer los archivos que salen del Sistema para el

Procesamiento de Emisiones Atmosféricas (SPEA) y generar un archivo intermedio de datos binarios

que contiene datos tridimensionales de emisiones para cada hora y mapeados a un dominio de

simulación específico.

La Figura 1.1 presenta la estructura del archivo de salida del programa SPEA correspondiente a las

emisiones de las fuentes móviles, la cual también se mantiene para las emisiones de fuentes de

área. En el primer registro se definen el área de estudio, año y unidades en que están las emisiones:

para las especies en la fase gaseosa las unidades son moles/km2-hr y para las especies en fase

aerosol las unidades correspondientes son µg/m2-s, en el segundo registro se encuentran definidos

el número de celda (ID) con su correspondiente columna (J) y renglón (I), tipo de inventario (TYPE),

hora de las emisiones (0-23 hrs.) y por último los nombres de las especies emitidas, en este caso los

nombres corresponden a 30 especies en total (15 especies para el mecanismo RADM2, 11 especies

para el módulo de aerosoles MADE/SORGAM y 4 especies primarias.), en el tercer registro se

describen los tipos de inventarios que actualmente se pueden considerar, en los registros restantes

se definen los valores para cada una de las variables que aparecen en el segundo registro.

Figura 1.1. Formato del archivo de salida del Sistema para el Procesamiento de Emisiones

Atmosféricas (SPEA) para las emisiones de fuentes de área o móviles.

12

En la Figura 1.2 se muestra gráficamente la distribución de las celdas de emisiones y la orientación

de las mismas, el índice “I” corresponde al renglón y el índice “J” a la columna, la primer celda se

encuentra en la esquina inferior izquierda y la última en la esquina superior derecha, este orden

concuerda con los índices en el inventario de emisiones. Los índices NR y NC corresponden al

número de renglones y columnas respectivamente que hay en el dominio del inventario de

emisiones.

Figura 1.2. Orientación de la malla para el inventario de emisiones.

NR,1 NR,2 . . . . . . . NR,NC

. . .

. . I,J .

. . .

2,1 2,2 . . . . . . . 2,NC

1,1 1,2 . . . . . . . 1,NC

El programa “speaconvert” se ejecuta a través del archivo script “speaconvert.csh”, cuyo contenido

se muestra en la Tabla 1.1, actualmente se recomienda emplear este programa para procesar

únicamente fuentes de emisión de área y móviles.

Para realizar la ejecución del programa escribir el siguiente comando:

./speaconvert.csh

Los nombres de los archivos que salen de este programa son: wrfem_00to12Z y wrfem_12to24Z,

estos nombres son asignados por el programa “speaconvet”.

El formato de los archivos intermedios generados por el programa “speaconvert” se muestra en la

Tabla 1.2, en este caso corresponden a las especies que pertenecen al mecanismo químico RADM2 y

al módulo de aerosoles MADE/SORGAM.

13

Tabla 1.1. Script “spaeaconvert.csh” para ejecutar el programa “speaconvert”.

#!/bin/csh –f

#

# NESR2 - Numero de especies en el mecanismo RADM2, modelo MADE/SORGAM mas SO2, NO, NH3 Y CO

# NRE - Dimensiones de la malla de SPEA: Renglones, (NRE,NCO)

# NCO - Dimensiones de la malla de SPEA: Columnas, (NRE,NCO)

# NEM - Niveles en el archivo de emisiones: igual a kemit para un dominio WRF

# NPV - Niveles de los perfiles horizontales del viento

# NAE - Numero de archivos de entrada: Fuenter de area y/o moviles

# NAFP - Numero de archivos de fuentes puntuales

# NFP - Numero de fuentes puntuales

# AE - Trayectoria Y nombre de los archivos de entrada (fuentes de area y/o moviles)

# AFP - Trayectoria Y nombre de los archivos de entrada (fuentes puntuales)

# IHRI - Hora inicial

# IHRF - Hora final

#

#AE |./DATOS/gdf_utc/rewrfIEFACB2010chem.emi

#AE !./DATOS/gdf_utc/rewrfIEFMCB2010chem.emi

#AFP |./DATOS/gdf_utc/rewrfIEFPCB2010chem.emis

#

./speaconvert.exe << ieof >

../../SALIDAS/speaconvert/gdf_utc/2012/2012_mol_3_kemit20/speaconvert_gdf_m_utc_2012_eA.inf

NESR2 |30

NRE |144

NCO |114

NEM |20

NPV |21

NAE |1

NAFP |0

NFP |4796

IHRI | 1

IHRF |24

AE |/home/heriberto/SPEA/DATOS/emisiones/gdf_utc/2012_mol_3/UTC_WRFreESCENA.emi

ieof

14

Tabla 1.2. Formato de los archivos binarios intermedios que genera el programa “speaconvert”.

VARIABLE

EN EL

ARCHIVO

DECLARACIÓN DIMENSIONES COMENTARIO

nv integer 1 Número de especies químicas.

ename character*9 30 Nombre de cada campo de emisión en el

modelo.

hour integer 1 Hora de los datos de emisión.

so2 real (nx,ny,nz)

no real (nx,ny,nz)

ald real (nx,ny,nz)

hcho real (nx,ny,nz)

ora2 real (nx,ny,nz)

nh3 real (nx,ny,nz)

hc3 real (nx,ny,nz)

hc5 real (nx,ny,nz)

hc8 real (nx,ny,nz)

eth real (nx,ny,nz)

co real (nx,ny,nz)

ol2 real (nx,ny,nz)

olt real (nx,ny,nz)

oli real (nx,ny,nz)

tol real (nx,ny,nz)

xyl real (nx,ny,nz)

ket real (nx,ny,nz)

csl real (nx,ny,nz)

iso real (nx,ny,nz)

pm2.5i real (nx,ny,nz)

pm2.5j real (nx,ny,nz)

so4i real (nx,ny,nz)

so4j real (nx,ny,nz)

no3i real (nx,ny,nz)

no3j real (nx,ny,nz)

orgi real (nx,ny,nz)

orgj real (nx,ny,nz)

eci real (nx,ny,nz)

ecj real (nx,ny,nz)

pm10 real (nx,ny,nz)

15

elpl.

El programa “elpl” emplea el archivo de emisiones de fuentes puntuales y datos meteorológicos

horarios para calcular la elevación horaria de la pluma de cada una de las fuentes puntuales. La

elevación de la pluma es expresada en términos de fracciones de capa para cada una de las fuentes,

posteriormente la pluma es distribuida a través de las capas verticales que la pluma intersecta en

base a la presión que existe en cada una de las capas.

Los mecanismos responsables de la elevación de la pluma que se consideran en el programa “elpl”

son básicamente el mecanismo de flotación (se presenta cuando existe una diferencia entre las

densidades de la pluma y el aire, este generalmente prevalece cuando el efluente de la chimenea

está más caliente que el aire de los alrededores en el tope de la chimenea) y el de momentum

(domina cuando las plumas son emitidas con altas velocidades y por lo tanto el efecto de

momentum puede ser importante, especialmente cuando la temperatura del efluente de la

chimenea es baja).

Las diferentes clases de atmósferas bajo las cuales se forman las plumas por el mecanismo de

flotación y que son consideradas por el programa “elpl” pueden ser inestables, neutras e inestables.

El producto del programa “elpl” es un archivo intermedio de datos binarios que contiene datos

tridimensionales de emisiones para cada hora y mapeados a un dominio de simulación específico.

El conjunto de datos que requiere el programa “elpl” lo componen cuatro archivos, el primer archivo

contiene la información de emisiones de las fuentes puntuales, en el segundo archivo se encuentra

la información de los parámetros de las chimeneas tales como la altura y diámetro de la chimenea

así como la temperatura y velocidad de los gases de salida etc., la descripción de la malla de

emisiones junto con sus coordenadas se almacenan en el tercer archivo y finalmente en el cuarto

archivo se proporcionan las variables meteorológicas horarias como la temperatura y velocidad del

viento para diferentes niveles del dominio de simulación etc.

Fuentes puntuales de emisión.

La Figura 2.1.1 presenta la estructura del archivo de salida correspondiente a las emisiones de las

fuentes puntuales, para este caso la estructura del archivo es diferente en comparación con la de los

archivos para las fuentes de área y móviles. En el primer registro se definen el área de estudio, año y

unidades en que están las emisiones: para las especies en la fase gaseosa las unidades son

moles/km2-hr y para las especies en fase aerosol las unidades correspondientes son µg/m2-s, en el

segundo registro se encuentran definidos el número de celda (ID) con su correspondiente columna

(J) y renglón (I), código de la fuente emisión (C ODE), tipo de inventario (TYPE), hora de las

emisiones (HOUR, 0-23 hrs.) y por último los nombres de las especies emitidas, en este caso los

nombres corresponden a 30 especies en total (15 especies para el mecanismo RADM2, 11 especies

para el módulo de aerosoles MADE/SORGAM y 4 especies primarias.), en el tercer registro se

16

describen los tipos de inventarios que actualmente se pueden considerar, en los registros restantes

se definen los valores para cada una de las variables que aparecen en el segundo registro.

Figura 2.1.1. Formato del archivo de salida del Sistema para el Procesamiento de Emisiones

Atmosféricas (SPEA) para las emisiones de fuentes puntuales.

Parámetros de las chimeneas.

La estimación de la elevación de la pluma ya sea por el mecanismo de flotación o de momentum

requiere de los parámetros de cada una de las chimeneas que se van a procesar, en la Tabla 2.2.1 se

muestra un extracto del archivo de los parámetros de la chimeneas, en el primer registro se

encuentran los nombres de las variables que definen a la chimenea: clave de identificación de la

chimenea (CVEIDEN), coordenadas geográficas en grados decimales de la ubicación de la chimenea,

(LAT, LON), altura de la chimenea en m. (A), temperatura de los gases de salida en K (T), velocidad de

los gases de salida en m/s (V) y diámetro de la chimenea en m. (D), en los registros restantes se

encuentran los valores para cada una de estas variables.

El formato en FORTRAN del archivo es:

(i7, 1x, f9.6, 1x, f10.6, 1x, i2, 1x, f6.1, 1x, f5.1, f6.3).

17

Tabla 2.2.1. Formato del archivo para los parámetros de las chimeneas.

Descripción de la malla de emisiones: GRIDDESC.

El archivo “GRIDDESC” se emplea para proporcionar información al programa “elpl” de las

coordenadas horizontales así como de la proyección de la malla de emisiones. El formato del

archivo “GRIDDESC” se describe en la Tabla 2.3.1, en el primer segmento se encuentra la descripción

del sistema coordenado el cual consiste de registros de texto para el nombre del sistema

coordenado y los parámetros descriptivos P_ALP, PBET, P_GAM, XCENT y YCENT. El segundo

segmento es para la descripción de la malla y consiste de registros de texto para el nombre de la

malla y los parámetros descriptivos XORIG, YORIG, XCELL, YCELL, NCOLS, NROWS y NTHIK.

La ventaja del formato del archivo “GRIDDESC” es que puede contener datos para varias

proyecciones y varias mallas.

' '

'lambert_gdf'

2 17.500 29.500 -99.124 -99.124 19.5445

' '

'METCRO_malla_gdf'

'lambert_gdf' -57000.000 -72000.000 1000.000 1000.000 114 144 1

'METDOT_malla_gdf'

'lambert_gdf' -57500.000 -72500.000 1000.000 1000.000 115 145 1

' '

Tabla 2.3.1 Formato del archivo “GRIDDESC” que describe la proyección y coordenadas de la malla

de emisiones.

18

Meteorología.

La información meteorológica que requiere el programa “elpl” se genera en dos estapas, la primera

consiste en emplear un modelo meteorológico tal como el sistema WRF (Weather Research and

Forecasting) para generar las variables meteorológicas y la segunda etapa consiste en extraer

mediante el sistema MCIP (Meteorology-Chemistry Intrface Processor) las variables que son

requeridas por el programa “elpl” .

WRF.

Antes de realizar una corrida con el sistema meteorológico “WRF” es necesario definir los dominios

de simulación e interpolar varios conjuntos de datos terrestres a las mallas del modelo,

posteriormente se leen archivos GRIB y se escriben en un formato simple al que se le llama el

formato intermedio y finalmente se interpolan horizontalmente estos últimos, la secuencia de

comandos para ejecutar esta tarea es la siguiente:

./geogrid.exe, el archivo de salida es geo_em.d01.nc.

./ungrib.exe, los archivos de salida son FNL2:2012-03-06_00, …….., FNL2:2012-030-14_00.

./metgrid.exe, los archivos de salida son met_em.d01.2012-03-06_00:00:00.nc,…..,

met_em.d01.2012-03-14_00:00:00.nc.

El archivo script “namelist.wps_gdf_marzo_2012_modis_1d” que se emplea para ejecutar los

programas geogrid.exe, ungrib.exe y metgrid.exe se muestra en la Tabla 2.4.1.1.

Los información para inicializar el modelo “WRF” se encuentra en los archivos de las condiciones

iniciales y de frontera, los cuales se obtienen con la ejecución del siguiente comando:

./real.exe >& real.out, los archivos de salida son wrfinput_d01 y wrfbdy_d01.

El siguiente paso es generar las salidas del modelo meteorológico, locual se consigue escribiendo el

siguiente comando:

./wrf.exe, los archivos de salida son wrfout_d01_2012-03-06:00:00:00,……, wrfout_d01_2012-03-

14:00:00:00.

19

En la tabla 2.4.1.2 se presenta el archivo “namelist.input_cb_1203_modis_G1” el cual contiene toda

la información necesaria para realizar la ejecución del modelo meteorológico “WRF”.

Tabla 2.4.1.1. Archivo “namelist.wps_gdf_marzo_2012_modis_1d” empleado en la ejecución de los

programas geogrid.exe, ungrib.exe y metgrid.exe del sistema de pre-procesamiento WPS.

&share

wrf_core = 'ARW',

max_dom = 1,

start_date = '2012-03-06_00:00:00','2012-05-11_00:00:00','2012-05-11_00:00:00','2008-01-27_00:00:00','2008-01-27_00:00:00',

end_date = '2012-03-14_00:00:00','2012-05-11_00:00:00','2012-05-11_00:00:00','2008-01-27_00:00:00','2008-01-27_00:00:00',

interval_seconds = 21600

io_form_geogrid = 2,

opt_output_from_geogrid_path = '/data/data_user1/SALIDAS_WPS/gdf/2012/gdf_marzo_2012_modis_1d/salidas_geogrid'

/

&geogrid

parent_id = 1, 1, 2, 2, 2,

parent_grid_ratio = 1, 7, 7, 3, 3,

i_parent_start = 1, 5, 48, 54, 156,

j_parent_start = 1, 5, 46, 54, 115,

e_we = 127, 113, 127, 115, 61,

e_sn = 155, 113, 155, 115, 61,

geog_data_res = 'modis_30s+30s','2m','30s','30s','10m'

dx = 1000,

dy = 1000,

map_proj = 'lambert',

ref_lat = 19.5445,

ref_lon = -99.124,

truelat1 = 17.5,

truelat2 = 29.5,

stand_lon = -99.124,

geog_data_path = '/data/data_user1/DATOS_WPS/geog'

/

&ungrib

out_format = 'WPS',

prefix = '/data/data_user1/SALIDAS_WPS/gdf/2012/gdf_marzo_2012_modis_1d/salidas_ungrib/FNL2',

/

&metgrid

fg_name = '/data/data_user1/SALIDAS_WPS/gdf/2012/gdf_marzo_2012_modis_1d/salidas_ungrib/FNL2',

io_form_metgrid = 2,

opt_output_from_metgrid_path = '/data/data_user1/SALIDAS_WPS/gdf/2012/gdf_marzo_2012_modis_1d/salidas_metgrid'

/

20

Tabla 2.4.1.2. Archivo “namelist.input_cb_1203_modis_G1” que usa el sistema meteorológico WRF.

&time_control

run_days = 9,

run_hours = 193,

run_minutes = 0,

run_seconds = 0,

start_year = 2012, 2012, 2012, 2008, 2008,

start_month = 03, 03, 03, 01, 01,

start_day = 06, 06, 06, 27, 27,

start_hour = 00, 00, 00, 00, 00,

start_minute = 00, 00, 00, 00, 00,

start_second = 00, 00, 00, 00, 00,

end_year = 2012, 2012, 2012, 2008, 2008,

end_month = 03, 03, 03, 01, 01,

end_day = 14, 14, 14, 30, 30,

end_hour = 00, 00, 00, 00, 00,

end_minute = 00, 00, 00, 00, 00,

end_second = 00, 00, 00, 00, 00,

interval_seconds = 21600

input_from_file = .true.,.true.,.true.,.true.,.true.,

history_interval = 60, 60, 60, 60, 60,

frames_per_outfile = 24, 24, 24, 24, 24,

restart = .false.,

restart_interval = 5000,

io_form_history = 2

io_form_restart = 2

io_form_input = 2

io_form_boundary = 2

debug_level = 0

/

&domains

time_step = 2,

time_step_fract_num = 0,

time_step_fract_den = 1,

max_dom = 1,

e_we = 127, 25, 113, 127, 115, 61,

e_sn = 155, 25, 113, 155, 115, 61,

e_vert = 30, 30, 30, 30, 30,

num_metgrid_levels = 27,

num_metgrid_soil_levels = 4,

dx = 1000, 49000, 7000, 1000, 4000, 4000,

dy = 1000, 49000, 7000, 1000, 4000, 4000,

grid_id = 1, 2, 3, 4, 5,

parent_id = 1, 1, 2, 2, 2,

i_parent_start = 1, 5, 48, 233, 156,

j_parent_start = 1, 5, 46, 54, 115,

parent_grid_ratio = 1, 7, 7, 3, 3,

parent_time_step_ratio = 1, 7, 7, 3, 3,

feedback = 1,

smooth_option = 0

p_top_requested = 5000

zap_close_levels = 50

interp_type = 1

t_extrap_type = 2

force_sfc_in_vinterp = 0

use_levels_below_ground = .true.

use_surface = .true.

lagrange_order = 1

sfcp_to_sfcp = .true.,

eta_levels = 1.000, 0.9975, 0.995, 0.992, 0.99,

21

0.98, 0.96, 0.91, 0.875, 0.85,

0.825, 0.8, 0.75, 0.7, 0.65,

0.6, 0.55, 0.5, 0.45, 0.4,

0.35, 0.3, 0.25, 0.2, 0.16,

0.13, 0.1, 0.06, 0.03, 0.000,

/

&physics

mp_physics = 2, 3, 3,

ra_lw_physics = 1, 1, 1,

ra_sw_physics = 2, 1, 1,

radt = 30, 30, 30,

sf_sfclay_physics = 7, 1, 1,

sf_surface_physics = 7, 2, 2,

bl_pbl_physics = 7, 1, 1,

bldt = 0, 0, 0,

cu_physics = 0, 1, 0,

cu_diag = 1, 1, 1,

cudt = 0, 5, 5,

isfflx = 1,

ifsnow = 0,

icloud = 1,

surface_input_source = 1,

num_soil_layers = 2,

sf_urban_physics = 0, 0, 0,

num_land_cat = 20,

/

&dynamics

w_damping = 0,

diff_opt = 1,

km_opt = 4,

diff_6th_opt = 0, 0, 0,

diff_6th_factor = 0.12, 0.12, 0.12,

base_temp = 290.

damp_opt = 0,

zdamp = 5000., 5000., 5000.,

dampcoef = 0.2, 0.2, 0.2

khdif = 0, 0, 0,

kvdif = 0, 0, 0,

non_hydrostatic = .true., .true., .true.,

moist_adv_opt = 2, 1, 1,

scalar_adv_opt = 2, 1, 1,

tke_adv_opt = 2

/

&bdy_control

spec_bdy_width = 5,

spec_zone = 1,

relax_zone = 4,

specified = .true., .false.,.false.,

nested = .false., .true., .true.,

/

&grib2

/

&namelist_quilt

nio_tasks_per_group = 0,

nio_groups = 1,

/

22

MCIP.

Debido a que la cantidad de información generada por el sistema meteorológico WRF es muy

grande, es una práctica común emplear algún tipo de software para extraer únicamente la

información necesaria, en este caso se usa el programa MCIP.

En la Tabla 2.4.2.1 se muestra un extracto del archivo script “mcip_cb_1203_modis_G1.mcip” que se

usa para ejecutar el sistema MCIP.

Para ejecutar el programa escribir:

./ mcip_cb1203_modis_G1.mcip

Los archivos meteorológicos generados por el programa “MCIP” y que se requieren para calcular las

elevaciones de la pluma en las chimeneas son los siguientes:

GRID_CRO_2D. – Archivo 2D de parámetros independiente del tiempo.

GRID_CRO_3D. – Archivo 3D de parámetros independiente del tiempo.

GRID_DOT_2D. – Archivo 2D de parámetros independiente del tiempo.

MET_CRO_2D. - Archivo 2D de datos cross-point (datos meteorológicos en la superficie).

MET_CRO_3D. – Archivo 3D de datos cross-point (datos meteorológicos en la vertical).

MET_DOT_3D. – Archivo 3D de datos dot-point (datos meteorológicos en la vertical).

Tabla 2.4.2.1. Archivo script “mcip_cb_1203_modis_G1.mcip” para la extracción de variables

meteorológicas por el programa MCIP.

#!/bin/csh -f

#-----------------------------------------------------------------------

# Set identification for input and output files.

#

# APPL = Application Name (tag for MCIP output file names)

# CoordName = Coordinate system name for GRIDDESC

# GridName = Grid Name descriptor for GRIDDESC

# InMetDir = Directory that contains input meteorology files

# InTerDir = Directory that contains input MM5 "TERRAIN" file or

# WRF Preprocessing System "GEOGRID" file. (Used for

# providing fractional land-use categories. For MM5,

# it will only work if IEXTRA was set to TRUE in

# MM5's TERRAIN program. Is TRUE for P-X simulations.

# Not needed for WRF if "LANDUSEF" is part of history

# file.)

23

# InSatDir = Directory that contains GOES satellite files. (Used

# with satellite processing from UAH; otherwise leave

# blank.)

# OutDir = Directory to write MCIP output files

# ProgDir = Directory that contains the MCIP executable

# WorkDir = Working Directory for Fortran links and namelist

#-----------------------------------------------------------------------

set APPL = 2012-03-13

set CoordName = lambert_gdf # 16-character maximum

set GridName = malla_gdf # 16-character maximum

set HomePath = /opt/descargas/WRFV3/run

set DataPath = /opt/descargas/WRFV3/run

set InMetDir = /data/data_user1/SALIDAS_WRF/gdf/2012/wrf_cb_1203_modis_G1

set InTerDir =

/data/data_user1/SALIDAS_WPS/gdf/2012/gdf_marzo_2012_modis_1d/salidas_geogrid

set InSatDir =

set OutDir = /data/data_user1/SALIDAS_MCIPv4.2/gdf/2012/mcip_cb_1203_modis_G1

set ProgDir = /home/user1/MCIPv4.2/src

set WorkDir = $OutDir

#-----------------------------------------------------------------------

# Set name(s) of input meteorology file(s)

#

# File name(s) must be set inside parentheses since "InMetFiles" is

# a C-shell script array. Multiple file names should be space-

# delimited. Additional lines can be used when separated by a

# back-slash (\) continuation marker. The file names can be as

# they appear on your system; MCIP will link the files in by a

# Fortran unit number and the explicit name via a namelist. The

# files must be listed in chronological order. The maximum number

# of input meteorology files must be less than or equal to the number

# in MAX_MM in file_mod.F (default is 300).

#

# Example:

# set InMetFiles = ( $InMetDir/MMOUT_DOMAIN2.time1 \

# $InMetDir/MMOUT_DOMAIN2.time2 )

#

#-----------------------------------------------------------------------

set InMetFiles = ( $InMetDir/wrfout_d01_2012-03-12_00:00:00 \

$InMetDir/wrfout_d01_2012-03-13_00:00:00 )

# $InMetDir/wrfout_d01_2012-03-08_00:00:00 )

# $InMetDir/wrfout_d01_2012-03-09_00:00:00 \

# $InMetDir/wrfout_d01_2012-03-10_00:00:00 \

# $InMetDir/wrfout_d01_2012-03-11_00:00:00 \

# $InMetDir/wrfout_d01_2012-03-12_00:00:00 \

# $InMetDir/wrfout_d01_2012-03-13_00:00:00 )

set IfTer = "T"

set InTerFile = $InTerDir/geo_em.d01.nc

set InSatFiles = ( )

#-----------------------------------------------------------------------

# Set user control options.

#

# LPV: 0 = Do not compute and output potential vorticity

# 1 = Compute and output potential vorticity

#

# LWOUT: 0 = Do not output vertical velocity

# 1 = Output vertical velocity

#

# LUVCOUT: 0 = Do not output u- and v-component winds on C-grid

24

# 1 = Output u- and v-component winds on C-grid

#

# LSAT: 0 = No satellite input is available (default)

# 1 = GOES observed cloud info replaces model-derived input

#-----------------------------------------------------------------------

set LPV = 0

set LWOUT = 0

set LUVCOUT = 1

set LSAT = 0

#-----------------------------------------------------------------------

# Set run start and end date. (YYYY-MO-DD-HH:MI:SS.SSSS)

# MCIP_START: First date and time to be output [UTC]

# MCIP_END: Last date and time to be output [UTC]

# INTVL: Frequency of output [minutes]

#-----------------------------------------------------------------------

set MCIP_START = 2012-03-13-00:00:00.0000 # [UTC]

set MCIP_END = 2012-03-13-23:00:00.0000 # [UTC]

set INTVL = 60 # [min]

#-----------------------------------------------------------------------

# Set CTM layers. Should be in descending order starting at 1 and

# ending with 0. There is currently a maximum of 100 layers allowed.

# To use all of the layers from the input meteorology without

# collapsing (or explicitly specifying), set CTMLAYS = -1.0.

#-----------------------------------------------------------------------

set CTMLAYS = "-1.0"

#set CTMLAYS = "1.000, 0.995, 0.990, 0.980, 0.960, 0.940, 0.910, 0.860, \

# 0.800, 0.740, 0.650, 0.550, 0.400, 0.200, 0.000"

#-----------------------------------------------------------------------

# Determine whether or not static output (GRID) files will be created.

#-----------------------------------------------------------------------

set MKGRID = T

#-----------------------------------------------------------------------

# Set number of meteorology "boundary" points to remove on each of four

# horizontal sides of MCIP domain. This affects the output MCIP domain

# dimensions by reducing meteorology domain by 2*BTRIM + 2*NTHIK + 1,

# where NTHIK is the lateral boundary thickness (in BDY files), and the

# extra point reflects conversion from grid points (dot points) to grid

# cells (cross points). Setting BTRIM = 0 will use maximum of input

# meteorology. To remove MM5 lateral boundaries, set BTRIM = 5.

#

# *** If windowing a specific subset domain of input meteorology, set

# BTRIM = -1, and BTRIM will be ignored in favor of specific window

# information in X0, Y0, NCOLS, and NROWS.

#-----------------------------------------------------------------------

set BTRIM = -1

#-----------------------------------------------------------------------

# Define MCIP subset domain. (Only used if BTRIM = -1. Otherwise,

# the following variables will be set automatically from BTRIM and

# size of input meteorology fields.)

# X0: X-coordinate of lower-left corner of full MCIP "X" domain

# (including MCIP lateral boundary) based on input MM5 domain.

# X0 refers to the east-west dimension. Minimum value is 1.

# Y0: Y-coordinate of lower-left corner of full MCIP "X" domain

25

# (including MCIP lateral boundary) based on input MM5 domain.

# Y0 refers to the north-south dimension. Minimum value is 1.

# NCOLS: Number of columns in output MCIP domain (excluding MCIP

# lateral boundaries).

# NROWS: Number of rows in output MCIP domain (excluding MCIP

# lateral boundaries).

#-----------------------------------------------------------------------

set X0 = 6

set Y0 = 5

set NCOLS = 114

set NROWS = 144

#-----------------------------------------------------------------------

# Set coordinates for cell for diagnostic prints on output domain.

# If coordinate is set to 0, domain center cell will be used.

#-----------------------------------------------------------------------

set LPRT_COL = 0

set LPRT_ROW = 0

#-----------------------------------------------------------------------

# Optional: Set WRF Lambert conformal reference latitude.

# (Handy for matching WRF grids to existing MM5 grids.)

# If not set, MCIP will use average of two true latitudes.

# To "unset" this variable, set the script variable to "-999.0".

# Alternatively, if the script variable is removed here, remove it

# from the setting of the namelist (toward the end of the script).

#-----------------------------------------------------------------------

set WRF_LC_REF_LAT = 19.5445

#=======================================================================

Archivos intermedios binarios para las fuentes puntuales.

La distribución tridimensional de las emisiones de las fuentes puntuales, la cual considera la

elevación de la pluma, se obtiene a través del programa “elpl”, cuya estructura es similar a la

subrutina “Laypoint” que emplea el siatema SMOKE (Sparse Matrix Operator Kernel Emissions) para

calcular las fracciones de la elevación de la pluma que intersectan las capas en la vertical, en la Tabla

2.5.1 se muestra el script “elpl.csh” que se emplea para ejecutar el programa “elpl”, para realizar

una corrida de este programa escribir el siguiente comando

./elpl.csh

Los archivos generados por el programa “elpl” para las emisiones de las fuentes puntuales son :

wrfem_00to12Z y wrfem_12to24Z , el formato de estos archivos es el mismo que el de las fuentes

de área y móviles y se presenta en la Tabla 1.2.

26

Tabla 2.5.1. Archivo script “elpl.csh” para ejecutar el programa “elpl”

#!/bin/csh -f

#

# PLUME_GTEMP_NAME - Nombre de la variable para la temperatura del suelo

# del archivo meteorologico

# IOAPI_ISPH - Esferoide que se va a usar el los calcuos que se basan en la malla

# ( =20, para una esfera con radio de 6370000 m., empleada po WRF)

#

# GFLAG - TRUE: Usa malla variable, FALSE: No usa malla variable

# EMLAYS - Numero de capas de emision

# IPVERT - Metodo para el calculo de la dispersion vertical de la pluma

# = 0 Aproximacion de Turner, =1 Usa datos de temperatura ambiente

# NESR2 - Numero de especies en el mecanismo RADM2

# NCOL - Numero de columnas en la malla de emisiones

# NREN - Numero de renglones en la malla de emisiones

# NOMEFP - Nombre del archivo de las emisiones de fuentes puntuales (entrada)

# NOME00 - Nombre del archivo de las emisiones de fuentes puntuales en el

# formato requerido por el programa convert_emis.exe de WRF-Chem (salida)

# NOME12 - Nombre del archivo de las emisiones de fuentes puntuales en el

# formato requerido por el programa convert_emis.exe de WRF-Chem (salida)

# SNAME - Nombre del archivo meteorologico en la superficie, cross-point

# XNAME - Nombre del archivo meteorologico por capas, cross-point

# DNAME - Nombre del archivo meteorologico por capas, dot-points

# CNAME - Archivo de la malla en la superficie, cross-point (malla variable)

# TNAME - Archivo de la malla en la superficie, dot point (malla variable)

# NSRC - Numero de fuentes

# PARCHI - Archivo de parametros de las chimeneas

# GNAME - Archivo de la malla cross-point con niveles

#

# ----------------------------------------------------------------------------------

#

#GFLAG |.FALSE.

#EMAYS |12

#IPVERT |1

#NESR2 |30

#NCOL |114

#NREN |144

#NOMEFP |/home/heriberto/SPEA/DATOS/gdf_utc/efp_5chi.txt

#NOME00 |wrfem_00to12Z

#NOME12 |wrfem_12to24Z

#SNAME |METCRO2D_gdf

#XNAME |METCRO3D_gdf

#DNAME |METDOT3D_gdf

#CNAME |GRIDCRO2D_gdf

#TNAME |GRIDDOT2D_gdf

#NSRC |5

#PARCHI |param_chi.txt

#GNAME |GRIDCRO3D

#

# -----------------------------------------------------------------------------------

#

setenv PLUME_GTEMP_NAME TEMPG

setenv IOAPI_ISPH 20

#

./elpl << ieof > elpl.${PLUME_GTEMP_NAME}_vs0sp20emis_2012-03-13

GFLAG |.FALSE.

EMAYS |20

IPVERT |0

NESR2 |30

NCOL |114

NREN |144

27

NOMEFP |/home/user1/SPEA/DATOS/emisiones/gdf_utc/2012_mol/REUTC_IEFP2012_30.emis

NOME00 |/home/user1/SPEA/SALIDAS/gdf_utc/elpl/gdf_2012_mol_non_saito/wrfem_00to12Z_2012-13

NOME12 |/home/user1/SPEA/SALIDAS/gdf_utc/elpl/gdf_2012_mol_non_saito/wrfem_12to24Z_2012-13

SNAME |METCRO2D_gdf

XNAME |METCRO3D_gdf

DNAME |METDOT3D_gdf

NSRC |4357

PARCHI |param_chi.txt

ieof

convert_emiss.

El programa “convert_emiss” toma los archivos de salida de los programas “speaconvert” y “elpl”,

los cuales están en un formato intermedio y los transforma en archivos con formato netCDF

(Network Common Data Form) los cuales son reconocidos por el sistema de modelación “WRF-

Chem”.

Antes de ejecutar el programa “convert_emiss” es necesario generar los metadatos que irán

incorporados en el archivo de emisiones que entra al sistema “WRF-Chem”, los metadatos son datos

de los datos tales como proyección del mapa, período de simulación, etc., en este caso los

metadatos requeridos por los archivos de emisiones se encuentran en el archivo “wrfinput_d01” que

sale del sistema “WRF”.

Debido a que las extensiones horizontales de los dominios meteorológico y el de emisiones son

diferentes, es necesario generar nuevamente las condiciones iniciales, en las Tablas 3.1-3.2 se

muestran los archivos script “namelist.wps_gdf_marzo_2012_modis_1d_convert” y

“namelist.input_cb_1203_modis_G1_convert_06” respectivamente que se emplean para generar el

archivo “wrfinput_d01” con los metadatos que se incorporaran al archivo de emisiones.

Escribir la siguiente secuencia de comandos para generar los archivos con las condiciones iniciales y

de frontera para el dominio nuevo:

./geogrid.exe.

./ungrib.exe.

./metgris.exe.

./real.exe >& real.out.

Como se podrá observar de las Tablas 2.4.1.1-2.4.1.2 y Tablas 3.1-3.2, las variables “namelist” que

cambian son “e_we” y “e_sn” las cuales reflejan la extensión del dominio de simulación.

Este procedimiento debe repetirse para cada uno de los días del período de simulación y se

generarán tantos archivos “wrfinpu_d01” como días de simulación.

El paso final para la obtención de los archivos de emisiones en el formato NetCDF es ejecutar el

programa “convert_emiss” que viene con el sistema “WRF-Chwm”.

28

Los archivos requeridos por el programa “convert_emiss” básicamente son tres: “wrfinput_d01”

(archivo que contiene a los metadatos), “wrfem_00to12Z” y “wrfem_12to24Z” (archivos

intermedios de las emisiones).

Tabla 3.1. Archivo script “namelist.wps_gdf_marzo_2012_modis_1d_convert” para generar los

metadatos que incorporará el archivo de emisiones.

&share

wrf_core = 'ARW',

max_dom = 1,

start_date = '2012-03-06_00:00:00','2012-05-11_00:00:00','2012-05-11_00:00:00','2008-01-

27_00:00:00','2008-01-27_00:00:00',

end_date = '2012-03-14_00:00:00','2012-05-11_00:00:00','2012-05-11_00:00:00','2008-01-

27_00:00:00','2008-01-27_00:00:00',

interval_seconds = 21600

io_form_geogrid = 2,

opt_output_from_geogrid_path =

'/data/data_user1/SALIDAS_WPS/gdf/2012/gdf_marzo_2012_modis_1d_convert/salidas_geogrid'

/

&geogrid

parent_id = 1, 1, 2, 2, 2,

parent_grid_ratio = 1, 7, 7, 3, 3,

i_parent_start = 1, 5, 48, 54, 156,

j_parent_start = 1, 5, 46, 54, 115,

e_we = 115, 113, 127, 115, 61,

e_sn = 145, 113, 155, 115, 61,

geog_data_res = 'modis_30s+30s','2m','30s','30s','10m'

dx = 1000,

dy = 1000,

map_proj = 'lambert',

ref_lat = 19.5445,

ref_lon = -99.124,

truelat1 = 17.5,

truelat2 = 29.5,

stand_lon = -99.124,

geog_data_path = '/data/data_user1/DATOS_WPS/geog'

/

&ungrib

out_format = 'WPS',

prefix =

'/data/data_user1/SALIDAS_WPS/gdf/2012/gdf_marzo_2012_modis_1d_convert/salidas_ungrib/FNL2',

/

&metgrid

fg_name =

'/data/data_user1/SALIDAS_WPS/gdf/2012/gdf_marzo_2012_modis_1d_convert/salidas_ungrib/FNL2',

io_form_metgrid = 2,

opt_output_from_metgrid_path =

'/data/data_user1/SALIDAS_WPS/gdf/2012/gdf_marzo_2012_modis_1d_convert/salidas_metgrid'

/

29

Tabla 3.2. Archivo script “namelist.input_cb_1203_modis_G1_convert_06” para generar los

metadatos que incorporará el archivo de emisiones.

&time_control

run_days = 9,

run_hours = 193,

run_minutes = 0,

run_seconds = 0,

start_year = 2012, 2012, 2012, 2008, 2008,

start_month = 03, 03, 03, 01, 01,

start_day = 06, 06, 06, 27, 27,

start_hour = 00, 00, 00, 00, 00,

start_minute = 00, 00, 00, 00, 00,

start_second = 00, 00, 00, 00, 00,

end_year = 2012, 2012, 2012, 2008, 2008,

end_month = 03, 03, 03, 01, 01,

end_day = 14, 14, 14, 30, 30,

end_hour = 00, 00, 00, 00, 00,

end_minute = 00, 00, 00, 00, 00,

end_second = 00, 00, 00, 00, 00,

interval_seconds = 21600

input_from_file = .true.,.true.,.true.,.true.,.true.,

history_interval = 60, 60, 60, 60, 60,

frames_per_outfile = 24, 24, 24, 24, 24,

restart = .false.,

restart_interval = 5000,

io_form_history = 2

io_form_restart = 2

io_form_input = 2

io_form_boundary = 2

debug_level = 0

/

&domains

time_step = 2,

time_step_fract_num = 0,

time_step_fract_den = 1,

max_dom = 1,

e_we = 115, 25, 113, 127, 115, 61,

e_sn = 145, 25, 113, 155, 115, 61,

e_vert = 30, 30, 30, 30, 30,

num_metgrid_levels = 27,

num_metgrid_soil_levels = 4,

dx = 1000, 49000, 7000, 1000, 4000, 4000,

dy = 1000, 49000, 7000, 1000, 4000, 4000,

grid_id = 1, 2, 3, 4, 5,

parent_id = 1, 1, 2, 2, 2,

i_parent_start = 1, 5, 48, 233, 156,

j_parent_start = 1, 5, 46, 54, 115,

parent_grid_ratio = 1, 7, 7, 3, 3,

parent_time_step_ratio = 1, 7, 7, 3, 3,

feedback = 1,

smooth_option = 0

p_top_requested = 5000

zap_close_levels = 50

interp_type = 1

t_extrap_type = 2

force_sfc_in_vinterp = 0

use_levels_below_ground = .true.

use_surface = .true.

lagrange_order = 1

sfcp_to_sfcp = .true.,

30

eta_levels = 1.000, 0.9975, 0.995, 0.992, 0.99,

0.98, 0.96, 0.91, 0.875, 0.85,

0.825, 0.8, 0.75, 0.7, 0.65,

0.6, 0.55, 0.5, 0.45, 0.4,

0.35, 0.3, 0.25, 0.2, 0.16,

0.13, 0.1, 0.06, 0.03, 0.000,

/

&physics

mp_physics = 2, 3, 3,

ra_lw_physics = 1, 1, 1,

ra_sw_physics = 2, 1, 1,

radt = 30, 30, 30,

sf_sfclay_physics = 7, 1, 1,

sf_surface_physics = 7, 2, 2,

bl_pbl_physics = 7, 1, 1,

bldt = 0, 0, 0,

cu_physics = 0, 1, 0,

cu_diag = 1, 1, 1,

cudt = 0, 5, 5,

isfflx = 1,

ifsnow = 0,

icloud = 1,

surface_input_source = 1,

num_soil_layers = 2,

sf_urban_physics = 0, 0, 0,

num_land_cat = 20,

/

&dynamics

w_damping = 0,

diff_opt = 1,

km_opt = 4,

diff_6th_opt = 0, 0, 0,

diff_6th_factor = 0.12, 0.12, 0.12,

base_temp = 290.

damp_opt = 0,

zdamp = 5000., 5000., 5000.,

dampcoef = 0.2, 0.2, 0.2

khdif = 0, 0, 0,

kvdif = 0, 0, 0,

non_hydrostatic = .true., .true., .true.,

moist_adv_opt = 2, 1, 1,

scalar_adv_opt = 2, 1, 1,

tke_adv_opt = 2

/

&bdy_control

spec_bdy_width = 5,

spec_zone = 1,

relax_zone = 4,

specified = .true., .false.,.false.,

nested = .false., .true., .true.,

/

&grib2

/

&namelist_quilt

nio_tasks_per_group = 0,

nio_groups = 1,

/

31

En la Tabla 3.3 se presenta el archivo script “namelist.input_cb_1203_modis_G1_wrfchem_06” que

se utiliza para correr el programa “convert_emiss”.

Escribir el siguiente comando para generar los archivos de emisiones en el formato NetCDF:

./convert_emiss.exe.

Este procedimiento se repite para cada una de las fuentes de emisión (área, móviles y puntuales), y

los archivos que se generan para cada uno de los casos son:

wrfchemi_d01_2012-03-06_a, emisiones de fuentes de área.

wrfchemi_d01_2012-03-06_m, emisiones de fuentes móviles.

wrfchemi_d01_2012-03-06_p, emisiones de fuentes puntuales.

Como podrá observarse, el programa “convert_emiss” genera archivos por separado para cada una

de las fuentes, por lo tanto, para generar un solo archivo que contenga a todas las fuentes de

emisión, se puede escribir la siguiente secuencia de comandos:

ncbo –op_typ=add wrfchemi_d01_2012-03-06_a wrfchemi_d01_2012-03-06_m

wrfchemi_d01_2012-03-06_am.

ncbo –op_typ=add wrfchemi_d01_2012-03-06_am wrfchemi_d01_2012-03-06_p

wrfchemi_d01_2012-03-06_amp.

De esta forma, en el archivo “wrfchemi_d01_2012-03-06_amp” se encuentra toda la información en

cuanto a emisiones se refiere que necesita el sistema “WRF-Chem”.

32

Tabla 3.3. Archivo script “namelist.input_cb_1203_modis_G1_wrfchem_06” para ejecutar el

programa “convert_emiss”.

&time_control

run_days = 0,

run_hours = 24,

run_minutes = 0,

run_seconds = 0,

start_year = 2012, 2999, 2999,

start_month = 03, 06, 06,

start_day = 06, 11, 11,

start_hour = 00, 12, 12,

start_minute = 00, 00, 00,

start_second = 00, 00, 00,

end_year = 2012, 2999, 2999,

end_month = 03, 06, 06,

end_day = 06, 12, 12,

end_hour = 23, 12, 12,

end_minute = 00, 00, 00,

end_second = 00, 00, 00,

interval_seconds = 3600,

input_from_file = .true.,.false.,.false.,

history_interval = 60, 60, 60,

frames_per_outfile = 24, 1000, 1000,

restart = .false.,

restart_interval = 5000,

io_form_history = 2

io_form_restart = 2

io_form_input = 2

io_form_boundary = 2

auxinput1_inname = "met_em.d<domain>.<date>"

auxinput5_inname = "wrfchemi_d<domain>_<date>"

auxinput6_inname = 'wrfbiochemi_d01',

auxinput7_inname = 'wrffirechemi',

auxinput8_inname = 'wrfchemi_gocart_bg',

auxinput12_inname = 'wrf_chem_input',

auxinput5_interval_m = 60, 60, 60,

auxinput7_interval = 86400, 60, 60,

auxinput8_interval = 86400, 60, 60,

io_form_auxinput2 = 2,

io_form_auxinput5 = 2,

io_form_auxinput6 = 0,

io_form_auxinput7 = 0,

io_form_auxinput8 = 0,

io_form_auxinput12 = 0,

debug_level = 00

/

&domains

time_step = 2,

time_step_fract_num = 0,

time_step_fract_den = 1,

max_dom = 1,

s_we = 1, 1, 1,

e_we = 115, 112, 94,

s_sn = 1, 1, 1,

e_sn = 145, 97, 91,

s_vert = 1, 1, 1,

e_vert = 30, 28, 28,

num_metgrid_levels = 27

33

num_metgrid_soil_levels = 4,

dx = 1000, 3333, 1111,

dy = 1000, 3333, 1111,

grid_id = 1, 2, 3,

parent_id = 1, 1, 2,

i_parent_start = 1, 30, 30,

j_parent_start = 1, 20, 30,

parent_grid_ratio = 1, 3, 3,

parent_time_step_ratio = 1, 3, 3,

feedback = 1,

smooth_option = 0

p_top_requested = 5000

zap_close_levels = 50

interp_type = 1

t_extrap_type = 2

force_sfc_in_vinterp = 0

use_levels_below_ground = .true.

use_surface = .true.

lagrange_order = 1

sfcp_to_sfcp = .true.,

eta_levels = 1.000, 0.9975, 0.995, 0.992, 0.99,

0.98, 0.96, 0.91, 0.875, 0.85,

0.825, 0.8, 0.75, 0.7, 0.65,

0.6, 0.55, 0.5, 0.45, 0.4,

0.35, 0.3, 0.25, 0.2, 0.16,

0.13, 0.1, 0.06, 0.03, 0.000,

/

&physics

mp_physics = 2, 3, 3,

ra_lw_physics = 1, 1, 1,

ra_sw_physics = 2, 1, 1,

radt = 30, 30, 30,

sf_sfclay_physics = 7, 1, 1,

sf_surface_physics = 7, 2, 2,

bl_pbl_physics = 7, 1, 1,

bldt = 0, 0, 0,

cu_physics = 5, 1, 0,

cu_diag = 1, 1, 1,

cudt = 0, 5, 5,

isfflx = 1,

ifsnow = 0,

icloud = 1,

surface_input_source = 1,

num_soil_layers = 2,

sf_urban_physics = 0, 0, 0,

num_land_cat = 20,

/

&fdda

/

&dfi_control

/

&dynamics

w_damping = 0,

diff_opt = 1,

km_opt = 4,

diff_6th_opt = 0, 0, 0,

diff_6th_factor = 0.12, 0.12, 0.12,

34

base_temp = 290.

damp_opt = 0,

zdamp = 5000., 5000., 5000.,

dampcoef = 0.2, 0.2, 0.2

khdif = 0, 0, 0,

kvdif = 0, 0, 0,

non_hydrostatic = .true., .true., .true.,

moist_adv_opt = 2, 1, 1,

scalar_adv_opt = 2, 1, 1,

tke_adv_opt = 2

/

&bdy_control

spec_bdy_width = 5,

spec_zone = 1,

relax_zone = 4,

specified = .true., .false.,.false.,

nested = .false., .true., .true.,

/

&grib2

/

&namelist_quilt

nio_tasks_per_group = 0,

nio_groups = 1,

/

&chem

kemit = 20,

chem_opt = 2,

bioemdt = 30,

photdt = 30,

chemdt = 5.00,

io_style_emissions = 2,

emiss_opt = 3, 3,

chem_in_opt = 0, 0,

phot_opt = 2, 0,

gas_drydep_opt = 1, 1,

aer_drydep_opt = 1, 1,

bio_emiss_opt = 1, 0,

dust_opt = 0,

dmsemis_opt = 0,

seas_opt = 0,

gas_bc_opt = 1, 0,

gas_ic_opt = 1, 0,

aer_bc_opt = 1, 0,

aer_ic_opt = 1, 0,

gaschem_onoff = 1, 0,

aerchem_onoff = 1, 0,

wetscav_onoff = 0, 0,

cldchem_onoff = 0, 0,

vertmix_onoff = 1, 0,

chem_conv_tr = 1, 0,

biomass_burn_opt = 0, 0,

plumerisefire_frq = 30, 0,

have_bcs_chem = .false., .false., .false.,

aer_ra_feedback = 0,

opt_pars_out = 0,

diagnostic_chem = 0,

/

35

WRF-Chem.

En este caso se colocaron los archivos de emisiones antropogénicas en el subdirectorio “run” del

sistema “WRF-Chem”, el archivo script que se emplea para realizar una corrida considerando el

módulo de transformación química de las diferentes especies se muestra en la Tabla 4.1.

Escribir la siguiente secuencia de comandos para realizar una corrida con “WRF-Chem”

./real.exe

./wrf.exe

Con el primer comando se generan las condiciones iniciales y de frontera tanto para las variables

meteorológicas así como también para las diferentes especies químicas, con el segundo comando se

realiza propiamente la corrida con “WRF-Chem” para un período de tiempo especificado en el script

“namelist.input_cb_1203_modos_G1_chem”.

Como resultado de la corrida se generan los siguientes archivos:

wrfout_d01_2012-03-06_00:00:00

wrfout_d01_2012-03-07_00:00:00

.

.

wrfout_d01_2012-03-14_00:00:00

36

Tabla 4.1. Archivo script “namelist.input_cb_1203_modos_G1_chem” para ejecutar el sistema WRF-

Chem.

&time_control

run_days = 8,

run_hours = 193,

run_minutes = 0,

run_seconds = 0,

start_year = 2012, 2008, 2008, 2008, 2008,

start_month = 03, 01, 01, 01, 01,

start_day = 06, 27, 27, 27, 27,

start_hour = 00, 00, 00, 00, 00,

start_minute = 00, 00, 00, 00, 00,

start_second = 00, 00, 00, 00, 00,

end_year = 2012, 2008, 2008, 2008, 2008,

end_month = 03, 01, 01, 01, 01,

end_day = 14, 30, 30, 30, 30,

end_hour = 00, 00, 00, 00, 00,

end_minute = 00, 00, 00, 00, 00,

end_second = 00, 00, 00, 00, 00,

interval_seconds = 21600

input_from_file = .true.,.true.,.true.,.true.,.true.,

history_interval = 60, 60, 60, 60, 60,

frames_per_outfile = 24, 24, 24, 24, 24,

restart = .false.,

restart_interval = 5000,

io_form_history = 2

io_form_restart = 2

io_form_input = 2

io_form_boundary = 2

auxinput1_inname = "met_em.d<domain>.<date>"

auxinput5_inname = "wrfchemi_d<domain>_<date>"

auxinput6_inname = 'wrfbiochemi_d01',

auxinput7_inname = 'wrffirechemi',

auxinput8_inname = 'wrfchemi_gocart_bg',

auxinput12_inname = 'wrf_chem_input',

auxinput5_interval_m = 60, 60, 60,

auxinput7_interval = 86400, 60, 60,

auxinput8_interval = 86400, 60, 60,

frames_per_auxinput5 = 24,

io_form_auxinput2 = 2,

io_form_auxinput5 = 2,

io_form_auxinput6 = 0,

io_form_auxinput7 = 0,

io_form_auxinput8 = 0,

io_form_auxinput12 = 0,

debug_level = 0

/

&domains

time_step = 2,

time_step_fract_num = 0,

time_step_fract_den = 1,

max_dom = 1,

e_we = 115, 25, 113, 127, 115, 61,

e_sn = 145, 25, 113, 155, 115, 61,

e_vert = 30, 30, 30, 30, 30,

num_metgrid_levels = 27,

num_metgrid_soil_levels = 4,

dx = 1000, 49000, 7000, 1000, 4000, 4000,

dy = 1000, 49000, 7000, 1000, 4000, 4000,

grid_id = 1, 2, 3, 4, 5,

37

parent_id = 1, 1, 2, 2, 2,

i_parent_start = 1, 5, 48, 233, 156,

j_parent_start = 1, 5, 46, 54, 115,

parent_grid_ratio = 1, 7, 7, 3, 3,

parent_time_step_ratio = 1, 7, 7, 3, 3,

feedback = 1,

smooth_option = 0

p_top_requested = 5000

zap_close_levels = 50

interp_type = 1

t_extrap_type = 2

force_sfc_in_vinterp = 0

use_levels_below_ground = .true.

use_surface = .true.

lagrange_order = 1

sfcp_to_sfcp = .true.,

eta_levels = 1.000, 0.9975, 0.995, 0.992, 0.99,

0.98, 0.96, 0.91, 0.875, 0.85,

0.825, 0.8, 0.75, 0.7, 0.65,

0.6, 0.55, 0.5, 0.45, 0.4,

0.35, 0.3, 0.25, 0.2, 0.16,

0.13, 0.1, 0.06, 0.03, 0.000,

/

&physics

mp_physics = 2, 3, 3,

ra_lw_physics = 1, 1, 1,

ra_sw_physics = 2, 1, 1,

radt = 30, 30, 30,

sf_sfclay_physics = 7, 1, 1,

sf_surface_physics = 7, 2, 2,

bl_pbl_physics = 7, 1, 1,

bldt = 0, 0, 0,

cu_physics = 5, 1, 0,

cu_diag = 1, 1, 1,

cudt = 0, 5, 5,

isfflx = 1,

ifsnow = 0,

icloud = 1,

surface_input_source = 1,

num_soil_layers = 2,

sf_urban_physics = 1, 0, 0,

num_land_cat = 20,

/

&fdda

/

&dynamics

w_damping = 0,

diff_opt = 1,

km_opt = 4,

diff_6th_opt = 0, 0, 0,

diff_6th_factor = 0.12, 0.12, 0.12,

base_temp = 290.

damp_opt = 0,

zdamp = 5000., 5000., 5000.,

dampcoef = 0.2, 0.2, 0.2

khdif = 0, 0, 0,

kvdif = 0, 0, 0,

non_hydrostatic = .true., .true., .true.,

38

moist_adv_opt = 2, 1, 1,

scalar_adv_opt = 2, 1, 1,

tke_adv_opt = 2

/

&bdy_control

spec_bdy_width = 5,

spec_zone = 1,

relax_zone = 4,

specified = .true., .false., .false., .false., .false.,

nested = .false., .true., .true., .true., .true.,

/

&grib2

/

&chem

kemit = 20,

chem_opt = 2,

bioemdt = 30,

photdt = 30,

chemdt = 2.,

io_style_emissions = 2,

emiss_inpt_opt = 1,

emiss_opt = 3,

chem_in_opt = 0,

phot_opt = 1,

gas_drydep_opt = 1,

aer_drydep_opt = 1,

bio_emiss_opt = 1,

dust_opt = 0,

dmsemis_opt = 0,

seas_opt = 2,

gas_bc_opt = 1,

gas_ic_opt = 1,

aer_bc_opt = 1,

aer_ic_opt = 1,

gaschem_onoff = 1,

aerchem_onoff = 1,

wetscav_onoff = 0,

cldchem_onoff = 0,

vertmix_onoff = 1,

chem_conv_tr = 1,

biomass_burn_opt = 1, 0,

plumerisefire_frq = 30, 30,

aer_ra_feedback = 0, 0,

have_bcs_chem = .false., .false.,

/

&namelist_quilt

nio_tasks_per_group = 0,

nio_groups = 1,

/