Opened 15 years ago
Closed 15 years ago
#25 closed defect (fixed)
Calculs faux de "startget" pour "vvent"
Reported by: | lguez | Owned by: | lguez |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | LMDZ | Keywords: | |
Cc: |
Description
Dans "etat0_netcdf", on a la déclaration :
real pls(iip1,jjp1,llm)
et l'appel :
CALL startget(varname, iip1, jjm, rlonv, rlatv, llm, pls, workvar, vvent, 0.0, jjp1, rlonu, rlatu, interbar )
Dans la procédure appelée, "startget_dyn", on a, pour cet appel précis :
iml = iip1 jml = jjm lml = llm
et la déclaration :
REAL, INTENT(in) :: pls(iml, jml, lml)
qui équivaut donc à :
REAL, INTENT(in) :: pls(iip1, jjm, llm)
Les profils des arguments "pls" effectif et muet ne correspondent donc pas. Les éléments des argument "pls" effectifs et muet sont associés en suivant l'ordre des éléments de tableau (le premier indice varie le plus vite, puis le second etc.). Donc, par exemple, on va avoir :
pls_muet(:, 1, 2) = pls_effectif(:, jjp1, 1)
Si, dans "startget_dyn", les trois dimensions de "pls" sont toujours interprétées comme longitude, latitude, niveau vertical alors on va utiliser comme valeurs au second niveau vertical et au pôle nord des valeurs qui correspondent en fait au premier niveau vertical et au pôle sud. Le décalage s'accentue au fur et à mesure qu'on progresse dans les éléments du tableau. On a par exemple ensuite :
pls_muet(:, 1, 3) = pls_effectif(:, jjp1-1, 2)
On utilise comme valeurs au troisième niveau vertical et au pôle nord des valeurs qui correspondent en fait au second niveau vertical et à la dernière latitude avant le pôle sud.