print choses output unit automatically, no need to rely on 6
also shorter...
This commit is contained in:
parent
b51a1b7b93
commit
797073b015
|
@ -106,8 +106,7 @@ subroutine CPFEM_init
|
||||||
num_commercialFEM, &
|
num_commercialFEM, &
|
||||||
debug_CPFEM
|
debug_CPFEM
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- CPFEM init -+>>>'
|
print'(/,a)', ' <<<+- CPFEM init -+>>>'; flush(6)
|
||||||
flush(6)
|
|
||||||
|
|
||||||
allocate(CPFEM_cs( 6,discretization_nIP,discretization_nElem), source= 0.0_pReal)
|
allocate(CPFEM_cs( 6,discretization_nIP,discretization_nElem), source= 0.0_pReal)
|
||||||
allocate(CPFEM_dcsdE( 6,6,discretization_nIP,discretization_nElem), source= 0.0_pReal)
|
allocate(CPFEM_dcsdE( 6,6,discretization_nIP,discretization_nElem), source= 0.0_pReal)
|
||||||
|
@ -130,9 +129,9 @@ subroutine CPFEM_init
|
||||||
debugCPFEM%ip = config_debug%get_asInt('integrationpoint',defaultVal = 1)
|
debugCPFEM%ip = config_debug%get_asInt('integrationpoint',defaultVal = 1)
|
||||||
|
|
||||||
if(debugCPFEM%basic) then
|
if(debugCPFEM%basic) then
|
||||||
write(6,'(a32,1x,6(i8,1x))') 'CPFEM_cs: ', shape(CPFEM_cs)
|
print'(a32,1x,6(i8,1x))', 'CPFEM_cs: ', shape(CPFEM_cs)
|
||||||
write(6,'(a32,1x,6(i8,1x))') 'CPFEM_dcsdE: ', shape(CPFEM_dcsdE)
|
print'(a32,1x,6(i8,1x))', 'CPFEM_dcsdE: ', shape(CPFEM_dcsdE)
|
||||||
write(6,'(a32,1x,6(i8,1x),/)') 'CPFEM_dcsdE_knownGood: ', shape(CPFEM_dcsdE_knownGood)
|
print'(a32,1x,6(i8,1x),/)', 'CPFEM_dcsdE_knownGood: ', shape(CPFEM_dcsdE_knownGood)
|
||||||
flush(6)
|
flush(6)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -171,14 +170,14 @@ subroutine CPFEM_general(mode, ffn, ffn1, temperature_inp, dt, elFE, ip, cauchyS
|
||||||
elCP = mesh_FEM2DAMASK_elem(elFE)
|
elCP = mesh_FEM2DAMASK_elem(elFE)
|
||||||
|
|
||||||
if (debugCPFEM%basic .and. elCP == debugCPFEM%element .and. ip == debugCPFEM%ip) then
|
if (debugCPFEM%basic .and. elCP == debugCPFEM%element .and. ip == debugCPFEM%ip) then
|
||||||
write(6,'(/,a)') '#############################################'
|
print'(/,a)', '#############################################'
|
||||||
write(6,'(a1,a22,1x,i8,a13)') '#','element', elCP, '#'
|
print'(a1,a22,1x,i8,a13)', '#','element', elCP, '#'
|
||||||
write(6,'(a1,a22,1x,i8,a13)') '#','ip', ip, '#'
|
print'(a1,a22,1x,i8,a13)', '#','ip', ip, '#'
|
||||||
write(6,'(a1,a22,1x,i8,a13)') '#','cycleCounter', cycleCounter, '#'
|
print'(a1,a22,1x,i8,a13)', '#','cycleCounter', cycleCounter, '#'
|
||||||
write(6,'(a1,a22,1x,i8,a13)') '#','computationMode',mode, '#'
|
print'(a1,a22,1x,i8,a13)', '#','computationMode',mode, '#'
|
||||||
if (terminallyIll) &
|
if (terminallyIll) &
|
||||||
write(6,'(a,/)') '# --- terminallyIll --- #'
|
print'(a,/)', '# --- terminallyIll --- #'
|
||||||
write(6,'(a,/)') '#############################################'; flush (6)
|
print'(a,/)', '#############################################'; flush (6)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if (iand(mode, CPFEM_BACKUPJACOBIAN) /= 0_pInt) &
|
if (iand(mode, CPFEM_BACKUPJACOBIAN) /= 0_pInt) &
|
||||||
|
@ -209,7 +208,7 @@ subroutine CPFEM_general(mode, ffn, ffn1, temperature_inp, dt, elFE, ip, cauchyS
|
||||||
FEsolving_execElem = elCP
|
FEsolving_execElem = elCP
|
||||||
FEsolving_execIP = ip
|
FEsolving_execIP = ip
|
||||||
if (debugCPFEM%extensive) &
|
if (debugCPFEM%extensive) &
|
||||||
write(6,'(a,i8,1x,i2)') '<< CPFEM >> calculation for elFE ip ',elFE,ip
|
print'(a,i8,1x,i2)', '<< CPFEM >> calculation for elFE ip ',elFE,ip
|
||||||
call materialpoint_stressAndItsTangent(updateJaco, dt)
|
call materialpoint_stressAndItsTangent(updateJaco, dt)
|
||||||
|
|
||||||
terminalIllness: if (terminallyIll) then
|
terminalIllness: if (terminallyIll) then
|
||||||
|
@ -247,9 +246,9 @@ subroutine CPFEM_general(mode, ffn, ffn1, temperature_inp, dt, elFE, ip, cauchyS
|
||||||
|
|
||||||
if (debugCPFEM%extensive &
|
if (debugCPFEM%extensive &
|
||||||
.and. ((debugCPFEM%element == elCP .and. debugCPFEM%ip == ip) .or. .not. debugCPFEM%selective)) then
|
.and. ((debugCPFEM%element == elCP .and. debugCPFEM%ip == ip) .or. .not. debugCPFEM%selective)) then
|
||||||
write(6,'(a,i8,1x,i2,/,12x,6(f10.3,1x)/)') &
|
print'(a,i8,1x,i2,/,12x,6(f10.3,1x)/)', &
|
||||||
'<< CPFEM >> stress/MPa at elFE ip ', elFE, ip, CPFEM_cs(1:6,ip,elCP)*1.0e-6_pReal
|
'<< CPFEM >> stress/MPa at elFE ip ', elFE, ip, CPFEM_cs(1:6,ip,elCP)*1.0e-6_pReal
|
||||||
write(6,'(a,i8,1x,i2,/,6(12x,6(f10.3,1x)/))') &
|
print'(a,i8,1x,i2,/,6(12x,6(f10.3,1x)/))', &
|
||||||
'<< CPFEM >> Jacobian/GPa at elFE ip ', elFE, ip, transpose(CPFEM_dcsdE(1:6,1:6,ip,elCP))*1.0e-9_pReal
|
'<< CPFEM >> Jacobian/GPa at elFE ip ', elFE, ip, transpose(CPFEM_dcsdE(1:6,1:6,ip,elCP))*1.0e-9_pReal
|
||||||
flush(6)
|
flush(6)
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -76,7 +76,7 @@ end subroutine CPFEM_initAll
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine CPFEM_init
|
subroutine CPFEM_init
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- CPFEM init -+>>>'; flush(6)
|
print'(/,a)', ' <<<+- CPFEM init -+>>>'; flush(6)
|
||||||
|
|
||||||
if (interface_restartInc > 0) call crystallite_restartRead
|
if (interface_restartInc > 0) call crystallite_restartRead
|
||||||
|
|
||||||
|
|
|
@ -58,33 +58,33 @@ subroutine DAMASK_interface_init
|
||||||
integer :: ierr
|
integer :: ierr
|
||||||
character(len=pPathLen) :: wd
|
character(len=pPathLen) :: wd
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- DAMASK_marc init -+>>>'
|
print'(/,a)', ' <<<+- DAMASK_marc init -+>>>'
|
||||||
|
|
||||||
write(6,'(/,a)') ' Roters et al., Computational Materials Science 158:420–478, 2019'
|
print*, 'Roters et al., Computational Materials Science 158:420–478, 2019'
|
||||||
write(6,'(a)') ' https://doi.org/10.1016/j.commatsci.2018.04.030'
|
print*, 'https://doi.org/10.1016/j.commatsci.2018.04.030'
|
||||||
|
|
||||||
write(6,'(/,a)') ' Version: '//DAMASKVERSION
|
print'(/,a)', ' Version: '//DAMASKVERSION
|
||||||
|
|
||||||
! https://github.com/jeffhammond/HPCInfo/blob/master/docs/Preprocessor-Macros.md
|
! https://github.com/jeffhammond/HPCInfo/blob/master/docs/Preprocessor-Macros.md
|
||||||
#if __INTEL_COMPILER >= 1800
|
#if __INTEL_COMPILER >= 1800
|
||||||
write(6,'(/,a)') ' Compiled with: '//compiler_version()
|
print'(/,a)', ' Compiled with: '//compiler_version()
|
||||||
write(6,'(a)') ' Compiler options: '//compiler_options()
|
print'(a)', ' Compiler options: '//compiler_options()
|
||||||
#else
|
#else
|
||||||
write(6,'(/,a,i4.4,a,i8.8)') ' Compiled with Intel fortran version :', __INTEL_COMPILER,&
|
print'(/,a,i4.4,a,i8.8)', ' Compiled with Intel fortran version :', __INTEL_COMPILER,&
|
||||||
', build date :', __INTEL_COMPILER_BUILD_DATE
|
', build date :', __INTEL_COMPILER_BUILD_DATE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
write(6,'(/,a)') ' Compiled on: '//__DATE__//' at '//__TIME__
|
print'(/,a)', ' Compiled on: '//__DATE__//' at '//__TIME__
|
||||||
|
|
||||||
call date_and_time(values = dateAndTime)
|
call date_and_time(values = dateAndTime)
|
||||||
write(6,'(/,a,2(i2.2,a),i4.4)') ' Date: ',dateAndTime(3),'/',dateAndTime(2),'/', dateAndTime(1)
|
print'(/,a,2(i2.2,a),i4.4)', ' Date: ',dateAndTime(3),'/',dateAndTime(2),'/', dateAndTime(1)
|
||||||
write(6,'(a,2(i2.2,a),i2.2)') ' Time: ',dateAndTime(5),':', dateAndTime(6),':', dateAndTime(7)
|
print'(a,2(i2.2,a),i2.2)', ' Time: ',dateAndTime(5),':', dateAndTime(6),':', dateAndTime(7)
|
||||||
|
|
||||||
inquire(5, name=wd)
|
inquire(5, name=wd)
|
||||||
wd = wd(1:scan(wd,'/',back=.true.))
|
wd = wd(1:scan(wd,'/',back=.true.))
|
||||||
ierr = CHDIR(wd)
|
ierr = CHDIR(wd)
|
||||||
if (ierr /= 0) then
|
if (ierr /= 0) then
|
||||||
write(6,'(a20,a,a16)') ' working directory "',trim(wd),'" does not exist'
|
print*, 'working directory "'//trim(wd)//'" does not exist'
|
||||||
call quit(1)
|
call quit(1)
|
||||||
endif
|
endif
|
||||||
symmetricSolver = solverIsSymmetric()
|
symmetricSolver = solverIsSymmetric()
|
||||||
|
@ -257,14 +257,14 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, &
|
||||||
debug_Marc ! pointer to Marc debug options
|
debug_Marc ! pointer to Marc debug options
|
||||||
|
|
||||||
if(debug_basic) then
|
if(debug_basic) then
|
||||||
write(6,'(a,/,i8,i8,i2)') ' MSC.MARC information on shape of element(2), IP:', m, nn
|
print'(a,/,i8,i8,i2)', ' MSC.MARC information on shape of element(2), IP:', m, nn
|
||||||
write(6,'(a,2(i1))') ' Jacobian: ', ngens,ngens
|
print'(a,2(i1))', ' Jacobian: ', ngens,ngens
|
||||||
write(6,'(a,i1)') ' Direct stress: ', ndi
|
print'(a,i1)', ' Direct stress: ', ndi
|
||||||
write(6,'(a,i1)') ' Shear stress: ', nshear
|
print'(a,i1)', ' Shear stress: ', nshear
|
||||||
write(6,'(a,i2)') ' DoF: ', ndeg
|
print'(a,i2)', ' DoF: ', ndeg
|
||||||
write(6,'(a,i2)') ' Coordinates: ', ncrd
|
print'(a,i2)', ' Coordinates: ', ncrd
|
||||||
write(6,'(a,i12)') ' Nodes: ', nnode
|
print'(a,i12)', ' Nodes: ', nnode
|
||||||
write(6,'(a,i1)') ' Deformation gradient: ', itel
|
print'(a,i1)', ' Deformation gradient: ', itel
|
||||||
write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') ' Deformation gradient at t=n:', &
|
write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') ' Deformation gradient at t=n:', &
|
||||||
transpose(ffn)
|
transpose(ffn)
|
||||||
write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') ' Deformation gradient at t=n+1:', &
|
write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') ' Deformation gradient at t=n+1:', &
|
||||||
|
@ -295,22 +295,22 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, &
|
||||||
lastIncConverged = .false.
|
lastIncConverged = .false.
|
||||||
outdatedByNewInc = .false.
|
outdatedByNewInc = .false.
|
||||||
lastLovl = lovl ! pretend that this is NOT the first after a lovl change
|
lastLovl = lovl ! pretend that this is NOT the first after a lovl change
|
||||||
write(6,'(a,i6,1x,i2)') '<< HYPELA2 >> start of analysis..! ',m(1),nn
|
print'(a,i6,1x,i2)', '<< HYPELA2 >> start of analysis..! ',m(1),nn
|
||||||
else if (inc - theInc > 1) then ! >> restart of broken analysis <<
|
else if (inc - theInc > 1) then ! >> restart of broken analysis <<
|
||||||
lastIncConverged = .false.
|
lastIncConverged = .false.
|
||||||
outdatedByNewInc = .false.
|
outdatedByNewInc = .false.
|
||||||
write(6,'(a,i6,1x,i2)') '<< HYPELA2 >> restart of analysis..! ',m(1),nn
|
print'(a,i6,1x,i2)', '<< HYPELA2 >> restart of analysis..! ',m(1),nn
|
||||||
else ! >> just the next inc <<
|
else ! >> just the next inc <<
|
||||||
lastIncConverged = .true.
|
lastIncConverged = .true.
|
||||||
outdatedByNewInc = .true.
|
outdatedByNewInc = .true.
|
||||||
write(6,'(a,i6,1x,i2)') '<< HYPELA2 >> new increment..! ',m(1),nn
|
print'(a,i6,1x,i2)', '<< HYPELA2 >> new increment..! ',m(1),nn
|
||||||
endif
|
endif
|
||||||
else if ( timinc < theDelta ) then ! >> cutBack <<
|
else if ( timinc < theDelta ) then ! >> cutBack <<
|
||||||
lastIncConverged = .false.
|
lastIncConverged = .false.
|
||||||
outdatedByNewInc = .false.
|
outdatedByNewInc = .false.
|
||||||
terminallyIll = .false.
|
terminallyIll = .false.
|
||||||
cycleCounter = -1 ! first calc step increments this to cycle = 0
|
cycleCounter = -1 ! first calc step increments this to cycle = 0
|
||||||
write(6,'(a,i6,1x,i2)') '<< HYPELA2 >> cutback detected..! ',m(1),nn
|
print'(a,i6,1x,i2)', '<< HYPELA2 >> cutback detected..! ',m(1),nn
|
||||||
endif ! convergence treatment end
|
endif ! convergence treatment end
|
||||||
flush(6)
|
flush(6)
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ contains
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine IO_init
|
subroutine IO_init
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- IO init -+>>>'; flush(6)
|
print'(/,a)', ' <<<+- IO init -+>>>'; flush(6)
|
||||||
|
|
||||||
call selfTest
|
call selfTest
|
||||||
|
|
||||||
|
|
|
@ -189,7 +189,7 @@ contains
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine YAML_types_init
|
subroutine YAML_types_init
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- YAML_types init -+>>>'
|
print'(/,a)', ' <<<+- YAML_types init -+>>>'
|
||||||
|
|
||||||
call selfTest
|
call selfTest
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ contains
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine base64_init
|
subroutine base64_init
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- base64 init -+>>>'; flush(6)
|
print'(/,a)', ' <<<+- base64 init -+>>>'; flush(6)
|
||||||
|
|
||||||
call selfTest
|
call selfTest
|
||||||
|
|
||||||
|
|
|
@ -201,10 +201,10 @@ module subroutine plastic_isotropic_LpAndItsTangent(Lp,dLp_dMp,Mp,instance,of)
|
||||||
Lp = dot_gamma/prm%M * Mp_dev/norm_Mp_dev
|
Lp = dot_gamma/prm%M * Mp_dev/norm_Mp_dev
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (debugConstitutive%extensive .and. (of == prm%of_debug .or. .not. debugConstitutive%selective)) then
|
if (debugConstitutive%extensive .and. (of == prm%of_debug .or. .not. debugConstitutive%selective)) then
|
||||||
write(6,'(/,a,/,3(12x,3(f12.4,1x)/))') '<< CONST isotropic >> Tstar (dev) / MPa', &
|
print'(/,a,/,3(12x,3(f12.4,1x)/))', '<< CONST isotropic >> Tstar (dev) / MPa', &
|
||||||
transpose(Mp_dev)*1.0e-6_pReal
|
transpose(Mp_dev)*1.0e-6_pReal
|
||||||
write(6,'(/,a,/,f12.5)') '<< CONST isotropic >> norm Tstar / MPa', norm_Mp_dev*1.0e-6_pReal
|
print'(/,a,/,f12.5)', '<< CONST isotropic >> norm Tstar / MPa', norm_Mp_dev*1.0e-6_pReal
|
||||||
write(6,'(/,a,/,f12.5)') '<< CONST isotropic >> gdot', dot_gamma
|
print'(/,a,/,f12.5)', '<< CONST isotropic >> gdot', dot_gamma
|
||||||
end if
|
end if
|
||||||
#endif
|
#endif
|
||||||
forall (k=1:3,l=1:3,m=1:3,n=1:3) &
|
forall (k=1:3,l=1:3,m=1:3,n=1:3) &
|
||||||
|
@ -256,8 +256,8 @@ module subroutine plastic_isotropic_LiAndItsTangent(Li,dLi_dMi,Mi,instance,of)
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (debugConstitutive%extensive .and. (of == prm%of_debug .or. .not. debugConstitutive%selective)) then
|
if (debugConstitutive%extensive .and. (of == prm%of_debug .or. .not. debugConstitutive%selective)) then
|
||||||
write(6,'(/,a,/,f12.5)') '<< CONST isotropic >> pressure / MPa', tr/3.0_pReal*1.0e-6_pReal
|
print'(/,a,/,f12.5)', '<< CONST isotropic >> pressure / MPa', tr/3.0_pReal*1.0e-6_pReal
|
||||||
write(6,'(/,a,/,f12.5)') '<< CONST isotropic >> gdot', prm%dot_gamma_0 * (3.0_pReal*prm%M*stt%xi(of))**(-prm%n) &
|
print'(/,a,/,f12.5)', '<< CONST isotropic >> gdot', prm%dot_gamma_0 * (3.0_pReal*prm%M*stt%xi(of))**(-prm%n) &
|
||||||
* tr * abs(tr)**(prm%n-1.0_pReal)
|
* tr * abs(tr)**(prm%n-1.0_pReal)
|
||||||
end if
|
end if
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -345,8 +345,8 @@ module subroutine plastic_kinehardening_deltaState(Mp,instance,of)
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (debugConstitutive%extensive &
|
if (debugConstitutive%extensive &
|
||||||
.and. (of == prm%of_debug .or. .not. debugConstitutive%selective)) then
|
.and. (of == prm%of_debug .or. .not. debugConstitutive%selective)) then
|
||||||
write(6,'(a)') '======= kinehardening delta state ======='
|
print*, '======= kinehardening delta state ======='
|
||||||
write(6,*) sense,state(instance)%sense(:,of)
|
print*, sense,state(instance)%sense(:,of)
|
||||||
endif
|
endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1274,7 +1274,7 @@ function rhoDotFlux(F,Fp,timestep, instance,of,ip,el)
|
||||||
.and. prm%CFLfactor * abs(v0) * timestep &
|
.and. prm%CFLfactor * abs(v0) * timestep &
|
||||||
> IPvolume(ip,el) / maxval(IParea(:,ip,el))), &
|
> IPvolume(ip,el) / maxval(IParea(:,ip,el))), &
|
||||||
' at a timestep of ',timestep
|
' at a timestep of ',timestep
|
||||||
write(6,'(a)') '<< CONST >> enforcing cutback !!!'
|
print*, '<< CONST >> enforcing cutback !!!'
|
||||||
endif
|
endif
|
||||||
#endif
|
#endif
|
||||||
rhoDotFlux = IEEE_value(1.0_pReal,IEEE_quiet_NaN) ! enforce cutback
|
rhoDotFlux = IEEE_value(1.0_pReal,IEEE_quiet_NaN) ! enforce cutback
|
||||||
|
|
|
@ -146,7 +146,7 @@ subroutine crystallite_init
|
||||||
phase, &
|
phase, &
|
||||||
generic_param
|
generic_param
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- crystallite init -+>>>'
|
print'(/,a)', ' <<<+- crystallite init -+>>>'
|
||||||
|
|
||||||
debug_crystallite => config_debug%get('crystallite', defaultVal=emptyList)
|
debug_crystallite => config_debug%get('crystallite', defaultVal=emptyList)
|
||||||
debugCrystallite%basic = debug_crystallite%contains('basic')
|
debugCrystallite%basic = debug_crystallite%contains('basic')
|
||||||
|
@ -291,9 +291,9 @@ subroutine crystallite_init
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (debugCrystallite%basic) then
|
if (debugCrystallite%basic) then
|
||||||
write(6,'(a42,1x,i10)') ' # of elements: ', eMax
|
print'(a42,1x,i10)', ' # of elements: ', eMax
|
||||||
write(6,'(a42,1x,i10)') ' # of integration points/element: ', iMax
|
print'(a42,1x,i10)', ' # of integration points/element: ', iMax
|
||||||
write(6,'(a42,1x,i10)') 'max # of constituents/integration point: ', cMax
|
print'(a42,1x,i10)', 'max # of constituents/integration point: ', cMax
|
||||||
flush(6)
|
flush(6)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -324,24 +324,24 @@ function crystallite_stress()
|
||||||
if (debugCrystallite%selective &
|
if (debugCrystallite%selective &
|
||||||
.and. FEsolving_execElem(1) <= debugCrystallite%element &
|
.and. FEsolving_execElem(1) <= debugCrystallite%element &
|
||||||
.and. debugCrystallite%element <= FEsolving_execElem(2)) then
|
.and. debugCrystallite%element <= FEsolving_execElem(2)) then
|
||||||
write(6,'(/,a,i8,1x,i2,1x,i3)') '<< CRYST stress >> boundary and initial values at el ip ipc ', &
|
print'(/,a,i8,1x,i2,1x,i3)', '<< CRYST stress >> boundary and initial values at el ip ipc ', &
|
||||||
debugCrystallite%element,debugCrystallite%ip, debugCrystallite%grain
|
debugCrystallite%element,debugCrystallite%ip, debugCrystallite%grain
|
||||||
write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST stress >> F ', &
|
print'(a,/,3(12x,3(f14.9,1x)/))', '<< CRYST stress >> F ', &
|
||||||
transpose(crystallite_partionedF(1:3,1:3,debugCrystallite%grain, &
|
transpose(crystallite_partionedF(1:3,1:3,debugCrystallite%grain, &
|
||||||
debugCrystallite%ip,debugCrystallite%element))
|
debugCrystallite%ip,debugCrystallite%element))
|
||||||
write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST stress >> F0 ', &
|
print'(a,/,3(12x,3(f14.9,1x)/))', '<< CRYST stress >> F0 ', &
|
||||||
transpose(crystallite_partionedF0(1:3,1:3,debugCrystallite%grain, &
|
transpose(crystallite_partionedF0(1:3,1:3,debugCrystallite%grain, &
|
||||||
debugCrystallite%ip,debugCrystallite%element))
|
debugCrystallite%ip,debugCrystallite%element))
|
||||||
write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST stress >> Fp0', &
|
print'(a,/,3(12x,3(f14.9,1x)/))', '<< CRYST stress >> Fp0', &
|
||||||
transpose(crystallite_partionedFp0(1:3,1:3,debugCrystallite%grain, &
|
transpose(crystallite_partionedFp0(1:3,1:3,debugCrystallite%grain, &
|
||||||
debugCrystallite%ip,debugCrystallite%element))
|
debugCrystallite%ip,debugCrystallite%element))
|
||||||
write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST stress >> Fi0', &
|
print'(a,/,3(12x,3(f14.9,1x)/))', '<< CRYST stress >> Fi0', &
|
||||||
transpose(crystallite_partionedFi0(1:3,1:3,debugCrystallite%grain, &
|
transpose(crystallite_partionedFi0(1:3,1:3,debugCrystallite%grain, &
|
||||||
debugCrystallite%ip,debugCrystallite%element))
|
debugCrystallite%ip,debugCrystallite%element))
|
||||||
write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST stress >> Lp0', &
|
print'(a,/,3(12x,3(f14.9,1x)/))', '<< CRYST stress >> Lp0', &
|
||||||
transpose(crystallite_partionedLp0(1:3,1:3,debugCrystallite%grain, &
|
transpose(crystallite_partionedLp0(1:3,1:3,debugCrystallite%grain, &
|
||||||
debugCrystallite%ip,debugCrystallite%element))
|
debugCrystallite%ip,debugCrystallite%element))
|
||||||
write(6,'(a,/,3(12x,3(f14.9,1x)/))') '<< CRYST stress >> Li0', &
|
print'(a,/,3(12x,3(f14.9,1x)/))', '<< CRYST stress >> Li0', &
|
||||||
transpose(crystallite_partionedLi0(1:3,1:3,debugCrystallite%grain, &
|
transpose(crystallite_partionedLi0(1:3,1:3,debugCrystallite%grain, &
|
||||||
debugCrystallite%ip,debugCrystallite%element))
|
debugCrystallite%ip,debugCrystallite%element))
|
||||||
endif
|
endif
|
||||||
|
@ -390,7 +390,7 @@ function crystallite_stress()
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (debugCrystallite%extensive) &
|
if (debugCrystallite%extensive) &
|
||||||
write(6,'(a,i6)') '<< CRYST stress >> crystallite iteration ',NiterationCrystallite
|
print'(a,i6)', '<< CRYST stress >> crystallite iteration ',NiterationCrystallite
|
||||||
#endif
|
#endif
|
||||||
!$OMP PARALLEL DO PRIVATE(formerSubStep)
|
!$OMP PARALLEL DO PRIVATE(formerSubStep)
|
||||||
elementLooping3: do e = FEsolving_execElem(1),FEsolving_execElem(2)
|
elementLooping3: do e = FEsolving_execElem(1),FEsolving_execElem(2)
|
||||||
|
@ -1561,9 +1561,9 @@ subroutine crystallite_restartWrite
|
||||||
integer(HID_T) :: fileHandle, groupHandle
|
integer(HID_T) :: fileHandle, groupHandle
|
||||||
character(len=pStringLen) :: fileName, datasetName
|
character(len=pStringLen) :: fileName, datasetName
|
||||||
|
|
||||||
write(6,'(a)') ' writing field and constitutive data required for restart to file';flush(6)
|
print'(a)', ' writing field and constitutive data required for restart to file';flush(6)
|
||||||
|
|
||||||
write(fileName,'(a,i0,a)') trim(getSolverJobName())//'_',worldrank,'.hdf5'
|
write(fileName,'(a,i0,a)', trim(getSolverJobName())//'_',worldrank,'.hdf5'
|
||||||
fileHandle = HDF5_openFile(fileName,'a')
|
fileHandle = HDF5_openFile(fileName,'a')
|
||||||
|
|
||||||
call HDF5_write(fileHandle,crystallite_partionedF,'F')
|
call HDF5_write(fileHandle,crystallite_partionedF,'F')
|
||||||
|
@ -1575,14 +1575,14 @@ subroutine crystallite_restartWrite
|
||||||
|
|
||||||
groupHandle = HDF5_addGroup(fileHandle,'constituent')
|
groupHandle = HDF5_addGroup(fileHandle,'constituent')
|
||||||
do i = 1,size(material_name_phase)
|
do i = 1,size(material_name_phase)
|
||||||
write(datasetName,'(i0,a)') i,'_omega_plastic'
|
write(datasetName,'(i0,a)', i,'_omega_plastic'
|
||||||
call HDF5_write(groupHandle,plasticState(i)%state,datasetName)
|
call HDF5_write(groupHandle,plasticState(i)%state,datasetName)
|
||||||
enddo
|
enddo
|
||||||
call HDF5_closeGroup(groupHandle)
|
call HDF5_closeGroup(groupHandle)
|
||||||
|
|
||||||
groupHandle = HDF5_addGroup(fileHandle,'materialpoint')
|
groupHandle = HDF5_addGroup(fileHandle,'materialpoint')
|
||||||
do i = 1, material_Nhomogenization
|
do i = 1, material_Nhomogenization
|
||||||
write(datasetName,'(i0,a)') i,'_omega_homogenization'
|
write(datasetName,'(i0,a)', i,'_omega_homogenization'
|
||||||
call HDF5_write(groupHandle,homogState(i)%state,datasetName)
|
call HDF5_write(groupHandle,homogState(i)%state,datasetName)
|
||||||
enddo
|
enddo
|
||||||
call HDF5_closeGroup(groupHandle)
|
call HDF5_closeGroup(groupHandle)
|
||||||
|
@ -1602,9 +1602,9 @@ subroutine crystallite_restartRead
|
||||||
integer(HID_T) :: fileHandle, groupHandle
|
integer(HID_T) :: fileHandle, groupHandle
|
||||||
character(len=pStringLen) :: fileName, datasetName
|
character(len=pStringLen) :: fileName, datasetName
|
||||||
|
|
||||||
write(6,'(/,a,i0,a)') ' reading restart information of increment from file'
|
print'(/,a,i0,a)', ' reading restart information of increment from file'
|
||||||
|
|
||||||
write(fileName,'(a,i0,a)') trim(getSolverJobName())//'_',worldrank,'.hdf5'
|
write(fileName,'(a,i0,a)', trim(getSolverJobName())//'_',worldrank,'.hdf5'
|
||||||
fileHandle = HDF5_openFile(fileName)
|
fileHandle = HDF5_openFile(fileName)
|
||||||
|
|
||||||
call HDF5_read(fileHandle,crystallite_F0, 'F')
|
call HDF5_read(fileHandle,crystallite_F0, 'F')
|
||||||
|
|
|
@ -49,7 +49,7 @@ subroutine damage_local_init
|
||||||
homog, &
|
homog, &
|
||||||
homogDamage
|
homogDamage
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- damage_local init -+>>>'; flush(6)
|
print'(/,a)', ' <<<+- damage_local init -+>>>'; flush(6)
|
||||||
|
|
||||||
!----------------------------------------------------------------------------------------------
|
!----------------------------------------------------------------------------------------------
|
||||||
! read numerics parameter and do sanity check
|
! read numerics parameter and do sanity check
|
||||||
|
|
|
@ -18,7 +18,7 @@ subroutine damage_none_init
|
||||||
|
|
||||||
integer :: h,NofMyHomog
|
integer :: h,NofMyHomog
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- damage_none init -+>>>'; flush(6)
|
print'(/,a)', ' <<<+- damage_none init -+>>>'; flush(6)
|
||||||
|
|
||||||
do h = 1, material_Nhomogenization
|
do h = 1, material_Nhomogenization
|
||||||
if (damage_type(h) /= DAMAGE_NONE_ID) cycle
|
if (damage_type(h) /= DAMAGE_NONE_ID) cycle
|
||||||
|
|
|
@ -53,7 +53,7 @@ subroutine damage_nonlocal_init
|
||||||
homog, &
|
homog, &
|
||||||
homogDamage
|
homogDamage
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- damage_nonlocal init -+>>>'; flush(6)
|
print'(/,a)', ' <<<+- damage_nonlocal init -+>>>'; flush(6)
|
||||||
|
|
||||||
!------------------------------------------------------------------------------------
|
!------------------------------------------------------------------------------------
|
||||||
! read numerics parameter
|
! read numerics parameter
|
||||||
|
|
|
@ -457,7 +457,7 @@ subroutine lattice_init
|
||||||
phase, &
|
phase, &
|
||||||
elasticity
|
elasticity
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- lattice init -+>>>'; flush(6)
|
print'(/,a)', ' <<<+- lattice init -+>>>'; flush(6)
|
||||||
|
|
||||||
phases => config_material%get('phase')
|
phases => config_material%get('phase')
|
||||||
Nphases = phases%length
|
Nphases = phases%length
|
||||||
|
|
|
@ -160,12 +160,11 @@ subroutine material_init(restart)
|
||||||
|
|
||||||
integer :: ph, myHomog
|
integer :: ph, myHomog
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
debug_material, & ! pointer to material debug options
|
|
||||||
phases, &
|
phases, &
|
||||||
material_homogenization
|
material_homogenization
|
||||||
character(len=pStringLen) :: sectionName
|
character(len=pStringLen) :: sectionName
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- material init -+>>>'; flush(6)
|
print'(/,a)', ' <<<+- material init -+>>>'; flush(6)
|
||||||
|
|
||||||
phases => config_material%get('phase')
|
phases => config_material%get('phase')
|
||||||
allocate(material_name_phase(phases%length))
|
allocate(material_name_phase(phases%length))
|
||||||
|
@ -181,13 +180,11 @@ subroutine material_init(restart)
|
||||||
material_name_homogenization(myHomog) = trim(adjustl(sectionName))//material_homogenization%getKey(myHomog)
|
material_name_homogenization(myHomog) = trim(adjustl(sectionName))//material_homogenization%getKey(myHomog)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
debug_material => config_debug%get('material',defaultVal=emptyList)
|
call material_parseMicrostructure
|
||||||
|
print*, ' Microstructure parsed'
|
||||||
|
|
||||||
call material_parseMicrostructure()
|
call material_parseHomogenization
|
||||||
if (debug_material%contains('basic')) write(6,'(a)') ' Microstructure parsed'; flush(6)
|
print*, ' Homogenization parsed'
|
||||||
|
|
||||||
call material_parseHomogenization()
|
|
||||||
if (debug_material%contains('basic')) write(6,'(a)') ' Homogenization parsed'; flush(6)
|
|
||||||
|
|
||||||
|
|
||||||
if(homogenization_maxNgrains > size(material_phaseAt,1)) call IO_error(148)
|
if(homogenization_maxNgrains > size(material_phaseAt,1)) call IO_error(148)
|
||||||
|
|
|
@ -91,7 +91,7 @@ subroutine math_init
|
||||||
class(tNode), pointer :: &
|
class(tNode), pointer :: &
|
||||||
num_generic
|
num_generic
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- math init -+>>>'; flush(6)
|
print'(/,a)', ' <<<+- math init -+>>>'; flush(6)
|
||||||
|
|
||||||
num_generic => config_numerics%get('generic',defaultVal=emptyDict)
|
num_generic => config_numerics%get('generic',defaultVal=emptyDict)
|
||||||
randomSeed = num_generic%get_asInt('random_seed', defaultVal = 0)
|
randomSeed = num_generic%get_asInt('random_seed', defaultVal = 0)
|
||||||
|
@ -109,9 +109,9 @@ subroutine math_init
|
||||||
call random_seed(put = randInit)
|
call random_seed(put = randInit)
|
||||||
call random_number(randTest)
|
call random_number(randTest)
|
||||||
|
|
||||||
write(6,'(a,i2)') ' size of random seed: ', randSize
|
print'(a,i2)', ' size of random seed: ', randSize
|
||||||
write(6,'(a,i0)') ' value of random seed: ', randInit(1)
|
print'(a,i0)', ' value of random seed: ', randInit(1)
|
||||||
write(6,'(a,4(/,26x,f17.14),/)') ' start of random sequence: ', randTest
|
print'(a,4(/,26x,f17.14),/)', ' start of random sequence: ', randTest
|
||||||
|
|
||||||
call random_seed(put = randInit)
|
call random_seed(put = randInit)
|
||||||
|
|
||||||
|
|
14
src/prec.f90
14
src/prec.f90
|
@ -87,14 +87,14 @@ contains
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine prec_init
|
subroutine prec_init
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- prec init -+>>>'
|
print'(/,a)', ' <<<+- prec init -+>>>'
|
||||||
|
|
||||||
write(6,'(a,i3)') ' Size of integer in bit: ',bit_size(0)
|
print'(a,i3)', ' Size of integer in bit: ',bit_size(0)
|
||||||
write(6,'(a,i19)') ' Maximum value: ',huge(0)
|
print'(a,i19)', ' Maximum value: ',huge(0)
|
||||||
write(6,'(/,a,i3)') ' Size of float in bit: ',storage_size(0.0_pReal)
|
print'(/,a,i3)', ' Size of float in bit: ',storage_size(0.0_pReal)
|
||||||
write(6,'(a,e10.3)') ' Maximum value: ',huge(0.0_pReal)
|
print'(a,e10.3)', ' Maximum value: ',huge(0.0_pReal)
|
||||||
write(6,'(a,e10.3)') ' Minimum value: ',tiny(0.0_pReal)
|
print'(a,e10.3)', ' Minimum value: ',tiny(0.0_pReal)
|
||||||
write(6,'(a,i3)') ' Decimal precision: ',precision(0.0_pReal)
|
print'(a,i3)', ' Decimal precision: ',precision(0.0_pReal)
|
||||||
|
|
||||||
call selfTest
|
call selfTest
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ subroutine thermal_adiabatic_init
|
||||||
homog, &
|
homog, &
|
||||||
homogThermal
|
homogThermal
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- thermal_adiabatic init -+>>>'; flush(6)
|
print'(/,a)', ' <<<+- thermal_adiabatic init -+>>>'; flush(6)
|
||||||
|
|
||||||
maxNinstance = count(thermal_type == THERMAL_adiabatic_ID)
|
maxNinstance = count(thermal_type == THERMAL_adiabatic_ID)
|
||||||
if (maxNinstance == 0) return
|
if (maxNinstance == 0) return
|
||||||
|
|
|
@ -47,7 +47,7 @@ subroutine thermal_conduction_init
|
||||||
homog, &
|
homog, &
|
||||||
homogThermal
|
homogThermal
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- thermal_conduction init -+>>>'; flush(6)
|
print'(/,a)', ' <<<+- thermal_conduction init -+>>>'; flush(6)
|
||||||
|
|
||||||
Ninstance = count(thermal_type == THERMAL_conduction_ID)
|
Ninstance = count(thermal_type == THERMAL_conduction_ID)
|
||||||
allocate(param(Ninstance))
|
allocate(param(Ninstance))
|
||||||
|
|
|
@ -18,7 +18,7 @@ subroutine thermal_isothermal_init
|
||||||
|
|
||||||
integer :: h,NofMyHomog
|
integer :: h,NofMyHomog
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- thermal_isothermal init -+>>>'; flush(6)
|
print'(/,a)', ' <<<+- thermal_isothermal init -+>>>'; flush(6)
|
||||||
|
|
||||||
do h = 1, material_Nhomogenization
|
do h = 1, material_Nhomogenization
|
||||||
if (thermal_type(h) /= THERMAL_isothermal_ID) cycle
|
if (thermal_type(h) /= THERMAL_isothermal_ID) cycle
|
||||||
|
|
Loading…
Reference in New Issue