- 締切済み
fortran定数が代入されない
fortran95で以下のような内部サブルーチンを作ったのですが、P(F)=1,2の定数がどこにも代入されません。どなたかfortan詳しい方、教えていただけると幸いです。 program sub_1028_1 real :: DU=10. real :: DIS1=2. real :: SL1=10. real,dimension(1:5) :: DEPTH real,dimension(2) :: P real,dimension(5,10) :: DR integer :: F real :: L P(1)=1 P(2)=2 OPEN(11, FILE='C:\Users\Documents\\FORTRAN\fortranopenfile\fortranresult.csv') CALL sub1(DEPTH) do F=1,2 write(11,*) P(F) do L=1.,SL1 DR(F,L)=(-1.0*P(F)+3.0)*DU*DEPTH(L)*0.1 write(11,'(F15.5)') DR(F,L) end do end do close(11) contains !----------------------------------------------------- SUBROUTINE sub1(DEPTH) real,dimension(1:5) :: DIS2,FE,DEPTH real,dimension(2,10) :: MTD integer :: F real :: L do F=1,2 write(11,*) P(F) do L=1.,SL1 DIS2(L)=DIS1*L FE(L)=DIS2(L)*0.1 DEPTH(L)=DIS2(L)*0.01 MTD(F,L)=(-1.0*P(F)+2.5)*FE(L) write(11,'(5F15.5)') DIS2(L), FE(L), DEPTH(L), MTD(F,L) end do end do end subroutine sub1 !---------------------------------------------------------- end program sub_1028_1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
「P(F)=1,2の定数がどこにも代入されません」というのはどのように確認されたのでしょうか? write(*,*) P なんかでも表示されない, ということでしょうか?
補足
subroutine内でも、主プログラムでもwrite(*,*) P(F)と書いて確認しているのですが、間違った値がでてきます。一応値がでるということは、何かを参照しているのだと思いますが、何が影響しているのかわからない状態です。