diff --git a/code/CPFEM.f90 b/code/CPFEM.f90 index 9c609da6b..9556e2ba1 100644 --- a/code/CPFEM.f90 +++ b/code/CPFEM.f90 @@ -646,8 +646,8 @@ subroutine CPFEM_general(mode, coords, ffn, ffn1, Temperature, dt, element, IP, if (mode < 3 .and. debug_verbosity > 0 .and. ((debug_e == cp_en .and. debug_i == IP) .or. .not. debug_selectiveDebugger)) then !$OMP CRITICAL (write2out) - write(6,'(a,i8,1x,i2,/,12x,6(f10.3,1x)/)') '<< CPFEM >> stress/MPa at el ip ', cp_en, IP, cauchyStress/1e6 - write(6,'(a,i8,1x,i2,/,6(12x,6(f10.3,1x)/))') '<< CPFEM >> jacobian/GPa at el ip ', cp_en, IP, transpose(jacobian)/1e9 + write(6,'(a,i8,1x,i2,/,12x,6(f10.3,1x)/)') '<< CPFEM >> stress/MPa at el ip ', cp_en, IP, cauchyStress/1.0e6_pReal + write(6,'(a,i8,1x,i2,/,6(12x,6(f10.3,1x)/))') '<< CPFEM >> jacobian/GPa at el ip ', cp_en, IP, transpose(jacobian)/1.0e9_pReal call flush(6) !$OMP END CRITICAL (write2out) endif diff --git a/code/FEsolving.f90 b/code/FEsolving.f90 index 782225e1a..3d8e03bc8 100644 --- a/code/FEsolving.f90 +++ b/code/FEsolving.f90 @@ -52,14 +52,16 @@ use IO implicit none - integer(pInt), parameter :: fileunit = 222 - integer(pInt), parameter :: maxNchunks = 6 - integer(pInt):: i, start = 0_pInt, length=0_pInt -integer(pInt), dimension(1_pInt+2_pInt*maxNchunks) :: positions + integer(pInt), parameter :: fileunit = 222_pInt + integer(pInt), parameter :: maxNchunks = 6_pInt + integer :: i, start = 0, length=0 + integer(pInt) :: j + integer(pInt), dimension(1_pInt+2_pInt*maxNchunks) :: positions character(len=64) tag character(len=1024) line, commandLine FEmodelGeometry = getModelName() + call IO_open_inputFile(fileunit,FEmodelGeometry) if (trim(FEsolver) == 'Spectral') then call get_command(commandLine) ! may contain uppercase @@ -71,7 +73,6 @@ integer(pInt), dimension(1_pInt+2_pInt*maxNchunks) :: positions start = index(commandLine,'-r ',.true.) + 3_pInt ! set to position after trailing space if (index(commandLine,'--restart ',.true.)>0) & ! look for --restart start = index(commandLine,'--restart ',.true.) + 10_pInt ! set to position after trailing space - if(start /= 0_pInt) then ! found something length = verify(commandLine(start:len(commandLine)),'0123456789',.false.) ! where is first non number after argument? read(commandLine(start:start+length),'(I12)') restartInc ! read argument @@ -103,8 +104,8 @@ integer(pInt), dimension(1_pInt+2_pInt*maxNchunks) :: positions restartRead = (IO_lc(IO_StringValue(line,positions,i)) == 'read') .or. restartRead enddo if(restartWrite) then - do i=2,positions(1) - restartWrite = (IO_lc(IO_StringValue(line,positions,i)) /= 'frequency=0') .and. restartWrite + do j=2,positions(1) + restartWrite = (IO_lc(IO_StringValue(line,positions,j)) /= 'frequency=0') .and. restartWrite enddo endif end select diff --git a/code/constitutive_dislotwin.f90 b/code/constitutive_dislotwin.f90 index d252991a3..7264c015f 100644 --- a/code/constitutive_dislotwin.f90 +++ b/code/constitutive_dislotwin.f90 @@ -132,6 +132,7 @@ subroutine constitutive_dislotwin_init(file) !************************************** !* Module initialization * !************************************** +use, intrinsic :: iso_fortran_env ! to get compiler_version and compiler_options (at least for gfortran 4.6 at the moment) use prec, only: pInt,pReal use math, only: math_Mandel3333to66,math_Voigt66to3333,math_mul3x3 use mesh, only: mesh_maxNips, mesh_NcpElems diff --git a/code/constitutive_titanmod.f90 b/code/constitutive_titanmod.f90 index 383796f22..4f9ef2fdc 100644 --- a/code/constitutive_titanmod.f90 +++ b/code/constitutive_titanmod.f90 @@ -202,6 +202,7 @@ subroutine constitutive_titanmod_init(file) !************************************** !* Module initialization * !************************************** +use, intrinsic :: iso_fortran_env ! to get compiler_version and compiler_options (at least for gfortran 4.6 at the moment) use prec, only: pInt,pReal use math, only: math_Mandel3333to66,math_Voigt66to3333,math_mul3x3 use IO diff --git a/code/debug.f90 b/code/debug.f90 index 3f3148b04..156137735 100644 --- a/code/debug.f90 +++ b/code/debug.f90 @@ -87,8 +87,8 @@ subroutine debug_init() !*** output variables ***! !*** local variables ***! - integer(pInt), parameter :: fileunit = 300 - integer(pInt), parameter :: maxNchunks = 2 + integer(pInt), parameter :: fileunit = 300_pInt + integer(pInt), parameter :: maxNchunks = 2_pInt integer(pInt), dimension(1+2*maxNchunks) :: positions character(len=64) tag character(len=1024) line @@ -143,7 +143,7 @@ subroutine debug_init() enddo 100 close(fileunit) - if (debug_verbosity > 0) then + if (debug_verbosity > 0_pInt) then !$OMP CRITICAL (write2out) write(6,*) ' ... using values from config file' write(6,*) @@ -153,7 +153,7 @@ subroutine debug_init() ! no config file, so we use standard values else - if (debug_verbosity > 0) then + if (debug_verbosity > 0_pInt) then !$OMP CRITICAL (write2out) write(6,*) ' ... using standard values' write(6,*) @@ -276,7 +276,7 @@ subroutine debug_info() write(6,*) write(6,*) write(6,*) 'distribution_StressLoop : stress frogbreak stiffness frogbreak' - do i=1,nStress + do i=1_pInt,nStress if (any(debug_StressLoopDistribution(i,:) /= 0_pInt ) .or. & any(debug_LeapfrogBreakDistribution(i,:) /= 0_pInt ) ) then integral = integral + i*debug_StressLoopDistribution(i,1) + i*debug_StressLoopDistribution(i,2) @@ -291,7 +291,7 @@ subroutine debug_info() integral = 0_pInt write(6,*) write(6,*) 'distribution_CrystalliteStateLoop :' - do i=1,nState + do i=1_pInt,nState if (any(debug_StateLoopDistribution(i,:) /= 0)) then integral = integral + i*debug_StateLoopDistribution(i,1) + i*debug_StateLoopDistribution(i,2) write(6,'(i25,1x,i10,12x,i10)') i,debug_StateLoopDistribution(i,1),debug_StateLoopDistribution(i,2) @@ -304,13 +304,13 @@ subroutine debug_info() integral = 0_pInt write(6,*) write(6,*) 'distribution_CrystalliteCutbackLoop :' - do i=1,nCryst+1 + do i=1_pInt,nCryst+1_pInt if (debug_CrystalliteLoopDistribution(i) /= 0) then integral = integral + i*debug_CrystalliteLoopDistribution(i) if (i <= nCryst) then write(6,'(i25,1x,i10)') i,debug_CrystalliteLoopDistribution(i) else - write(6,'(i25,a1,i10)') i-1,'+',debug_CrystalliteLoopDistribution(i) + write(6,'(i25,a1,i10)') i-1_pInt,'+',debug_CrystalliteLoopDistribution(i) endif endif enddo @@ -325,7 +325,7 @@ subroutine debug_info() integral = 0_pInt write(6,*) write(6,*) 'distribution_MaterialpointStateLoop :' - do i=1,nMPstate + do i=1_pInt,nMPstate if (debug_MaterialpointStateLoopDistribution(i) /= 0) then integral = integral + i*debug_MaterialpointStateLoopDistribution(i) write(6,'(i25,1x,i10)') i,debug_MaterialpointStateLoopDistribution(i) @@ -336,13 +336,13 @@ subroutine debug_info() integral = 0_pInt write(6,*) write(6,*) 'distribution_MaterialpointCutbackLoop :' - do i=1,nHomog+1 + do i=1_pInt,nHomog+1_pInt if (debug_MaterialpointLoopDistribution(i) /= 0) then integral = integral + i*debug_MaterialpointLoopDistribution(i) if (i <= nHomog) then write(6,'(i25,1x,i10)') i,debug_MaterialpointLoopDistribution(i) else - write(6,'(i25,a1,i10)') i-1,'+',debug_MaterialpointLoopDistribution(i) + write(6,'(i25,a1,i10)') i-1_pInt,'+',debug_MaterialpointLoopDistribution(i) endif endif enddo diff --git a/code/fftw3.f03 b/code/fftw3.f03 index 933a53d57..4154b9bd1 100644 --- a/code/fftw3.f03 +++ b/code/fftw3.f03 @@ -2,42 +2,42 @@ integer, parameter :: C_FFTW_R2R_KIND = C_INT32_T - integer(C_INT), parameter :: FFTW_R2HC = 0 - integer(C_INT), parameter :: FFTW_HC2R = 1 - integer(C_INT), parameter :: FFTW_DHT = 2 - integer(C_INT), parameter :: FFTW_REDFT00 = 3 - integer(C_INT), parameter :: FFTW_REDFT01 = 4 - integer(C_INT), parameter :: FFTW_REDFT10 = 5 - integer(C_INT), parameter :: FFTW_REDFT11 = 6 - integer(C_INT), parameter :: FFTW_RODFT00 = 7 - integer(C_INT), parameter :: FFTW_RODFT01 = 8 - integer(C_INT), parameter :: FFTW_RODFT10 = 9 - integer(C_INT), parameter :: FFTW_RODFT11 = 10 - integer(C_INT), parameter :: FFTW_FORWARD = -1 - integer(C_INT), parameter :: FFTW_BACKWARD = +1 - integer(C_INT), parameter :: FFTW_MEASURE = 0 - integer(C_INT), parameter :: FFTW_DESTROY_INPUT = 1 - integer(C_INT), parameter :: FFTW_UNALIGNED = 2 - integer(C_INT), parameter :: FFTW_CONSERVE_MEMORY = 4 - integer(C_INT), parameter :: FFTW_EXHAUSTIVE = 8 - integer(C_INT), parameter :: FFTW_PRESERVE_INPUT = 16 - integer(C_INT), parameter :: FFTW_PATIENT = 32 - integer(C_INT), parameter :: FFTW_ESTIMATE = 64 - integer(C_INT), parameter :: FFTW_ESTIMATE_PATIENT = 128 - integer(C_INT), parameter :: FFTW_BELIEVE_PCOST = 256 - integer(C_INT), parameter :: FFTW_NO_DFT_R2HC = 512 - integer(C_INT), parameter :: FFTW_NO_NONTHREADED = 1024 - integer(C_INT), parameter :: FFTW_NO_BUFFERING = 2048 - integer(C_INT), parameter :: FFTW_NO_INDIRECT_OP = 4096 - integer(C_INT), parameter :: FFTW_ALLOW_LARGE_GENERIC = 8192 - integer(C_INT), parameter :: FFTW_NO_RANK_SPLITS = 16384 - integer(C_INT), parameter :: FFTW_NO_VRANK_SPLITS = 32768 - integer(C_INT), parameter :: FFTW_NO_VRECURSE = 65536 - integer(C_INT), parameter :: FFTW_NO_SIMD = 131072 - integer(C_INT), parameter :: FFTW_NO_SLOW = 262144 - integer(C_INT), parameter :: FFTW_NO_FIXED_RADIX_LARGE_N = 524288 - integer(C_INT), parameter :: FFTW_ALLOW_PRUNING = 1048576 - integer(C_INT), parameter :: FFTW_WISDOM_ONLY = 2097152 + integer(C_INT), parameter :: FFTW_R2HC = 0_C_INT + integer(C_INT), parameter :: FFTW_HC2R = 1_C_INT + integer(C_INT), parameter :: FFTW_DHT = 2_C_INT + integer(C_INT), parameter :: FFTW_REDFT00 = 3_C_INT + integer(C_INT), parameter :: FFTW_REDFT01 = 4_C_INT + integer(C_INT), parameter :: FFTW_REDFT10 = 5_C_INT + integer(C_INT), parameter :: FFTW_REDFT11 = 6_C_INT + integer(C_INT), parameter :: FFTW_RODFT00 = 7_C_INT + integer(C_INT), parameter :: FFTW_RODFT01 = 8_C_INT + integer(C_INT), parameter :: FFTW_RODFT10 = 9_C_INT + integer(C_INT), parameter :: FFTW_RODFT11 = 10_C_INT + integer(C_INT), parameter :: FFTW_FORWARD = -1_C_INT + integer(C_INT), parameter :: FFTW_BACKWARD = +1_C_INT + integer(C_INT), parameter :: FFTW_MEASURE = 0_C_INT + integer(C_INT), parameter :: FFTW_DESTROY_INPUT = 1_C_INT + integer(C_INT), parameter :: FFTW_UNALIGNED = 2_C_INT + integer(C_INT), parameter :: FFTW_CONSERVE_MEMORY = 4_C_INT + integer(C_INT), parameter :: FFTW_EXHAUSTIVE = 8_C_INT + integer(C_INT), parameter :: FFTW_PRESERVE_INPUT = 16_C_INT + integer(C_INT), parameter :: FFTW_PATIENT = 32_C_INT + integer(C_INT), parameter :: FFTW_ESTIMATE = 64_C_INT + integer(C_INT), parameter :: FFTW_ESTIMATE_PATIENT = 128_C_INT + integer(C_INT), parameter :: FFTW_BELIEVE_PCOST = 256_C_INT + integer(C_INT), parameter :: FFTW_NO_DFT_R2HC = 512_C_INT + integer(C_INT), parameter :: FFTW_NO_NONTHREADED = 1024_C_INT + integer(C_INT), parameter :: FFTW_NO_BUFFERING = 2048_C_INT + integer(C_INT), parameter :: FFTW_NO_INDIRECT_OP = 4096_C_INT + integer(C_INT), parameter :: FFTW_ALLOW_LARGE_GENERIC = 8192_C_INT + integer(C_INT), parameter :: FFTW_NO_RANK_SPLITS = 16384_C_INT + integer(C_INT), parameter :: FFTW_NO_VRANK_SPLITS = 32768_C_INT + integer(C_INT), parameter :: FFTW_NO_VRECURSE = 65536_C_INT + integer(C_INT), parameter :: FFTW_NO_SIMD = 131072_C_INT + integer(C_INT), parameter :: FFTW_NO_SLOW = 262144_C_INT + integer(C_INT), parameter :: FFTW_NO_FIXED_RADIX_LARGE_N = 524288_C_INT + integer(C_INT), parameter :: FFTW_ALLOW_PRUNING = 1048576_C_INT + integer(C_INT), parameter :: FFTW_WISDOM_ONLY = 2097152_C_INT type, bind(C) :: fftw_iodim integer(C_INT) n, is, os