编写输出文件时Cray编译器出错

时间:2017-08-02 22:25:29

标签: compiler-errors fortran mpi mpich cray

我在两个不同的集群中使用完全相同的代码。一个集群运行mpi intel fortran,另一个集群运行Cray Fortran。前者是一个古老的集群,后者是我们在学校最新的集群。该实现完全适用于旧集群(MPI INTEL FORTRAN),但实现在Cray Fortran集群中不起作用。 输出子程序中给出错误的部分是:

    Subroutine Output
use Variables
implicit none

! Formating section

398   format(6(e22.15,2x))
399   format(7(e22.15,2x))
39   format(5(e22.15,2x))

!!! Computing Cp for postprocessing purposes
Cp = gamma*R_gas/(gamma-1)

! Creating the Global mesh
If(MyRank ==0) Call GridGlobal
    If(MyRank==0) then
    open(330, file = 'Primitive_Variables.dat')
    write(330,*) 'TITLE = "Primitive Variables Contours"'
    write(330,*) 'VARIABLES = "X"'
    write(330,*) '"Y"'
    write(330,*) '"U Velocity"'
    write(330,*) '"V Velocity"'
    write(330,*) '"Density"'
    write(330,*) '"Temperature"'

    write(330,*)'  zone T = "zone1", I = ',ImaxGlobal,' J= ',JmaxGlobal,' F = point'

    do j = 1,JmaxGlobal
      do i = 1,ImaxGlobal
        write(330,398) xGlobal(i,j),yGlobal(i,j),u_oldGlobal(i,j),v_oldGlobal(i,j),r_oldGlobal(i,j),T_oldGlobal(i,j)
      enddo
    enddo
    close(330)
    End If

当我运行我的实现时,我得到的错误如下:

Application 135822 exit codes: 134
Application 135822 exit signals: Killed
Application 135822 resources: utime ~185s, stime ~1s, Rss ~1444696, inblocks ~1023410, outblocks ~5529676

pwd

setenv OMP_NUM_THREADS 1

if ( -e IDS ) then
aprun -j 1 -n 32 ./IDS

sys-38 : UNRECOVERABLE error on system request
  Function not implemented

Encountered during a CLOSE of unit 330
Fortran unit 330 is not connected
_pmiu_daemon(SIGCHLD): [NID 00018] [c0-0c0s4n2] [Wed Aug  2 16:57:32 2017] PE RANK 0 exit signal Aborted
[NID 00018] 2017-08-02 17:53:44 Apid 135820: initiated application termination
else

exit

这样,输出子程序停止打印结果,我的计算也没用。

提前致谢

对于记录:这仅适用于大型阵列。大我的意思是大于2001x2001。我知道这根本不大,但对于较小的数组,错误不会弹出。 Subrotuine分配打印所需的数组,它开始打印文件,但它没有完成打印整个文件。在几个元素之后,该过程停止并且弹出错误。程序创建文件并开始在文件中编写解决方案,然后停止打印解决方案。 我尝试使用不同数量的PE运行它,并且问题总是会弹出。

变量以下列方式声明:

integer, parameter :: dp = 8
real(kind=dp),dimension(:,:),allocatable::r_old,u_old,v_old,T_old,a_old

代码如下:

        DO kk=1, 2001

 ! This section calls different subroutine
 ! They are not relevant for the discussion

Call MPI_BARRIER(MPI_COMM_WORLD,ierr) ! Barrier in MPI
Enddo

! Postprocessing tasks and restart file
Call MPI_BARRIER(MPI_COMM_WORLD,ierr) ! Barrier in MPI
Call KillArrays   ! Deallocating the arrays not needed for writing output
Call Write_SolutionRestart
Call Output
Call MPI_BARRIER(MPI_COMM_WORLD,ierr) 
Call MPI_FINALIZE(ierr)

给我问题的子程序是“输出”。

问题始终是根据错误文件排名0。

0 个答案:

没有答案