Níveis

NÍVEL 2 - INSTRUÇÕES MODELO 1D DOS PROCESSOS FÍSICOS



Este manual foi elaborado por Enver Ramírez Gutiérrez, Pesquisador Doutor do CPTEC/INPE. Contém as instruções para fazer experimentos com o modelo atmosférico do CPTEC, em uma coluna da atmosfera, para testar parametrizações físicas.


PHYSCS-V.S.SV.tar

1. Instalação

Desempacotar o arquivo de distribuição PHYSCS-V.S.SV.tar
> tar -xvf PHYSCS-V.S.SV.tar

Dentro do diretório devem aparecer dois diretórios
> cd PHYSCS-V.S.SV; ls -l | awk '{print $1 " " $9}'
drwx------ model
drwx------ run

> ls -l PHYSCS-V.S.SV/model | awk '{print $1 " " $9}'
drwx------ datain
drwx------ source

O diretório run contém os scripts necessários para submeter o modelo para rodar. O diretório model contém os códigos fonte dentro do diretório source e os dados de entrada necessários para rodar um experimento dentro do diretório datain.

O diretório dataout é o diretório onde os resultados da rodada serão salvos. O MCGA 1D pode ser configurado para colocar este diretório em um lugar onde disponha-se de espaço suficiente. Na versão descrita, o diretório dataout encontra-se dentro do diretório model.

2. Compilação

Entrar no diretório source e eliminar objetos de compilações prévias que tenham sido feitos em outras máquinas.
> make clean

A seguir verifique se já existe a combinação máquina + compilador da sua preferência dentro das opções disponíveis. Digite:
> make
Please specify target (For example, type "make linux" for a Linux system):

cray_cray gnu_cray_dbx pgi_cray_craydbg
cray_cray32 linux_gnu sx6
cray_craydbg linux_intel tupay
gnu_cray linux_pgi una_gnu
gnu_cray2 pgi_cray una_intel


Se você tiver linux e compilador intel instalado, para iniciar a compilação deverá digitar:
> make linux_intel

Se a compilação estiver certa, deverá ser gerado um executável ParModel_MPI no diretório exec
> cd PHYSCS-V.S.SV/model/exec; ls
ParModel_MPI

Se a compilação for errônea, deverá verificar uma opção adequada para seu sistema disponível no diretório source/makefiles. Se a opção adequada não estiver disponível a mesma deverá ser incluída dentro do diretório makefiles, exemplo:

> vim PHYSCS-V.S.SV/model/source/makefiles/Makefile.NewSistema_NewCompilador

Dentro deste arquivo deverão ser colocadas as opções de compilação, compilador e flags adequados para o seu sistema. Tome como base os outros arquivos dentro do diretório makefiles.

3. Dados de Entrada

3.1. Condição Inicial (SOND_IN)
Arquivo ASCII contendo perfis de pressão (hPa), temperatura virtual (Celsius), umidade específica em (g/kg), componente zonal u (m/s) e meridional v (m/s).

3.2. Condições de Contorno (FORCINGS_ASCII)
Contém uma série temporal de perfis que servem como condição de contorno para a integração do modelo 1D. Mesmo que o modelo seja integrado para um único tempo, o arquivo FORCINGS_ASCII deve conter pelo menos dois perfis.

No cabeçalho de cada perfil existem informações que o modelo utiliza para interpolar, linearmente no tempo, o forçamento para cada passo de tempo do modelo ao longo de toda integração do experimento. O forçamento pode ter um intervalo de tempo maior ao intervalo de tempo utilizado para a integração do modelo.

Para que a interpolação seja adequada, deve-se garantir que ambas, a data de início e de fim do experimento estejam contidas nos dados utilizados como forçamento.

É possível fazer rodadas com o forçamento perpétuo, mesmo assim pelo menos dois perfis devem ser fornecidos com cabeçalhos adequados que incluam as datas de inicio e fim do experimento. O conteúdo do forçamento vai ser simples repetição.

O arquivo FORCINGS_ASCII contém um cabeçalho

