我从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'参数必须具有相同的类型
您能告诉我它的含义和解决方案吗?非常感谢。
迈克尔答案 0 :(得分:1)
首先:write(*,'ERROR in subroutine rddist ')
不是写字符串'ERROR in subroutine rddist '
的指令。写例程的第二个参数是格式字符串,它应该从'(
开始并结束)'
。由于您的格式字符串无法正常启动,编译器在那里发现了错误。你可能想写的是:
write(*,*) 'ERROR in subroutine rddist '
现在检查Fortran文档中的“编辑描述符”以了解write
命令的第二个参数。
第二:mod
内在函数要求它的两个参数都具有相同的类型(也是类型)。您已为其指定了实数cld_scale*1000000.0
和整数1000000
。根据您希望结果的类型将其中一个转换为另一个类型。对于类型转换,请查看函数real
和int
。