3

gfortranからエラーが発生しました:

     write(*,'ERROR in subroutine rddist ')                                
               1

エラー:(1)のフォーマット文字列に左括弧がありません

io-cfs.f:6574.41:

 >    (nint(MOD(cld_scale*1000000.0, 1000000)) .NE. 0)) THEN               
                                     1

エラー:(1)に固有の「mod」の「a」引数と「p」引数は同じタイプである必要があります

それが何を意味するのか、そして解決策を教えていただけますか?どうもありがとう。

マイケル

4

1 に答える 1

1

まずwrite(*,'ERROR in subroutine rddist ')、文字列を書き込むための命令ではありません'ERROR in subroutine rddist ''(書き込みルーチンの2番目の引数は、開始および終了する必要のあるフォーマット文字列)'です。フォーマット文字列が正しく開始されないため、コンパイラはそこでエラーを検出しました。あなたがおそらく書くつもりだったのは:

write(*,*) 'ERROR in subroutine rddist '

次に、Fortranのドキュメントで「記述子の編集」を確認して、コマンドの2番目の引数について学習しますwrite

2番目:mod本能関数では、両方の引数が同じ型(および種類も)である必要があります。あなたはそれに実数cld_scale*1000000.0と整数を与えました1000000。結果を希望するタイプに応じて、一方を他方のタイプにキャストします。型キャストについては、関数realとを確認してくださいint

于 2012-05-09T15:40:57.113 に答える