2

f90 プログラムの 1 つのサブルーチンで何らかの条件が発生したときに、ブレーク オーダーを設定する方法を見つけようとしています。そこから何かアイデアが生まれる可能性はありますか?コードスキームは次のようになります。

    /
    modules
    PROGRAM
    allocate variables
    CALL subroutines for initializing variables
    ...
    do 1,max iterations
    CALL subroutine1
    CALL subroutine2
    CALL subroutine3 !--> here I have the condition
    ...
    ...
    end do

    END PROGRAM

    Subroutine subroutine3 
    ...
    if (condition = true) then ! what I want to do here is to break the program printing a message saying that it is stopped because condition is true)

    end if
    end subroutine 3

    /

助けていただければ幸いです。

私は Fortran の初心者であり、このフォーラムでは初めてです。

前もって感謝します、

アルバート・P

4

1 に答える 1

3
if (condition) stop

プログラムをすぐに停止させます。あなたは好むかもしれません

if (condition) then
   write(*,*) 'A friendly message'
   stop
end if

コンパイラが Fortran 2008 に準拠している場合は、次のように書くこともできます

if (condition) stop 'A friendly message'

ただし、プログラムを停止するのではなく、サブルーチンを終了することが必要な場合があります。その場合は、許容される方法でサブルーチンの最後にジャンプします。

condition=true条件の値を論理定数と比較する Fortran の構文は正しくないことに注意してください.true.。委任状です。構文的には正しい比較ですが、それは意味的condition == .true.に有害です。また、省略形は、あなたがスクリプトキディではなくプログラマーであることを示唆しています。if (condition)if (condition == .true.)

于 2012-07-25T13:32:59.400 に答える