Hi, The code compiles and works ok. However, when I changed my solver to use HYPRE to solve the poisson equation,
I got the error: [hpc12:29772] *** An error occurred in MPI_comm_size [hpc12:29772] *** on communicator MPI_COMM_WORLD [hpc12:29772] *** MPI_ERR_COMM: invalid communicator [hpc12:29772] *** MPI_ERRORS_ARE_FATAL (your MPI job will now abort) 1.07user 0.12system 0:01.23elapsed 97%CPU (0avgtext+0avgdata 188432maxresident)k 0inputs+35480outputs (0major+11637minor)pagefaults 0swaps -------------------------------------------------------------------------- mpiexec has exited due to process rank 0 with PID 29771 on node hpc12 exiting improperly. There are two reasons this could occur: 1. this process did not call "init" before exiting, but others in the job did. This can cause a job to hang indefinitely while it waits for all processes to call "init". By rule, if one process calls "init", then ALL processes must call "init" prior to termination. 2. this process called "init", but exited without calling "finalize". By rule, all processes that call "init" MUST call "finalize" prior to exiting or it will be considered an "abnormal termination" This may have caused other processes in the application to be terminated by signals sent by mpiexec (as reported here). This happens after calling the subroutine call HYPRE_StructStencilCreate(3, 4, stencil_hypre, ierr). Btw, my code is using HYPRE's own function to construct the matrix and solve it. Thanks! Yours sincerely, TAY wee-beng On 27/11/2011 10:30 PM, Satish Balay wrote: > check http://www.mcs.anl.gov/petsc/documentation/changes/32.html > > -> Changed PetscTruth to PetscBool > > satish > > On Sun, 27 Nov 2011, TAY wee-beng wrote: > >> Hi, >> >> I have trouble compiling my Fortran codes when I upgrade PETSc from 3.1p8 to >> 3.2p5. >> >> My code is something like this: >> >> module global_data >> >> use nrtype >> >> implicit none >> >> save >> >> #include "finclude/petsc.h90" >> >> !grid variables >> >> integer :: size_x,size_y,size_z,grid_type >> !size_x1,size_x2,size_x3,size_y1,size_y2,size_y3 >> >> real(8), allocatable :: >> x(:),y(:),z(:),xu(:),yu(:),zu(:),xv(:),yv(:),zv(:),xw(:),yw(:),zw(:),c_cx(:),cu_cx(:),c_cy(:),cv_cy(:),c_cz(:),cw_cz(:) >> >> !solver variables >> >> ... >> >> I tried after compiling with the new 3.2p5 and got the following error: >> >> /opt/openmpi-1.5.3/bin/mpif90 -c -g -debug all -implicitnone -warn unused >> -fp-stack-check -heap-arrays -ftrapuv -check pointers -O0 -save -w90 -w -w95 >> -O0 -I/home/wtay/Lib/petsc-3.2-p5_mumps_debug/include >> -I/home/wtay/Lib/petsc-3.2-p5_mumps_debug/include >> -I/opt/openmpi-1.5.3/include >> -o global.o global.F90 >> global.F90(205): error #5082: Syntax error, found IDENTIFIER 'FLGG' when >> expecting one of: ( % : . = => >> PetscTruth flgg >> -----------^ >> global.F90(205): error #6274: This statement must not appear in the >> specification part of a module >> PetscTruth flgg >> ^ >> global.F90(207): error #6236: A specification statement cannot appear in the >> executable section. >> integer(kind=selected_int_kind(5)) reason >> ^ >> global.F90(209): error #6236: A specification statement cannot appear in the >> executable section. >> integer(kind=selected_int_kind(10)) i_vec >> ^ >> global.F90(213): error #6236: A specification statement cannot appear in the >> executable section. >> integer :: >> myid,num_procs,ksta,kend,ksta_ext,kend_ext,ksta_ext0,ksta2,kend2,kend3 >> ^ >> global.F90(215): error #6236: A specification statement cannot appear in the >> executable section. >> integer :: >> ijk_sta_p,ijk_end_p,ijk_sta_m,ijk_end_m,ijk_sta_mx,ijk_end_mx,ijk_sta_my,ijk_end_my,ijk_sta_mz,ijk_end_mz >> ^ >> global.F90(217): error #6236: A specification statement cannot appear in the >> executable section. >> character(2) :: procs >> ^ >> global.F90(205): error #6404: This name does not have a type, and must have >> an >> explicit type. [PETSCTRUTH] >> PetscTruth flgg >> ^ >> global.F90(205): error #6404: This name does not have a type, and must have >> an >> explicit type. [FLGG] >> PetscTruth flgg >> -----------^ >> global.F90(229): error #6404: This name does not have a type, and must have >> an >> explicit type. [KSTA] >> ksta=myid*(size_z/num_procs)+1; kend=(myid+1)*(size_z/num_procs) >> >> >> May I know what's wrong? >> >> Thanks! >> >>
