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.
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
3.4.2. Opcionais Dependendo Do Modelo De Superfície Utilizado
3.5. Outros (Tabelas)
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.