【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.19818

レイリ−・テイラ−不安定性
投稿者---ヤムチャ(2005/02/10 15:14:05)


double dt=0.01, kap;
int nmax=30;
int nskip=nmax/10 ;
の時は普通に動くのですが、
double dt=0.01, kap;
int nmax=400;
int nskip=nmax/10 ;
とするとエラーが出ます。原因が分かりません。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:レイリ−・テイラ−不安定性 19819 nop 2005/02/10 15:21:36
<子記事> Re:レイリ−・テイラ−不安定性 20000 もぐりん 2005/02/16 14:25:54


No.19819

Re:レイリ−・テイラ−不安定性
投稿者---nop(2005/02/10 15:21:36)


>とするとエラーが出ます。原因が分かりません。

エラー内容と、エラーが出たソースすらないため回答不能です。


この投稿にコメントする

削除パスワード

No.19822

Re:レイリ−・テイラ−不安定性
投稿者---ヤムチャ(2005/02/10 15:30:56)


早速ありがとうございます。
>エラー内容と、エラーが出たソースすらないため回答不能です。
c言語です。ラックス・ウエンドルフ法を用いています。
エラー内容は途中から計算結果がでなくなります。
よろしくお願いします。


この投稿にコメントする

削除パスワード

No.19823

Re:レイリ−・テイラ−不安定性
投稿者---もぐりん(2005/02/10 15:35:40)


>早速ありがとうございます。
>>エラー内容と、エラーが出たソースすらないため回答不能です。
>c言語です。ラックス・ウエンドルフ法を用いています。
>エラー内容は途中から計算結果がでなくなります。
>よろしくお願いします。

だから、肝心のソースは?
エラー内容は、画面に表示された内容を全て書いてください。
エラーが出るのは実行してからなんですか?
それともコンパイルした時?

【掲示板ご利用上の注意】
※環境(OSとコンパイラ)や症状は具体的に詳しく!

最低限として注意書きは読もうよ!



この投稿にコメントする

削除パスワード

No.19824

Re:レイリ−・テイラ−不安定性
投稿者---トオリー・スガリー(2005/02/10 15:40:34)


利用上の注意はお読みになられましたでしょうか。
それと、エラーが出たソースを記載しないと回答は不可能である、
と指摘されています。


この投稿にコメントする

削除パスワード

No.19826

Re:レイリ−・テイラ−不安定性
投稿者---ヤムチャ(2005/02/10 16:03:11)


すいません。
gccでコンパイルできるのですが、
./a.outで出力すると途中からuu[0][i][j]=NaNになります。
<pre>#include  &lt;stdio.h&gt;
#include &lt;math.h&gt;
#define  imax  20
#define  jmax  20
#define qmax 9
 
double  g=1.0;

void calw(double uu[qmax][imax+1][jmax+1],double ww[qmax][imax+1][jmax+1][2])
{
   int  i,j;
  double p,b2;  

for(j=0;j&lt;=jmax;j++) 
for(i=0;i&lt;=imax;i++){
 
  b2=(uu[6][i][j]*uu[6][i][j]+uu[7][i][j]*uu[7][i][j]+uu[8][i][j]*uu[8][i][j])/2.0;
  p=(uu[4][i][j] -((uu[1][i][j]*uu[1][i][j]+uu[2][i][j]*uu[2][i][j]
             +uu[3][i][j]*uu[3][i][j])/uu[0][i][j])/2.0-b2)*(5.0/3.0-1.0);

   ww[0][i][j][0]=uu[1][i][j];
   ww[1][i][j][0]=uu[1][i][j]*uu[1][i][j]/uu[0][i][j]+p+b2-uu[6][i][j]*uu[6][i][j];
   ww[2][i][j][0]=uu[1][i][j]*uu[2][i][j]/uu[0][i][j]-uu[6][i][j]*uu[7][i][j];
   ww[3][i][j][0]=uu[1][i][j]*uu[3][i][j]/uu[0][i][j]-uu[6][i][j]*uu[8][i][j];
   ww[4][i][j][0]=(uu[4][i][j]+p+b2)*(uu[1][i][j]/uu[0][i][j])-(uu[6][i][j]*uu[1][i][j]/uu[0][i][j]
                                +uu[7][i][j]*uu[2][i][j]/uu[0][i][j]+uu[8][i][j]*uu[3][i][j]/uu[0][i][j])*uu[6][i][j];
   ww[5][i][j][0]=uu[5][i][j]*uu[1][i][j]/uu[0][i][j];
   ww[6][i][j][0]=0.0;
   ww[7][i][j][0]=-uu[6][i][j]*uu[2][i][j]/uu[0][i][j]+uu[7][i][j]*uu[1][i][j]/uu[0][i][j];
   ww[8][i][j][0]=-uu[6][i][j]*uu[3][i][j]/uu[0][i][j]+uu[8][i][j]*uu[1][i][j]/uu[0][i][j];

   ww[0][i][j][1]=uu[2][i][j];
   ww[1][i][j][1]=uu[1][i][j]*uu[2][i][j]/uu[0][i][j]-uu[6][i][j]*uu[7][i][j];
   ww[2][i][j][1]=uu[2][i][j]*uu[2][i][j]/uu[0][i][j]+p+b2-uu[7][i][j]*uu[7][i][j];
   ww[3][i][j][1]=uu[2][i][j]*uu[3][i][j]/uu[0][i][j]-uu[7][i][j]*uu[8][i][j];
   ww[4][i][j][1]=(uu[4][i][j]+p+b2)*(uu[2][i][j]/uu[0][i][j])-(uu[6][i][j]*uu[1][i][j]/uu[0][i][j]
                                +uu[7][i][j]*uu[2][i][j]/uu[0][i][j]+uu[8][i][j]*uu[3][i][j]/uu[0][i][j])*uu[7][i][j];
   ww[5][i][j][1]=uu[5][i][j]*uu[2][i][j]/uu[0][i][j];
   ww[6][i][j][1]=-uu[7][i][j]*uu[1][i][j]/uu[0][i][j]+uu[6][i][j]*uu[2][i][j]/uu[0][i][j];
   ww[7][i][j][1]=0.0;
   ww[8][i][j][1]=-uu[7][i][j]*uu[3][i][j]/uu[0][i][j]+uu[8][i][j]*uu[2][i][j]/uu[0][i][j];
}
}

