Parallel processing Get-Wtime函数返回“***&引用;

Parallel processing Get-Wtime函数返回“***&引用;,parallel-processing,fortran,openmp,fortran77,intel-fortran,Parallel Processing,Fortran,Openmp,Fortran77,Intel Fortran,我目前正在使用openMP将一些Fortran代码转换为并行代码。我试图使用omp\u get\u wtime()来计算实际经过的时间,但它返回******。其他OpenMP功能也可以工作,但由于某些原因,它不能工作。我已经删除了计时器之间的所有代码,只是想得到一些不同的东西。删除finish,只显示start,会得到相同的结果。如果你知道我做错了什么,我将不胜感激 C$ USE OMP_LIB DOUBLE PRECISION START,FINISH START = OM

我目前正在使用openMP将一些Fortran代码转换为并行代码。我试图使用
omp\u get\u wtime()
来计算实际经过的时间,但它返回******。其他OpenMP功能也可以工作,但由于某些原因,它不能工作。我已经删除了计时器之间的所有代码,只是想得到一些不同的东西。删除finish,只显示start,会得到相同的结果。如果你知道我做错了什么,我将不胜感激

C$    USE OMP_LIB
   DOUBLE PRECISION START,FINISH

   START = OMP_GET_WTIME()
   FINISH=OMP_GET_WTIME()

   WRITE(OUT,850) FINISH-START
 850 FORMAT(25X,'ELAPSED TIME',I6)

您的问题与
OMP\u GET\u WTIME
函数无关。相反,它源于这样一个事实,即
I
编辑描述符用于显示整数,而您正在向它输入一个双精度数字。您应该使用浮点编辑描述符之一,例如
F10.6

$ cat wtime.f
      USE OMP_LIB
      IMPLICIT NONE
      DOUBLE PRECISION START,FINISH

      START = OMP_GET_WTIME()
      CALL SLEEP(1)
      FINISH=OMP_GET_WTIME()

      WRITE(*,850) FINISH-START
 850  FORMAT(25X,'ELAPSED TIME',F10.6)
      END
$ ifort -openmp -o wtime.exe wtime.f
$ ./wtime.exe
                         ELAPSED TIME  1.000277

我试着把它改成那样,它仍然给我同样的输出:经过的时间*******你必须取消注释
使用OMP_LIB
操作符或添加
双精度OMP_GET_WTIME
,否则,编译器将假定
OMP\u GET\u WTIME
返回一个实数,并且不会生成正确的调用指令。对不起,我应该指定我正在使用带有-openmp选项的ifort进行编译,该选项告诉它读取以c$开头的任何内容。但是,我尝试了你的两个建议,取消注释和添加双精度,都没有效果。它会告诉你这个数字有多大。然后,您可以修改format语句,使其看起来更漂亮Always use tag,并仅在必要时添加版本,以区分您的问题是否具体。例如,您不能使用Fortran 2008,而只能使用Fortran 90。