Question toute conne ! [FORTRAN] - Programmation
Marsh Posté le 08-05-2001 à 22:51:44
Je te le traduit en C : 
for(k=1;k<=k2,k+=k3) 
{ 
  if(k==1) kkk=1; 
  else kkk=k1; 
  for(j=2;j<=m2;j++) 
    for(i=2;i<=l2;++i) 
    { 
      x[i][j][kkk]=0.25*(xc(i-1,j-1,k)+xc(i-1,j,k)+xc(i,j,k)+xc(i,j-1,k)) 
      y[i][j][kkk]=0.25*(yc(i-1,j-1,k)+yc(i-1,j,k)+yc(i,j,k)+yc(i,j-1,k)) 
      z[i][j][kkk]=0.25*(zc(i-1,j-1,k)+zc(i-1,j,k)+zc(i,j,k)+zc(i,j-1,k)) 
    } 
}
Marsh Posté le 08-05-2001 à 22:56:05
si mes souvenirs sont bons ca doit donner a peu pres ca en c: 
for (k=1;k<k2;k+=k3) 
{ 
  if(k==1) 
  { 
    kkk=1; 
  } 
  else 
  { 
    kkk=k1; 
  } 
 
  for (j=2;j<m2;j++) 
  { 
    for(i=2;i<l2;i++) 
    { 
      x[i][j][kkk]=0.25*(xc[i-1][j-1][k]+.... 
      y[i][j][kkk]=... 
      ... 
    } 
  } 
} 
 
La ou je ne suis pas sur c'est sur les bornes des for, je ne me rappele plus si la borne sup est atteint ie si par exemple i<l2 ou i<=l2
Marsh Posté le 08-05-2001 à 23:00:13
WPK-> Tu te fous de ma geule c'est le meme code que moi sauf que je suis a peu pres sur que la borne sup est atteinte
Marsh Posté le 08-05-2001 à 23:04:47
t'as ete plus rapide(j'ai vu ton post apres avoir posté), sorry, en plus, y'a une legere faute, 
xc(i-1,j,k) c'est des tableux donc xc[i-1][j][k]
Marsh Posté le 08-05-2001 à 23:06:09
Pas grave bien vu pour les tableaux... ca m'est passe sous le nez
Marsh Posté le 09-05-2001 à 09:11:05
Juste un detail, en FORTRAN les indices de tableaux commencent a 1 alors qu'en C ils commencent a 0... 
donc x(i,j,kkk) => x[i-1][j-1][kkk-1] 
de plus il manque les declarations qui ne sont pas toutes indispensables en FORTRAN : 
 
int i,j,k,k2,k3,kkk; 
x,y,z,xc,yc,zc doivent etre des reels mais en FORTRAN il doit au moins y avoir une clause DIMENSION pour definir leur taille.
Marsh Posté le 09-05-2001 à 10:42:57
Merci a tous. Vous venez de me rendre une fiere chandelle. 
Marsh Posté le 08-05-2001 à 19:06:41
Voila, j'ai jamais fait de fortran, est-ce que quelqu'un peut me traduire precisement ce passage ? Merci.
do 250 k=1,k2,k3
if(k.eq.1) then
kkk=1
else
kkk=k1
endif
do 250 j=2,m2
do 250 i=2,l2
x(i,j,kkk)=0.25*(xc(i-1,j-1,k)+xc(i-1,j,k)+xc(i,j,k)+xc(i,j-1,k))
y(i,j,kkk)=0.25*(yc(i-1,j-1,k)+yc(i-1,j,k)+yc(i,j,k)+yc(i,j-1,k))
z(i,j,kkk)=0.25*(zc(i-1,j-1,k)+zc(i-1,j,k)+zc(i,j,k)+zc(i,j-1,k))
250 continue