main(){
 double  x[imax+1]  , y[jmax+1] ,  uu[qmax][imax+1][jmax+1] , un[qmax][imax+1][jmax+1],ua[qmax][imax+1][jmax+1],ub[qmax][imax+1][jmax+1],dx,dy;
double dt=0.01, kap;
double ww[qmax][imax+1][jmax+1][2],uh[qmax][imax+1][jmax+1],u0[qmax], u1[qmax];
 int  i , j ,n,q;
 int  nmax=400;
 int nskip=nmax/10 ;

dx = (double)  1.0/imax ;
dy = (double)  1.0/jmax ;


 for(i=0;i&lt;=imax;i++)
x[i]=(double) dx*i;

for(j=0;j&lt;=jmax;j++)
 y[j]=(double) dy*j;
 

 for(i=0;i&lt;=imax;i++)
 for(j=0;j&lt;=jmax;j++)
{     
   
      uu[1][i][j]=0.0;
      uu[2][i][j] =0.0; 
      uu[3][i][j] =0.0; 
      uu[5][i][j]=1.0;
      uu[6][i][j]=0.0;
       uu[8][i][j] =0.0;
      uu[7][i][j] =0.0;

    if(y[j] &gt;=0.5)   
   {   uu[0][i][j] =1.0*exp(-g*(y[j]-0.5));
       uu[4][i][j] =1.5*1.0*exp(-g*(y[j]-0.5));
}
else
{
     uu[0][i][j] =0.5*1.0*exp(-g*(y[j]-0.5));
     uu[4][i][j] =1.5*0.5*1.0*exp(-g*(y[j]-0.5))+0.5;
  }
     
}
for(i=0;i&lt;=imax;i++)
 for(j=1;j&lt;=jmax-1;j++)
   {
    ua[0][i][j]=(uu[0][i][j+1]+uu[0][i][j-1])/2.0;
    ua[4][i][j]=(uu[4][i][j+1]+uu[4][i][j-1])/2.0;
   }

for(i=0;i&lt;=imax;i++)
 for(j=1;j&lt;=jmax-1;j++)
   {
    ub[0][i][j]=(ua[0][i][j+1]+ua[0][i][j-1])/2.0;
    ub[4][i][j]=(ua[4][i][j+1]+ua[4][i][j-1])/2.0;
   }

for(i=0;i&lt;=imax;i++)
for(j=1;j&lt;=jmax-1;j++)
{
 uu[0][i][j]=ub[0][i][j];
 uu[4][i][j]=ub[4][i][j];
}



for(i=0;i&lt;=imax;i++)
for(j=0;j&lt;=jmax;j++)
 printf(&quot;%f ,  %f,  %f \n&quot;  ,x[i],y[j],uu[0][i][j]);

      u0[0] =0.5*1.0*exp((-g)*(-0.5));
      u0[1] =0.0;
      u0[2]=0.0;
      u0[3] =0.0; 
      u0[4]=1.5*0.5*1.0*exp((-g)*(-0.5))+0.5; 
      u0[5]=1.0;
      u0[6]=0.0;
      u0[8] =0.0;
      u0[7] =0.0;

      u1[0] =1.0*exp((-g)*0.5);
      u1[1] =0.0;
      u1[2]=0.0;
      u1[3]=0.0; 
      u1[4] =1.5*1.0*exp((-g)*0.5);
      u1[5]=1.0;
      u1[6]=0.0;
      u1[8] =0.0;
      u1[7] =0.0;
  
kap = dt/dx;

  for(n=1;n&lt;=nmax;n++){

   calw(uu,ww);

    for(i=0;i&lt;imax;i++)    
     for(j=0;j&lt;=jmax;j++)
     for(q=0;q&lt;qmax;q++)
      uh[q][i][j]=uu[q][i][j]-kap*(ww[q][i+1][j][0]-ww[q][i][j][0])-kap*(ww[q][i][j+1][1]-ww[q][i][j][1]);

   for(i=0;i&lt;=imax;i++)    
   for(j=0;j&lt;=jmax;j++)
   for(q=0;q&lt;qmax;q++)
{
  uh[q][imax][j] = uh[q][0][j];
   uh[q][i][jmax] = u1[q];
}
  
 calw(uh,ww);

    for(i=0;i&lt;=imax;i++)
    for(j=0;j&lt;=jmax;j++)
     for(q=0;q&lt;qmax;q++)
      un[q][i][j] = 0.5*(uu[q][i][j] + uh[q][i][j]
                             -kap*(ww[q][i][j][0] - ww[q][i-1][j][0])-kap*(ww[q][i][j][1] - ww[q][i][j-1][1]));
   
for(i=0;i&lt;=imax;i++)    
   for(j=0;j&lt;=jmax;j++)   
un[2][i][j]=uu[2][i][j] - uu[0][i][j] *g*dt;

 for(i=0;i&lt;=imax;i++)    
   for(j=0;j&lt;=jmax;j++)                          
   for(q=0;q&lt;qmax;q++) 
  {
    un[q][0][j] = un[q][imax][j];
      un[q][i][0] = u0[q];
   }

for(i=0;i&lt;=imax;i++)
for(j=0;j&lt;=jmax;j++)
 for(q=0;q&lt;qmax;q++)
 uu[q][i][j]=un[q][i][j];


 if(n%nskip==0)
for(i=0;i&lt;=imax;i++)
for(j=0;j&lt;=jmax;j++)
       printf(&quot;%f ,  %f,  %f  \n&quot;  ,x[i],y[j],uu[0][i][j]);
  }
}

</pre>



この投稿にコメントする

削除パスワード

No.19827

Re:レイリ−・テイラ−不安定性
投稿者---nop(2005/02/10 16:09:47)


>./a.outで出力すると途中からuu[0][i][j]=NaNになります。

まず、「NaNとは何か?」から調べないか?
NaN


# もう少し、自分で調査してデバッグしましょう。


この投稿にコメントする

削除パスワード

No.19828

Re:レイリ−・テイラ−不安定性
投稿者---ヤムチャ(2005/02/10 16:13:08)


色々試したのですが、分からなかったので聞いた次第です。

色々すいません。



この投稿にコメントする

削除パスワード

No.19830

