Opened 14 years ago

Closed 14 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.

Change History (1)

comment:1 Changed 14 years ago by lguez

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.