nf    nl    dj    ps    prec

onde
nf  := contador para referência
nl  := número de níveis de pressão do arquivo
dj  := dia Juliano em termos de fração de dia
ps  := pressão à superfície
prec  := precipitação

O conteúdo de forçamento contém uma matriz 5 linhas e nl colunas, onde são acomodados os perfis de:

np    omega    du/dt    dv/dt    dT/dt    dq/dt

onde
np  := níveis de pressão (ordenados desde o nível mais próximo à superfície)
omega  := velocidade vertical (cb/s)
du/dt  := tendência de u (m/s2)
dv/dt  := tendência de v (m/s2)
dT/dt  := tendência de temperatura virtual (celcius/s)
dq/dt  := tendência de umidade específica (1/s).

Volta-se a enfatizar que mesmo que o FORCINGS_ASCII tenha um único forçamento, o mesmo deve ser repetido pelo menos duas vezes. O Cabeçalho deve ser mudado para incluir as datas de início e fim do experimento.

3.3. Namelist (PARMODEL)
O Arquivo PARMODEL é utilizado para configurar o modelo para realização de um experimento. Neste arquivo colocam-se informações sobre a resolução vertical, o passo de tempo para integração numérica, data inicial e final da integração, caminho para os diretórios datain e dataout.

Neste arquivo são configuradas também as parametrizações físicas a serem utilizadas durante a integração (radiação, pbl, convecção, superfície).

Apesar do namelist ser similar ao utilizado no modelo 3D, existem algumas diferenças que devem ser observadas. Exemplo: Os parâmetros "trunc" (truncamento espectral triangular) e "vert" (número de níveis sigma) são mantidos, entretanto somente o parâmetro “vert” é que vai ter um efeito para mudar a resolução espacial (no caso 1D, maior resolução implica em mais níveis verticais). Porém, o parâmetro trunc é mantido pois para cada truncamento há um conjunto de níveis estabelecidos, e quanto maior a resolução horizontal, maior deve ser a resolução vertical. O código que faz esta escolha do truncamento e a resolução vertical tem sido mantido no modelo 1D (dentro de Options.f90) e é por isso que o modelo 1D preserva o parâmetro trunc.

Para conseguir localizar o modelo no espaço foram adicionados três parâmetros no namelist longitude, latitude e altitude. Estes parâmetros devem mudar de acordo com o local para onde o experimento é realizado.

  longitude    (qualquer valor entre 0 – 360)
  latitude    (qualquer valor entre -90 e 90)
  altitude    (em metros)

No namelist foram incluídos mais dois parâmetros que auxiliam na interpolação do forçamento para à integração do modelo "iffor" e "intfor". Se o parâmetro iffor < -1.0 o forçamento não é interpolado no tempo e o primeiro valor lido é mantido constante para toda a integração.

Se iffor = 0.0 o modelo entende que deve ser feita uma interpolação linear, e busca pelo parâmetro intfor. O parâmetro intfor específica o intervalo com que o forçamento é armazenado em unidades de segundos.

3.4. Outras Condições de Contorno
3.4.1. Obrigatórias

  • • VegetationMask.G00001
  • • SSTClimaAAAAMMDD.G00001 (Mesmo quando o 1D é rodado sobre o continente. O arquivo contém treze dados, o primeiro é a orografia e do segundo ao décimo-segundo, os dados correspondem à TSM média mensal para um ponto)
  • • SnowAAAAMMDDHHS.unf.G00001
  • • SoilMoisture.G00001
  • • TopoVariance.G00001
  • • DeepSoilTemperature.G00001
  • • RoughnessLength.G00001

3.4.2. Opcionais Dependendo Do Modelo De Superfície Utilizado

  • 3.4.2.1 SiB2
  • • PorceSandMaskSiB2.G00001 (uma camada)
  • • PorceClayMaskSiB2.G00001 (uma camada)
  • • AlbedoSSiB (binary data)
  • • VegetationSSiB (binary data)