Re:レイリ−・テイラ−不安定性
投稿者---もぐりん(2005/02/10 16:53:23)


>色々試したのですが、分からなかったので聞いた次第です。
>
>色々すいません。

まずは紙の上で計算してみては?
その結果とプログラムの出力結果を見比べてどこがおかしいかを調べましょう。
どこかでおかしな計算をしてませんか?



この投稿にコメントする

削除パスワード

No.19837

Re:レイリ−・テイラ−不安定性
投稿者---通りすがり(2005/02/11 02:49:13)


>色々試したのですが、分からなかったので聞いた次第です。
>
>色々すいません。

どう色々試したのですか?


この投稿にコメントする

削除パスワード

No.19833

Re:レイリ−・テイラ−不安定性
投稿者---南野骨茶(2005/02/10 21:14:36)


>gccでコンパイルできるのですが、
>./a.outで出力すると途中からuu[0][i][j]=NaNになります。

とりあえず、forループの"{"と"}"を変に省略せずに
ちゃんと書いてみましょう。
私のところでは、そうしただけで途中で落ちなくなりました。

ただ、以下に示す問題点により、実行結果が正しいかどうかは
定かでありません。いずれもmain関数の中です。

1.jのループの上限はjmaxでよいか?(等号は必要か?)
等号を含んでいることで、配列wwの添字[j+1]が定義範囲を超える場合がある

    for(i=0;i<imax;i++)    
     for(j=0;j<=jmax;j++)
     for(q=0;q<qmax;q++)
      uh[q][i][j]=uu[q][i][j]-kap*(ww[q][i+1][j][0]-ww[q][i][j][0])-kap*(ww[q][i][j+1][1]-ww[q][i][j][1]);


2.iとjのループの下限は0でよいか?
配列wwの添字[i-1]と[j-1]が負になる場合がある

    for(i=0;i<=imax;i++)
    for(j=0;j<=jmax;j++)
     for(q=0;q<qmax;q++)
      un[q][i][j] = 0.5*(uu[q][i][j] + uh[q][i][j]
                             -kap*(ww[q][i][j][0] - ww[q][i-1][j][0])-kap*(ww[q][i][j][1] - ww[q][i][j-1][1]));



この投稿にコメントする

削除パスワード

No.19961

Re:南野骨茶さん
投稿者---ヤムチャ(2005/02/15 13:14:26)


ありがとうございます。
返答が遅くなってしまい大変申し訳ありません。

>とりあえず、forループの"{"と"}"を変に省略せずに
>ちゃんと書いてみましょう。

下記のプログラムでよろしいのでしょうか?

#include  <stdio.h>
#include <math.h>
#define  imax  20
#define  jmax  20
#define qmax 9
 
double  g=1.0;

