Dicas para montar os namelists do WRF

Os arquivos “namelist” contém valores de variáveis fundamentais para o sistema de modelagem numérica para previsão de tempo WRF. Elas são lidas durante a execução do programa, o que permite alterar sua configuração sem a necessidade de recompilar o código fonte. O WRF trabalha com parâmetros dentro de três arquivos de texto: namelist.wps (pré-processamento), namelist.input (processamento) e namelist.ARWpost (pós-processamento).

O WRF Domain Wizard é uma interface gráfica do usuário (GUI) para o WRF Preprocessing System (WPS) e um componente interno do WRF Portal. Permite aos usuários definir e localizar facilmente domínios (casos) selecionando uma região da Terra e escolhendo uma projeção de mapa. Os usuários também podem definir “nests” (grades aninhadas, ou seja, mais de um domínio para o mesmo estudo), editar os arquivos namelist.input e namelist.wps, executar os programas WPS (geogrid, ungrib e metgrid) através da GUI e visualizar a saída NetCDF.

Tela com dois domínios usando WRF Domain Wizard

Existem duas maneiras de usar a versão autônoma do WRF Domain Wizard: Java Web Start ou baixando o aplicativo e descompactando-o, conforme segue:

Precisa da máquina Java instalada – veja mais clicando no link. O roteiro a seguir foi baseado no tutorial do dtcenter e no vídeo Adding a new domain to be used by WRF4G. Eles seguem também para rodar o WPS, mas aqui o foco é montar as namelists: primeiro o “.input”, depois o “.wps” e então o “.ARWpost”.

Exemplo de roteiro para montar namelists

  1. (opcional, caso não vá rodar o WPS) Escolha os diretórios onde estão o WPS, dados de terreno e domínios
  2. Escolha “New domain” e clique em “next”
  3. Escreva um nome e descrição e clique em “next”
  4. Clique em um ponto do mapa e arraste o curso para formar um retângulo abrangendo a área desejada, soltando para finalizar a marcação
  5. Em “projection option”, escolha “type -> Mercator”
  6. Ajuste a posição do centro para um ponto específico, aproveitando para personalizar as variáveis “centerpoint lon” e “centerpoint lat”, copiando os mesmos valores para “standard lon” e “true lat1” (manter “true lat 2” = 0); guarde esses valores para montar o arquivo namelists.wps!
  7. Clique em “update map” e aguarde para gerar um “zoom” sobre a região
  8. Para fazer uma grade de 15 km, altere a variável “grid points distance (km)” para 15, de modo que as outras variáveis de “grid options” (“horizontal dimensions” X e Y) são automaticamente calculadas quando você readequar o retângulo do mapa com o mouse (dica: reduza a área do retângulo diretamente no mapa antes, para os contronos não saírem do zoom); altere a “geographic data resolution” se for o caso (guarde esse valor para montar o arquivo namelists.wps)
  9. (opcional, caso faça um subdomínio) Para criar um subdomínio (grade aninhada ou “nest”), clique na aba “nests” e então em “new”; altere a “data geographical resolution” se for o caso; no mapa, clique no centro e arraste para soltar em uma nova posição e refaça o traçado para cobrir a área de interesse; altere a “geographic data resolution” se for o caso (guarde esse valor para montar o arquivo namelists.wps)
  10. Clique em “next” e “yes” (se pedir para refazer o arquivo “namelist”); a aba “text editor” contém o arquivo “namelist.input” para você usar no WRF

Montar dois ou mais domínios (ou grades aninhadas, do inglês “nested”) permite aumentar a resolução (espacial e temporal) de um sub-domínio sem a necessidade de usar uma alta resolução para toda a grade – muito caro computacionalmente. O sub-domínio sempre deve estar plenamente contido no domínio pai, sem um subdomínio sobrescrever apenas parte de outro eventual sub-domínio. É recomendada uma razão de 3:1 ou 5:1 entre os tamanhos de cada um (parent_grid_ratio).

Veja esse exemplo de saída, considerando latitude e longitude do centro do domínio 1 (área maior) como -22.070 e -48.434 (centro geométrico do estado de São Paulo) e um domínio 2 centrado na região metropolitana – a descrição das variáveis está disponível no link:

A variável “frames_per_outfile” indica o número de times que devem ter cada arquivo. Usando 1, serão gerados vários arquivos; usando um número igual ou maior que o número de times total (variável “history_interval”), todos os times serão guardados em um arquivo no final do processamento.

Para a variável “time_step”, use o valor da sua resolução (em km), multiplique por 6 e tire uns 10%. Por exemplo: dx = dy = 9000, então usar 9 x 6 = 54 -10% ~ 50 segundos. Recomenda-se realizar as integrações com passo de tempo equivalente até seis vezes o valor do espaçamento de grade. Se tiver um descompasso muito grande entre essas variáveis, podem aparecer erros do tipo “points exceeded cfl=2 in domain d01 at time…”, “Flerchinger USEd in NEW version” e “Program received signal SIGSEGV: Segmentation fault – invalid memory reference”.

Basta editar algumas das variáveis de “time_control” (principalmente run_days, start_*, end_*) e o que mais for de seu interesse (por exemplo, se não usar o módulo de química, cortar as variáveis pd_* na parte “dynamics”). Aqui, também foram alteradas as variáveis “e_vert” para 30, “p_top_requested” para 5000 e “num_metgrid_levels” para 32.

Essas informações podem ser usadas para montar o arquivo “namelist.wps” de pré-processamento. Considerando o arquivo original padrão, edite as variáveis temporais (“start_date”, “end_date” e “interval_seconds”), acerte a localização do arquivo de terreno (geog_data_path), inclua o segundo domínio (max_dom = 2) e copie as variáveis em comum do “namelist.input” (de “domains” para “geogrid”).

Importante: as variáveis dx e dy (em metros) devem conter apenas os valores do domínio maior (ou seja, têm só uma “coluna”). As variáveis map_proj, ref_lat, ref_lon, truelat1, truelat2 e stand_lon devem ser preenchidas com as informações no início (passo 6), e geog_data_res deve conter os valores de resolução dos domínios preenchidos anteriormente (passos 8 e 9; por exemplo: “geog_data_res = ’10m’, ‘5m’,”).

Por fim, o arquivo “namelist.ARWpost” para o pós-processamento segue um padrão onde só é necessário editar os intervalos de tempo e nomes/locais dos arquivos de entrada e saída. Caso use 2 domínios, a variável “input_root_name” deve ter o nome “d02” para pegar a saída da grade menor. Mais informações sobre as variáveis desse arquivo estão no manual da UCAR.

Versões dos arquivos podem ser vistos no GitHub/install_wrf, disponível no link.