Page 1 of 1

Problem with RECL on ABACUS.GDI

Posted: 09 Dec 2020, 16:01
by sauer
Hi,
we are trying to run a SOPPA calculation of coupling constants with a reasonable large basis set (532 contracted) and the program just dies after starting in the Static Property Section (ABACUS).

In the error file we get the following statement:
forrtl: severe (118): The 'RECL=' value in an OPEN statement for unit 10, file /data/scratch/18766691/DALTON_scratch_marinell/hrpad_G1_MM12_8225/ABACUS.GDI, exceeds the maximum allowed for the file's record type.

which I think comes from the
CALL GPOPEN(LUGDI,ABAGDI,'OLD','DIRECT',' ',IRAT*NVARMA,OLDDX)
statement in RELAX (abarlx.F) or any of the similar statements in the other subroutines opening ABACUS.GDI.
I guess it is the value of IRAT*NVARMA, which is too large.

BUT, I was not aware of the fact that there is a maximum recordlength for a direct access file (or forgot about it) and is there anything, what we can do about it?

The program was compiled as follows:
Who compiled | marinell
Host | fend01.cluster
System | Linux-3.10.0-1127.13.1.el7.x86_64
CMake generator | Unix Makefiles
Processor | x86_64
64-bit integers | ON
MPI | OFF
Fortran compiler | /software/local/intel/parallel_studio_xe_2018_upd1
| /compilers_and_libraries/linux/bin/intel64/ifort
Fortran compiler version | ifort (IFORT) 18.0.1 20171018
C compiler | /software/local/intel/parallel_studio_xe_2018_upd1
| /compilers_and_libraries/linux/bin/intel64/icc
C compiler version | icc (ICC) 18.0.1 20171018
C++ compiler | /software/local/intel/parallel_studio_xe_2018_upd1
| /compilers_and_libraries/linux/bin/intel64/icpc
C++ compiler version | icpc (ICC) 18.0.1 20171018
BLAS | /software/local/intel/parallel_studio_xe_2018_upd1
| /compilers_and_libraries/linux/mkl/lib/intel64/lib
| mkl_intel_ilp64.so;/software/local/intel/parallel_
| studio_xe_2018_upd1/compilers_and_libraries/linux/
| mkl/lib/intel64/libmkl_sequential.so;/software/loc
| al/intel/parallel_studio_xe_2018_upd1/compilers_an
| d_libraries/linux/mkl/lib/intel64/libmkl_core.so;/
| usr/lib64/libpthread.so;/usr/lib64/libm.so
LAPACK | /software/local/intel/parallel_studio_xe_2018_upd1
| /compilers_and_libraries/linux/mkl/lib/intel64/lib
| mkl_lapack95_ilp64.a;/software/local/intel/paralle
| l_studio_xe_2018_upd1/compilers_and_libraries/linu
| x/mkl/lib/intel64/libmkl_intel_ilp64.so
Static linking | OFF
Configuration time | 2020-11-05 20:19:32.043144


Best wishes and stay COVID-safe
Stephan

Re: Problem with RECL on ABACUS.GDI

Posted: 13 Dec 2020, 22:11
by hjaaj
Hi,

I searched "forrtl severe(118)" on google and got some hits. Google is a good source for finding answers to such problems :) Combining info from two of them, it seems:

1. For intel ifort up to and including ifort 18.* (as you used), the recl in bytes is stored in 32 bits (as in integer*4) and then the recl is too big if you ask for a recl of more than (2**31-1) bytes corresponding to approx. 268.5 million real*8 words. If you look in the output for your SOPPA calculation I expect you will find it is at least 268.5 million double excitations.

2. For intel ifort 19.* and later ifort is able to handle longer record lengths.

3. From this I deduct that intel ifort used a 32 bit integer to store record lengths in bytes in direct access files until version 19.*

4. Other compilers as gfortran never(?) had this limitation, AFAIK.

So two possible solutions: 1) use ifort version 19 or later; 2) use e.g. gfortran

Re: Problem with RECL on ABACUS.GDI

Posted: 13 Dec 2020, 23:27
by sauer
Hi Hans Jørgen,

thanks a lot for your help.
I will try this tomorrow.

Best wishes
Stephan

Re: Problem with RECL on ABACUS.GDI

Posted: 16 Dec 2020, 16:17
by sauer
Now that I finally got hold of ifort19, it works. Thanks a lot for your help