void calw(double uu[qmax][imax+1][jmax+1],double ww[qmax][imax+1][jmax+1][2])
{
   int  i,j;
  double p,b2;  

for(j=0;j<=jmax;j++) {
for(i=0;i<=imax;i++){
 
  b2=(uu[6][i][j]*uu[6][i][j]+uu[7][i][j]*uu[7][i][j]+uu[8][i][j]*uu[8][i][j])/2.0;
  p=(uu[4][i][j] -((uu[1][i][j]*uu[1][i][j]+uu[2][i][j]*uu[2][i][j]
             +uu[3][i][j]*uu[3][i][j])/uu[0][i][j])/2.0-b2)*(5.0/3.0-1.0);

   ww[0][i][j][0]=uu[1][i][j];
   ww[1][i][j][0]=uu[1][i][j]*uu[1][i][j]/uu[0][i][j]+p+b2-uu[6][i][j]*uu[6][i][j];
   ww[2][i][j][0]=uu[1][i][j]*uu[2][i][j]/uu[0][i][j]-uu[6][i][j]*uu[7][i][j];
   ww[3][i][j][0]=uu[1][i][j]*uu[3][i][j]/uu[0][i][j]-uu[6][i][j]*uu[8][i][j];
   ww[4][i][j][0]=(uu[4][i][j]+p+b2)*(uu[1][i][j]/uu[0][i][j])-(uu[6][i][j]*uu[1][i][j]/uu[0][i][j]
                                +uu[7][i][j]*uu[2][i][j]/uu[0][i][j]+uu[8][i][j]*uu[3][i][j]/uu[0][i][j])*uu[6][i][j];
   ww[5][i][j][0]=uu[5][i][j]*uu[1][i][j]/uu[0][i][j];
   ww[6][i][j][0]=0.0;
   ww[7][i][j][0]=-uu[6][i][j]*uu[2][i][j]/uu[0][i][j]+uu[7][i][j]*uu[1][i][j]/uu[0][i][j];
   ww[8][i][j][0]=-uu[6][i][j]*uu[3][i][j]/uu[0][i][j]+uu[8][i][j]*uu[1][i][j]/uu[0][i][j];

   ww[0][i][j][1]=uu[2][i][j];
   ww[1][i][j][1]=uu[1][i][j]*uu[2][i][j]/uu[0][i][j]-uu[6][i][j]*uu[7][i][j];
   ww[2][i][j][1]=uu[2][i][j]*uu[2][i][j]/uu[0][i][j]+p+b2-uu[7][i][j]*uu[7][i][j];
   ww[3][i][j][1]=uu[2][i][j]*uu[3][i][j]/uu[0][i][j]-uu[7][i][j]*uu[8][i][j];
   ww[4][i][j][1]=(uu[4][i][j]+p+b2)*(uu[2][i][j]/uu[0][i][j])-(uu[6][i][j]*uu[1][i][j]/uu[0][i][j]
                                +uu[7][i][j]*uu[2][i][j]/uu[0][i][j]+uu[8][i][j]*uu[3][i][j]/uu[0][i][j])*uu[7][i][j];
   ww[5][i][j][1]=uu[5][i][j]*uu[2][i][j]/uu[0][i][j];
   ww[6][i][j][1]=-uu[7][i][j]*uu[1][i][j]/uu[0][i][j]+uu[6][i][j]*uu[2][i][j]/uu[0][i][j];
   ww[7][i][j][1]=0.0;
   ww[8][i][j][1]=-uu[7][i][j]*uu[3][i][j]/uu[0][i][j]+uu[8][i][j]*uu[2][i][j]/uu[0][i][j];
}
}
}
main(){
 double  x[imax+1]  , y[jmax+1] ,  uu[qmax][imax+1][jmax+1] , un[qmax][imax+1][jmax+1],ua[qmax][imax+1][jmax+1],ub[qmax][imax+1][jmax+1],dx,dy;
double dt=0.01, kap;
double ww[qmax][imax+1][jmax+1][2],uh[qmax][imax+1][jmax+1],u0[qmax], u1[qmax];
 int  i , j ,n,q;
 int  nmax=400;
 int nskip=nmax/10 ;

dx = (double)  1.0/imax ;
dy = (double)  1.0/jmax ;


 for(i=0;i<=imax;i++)
{
x[i]=(double) dx*i;
}
for(j=0;j<=jmax;j++)
 {
y[j]=(double) dy*j;
} 

 for(i=0;i<=imax;i++)
{
 for(j=0;j<=jmax;j++)
{     
   
      uu[1][i][j]=0.0;
      uu[2][i][j] =0.0; 
      uu[3][i][j] =0.0; 
      uu[5][i][j]=1.0;
      uu[6][i][j]=0.0;
       uu[8][i][j] =0.0;
      uu[7][i][j] =0.0;

    if(y[j] >=0.5)   
   {  
       uu[0][i][j] =1.0*exp(-g*(y[j]-0.5));
       uu[4][i][j] =1.5*1.0*exp(-g*(y[j]-0.5));
}
else
{
     uu[0][i][j] =0.5*1.0*exp(-g*(y[j]-0.5));
     uu[4][i][j] =1.5*0.5*1.0*exp(-g*(y[j]-0.5))+0.5;
  }
    } 
}
for(i=0;i<=imax;i++)
{
 for(j=1;j<=jmax-1;j++)
   {
    ua[0][i][j]=(uu[0][i][j+1]+uu[0][i][j-1])/2.0;
    ua[4][i][j]=(uu[4][i][j+1]+uu[4][i][j-1])/2.0;
   }
}
for(i=0;i<=imax;i++)
{
 for(j=1;j<=jmax-1;j++)
   {
    ub[0][i][j]=(ua[0][i][j+1]+ua[0][i][j-1])/2.0;
    ub[4][i][j]=(ua[4][i][j+1]+ua[4][i][j-1])/2.0;
   }
}
for(i=0;i<=imax;i++)
{
for(j=1;j<=jmax-1;j++)
{
 uu[0][i][j]=ub[0][i][j];
 uu[4][i][j]=ub[4][i][j];
}
}


for(i=0;i<=imax;i++)
{
for(j=0;j<=jmax;j++)
{
 printf("%f ,  %f,  %f \n"  ,x[i],y[j],uu[0][i][j]);
}
}
      u0[0] =0.5*1.0*exp((-g)*(-0.5));
      u0[1] =0.0;
      u0[2]=0.0;
      u0[3] =0.0; 
      u0[4]=1.5*0.5*1.0*exp((-g)*(-0.5))+0.5; 
      u0[5]=1.0;
      u0[6]=0.0;
      u0[8] =0.0;
      u0[7] =0.0;

      u1[0] =1.0*exp((-g)*0.5);
      u1[1] =0.0;
      u1[2]=0.0;
      u1[3]=0.0; 
      u1[4] =1.5*1.0*exp((-g)*0.5);
      u1[5]=1.0;
      u1[6]=0.0;
      u1[8] =0.0;
      u1[7] =0.0;
  
kap = dt/dx;

  for(n=1;n<=nmax;n++)
{

   calw(uu,ww);

    for(i=0;i<imax;i++)
  {  
     for(j=0;j<=jmax;j++)
{
     for(q=0;q<qmax;q++)
{
      uh[q][i][j]=uu[q][i][j]-kap*(ww[q][i+1][j][0]-ww[q][i][j][0])-kap*(ww[q][i][j+1][1]-ww[q][i][j][1]);
}
}
}
   for(i=0;i<=imax;i++)
{    
   for(j=0;j<=jmax;j++)
{
   for(q=0;q<qmax;q++)
{
  uh[q][imax][j] = uh[q][0][j];
   uh[q][i][jmax] = u1[q];
}
 }
}
 calw(uh,ww);

    for(i=0;i<=imax;i++)
{
    for(j=0;j<=jmax;j++)
{
     for(q=0;q<qmax;q++)
{
      un[q][i][j] = 0.5*(uu[q][i][j] + uh[q][i][j]
                             -kap*(ww[q][i][j][0] - ww[q][i-1][j][0])-kap*(ww[q][i][j][1] - ww[q][i][j-1][1]));
   }
}
}
for(i=0;i<=imax;i++)
  {  
   for(j=0;j<=jmax;j++)
 {  
un[2][i][j]=uu[2][i][j] - uu[0][i][j] *g*dt;
}
}
 for(i=0;i<=imax;i++)
 {   
   for(j=0;j<=jmax;j++)
{                          
   for(q=0;q<qmax;q++) 
  {
    un[q][0][j] = un[q][imax][j];
      un[q][i][0] = u0[q];
   }
}
}
for(i=0;i<=imax;i++)
{
for(j=0;j<=jmax;j++)
{
 for(q=0;q<qmax;q++)
{
 uu[q][i][j]=un[q][i][j];
}
}
}

 if(n%nskip==0)
for(i=0;i<=imax;i++)
{
for(j=0;j<=jmax;j++)
{
       printf("%f ,  %f,  %f  \n"  ,x[i],y[j],uu[0][i][j]);
  }
}
}
}

このプログラムでもやはりコンパイルはできるものの
結果の出力はエラーでした。

もしよければまた御指導のほういただけないでしょうか?


この投稿にコメントする

削除パスワード

No.19962

Re:南野骨茶さん
投稿者---nop(2005/02/15 13:41:27)


>下記のプログラムでよろしいのでしょうか?

よくないから

>このプログラムでもやはりコンパイルはできるものの
>結果の出力はエラーでした。

となるんでしょ?
それより、何故自分でデバッグしないのでしょうか。
デバッグしていけば、どこであなたの考えと違う結果になるか、
すぐにわかるはずです。


この投稿にコメントする

削除パスワード

No.19968

Re:南野骨茶さん
投稿者---Craft(2005/02/15 14:44:08)


>このプログラムでもやはりコンパイルはできるものの
>結果の出力はエラーでした。

