fortran90

    1熱度

    1回答

    我想寫信function在FORTRAN90/subroutine它執行相同的MATLAB的diff功能,即,它接收到一個多維數組A和整數dim並且計算沿着由所指定的數組維度的A相鄰元件之間的差異dim。 首先,它應該是一個function或subroutine?爲什麼? 如何應對的A尺寸是多少?例如,如果A的尺寸(a,b,c),輸出的尺寸應(a,b-1,c)如果dim是2;和 我想沿着每個維度的

    1熱度

    2回答

    我有以下程序和程序下面的輸入數據文件,其中包含10行不同的數據。我想隨機讀取這些數據,而不是順序讀取,例如,它可能會讀取第3行,然後可能是第5行,而不是數字1 2 3 4 ...然後,我想隨機打印這些數字。 program rand implicit none integer::i, ok real(kind=8) , allocatable , dimension(

    0熱度

    1回答

    我正在使用OpenACC處理相當大的代碼。現在,我有一個程序foo的調用其他幾個例程酒吧,遠遠的,噓delaing,就像這樣: subroutine foo real x(100,25),y(100,25),z(100,25) real barout(25), farout(25), booout(25) do i=1,25 call bar(barout, x(1,i),y(

    0熱度

    1回答

    我目前在Fortran中運行一個計算模型。在計算過程中,有時我得到了「NaN」,「Infinity」和大於雙精度的數字(顯示爲**************)。我需要檢測它們。我可以用下面的命令檢測「NaN」。 if(isnan(result))then continue = .false. else continue = .true. endif 我不知道如何檢測「In

    3熱度

    1回答

    下面的代碼只生成一個簡單的三重隨機數: program testrand integer, parameter :: nz = 160, nf = 160, nlt = 90 real :: tmpidx(3) integer :: idxarr(3), idx1, idx2, idx3, seed_size, ticks integer, allocatable :: seed(:)

    0熱度

    1回答

    我是新來的都FORTRAN90和MPI從環3個不同的變量收集。我有一個循環根據每個單獨的進程重複不同的循環。在那裏面,我有一個嵌套循環,在這裏,我做了我想要的計算以及相應循環的元素。但是,我想將所有這些數據(x,y和計算值使用x和y)發送到我的根進程0中。從這裏,我想將所有數據寫入到同一個文件中'xy計算'格式。 program fortranMPI use mpi !GLOBAL VARI

    0熱度

    1回答

    如何編寫接受任意大小數組的函數(只要它們的rank是1)? 這正是固有功能shape可以做的,所以我不認爲我的要求太苛刻。 實際上,功能shape做的更多。它可以(顯然)接受任意形狀的數組,即每個維度上的任意級別和任意長度。 這個問題旨在編寫一個函數sub2ind,它對應於同名的MATLAB函數。

    1熱度

    2回答

    簡單的問題。我在一些C++轉換爲Fortran和無法弄清楚如何獲得下一個動力是這樣的: inline int pow2roundup (int x) { if (x == 0) ++x; --x; x |= x >> 1; x |= x >> 2; x |= x >> 4; x |= x >> 8; x |= x

    -1熱度

    1回答

    我需要一個尺寸爲100000 x 2的數組。有可從聲明數組用Fortran 90/95來獲得(在其他)以下列格式中的一種性能上的優勢: 情況(ⅰ): real, dimension(100000,2) :: A 或情況(ⅱ ): real, dimension(2,100000) :: B 我相信情況(二)將有優勢,由於Fortran語言的列主存儲順序。我已經運行了一些測試用例,結果如預期

    1熱度

    1回答

    我正在查找1D數組中的值0。我在這個數組中有幾個0值,大部分時間是連續的0個值。現在我想要做的就是找到每個連續出現的第一個零值出現和最後一個零值出現的索引,下面我將給出一個例子來說明事情: 想象一下,我有以下數組: A= 0.0 0.0 0.0 0.0 0.0 0.0 0.38458693526004206 0.37630968444637147 0.40920888023862656 0.372