3.4.2.2 IBIS
  • • PorceSandMaskIBIS.G00001 (várias camadas)
  • • PorceClayMaskIBIS.G00001 (várias camadas)
  • • VegetationMaskIBIS.G00001
  • • DeltaTemColdes.G00001
  • • Temperature.G00001

3.5. Outros (Tabelas)

  • • DiagDesiredTable.pnt
  • • cnftbl
  • • cnf2tb
  • • looktb
  • • rfd

4. Organização

Para fins de organização, diferentes experimentos (CaseName) são acondicionados em diretórios separados e cada um destes diretórios incluem o namelist, condições iniciais e as condições de contorno necessárias para rodar o modelo.

Como será visto no script de execução, estes arquivos são copiados para os diretórios onde o executável deverá buscar a respectiva informação.

5. Execução do modelo

Entrar no diretório run onde encontram-se dois bash scripts para rodar o modelo 1D, tanto sobre o oceano como sobre o continente.

> cd PHYSCS-V.S.SV/run; ls -l
runEns_Land
runEns_Ocean

Para rodar o modelo há duas opções:
1) Sobre o Oceano
> runEns_Ocean CaseName

2) Sobre o Continente
> runEns_Land CaseName

O script vai verificar a existência do diretório PHYSCS-V.S.SV/model/datain/CaseName, onde o CaseName é o nome do experimento e contém dados e o namelist para rodar o modelo.

Ambos scripts runEns_Land e runEns_Ocean rodam um ensemble de experimentos com diferentes opções de física. Ao editar o script entre as linhas "#Ensemble of Physics (start)" e "#Ensemble of Physics (end)" deveram ser inseridas as diferentes opções de física para rodar o modelo.

O número de membros do ensemble é contabilizado via a variável "Exp" utilizada para diferenciar os diferentes membros do ensemble.

#Ensemble of Physics (start)
Exp = (exp1 exp2 …... expN) !N experimentos
Inserir aqui as diferentes combinações de parâmetros físicos para rodar o modelo
#Ensemble of Physics (end)

Exemplo: Suponha-se que se requer rodar um ensemble com três experimentos com diferentes opções de fechamentos (grepar1) para a parametrização de convecção Grell. Os dois primeiros com precipitação de grande escala e o último experimento com micro-física.

#Ensemble of Physics (start)
  Exp = (01 02 03)       !lista de experimentos
  ICCON = (GRE GRE GRE)
  grepar1 = (1 4 7)
  ILCON = (LSC LSC MIC)
#Ensemble of Physics (end)

Verifique que o número de elementos em todas as variáveis inseridas entre (start) e (end) seja igual ao número de elementos na variável Exp. O script utiliza os dados inseridos em Exp para criar diretórios para armazenar os diferentes experimentos. No exemplo, diretórios Exp01, Exp02 e Exp03 serão automaticamente criados no diretório PHYSCS-V.S.SV/model/dataout.

Para cada um destes experimentos o namelist PARMODEL é escrito incluindo as opções dentro de "#Ensemble of Physics (start)" e "#Ensemble of Physics (end)" coluna a coluna. O arquivo PARMODEL vai ser copiado para os diretórios

>cp PARMODEL PHYSCS-V.S.SV/model/datain/CaseName
>cp PARMODEL PHYSCS-V.S.SV/model/exec

O primeiro é para salvar detalhes da rodada; o segundo é onde o modelo é rodado. Cada membro do ensemble vai disparar uma vez o modelo. Para diferenciar onde cada membro vai guardar a saída existe o namelist modelin.in.

O arquivo modelin.in contém os caminhos dos diretórios onde o modelo roda (run), o diretório onde encontram-se os dados de entrada (datain) e o diretório de saída do modelo para cada experimento (dataout). O modelin.in é automaticamente construído e fornecido como namelist para o executável que roda o modelo de forma interna.

Cada membro do ensemble "Exp" dispara uma rodada. No exemplo anterior três disparos serão feitos com as respectivas diferenças nos parâmetros que controlam a física.