細かいところは全然みてませんが、n=88 のときの
calw(uh,ww);の中でアクセス違反がでてます。
配列の要素を超えるような処理がみあたらないので、おそらく0除算しているのではないかと思います。

地道にデバッグするしかないのでは?


この投稿にコメントする

削除パスワード

No.19963

Re:南野骨茶さん
投稿者---ヤムチャ(2005/02/15 13:55:33)


ありがとうございます。
返答が遅くなってしまい大変申し訳ありません。

>とりあえず、forループの"{"と"}"を変に省略せずに
>ちゃんと書いてみましょう。

下記のプログラムでよろしいのでしょうか?

#include  <stdio.h>
#include <math.h>
#define  imax  20
#define  jmax  20
#define qmax 9
 
double  g=1.0;

void calw(double uu[qmax][imax+1][jmax+1],double ww[qmax][imax+1][jmax+1][2])
{
   int  i,j;
  double p,b2;  

for(j=0;j<=jmax;j++) {
for(i=0;i<=imax;i++){
 
  b2=(uu[6][i][j]*uu[6][i][j]+uu[7][i][j]*uu[7][i][j]+uu[8][i][j]*uu[8][i][j])/2.0;
  p=(uu[4][i][j] -((uu[1][i][j]*uu[1][i][j]+uu[2][i][j]*uu[2][i][j]
             +uu[3][i][j]*uu[3][i][j])/uu[0][i][j])/2.0-b2)*(5.0/3.0-1.0);

   ww[0][i][j][0]=uu[1][i][j];
   ww[1][i][j][0]=uu[1][i][j]*uu[1][i][j]/uu[0][i][j]+p+b2-uu[6][i][j]*uu[6][i][j];
   ww[2][i][j][0]=uu[1][i][j]*uu[2][i][j]/uu[0][i][j]-uu[6][i][j]*uu[7][i][j];
   ww[3][i][j][0]=uu[1][i][j]*uu[3][i][j]/uu[0][i][j]-uu[6][i][j]*uu[8][i][j];
   ww[4][i][j][0]=(uu[4][i][j]+p+b2)*(uu[1][i][j]/uu[0][i][j])-(uu[6][i][j]*uu[1][i][j]/uu[0][i][j]
                                +uu[7][i][j]*uu[2][i][j]/uu[0][i][j]+uu[8][i][j]*uu[3][i][j]/uu[0][i][j])*uu[6][i][j];
   ww[5][i][j][0]=uu[5][i][j]*uu[1][i][j]/uu[0][i][j];
   ww[6][i][j][0]=0.0;
   ww[7][i][j][0]=-uu[6][i][j]*uu[2][i][j]/uu[0][i][j]+uu[7][i][j]*uu[1][i][j]/uu[0][i][j];
   ww[8][i][j][0]=-uu[6][i][j]*uu[3][i][j]/uu[0][i][j]+uu[8][i][j]*uu[1][i][j]/uu[0][i][j];

   ww[0][i][j][1]=uu[2][i][j];
   ww[1][i][j][1]=uu[1][i][j]*uu[2][i][j]/uu[0][i][j]-uu[6][i][j]*uu[7][i][j];
   ww[2][i][j][1]=uu[2][i][j]*uu[2][i][j]/uu[0][i][j]+p+b2-uu[7][i][j]*uu[7][i][j];
   ww[3][i][j][1]=uu[2][i][j]*uu[3][i][j]/uu[0][i][j]-uu[7][i][j]*uu[8][i][j];
   ww[4][i][j][1]=(uu[4][i][j]+p+b2)*(uu[2][i][j]/uu[0][i][j])-(uu[6][i][j]*uu[1][i][j]/uu[0][i][j]
                                +uu[7][i][j]*uu[2][i][j]/uu[0][i][j]+uu[8][i][j]*uu[3][i][j]/uu[0][i][j])*uu[7][i][j];
   ww[5][i][j][1]=uu[5][i][j]*uu[2][i][j]/uu[0][i][j];
   ww[6][i][j][1]=-uu[7][i][j]*uu[1][i][j]/uu[0][i][j]+uu[6][i][j]*uu[2][i][j]/uu[0][i][j];
   ww[7][i][j][1]=0.0;
   ww[8][i][j][1]=-uu[7][i][j]*uu[3][i][j]/uu[0][i][j]+uu[8][i][j]*uu[2][i][j]/uu[0][i][j];
}
}
}
main(){
 double  x[imax+1]  , y[jmax+1] ,  uu[qmax][imax+1][jmax+1] , un[qmax][imax+1][jmax+1],ua[qmax][imax+1][jmax+1],ub[qmax][imax+1][jmax+1],dx,dy;
double dt=0.01, kap;
double ww[qmax][imax+1][jmax+1][2],uh[qmax][imax+1][jmax+1],u0[qmax], u1[qmax];
 int  i , j ,n,q;
 int  nmax=400;
 int nskip=nmax/10 ;

dx = (double)  1.0/imax ;
dy = (double)  1.0/jmax ;


 for(i=0;i<=imax;i++)
{
x[i]=(double) dx*i;
}
for(j=0;j<=jmax;j++)
 {
y[j]=(double) dy*j;
} 

 for(i=0;i<=imax;i++)
{
 for(j=0;j<=jmax;j++)
{     
   
      uu[1][i][j]=0.0;
      uu[2][i][j] =0.0; 
      uu[3][i][j] =0.0; 
      uu[5][i][j]=1.0;
      uu[6][i][j]=0.0;
       uu[8][i][j] =0.0;
      uu[7][i][j] =0.0;

    if(y[j] >=0.5)   
   {  
       uu[0][i][j] =1.0*exp(-g*(y[j]-0.5));
       uu[4][i][j] =1.5*1.0*exp(-g*(y[j]-0.5));
}
else
{
     uu[0][i][j] =0.5*1.0*exp(-g*(y[j]-0.5));
     uu[4][i][j] =1.5*0.5*1.0*exp(-g*(y[j]-0.5))+0.5;
  }
    } 
}
for(i=0;i<=imax;i++)
{
 for(j=1;j<=jmax-1;j++)
   {
    ua[0][i][j]=(uu[0][i][j+1]+uu[0][i][j-1])/2.0;
    ua[4][i][j]=(uu[4][i][j+1]+uu[4][i][j-1])/2.0;
   }
}
for(i=0;i<=imax;i++)
{
 for(j=1;j<=jmax-1;j++)
   {
    ub[0][i][j]=(ua[0][i][j+1]+ua[0][i][j-1])/2.0;
    ub[4][i][j]=(ua[4][i][j+1]+ua[4][i][j-1])/2.0;
   }
}
for(i=0;i<=imax;i++)
{
for(j=1;j<=jmax-1;j++)
{
 uu[0][i][j]=ub[0][i][j];
 uu[4][i][j]=ub[4][i][j];
}
}


for(i=0;i<=imax;i++)
{
for(j=0;j<=jmax;j++)
{
 printf("%f ,  %f,  %f \n"  ,x[i],y[j],uu[0][i][j]);
}
}
      u0[0] =0.5*1.0*exp((-g)*(-0.5));
      u0[1] =0.0;
      u0[2]=0.0;
      u0[3] =0.0; 
      u0[4]=1.5*0.5*1.0*exp((-g)*(-0.5))+0.5; 
      u0[5]=1.0;
      u0[6]=0.0;
      u0[8] =0.0;
      u0[7] =0.0;

      u1[0] =1.0*exp((-g)*0.5);
      u1[1] =0.0;
      u1[2]=0.0;
      u1[3]=0.0; 
      u1[4] =1.5*1.0*exp((-g)*0.5);
      u1[5]=1.0;
      u1[6]=0.0;
      u1[8] =0.0;
      u1[7] =0.0;
  
kap = dt/dx;

  for(n=1;n<=nmax;n++)
{

   calw(uu,ww);

    for(i=0;i<imax;i++)
  {  
     for(j=0;j<=jmax;j++)
{
     for(q=0;q<qmax;q++)
{
      uh[q][i][j]=uu[q][i][j]-kap*(ww[q][i+1][j][0]-ww[q][i][j][0])-kap*(ww[q][i][j+1][1]-ww[q][i][j][1]);
}
}
}
   for(i=0;i<=imax;i++)
{    
   for(j=0;j<=jmax;j++)
{
   for(q=0;q<qmax;q++)
{
  uh[q][imax][j] = uh[q][0][j];
   uh[q][i][jmax] = u1[q];
}
 }
}
 calw(uh,ww);

    for(i=0;i<=imax;i++)
{
    for(j=0;j<=jmax;j++)
{
     for(q=0;q<qmax;q++)
{
      un[q][i][j] = 0.5*(uu[q][i][j] + uh[q][i][j]
                             -kap*(ww[q][i][j][0] - ww[q][i-1][j][0])-kap*(ww[q][i][j][1] - ww[q][i][j-1][1]));
   }
}
}
for(i=0;i<=imax;i++)
  {  
   for(j=0;j<=jmax;j++)
 {  
un[2][i][j]=uu[2][i][j] - uu[0][i][j] *g*dt;
}
}
 for(i=0;i<=imax;i++)
 {   
   for(j=0;j<=jmax;j++)
{                          
   for(q=0;q<qmax;q++) 
  {
    un[q][0][j] = un[q][imax][j];
      un[q][i][0] = u0[q];
   }
}
}
for(i=0;i<=imax;i++)
{
for(j=0;j<=jmax;j++)
{
 for(q=0;q<qmax;q++)
{
 uu[q][i][j]=un[q][i][j];
}
}
}

 if(n%nskip==0)
for(i=0;i<=imax;i++)
{
for(j=0;j<=jmax;j++)
{
       printf("%f ,  %f,  %f  \n"  ,x[i],y[j],uu[0][i][j]);
  }
}
}
}

