前提
あるnuを用いてp(nu)であったりη(nu)を計算するサブルーチンを作りたい
実現したいこと
サブルーチン内で計算した値を主プログラムで
write(,) を使って呼び出したときに思っていた値が呼び出されない。
発生している問題・エラーメッセージ
たとえばη(nu)なら電卓で計算すると0.287くらいになるがこのプログラムを実行すると桁数が全く合わない値が
出てきてしまう。
該当のソースコード
module cylinder
integer(kind=4), parameter :: NXmin=-16,NXmax=128
integer(kind=4), parameter :: NYmin=-32,NYmax=32
real(8) , parameter :: nu = 0.121d0
real(8) , parameter :: siita = 0.10d0
real(8) , parameter :: nu_c = 0.82d0
real(8) , parameter :: nu_o= 0.7006d0
real(8) , parameter :: e= 0.798d0
real(8) , parameter :: mo= 0.0111d0
real(8) :: dh
contains
subroutine muzigennka(nu)
real(8) nu
real(8) Pi,gf,gc,g,p,guzai,iita
Pi = 2.0d0acos(0.0d0)
gf=((1.d0+e)nu(sqrt(nu_c/nu-1.d0)))**(-1.d0)
gc= (1.d0-7.d0nu/16.d0)/(1-nu)2
g = gc + (gf - gc)/(1.d0+exp(-(nu-nu_o)/mo))
p =0.5d0nu(1.d0+(1.d0+e)nug)
guzai =(1.d0+e)gnu2/sqrt(2.d0Pi)
iita =sqrt(Pi/2.d0)(1.d0/((7.d0-3.d0e)g) + (1.d0+e)(3.d0e+1.d0)nu/(4.d0(7.d0-3.d0e)) &
+ ((1.d0+e)(3.d0e-1.d0)/(8.d0(7.d0-3.d0e)) + 1.d0/Pi)(1.d0+e)gnu**2)
end subroutine muzigennka
end module cylinder
program main
use cylinder
implicit none
real(8) guzai
real(8) iita
call muzigennka(nu) write(*,*) guzai write(*,*) iita
end program main```ここに言語名を入力
ソースコード
### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) プログラム初心者なので至らないところばかりだと思いますが,どなたか教えていただける方おられないでしょうか?
あなたの回答
tips
プレビュー