我正在與GFortran和CodeBlocks,但我有關於模塊和多個文件的問題。 我不斷收到此錯誤:GFortran和CodeBlocks問題與模塊和多個文件
Fatal Error: Can't open module file 'mesh.mod' for reading at (1): No such file or directory
出於某種原因,GFortran不建設「mesh.mod」文件。 當我將所有代碼放在一個.f90文件中時,不會發生此問題。
貝婁是這種錯誤發生的代碼的一個例子。
main.f90時
MODULE MESH
IMPLICIT NONE
INTEGER :: IMAX,JMAX,NMAX
REAL(8), ALLOCATABLE :: XD(:),YD(:),FX(:,:),FY(:,:)
REAL(8) :: PI,E,DX,DY,H,L,RHO,MU
PARAMETER (PI = ACOS(-1.D0))
PARAMETER (E = 2.718)
END MODULE MESH
!**************************************************************
program Cavity
Use Mesh
implicit none
Real(8), Allocatable :: func(:)
Real(8) :: Der,DfDx
integer :: i
IMAX=10
DX=1./10
Allocate(xd(IMAX),func(IMAX))
Do i=1,IMAX
xd(i)=i*DX
End Do
Do i=1,IMAX
func(i) = xd(i)**2
End Do
Der=Dfdx(func,2)
Write(*,*) Der
End program Cavity
Derivatives.f90
Real(8) Function DfDx(f,i)
Use Mesh
implicit none
Real(8) :: f(1:Imax)
integer :: i
DfDx=(f(i+1)-f(i-1))/(2d0*dx)
return
end function DfDx
當我使用的,而不是代碼塊接口控制檯命令行編譯我已經解決了這個問題(Compiling Multiple Files with modules),但我仍然得到這個CodeBlocks的問題。
有誰知道如何解決這個問題?
我從來沒有使用CodeBlocks,但我認爲這個問題是編譯不按順序的東西。你試圖編譯單獨文件的順序是什麼? – tpg2114
此外,不要聽起來不禮貌,但SO不喜歡問題中的感謝/簽名/問候,也不喜歡標題中的標籤(本例中爲[tag:fortran90])。我編輯了你的其他問題,並在這裏做同樣的工作 – tpg2114
好的...對不起,我不知道這件事。我認爲你是對的,這可能是由於編譯順序,但我在CodeBlocks中找不到任何關於此的選項。實際上,我並不知道CodeBlocks在編譯時如何使用f90文件。我希望有人能向我解釋。 – Eleteroboltz