このプログラムでもやはりコンパイルはできるものの
結果の出力はエラーでした。

もしよければまた御指導のほういただけないでしょうか?


この投稿にコメントする

削除パスワード

No.19965

Re:南野骨茶さん
投稿者---あかま(2005/02/15 14:42:41)


インデントの深さがめちゃくちゃです。
きちんと整理すると見やすくなります。

ループで回している処理が多いと、パッと見でなにをしているのかわかりにくくなります。
同じ処理などを関数化するとかなりさっぱりすると思います。
また、一つしかない処理でも纏まった部分に名前をつけることになるので見やすくなります。

このままだとバグを取るのに一苦労すると思いますよ。



この投稿にコメントする

削除パスワード

No.19979

Re:南野骨茶さん
投稿者---南野骨茶(2005/02/15 17:38:37)


>このプログラムでもやはりコンパイルはできるものの
>結果の出力はエラーでした。
>
>もしよければまた御指導のほういただけないでしょうか?

以下の理由により差し控えさせてください。
1)インデントがめちゃくちゃで、ソースを読む気になれません。
2)適切なコメントが入っていないため、ソースを読む気になれません。
3)どんなエラーかを具体的に教えていただけないため、回答する気になれません。


この投稿にコメントする

削除パスワード

No.19980

Re:南野骨茶さん
投稿者---Craft(2005/02/15 18:40:10)


整えてみました。長すぎてプロトつけたら書き込めない。
#include  <stdio.h>
#include  <math.h>
#define   IMAX  20
#define   JMAX  20
#define   QMAX  9
 
double  g=1.0;

