I used the gcc-devel-7.0.0 compiler (gfortran) to compile cgpack, There were a few modules that I commented out due to further errors: cgca_m2mpiio,cgca_m2netcdf and cgca_m2phys. At this point I am not sure if these are needed for the paraFEM coupling.
I am in the process of compiling xx14 using the same gcc-devel-7.0.0 compiler (gfortran) however when compiling the xx14std.f90 I receive these two errors:
[1] =xx14std.f90:458:2:
cgca_rot, cgca_origin,cgca_charlen , cgca_yesdebug )
1
Error: Rank mismatch in argument <91>charlen<92> at (1) (scalar and rank-2)
[2]xx14std.f90:701:24:
10, cgca_yesdebug )
1
Error: Type mismatch in argument <91>gcus<92> at (1); passed LOGICAL(4) to UNKNOWN
I have searched the source code and from what I can see they are declared correctly, have you seen this error before and can you point me in the correct direction for solving it.
The error reported by Sam Hewitt (UoM).
It relates to dev directory xx14, which linkes
ParaFEM with CGPACK (http://cgpack.sf.net).
I now have a linux system with OpenCoarrays built on top of GCC 7.0.1.
So far I can't reproduce the error.
Have you followed these steps:
Update ParaFEM to r2239, CGPACK to r394.
Build cgpack with caf, i.e.
make -f Makefile-bc3-oca
. Make sure to start with a clean environment, i.e. make clean first.Install cgpack, i.e.
make -f Makefile-bc3-oca install
.Go to parafem/parafem dir and do
./make-parafem MACHINE=caf > & build.log
.You should get to:
Building XX14 RELEASE
make xx14std.x xx14rot_std.x mumu_std.x \ FFLAGS="-c -I../../../../include/mpi -O2 -Wall -I/panfs/panasas01/mech/mexas/mod" \ LDFLAGS="-L../../../../lib -lParaFEM_mpi.5.0.3 -I/panfs/panasas01/mech/mexas/mod -L/panfs/p
anasas01/mech/mexas/lib -lcgpack"
make[1]: Entering directory
/panfs/panasas01/mech/mexas/nobkp/parafem/parafem/src/programs/dev/xx14 ' caf xx14std.f90 -c -I../../../../include/mpi -O2 -Wall -I/panfs/panasas01/mech/mexas/mod caf xx14std.o -o xx14std.x -L../../../../lib -lParaFEM_mpi.5.0.3 -I/panfs/panasas01/mech/mexas/mod -L/panfs/panasas01/mech/mexas/lib -lcgpack caf xx14rot_std.f90 -c -I../../../../include/mpi -O2 -Wall -I/panfs/panasas01/mech/mexas/mod caf xx14rot_std.o -o xx14rot_std.x -L../../../../lib -lParaFEM_mpi.5.0.3 -I/panfs/panasas01/mech/me xas/mod -L/panfs/panasas01/mech/mexas/lib -lcgpack caf mumu_std.f90 -c -I../../../../include/mpi -O2 -Wall -I/panfs/panasas01/mech/mexas/mod caf mumu_std.o -o mumu_std.x -L../../../../lib -lParaFEM_mpi.5.0.3 -I/panfs/panasas01/mech/mexas/mo d -L/panfs/panasas01/mech/mexas/lib -lcgpack make[1]: Leaving directory
/panfs/panasas01/mech/mexas/nobkp/parafem/parafem/src/programs/dev/xx14'Done xx14std.x xx14rot_std.x mumu_std.x RELEASE
cp xx14std.x xx14rot_std.x mumu_std.x ../../../../bin
meaning that 3 xx14 driver programs have been built.
Anton
I had to comment out MPI_INIT, as it's called by caf behind
the scenes:
svn diff xx14std.f90
Index: xx14std.f90
===================================================================
--- xx14std.f90 (revision 2239)
+++ xx14std.f90 (working copy)
@@ -123,20 +123,20 @@
! intent( out ):
! numpe - integer, process number (rank)
! npes - integer, total number of processes (size)
-CALL find_pe_procs( numpe, npes )
+!CALL find_pe_procs( numpe, npes )
! CAnnot use MPI_INIT in a coarray program with ifort 16!
-! CALL MPI_COMM_RANK(MPI_COMM_WORLD, numpe, ier)
-! IF (ier /= MPI_SUCCESS) THEN
-! WRITE(,'(A,A,I5)')'Error in MPI_COMM_RANK: errcode = ',ier
-! END IF
-!
-! CALL MPI_COMM_SIZE(MPI_COMM_WORLD, npes, ier)
-! IF (ier /= MPI_SUCCESS) THEN
-! WRITE(,'(A,A,I5)')'Error in MPI_COMM_SIZE: errcode = ',ier
-! END IF
-!
-! numpe = numpe + 1
+ CALL MPI_COMM_RANK(MPI_COMM_WORLD, numpe, ier)
+ IF (ier /= MPI_SUCCESS) THEN
+ WRITE(,'(A,A,I5)')'Error in MPI_COMM_RANK: errcode = ',ier
+ END IF
+
+
! Returns the base name of the data file.
! intent( out ):
! argv - character(), data file base name
with that xx14std.x builds and runs fine.
committed this change as r2240.