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 '。write 例程的第二个参数是一个格式字符串,应该是 begin'(和 end )'。由于您的格式字符串没有正确开始,编译器在那里发现了一个错误。你可能打算写的是:

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

现在查看 Fortran 文档中的“编辑描述符”以了解该write命令的第二个参数。

第二:mod内在函数要求它的两个参数具有相同的类型(和种类)。你给了它一个实数cld_scale*1000000.0和一个整数1000000。根据您希望结果的类型,将其中一个转换为另一个类型。对于类型转换,请查看函数realint.

于 2012-05-09T15:40:57.113 回答