void calw(double uu[QMAX][IMAX+1][JMAX+1],double ww[QMAX][IMAX+1][JMAX+1][2])
{
  int  i,j;
  double p,b2;  

  for(j=0;j<=JMAX;j++) {
    for(i=0;i<=IMAX;i++){
      b2 = (uu[6][i][j]*uu[6][i][j]+uu[7][i][j]*uu[7][i][j]+uu[8][i][j]*uu[8][i][j])/2.0;
      p = (uu[4][i][j]-((uu[1][i][j]*uu[1][i][j]+uu[2][i][j]*uu[2][i][j]
          +uu[3][i][j]*uu[3][i][j])/uu[0][i][j])/2.0-b2)*(5.0/3.0-1.0);

      ww[0][i][j][0] = uu[1][i][j];
      ww[1][i][j][0] = uu[1][i][j]*uu[1][i][j]/uu[0][i][j]+p+b2-uu[6][i][j]*uu[6][i][j];
      ww[2][i][j][0] = uu[1][i][j]*uu[2][i][j]/uu[0][i][j]-uu[6][i][j]*uu[7][i][j];
      ww[3][i][j][0] = uu[1][i][j]*uu[3][i][j]/uu[0][i][j]-uu[6][i][j]*uu[8][i][j];
      ww[4][i][j][0] = (uu[4][i][j]+p+b2)*(uu[1][i][j]/uu[0][i][j])-(uu[6][i][j]*uu[1][i][j]/uu[0][i][j]
                       +uu[7][i][j]*uu[2][i][j]/uu[0][i][j]+uu[8][i][j]*uu[3][i][j]/uu[0][i][j])*uu[6][i][j];
      ww[5][i][j][0] = uu[5][i][j]*uu[1][i][j]/uu[0][i][j];
      ww[6][i][j][0] = 0.0;
      ww[7][i][j][0] = -uu[6][i][j]*uu[2][i][j]/uu[0][i][j]+uu[7][i][j]*uu[1][i][j]/uu[0][i][j];
      ww[8][i][j][0] = -uu[6][i][j]*uu[3][i][j]/uu[0][i][j]+uu[8][i][j]*uu[1][i][j]/uu[0][i][j];

      ww[0][i][j][1] = uu[2][i][j];
      ww[1][i][j][1] = uu[1][i][j]*uu[2][i][j]/uu[0][i][j]-uu[6][i][j]*uu[7][i][j];
      ww[2][i][j][1] = uu[2][i][j]*uu[2][i][j]/uu[0][i][j]+p+b2-uu[7][i][j]*uu[7][i][j];
      ww[3][i][j][1] = uu[2][i][j]*uu[3][i][j]/uu[0][i][j]-uu[7][i][j]*uu[8][i][j];
      ww[4][i][j][1] = (uu[4][i][j]+p+b2)*(uu[2][i][j]/uu[0][i][j])-(uu[6][i][j]*uu[1][i][j]/uu[0][i][j]
                       +uu[7][i][j]*uu[2][i][j]/uu[0][i][j]+uu[8][i][j]*uu[3][i][j]/uu[0][i][j])*uu[7][i][j];
      ww[5][i][j][1] = uu[5][i][j]*uu[2][i][j]/uu[0][i][j];
      ww[6][i][j][1] = -uu[7][i][j]*uu[1][i][j]/uu[0][i][j]+uu[6][i][j]*uu[2][i][j]/uu[0][i][j];
      ww[7][i][j][1] = 0.0;
      ww[8][i][j][1] = -uu[7][i][j]*uu[3][i][j]/uu[0][i][j]+uu[8][i][j]*uu[2][i][j]/uu[0][i][j];
    }
  }
}

int main(void){
  double x[IMAX+1],y[JMAX+1],u0[QMAX],u1[QMAX];
  double uu[QMAX][IMAX+1][JMAX+1],un[QMAX][IMAX+1][JMAX+1],
         ua[QMAX][IMAX+1][JMAX+1],ub[QMAX][IMAX+1][JMAX+1],uh[QMAX][IMAX+1][JMAX+1];
  double ww[QMAX][IMAX+1][JMAX+1][2];
  double dx,dy,kap;
  int i,j,n,q;

  double dt = 0.01;
  int nmax = 400;
  int nskip = nmax/10;

  dx = (double)1.0/IMAX;
  dy = (double)1.0/JMAX;

  for(i=0;i<=IMAX;i++){
    x[i]=(double)dx*i;
  }
  for(j=0;j<=JMAX;j++){
    y[j]=(double)dy*j;
  }

  for(i=0;i<=IMAX;i++){
    for(j=0;j<=JMAX;j++){

      uu[1][i][j] = 0.0;
      uu[2][i][j] = 0.0; 
      uu[3][i][j] = 0.0; 
      uu[5][i][j] = 1.0;
      uu[6][i][j] = 0.0;
      uu[7][i][j] = 0.0;
      uu[8][i][j] = 0.0;

      if(y[j]>=0.5){
        uu[0][i][j] = 1.0*exp(-g*(y[j]-0.5));
        uu[4][i][j] = 1.5*1.0*exp(-g*(y[j]-0.5));
      }
      else{
        uu[0][i][j] = 0.5*1.0*exp(-g*(y[j]-0.5));
        uu[4][i][j] = 1.5*0.5*1.0*exp(-g*(y[j]-0.5))+0.5;
      }
    }
  }

  for(i=0;i<=IMAX;i++){
    for(j=1;j<=JMAX-1;j++){
      ua[0][i][j] = (uu[0][i][j+1]+uu[0][i][j-1])/2.0;
      ua[4][i][j] = (uu[4][i][j+1]+uu[4][i][j-1])/2.0;
    }
  }
  for(i=0;i<=IMAX;i++){
    for(j=1;j<=JMAX-1;j++){
      ub[0][i][j] = (ua[0][i][j+1]+ua[0][i][j-1])/2.0;
      ub[4][i][j] = (ua[4][i][j+1]+ua[4][i][j-1])/2.0;
    }
  }
  for(i=0;i<=IMAX;i++){
    for(j=1;j<=JMAX-1;j++){
      uu[0][i][j] = ub[0][i][j];
      uu[4][i][j] = ub[4][i][j];
    }
  }

  for(i=0;i<=IMAX;i++){
    for(j=0;j<=JMAX;j++){
      printf("%f ,  %f,  %f \n",x[i],y[j],uu[0][i][j]);
    }
  }

  u0[0] = 0.5*1.0*exp((-g)*(-0.5));
  u0[1] = 0.0;
  u0[2] = 0.0;
  u0[3] = 0.0; 
  u0[4] = 1.5*0.5*1.0*exp((-g)*(-0.5))+0.5; 
  u0[5] = 1.0;
  u0[6] = 0.0;
  u0[7] = 0.0;
  u0[8] = 0.0;

  u1[0] = 1.0*exp((-g)*0.5);
  u1[1] = 0.0;
  u1[2] = 0.0;
  u1[3] = 0.0; 
  u1[4] = 1.5*1.0*exp((-g)*0.5);
  u1[5] = 1.0;
  u1[6] = 0.0;
  u1[7] = 0.0;
  u1[8] = 0.0;

  kap = dt/dx;

  for(n=1;n<=nmax;n++){
    calw(uu,ww);

    for(i=0;i<IMAX;i++){
      for(j=0;j<=JMAX;j++){
        for(q=0;q<QMAX;q++){
          uh[q][i][j] =   uu[q][i][j]
                        - kap*(ww[q][i+1][j][0]-ww[q][i][j][0])
                        - kap*(ww[q][i][j+1][1]-ww[q][i][j][1]);
        }
      }
    }
    for(i=0;i<=IMAX;i++){
      for(j=0;j<=JMAX;j++){
        for(q=0;q<QMAX;q++){
          uh[q][IMAX][j] = uh[q][0][j];
          uh[q][i][JMAX] = u1[q];
        }
      }
    }
    calw(uh,ww);
    for(i=0;i<=IMAX;i++){
      for(j=0;j<=JMAX;j++){
        for(q=0;q<QMAX;q++){
          un[q][i][j] =   0.5*(uu[q][i][j]+uh[q][i][j]
                        - kap*(ww[q][i][j][0]-ww[q][i-1][j][0])
                        - kap*(ww[q][i][j][1]-ww[q][i][j-1][1]));
        }
      }
    }
    for(i=0;i<=IMAX;i++){
      for(j=0;j<=JMAX;j++){
        un[2][i][j] = uu[2][i][j] - uu[0][i][j]*g*dt;
      }
    }
    for(i=0;i<=IMAX;i++){
      for(j=0;j<=JMAX;j++){
        for(q=0;q<QMAX;q++){
          un[q][0][j] = un[q][IMAX][j];
          un[q][i][0] = u0[q];
        }
      }
    }
    for(i=0;i<=IMAX;i++){
      for(j=0;j<=JMAX;j++){
        for(q=0;q<QMAX;q++){
          uu[q][i][j] = un[q][i][j];
        }
      }
    }

    if( (n%nskip) ==0){
      for(i=0;i<=IMAX;i++){
        for(j=0;j<=JMAX;j++){
          printf("%f ,  %f,  %f  \n",x[i],y[j],uu[0][i][j]);
        }
      }
    }
  }

  return 0;
}



