Hi there,
I actually run simulations with ABAQUS Standard 6.14-1.
Thereby I use some subroutines written in a combination of Fortran 77 and free-format (unlimited length of lines). In general Subroutines should be written in Fortran 77, but on the actual machine it works good.
Because of performance limit I’d like to change the machine.
The actual machine is a Debian Version 4.6.3-14 – Compiling with GNU Version 4.7.2-5.
The new one is called RedHat5 – Compiling with Intel Fortran 64 XE Version 12.0.
Both use Linux as operating system.
The “simple” task is now to switch the environment in that way, that it works the same way using the Intel Fortran Compiler instead of GNU Fortran.
Details of the actual/old system
excerpt of the environment-file
compile_fortran = [fortCmd,
'-c', '-fPIC', '-extend_source', '-O2', '-I%I', '-ffixed-line-length-none', '-fno-align-commons',
'-std=f2008', '-frecursive']
excerpt of one Subroutine (subroutine.f)
(this is the third one of 9, but the first that makes trouble) --> Uploaded 1 & 2:
Excerpt1-Subr.f.PNG
Excerpt2-Subr.f.PNG
Line 140 is the first one that makes troube on the “new machine” using the environment-file below.
I tried a word-wrap by using & at the end or beginning of a line (column 5 and further), $ or 1 but it doesn’t work at all. Further I tried to shift the whole subroutine in that way, that the first word starts at column 6 as prescribed in Fortran 77… but that works less.
Details of the new system
excerpt of the environment-file
compile_fortran = [fortCmd,
'-V',
'-c', '-fPIC', '-auto', '-mP2OPT_hpo_vec_divbyzero=F', '-extend_source',
'-WB', '-I%I']
Via trial and error I migth exclude “-free” , “-frecursive” (isn’t supported), “assume cc_omp”,
Typical error-massages:
/tmp/2198878.1.abax18/U_Data_Calculate.f(140): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: ( <IDENTIFIER> <CHAR_CON_KIND_PARAM> <CHAR_NAM_KIND_PARAM> <CHARACTER_CONSTANT> <INTEGER_CONSTANT> ...
IF ( NR .EQ. PHASE_FERRITE) Data_Density_Jablonka = (rhoF0 + rhoF1*TEMP + rhoF2*TEMP*TEMP) *
---------------------------------------------------------------------------------------------------------------^
/tmp/2198878.1.abax18/U_Data_Calculate.f(141): error #5082: Syntax error, found '(' when expecting one of: BLOCK BLOCKDATA PROGRAM MODULE TYPE BYTE CHARACTER CLASS DOUBLE DOUBLECOMPLEX ...
1 (1.0 - rhoFC*cC)
----------^
/tmp/2198878.1.abax18/U_Data_Calculate.f(142): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: ( <IDENTIFIER> <CHAR_CON_KIND_PARAM> <CHAR_NAM_KIND_PARAM> <CHARACTER_CONSTANT> <INTEGER_CONSTANT> ...
IF ( NR .EQ. PHASE_CARBIDE) Data_Density_Jablonka = (rhoK0 + rhoK1*TEMP + rhoK2*TEMP*TEMP) *
----------------------------------------------------------------------------------------------------------------^
/tmp/2198878.1.abax18/U_Data_Calculate.f(143): error #5082: Syntax error, found '(' when expecting one of: BLOCK BLOCKDATA PROGRAM MODULE TYPE BYTE CHARACTER CLASS DOUBLE DOUBLECOMPLEX ...
1 (1.0 - rhoKC*cC - rhoKCr*cCr - rhoKMn*cMn)
Furthermore a colleaguewho works with Damask gave me an environment that might help
compile_fortran = (fortCmd + " -c -fPIC -auto " +
"-I%I -free -O1 -fpp -openmp " +
"-ftz -diag-disable 5268 " +
"-implicitnone -assume byterecl " +
"-real-size 64 -integer-size 32 -DFLOAT=8 -DINT=4")
… but I can’t transfer it because he uses another Fortran style… excerpt of his routine:
!*** input/output variables
type(p_vec), dimension(1,mesh_maxNips,mesh_NcpElems), intent(inout) :: &
state !
microstructural state
!*** local variables
integer(pInt) ipc, &
el, &
ip, &
e, &
i, &
ns, &
! short notation for total number of active slip systems
f, &
! index of lattice family
Up to the present or a few weeks ago – I work on it since 3 weeks - I never mind about details in the environment and the compiling process. Thus or nevertheless I’m no specialist in this kind of stuff.
Since I work on it for a certain time, but without having achieving the switch, I hope someone might help me.
Kind regards
Sandra