Modelo Global - 1
Modelo Global Fortran90 Operacional Atual (Janeiro de 2004)
1 - Uso da tabela desirtable e descrição da availtable:
Parâmetros para dimensão das matrizes de diagnósticos solicitados via desirtable
(subdiretório model/datain) definidos no runmodg.sx6 (exige re-compilação do
modelo):
•
•
•
•
•
mgaus - número de campos gaussianos com kmax camadas
ngaus - número de campos gaussianos de superfície ou com 1 nível
mspec - número de campos espectrais com kmax camadas
nspec - número de campos espectrais de superfície ou com 1 nível
kmax - número de camadas do modelo
Trecho do runmodg.sx6 a ser modificado:
(deve-se modificar tanto no spcgau.new quanto no spcgau.inc90)
cat <<EOT > spcgau.new
PARAMETER (mgaus=1,ngaus=21,mspec=4,nspec=0)
EOT
cat <<EOT > spcgau.inc90
INTEGER, PARAMETER :: mgaus=1
INTEGER, PARAMETER :: ngaus=21
INTEGER, PARAMETER :: mspec=4
INTEGER, PARAMETER :: nspec=0
EOT
Obtenção dos parâmetros:
Na tabela availtable (subdiretório model/datain):
Coluna 1: nome da variável (40 caracteres)
Coluna 2: 1 - campos de um nível
2 - campos com kmax camadas
Coluna 3: número da unidade de cálculo pelo modelo
Coluna 4: 1 - campos gaussianos
2 - campos espectrais
Coluna 5: posição no código onde o diagnóstico é calculado
1 - sub-rotinas gloop/gfidi
2 - sub-rotina gwater
3 - sub-rotinas gloop/gfidi e gwater
0 - nenhuma delas
Uso de Disco - 1
Modelo Global - 2
Comparando a tabela desirtable com a tabela availtable e contando
• o número de campos gaussianos com kmax camadas,
• o número de campos gaussianos de superfície / um nível,
• o número de campos espectrais com kmax camadas,
• o número de campos espectrais de superfície / um nível,
pode-se obter mgaus, ngaus, mspec e nspec.
Na tabela desirtable:
Coluna 1: nome da variável (40 caracteres)
Coluna 2: 1 - campos de um nível
2 - campos com kmax camadas
Coluna 3: número da unidade requerida para a saída
(coluna 4 = 0) ou número da unidade de cálculo
pelo modelo (coluna 4 /= 0, ver availtable)
Coluna 4: código de cálculo do diagnóstico requerido
0 - cálculo direto
# - > 0 : adiciona ao campo requerido número #
# - < 0 : subtrai ao campo requerido número #
Exemplo de tabela desirtable:
TIME MEAN SURFACE PRESSURE
TIME MEAN DIVERGENCE
TIME MEAN VORTICITY
TIME MEAN SPECIFIC HUMIDITY
TIME MEAN VIRTUAL TEMPERATURE
TOTAL PRECIPITATION
CONVECTIVE PRECIPITATION
LARGE SCALE PRECIPITATION
SENSIBLE HEAT FLUX FROM SURFACE
LATENT HEAT FLUX FROM SURFACE
CLOUD COVER
OUTGOING LONG WAVE AT TOP
GROUND/SURFACE COVER TEMPERATURE
TOTAL DIABATIC HEATING
LONG WAVE RADIATIVE HEATING
SHORT WAVE RADIATIVE HEATING
CONVECTIVE LATENT HEATING
LARGE SCALE LATENT HEATING
SHALLOW CONVECTIVE HEATING
VERTICAL DIFFUSION HEATING
1
2
2
2
2
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
132
50
50
0
40
121
121
121
170
170
0
170
40
71
70
70
70
70
70
70
0
0
0
0
0
0
0
0
0
0
0
0
0
0
+14
+14
+14
+14
+14
+14
Uso de Disco - 2
Modelo Global - 3
Explicação:
O valor +14 na quarta coluna significa que estes campos (LONG WAVE RADIATIVE
HEATING, SHORT WAVE RADIATIVE HEATING, CONVECTIVE LATENT HEATING,
LARGE SCALE LATENT HEATING, SHALLOW CONVECTIVE HEATING, VERTICAL
DIFFUSION HEATING), que são calculados em unidade 70 (ver tabela availtable) serão
somados e terá como nome de saída no arquivo *.dir.* do modelo global o nome TOTAL
DIABATIC HEATING na unidade 71, em apenas um campo somado. Estes campos com
+14 na quarta coluna não entram na obtenção de mgaus, ngaus, mspec e nspec.
As unidades estão definidas no arquivo aunits (subdiretório model/datain). O número da
unidade da tabela availtable e da tabela desirtable corresponde ao número da linha no
arquivo aunits acrescido de 2.
Exemplo:
Unidade 70 significa K/sec e 71 K/day, obtidos das linhas 72 e 73, respectivamente, do
arquivo aunits.
2 - Cálculo do uso de disco das saídas do modelo e do pós-processamento:
Dados:
• mend - truncamento triangular do modelo
• nmax = (mend+1)*(mend+2) - número de coeficientes espectrais
• imax - número de pontos oeste-leste (longitudes)
• jmax - número de pontos sul-norte (latitudes)
• mmax = imax*jmax - número total de pontos gaussianos em uma camada
(veja item 3)
• nprev - número de previsões requeridas
As saídas do modelo e do pós-processamento são convertidas para IEEE-32 bits,
big_endian, e são arquivos seqüenciais (2 palavras de controle por registro).
2.1 - Saídas fixas do modelo (cabeçário, topografia, máscara terra-água e prognósticos :
cada saída):
Cabeçário: ifday, tod, idate(4), idatec(4)
ifday - (inteiro) número do dia, começando por 0
tod
- (real) tempo do dia (segundos)
= 0.0 todo início de dia do modelo
(independentemente do horário da condição inicial)
idate - (inteiro) data da condição inicial
idatec - (inteiro) data do momento da saída
1 - horário (horas inteiras truncadas)
2 - mês
3 - dia
4 - ano (4 dígitos)
Uso de Disco - 3
Modelo Global - 4
Topografia: (real - espectral - 1 nível : m)
Máscara terra-água (real - gaussiano - 1 nível : -1 terra, 1 mar)
Logaritmo natural da pressão a superfície (real - espectral - 1 nível : ln(Cb))
Divergência (real - espectral - kmax camadas : 1/s)
Vorticidade (real - espectral - kmax camadas : 1/s)
Umidade específica (real - espectral - kmax camadas : kg/kg)
Temperatura virtual (real - espectral - kmax camadas : K)
Rugosidade da superfície (real - gaussiano - 1 nível : m)
Temperatura da superfície (real - gaussiano - 1 nível : K): temperatura da primeira
camada de solo sobre terra e temperatura da superfície do mar (tsm) sobre mar
Temperatura do solo profundo (real - gaussiano - 1 nível : K)
Armazenamento no dossel (real - gaussiano - 1 nível : m)
Armazenamento na cobertura de solo (real - gaussiano - 1 nível : m)
Umidade da zona de superfície do solo (real - gaussiano - 1 nível : %)
Umidade da zona de raízes no solo (real - gaussiano - 1 nível : %)
Umidade da zona de drenagem do solo (real - gaussiano - 1 nível : %)
Tamanho das saídas fixas (condição inicial e inicializada):
•
•
•
•
•
•
•
•
•
•
•
•
Registro 1: (2+2*4+2)*4
Registro 2: (nmax+2)*4
Registro 3: (mmax+2)*4
Registro 4: (nmax+2)*4
Registro 5: (nmax+2)*kmax*4
Registro 6: (nmax+2)*kmax*4
Registro 7: (nmax+2)*kmax*4
Registro 8: (nmax+2)*kmax*4
Registro 10: (mmax+2)*4
Registro 11: (mmax+2)*4
Registro 9: (mmax+2)*4
Registro 12: (mmax+2)*4
Uso de Disco - 4
Modelo Global - 5
•
•
•
•
Registro 13: (mmax+2)*4
Registro 14: (mmax+2)*4
Registro 15: (mmax+2)*4
Registro 16: (mmax+2)*4
Total dos Prognósticos: (2+2*4+2)*4 + 2*(nmax+2)*4 + 4*(nmax+2)*kmax*4 +
9*(mmax+2)*4 = tpmdl
2.2 - Diagnósticos do modelo (cada saída):
Total Diagnósticos: nspec*(nmax+2)*4 + mspec*(nmax+2)*kmax*4 +
ngaus*(mmax+2)*4 + mgauss*(mmax+2)*kmax*4 = tdmdl
Total de cada arquivo de previsão de saída do modelo:
tpmdl + tdmdl = (2+2*4+2)*4 + (nspec+2)*(nmax+2)*4 + (mspec+4)*(nmax+2)*kmax*4
+ (ngaus+9)*(mmax+2)*4 + mgaus*(mmax+2)*kmax*4
Total do uso de disco das saídas do modelo – cold start:
tsmcprev = 2 * tpmdl + nprev*(tpmdl+tdmdl)
(condição inicial + condição inicializada + previsões)
Total do uso de disco das saídas do modelo – warm start:
tsmwprev = nprev*(tpmdl+tdmdl)
(previsões apenas)
2.3 - Pós-processamento (cada saída):
Dados
•
•
•
•
•
•
•
mposp - número de campos gaussianos prognósticos requeridos com nmand
níveis de pressão
nposp - número de campos gaussianos prognósticos requeridos de superfície ou
com 1 nível
mposd - número de campos gaussianos diagnósticos requeridos com nmand
níveis de pressão
nposd - número de campos gaussianos diagnósticos requeridos de superfície ou
com 1 nível
mpos = mposp + mposd - número total de campos gaussianos requeridos com
nmand níveis de pressão
npos = nposp + nposd - número total de campos gaussianos requeridos de
superfície ou com 1 nível de pressão
nmand - número de níveis de pressão requeridos no pós-processamento
Total do pós-processamento para a condição inicial ou inicializada:
tspcin = mposp*(mmax+2)*nmand*4 + nposp*(mmax+2)*4
Uso de Disco - 5
Modelo Global - 6
Total do pós-processamento para previsões:
tspprv = mpos*(mmax+2)*nmand*4 + npos*(mmax+2)*4
Total do uso de disco das saídas do pós-processamento cold start:
tspcprv = 2 * tspcin + nprev*tspprv
(condição inicial + condição inicializada + previsões)
Total do uso de disco das saídas do pós-processamento warm start:
tspwprv = nprev*tspprv
(previsões apenas)
3 – Número de total de pontos gaussianos mmax no truncamento triangular
3.1 - Grade gaussiana quadrática:
imax ≥ 3 * mend +1 ≤ 2K * 3L * 5M , K ≥ 1, L ≥ 0 e M ≥ 0 (FFT)
jmax ≥ (3 * mend + 1) / 2 ≥ 2*N, N = Int[(3*mend+1)/2] + 2*Mod[(3*mend+1)/2,2]
mmax = imax * jmax
3.2 - Grade gaussiana quadrática reduzida:
mendj - truncamento triangular do modelo para cada latitude
imaxj - número de longitudes em cada latitude, decrescendo para os pólos
imaxj ≥ 3 * mendj +1 ≤ 2K * 3L * 5M , K ≥ 1, L ≥ 0 e M ≥ 0 (FFT)
jmax ≥ (3 * mend + 1) / 2 ≥ 2*N, N = Int[(3*mend+1)/2] + 2*Mod[(3*mend+1)/2,2]
mmax = ∑j=1,jmax imaxj
3.3 - Grade gaussiana linear reduzida:
mendj - truncamento triangular do modelo para cada latitude
imaxj – número de longitudes em cada latitude, decrescendo para os pólos
imaxj ≥ 2 * mendj +1 ≤ 2K * 3L * 5M , K ≥ 1, L ≥ 0 e M ≥ 0 (FFT)
jmax ≥ (2 * mend + 1) / 2 ≥ 2*N, N = 2*(mend+1)
mmax = ∑j=1,jmax imaxj
Uso de Disco - 6
Modelo Global - 7
4 – Grade Reduzida
A grade reduzida segue a abordagem de Courtier e Naughton (1994), em que é
definida em função da capacidade de representação da projeção em harmônicos
esféricos, dentro de uma dada precisão. Este critério pode ser obtido a partir da avaliação
da condição de ortogonalidade das funções associadas de Legendre da forma descrita a
seguir. Definida uma tolerância ε (=10-12 no modelo do ECMWF, Hortal, 1998), um
número de onda zonal m passa a ser considerado um valor de corte em uma dada
latitude ϕ (com µ = sinϕ e µ C ≤ µ < 1 ) se:
µ
∫P
m
n
( µ ) Pnm′ ( µ )dµ ≤ ε
µC
para todo n e n ′ até o truncamento mend. A primeira latitude em que se pode desprezar
as contribuições do número de onda m é dada por ϕ m = arcsinµ m . A grade é
simetricamente definida no outro hemisfério. Assim, a cada latitude ϕ j fica associado um
número de onda mendj até o qual deve-se garantir uma boa resolução na malha
utilizando este procedimento de sua determinação. A partir dos valores de mendj são
definidas as grades reduzida e linear, conforme item 3. Na grade gaussiana quadrática, o
fator multiplicativo é 3 para evitar os efeitos de aliasing dos termos não lineares; enquanto
que para a grade linear o fator é 2, pois esta é somente utilizada quando se usa o
esquema semi-lagrangeano 3D para todas equações onde os termos não lineares mais
importantes (advecções) não são calculados explicitamente dentro do método espectral,
não necessitando, portanto, de pontos extras para evitar aliasing.
Referências:
Courtier, P., Naughton, M., 1994: A pole problem in the reduced Gaussian grid. Quart. J.
Roy. Meteor. Soc., 120: 1389-1407.
Hortal, M., 1998: Aspects of the numerics of the ECMWF model. In: Proceedings of a
Seminar on Recent Developments in Numerical Methods for Atmospheric Modeling.
ECWMF, Reading, UK, 7-11 September 1998, 127-143.
Uso de Disco - 7
Download

Modelo Global Fortran90 Operacional Atual (Janeiro de 2004)