この投稿にコメントする

削除パスワード

No.19981

レイリ−・テイラ−不安定性
投稿者---ぽへぇ(2005/02/15 19:07:48)


タイトルを元に戻しましょう。
回答をいただいた方の指摘は無視なんでしょうか?

No.19833
南野骨茶さん:
>配列wwの添字[i-1]と[j-1]が負になる場合がある

Craftさんのソース
>    for(i=0;i<=IMAX;i++){
>      for(j=0;j<=JMAX;j++){
>        for(q=0;q<QMAX;q++){
>          un[q][i][j] =   0.5*(uu[q][i][j]+uh[q][i][j]
>                        - kap*(ww[q][i][j][0]-ww[q][i-1][j][0])
>                        - kap*(ww[q][i][j][1]-ww[q][i][j-1][1]));
>        }
>      }
>    }





この投稿にコメントする

削除パスワード

No.19982

Re:レイリ−・テイラ−不安定性
投稿者---Craft(2005/02/15 19:20:39)


>タイトルを元に戻しましょう。
>回答をいただいた方の指摘は無視なんでしょうか?
失礼しました。

>No.19833
>南野骨茶さん:
>>配列wwの添字[i-1]と[j-1]が負になる場合がある

ソースを整形しただけで、指摘箇所は修正していません。添え字を改修したところで正常動作しているか検証できないためです。


この投稿にコメントする

削除パスワード

No.19983

Re:レイリ−・テイラ−不安定性
投稿者---通りすがり(2005/02/15 19:40:37)


きっと、悪いとこ全部直して、デバックして、はいこれでいいよ
ってアップして欲しいんじゃないんですか。

結局何がしたいかの説明もないし、コメントもないし、見やすくするための工夫も全くないし。
答える側には義務はないですが、
質問する側には、答える側に快く回答してもらうための工夫をする義務があると思います。


この投稿にコメントする

削除パスワード

No.19987

Re:レイリ−・テイラ−不安定性
投稿者---ぽへぇ(2005/02/15 21:14:55)


>添え字を改修したところで正常動作しているか検証できないためです。

ああっ。ごめんなさいっ。
投稿者を取り違えてしまいました。ご容赦を。
(あかんがな…。)

あと気がついたことですが、以下のブロックの終了時点で、
ua[0][i][0]もua[4][i][0]も(何も代入されていないので)
「わからない」ままですね。

  for(i=0;i<=IMAX;i++){
    for(j=1;j<=JMAX-1;j++){
      ua[0][i][j] = (uu[0][i][j+1]+uu[0][i][j-1])/2.0;
      ua[4][i][j] = (uu[4][i][j+1]+uu[4][i][j-1])/2.0;
    }
  }





この投稿にコメントする

削除パスワード

No.19988

Re:レイリ−・テイラ−不安定性
投稿者---Craft(2005/02/15 21:27:22)


ソースに一部手を入れていて、変えたところがわからないと困るかもしれないので明記しておきます。

大きく変えたところは次のとおり。
(1) #defineの定義名を英小文字から英大文字に変えた
(2) 変数宣言で、初期値を設定しているものといないものの宣言位置を分けた
(3) doubleの変数宣言で、次元の同じものをカンマ演算子で併記するようにした。
(4) ソースが長くて勘違いしやすいので、if, for文などで、()のあと改行して{ がついていたものは、括弧の右に{をつけるようにした。
(5) {}の付いていないif文に{}をつけた。


この投稿にコメントする

削除パスワード

No.20000

Re:レイリ−・テイラ−不安定性
投稿者---もぐりん(2005/02/16 14:25:54)


【掲示板ご利用上の注意】
※マルチポスト(多重投稿)は謹んで!

これを守らないのはなぜ?

http://www-cc.ee.tokushima-u.ac.jp/cgi-bin/cboard.cgi?log=&v=883&e=msg&lp=883&st=0


この投稿にコメントする

削除パスワード

No.20001

Re:レイリ−・テイラ−不安定性
投稿者---通りすがり(2005/02/16 15:00:30)


質問のフォーマットを守れない人が、マルチポストを慎まないのも当然かと。
大方、こっちで答えてもらえないから他で聞いてみよう、ということでしょう。
あちらのほうの質問内容もこちらと大差ないので、進歩なし、と。
もうほっといてあげたらいいんじゃないですか?


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