• ベストアンサー

配列が定義されていない??

今日1日を費やして、fortranの勉強をしました。 まだまだ勉強始めたばかりで、何かと苦労しています。 理解しようと、本にPCとにらめっこしています。 本日の問題は・・以下です。 問題と思われる箇所載せておきます。 subroutine Uno(ya,Mc,nablaMc, & maxX,maxY,numX,numY,dt,dx,dy, & v,v_P,nablaya) implicit real*8 (a-h,o-z) * real*8 v(0:maxX,0:maxY),v_P(0:maxX,0:maxY) * CDK write(6,1000) dx,dy,dt * ic=0 1 continue ic=ic+1 * do ix=1,numX-1 do iy=1,numY-1 C---- nablayaを定義------------------------------------ ★ nablaya=v(ix,iy+1)-v(ix,iy-1))/*dy C ------------------------------------------------------ A=v(ix,iy)*ya+nablaya*v(ix,iy) B=v(ix,iy)*ya C------------------------------------------------------- if (iy.eq.1) then ai=2.0d0*dt*B*(1.0d0/(dx*dx)+1.0d0/(dy*dy) bi=dt*(A/(4.0d0*dy)+B/(2.0d0*dy*dy)) else ai=2.0d0*dt*B+A/(dy*dy) bi=A/(4.0d0*dy)+B/(2.0d0*dy*dy) ・・ といった感じのルーチンを書きました。 そしたら、 『Error: The shapes of the array expressions do not conform. [NABLAYA]』と指摘され、その場所が上記★の行でした。 何がいけないのでしょうか!? 教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

> ★ nablaya=v(ix,iy+1)-v(ix,iy-1))/*dy 最後の dy の直前にある /* は、何を意味しているのでしょうか? 割り算をしたいのですか?掛け算をしたいのですか? ところで、ここは C/C++ カテゴリーであることはご存じですか? Fortran についてのご質問をするための適切な場所は他にあります。

BOY12345
質問者

補足

Cとfortranを混ぜて使っているので、どちらでもよいかなと思い・・ frotranの質問するのにいいとこあったら教えて下さい。

その他の回答 (2)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.3

> Cとfortranを混ぜて使っているので、どちらでもよいかなと思い・・ 混ぜて使っているって、今回の件はC言語のかけらもありませんよね。 > frotranの質問するのにいいとこあったら教えて下さい。 「その他(プログラミング)」のカテゴリーです。 以前(って、たった5日前ですけど)、「fortranエラー」というタイトルで 質問されていたではないですか。お忘れになりましたか?

  • kameDK
  • ベストアンサー率22% (17/75)
回答No.1

fortranに関しては初心者ですが気付いたことを少し。。 ★nablaya=v(ix,iy+1)-v(ix,iy-1))/*dy の部分ですが2つ目のv()の後の括弧が一つ多いと思います。 なおるか分かりませんが参考程度に・・・^^;

BOY12345
質問者

補足

あっ、本当ですね!! ありがとうございます。 でも、問題は解決できませんでした。 引き続き、お待ちしております。

関連するQ&A