fortran

    -1熱度

    1回答

    我正在運行fortran代碼。代碼沒有暫停,也沒有任何要求用戶執行任何操作的開關。它應該始終以無止境的方式運行。這是一個具有大外部循環和幾個OpenMP內部循環的代碼。我輸出的唯一東西是更大外部循環的索引,以便我可以知道代碼在哪裏。 該代碼通常運行沒有問題。然而,最後兩次我運行它,代碼停止沒有錯誤(我知道,因爲核心使用率開始爲0%)。但是,如果我按下控制檯中的輸入代碼恢復正常。 所以我的問題是,有

    2熱度

    2回答

    例如, SUBROUTINE DoSomething (Z,L) IMPLICIT DOUBLE PRECISION (A-H,O-Z) D=Z*77.1234567D0 L=D RETURN END ,一起討論的目的,讓我們假設d等於-1.5,

    3熱度

    1回答

    Sublime Text 3有一個將文本編輯器鏈接到Gfortran的包,它運行時沒有任何問題。我想知道如何將英特爾Fortran作爲自定義版本添加到Sublime Text 3中?根據我的理解,我需要繼續構建系統並創建一個代碼類似於下面的代碼的新文件(這是gfortran的一個示例)。 { "cmd": "gfortran ${file} -o ${file_base_name}",

    1熱度

    1回答

    在gfortran 6中,有一個新的警告-Winteger-division,當一個值被整數除法截斷時觸發,如3/5。 假設這是預期的結果,有沒有辦法改變代碼,使警告不發出?例如: program test integer, parameter :: n = 3, m = 5 integer, parameter :: a = n/m end program 至少一些不太麻煩比: int

    -1熱度

    1回答

    我正在編寫一個MPI fortran程序,並有三個不同長度的三個向量的三個向量。我想他們在一個「串聯」的方式,如結合在一起: Rank 0: a0 = [1 2 3 4 5] Rank 1: a1 = [3 5 7 9] Rank 2: a2 = [2 4 6 8 10 12] 它們組合到: Rank 0: a = [1 2 3 4 5 3 5 7 9 2 4 6 8 10 12] 你

    1熱度

    1回答

    我確定這個解決方案非常基礎,但我很難弄清楚如何在Fortran中使用函數。我有以下簡單的程序: PROGRAM main IMPLICIT NONE INTEGER :: a,b a = 3 b = 5 PRINT *,funct(a,b) END PROGRAM FUNCTION funct(a,b) IMPLIC

    2熱度

    1回答

    在Fortran上開發程序時,使用某種迭代過程時,我面臨必須手動停止迭代(從程序終止時退出迭代循環)的必要性。 我決定發送一個信號給進程。我選擇了SIGALRM。我已經檢查過它可以被捕獲而沒有任何意外的後果。 當收到信號時,標誌值被改變。該標誌在迭代循環內被檢查並且如果標誌爲真則退出。下面給出了這種代碼的示例。 !file mymod.f90 module mymod use ifport

    1熱度

    1回答

    原問題 據我所知,從Fortran 95開始,聲明函數已被聲明爲過時而偏向於內部函數。但是,內部函數並沒有涵蓋所有的用例,特別是當使用語句函數作爲縮寫時,爲了使長公式的實現更具可讀性,隱含的參數。有沒有足夠的替代這個用例? 例 例如,讓我們說我們有一個關係                 Cᵢⱼ=∫dx₁∫dx₂∫dx₃∫dy₁∫dy₂∫dy₃(AᵢⱼBᵢⱼ+BᵢⱼAⱼᵢ) Eg比較使用直接A的內

    2熱度

    1回答

    我正在與gfortran 5.4此編譯錯誤和.F90代碼 call abc_output(struc,nx,ny,nz,'AB' ,get_ab_dat(p_f),& 1 Error: Non-variable expression in variable definition context (actual argument to INTENT = OUT/IN

    1熱度

    1回答

    我遇到了一個有趣的現象,我無法解釋。我還沒有在網上找到答案,因爲大多數帖子都涉及縮小比例較弱以及通信開銷。 下面是一小段代碼來說明問題。這是在不同的語言測試與相似的結果,因此多個標籤。 #include <mpi.h> #include <stdio.h> #include <time.h> int main() { MPI_Init(NULL,NULL); int