From cc92b0ad84dc6a48ac60fa7c885e33aa70281bba Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 19 Sep 2020 08:20:29 +0200 Subject: [PATCH 01/13] print is more appropriate than write --- src/DAMASK_interface.f90 | 4 +- src/constitutive_plastic_nonlocal.f90 | 2 +- src/grid/DAMASK_grid.f90 | 40 ++++++++++---------- src/grid/discretization_grid.f90 | 2 +- src/grid/grid_damage_spectral.f90 | 38 ++++++++----------- src/grid/grid_mech_FEM.f90 | 29 +++++++------- src/grid/grid_mech_spectral_basic.f90 | 30 +++++++-------- src/grid/grid_mech_spectral_polarisation.f90 | 27 +++++++------ src/grid/grid_thermal_spectral.f90 | 30 ++++++--------- src/grid/spectral_utilities.f90 | 14 +++---- src/marc/discretization_marc.f90 | 2 +- src/mesh/DAMASK_mesh.f90 | 30 +++++++-------- src/mesh/FEM_quadrature.f90 | 2 +- src/mesh/FEM_utilities.f90 | 6 +-- src/mesh/discretization_mesh.f90 | 2 +- src/mesh/mesh_mech_FEM.f90 | 6 +-- 16 files changed, 124 insertions(+), 140 deletions(-) diff --git a/src/DAMASK_interface.f90 b/src/DAMASK_interface.f90 index 46ecd4da0..4c3258556 100644 --- a/src/DAMASK_interface.f90 +++ b/src/DAMASK_interface.f90 @@ -101,8 +101,8 @@ subroutine DAMASK_interface_init #endif print*, achar(27)//'[0m' - print'(a)', ' Roters et al., Computational Materials Science 158:420–478, 2019' - print'(a)', ' https://doi.org/10.1016/j.commatsci.2018.04.030' + print*, 'Roters et al., Computational Materials Science 158:420–478, 2019' + print*, 'https://doi.org/10.1016/j.commatsci.2018.04.030' print'(/,a)', ' Version: '//DAMASKVERSION diff --git a/src/constitutive_plastic_nonlocal.f90 b/src/constitutive_plastic_nonlocal.f90 index c96301691..9eef17719 100644 --- a/src/constitutive_plastic_nonlocal.f90 +++ b/src/constitutive_plastic_nonlocal.f90 @@ -199,7 +199,7 @@ module function plastic_nonlocal_init() result(myPlasticity) print*, 'https://doi.org/10.1016/j.actamat.2014.03.012'//IO_EOL print*, 'Kords, Dissertation RWTH Aachen, 2014' - print*, 'http://publications.rwth-aachen.de/record/229993'//IO_EOL + print*, 'http://publications.rwth-aachen.de/record/229993' allocate(param(Ninstance)) allocate(state(Ninstance)) diff --git a/src/grid/DAMASK_grid.f90 b/src/grid/DAMASK_grid.f90 index a5001de44..341210afc 100644 --- a/src/grid/DAMASK_grid.f90 +++ b/src/grid/DAMASK_grid.f90 @@ -99,10 +99,10 @@ program DAMASK_grid ! init DAMASK (all modules) call CPFEM_initAll - write(6,'(/,a)') ' <<<+- DAMASK_spectral init -+>>>'; flush(6) + print'(/,a)', ' <<<+- DAMASK_spectral init -+>>>'; flush(6) - write(6,'(/,a)') ' Shanthraj et al., Handbook of Mechanics of Materials, 2019' - write(6,'(a)') ' https://doi.org/10.1007/978-981-10-6855-3_80' + print*, 'Shanthraj et al., Handbook of Mechanics of Materials, 2019' + print*, 'https://doi.org/10.1007/978-981-10-6855-3_80' !-------------------------------------------------------------------------------------------------- ! initialize field solver information @@ -263,19 +263,19 @@ program DAMASK_grid reportAndCheck: if (worldrank == 0) then write (loadcase_string, '(i0)' ) currentLoadCase - write(6,'(/,1x,a,i0)') 'load case: ', currentLoadCase + print'(/,a,i0)', ' load case: ', currentLoadCase if (.not. newLoadCase%followFormerTrajectory) & - write(6,'(2x,a)') 'drop guessing along trajectory' + print*, ' drop guessing along trajectory' if (newLoadCase%deformation%myType == 'l') then do j = 1, 3 if (any(newLoadCase%deformation%maskLogical(j,1:3) .eqv. .true.) .and. & any(newLoadCase%deformation%maskLogical(j,1:3) .eqv. .false.)) errorID = 832 ! each row should be either fully or not at all defined enddo - write(6,'(2x,a)') 'velocity gradient:' + print*, ' velocity gradient:' else if (newLoadCase%deformation%myType == 'f') then - write(6,'(2x,a)') 'deformation gradient at end of load case:' + print*, ' deformation gradient at end of load case:' else - write(6,'(2x,a)') 'deformation gradient rate:' + print*, ' deformation gradient rate:' endif do i = 1, 3; do j = 1, 3 if(newLoadCase%deformation%maskLogical(i,j)) then @@ -289,7 +289,7 @@ program DAMASK_grid newLoadCase%deformation%maskLogical)) errorID = 831 ! exclusive or masking only if (any(newLoadCase%stress%maskLogical .and. transpose(newLoadCase%stress%maskLogical) & .and. (math_I3<1))) errorID = 838 ! no rotation is allowed by stress BC - write(6,'(2x,a)') 'stress / GPa:' + print*, ' stress / GPa:' do i = 1, 3; do j = 1, 3 if(newLoadCase%stress%maskLogical(i,j)) then write(6,'(2x,f12.7)',advance='no') newLoadCase%stress%values(i,j)*1e-9_pReal @@ -305,14 +305,14 @@ program DAMASK_grid write(6,'(2x,a,/,3(3(3x,f12.7,1x)/))',advance='no') 'rotation of loadframe:',& transpose(newLoadCase%rot%asMatrix()) if (newLoadCase%time < 0.0_pReal) errorID = 834 ! negative time increment - write(6,'(2x,a,f0.3)') 'time: ', newLoadCase%time + print'(a,f0.3)', ' time: ', newLoadCase%time if (newLoadCase%incs < 1) errorID = 835 ! non-positive incs count - write(6,'(2x,a,i0)') 'increments: ', newLoadCase%incs + print'(a,i0)', ' increments: ', newLoadCase%incs if (newLoadCase%outputfrequency < 1) errorID = 836 ! non-positive result frequency - write(6,'(2x,a,i0)') 'output frequency: ', newLoadCase%outputfrequency + print'(a,i0)', ' output frequency: ', newLoadCase%outputfrequency if (newLoadCase%restartfrequency < 1) errorID = 839 ! non-positive restart frequency if (newLoadCase%restartfrequency < huge(0)) & - write(6,'(2x,a,i0)') 'restart frequency: ', newLoadCase%restartfrequency + print'(a,i0)', ' restart frequency: ', newLoadCase%restartfrequency if (errorID > 0) call IO_error(error_ID = errorID, ext_msg = loadcase_string) ! exit with error message endif reportAndCheck loadCases = [loadCases,newLoadCase] ! load case is ok, append it @@ -397,8 +397,8 @@ program DAMASK_grid !-------------------------------------------------------------------------------------------------- ! report begin of new step - write(6,'(/,a)') ' ###########################################################################' - write(6,'(1x,a,es12.5,6(a,i0))') & + print'(/,a)', ' ###########################################################################' + print'(1x,a,es12.5,6(a,i0))', & 'Time', time, & 's: Increment ', inc,'/',loadCases(currentLoadCase)%incs,& '-', stepFraction,'/',subStepFactor**cutBackLevel,& @@ -475,7 +475,7 @@ program DAMASK_grid cutBackLevel = cutBackLevel + 1 time = time - timeinc ! rewind time timeinc = timeinc/real(subStepFactor,pReal) ! cut timestep - write(6,'(/,a)') ' cutting back ' + print'(/,a)', ' cutting back ' else ! no more options to continue call IO_warning(850) if (worldrank == 0) close(statUnit) @@ -487,13 +487,13 @@ program DAMASK_grid cutBackLevel = max(0, cutBackLevel - 1) ! try half number of subincs next inc if (all(solres(:)%converged)) then - write(6,'(/,a,i0,a)') ' increment ', totalIncsCounter, ' converged' + print'(/,a,i0,a)', ' increment ', totalIncsCounter, ' converged' else - write(6,'(/,a,i0,a)') ' increment ', totalIncsCounter, ' NOT converged' + print'(/,a,i0,a)', ' increment ', totalIncsCounter, ' NOT converged' endif; flush(6) if (mod(inc,loadCases(currentLoadCase)%outputFrequency) == 0) then ! at output frequency - write(6,'(1/,a)') ' ... writing results to file ......................................' + print'(1/,a)', ' ... writing results to file ......................................' flush(6) call CPFEM_results(totalIncsCounter,time) endif @@ -510,7 +510,7 @@ program DAMASK_grid !-------------------------------------------------------------------------------------------------- ! report summary of whole calculation - write(6,'(/,a)') ' ###########################################################################' + print'(/,a)', ' ###########################################################################' if (worldrank == 0) close(statUnit) call quit(0) ! no complains ;) diff --git a/src/grid/discretization_grid.f90 b/src/grid/discretization_grid.f90 index 276dd566f..576aaea60 100644 --- a/src/grid/discretization_grid.f90 +++ b/src/grid/discretization_grid.f90 @@ -65,7 +65,7 @@ subroutine discretization_grid_init(restart) integer(C_INTPTR_T) :: & devNull, z, z_offset - write(6,'(/,a)') ' <<<+- discretization_grid init -+>>>'; flush(6) + print'(/,a)', ' <<<+- discretization_grid init -+>>>'; flush(6) if(index(interface_geomFile,'.vtr') /= 0) then call readVTR(grid,geomSize,origin,microstructureAt) diff --git a/src/grid/grid_damage_spectral.f90 b/src/grid/grid_damage_spectral.f90 index f0d65a4a6..2a0754c66 100644 --- a/src/grid/grid_damage_spectral.f90 +++ b/src/grid/grid_damage_spectral.f90 @@ -22,42 +22,38 @@ module grid_damage_spectral implicit none private - type, private :: tNumerics + type :: tNumerics integer :: & - itmax !< max number of iterations + itmax !< maximum number of iterations real(pReal) :: & residualStiffness, & !< non-zero residual damage eps_damage_atol, & !< absolute tolerance for damage evolution eps_damage_rtol !< relative tolerance for damage evolution end type tNumerics - type(tNumerics), private :: num -!-------------------------------------------------------------------------------------------------- -! derived types - type(tSolutionParams), private :: params + type(tNumerics) :: num + type(tSolutionParams) :: params !-------------------------------------------------------------------------------------------------- ! PETSc data - SNES, private :: damage_snes - Vec, private :: solution_vec - PetscInt, private :: xstart, xend, ystart, yend, zstart, zend - real(pReal), private, dimension(:,:,:), allocatable :: & + SNES :: damage_snes + Vec :: solution_vec + PetscInt :: xstart, xend, ystart, yend, zstart, zend + real(pReal), dimension(:,:,:), allocatable :: & phi_current, & !< field of current damage phi_lastInc, & !< field of previous damage phi_stagInc !< field of staggered damage !-------------------------------------------------------------------------------------------------- ! reference diffusion tensor, mobility etc. - integer, private :: totalIter = 0 !< total iteration in current increment - real(pReal), dimension(3,3), private :: K_ref - real(pReal), private :: mu_ref + integer :: totalIter = 0 !< total iteration in current increment + real(pReal), dimension(3,3) :: K_ref + real(pReal) :: mu_ref public :: & grid_damage_spectral_init, & grid_damage_spectral_solution, & grid_damage_spectral_forward - private :: & - formResidual contains @@ -77,10 +73,10 @@ subroutine grid_damage_spectral_init character(len=pStringLen) :: & snes_type - write(6,'(/,a)') ' <<<+- grid_spectral_damage init -+>>>' + print'(/,a)', ' <<<+- grid_spectral_damage init -+>>>' - write(6,'(/,a)') ' Shanthraj et al., Handbook of Mechanics of Materials, 2019' - write(6,'(a)') ' https://doi.org/10.1007/978-981-10-6855-3_80' + print*, 'Shanthraj et al., Handbook of Mechanics of Materials, 2019' + print*, 'https://doi.org/10.1007/978-981-10-6855-3_80' !------------------------------------------------------------------------------------------------- ! read numerical parameters and do sanity checks @@ -152,8 +148,6 @@ subroutine grid_damage_spectral_init allocate(phi_stagInc(grid(1),grid(2),grid3), source=1.0_pReal) call VecSet(solution_vec,1.0_pReal,ierr); CHKERRQ(ierr) -!-------------------------------------------------------------------------------------------------- -! damage reference diffusion update call updateReference end subroutine grid_damage_spectral_init @@ -210,10 +204,10 @@ function grid_damage_spectral_solution(timeinc,timeinc_old) result(solution) call VecMin(solution_vec,devNull,phi_min,ierr); CHKERRQ(ierr) call VecMax(solution_vec,devNull,phi_max,ierr); CHKERRQ(ierr) if (solution%converged) & - write(6,'(/,a)') ' ... nonlocal damage converged .....................................' + print'(/,a)', ' ... nonlocal damage converged .....................................' write(6,'(/,a,f8.6,2x,f8.6,2x,e11.4,/)',advance='no') ' Minimum|Maximum|Delta Damage = ',& phi_min, phi_max, stagNorm - write(6,'(/,a)') ' ===========================================================================' + print'(/,a)', ' ===========================================================================' flush(6) end function grid_damage_spectral_solution diff --git a/src/grid/grid_mech_FEM.f90 b/src/grid/grid_mech_FEM.f90 index 748692b3c..3923e1898 100644 --- a/src/grid/grid_mech_FEM.f90 +++ b/src/grid/grid_mech_FEM.f90 @@ -122,7 +122,7 @@ subroutine grid_mech_FEM_init PetscScalar, pointer, dimension(:,:,:,:) :: & u_current,u_lastInc - write(6,'(/,a)') ' <<<+- grid_mech_FEM init -+>>>'; flush(6) + print'(/,a)', ' <<<+- grid_mech_FEM init -+>>>'; flush(6) !----------------------------------------------------------------------------------------------- ! debugging options @@ -130,13 +130,12 @@ subroutine grid_mech_FEM_init debugRotation = debug_grid%contains('rotation') !------------------------------------------------------------------------------------------------- -! read numerical parameter and do sanity checks +! read numerical parameters and do sanity checks num_grid => config_numerics%get('grid',defaultVal=emptyDict) num%eps_div_atol = num_grid%get_asFloat ('eps_div_atol', defaultVal=1.0e-4_pReal) num%eps_div_rtol = num_grid%get_asFloat ('eps_div_rtol', defaultVal=5.0e-4_pReal) num%eps_stress_atol = num_grid%get_asFloat ('eps_stress_atol', defaultVal=1.0e3_pReal) num%eps_stress_rtol = num_grid%get_asFloat ('eps_stress_rtol', defaultVal=0.01_pReal) - num%itmin = num_grid%get_asInt ('itmin',defaultVal=1) num%itmax = num_grid%get_asInt ('itmax',defaultVal=250) @@ -225,7 +224,7 @@ subroutine grid_mech_FEM_init !-------------------------------------------------------------------------------------------------- ! init fields restartRead: if (interface_restartInc > 0) then - write(6,'(/,a,i0,a)') ' reading restart data of increment ', interface_restartInc, ' from file' + print'(/,a,i0,a)', ' reading restart data of increment ', interface_restartInc, ' from file' write(fileName,'(a,a,i0,a)') trim(getSolverJobName()),'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName) @@ -254,7 +253,7 @@ subroutine grid_mech_FEM_init CHKERRQ(ierr) restartRead2: if (interface_restartInc > 0) then - write(6,'(/,a,i0,a)') ' reading more restart data of increment ', interface_restartInc, ' from file' + print'(a,i0,a)', ' reading more restart data of increment ', interface_restartInc, ' from file' call HDF5_read(groupHandle,C_volAvg, 'C_volAvg') call HDF5_read(groupHandle,C_volAvgLastInc,'C_volAvgLastInc') @@ -304,11 +303,11 @@ function grid_mech_FEM_solution(incInfoIn,timeinc,timeinc_old,stress_BC,rotation !-------------------------------------------------------------------------------------------------- ! solve BVP - call SNESsolve(mech_snes,PETSC_NULL_VEC,solution_current,ierr);CHKERRQ(ierr) + call SNESsolve(mech_snes,PETSC_NULL_VEC,solution_current,ierr); CHKERRQ(ierr) !-------------------------------------------------------------------------------------------------- ! check convergence - call SNESGetConvergedReason(mech_snes,reason,ierr);CHKERRQ(ierr) + call SNESGetConvergedReason(mech_snes,reason,ierr); CHKERRQ(ierr) solution%converged = reason > 0 solution%iterationsNeeded = totalIter @@ -353,7 +352,7 @@ subroutine grid_mech_FEM_forward(cutBack,guess,timeinc,timeinc_old,loadCaseTime, F_aimDot = merge(stress_BC%maskFloat*(F_aim-F_aim_lastInc)/timeinc_old, 0.0_pReal, guess) F_aim_lastInc = F_aim - !-------------------------------------------------------------------------------------------------- + !----------------------------------------------------------------------------------------------- ! calculate rate for aim if (deformation_BC%myType=='l') then ! calculate F_aimDot from given L and current F F_aimDot = & @@ -414,7 +413,7 @@ subroutine grid_mech_FEM_restartWrite call DMDAVecGetArrayF90(mech_grid,solution_current,u_current,ierr); CHKERRQ(ierr) call DMDAVecGetArrayF90(mech_grid,solution_lastInc,u_lastInc,ierr); CHKERRQ(ierr) - write(6,'(a)') ' writing solver data required for restart to file'; flush(6) + print*, 'writing solver data required for restart to file'; flush(6) write(fileName,'(a,a,i0,a)') trim(getSolverJobName()),'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName,'w') @@ -476,12 +475,12 @@ subroutine converged(snes_local,PETScIter,devNull1,devNull2,fnorm,reason,dummy,i !-------------------------------------------------------------------------------------------------- ! report - write(6,'(1/,a)') ' ... reporting .............................................................' - write(6,'(1/,a,f12.2,a,es8.2,a,es9.2,a)') ' error divergence = ', & + print'(1/,a)', ' ... reporting .............................................................' + print'(1/,a,f12.2,a,es8.2,a,es9.2,a)', ' error divergence = ', & err_div/divTol, ' (',err_div,' / m, tol = ',divTol,')' - write(6,'(a,f12.2,a,es8.2,a,es9.2,a)') ' error stress BC = ', & + print'(a,f12.2,a,es8.2,a,es9.2,a)', ' error stress BC = ', & err_BC/BCTol, ' (',err_BC, ' Pa, tol = ',BCTol,')' - write(6,'(/,a)') ' ===========================================================================' + print'(/,a)', ' ===========================================================================' flush(6) end subroutine converged @@ -516,7 +515,7 @@ subroutine formResidual(da_local,x_local, & ! begin of new iteration newIteration: if (totalIter <= PETScIter) then totalIter = totalIter + 1 - write(6,'(1x,a,3(a,i0))') trim(incInfo), ' @ Iteration ', num%itmin, '≤',totalIter+1, '≤', num%itmax + print'(1x,a,3(a,i0))', trim(incInfo), ' @ Iteration ', num%itmin, '≤',totalIter+1, '≤', num%itmax if (debugRotation) & write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim (lab) =', transpose(params%rotation_BC%rotate(F_aim,active=.true.)) @@ -541,7 +540,7 @@ subroutine formResidual(da_local,x_local, & !-------------------------------------------------------------------------------------------------- ! evaluate constitutive response - call Utilities_constitutiveResponse(P_current,& + call utilities_constitutiveResponse(P_current,& P_av,C_volAvg,devNull, & F,params%timeinc,params%rotation_BC) call MPI_Allreduce(MPI_IN_PLACE,terminallyIll,1,MPI_LOGICAL,MPI_LOR,PETSC_COMM_WORLD,ierr) diff --git a/src/grid/grid_mech_spectral_basic.f90 b/src/grid/grid_mech_spectral_basic.f90 index 9d301b30f..14d317c73 100644 --- a/src/grid/grid_mech_spectral_basic.f90 +++ b/src/grid/grid_mech_spectral_basic.f90 @@ -42,8 +42,7 @@ module grid_mech_spectral_basic type(tNumerics) :: num ! numerics parameters. Better name? - logical, private:: & - debugRotation + logical, private :: debugRotation !-------------------------------------------------------------------------------------------------- ! PETSc data @@ -110,13 +109,13 @@ subroutine grid_mech_spectral_basic_init character(len=pStringLen) :: & fileName - write(6,'(/,a)') ' <<<+- grid_mech_spectral_basic init -+>>>'; flush(6) + print'(/,a)', ' <<<+- grid_mech_spectral_basic init -+>>>'; flush(6) - write(6,'(/,a)') ' Eisenlohr et al., International Journal of Plasticity 46:37–53, 2013' - write(6,'(a)') ' https://doi.org/10.1016/j.ijplas.2012.09.012' + print*, 'Eisenlohr et al., International Journal of Plasticity 46:37–53, 2013' + print*, 'https://doi.org/10.1016/j.ijplas.2012.09.012'//IO_EOL - write(6,'(/,a)') ' Shanthraj et al., International Journal of Plasticity 66:31–45, 2015' - write(6,'(a)') ' https://doi.org/10.1016/j.ijplas.2014.02.006' + print*, 'Shanthraj et al., International Journal of Plasticity 66:31–45, 2015' + print*, 'https://doi.org/10.1016/j.ijplas.2014.02.006' !------------------------------------------------------------------------------------------------- ! debugging options @@ -132,7 +131,6 @@ subroutine grid_mech_spectral_basic_init num%eps_div_rtol = num_grid%get_asFloat ('eps_div_rtol', defaultVal=5.0e-4_pReal) num%eps_stress_atol = num_grid%get_asFloat ('eps_stress_atol',defaultVal=1.0e3_pReal) num%eps_stress_rtol = num_grid%get_asFloat ('eps_stress_rtol',defaultVal=0.01_pReal) - num%itmin = num_grid%get_asInt ('itmin',defaultVal=1) num%itmax = num_grid%get_asInt ('itmax',defaultVal=250) @@ -186,7 +184,7 @@ subroutine grid_mech_spectral_basic_init call DMDAVecGetArrayF90(da,solution_vec,F,ierr); CHKERRQ(ierr) ! places pointer on PETSc data restartRead: if (interface_restartInc > 0) then - write(6,'(/,a,i0,a)') ' reading restart data of increment ', interface_restartInc, ' from file' + print'(/,a,i0,a)', ' reading restart data of increment ', interface_restartInc, ' from file' write(fileName,'(a,a,i0,a)') trim(getSolverJobName()),'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName) @@ -211,7 +209,7 @@ subroutine grid_mech_spectral_basic_init call DMDAVecRestoreArrayF90(da,solution_vec,F,ierr); CHKERRQ(ierr) ! deassociate pointer restartRead2: if (interface_restartInc > 0) then - write(6,'(/,a,i0,a)') ' reading more restart data of increment ', interface_restartInc, ' from file' + print'(a,i0,a)', ' reading more restart data of increment ', interface_restartInc, ' from file' call HDF5_read(groupHandle,C_volAvg, 'C_volAvg') call HDF5_read(groupHandle,C_volAvgLastInc,'C_volAvgLastInc') @@ -377,7 +375,7 @@ subroutine grid_mech_spectral_basic_restartWrite call DMDAVecGetArrayF90(da,solution_vec,F,ierr); CHKERRQ(ierr) - write(6,'(a)') ' writing solver data required for restart to file'; flush(6) + print'(a)', ' writing solver data required for restart to file'; flush(6) write(fileName,'(a,a,i0,a)') trim(getSolverJobName()),'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName,'w') @@ -437,12 +435,12 @@ subroutine converged(snes_local,PETScIter,devNull1,devNull2,devNull3,reason,dumm !-------------------------------------------------------------------------------------------------- ! report - write(6,'(1/,a)') ' ... reporting .............................................................' - write(6,'(1/,a,f12.2,a,es8.2,a,es9.2,a)') ' error divergence = ', & + print'(1/,a)', ' ... reporting .............................................................' + print'(1/,a,f12.2,a,es8.2,a,es9.2,a)', ' error divergence = ', & err_div/divTol, ' (',err_div,' / m, tol = ',divTol,')' - write(6,'(a,f12.2,a,es8.2,a,es9.2,a)') ' error stress BC = ', & + print'(a,f12.2,a,es8.2,a,es9.2,a)', ' error stress BC = ', & err_BC/BCTol, ' (',err_BC, ' Pa, tol = ',BCTol,')' - write(6,'(/,a)') ' ===========================================================================' + print'(/,a)', ' ===========================================================================' flush(6) end subroutine converged @@ -475,7 +473,7 @@ subroutine formResidual(in, F, & ! begin of new iteration newIteration: if (totalIter <= PETScIter) then totalIter = totalIter + 1 - write(6,'(1x,a,3(a,i0))') trim(incInfo), ' @ Iteration ', num%itmin, '≤',totalIter, '≤', num%itmax + print'(1x,a,3(a,i0))', trim(incInfo), ' @ Iteration ', num%itmin, '≤',totalIter, '≤', num%itmax if (debugRotation) & write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim (lab) =', transpose(params%rotation_BC%rotate(F_aim,active=.true.)) diff --git a/src/grid/grid_mech_spectral_polarisation.f90 b/src/grid/grid_mech_spectral_polarisation.f90 index 5414d02a8..f83ebed75 100644 --- a/src/grid/grid_mech_spectral_polarisation.f90 +++ b/src/grid/grid_mech_spectral_polarisation.f90 @@ -123,10 +123,10 @@ subroutine grid_mech_spectral_polarisation_init character(len=pStringLen) :: & fileName - write(6,'(/,a)') ' <<<+- grid_mech_spectral_polarisation init -+>>>'; flush(6) + print'(/,a)', ' <<<+- grid_mech_spectral_polarisation init -+>>>'; flush(6) - write(6,'(/,a)') ' Shanthraj et al., International Journal of Plasticity 66:31–45, 2015' - write(6,'(a)') ' https://doi.org/10.1016/j.ijplas.2014.02.006' + print*, 'Shanthraj et al., International Journal of Plasticity 66:31–45, 2015' + print*, 'https://doi.org/10.1016/j.ijplas.2014.02.006' !------------------------------------------------------------------------------------------------ ! debugging options @@ -134,9 +134,8 @@ subroutine grid_mech_spectral_polarisation_init debugRotation = debug_grid%contains('rotation') !------------------------------------------------------------------------------------------------- -! read numerical parameters +! read numerical parameters and do sanity checks num_grid => config_numerics%get('grid',defaultVal=emptyDict) - num%update_gamma = num_grid%get_asBool ('update_gamma', defaultVal=.false.) num%eps_div_atol = num_grid%get_asFloat ('eps_div_atol', defaultVal=1.0e-4_pReal) num%eps_div_rtol = num_grid%get_asFloat ('eps_div_rtol', defaultVal=5.0e-4_pReal) @@ -207,7 +206,7 @@ subroutine grid_mech_spectral_polarisation_init F_tau => FandF_tau(9:17,:,:,:) restartRead: if (interface_restartInc > 0) then - write(6,'(/,a,i0,a)') ' reading restart data of increment ', interface_restartInc, ' from file' + print'(/,a,i0,a)', ' reading restart data of increment ', interface_restartInc, ' from file' write(fileName,'(a,a,i0,a)') trim(getSolverJobName()),'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName) @@ -236,7 +235,7 @@ subroutine grid_mech_spectral_polarisation_init call DMDAVecRestoreArrayF90(da,solution_vec,FandF_tau,ierr); CHKERRQ(ierr) ! deassociate pointer restartRead2: if (interface_restartInc > 0) then - write(6,'(/,a,i0,a)') ' reading more restart data of increment ', interface_restartInc, ' from file' + print'(a,i0,a)', ' reading more restart data of increment ', interface_restartInc, ' from file' call HDF5_read(groupHandle,C_volAvg, 'C_volAvg') call HDF5_read(groupHandle,C_volAvgLastInc,'C_volAvgLastInc') @@ -434,7 +433,7 @@ subroutine grid_mech_spectral_polarisation_restartWrite F => FandF_tau(0: 8,:,:,:) F_tau => FandF_tau(9:17,:,:,:) - write(6,'(a)') ' writing solver data required for restart to file'; flush(6) + print*, 'writing solver data required for restart to file'; flush(6) write(fileName,'(a,a,i0,a)') trim(getSolverJobName()),'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName,'w') @@ -498,14 +497,14 @@ subroutine converged(snes_local,PETScIter,devNull1,devNull2,devNull3,reason,dumm !-------------------------------------------------------------------------------------------------- ! report - write(6,'(1/,a)') ' ... reporting .............................................................' - write(6,'(1/,a,f12.2,a,es8.2,a,es9.2,a)') ' error divergence = ', & + print'(1/,a)', ' ... reporting .............................................................' + print'(1/,a,f12.2,a,es8.2,a,es9.2,a)', ' error divergence = ', & err_div/divTol, ' (',err_div, ' / m, tol = ',divTol,')' - write(6, '(a,f12.2,a,es8.2,a,es9.2,a)') ' error curl = ', & + print '(a,f12.2,a,es8.2,a,es9.2,a)', ' error curl = ', & err_curl/curlTol,' (',err_curl,' -, tol = ',curlTol,')' - write(6, '(a,f12.2,a,es8.2,a,es9.2,a)') ' error BC = ', & + print '(a,f12.2,a,es8.2,a,es9.2,a)', ' error stress BC = ', & err_BC/BCTol, ' (',err_BC, ' Pa, tol = ',BCTol,')' - write(6,'(/,a)') ' ===========================================================================' + print'(/,a)', ' ===========================================================================' flush(6) end subroutine converged @@ -558,7 +557,7 @@ subroutine formResidual(in, FandF_tau, & ! begin of new iteration newIteration: if (totalIter <= PETScIter) then totalIter = totalIter + 1 - write(6,'(1x,a,3(a,i0))') trim(incInfo), ' @ Iteration ', num%itmin, '≤',totalIter, '≤', num%itmax + print'(1x,a,3(a,i0))', trim(incInfo), ' @ Iteration ', num%itmin, '≤',totalIter, '≤', num%itmax if(debugRotation) & write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim (lab) =', transpose(params%rotation_BC%rotate(F_aim,active=.true.)) diff --git a/src/grid/grid_thermal_spectral.f90 b/src/grid/grid_thermal_spectral.f90 index 5456f40eb..eeff8c9d6 100644 --- a/src/grid/grid_thermal_spectral.f90 +++ b/src/grid/grid_thermal_spectral.f90 @@ -23,20 +23,17 @@ module grid_thermal_spectral implicit none private -!-------------------------------------------------------------------------------------------------- -! derived types - type(tSolutionParams) :: params - type :: tNumerics integer :: & - itmax !< maximum number of iterations + itmax !< maximum number of iterations real(pReal) :: & - eps_thermal_atol, & !< absolute tolerance for thermal equilibrium - eps_thermal_rtol !< relative tolerance for thermal equilibrium + eps_thermal_atol, & !< absolute tolerance for thermal equilibrium + eps_thermal_rtol !< relative tolerance for thermal equilibrium end type tNumerics type(tNumerics) :: num + type(tSolutionParams) :: params !-------------------------------------------------------------------------------------------------- ! PETSc data SNES :: thermal_snes @@ -74,13 +71,13 @@ subroutine grid_thermal_spectral_init class(tNode), pointer :: & num_grid - write(6,'(/,a)') ' <<<+- grid_thermal_spectral init -+>>>' + print'(/,a)', ' <<<+- grid_thermal_spectral init -+>>>' - write(6,'(/,a)') ' Shanthraj et al., Handbook of Mechanics of Materials, 2019' - write(6,'(a)') ' https://doi.org/10.1007/978-981-10-6855-3_80' + print*, 'Shanthraj et al., Handbook of Mechanics of Materials, 2019' + print*, 'https://doi.org/10.1007/978-981-10-6855-3_80' !------------------------------------------------------------------------------------------------- -! read numerical parameter and do sanity checks +! read numerical parameters and do sanity checks num_grid => config_numerics%get('grid',defaultVal=emptyDict) num%itmax = num_grid%get_asInt ('itmax', defaultVal=250) num%eps_thermal_atol = num_grid%get_asFloat ('eps_thermal_atol',defaultVal=1.0e-2_pReal) @@ -94,8 +91,7 @@ subroutine grid_thermal_spectral_init ! set default and user defined options for PETSc call PETScOptionsInsertString(PETSC_NULL_OPTIONS,'-thermal_snes_type ngmres',ierr) CHKERRQ(ierr) - call PETScOptionsInsertString(PETSC_NULL_OPTIONS,& - num_grid%get_asString('petsc_options',defaultVal=''),ierr) + call PETScOptionsInsertString(PETSC_NULL_OPTIONS,num_grid%get_asString('petsc_options',defaultVal=''),ierr) CHKERRQ(ierr) !-------------------------------------------------------------------------------------------------- @@ -110,7 +106,7 @@ subroutine grid_thermal_spectral_init DMDA_STENCIL_BOX, & ! Moore (26) neighborhood around central point grid(1),grid(2),grid(3), & ! global grid 1, 1, worldsize, & - 1, 0, & ! #dof (thermal phase field), ghost boundary width (domain overlap) + 1, 0, & ! #dof (T field), ghost boundary width (domain overlap) [grid(1)],[grid(2)],localK, & ! local grid thermal_grid,ierr) ! handle, error CHKERRQ(ierr) @@ -159,8 +155,6 @@ function grid_thermal_spectral_solution(timeinc,timeinc_old) result(solution) timeinc_old !< increment in time of last increment integer :: i, j, k, cell type(tSolutionState) :: solution - class(tNode), pointer :: & - num_grid PetscInt :: devNull PetscReal :: T_min, T_max, stagNorm, solnNorm @@ -204,10 +198,10 @@ function grid_thermal_spectral_solution(timeinc,timeinc_old) result(solution) call VecMin(solution_vec,devNull,T_min,ierr); CHKERRQ(ierr) call VecMax(solution_vec,devNull,T_max,ierr); CHKERRQ(ierr) if (solution%converged) & - write(6,'(/,a)') ' ... thermal conduction converged ..................................' + print'(/,a)', ' ... thermal conduction converged ..................................' write(6,'(/,a,f8.4,2x,f8.4,2x,f8.4,/)',advance='no') ' Minimum|Maximum|Delta Temperature / K = ',& T_min, T_max, stagNorm - write(6,'(/,a)') ' ===========================================================================' + print'(/,a)', ' ===========================================================================' flush(6) end function grid_thermal_spectral_solution diff --git a/src/grid/spectral_utilities.f90 b/src/grid/spectral_utilities.f90 index 1dc66a23f..764e8adb6 100644 --- a/src/grid/spectral_utilities.f90 +++ b/src/grid/spectral_utilities.f90 @@ -208,7 +208,7 @@ subroutine spectral_utilities_init debugPETSc = debug_grid%contains('petsc') - if(debugPETSc) write(6,'(3(/,a),/)') & + if(debugPETSc) print'(3(/,a),/)', & ' Initializing PETSc with debug options: ', & trim(PETScDebug), & ' add more using the PETSc_Options keyword in numerics.yaml '; flush(6) @@ -280,7 +280,7 @@ subroutine spectral_utilities_init if (pReal /= C_DOUBLE .or. kind(1) /= C_INT) error stop 'C and Fortran datatypes do not match' call fftw_set_timelimit(num_grid%get_asFloat('fftw_timelimit',defaultVal=-1.0_pReal)) - if (debugGeneral) write(6,'(/,a)') ' FFTW initialized'; flush(6) + print*, 'FFTW initialized'; flush(6) !-------------------------------------------------------------------------------------------------- ! MPI allocation @@ -506,7 +506,7 @@ subroutine utilities_fourierGammaConvolution(fieldAim) logical :: err - write(6,'(/,a)') ' ... doing gamma convolution ...............................................' + print'(/,a)', ' ... doing gamma convolution ...............................................' flush(6) !-------------------------------------------------------------------------------------------------- @@ -576,7 +576,7 @@ real(pReal) function utilities_divergenceRMS() integer :: i, j, k, ierr complex(pReal), dimension(3) :: rescaledGeom - write(6,'(/,a)') ' ... calculating divergence ................................................' + print'(/,a)', ' ... calculating divergence ................................................' flush(6) rescaledGeom = cmplx(geomSize/scaledGeomSize,0.0_pReal) @@ -620,7 +620,7 @@ real(pReal) function utilities_curlRMS() complex(pReal), dimension(3,3) :: curl_fourier complex(pReal), dimension(3) :: rescaledGeom - write(6,'(/,a)') ' ... calculating curl ......................................................' + print'(/,a)', ' ... calculating curl ......................................................' flush(6) rescaledGeom = cmplx(geomSize/scaledGeomSize,0.0_pReal) @@ -822,7 +822,7 @@ subroutine utilities_constitutiveResponse(P,P_av,C_volAvg,C_minmaxAvg,& real(pReal) :: dPdF_norm_max, dPdF_norm_min real(pReal), dimension(2) :: valueAndRank !< pair of min/max norm of dPdF to synchronize min/max of dPdF - write(6,'(/,a)') ' ... evaluating constitutive response ......................................' + print'(/,a)', ' ... evaluating constitutive response ......................................' flush(6) materialpoint_F = reshape(F,[3,3,1,product(grid(1:2))*grid3]) ! set materialpoint target F to estimated field @@ -1095,7 +1095,7 @@ subroutine utilities_saveReferenceStiffness fileUnit,ierr if (worldrank == 0) then - write(6,'(a)') ' writing reference stiffness data required for restart to file'; flush(6) + print'(a)', ' writing reference stiffness data required for restart to file'; flush(6) open(newunit=fileUnit, file=getSolverJobName()//'.C_ref',& status='replace',access='stream',action='write',iostat=ierr) if(ierr /=0) call IO_error(100,ext_msg='could not open file '//getSolverJobName()//'.C_ref') diff --git a/src/marc/discretization_marc.f90 b/src/marc/discretization_marc.f90 index b2f5f8905..30d1bd9fc 100644 --- a/src/marc/discretization_marc.f90 +++ b/src/marc/discretization_marc.f90 @@ -70,7 +70,7 @@ subroutine discretization_marc_init class(tNode), pointer :: & num_commercialFEM - write(6,'(/,a)') ' <<<+- discretization_marc init -+>>>'; flush(6) + print'(/,a)', ' <<<+- discretization_marc init -+>>>'; flush(6) !--------------------------------------------------------------------------------- ! read debug parameters diff --git a/src/mesh/DAMASK_mesh.f90 b/src/mesh/DAMASK_mesh.f90 index 2fefe73a9..0ba56bef3 100644 --- a/src/mesh/DAMASK_mesh.f90 +++ b/src/mesh/DAMASK_mesh.f90 @@ -78,7 +78,7 @@ program DAMASK_mesh !-------------------------------------------------------------------------------------------------- ! init DAMASK (all modules) call CPFEM_initAll - write(6,'(/,a)') ' <<<+- DAMASK_FEM init -+>>>'; flush(6) + print'(/,a)', ' <<<+- DAMASK_mesh init -+>>>'; flush(6) !--------------------------------------------------------------------- ! reading field information from numerics file and do sanity checks @@ -208,30 +208,30 @@ program DAMASK_mesh errorID = 0 checkLoadcases: do currentLoadCase = 1, size(loadCases) write (loadcase_string, '(i0)' ) currentLoadCase - write(6,'(1x,a,i6)') 'load case: ', currentLoadCase + print'(a,i0)', ' load case: ', currentLoadCase if (.not. loadCases(currentLoadCase)%followFormerTrajectory) & - write(6,'(2x,a)') 'drop guessing along trajectory' + print'(a)', ' drop guessing along trajectory' do field = 1, nActiveFields select case (loadCases(currentLoadCase)%fieldBC(field)%ID) case(FIELD_MECH_ID) - write(6,'(2x,a)') 'Field '//trim(FIELD_MECH_label) + print'(a)', ' Field '//trim(FIELD_MECH_label) end select do faceSet = 1, mesh_Nboundaries do component = 1, loadCases(currentLoadCase)%fieldBC(field)%nComponents if (loadCases(currentLoadCase)%fieldBC(field)%componentBC(component)%Mask(faceSet)) & - write(6,'(4x,a,i2,a,i2,a,f12.7)') 'Face ', mesh_boundaries(faceSet), & + print'(a,i2,a,i2,a,f12.7)', ' Face ', mesh_boundaries(faceSet), & ' Component ', component, & ' Value ', loadCases(currentLoadCase)%fieldBC(field)% & componentBC(component)%Value(faceSet) enddo enddo enddo - write(6,'(2x,a,f12.6)') 'time: ', loadCases(currentLoadCase)%time + print'(a,f12.6)', ' time: ', loadCases(currentLoadCase)%time if (loadCases(currentLoadCase)%incs < 1) errorID = 835 ! non-positive incs count - write(6,'(2x,a,i5)') 'increments: ', loadCases(currentLoadCase)%incs + print'(a,i5)', ' increments: ', loadCases(currentLoadCase)%incs if (loadCases(currentLoadCase)%outputfrequency < 1) errorID = 836 ! non-positive result frequency - write(6,'(2x,a,i5)') 'output frequency: ', & + print'(a,i5)', ' output frequency: ', & loadCases(currentLoadCase)%outputfrequency if (errorID > 0) call IO_error(error_ID = errorID, ext_msg = loadcase_string) ! exit with error message enddo checkLoadcases @@ -290,8 +290,8 @@ program DAMASK_mesh !-------------------------------------------------------------------------------------------------- ! report begin of new step - write(6,'(/,a)') ' ###########################################################################' - write(6,'(1x,a,es12.5,6(a,i0))')& + print'(/,a)', ' ###########################################################################' + print'(1x,a,es12.5,6(a,i0))',& 'Time', time, & 's: Increment ', inc, '/', loadCases(currentLoadCase)%incs,& '-', stepFraction, '/', subStepFactor**cutBackLevel,& @@ -338,7 +338,7 @@ program DAMASK_mesh cutBack = .False. if(.not. all(solres(:)%converged .and. solres(:)%stagConverged)) then ! no solution found if (cutBackLevel < maxCutBack) then ! do cut back - write(6,'(/,a)') ' cut back detected' + print'(/,a)', ' cut back detected' cutBack = .True. stepFraction = (stepFraction - 1) * subStepFactor ! adjust to new denominator cutBackLevel = cutBackLevel + 1 @@ -360,13 +360,13 @@ program DAMASK_mesh cutBackLevel = max(0, cutBackLevel - 1) ! try half number of subincs next inc if (all(solres(:)%converged)) then - write(6,'(/,a,i0,a)') ' increment ', totalIncsCounter, ' converged' + print'(/,a,i0,a)', ' increment ', totalIncsCounter, ' converged' else - write(6,'(/,a,i0,a)') ' increment ', totalIncsCounter, ' NOT converged' + print'(/,a,i0,a)', ' increment ', totalIncsCounter, ' NOT converged' endif; flush(6) if (mod(inc,loadCases(currentLoadCase)%outputFrequency) == 0) then ! at output frequency - write(6,'(1/,a)') ' ... writing results to file ......................................' + print'(/,a)', ' ... writing results to file ......................................' call CPFEM_results(totalIncsCounter,time) endif @@ -378,7 +378,7 @@ program DAMASK_mesh !-------------------------------------------------------------------------------------------------- ! report summary of whole calculation - write(6,'(/,a)') ' ###########################################################################' + print'(/,a)', ' ###########################################################################' if (worldrank == 0) close(statUnit) call quit(0) ! no complains ;) diff --git a/src/mesh/FEM_quadrature.f90 b/src/mesh/FEM_quadrature.f90 index 65b0bc6fe..4cc5e5468 100644 --- a/src/mesh/FEM_quadrature.f90 +++ b/src/mesh/FEM_quadrature.f90 @@ -37,7 +37,7 @@ contains !-------------------------------------------------------------------------------------------------- subroutine FEM_quadrature_init - write(6,'(/,a)') ' <<<+- FEM_quadrature init -+>>>'; flush(6) + print'(/,a)', ' <<<+- FEM_quadrature init -+>>>'; flush(6) !-------------------------------------------------------------------------------------------------- ! 2D linear diff --git a/src/mesh/FEM_utilities.f90 b/src/mesh/FEM_utilities.f90 index 551a863b6..1e154e533 100644 --- a/src/mesh/FEM_utilities.f90 +++ b/src/mesh/FEM_utilities.f90 @@ -110,7 +110,7 @@ subroutine FEM_utilities_init PetscErrorCode :: ierr - write(6,'(/,a)') ' <<<+- FEM_utilities init -+>>>' + print'(/,a)', ' <<<+- FEM_utilities init -+>>>' num_mesh => config_numerics%get('mesh',defaultVal=emptyDict) structOrder = num_mesh%get_asInt('structOrder', defaultVal = 2) @@ -118,7 +118,7 @@ subroutine FEM_utilities_init debug_mesh => config_debug%get('mesh',defaultVal=emptyList) debugPETSc = debug_mesh%contains('petsc') - if(debugPETSc) write(6,'(3(/,a),/)') & + if(debugPETSc) print'(3(/,a),/)', & ' Initializing PETSc with debug options: ', & trim(PETScDebug), & ' add more using the PETSc_Options keyword in numerics.yaml ' @@ -158,7 +158,7 @@ subroutine utilities_constitutiveResponse(timeinc,P_av,forwardData) PetscErrorCode :: ierr - write(6,'(/,a)') ' ... evaluating constitutive response ......................................' + print'(/,a)', ' ... evaluating constitutive response ......................................' call materialpoint_stressAndItsTangent(.true.,timeinc) ! calculate P field diff --git a/src/mesh/discretization_mesh.f90 b/src/mesh/discretization_mesh.f90 index 54854ce68..b57a4b332 100644 --- a/src/mesh/discretization_mesh.f90 +++ b/src/mesh/discretization_mesh.f90 @@ -83,7 +83,7 @@ subroutine discretization_mesh_init(restart) num_mesh integer :: integrationOrder !< order of quadrature rule required - write(6,'(/,a)') ' <<<+- discretization_mesh init -+>>>' + print'(/,a)', ' <<<+- discretization_mesh init -+>>>' !-------------------------------------------------------------------------------- ! read numerics parameter diff --git a/src/mesh/mesh_mech_FEM.f90 b/src/mesh/mesh_mech_FEM.f90 index 546897c5b..6c8d4667d 100644 --- a/src/mesh/mesh_mech_FEM.f90 +++ b/src/mesh/mesh_mech_FEM.f90 @@ -110,7 +110,7 @@ subroutine FEM_mech_init(fieldBC) class(tNode), pointer :: & num_mesh - write(6,'(/,a)') ' <<<+- FEM_mech init -+>>>'; flush(6) + print'(/,a)', ' <<<+- FEM_mech init -+>>>'; flush(6) !----------------------------------------------------------------------------- ! read numerical parametes and do sanity checks @@ -318,7 +318,7 @@ type(tSolutionState) function FEM_mech_solution( & CHKERRQ(ierr) endif - write(6,'(/,a)') ' ===========================================================================' + print'(/,a)', ' ===========================================================================' flush(6) end function FEM_mech_solution @@ -679,7 +679,7 @@ subroutine FEM_mech_converged(snes_local,PETScIter,xnorm,snorm,fnorm,reason,dumm call SNESConvergedDefault(snes_local,PETScIter,xnorm,snorm,fnorm/divTol,reason,dummy,ierr) CHKERRQ(ierr) if (terminallyIll) reason = SNES_DIVERGED_FUNCTION_DOMAIN - write(6,'(1/,1x,a,a,i0,a,i0,f0.3)') trim(incInfo), & + print'(/,1x,a,a,i0,a,i0,f0.3)', trim(incInfo), & ' @ Iteration ',PETScIter,' mechanical residual norm = ', & int(fnorm/divTol),fnorm/divTol-int(fnorm/divTol) write(6,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress / MPa =',& From 51f43ddc09d0462c8c5844c698702059e63d4117 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 19 Sep 2020 09:24:27 +0200 Subject: [PATCH 02/13] small polishing --- src/material.f90 | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/material.f90 b/src/material.f90 index 835de2fc1..628952129 100644 --- a/src/material.f90 +++ b/src/material.f90 @@ -181,10 +181,10 @@ subroutine material_init(restart) enddo call material_parseMicrostructure - print*, ' Microstructure parsed' + print*, 'Microstructure parsed' call material_parseHomogenization - print*, ' Homogenization parsed' + print*, 'Homogenization parsed' if(homogenization_maxNgrains > size(material_phaseAt,1)) call IO_error(148) @@ -331,7 +331,6 @@ subroutine material_parseMicrostructure CounterPhase, & CounterHomogenization - real(pReal), dimension(:,:), allocatable :: & microstructure_fraction !< vol fraction of each constituent in microstrcuture @@ -342,15 +341,13 @@ subroutine material_parseMicrostructure c, & microstructure_maxNconstituents - real(pReal), dimension(4) :: phase_orientation - homogenization => config_material%get('homogenization') phases => config_material%get('phase') microstructure => config_material%get('microstructure') - allocate(microstructure_Nconstituents(microstructure%length), source = 0) + allocate(microstructure_Nconstituents(microstructure%length),source=0) if(any(discretization_microstructureAt > microstructure%length)) & - call IO_error(155,ext_msg='More microstructures in geometry than sections in material.yaml') + call IO_error(155,ext_msg='More microstructures requested than found in material.yaml') do m = 1, microstructure%length constituentsInMicrostructure => microstructure%get(m) @@ -360,10 +357,11 @@ subroutine material_parseMicrostructure microstructure_maxNconstituents = maxval(microstructure_Nconstituents) allocate(microstructure_fraction(microstructure_maxNconstituents,microstructure%length), source =0.0_pReal) - allocate(material_phaseAt(microstructure_maxNconstituents,discretization_nElem), source =0) allocate(material_orientation0(microstructure_maxNconstituents,discretization_nIP,discretization_nElem)) - allocate(material_homogenizationAt(discretization_nElem)) + + allocate(material_homogenizationAt(discretization_nElem),source=0) allocate(material_homogenizationMemberAt(discretization_nIP,discretization_nElem),source=0) + allocate(material_phaseAt(microstructure_maxNconstituents,discretization_nElem),source=0) allocate(material_phaseMemberAt(microstructure_maxNconstituents,discretization_nIP,discretization_nElem),source=0) allocate(CounterPhase(phases%length),source=0) @@ -386,8 +384,7 @@ subroutine material_parseMicrostructure do c = 1, constituents%length constituent => constituents%get(c) material_phaseAt(c,e) = phases%getIndex(constituent%get_asString('phase')) - phase_orientation = constituent%get_asFloats('orientation') - call material_orientation0(c,i,e)%fromQuaternion(phase_orientation) + call material_orientation0(c,i,e)%fromQuaternion(constituent%get_asFloats('orientation',requiredSize=4)) enddo enddo enddo @@ -413,7 +410,6 @@ subroutine material_parseMicrostructure enddo enddo - end subroutine material_parseMicrostructure From c4ce28e63f99ef7e928a2bdd45bb041fd6c0ad6a Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 19 Sep 2020 09:41:48 +0200 Subject: [PATCH 03/13] untangling --- src/material.f90 | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/material.f90 b/src/material.f90 index 628952129..e531cae83 100644 --- a/src/material.f90 +++ b/src/material.f90 @@ -378,9 +378,9 @@ subroutine material_parseMicrostructure enddo do e = 1, discretization_nElem + constituentsInMicrostructure => microstructure%get(discretization_microstructureAt(e)) + constituents => constituentsInMicrostructure%get('constituents') do i = 1, discretization_nIP - constituentsInMicrostructure => microstructure%get(discretization_microstructureAt(e)) - constituents => constituentsInMicrostructure%get('constituents') do c = 1, constituents%length constituent => constituents%get(c) material_phaseAt(c,e) = phases%getIndex(constituent%get_asString('phase')) @@ -390,24 +390,26 @@ subroutine material_parseMicrostructure enddo do e = 1, discretization_nElem + constituentsInMicrostructure => microstructure%get(discretization_microstructureAt(e)) + material_homogenizationAt(e) = homogenization%getIndex(constituentsInMicrostructure%get_asString('homogenization')) do i = 1, discretization_nIP - constituentsInMicrostructure => microstructure%get(discretization_microstructureAt(e)) - material_homogenizationAt(e) = homogenization%getIndex(constituentsInMicrostructure%get_asString('homogenization')) CounterHomogenization(material_homogenizationAt(e)) = CounterHomogenization(material_homogenizationAt(e)) + 1 material_homogenizationMemberAt(i,e) = CounterHomogenization(material_homogenizationAt(e)) enddo enddo do e = 1, discretization_nElem + constituentsInMicrostructure => microstructure%get(discretization_microstructureAt(e)) + constituents => constituentsInMicrostructure%get('constituents') + do i = 1, discretization_nIP - constituentsInMicrostructure => microstructure%get(discretization_microstructureAt(e)) - constituents => constituentsInMicrostructure%get('constituents') do c = 1, constituents%length CounterPhase(material_phaseAt(c,e)) = & CounterPhase(material_phaseAt(c,e)) + 1 material_phaseMemberAt(c,i,e) = CounterPhase(material_phaseAt(c,e)) enddo enddo + enddo end subroutine material_parseMicrostructure From 201303f35f17c86f1474cda5c0342ca61c9bdbe2 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 19 Sep 2020 10:00:49 +0200 Subject: [PATCH 04/13] clarified logic --- src/material.f90 | 88 +++++++++++++++++++----------------------------- 1 file changed, 34 insertions(+), 54 deletions(-) diff --git a/src/material.f90 b/src/material.f90 index e531cae83..95ce78739 100644 --- a/src/material.f90 +++ b/src/material.f90 @@ -328,88 +328,68 @@ subroutine material_parseMicrostructure homogenization integer, dimension(:), allocatable :: & - CounterPhase, & - CounterHomogenization - - real(pReal), dimension(:,:), allocatable :: & - microstructure_fraction !< vol fraction of each constituent in microstrcuture + counterPhase, & + counterHomogenization + real(pReal) :: & + frac integer :: & e, & i, & m, & c, & - microstructure_maxNconstituents + maxNconstituents - homogenization => config_material%get('homogenization') - phases => config_material%get('phase') microstructure => config_material%get('microstructure') - allocate(microstructure_Nconstituents(microstructure%length),source=0) - if(any(discretization_microstructureAt > microstructure%length)) & call IO_error(155,ext_msg='More microstructures requested than found in material.yaml') + allocate(microstructure_Nconstituents(microstructure%length),source=0) do m = 1, microstructure%length constituentsInMicrostructure => microstructure%get(m) constituents => constituentsInMicrostructure%get('constituents') microstructure_Nconstituents(m) = constituents%length enddo - - microstructure_maxNconstituents = maxval(microstructure_Nconstituents) - allocate(microstructure_fraction(microstructure_maxNconstituents,microstructure%length), source =0.0_pReal) - allocate(material_orientation0(microstructure_maxNconstituents,discretization_nIP,discretization_nElem)) - + maxNconstituents = maxval(microstructure_Nconstituents) + + allocate(material_orientation0(maxNconstituents,discretization_nIP,discretization_nElem)) allocate(material_homogenizationAt(discretization_nElem),source=0) allocate(material_homogenizationMemberAt(discretization_nIP,discretization_nElem),source=0) - allocate(material_phaseAt(microstructure_maxNconstituents,discretization_nElem),source=0) - allocate(material_phaseMemberAt(microstructure_maxNconstituents,discretization_nIP,discretization_nElem),source=0) + allocate(material_phaseAt(maxNconstituents,discretization_nElem),source=0) + allocate(material_phaseMemberAt(maxNconstituents,discretization_nIP,discretization_nElem),source=0) - allocate(CounterPhase(phases%length),source=0) - allocate(CounterHomogenization(homogenization%length),source=0) - - do m = 1, microstructure%length - constituentsInMicrostructure => microstructure%get(m) - constituents => constituentsInMicrostructure%get('constituents') - do c = 1, constituents%length - constituent => constituents%get(c) - microstructure_fraction(c,m) = constituent%get_asFloat('fraction') - enddo - if (dNeq(sum(microstructure_fraction(:,m)),1.0_pReal)) call IO_error(153,ext_msg='constituent') - enddo - - do e = 1, discretization_nElem - constituentsInMicrostructure => microstructure%get(discretization_microstructureAt(e)) - constituents => constituentsInMicrostructure%get('constituents') - do i = 1, discretization_nIP - do c = 1, constituents%length - constituent => constituents%get(c) - material_phaseAt(c,e) = phases%getIndex(constituent%get_asString('phase')) - call material_orientation0(c,i,e)%fromQuaternion(constituent%get_asFloats('orientation',requiredSize=4)) - enddo - enddo - enddo + phases => config_material%get('phase') + allocate(counterPhase(phases%length),source=0) + homogenization => config_material%get('homogenization') + allocate(counterHomogenization(homogenization%length),source=0) do e = 1, discretization_nElem constituentsInMicrostructure => microstructure%get(discretization_microstructureAt(e)) + constituents => constituentsInMicrostructure%get('constituents') + material_homogenizationAt(e) = homogenization%getIndex(constituentsInMicrostructure%get_asString('homogenization')) do i = 1, discretization_nIP - CounterHomogenization(material_homogenizationAt(e)) = CounterHomogenization(material_homogenizationAt(e)) + 1 - material_homogenizationMemberAt(i,e) = CounterHomogenization(material_homogenizationAt(e)) + counterHomogenization(material_homogenizationAt(e)) = counterHomogenization(material_homogenizationAt(e)) + 1 + material_homogenizationMemberAt(i,e) = counterHomogenization(material_homogenizationAt(e)) enddo - enddo - - do e = 1, discretization_nElem - constituentsInMicrostructure => microstructure%get(discretization_microstructureAt(e)) - constituents => constituentsInMicrostructure%get('constituents') - do i = 1, discretization_nIP - do c = 1, constituents%length - CounterPhase(material_phaseAt(c,e)) = & - CounterPhase(material_phaseAt(c,e)) + 1 - material_phaseMemberAt(c,i,e) = CounterPhase(material_phaseAt(c,e)) + frac = 0.0_pReal + do c = 1, constituents%length + constituent => constituents%get(c) + frac = frac + constituent%get_asFloat('fraction') + + material_phaseAt(c,e) = phases%getIndex(constituent%get_asString('phase')) + + do i = 1, discretization_nIP + counterPhase(material_phaseAt(c,e)) = counterPhase(material_phaseAt(c,e)) + 1 + material_phaseMemberAt(c,i,e) = counterPhase(material_phaseAt(c,e)) + + call material_orientation0(c,i,e)%fromQuaternion(constituent%get_asFloats('orientation',requiredSize=4)) enddo + enddo - + if (dNeq(frac,1.0_pReal)) call IO_error(153,ext_msg='constituent') + enddo end subroutine material_parseMicrostructure From c34bf83e35aeb64a852556e8b25a83839fe2ffc8 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 19 Sep 2020 10:27:15 +0200 Subject: [PATCH 05/13] variable names better reflect their content --- src/material.f90 | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/material.f90 b/src/material.f90 index 95ce78739..f8e487b66 100644 --- a/src/material.f90 +++ b/src/material.f90 @@ -227,6 +227,7 @@ end subroutine material_init !-------------------------------------------------------------------------------------------------- !> @brief parses the homogenization part from the material configuration +! ToDo: This should be done in homogenization !-------------------------------------------------------------------------------------------------- subroutine material_parseHomogenization @@ -320,10 +321,10 @@ end subroutine material_parseHomogenization !-------------------------------------------------------------------------------------------------- subroutine material_parseMicrostructure - class(tNode), pointer :: microstructure, & !> pointer to microstructure list - constituentsInMicrostructure, & !> pointer to a microstructure list item - constituents, & !> pointer to constituents list - constituent, & !> pointer to each constituent + class(tNode), pointer :: microstructures, & !> list of microstructures + microstructure, & !> microstructure definition + constituents, & !> list of constituents + constituent, & !> constituent definition phases, & homogenization @@ -340,34 +341,35 @@ subroutine material_parseMicrostructure c, & maxNconstituents - microstructure => config_material%get('microstructure') - if(any(discretization_microstructureAt > microstructure%length)) & + microstructures => config_material%get('microstructure') + if(any(discretization_microstructureAt > microstructures%length)) & call IO_error(155,ext_msg='More microstructures requested than found in material.yaml') - allocate(microstructure_Nconstituents(microstructure%length),source=0) - do m = 1, microstructure%length - constituentsInMicrostructure => microstructure%get(m) - constituents => constituentsInMicrostructure%get('constituents') + allocate(microstructure_Nconstituents(microstructures%length),source=0) + do m = 1, microstructures%length + microstructure => microstructures%get(m) + constituents => microstructure%get('constituents') microstructure_Nconstituents(m) = constituents%length enddo maxNconstituents = maxval(microstructure_Nconstituents) - allocate(material_orientation0(maxNconstituents,discretization_nIP,discretization_nElem)) allocate(material_homogenizationAt(discretization_nElem),source=0) allocate(material_homogenizationMemberAt(discretization_nIP,discretization_nElem),source=0) allocate(material_phaseAt(maxNconstituents,discretization_nElem),source=0) allocate(material_phaseMemberAt(maxNconstituents,discretization_nIP,discretization_nElem),source=0) + allocate(material_orientation0(maxNconstituents,discretization_nIP,discretization_nElem)) + phases => config_material%get('phase') allocate(counterPhase(phases%length),source=0) homogenization => config_material%get('homogenization') allocate(counterHomogenization(homogenization%length),source=0) do e = 1, discretization_nElem - constituentsInMicrostructure => microstructure%get(discretization_microstructureAt(e)) - constituents => constituentsInMicrostructure%get('constituents') + microstructure => microstructures%get(discretization_microstructureAt(e)) + constituents => microstructure%get('constituents') - material_homogenizationAt(e) = homogenization%getIndex(constituentsInMicrostructure%get_asString('homogenization')) + material_homogenizationAt(e) = homogenization%getIndex(microstructure%get_asString('homogenization')) do i = 1, discretization_nIP counterHomogenization(material_homogenizationAt(e)) = counterHomogenization(material_homogenizationAt(e)) + 1 material_homogenizationMemberAt(i,e) = counterHomogenization(material_homogenizationAt(e)) @@ -379,7 +381,6 @@ subroutine material_parseMicrostructure frac = frac + constituent%get_asFloat('fraction') material_phaseAt(c,e) = phases%getIndex(constituent%get_asString('phase')) - do i = 1, discretization_nIP counterPhase(material_phaseAt(c,e)) = counterPhase(material_phaseAt(c,e)) + 1 material_phaseMemberAt(c,i,e) = counterPhase(material_phaseAt(c,e)) From 1d2e9324f183913fd8af92d59b3c5e49ef9cd9c0 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 19 Sep 2020 10:50:32 +0200 Subject: [PATCH 06/13] do not rely on 6=STDOUT, 0=STDERR --- src/DAMASK_interface.f90 | 2 +- src/DAMASK_marc.f90 | 2 +- src/IO.f90 | 57 ++++++++++++++++++++++------------------ src/parallelization.f90 | 22 +++++++--------- src/prec.f90 | 2 +- 5 files changed, 44 insertions(+), 41 deletions(-) diff --git a/src/DAMASK_interface.f90 b/src/DAMASK_interface.f90 index 4c3258556..05702a54d 100644 --- a/src/DAMASK_interface.f90 +++ b/src/DAMASK_interface.f90 @@ -14,7 +14,7 @@ #define PETSC_MINOR_MAX 13 module DAMASK_interface - use, intrinsic :: iso_fortran_env + use, intrinsic :: ISO_fortran_env use PETScSys diff --git a/src/DAMASK_marc.f90 b/src/DAMASK_marc.f90 index b6f9436ff..ea7430c6b 100644 --- a/src/DAMASK_marc.f90 +++ b/src/DAMASK_marc.f90 @@ -30,7 +30,7 @@ module DAMASK_interface use prec #if __INTEL_COMPILER >= 1800 - use, intrinsic :: iso_fortran_env, only: & + use, intrinsic :: ISO_fortran_env, only: & compiler_version, & compiler_options #endif diff --git a/src/IO.f90 b/src/IO.f90 index 6da7a10c8..9137372d3 100644 --- a/src/IO.f90 +++ b/src/IO.f90 @@ -6,6 +6,10 @@ !> @brief input/output functions !-------------------------------------------------------------------------------------------------- module IO + use, intrinsic :: ISO_fortran_env, only: & + OUTPUT_UNIT, & + ERROR_UNIT + use prec implicit none @@ -37,7 +41,8 @@ module IO IO_stringAsFloat, & IO_stringAsBool, & IO_error, & - IO_warning + IO_warning, & + OUTPUT_UNIT contains @@ -538,29 +543,29 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg) end select !$OMP CRITICAL (write2out) - write(0,'(/,a)') ' ┌'//IO_DIVIDER//'┐' - write(0,'(a,24x,a,40x,a)') ' │','error', '│' - write(0,'(a,24x,i3,42x,a)') ' │',error_ID, '│' - write(0,'(a)') ' ├'//IO_DIVIDER//'┤' + write(ERROR_UNIT,'(/,a)') ' ┌'//IO_DIVIDER//'┐' + write(ERROR_UNIT,'(a,24x,a,40x,a)') ' │','error', '│' + write(ERROR_UNIT,'(a,24x,i3,42x,a)') ' │',error_ID, '│' + write(ERROR_UNIT,'(a)') ' ├'//IO_DIVIDER//'┤' write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len_trim(msg)),',',& max(1,72-len_trim(msg)-4),'x,a)' - write(0,formatString) '│ ',trim(msg), '│' + write(ERROR_UNIT,formatString) '│ ',trim(msg), '│' if (present(ext_msg)) then write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len_trim(ext_msg)),',',& max(1,72-len_trim(ext_msg)-4),'x,a)' - write(0,formatString) '│ ',trim(ext_msg), '│' + write(ERROR_UNIT,formatString) '│ ',trim(ext_msg), '│' endif if (present(el)) & - write(0,'(a19,1x,i9,44x,a3)') ' │ at element ',el, '│' + write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at element ',el, '│' if (present(ip)) & - write(0,'(a19,1x,i9,44x,a3)') ' │ at IP ',ip, '│' + write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at IP ',ip, '│' if (present(g)) & - write(0,'(a19,1x,i9,44x,a3)') ' │ at constituent',g, '│' + write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at constituent',g, '│' if (present(instance)) & - write(0,'(a19,1x,i9,44x,a3)') ' │ at instance ',instance, '│' - write(0,'(a,69x,a)') ' │', '│' - write(0,'(a)') ' └'//IO_DIVIDER//'┘' - flush(0) + write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at instance ',instance, '│' + write(ERROR_UNIT,'(a,69x,a)') ' │', '│' + write(ERROR_UNIT,'(a)') ' └'//IO_DIVIDER//'┘' + flush(ERROR_UNIT) call quit(9000+error_ID) !$OMP END CRITICAL (write2out) @@ -623,27 +628,27 @@ subroutine IO_warning(warning_ID,el,ip,g,ext_msg) end select !$OMP CRITICAL (write2out) - write(6,'(/,a)') ' ┌'//IO_DIVIDER//'┐' - write(6,'(a,24x,a,38x,a)') ' │','warning', '│' - write(6,'(a,24x,i3,42x,a)') ' │',warning_ID, '│' - write(6,'(a)') ' ├'//IO_DIVIDER//'┤' + write(ERROR_UNIT,'(/,a)') ' ┌'//IO_DIVIDER//'┐' + write(ERROR_UNIT,'(a,24x,a,38x,a)') ' │','warning', '│' + write(ERROR_UNIT,'(a,24x,i3,42x,a)') ' │',warning_ID, '│' + write(ERROR_UNIT,'(a)') ' ├'//IO_DIVIDER//'┤' write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len_trim(msg)),',',& max(1,72-len_trim(msg)-4),'x,a)' - write(6,formatString) '│ ',trim(msg), '│' + write(ERROR_UNIT,formatString) '│ ',trim(msg), '│' if (present(ext_msg)) then write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len_trim(ext_msg)),',',& max(1,72-len_trim(ext_msg)-4),'x,a)' - write(6,formatString) '│ ',trim(ext_msg), '│' + write(ERROR_UNIT,formatString) '│ ',trim(ext_msg), '│' endif if (present(el)) & - write(6,'(a19,1x,i9,44x,a3)') ' │ at element ',el, '│' + write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at element ',el, '│' if (present(ip)) & - write(6,'(a19,1x,i9,44x,a3)') ' │ at IP ',ip, '│' + write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at IP ',ip, '│' if (present(g)) & - write(6,'(a19,1x,i9,44x,a3)') ' │ at constituent',g, '│' - write(6,'(a,69x,a)') ' │', '│' - write(6,'(a)') ' └'//IO_DIVIDER//'┘' - flush(6) + write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at constituent',g, '│' + write(ERROR_UNIT,'(a,69x,a)') ' │', '│' + write(ERROR_UNIT,'(a)') ' └'//IO_DIVIDER//'┘' + flush(ERROR_UNIT) !$OMP END CRITICAL (write2out) end subroutine IO_warning diff --git a/src/parallelization.f90 b/src/parallelization.f90 index 341b620c9..3bb1f6af5 100644 --- a/src/parallelization.f90 +++ b/src/parallelization.f90 @@ -3,8 +3,8 @@ !> @brief Inquires variables related to parallelization (openMP, MPI) !-------------------------------------------------------------------------------------------------- module parallelization - use prec - use, intrinsic :: iso_fortran_env + use, intrinsic :: ISO_fortran_env, only: & + OUTPUT_UNIT #ifdef PETSc #include @@ -12,6 +12,8 @@ module parallelization #endif !$ use OMP_LIB + use prec + implicit none private @@ -29,14 +31,14 @@ contains !-------------------------------------------------------------------------------------------------- subroutine parallelization_init - integer :: err, typeSize + integer :: err, typeSize !$ integer :: got_env, DAMASK_NUM_THREADS, threadLevel !$ character(len=6) NumThreadsString #ifdef PETSc PetscErrorCode :: petsc_err #else - print'(/,a)', ' <<<+- parallelization init -+>>>'; flush(6) + print'(/,a)', ' <<<+- parallelization init -+>>>'; flush(OUTPUT_UNIT) #endif #ifdef PETSc @@ -69,14 +71,10 @@ subroutine parallelization_init if (typeSize*8 /= storage_size(0.0_pReal)) error stop 'Mismatch between MPI and DAMASK real' #endif - mainProcess: if (worldrank == 0) then - if (output_unit /= 6) error stop 'STDOUT != 6' - if (error_unit /= 0) error stop 'STDERR != 0' - else mainProcess - close(6) ! disable output for non-master processes (open 6 to rank specific file for debug) - open(6,file='/dev/null',status='replace') ! close(6) alone will leave some temp files in cwd - endif mainProcess - + if (worldrank /= 0) then + close(OUTPUT_UNIT) ! disable output + open(OUTPUT_UNIT,file='/dev/null',status='replace') ! close() alone will leave some temp files in cwd + endif !$ call get_environment_variable(name='DAMASK_NUM_THREADS',value=NumThreadsString,STATUS=got_env) !$ if(got_env /= 0) then diff --git a/src/prec.f90 b/src/prec.f90 index c8700089b..cec4928ba 100644 --- a/src/prec.f90 +++ b/src/prec.f90 @@ -8,7 +8,7 @@ !-------------------------------------------------------------------------------------------------- module prec use, intrinsic :: IEEE_arithmetic - use, intrinsic :: ISO_C_Binding + use, intrinsic :: ISO_C_binding implicit none public From 139eecec0ae6c6b0d72fb0f7b941fdd49f456ef1 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 19 Sep 2020 10:56:41 +0200 Subject: [PATCH 07/13] polishing --- src/DAMASK_interface.f90 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/DAMASK_interface.f90 b/src/DAMASK_interface.f90 index 05702a54d..d34034d0d 100644 --- a/src/DAMASK_interface.f90 +++ b/src/DAMASK_interface.f90 @@ -82,7 +82,7 @@ subroutine DAMASK_interface_init print'(/,a)', ' <<<+- DAMASK_interface init -+>>>' - open(6, encoding='UTF-8') ! for special characters in output + open(OUTPUT_unit, encoding='UTF-8') ! for special characters in output ! http://patorjk.com/software/taag/#p=display&f=Lean&t=DAMASK%203 #ifdef DEBUG @@ -373,7 +373,7 @@ function makeRelativePath(a,b) a_cleaned = rectifyPath(trim(a)//'/') b_cleaned = rectifyPath(b) - do i = 1, min(1024,len_trim(a_cleaned),len_trim(rectifyPath(b_cleaned))) + do i = 1, min(len_trim(a_cleaned),len_trim(rectifyPath(b_cleaned))) if (a_cleaned(i:i) /= b_cleaned(i:i)) exit if (a_cleaned(i:i) == '/') posLastCommonSlash = i enddo @@ -395,7 +395,7 @@ subroutine catchSIGTERM(signal) bind(C) integer(C_INT), value :: signal interface_SIGTERM = .true. - print'(a,i2.2,a)', ' received signal ',signal, ', set SIGTERM=TRUE' + print'(a,i0,a)', ' received signal ',signal, ', set SIGTERM=TRUE' end subroutine catchSIGTERM @@ -420,7 +420,7 @@ subroutine catchSIGUSR1(signal) bind(C) integer(C_INT), value :: signal interface_SIGUSR1 = .true. - print'(a,i2.2,a)', ' received signal ',signal, ', set SIGUSR1=TRUE' + print'(a,i0,a)', ' received signal ',signal, ', set SIGUSR1=TRUE' end subroutine catchSIGUSR1 @@ -445,7 +445,7 @@ subroutine catchSIGUSR2(signal) bind(C) integer(C_INT), value :: signal interface_SIGUSR2 = .true. - print'(a,i2.2,a)', ' received signal ',signal, ', set SIGUSR2=TRUE' + print'(a,i0,a)', ' received signal ',signal, ', set SIGUSR2=TRUE' end subroutine catchSIGUSR2 From d0b5905544ded27703bd7f58fe4d4b726b38a993 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 19 Sep 2020 11:01:43 +0200 Subject: [PATCH 08/13] remaining write(6,...) without advance='no' --- src/constitutive_plastic_nonlocal.f90 | 24 ++++++++++++------------ src/grid/DAMASK_grid.f90 | 5 ++--- src/grid/spectral_utilities.f90 | 2 +- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/constitutive_plastic_nonlocal.f90 b/src/constitutive_plastic_nonlocal.f90 index 9eef17719..81e1887c6 100644 --- a/src/constitutive_plastic_nonlocal.f90 +++ b/src/constitutive_plastic_nonlocal.f90 @@ -741,10 +741,10 @@ module subroutine plastic_nonlocal_dependentState(F, Fp, instance, of, ip, el) if (debugConstitutive%extensive & .and. ((debugConstitutive%element == el .and. debugConstitutive%ip == ip)& .or. .not. debugConstitutive%selective)) then - write(6,'(/,a,i8,1x,i2,1x,i1,/)') '<< CONST >> nonlocal_microstructure at el ip ',el,ip - write(6,'(a,/,12x,12(e10.3,1x))') '<< CONST >> rhoForest', stt%rho_forest(:,of) - write(6,'(a,/,12x,12(f10.5,1x))') '<< CONST >> tauThreshold / MPa', dst%tau_pass(:,of)*1e-6 - write(6,'(a,/,12x,12(f10.5,1x),/)') '<< CONST >> tauBack / MPa', dst%tau_back(:,of)*1e-6 + print'(/,a,i8,1x,i2,1x,i1,/)', '<< CONST >> nonlocal_microstructure at el ip ',el,ip + print'(a,/,12x,12(e10.3,1x))', '<< CONST >> rhoForest', stt%rho_forest(:,of) + print'(a,/,12x,12(f10.5,1x))', '<< CONST >> tauThreshold / MPa', dst%tau_pass(:,of)*1e-6 + print'(a,/,12x,12(f10.5,1x),/)', '<< CONST >> tauBack / MPa', dst%tau_back(:,of)*1e-6 endif #endif @@ -958,8 +958,8 @@ module subroutine plastic_nonlocal_deltaState(Mp,instance,of,ip,el) if (debugConstitutive%extensive & .and. ((debugConstitutive%element == el .and. debugConstitutive%ip == ip)& .or. .not. debugConstitutive%selective)) then - write(6,'(a,/,8(12x,12(e12.5,1x),/))') '<< CONST >> dislocation remobilization', deltaRhoRemobilization(:,1:8) - write(6,'(a,/,10(12x,12(e12.5,1x),/),/)') '<< CONST >> dipole dissociation by stress increase', deltaRhoDipole2SingleStress + print'(a,/,8(12x,12(e12.5,1x),/))', '<< CONST >> dislocation remobilization', deltaRhoRemobilization(:,1:8) + print'(a,/,10(12x,12(e12.5,1x),/),/)', '<< CONST >> dipole dissociation by stress increase', deltaRhoDipole2SingleStress endif #endif @@ -1047,8 +1047,8 @@ module subroutine plastic_nonlocal_dotState(Mp, F, Fp, Temperature,timestep, & if (debugConstitutive%basic & .and. ((debugConstitutive%element == el .and. debugConstitutive%ip == ip) & .or. .not. debugConstitutive%selective)) then - write(6,'(a,/,10(12x,12(e12.5,1x),/))') '<< CONST >> rho / 1/m^2', rhoSgl, rhoDip - write(6,'(a,/,4(12x,12(e12.5,1x),/))') '<< CONST >> gdot / 1/s',gdot + print'(a,/,10(12x,12(e12.5,1x),/))', '<< CONST >> rho / 1/m^2', rhoSgl, rhoDip + print'(a,/,4(12x,12(e12.5,1x),/))', '<< CONST >> gdot / 1/s',gdot endif #endif @@ -1156,8 +1156,8 @@ module subroutine plastic_nonlocal_dotState(Mp, F, Fp, Temperature,timestep, & .or. any(rho(:,dip) + rhoDot(:,9:10) * timestep < -prm%atol_rho)) then #ifdef DEBUG if (debugConstitutive%extensive) then - write(6,'(a,i5,a,i2)') '<< CONST >> evolution rate leads to negative density at el ',el,' ip ',ip - write(6,'(a)') '<< CONST >> enforcing cutback !!!' + print'(a,i5,a,i2)', '<< CONST >> evolution rate leads to negative density at el ',el,' ip ',ip + print'(a)', '<< CONST >> enforcing cutback !!!' endif #endif plasticState(ph)%dotState = IEEE_value(1.0_pReal,IEEE_quiet_NaN) @@ -1268,8 +1268,8 @@ function rhoDotFlux(F,Fp,timestep, instance,of,ip,el) > IPvolume(ip,el) / maxval(IParea(:,ip,el)))) then ! ...with velocity above critical value (we use the reference volume and area for simplicity here) #ifdef DEBUG if (debugConstitutive%extensive) then - write(6,'(a,i5,a,i2)') '<< CONST >> CFL condition not fullfilled at el ',el,' ip ',ip - write(6,'(a,e10.3,a,e10.3)') '<< CONST >> velocity is at ', & + print'(a,i5,a,i2)', '<< CONST >> CFL condition not fullfilled at el ',el,' ip ',ip + print'(a,e10.3,a,e10.3)', '<< CONST >> velocity is at ', & maxval(abs(v0), abs(gdot) > 0.0_pReal & .and. prm%CFLfactor * abs(v0) * timestep & > IPvolume(ip,el) / maxval(IParea(:,ip,el))), & diff --git a/src/grid/DAMASK_grid.f90 b/src/grid/DAMASK_grid.f90 index 341210afc..213322278 100644 --- a/src/grid/DAMASK_grid.f90 +++ b/src/grid/DAMASK_grid.f90 @@ -341,8 +341,7 @@ program DAMASK_grid writeHeader: if (interface_restartInc < 1) then open(newunit=statUnit,file=trim(getSolverJobName())//'.sta',form='FORMATTED',status='REPLACE') write(statUnit,'(a)') 'Increment Time CutbackLevel Converged IterationsNeeded' ! statistics file - if (debug_grid%contains('basic')) & - write(6,'(/,a)') ' header of statistics file written out' + if (debug_grid%contains('basic')) print'(/,a)', ' header of statistics file written out' flush(6) else writeHeader open(newunit=statUnit,file=trim(getSolverJobName())//& @@ -351,7 +350,7 @@ program DAMASK_grid endif writeUndeformed: if (interface_restartInc < 1) then - write(6,'(1/,a)') ' ... writing initial configuration to file ........................' + print'(/,a)', ' ... writing initial configuration to file ........................' call CPFEM_results(0,0.0_pReal) endif writeUndeformed diff --git a/src/grid/spectral_utilities.f90 b/src/grid/spectral_utilities.f90 index 764e8adb6..5e53fe2a5 100644 --- a/src/grid/spectral_utilities.f90 +++ b/src/grid/spectral_utilities.f90 @@ -700,7 +700,7 @@ function utilities_maskedCompliance(rot_BC,mask_stress,C) temp99_real = math_3333to99(rot_BC%rotate(C)) if(debugGeneral) then - write(6,'(/,a)') ' ... updating masked compliance ............................................' + print'(/,a)', ' ... updating masked compliance ............................................' write(6,'(/,a,/,9(9(2x,f12.7,1x)/))',advance='no') ' Stiffness C (load) / GPa =',& transpose(temp99_Real)*1.0e-9_pReal flush(6) From c108b4df66695824382d6c7d94b1614bc6a26f8f Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 19 Sep 2020 11:41:16 +0200 Subject: [PATCH 09/13] concise description --- src/marc/discretization_marc.f90 | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/marc/discretization_marc.f90 b/src/marc/discretization_marc.f90 index cbfc40995..41f089b52 100644 --- a/src/marc/discretization_marc.f90 +++ b/src/marc/discretization_marc.f90 @@ -1030,10 +1030,9 @@ pure function IPareaNormal(elem,nElem,connectivity,node) IPareaNormal(1:3,f,i,e) = math_cross(nodePos(1:3,2) - nodePos(1:3,1), & nodePos(1:3,3) - nodePos(1:3,1)) case (4) ! 3D 8node - ! for this cell type we get the normal of the quadrilateral face as an average of - ! four normals of triangular subfaces; since the face consists only of two triangles, - ! the sum has to be divided by two; this whole prcedure tries to compensate for - ! probable non-planar cell surfaces + ! Get the normal of the quadrilateral face as the average of four normals of triangular + ! subfaces. Since the face consists only of two triangles, the sum has to be divided + ! by two. This procedure tries to compensate forprobable non-planar cell surfaces IPareaNormal(1:3,f,i,e) = 0.0_pReal do n = 1, m IPareaNormal(1:3,f,i,e) = IPareaNormal(1:3,f,i,e) & From 42186b9f87f2fd474a581b925ee577455f32ca3b Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 19 Sep 2020 22:08:38 +0200 Subject: [PATCH 10/13] fixed typo --- src/marc/discretization_marc.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/marc/discretization_marc.f90 b/src/marc/discretization_marc.f90 index 41f089b52..91aa0106c 100644 --- a/src/marc/discretization_marc.f90 +++ b/src/marc/discretization_marc.f90 @@ -1032,7 +1032,7 @@ pure function IPareaNormal(elem,nElem,connectivity,node) case (4) ! 3D 8node ! Get the normal of the quadrilateral face as the average of four normals of triangular ! subfaces. Since the face consists only of two triangles, the sum has to be divided - ! by two. This procedure tries to compensate forprobable non-planar cell surfaces + ! by two. This procedure tries to compensate for probable non-planar cell surfaces IPareaNormal(1:3,f,i,e) = 0.0_pReal do n = 1, m IPareaNormal(1:3,f,i,e) = IPareaNormal(1:3,f,i,e) & From 63f9078f04f24a7d8ce6cd3ba85cf09110c42fcd Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Tue, 22 Sep 2020 12:13:50 +0200 Subject: [PATCH 11/13] don' hardcode output unit replaced remaining write(6,..), flush(6) with write(OUTPUT_UNIT,...), flush(OUTPUT_UNIT) --- src/CPFEM.f90 | 6 ++--- src/CPFEM2.f90 | 2 +- src/DAMASK_marc.f90 | 6 ++--- src/IO.f90 | 2 +- src/base64.f90 | 2 +- src/config.f90 | 8 +++---- src/constitutive.f90 | 2 +- src/constitutive_plastic_disloTungsten.f90 | 2 +- src/constitutive_plastic_dislotwin.f90 | 2 +- src/constitutive_plastic_isotropic.f90 | 2 +- src/constitutive_plastic_kinehardening.f90 | 2 +- src/constitutive_plastic_none.f90 | 2 +- src/constitutive_plastic_nonlocal.f90 | 2 +- src/constitutive_plastic_phenopowerlaw.f90 | 2 +- src/crystallite.f90 | 4 ++-- src/damage_local.f90 | 2 +- src/element.f90 | 2 +- src/homogenization.f90 | 2 +- src/homogenization_mech_RGC.f90 | 28 +++++++++++----------- src/homogenization_mech_isostrain.f90 | 2 +- src/homogenization_mech_none.f90 | 2 +- src/kinematics_cleavage_opening.f90 | 2 +- src/kinematics_slipplane_opening.f90 | 2 +- src/kinematics_thermal_expansion.f90 | 2 +- src/lattice.f90 | 2 +- src/material.f90 | 2 +- src/math.f90 | 2 +- src/results.f90 | 2 +- src/rotations.f90 | 2 +- src/source_damage_anisoBrittle.f90 | 2 +- src/source_damage_anisoDuctile.f90 | 2 +- src/source_damage_isoBrittle.f90 | 2 +- src/source_damage_isoDuctile.f90 | 2 +- src/source_thermal_dissipation.f90 | 2 +- src/source_thermal_externalheat.f90 | 2 +- 35 files changed, 56 insertions(+), 56 deletions(-) diff --git a/src/CPFEM.f90 b/src/CPFEM.f90 index d0fc6413e..09e028f6c 100644 --- a/src/CPFEM.f90 +++ b/src/CPFEM.f90 @@ -106,7 +106,7 @@ subroutine CPFEM_init num_commercialFEM, & debug_CPFEM - print'(/,a)', ' <<<+- CPFEM init -+>>>'; flush(6) + print'(/,a)', ' <<<+- CPFEM init -+>>>'; flush(OUTPUT_UNIT) 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) @@ -132,7 +132,7 @@ subroutine CPFEM_init print'(a32,1x,6(i8,1x))', 'CPFEM_cs: ', shape(CPFEM_cs) print'(a32,1x,6(i8,1x))', 'CPFEM_dcsdE: ', shape(CPFEM_dcsdE) print'(a32,1x,6(i8,1x),/)', 'CPFEM_dcsdE_knownGood: ', shape(CPFEM_dcsdE_knownGood) - flush(6) + flush(OUTPUT_UNIT) endif end subroutine CPFEM_init @@ -250,7 +250,7 @@ subroutine CPFEM_general(mode, ffn, ffn1, temperature_inp, dt, elFE, ip, cauchyS '<< CPFEM >> stress/MPa at elFE ip ', elFE, ip, CPFEM_cs(1:6,ip,elCP)*1.0e-6_pReal 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 - flush(6) + flush(OUTPUT_UNIT) endif endif diff --git a/src/CPFEM2.f90 b/src/CPFEM2.f90 index c87f361c2..fc68778c8 100644 --- a/src/CPFEM2.f90 +++ b/src/CPFEM2.f90 @@ -76,7 +76,7 @@ end subroutine CPFEM_initAll !-------------------------------------------------------------------------------------------------- subroutine CPFEM_init - print'(/,a)', ' <<<+- CPFEM init -+>>>'; flush(6) + print'(/,a)', ' <<<+- CPFEM init -+>>>'; flush(OUTPUT_UNIT) if (interface_restartInc > 0) call crystallite_restartRead diff --git a/src/DAMASK_marc.f90 b/src/DAMASK_marc.f90 index ea7430c6b..c34538ad9 100644 --- a/src/DAMASK_marc.f90 +++ b/src/DAMASK_marc.f90 @@ -265,9 +265,9 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, & print'(a,i2)', ' Coordinates: ', ncrd print'(a,i12)', ' Nodes: ', nnode print'(a,i1)', ' Deformation gradient: ', itel - write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') ' Deformation gradient at t=n:', & + write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') ' Deformation gradient at t=n:', & transpose(ffn) - write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') ' Deformation gradient at t=n+1:', & + write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') ' Deformation gradient at t=n+1:', & transpose(ffn1) endif @@ -312,7 +312,7 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, & cycleCounter = -1 ! first calc step increments this to cycle = 0 print'(a,i6,1x,i2)', '<< HYPELA2 >> cutback detected..! ',m(1),nn endif ! convergence treatment end - flush(6) + flush(OUTPUT_UNIT) if (lastLovl /= lovl) then cycleCounter = cycleCounter + 1 diff --git a/src/IO.f90 b/src/IO.f90 index 9137372d3..72eb2011f 100644 --- a/src/IO.f90 +++ b/src/IO.f90 @@ -52,7 +52,7 @@ contains !-------------------------------------------------------------------------------------------------- subroutine IO_init - print'(/,a)', ' <<<+- IO init -+>>>'; flush(6) + print'(/,a)', ' <<<+- IO init -+>>>'; flush(OUTPUT_UNIT) call selfTest diff --git a/src/base64.f90 b/src/base64.f90 index 3a59b7049..c04221f21 100644 --- a/src/base64.f90 +++ b/src/base64.f90 @@ -27,7 +27,7 @@ contains !-------------------------------------------------------------------------------------------------- subroutine base64_init - print'(/,a)', ' <<<+- base64 init -+>>>'; flush(6) + print'(/,a)', ' <<<+- base64 init -+>>>'; flush(OUTPUT_UNIT) call selfTest diff --git a/src/config.f90 b/src/config.f90 index 50d4e96e8..dc395762f 100644 --- a/src/config.f90 +++ b/src/config.f90 @@ -35,7 +35,7 @@ contains !-------------------------------------------------------------------------------------------------- subroutine config_init - print'(/,a)', ' <<<+- config init -+>>>'; flush(6) + print'(/,a)', ' <<<+- config init -+>>>'; flush(OUTPUT_UNIT) call parse_material call parse_numerics @@ -59,7 +59,7 @@ subroutine parse_material inquire(file=fname,exist=fileExists) if(.not. fileExists) call IO_error(100,ext_msg=fname) endif - print*, 'reading '//fname; flush(6) + print*, 'reading '//fname; flush(OUTPUT_UNIT) config_material => YAML_parse_file(fname) end subroutine parse_material @@ -75,7 +75,7 @@ subroutine parse_numerics config_numerics => emptyDict inquire(file='numerics.yaml', exist=fexist) if (fexist) then - print*, 'reading numerics.yaml'; flush(6) + print*, 'reading numerics.yaml'; flush(OUTPUT_UNIT) config_numerics => YAML_parse_file('numerics.yaml') endif @@ -92,7 +92,7 @@ subroutine parse_debug config_debug => emptyDict inquire(file='debug.yaml', exist=fexist) fileExists: if (fexist) then - print*, 'reading debug.yaml'; flush(6) + print*, 'reading debug.yaml'; flush(OUTPUT_UNIT) config_debug => YAML_parse_file('debug.yaml') endif fileExists diff --git a/src/constitutive.f90 b/src/constitutive.f90 index 3b342e3e6..008579214 100644 --- a/src/constitutive.f90 +++ b/src/constitutive.f90 @@ -446,7 +446,7 @@ subroutine constitutive_init call damage_init call thermal_init - print'(/,a)', ' <<<+- constitutive init -+>>>'; flush(6) + print'(/,a)', ' <<<+- constitutive init -+>>>'; flush(OUTPUT_UNIT) constitutive_source_maxSizeDotState = 0 PhaseLoop2:do p = 1,phases%length diff --git a/src/constitutive_plastic_disloTungsten.f90 b/src/constitutive_plastic_disloTungsten.f90 index 2bf4fd48e..eb7297aca 100644 --- a/src/constitutive_plastic_disloTungsten.f90 +++ b/src/constitutive_plastic_disloTungsten.f90 @@ -100,7 +100,7 @@ module function plastic_disloTungsten_init() result(myPlasticity) myPlasticity = plastic_active('disloTungsten') Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return print*, 'Cereceda et al., International Journal of Plasticity 78:242–256, 2016' diff --git a/src/constitutive_plastic_dislotwin.f90 b/src/constitutive_plastic_dislotwin.f90 index a25815899..1b52862d4 100644 --- a/src/constitutive_plastic_dislotwin.f90 +++ b/src/constitutive_plastic_dislotwin.f90 @@ -147,7 +147,7 @@ module function plastic_dislotwin_init() result(myPlasticity) myPlasticity = plastic_active('dislotwin') Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return print*, 'Ma and Roters, Acta Materialia 52(12):3603–3612, 2004' diff --git a/src/constitutive_plastic_isotropic.f90 b/src/constitutive_plastic_isotropic.f90 index c78d497d6..945c43cad 100644 --- a/src/constitutive_plastic_isotropic.f90 +++ b/src/constitutive_plastic_isotropic.f90 @@ -71,7 +71,7 @@ module function plastic_isotropic_init() result(myPlasticity) myPlasticity = plastic_active('isotropic') Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return print*, 'Maiti and Eisenlohr, Scripta Materialia 145:37–40, 2018' diff --git a/src/constitutive_plastic_kinehardening.f90 b/src/constitutive_plastic_kinehardening.f90 index fe17b090e..86c1dc263 100644 --- a/src/constitutive_plastic_kinehardening.f90 +++ b/src/constitutive_plastic_kinehardening.f90 @@ -83,7 +83,7 @@ module function plastic_kinehardening_init() result(myPlasticity) myPlasticity = plastic_active('kinehardening') Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return allocate(param(Ninstance)) diff --git a/src/constitutive_plastic_none.f90 b/src/constitutive_plastic_none.f90 index d62a798cc..2b0da4c9f 100644 --- a/src/constitutive_plastic_none.f90 +++ b/src/constitutive_plastic_none.f90 @@ -35,7 +35,7 @@ module function plastic_none_init() result(myPlasticity) enddo Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return do p = 1, phases%length diff --git a/src/constitutive_plastic_nonlocal.f90 b/src/constitutive_plastic_nonlocal.f90 index 81e1887c6..f0b62eb58 100644 --- a/src/constitutive_plastic_nonlocal.f90 +++ b/src/constitutive_plastic_nonlocal.f90 @@ -189,7 +189,7 @@ module function plastic_nonlocal_init() result(myPlasticity) myPlasticity = plastic_active('nonlocal') Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) then call geometry_plastic_nonlocal_disable return diff --git a/src/constitutive_plastic_phenopowerlaw.f90 b/src/constitutive_plastic_phenopowerlaw.f90 index b30a4d9df..adb827a02 100644 --- a/src/constitutive_plastic_phenopowerlaw.f90 +++ b/src/constitutive_plastic_phenopowerlaw.f90 @@ -92,7 +92,7 @@ module function plastic_phenopowerlaw_init() result(myPlasticity) myPlasticity = plastic_active('phenopowerlaw') Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return allocate(param(Ninstance)) diff --git a/src/crystallite.f90 b/src/crystallite.f90 index 2ee85024b..850b369a2 100644 --- a/src/crystallite.f90 +++ b/src/crystallite.f90 @@ -294,7 +294,7 @@ subroutine crystallite_init print'(a42,1x,i10)', ' # of elements: ', eMax print'(a42,1x,i10)', ' # of integration points/element: ', iMax print'(a42,1x,i10)', 'max # of constituents/integration point: ', cMax - flush(6) + flush(OUTPUT_UNIT) endif #endif @@ -1561,7 +1561,7 @@ subroutine crystallite_restartWrite integer(HID_T) :: fileHandle, groupHandle character(len=pStringLen) :: fileName, datasetName - print*, ' writing field and constitutive data required for restart to file';flush(6) + print*, ' writing field and constitutive data required for restart to file';flush(OUTPUT_UNIT) write(fileName,'(a,i0,a)') trim(getSolverJobName())//'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName,'a') diff --git a/src/damage_local.f90 b/src/damage_local.f90 index 3588010b2..d9c6e2d22 100644 --- a/src/damage_local.f90 +++ b/src/damage_local.f90 @@ -49,7 +49,7 @@ subroutine damage_local_init homog, & homogDamage - print'(/,a)', ' <<<+- damage_local init -+>>>'; flush(6) + print'(/,a)', ' <<<+- damage_local init -+>>>'; flush(OUTPUT_UNIT) !---------------------------------------------------------------------------------------------- ! read numerics parameter and do sanity check diff --git a/src/element.f90 b/src/element.f90 index 3ccc2fb78..2a2e81d00 100644 --- a/src/element.f90 +++ b/src/element.f90 @@ -922,7 +922,7 @@ subroutine tElement_init(self,elemType) self%nIPneighbors = size(self%IPneighbor,1) - print'(/,a)', ' <<<+- element_init -+>>>'; flush(6) + print'(/,a)', ' <<<+- element_init -+>>>'; flush(OUTPUT_UNIT) print*, 'element type: ',self%elemType print*, ' geom type: ',self%geomType diff --git a/src/homogenization.f90 b/src/homogenization.f90 index cc8df77f4..1c2b9bc38 100644 --- a/src/homogenization.f90 +++ b/src/homogenization.f90 @@ -186,7 +186,7 @@ subroutine homogenization_init materialpoint_F = materialpoint_F0 ! initialize to identity allocate(materialpoint_P(3,3,discretization_nIP,discretization_nElem), source=0.0_pReal) - print'(/,a)', ' <<<+- homogenization init -+>>>'; flush(6) + print'(/,a)', ' <<<+- homogenization init -+>>>'; flush(OUTPUT_UNIT) num%nMPstate = num_homogGeneric%get_asInt ('nMPstate', defaultVal=10) num%subStepMinHomog = num_homogGeneric%get_asFloat('subStepMin', defaultVal=1.0e-3_pReal) diff --git a/src/homogenization_mech_RGC.f90 b/src/homogenization_mech_RGC.f90 index cdd7c05dd..d954b0b9f 100644 --- a/src/homogenization_mech_RGC.f90 +++ b/src/homogenization_mech_RGC.f90 @@ -95,7 +95,7 @@ module subroutine mech_RGC_init(num_homogMech) print'(/,a)', ' <<<+- homogenization_mech_rgc init -+>>>' Ninstance = count(homogenization_type == HOMOGENIZATION_RGC_ID) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) print*, 'Tjahjanto et al., International Journal of Material Forming 2(1):939–942, 2009' print*, 'https://doi.org/10.1007/s12289-009-0619-1'//IO_EOL @@ -247,7 +247,7 @@ module subroutine mech_RGC_partitionDeformation(F,avgF,instance,of) print'(1x,3(e15.8,1x))',(F(i,j,iGrain), j = 1,3) enddo print*,' ' - flush(6) + flush(OUTPUT_UNIT) endif #endif enddo @@ -376,7 +376,7 @@ module procedure mech_RGC_updateState '@ grain ',stresLoc(3),' in component ',stresLoc(1),stresLoc(2) print'(a,e15.8,a,i3,a,i2)',' Max residual: ',residMax, & ' @ iface ',residLoc(1),' in direction ',residLoc(2) - flush(6) + flush(OUTPUT_UNIT) endif #endif @@ -388,7 +388,7 @@ module procedure mech_RGC_updateState mech_RGC_updateState = .true. #ifdef DEBUG if (debugHomog%extensive .and. prm%of_debug == of) & - print*, '... done and happy'; flush(6) + print*, '... done and happy'; flush(OUTPUT_UNIT) #endif !-------------------------------------------------------------------------------------------------- @@ -416,7 +416,7 @@ module procedure mech_RGC_updateState print'(a,e15.8,/)', ' Volume discrepancy: ', dst%volumeDiscrepancy(of) print'(a,e15.8)', ' Maximum relaxation rate: ', dst%relaxationRate_max(of) print'(a,e15.8,/)', ' Average relaxation rate: ', dst%relaxationRate_avg(of) - flush(6) + flush(OUTPUT_UNIT) endif #endif @@ -429,7 +429,7 @@ module procedure mech_RGC_updateState #ifdef DEBUG if (debugHomog%extensive .and. prm%of_debug == of) & - print'(a,/)', ' ... broken'; flush(6) + print'(a,/)', ' ... broken'; flush(OUTPUT_UNIT) #endif return @@ -437,7 +437,7 @@ module procedure mech_RGC_updateState else ! proceed with computing the Jacobian and state update #ifdef DEBUG if (debugHomog%extensive .and. prm%of_debug == of) & - print'(a,/)', ' ... not yet done'; flush(6) + print'(a,/)', ' ... not yet done'; flush(OUTPUT_UNIT) #endif endif @@ -499,7 +499,7 @@ module procedure mech_RGC_updateState print'(1x,100(e11.4,1x))',(smatrix(i,j), j = 1,3*nIntFaceTot) enddo print*,' ' - flush(6) + flush(OUTPUT_UNIT) endif #endif @@ -559,7 +559,7 @@ module procedure mech_RGC_updateState print'(1x,100(e11.4,1x))',(pmatrix(i,j), j = 1,3*nIntFaceTot) enddo print*,' ' - flush(6) + flush(OUTPUT_UNIT) endif #endif @@ -578,7 +578,7 @@ module procedure mech_RGC_updateState print'(1x,100(e11.4,1x))',(rmatrix(i,j), j = 1,3*nIntFaceTot) enddo print*,' ' - flush(6) + flush(OUTPUT_UNIT) endif #endif @@ -593,7 +593,7 @@ module procedure mech_RGC_updateState print'(1x,100(e11.4,1x))',(jmatrix(i,j), j = 1,3*nIntFaceTot) enddo print*,' ' - flush(6) + flush(OUTPUT_UNIT) endif #endif @@ -609,7 +609,7 @@ module procedure mech_RGC_updateState print'(1x,100(e11.4,1x))',(jnverse(i,j), j = 1,3*nIntFaceTot) enddo print*,' ' - flush(6) + flush(OUTPUT_UNIT) endif #endif @@ -625,7 +625,7 @@ module procedure mech_RGC_updateState !$OMP CRITICAL (write2out) print'(a,i3,a,i3,a)',' RGC_updateState: ip ',ip,' | el ',el,' enforces cutback' print'(a,e15.8)',' due to large relaxation change = ',maxval(abs(drelax)) - flush(6) + flush(OUTPUT_UNIT) !$OMP END CRITICAL (write2out) endif @@ -636,7 +636,7 @@ module procedure mech_RGC_updateState print'(1x,2(e15.8,1x))', stt%relaxationVector(i,of) enddo print*,' ' - flush(6) + flush(OUTPUT_UNIT) endif #endif diff --git a/src/homogenization_mech_isostrain.f90 b/src/homogenization_mech_isostrain.f90 index 6c5f50b99..eefb3ad64 100644 --- a/src/homogenization_mech_isostrain.f90 +++ b/src/homogenization_mech_isostrain.f90 @@ -40,7 +40,7 @@ module subroutine mech_isostrain_init print'(/,a)', ' <<<+- homogenization_mech_isostrain init -+>>>' Ninstance = count(homogenization_type == HOMOGENIZATION_ISOSTRAIN_ID) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) allocate(param(Ninstance)) ! one container of parameters per instance diff --git a/src/homogenization_mech_none.f90 b/src/homogenization_mech_none.f90 index d9426ef50..52143a3d2 100644 --- a/src/homogenization_mech_none.f90 +++ b/src/homogenization_mech_none.f90 @@ -21,7 +21,7 @@ module subroutine mech_none_init print'(/,a)', ' <<<+- homogenization_mech_none init -+>>>' Ninstance = count(homogenization_type == HOMOGENIZATION_NONE_ID) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) do h = 1, size(homogenization_type) if (homogenization_type(h) /= HOMOGENIZATION_NONE_ID) cycle diff --git a/src/kinematics_cleavage_opening.f90 b/src/kinematics_cleavage_opening.f90 index d8f25f8b8..37513d0e1 100644 --- a/src/kinematics_cleavage_opening.f90 +++ b/src/kinematics_cleavage_opening.f90 @@ -49,7 +49,7 @@ module function kinematics_cleavage_opening_init(kinematics_length) result(myKin myKinematics = kinematics_active('cleavage_opening',kinematics_length) Ninstance = count(myKinematics) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/kinematics_slipplane_opening.f90 b/src/kinematics_slipplane_opening.f90 index 3b04e37c1..46ff59da5 100644 --- a/src/kinematics_slipplane_opening.f90 +++ b/src/kinematics_slipplane_opening.f90 @@ -52,7 +52,7 @@ module function kinematics_slipplane_opening_init(kinematics_length) result(myKi myKinematics = kinematics_active('slipplane_opening',kinematics_length) Ninstance = count(myKinematics) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/kinematics_thermal_expansion.f90 b/src/kinematics_thermal_expansion.f90 index 652713aa4..d3516862d 100644 --- a/src/kinematics_thermal_expansion.f90 +++ b/src/kinematics_thermal_expansion.f90 @@ -42,7 +42,7 @@ module function kinematics_thermal_expansion_init(kinematics_length) result(myKi myKinematics = kinematics_active('thermal_expansion',kinematics_length) Ninstance = count(myKinematics) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/lattice.f90 b/src/lattice.f90 index d0ac07ed6..ba7631142 100644 --- a/src/lattice.f90 +++ b/src/lattice.f90 @@ -457,7 +457,7 @@ subroutine lattice_init phase, & elasticity - print'(/,a)', ' <<<+- lattice init -+>>>'; flush(6) + print'(/,a)', ' <<<+- lattice init -+>>>'; flush(OUTPUT_UNIT) phases => config_material%get('phase') Nphases = phases%length diff --git a/src/material.f90 b/src/material.f90 index f8e487b66..9bc2bbbc5 100644 --- a/src/material.f90 +++ b/src/material.f90 @@ -164,7 +164,7 @@ subroutine material_init(restart) material_homogenization character(len=pStringLen) :: sectionName - print'(/,a)', ' <<<+- material init -+>>>'; flush(6) + print'(/,a)', ' <<<+- material init -+>>>'; flush(OUTPUT_UNIT) phases => config_material%get('phase') allocate(material_name_phase(phases%length)) diff --git a/src/math.f90 b/src/math.f90 index b835a35b2..63e539e48 100644 --- a/src/math.f90 +++ b/src/math.f90 @@ -91,7 +91,7 @@ subroutine math_init class(tNode), pointer :: & num_generic - print'(/,a)', ' <<<+- math init -+>>>'; flush(6) + print'(/,a)', ' <<<+- math init -+>>>'; flush(OUTPUT_UNIT) num_generic => config_numerics%get('generic',defaultVal=emptyDict) randomSeed = num_generic%get_asInt('random_seed', defaultVal = 0) diff --git a/src/results.f90 b/src/results.f90 index 686183919..6dd84fb78 100644 --- a/src/results.f90 +++ b/src/results.f90 @@ -65,7 +65,7 @@ subroutine results_init(restart) character(len=pStringLen) :: commandLine - print'(/,a)', ' <<<+- results init -+>>>'; flush(6) + print'(/,a)', ' <<<+- results init -+>>>'; flush(OUTPUT_UNIT) print*, 'Diehl et al., Integrating Materials and Manufacturing Innovation 6(1):83–91, 2017' print*, 'https://doi.org/10.1007/s40192-017-0084-5'//IO_EOL diff --git a/src/rotations.f90 b/src/rotations.f90 index 72046a965..723cced61 100644 --- a/src/rotations.f90 +++ b/src/rotations.f90 @@ -104,7 +104,7 @@ contains subroutine rotations_init call quaternions_init - print'(/,a)', ' <<<+- rotations init -+>>>'; flush(6) + print'(/,a)', ' <<<+- rotations init -+>>>'; flush(OUTPUT_UNIT) print*, 'Rowenhorst et al., Modelling and Simulation in Materials Science and Engineering 23:083501, 2015' print*, 'https://doi.org/10.1088/0965-0393/23/8/083501' diff --git a/src/source_damage_anisoBrittle.f90 b/src/source_damage_anisoBrittle.f90 index 6dd58fe5b..5377f3373 100644 --- a/src/source_damage_anisoBrittle.f90 +++ b/src/source_damage_anisoBrittle.f90 @@ -53,7 +53,7 @@ module function source_damage_anisoBrittle_init(source_length) result(mySources) mySources = source_active('damage_anisoBrittle',source_length) Ninstance = count(mySources) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/source_damage_anisoDuctile.f90 b/src/source_damage_anisoDuctile.f90 index 37681a23f..abbd90ca3 100644 --- a/src/source_damage_anisoDuctile.f90 +++ b/src/source_damage_anisoDuctile.f90 @@ -47,7 +47,7 @@ module function source_damage_anisoDuctile_init(source_length) result(mySources) mySources = source_active('damage_anisoDuctile',source_length) Ninstance = count(mySources) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/source_damage_isoBrittle.f90 b/src/source_damage_isoBrittle.f90 index c6d0ada99..45f6abf3a 100644 --- a/src/source_damage_isoBrittle.f90 +++ b/src/source_damage_isoBrittle.f90 @@ -43,7 +43,7 @@ module function source_damage_isoBrittle_init(source_length) result(mySources) mySources = source_active('damage_isoBrittle',source_length) Ninstance = count(mySources) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/source_damage_isoDuctile.f90 b/src/source_damage_isoDuctile.f90 index 1c1c53fd0..e74f187de 100644 --- a/src/source_damage_isoDuctile.f90 +++ b/src/source_damage_isoDuctile.f90 @@ -45,7 +45,7 @@ module function source_damage_isoDuctile_init(source_length) result(mySources) mySources = source_active('damage_isoDuctile',source_length) Ninstance = count(mySources) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/source_thermal_dissipation.f90 b/src/source_thermal_dissipation.f90 index 60fde7f28..307d211b3 100644 --- a/src/source_thermal_dissipation.f90 +++ b/src/source_thermal_dissipation.f90 @@ -41,7 +41,7 @@ module function source_thermal_dissipation_init(source_length) result(mySources) mySources = source_active('thermal_dissipation',source_length) Ninstance = count(mySources) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/source_thermal_externalheat.f90 b/src/source_thermal_externalheat.f90 index e7bfea254..95d994e11 100644 --- a/src/source_thermal_externalheat.f90 +++ b/src/source_thermal_externalheat.f90 @@ -45,7 +45,7 @@ module function source_thermal_externalheat_init(source_length) result(mySources mySources = source_active('thermal_externalheat',source_length) Ninstance = count(mySources) - print'(a,i2)', ' # instances: ',Ninstance; flush(6) + print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) if(Ninstance == 0) return phases => config_material%get('phase') From 53ce4e07d2d40ec381ada8195bf2e369d8d3a148 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Tue, 22 Sep 2020 13:02:33 +0200 Subject: [PATCH 12/13] forgotten renames in subfolders --- src/grid/DAMASK_grid.f90 | 24 +++++++-------- src/grid/discretization_grid.f90 | 2 +- src/grid/grid_damage_spectral.f90 | 4 +-- src/grid/grid_mech_FEM.f90 | 12 ++++---- src/grid/grid_mech_spectral_basic.f90 | 12 ++++---- src/grid/grid_mech_spectral_polarisation.f90 | 12 ++++---- src/grid/grid_thermal_spectral.f90 | 4 +-- src/grid/spectral_utilities.f90 | 32 ++++++++++---------- src/mesh/DAMASK_mesh.f90 | 6 ++-- src/mesh/FEM_utilities.f90 | 2 +- src/mesh/mesh_mech_FEM.f90 | 8 ++--- 11 files changed, 59 insertions(+), 59 deletions(-) diff --git a/src/grid/DAMASK_grid.f90 b/src/grid/DAMASK_grid.f90 index 213322278..03dfd2e77 100644 --- a/src/grid/DAMASK_grid.f90 +++ b/src/grid/DAMASK_grid.f90 @@ -99,7 +99,7 @@ program DAMASK_grid ! init DAMASK (all modules) call CPFEM_initAll - print'(/,a)', ' <<<+- DAMASK_spectral init -+>>>'; flush(6) + print'(/,a)', ' <<<+- DAMASK_spectral init -+>>>'; flush(OUTPUT_UNIT) print*, 'Shanthraj et al., Handbook of Mechanics of Materials, 2019' print*, 'https://doi.org/10.1007/978-981-10-6855-3_80' @@ -279,11 +279,11 @@ program DAMASK_grid endif do i = 1, 3; do j = 1, 3 if(newLoadCase%deformation%maskLogical(i,j)) then - write(6,'(2x,f12.7)',advance='no') newLoadCase%deformation%values(i,j) + write(OUTPUT_UNIT,'(2x,f12.7)',advance='no') newLoadCase%deformation%values(i,j) else - write(6,'(2x,12a)',advance='no') ' * ' + write(OUTPUT_UNIT,'(2x,12a)',advance='no') ' * ' endif - enddo; write(6,'(/)',advance='no') + enddo; write(OUTPUT_UNIT,'(/)',advance='no') enddo if (any(newLoadCase%stress%maskLogical .eqv. & newLoadCase%deformation%maskLogical)) errorID = 831 ! exclusive or masking only @@ -292,17 +292,17 @@ program DAMASK_grid print*, ' stress / GPa:' do i = 1, 3; do j = 1, 3 if(newLoadCase%stress%maskLogical(i,j)) then - write(6,'(2x,f12.7)',advance='no') newLoadCase%stress%values(i,j)*1e-9_pReal + write(OUTPUT_UNIT,'(2x,f12.7)',advance='no') newLoadCase%stress%values(i,j)*1e-9_pReal else - write(6,'(2x,12a)',advance='no') ' * ' + write(OUTPUT_UNIT,'(2x,12a)',advance='no') ' * ' endif - enddo; write(6,'(/)',advance='no') + enddo; write(OUTPUT_UNIT,'(/)',advance='no') enddo if (any(abs(matmul(newLoadCase%rot%asMatrix(), & transpose(newLoadCase%rot%asMatrix()))-math_I3) > & reshape(spread(tol_math_check,1,9),[ 3,3]))) errorID = 846 ! given rotation matrix contains strain if (any(dNeq(newLoadCase%rot%asMatrix(), math_I3))) & - write(6,'(2x,a,/,3(3(3x,f12.7,1x)/))',advance='no') 'rotation of loadframe:',& + write(OUTPUT_UNIT,'(2x,a,/,3(3(3x,f12.7,1x)/))',advance='no') 'rotation of loadframe:',& transpose(newLoadCase%rot%asMatrix()) if (newLoadCase%time < 0.0_pReal) errorID = 834 ! negative time increment print'(a,f0.3)', ' time: ', newLoadCase%time @@ -342,7 +342,7 @@ program DAMASK_grid open(newunit=statUnit,file=trim(getSolverJobName())//'.sta',form='FORMATTED',status='REPLACE') write(statUnit,'(a)') 'Increment Time CutbackLevel Converged IterationsNeeded' ! statistics file if (debug_grid%contains('basic')) print'(/,a)', ' header of statistics file written out' - flush(6) + flush(OUTPUT_UNIT) else writeHeader open(newunit=statUnit,file=trim(getSolverJobName())//& '.sta',form='FORMATTED', position='APPEND', status='OLD') @@ -405,7 +405,7 @@ program DAMASK_grid write(incInfo,'(4(a,i0))') & 'Increment ',totalIncsCounter,'/',sum(loadCases%incs),& '-', stepFraction,'/',subStepFactor**cutBackLevel - flush(6) + flush(OUTPUT_UNIT) !-------------------------------------------------------------------------------------------------- ! forward fields @@ -489,11 +489,11 @@ program DAMASK_grid print'(/,a,i0,a)', ' increment ', totalIncsCounter, ' converged' else print'(/,a,i0,a)', ' increment ', totalIncsCounter, ' NOT converged' - endif; flush(6) + endif; flush(OUTPUT_UNIT) if (mod(inc,loadCases(currentLoadCase)%outputFrequency) == 0) then ! at output frequency print'(1/,a)', ' ... writing results to file ......................................' - flush(6) + flush(OUTPUT_UNIT) call CPFEM_results(totalIncsCounter,time) endif if (mod(inc,loadCases(currentLoadCase)%restartFrequency) == 0) then diff --git a/src/grid/discretization_grid.f90 b/src/grid/discretization_grid.f90 index 576aaea60..32cd996db 100644 --- a/src/grid/discretization_grid.f90 +++ b/src/grid/discretization_grid.f90 @@ -65,7 +65,7 @@ subroutine discretization_grid_init(restart) integer(C_INTPTR_T) :: & devNull, z, z_offset - print'(/,a)', ' <<<+- discretization_grid init -+>>>'; flush(6) + print'(/,a)', ' <<<+- discretization_grid init -+>>>'; flush(OUTPUT_UNIT) if(index(interface_geomFile,'.vtr') /= 0) then call readVTR(grid,geomSize,origin,microstructureAt) diff --git a/src/grid/grid_damage_spectral.f90 b/src/grid/grid_damage_spectral.f90 index 2a0754c66..3d6a9c431 100644 --- a/src/grid/grid_damage_spectral.f90 +++ b/src/grid/grid_damage_spectral.f90 @@ -205,10 +205,10 @@ function grid_damage_spectral_solution(timeinc,timeinc_old) result(solution) call VecMax(solution_vec,devNull,phi_max,ierr); CHKERRQ(ierr) if (solution%converged) & print'(/,a)', ' ... nonlocal damage converged .....................................' - write(6,'(/,a,f8.6,2x,f8.6,2x,e11.4,/)',advance='no') ' Minimum|Maximum|Delta Damage = ',& + write(OUTPUT_UNIT,'(/,a,f8.6,2x,f8.6,2x,e11.4,/)',advance='no') ' Minimum|Maximum|Delta Damage = ',& phi_min, phi_max, stagNorm print'(/,a)', ' ===========================================================================' - flush(6) + flush(OUTPUT_UNIT) end function grid_damage_spectral_solution diff --git a/src/grid/grid_mech_FEM.f90 b/src/grid/grid_mech_FEM.f90 index 3923e1898..0fcb08480 100644 --- a/src/grid/grid_mech_FEM.f90 +++ b/src/grid/grid_mech_FEM.f90 @@ -122,7 +122,7 @@ subroutine grid_mech_FEM_init PetscScalar, pointer, dimension(:,:,:,:) :: & u_current,u_lastInc - print'(/,a)', ' <<<+- grid_mech_FEM init -+>>>'; flush(6) + print'(/,a)', ' <<<+- grid_mech_FEM init -+>>>'; flush(OUTPUT_UNIT) !----------------------------------------------------------------------------------------------- ! debugging options @@ -413,7 +413,7 @@ subroutine grid_mech_FEM_restartWrite call DMDAVecGetArrayF90(mech_grid,solution_current,u_current,ierr); CHKERRQ(ierr) call DMDAVecGetArrayF90(mech_grid,solution_lastInc,u_lastInc,ierr); CHKERRQ(ierr) - print*, 'writing solver data required for restart to file'; flush(6) + print*, 'writing solver data required for restart to file'; flush(OUTPUT_UNIT) write(fileName,'(a,a,i0,a)') trim(getSolverJobName()),'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName,'w') @@ -481,7 +481,7 @@ subroutine converged(snes_local,PETScIter,devNull1,devNull2,fnorm,reason,dummy,i print'(a,f12.2,a,es8.2,a,es9.2,a)', ' error stress BC = ', & err_BC/BCTol, ' (',err_BC, ' Pa, tol = ',BCTol,')' print'(/,a)', ' ===========================================================================' - flush(6) + flush(OUTPUT_UNIT) end subroutine converged @@ -517,11 +517,11 @@ subroutine formResidual(da_local,x_local, & totalIter = totalIter + 1 print'(1x,a,3(a,i0))', trim(incInfo), ' @ Iteration ', num%itmin, '≤',totalIter+1, '≤', num%itmax if (debugRotation) & - write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & + write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim (lab) =', transpose(params%rotation_BC%rotate(F_aim,active=.true.)) - write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & + write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim =', transpose(F_aim) - flush(6) + flush(OUTPUT_UNIT) endif newIteration !-------------------------------------------------------------------------------------------------- diff --git a/src/grid/grid_mech_spectral_basic.f90 b/src/grid/grid_mech_spectral_basic.f90 index 14d317c73..819e9eded 100644 --- a/src/grid/grid_mech_spectral_basic.f90 +++ b/src/grid/grid_mech_spectral_basic.f90 @@ -109,7 +109,7 @@ subroutine grid_mech_spectral_basic_init character(len=pStringLen) :: & fileName - print'(/,a)', ' <<<+- grid_mech_spectral_basic init -+>>>'; flush(6) + print'(/,a)', ' <<<+- grid_mech_spectral_basic init -+>>>'; flush(OUTPUT_UNIT) print*, 'Eisenlohr et al., International Journal of Plasticity 46:37–53, 2013' print*, 'https://doi.org/10.1016/j.ijplas.2012.09.012'//IO_EOL @@ -375,7 +375,7 @@ subroutine grid_mech_spectral_basic_restartWrite call DMDAVecGetArrayF90(da,solution_vec,F,ierr); CHKERRQ(ierr) - print'(a)', ' writing solver data required for restart to file'; flush(6) + print'(a)', ' writing solver data required for restart to file'; flush(OUTPUT_UNIT) write(fileName,'(a,a,i0,a)') trim(getSolverJobName()),'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName,'w') @@ -441,7 +441,7 @@ subroutine converged(snes_local,PETScIter,devNull1,devNull2,devNull3,reason,dumm print'(a,f12.2,a,es8.2,a,es9.2,a)', ' error stress BC = ', & err_BC/BCTol, ' (',err_BC, ' Pa, tol = ',BCTol,')' print'(/,a)', ' ===========================================================================' - flush(6) + flush(OUTPUT_UNIT) end subroutine converged @@ -475,11 +475,11 @@ subroutine formResidual(in, F, & totalIter = totalIter + 1 print'(1x,a,3(a,i0))', trim(incInfo), ' @ Iteration ', num%itmin, '≤',totalIter, '≤', num%itmax if (debugRotation) & - write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & + write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim (lab) =', transpose(params%rotation_BC%rotate(F_aim,active=.true.)) - write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & + write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim =', transpose(F_aim) - flush(6) + flush(OUTPUT_UNIT) endif newIteration !-------------------------------------------------------------------------------------------------- diff --git a/src/grid/grid_mech_spectral_polarisation.f90 b/src/grid/grid_mech_spectral_polarisation.f90 index f83ebed75..021c2291e 100644 --- a/src/grid/grid_mech_spectral_polarisation.f90 +++ b/src/grid/grid_mech_spectral_polarisation.f90 @@ -123,7 +123,7 @@ subroutine grid_mech_spectral_polarisation_init character(len=pStringLen) :: & fileName - print'(/,a)', ' <<<+- grid_mech_spectral_polarisation init -+>>>'; flush(6) + print'(/,a)', ' <<<+- grid_mech_spectral_polarisation init -+>>>'; flush(OUTPUT_UNIT) print*, 'Shanthraj et al., International Journal of Plasticity 66:31–45, 2015' print*, 'https://doi.org/10.1016/j.ijplas.2014.02.006' @@ -433,7 +433,7 @@ subroutine grid_mech_spectral_polarisation_restartWrite F => FandF_tau(0: 8,:,:,:) F_tau => FandF_tau(9:17,:,:,:) - print*, 'writing solver data required for restart to file'; flush(6) + print*, 'writing solver data required for restart to file'; flush(OUTPUT_UNIT) write(fileName,'(a,a,i0,a)') trim(getSolverJobName()),'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName,'w') @@ -505,7 +505,7 @@ subroutine converged(snes_local,PETScIter,devNull1,devNull2,devNull3,reason,dumm print '(a,f12.2,a,es8.2,a,es9.2,a)', ' error stress BC = ', & err_BC/BCTol, ' (',err_BC, ' Pa, tol = ',BCTol,')' print'(/,a)', ' ===========================================================================' - flush(6) + flush(OUTPUT_UNIT) end subroutine converged @@ -559,11 +559,11 @@ subroutine formResidual(in, FandF_tau, & totalIter = totalIter + 1 print'(1x,a,3(a,i0))', trim(incInfo), ' @ Iteration ', num%itmin, '≤',totalIter, '≤', num%itmax if(debugRotation) & - write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & + write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim (lab) =', transpose(params%rotation_BC%rotate(F_aim,active=.true.)) - write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & + write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim =', transpose(F_aim) - flush(6) + flush(OUTPUT_UNIT) endif newIteration !-------------------------------------------------------------------------------------------------- diff --git a/src/grid/grid_thermal_spectral.f90 b/src/grid/grid_thermal_spectral.f90 index eeff8c9d6..b12d67843 100644 --- a/src/grid/grid_thermal_spectral.f90 +++ b/src/grid/grid_thermal_spectral.f90 @@ -199,10 +199,10 @@ function grid_thermal_spectral_solution(timeinc,timeinc_old) result(solution) call VecMax(solution_vec,devNull,T_max,ierr); CHKERRQ(ierr) if (solution%converged) & print'(/,a)', ' ... thermal conduction converged ..................................' - write(6,'(/,a,f8.4,2x,f8.4,2x,f8.4,/)',advance='no') ' Minimum|Maximum|Delta Temperature / K = ',& + write(OUTPUT_UNIT,'(/,a,f8.4,2x,f8.4,2x,f8.4,/)',advance='no') ' Minimum|Maximum|Delta Temperature / K = ',& T_min, T_max, stagNorm print'(/,a)', ' ===========================================================================' - flush(6) + flush(OUTPUT_UNIT) end function grid_thermal_spectral_solution diff --git a/src/grid/spectral_utilities.f90 b/src/grid/spectral_utilities.f90 index 5e53fe2a5..bfd05b6f5 100644 --- a/src/grid/spectral_utilities.f90 +++ b/src/grid/spectral_utilities.f90 @@ -211,7 +211,7 @@ subroutine spectral_utilities_init if(debugPETSc) print'(3(/,a),/)', & ' Initializing PETSc with debug options: ', & trim(PETScDebug), & - ' add more using the PETSc_Options keyword in numerics.yaml '; flush(6) + ' add more using the PETSc_Options keyword in numerics.yaml '; flush(OUTPUT_UNIT) num_grid => config_numerics%get('grid',defaultVal=emptyDict) @@ -280,7 +280,7 @@ subroutine spectral_utilities_init if (pReal /= C_DOUBLE .or. kind(1) /= C_INT) error stop 'C and Fortran datatypes do not match' call fftw_set_timelimit(num_grid%get_asFloat('fftw_timelimit',defaultVal=-1.0_pReal)) - print*, 'FFTW initialized'; flush(6) + print*, 'FFTW initialized'; flush(OUTPUT_UNIT) !-------------------------------------------------------------------------------------------------- ! MPI allocation @@ -507,7 +507,7 @@ subroutine utilities_fourierGammaConvolution(fieldAim) print'(/,a)', ' ... doing gamma convolution ...............................................' - flush(6) + flush(OUTPUT_UNIT) !-------------------------------------------------------------------------------------------------- ! do the actual spectral method calculation (mechanical equilibrium) @@ -577,7 +577,7 @@ real(pReal) function utilities_divergenceRMS() complex(pReal), dimension(3) :: rescaledGeom print'(/,a)', ' ... calculating divergence ................................................' - flush(6) + flush(OUTPUT_UNIT) rescaledGeom = cmplx(geomSize/scaledGeomSize,0.0_pReal) @@ -621,7 +621,7 @@ real(pReal) function utilities_curlRMS() complex(pReal), dimension(3) :: rescaledGeom print'(/,a)', ' ... calculating curl ......................................................' - flush(6) + flush(OUTPUT_UNIT) rescaledGeom = cmplx(geomSize/scaledGeomSize,0.0_pReal) @@ -701,9 +701,9 @@ function utilities_maskedCompliance(rot_BC,mask_stress,C) if(debugGeneral) then print'(/,a)', ' ... updating masked compliance ............................................' - write(6,'(/,a,/,9(9(2x,f12.7,1x)/))',advance='no') ' Stiffness C (load) / GPa =',& + write(OUTPUT_UNIT,'(/,a,/,9(9(2x,f12.7,1x)/))',advance='no') ' Stiffness C (load) / GPa =',& transpose(temp99_Real)*1.0e-9_pReal - flush(6) + flush(OUTPUT_UNIT) endif do i = 1,9; do j = 1,9 @@ -723,9 +723,9 @@ function utilities_maskedCompliance(rot_BC,mask_stress,C) if (debugGeneral .or. errmatinv) then write(formatString, '(i2)') size_reduced formatString = '(/,a,/,'//trim(formatString)//'('//trim(formatString)//'(2x,es9.2,1x)/))' - write(6,trim(formatString),advance='no') ' C * S (load) ', & + write(OUTPUT_UNIT,trim(formatString),advance='no') ' C * S (load) ', & transpose(matmul(c_reduced,s_reduced)) - write(6,trim(formatString),advance='no') ' S (load) ', transpose(s_reduced) + write(OUTPUT_UNIT,trim(formatString),advance='no') ' S (load) ', transpose(s_reduced) if(errmatinv) call IO_error(error_ID=400,ext_msg='utilities_maskedCompliance') endif temp99_real = reshape(unpack(reshape(s_reduced,[size_reduced**2]),reshape(mask,[81]),0.0_pReal),[9,9]) @@ -736,9 +736,9 @@ function utilities_maskedCompliance(rot_BC,mask_stress,C) utilities_maskedCompliance = math_99to3333(temp99_Real) if(debugGeneral) then - write(6,'(/,a,/,9(9(2x,f10.5,1x)/),/)',advance='no') & + write(OUTPUT_UNIT,'(/,a,/,9(9(2x,f10.5,1x)/),/)',advance='no') & ' Masked Compliance (load) * GPa =', transpose(temp99_Real)*1.0e9_pReal - flush(6) + flush(OUTPUT_UNIT) endif end function utilities_maskedCompliance @@ -823,7 +823,7 @@ subroutine utilities_constitutiveResponse(P,P_av,C_volAvg,C_minmaxAvg,& real(pReal), dimension(2) :: valueAndRank !< pair of min/max norm of dPdF to synchronize min/max of dPdF print'(/,a)', ' ... evaluating constitutive response ......................................' - flush(6) + flush(OUTPUT_UNIT) materialpoint_F = reshape(F,[3,3,1,product(grid(1:2))*grid3]) ! set materialpoint target F to estimated field @@ -833,13 +833,13 @@ subroutine utilities_constitutiveResponse(P,P_av,C_volAvg,C_minmaxAvg,& P_av = sum(sum(sum(P,dim=5),dim=4),dim=3) * wgt ! average of P call MPI_Allreduce(MPI_IN_PLACE,P_av,9,MPI_DOUBLE,MPI_SUM,PETSC_COMM_WORLD,ierr) if (debugRotation) & - write(6,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress (lab) / MPa =',& + write(OUTPUT_UNIT,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress (lab) / MPa =',& transpose(P_av)*1.e-6_pReal if(present(rotation_BC)) & P_av = rotation_BC%rotate(P_av) - write(6,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress / MPa =',& + write(OUTPUT_UNIT,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress / MPa =',& transpose(P_av)*1.e-6_pReal - flush(6) + flush(OUTPUT_UNIT) dPdF_max = 0.0_pReal dPdF_norm_max = 0.0_pReal @@ -1095,7 +1095,7 @@ subroutine utilities_saveReferenceStiffness fileUnit,ierr if (worldrank == 0) then - print'(a)', ' writing reference stiffness data required for restart to file'; flush(6) + print'(a)', ' writing reference stiffness data required for restart to file'; flush(OUTPUT_UNIT) open(newunit=fileUnit, file=getSolverJobName()//'.C_ref',& status='replace',access='stream',action='write',iostat=ierr) if(ierr /=0) call IO_error(100,ext_msg='could not open file '//getSolverJobName()//'.C_ref') diff --git a/src/mesh/DAMASK_mesh.f90 b/src/mesh/DAMASK_mesh.f90 index 0ba56bef3..acee51394 100644 --- a/src/mesh/DAMASK_mesh.f90 +++ b/src/mesh/DAMASK_mesh.f90 @@ -78,7 +78,7 @@ program DAMASK_mesh !-------------------------------------------------------------------------------------------------- ! init DAMASK (all modules) call CPFEM_initAll - print'(/,a)', ' <<<+- DAMASK_mesh init -+>>>'; flush(6) + print'(/,a)', ' <<<+- DAMASK_mesh init -+>>>'; flush(OUTPUT_UNIT) !--------------------------------------------------------------------- ! reading field information from numerics file and do sanity checks @@ -299,7 +299,7 @@ program DAMASK_mesh write(incInfo,'(4(a,i0))') & 'Increment ',totalIncsCounter,'/',sum(loadCases%incs),& '-',stepFraction, '/', subStepFactor**cutBackLevel - flush(6) + flush(OUTPUT_UNIT) !-------------------------------------------------------------------------------------------------- ! forward fields @@ -363,7 +363,7 @@ program DAMASK_mesh print'(/,a,i0,a)', ' increment ', totalIncsCounter, ' converged' else print'(/,a,i0,a)', ' increment ', totalIncsCounter, ' NOT converged' - endif; flush(6) + endif; flush(OUTPUT_UNIT) if (mod(inc,loadCases(currentLoadCase)%outputFrequency) == 0) then ! at output frequency print'(/,a)', ' ... writing results to file ......................................' diff --git a/src/mesh/FEM_utilities.f90 b/src/mesh/FEM_utilities.f90 index 1e154e533..91e1bd5b6 100644 --- a/src/mesh/FEM_utilities.f90 +++ b/src/mesh/FEM_utilities.f90 @@ -122,7 +122,7 @@ subroutine FEM_utilities_init ' Initializing PETSc with debug options: ', & trim(PETScDebug), & ' add more using the PETSc_Options keyword in numerics.yaml ' - flush(6) + flush(OUTPUT_UNIT) call PetscOptionsClear(PETSC_NULL_OPTIONS,ierr) CHKERRQ(ierr) if(debugPETSc) call PetscOptionsInsertString(PETSC_NULL_OPTIONS,trim(PETSCDEBUG),ierr) diff --git a/src/mesh/mesh_mech_FEM.f90 b/src/mesh/mesh_mech_FEM.f90 index 6c8d4667d..f7a177929 100644 --- a/src/mesh/mesh_mech_FEM.f90 +++ b/src/mesh/mesh_mech_FEM.f90 @@ -110,7 +110,7 @@ subroutine FEM_mech_init(fieldBC) class(tNode), pointer :: & num_mesh - print'(/,a)', ' <<<+- FEM_mech init -+>>>'; flush(6) + print'(/,a)', ' <<<+- FEM_mech init -+>>>'; flush(OUTPUT_UNIT) !----------------------------------------------------------------------------- ! read numerical parametes and do sanity checks @@ -319,7 +319,7 @@ type(tSolutionState) function FEM_mech_solution( & endif print'(/,a)', ' ===========================================================================' - flush(6) + flush(OUTPUT_UNIT) end function FEM_mech_solution @@ -682,9 +682,9 @@ subroutine FEM_mech_converged(snes_local,PETScIter,xnorm,snorm,fnorm,reason,dumm print'(/,1x,a,a,i0,a,i0,f0.3)', trim(incInfo), & ' @ Iteration ',PETScIter,' mechanical residual norm = ', & int(fnorm/divTol),fnorm/divTol-int(fnorm/divTol) - write(6,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress / MPa =',& + write(OUTPUT_UNIT,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress / MPa =',& transpose(P_av)*1.e-6_pReal - flush(6) + flush(OUTPUT_UNIT) end subroutine FEM_mech_converged From 41fbc58c1b0b45c6584e27e1990fcb53be725b60 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Tue, 22 Sep 2020 13:09:12 +0200 Subject: [PATCH 13/13] standard conforming name --- src/CPFEM.f90 | 6 +- src/CPFEM2.f90 | 2 +- src/IO.f90 | 60 ++++++++++---------- src/base64.f90 | 2 +- src/config.f90 | 8 +-- src/constitutive.f90 | 2 +- src/constitutive_plastic_disloTungsten.f90 | 2 +- src/constitutive_plastic_dislotwin.f90 | 2 +- src/constitutive_plastic_isotropic.f90 | 2 +- src/constitutive_plastic_kinehardening.f90 | 2 +- src/constitutive_plastic_none.f90 | 2 +- src/constitutive_plastic_nonlocal.f90 | 2 +- src/constitutive_plastic_phenopowerlaw.f90 | 2 +- src/crystallite.f90 | 4 +- src/damage_local.f90 | 2 +- src/element.f90 | 2 +- src/grid/DAMASK_grid.f90 | 24 ++++---- src/grid/discretization_grid.f90 | 2 +- src/grid/grid_damage_spectral.f90 | 4 +- src/grid/grid_mech_FEM.f90 | 12 ++-- src/grid/grid_mech_spectral_basic.f90 | 12 ++-- src/grid/grid_mech_spectral_polarisation.f90 | 12 ++-- src/grid/grid_thermal_spectral.f90 | 4 +- src/grid/spectral_utilities.f90 | 32 +++++------ src/homogenization.f90 | 2 +- src/homogenization_mech_RGC.f90 | 28 ++++----- src/homogenization_mech_isostrain.f90 | 2 +- src/homogenization_mech_none.f90 | 2 +- src/kinematics_cleavage_opening.f90 | 2 +- src/kinematics_slipplane_opening.f90 | 2 +- src/kinematics_thermal_expansion.f90 | 2 +- src/lattice.f90 | 2 +- src/material.f90 | 2 +- src/math.f90 | 2 +- src/mesh/DAMASK_mesh.f90 | 6 +- src/mesh/FEM_utilities.f90 | 2 +- src/mesh/mesh_mech_FEM.f90 | 8 +-- src/results.f90 | 2 +- src/rotations.f90 | 2 +- src/source_damage_anisoBrittle.f90 | 2 +- src/source_damage_anisoDuctile.f90 | 2 +- src/source_damage_isoBrittle.f90 | 2 +- src/source_damage_isoDuctile.f90 | 2 +- src/source_thermal_dissipation.f90 | 2 +- src/source_thermal_externalheat.f90 | 2 +- 45 files changed, 141 insertions(+), 141 deletions(-) diff --git a/src/CPFEM.f90 b/src/CPFEM.f90 index 09e028f6c..05255e2a1 100644 --- a/src/CPFEM.f90 +++ b/src/CPFEM.f90 @@ -106,7 +106,7 @@ subroutine CPFEM_init num_commercialFEM, & debug_CPFEM - print'(/,a)', ' <<<+- CPFEM init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- CPFEM init -+>>>'; flush(IO_STDOUT) 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) @@ -132,7 +132,7 @@ subroutine CPFEM_init print'(a32,1x,6(i8,1x))', 'CPFEM_cs: ', shape(CPFEM_cs) print'(a32,1x,6(i8,1x))', 'CPFEM_dcsdE: ', shape(CPFEM_dcsdE) print'(a32,1x,6(i8,1x),/)', 'CPFEM_dcsdE_knownGood: ', shape(CPFEM_dcsdE_knownGood) - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif end subroutine CPFEM_init @@ -250,7 +250,7 @@ subroutine CPFEM_general(mode, ffn, ffn1, temperature_inp, dt, elFE, ip, cauchyS '<< CPFEM >> stress/MPa at elFE ip ', elFE, ip, CPFEM_cs(1:6,ip,elCP)*1.0e-6_pReal 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 - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif endif diff --git a/src/CPFEM2.f90 b/src/CPFEM2.f90 index fc68778c8..fed43ba78 100644 --- a/src/CPFEM2.f90 +++ b/src/CPFEM2.f90 @@ -76,7 +76,7 @@ end subroutine CPFEM_initAll !-------------------------------------------------------------------------------------------------- subroutine CPFEM_init - print'(/,a)', ' <<<+- CPFEM init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- CPFEM init -+>>>'; flush(IO_STDOUT) if (interface_restartInc > 0) call crystallite_restartRead diff --git a/src/IO.f90 b/src/IO.f90 index 72eb2011f..f9e708ead 100644 --- a/src/IO.f90 +++ b/src/IO.f90 @@ -7,8 +7,8 @@ !-------------------------------------------------------------------------------------------------- module IO use, intrinsic :: ISO_fortran_env, only: & - OUTPUT_UNIT, & - ERROR_UNIT + IO_STDOUT => OUTPUT_UNIT, & + IO_STDERR => ERROR_UNIT use prec @@ -20,7 +20,7 @@ module IO character, parameter, public :: & IO_EOL = new_line('DAMASK'), & !< end of line character IO_COMMENT = '#' - character(len=*), parameter, private :: & + character(len=*), parameter :: & IO_DIVIDER = '───────────────────'//& '───────────────────'//& '───────────────────'//& @@ -42,7 +42,7 @@ module IO IO_stringAsBool, & IO_error, & IO_warning, & - OUTPUT_UNIT + IO_STDOUT contains @@ -52,7 +52,7 @@ contains !-------------------------------------------------------------------------------------------------- subroutine IO_init - print'(/,a)', ' <<<+- IO init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- IO init -+>>>'; flush(IO_STDOUT) call selfTest @@ -543,29 +543,29 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg) end select !$OMP CRITICAL (write2out) - write(ERROR_UNIT,'(/,a)') ' ┌'//IO_DIVIDER//'┐' - write(ERROR_UNIT,'(a,24x,a,40x,a)') ' │','error', '│' - write(ERROR_UNIT,'(a,24x,i3,42x,a)') ' │',error_ID, '│' - write(ERROR_UNIT,'(a)') ' ├'//IO_DIVIDER//'┤' + write(IO_STDERR,'(/,a)') ' ┌'//IO_DIVIDER//'┐' + write(IO_STDERR,'(a,24x,a,40x,a)') ' │','error', '│' + write(IO_STDERR,'(a,24x,i3,42x,a)') ' │',error_ID, '│' + write(IO_STDERR,'(a)') ' ├'//IO_DIVIDER//'┤' write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len_trim(msg)),',',& max(1,72-len_trim(msg)-4),'x,a)' - write(ERROR_UNIT,formatString) '│ ',trim(msg), '│' + write(IO_STDERR,formatString) '│ ',trim(msg), '│' if (present(ext_msg)) then write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len_trim(ext_msg)),',',& max(1,72-len_trim(ext_msg)-4),'x,a)' - write(ERROR_UNIT,formatString) '│ ',trim(ext_msg), '│' + write(IO_STDERR,formatString) '│ ',trim(ext_msg), '│' endif if (present(el)) & - write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at element ',el, '│' + write(IO_STDERR,'(a19,1x,i9,44x,a3)') ' │ at element ',el, '│' if (present(ip)) & - write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at IP ',ip, '│' + write(IO_STDERR,'(a19,1x,i9,44x,a3)') ' │ at IP ',ip, '│' if (present(g)) & - write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at constituent',g, '│' + write(IO_STDERR,'(a19,1x,i9,44x,a3)') ' │ at constituent',g, '│' if (present(instance)) & - write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at instance ',instance, '│' - write(ERROR_UNIT,'(a,69x,a)') ' │', '│' - write(ERROR_UNIT,'(a)') ' └'//IO_DIVIDER//'┘' - flush(ERROR_UNIT) + write(IO_STDERR,'(a19,1x,i9,44x,a3)') ' │ at instance ',instance, '│' + write(IO_STDERR,'(a,69x,a)') ' │', '│' + write(IO_STDERR,'(a)') ' └'//IO_DIVIDER//'┘' + flush(IO_STDERR) call quit(9000+error_ID) !$OMP END CRITICAL (write2out) @@ -628,27 +628,27 @@ subroutine IO_warning(warning_ID,el,ip,g,ext_msg) end select !$OMP CRITICAL (write2out) - write(ERROR_UNIT,'(/,a)') ' ┌'//IO_DIVIDER//'┐' - write(ERROR_UNIT,'(a,24x,a,38x,a)') ' │','warning', '│' - write(ERROR_UNIT,'(a,24x,i3,42x,a)') ' │',warning_ID, '│' - write(ERROR_UNIT,'(a)') ' ├'//IO_DIVIDER//'┤' + write(IO_STDERR,'(/,a)') ' ┌'//IO_DIVIDER//'┐' + write(IO_STDERR,'(a,24x,a,38x,a)') ' │','warning', '│' + write(IO_STDERR,'(a,24x,i3,42x,a)') ' │',warning_ID, '│' + write(IO_STDERR,'(a)') ' ├'//IO_DIVIDER//'┤' write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len_trim(msg)),',',& max(1,72-len_trim(msg)-4),'x,a)' - write(ERROR_UNIT,formatString) '│ ',trim(msg), '│' + write(IO_STDERR,formatString) '│ ',trim(msg), '│' if (present(ext_msg)) then write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a4,a',max(1,len_trim(ext_msg)),',',& max(1,72-len_trim(ext_msg)-4),'x,a)' - write(ERROR_UNIT,formatString) '│ ',trim(ext_msg), '│' + write(IO_STDERR,formatString) '│ ',trim(ext_msg), '│' endif if (present(el)) & - write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at element ',el, '│' + write(IO_STDERR,'(a19,1x,i9,44x,a3)') ' │ at element ',el, '│' if (present(ip)) & - write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at IP ',ip, '│' + write(IO_STDERR,'(a19,1x,i9,44x,a3)') ' │ at IP ',ip, '│' if (present(g)) & - write(ERROR_UNIT,'(a19,1x,i9,44x,a3)') ' │ at constituent',g, '│' - write(ERROR_UNIT,'(a,69x,a)') ' │', '│' - write(ERROR_UNIT,'(a)') ' └'//IO_DIVIDER//'┘' - flush(ERROR_UNIT) + write(IO_STDERR,'(a19,1x,i9,44x,a3)') ' │ at constituent',g, '│' + write(IO_STDERR,'(a,69x,a)') ' │', '│' + write(IO_STDERR,'(a)') ' └'//IO_DIVIDER//'┘' + flush(IO_STDERR) !$OMP END CRITICAL (write2out) end subroutine IO_warning diff --git a/src/base64.f90 b/src/base64.f90 index c04221f21..2f91334b7 100644 --- a/src/base64.f90 +++ b/src/base64.f90 @@ -27,7 +27,7 @@ contains !-------------------------------------------------------------------------------------------------- subroutine base64_init - print'(/,a)', ' <<<+- base64 init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- base64 init -+>>>'; flush(IO_STDOUT) call selfTest diff --git a/src/config.f90 b/src/config.f90 index dc395762f..b10edf013 100644 --- a/src/config.f90 +++ b/src/config.f90 @@ -35,7 +35,7 @@ contains !-------------------------------------------------------------------------------------------------- subroutine config_init - print'(/,a)', ' <<<+- config init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- config init -+>>>'; flush(IO_STDOUT) call parse_material call parse_numerics @@ -59,7 +59,7 @@ subroutine parse_material inquire(file=fname,exist=fileExists) if(.not. fileExists) call IO_error(100,ext_msg=fname) endif - print*, 'reading '//fname; flush(OUTPUT_UNIT) + print*, 'reading '//fname; flush(IO_STDOUT) config_material => YAML_parse_file(fname) end subroutine parse_material @@ -75,7 +75,7 @@ subroutine parse_numerics config_numerics => emptyDict inquire(file='numerics.yaml', exist=fexist) if (fexist) then - print*, 'reading numerics.yaml'; flush(OUTPUT_UNIT) + print*, 'reading numerics.yaml'; flush(IO_STDOUT) config_numerics => YAML_parse_file('numerics.yaml') endif @@ -92,7 +92,7 @@ subroutine parse_debug config_debug => emptyDict inquire(file='debug.yaml', exist=fexist) fileExists: if (fexist) then - print*, 'reading debug.yaml'; flush(OUTPUT_UNIT) + print*, 'reading debug.yaml'; flush(IO_STDOUT) config_debug => YAML_parse_file('debug.yaml') endif fileExists diff --git a/src/constitutive.f90 b/src/constitutive.f90 index 008579214..62846359d 100644 --- a/src/constitutive.f90 +++ b/src/constitutive.f90 @@ -446,7 +446,7 @@ subroutine constitutive_init call damage_init call thermal_init - print'(/,a)', ' <<<+- constitutive init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- constitutive init -+>>>'; flush(IO_STDOUT) constitutive_source_maxSizeDotState = 0 PhaseLoop2:do p = 1,phases%length diff --git a/src/constitutive_plastic_disloTungsten.f90 b/src/constitutive_plastic_disloTungsten.f90 index eb7297aca..98a9ce2f6 100644 --- a/src/constitutive_plastic_disloTungsten.f90 +++ b/src/constitutive_plastic_disloTungsten.f90 @@ -100,7 +100,7 @@ module function plastic_disloTungsten_init() result(myPlasticity) myPlasticity = plastic_active('disloTungsten') Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return print*, 'Cereceda et al., International Journal of Plasticity 78:242–256, 2016' diff --git a/src/constitutive_plastic_dislotwin.f90 b/src/constitutive_plastic_dislotwin.f90 index 1b52862d4..4890316b8 100644 --- a/src/constitutive_plastic_dislotwin.f90 +++ b/src/constitutive_plastic_dislotwin.f90 @@ -147,7 +147,7 @@ module function plastic_dislotwin_init() result(myPlasticity) myPlasticity = plastic_active('dislotwin') Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return print*, 'Ma and Roters, Acta Materialia 52(12):3603–3612, 2004' diff --git a/src/constitutive_plastic_isotropic.f90 b/src/constitutive_plastic_isotropic.f90 index 945c43cad..477938145 100644 --- a/src/constitutive_plastic_isotropic.f90 +++ b/src/constitutive_plastic_isotropic.f90 @@ -71,7 +71,7 @@ module function plastic_isotropic_init() result(myPlasticity) myPlasticity = plastic_active('isotropic') Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return print*, 'Maiti and Eisenlohr, Scripta Materialia 145:37–40, 2018' diff --git a/src/constitutive_plastic_kinehardening.f90 b/src/constitutive_plastic_kinehardening.f90 index 86c1dc263..55e482db6 100644 --- a/src/constitutive_plastic_kinehardening.f90 +++ b/src/constitutive_plastic_kinehardening.f90 @@ -83,7 +83,7 @@ module function plastic_kinehardening_init() result(myPlasticity) myPlasticity = plastic_active('kinehardening') Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return allocate(param(Ninstance)) diff --git a/src/constitutive_plastic_none.f90 b/src/constitutive_plastic_none.f90 index 2b0da4c9f..ab5f32d3f 100644 --- a/src/constitutive_plastic_none.f90 +++ b/src/constitutive_plastic_none.f90 @@ -35,7 +35,7 @@ module function plastic_none_init() result(myPlasticity) enddo Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return do p = 1, phases%length diff --git a/src/constitutive_plastic_nonlocal.f90 b/src/constitutive_plastic_nonlocal.f90 index f0b62eb58..21523161b 100644 --- a/src/constitutive_plastic_nonlocal.f90 +++ b/src/constitutive_plastic_nonlocal.f90 @@ -189,7 +189,7 @@ module function plastic_nonlocal_init() result(myPlasticity) myPlasticity = plastic_active('nonlocal') Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) then call geometry_plastic_nonlocal_disable return diff --git a/src/constitutive_plastic_phenopowerlaw.f90 b/src/constitutive_plastic_phenopowerlaw.f90 index adb827a02..8cf63a54d 100644 --- a/src/constitutive_plastic_phenopowerlaw.f90 +++ b/src/constitutive_plastic_phenopowerlaw.f90 @@ -92,7 +92,7 @@ module function plastic_phenopowerlaw_init() result(myPlasticity) myPlasticity = plastic_active('phenopowerlaw') Ninstance = count(myPlasticity) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return allocate(param(Ninstance)) diff --git a/src/crystallite.f90 b/src/crystallite.f90 index 850b369a2..392dba277 100644 --- a/src/crystallite.f90 +++ b/src/crystallite.f90 @@ -294,7 +294,7 @@ subroutine crystallite_init print'(a42,1x,i10)', ' # of elements: ', eMax print'(a42,1x,i10)', ' # of integration points/element: ', iMax print'(a42,1x,i10)', 'max # of constituents/integration point: ', cMax - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif #endif @@ -1561,7 +1561,7 @@ subroutine crystallite_restartWrite integer(HID_T) :: fileHandle, groupHandle character(len=pStringLen) :: fileName, datasetName - print*, ' writing field and constitutive data required for restart to file';flush(OUTPUT_UNIT) + print*, ' writing field and constitutive data required for restart to file';flush(IO_STDOUT) write(fileName,'(a,i0,a)') trim(getSolverJobName())//'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName,'a') diff --git a/src/damage_local.f90 b/src/damage_local.f90 index d9c6e2d22..af2532184 100644 --- a/src/damage_local.f90 +++ b/src/damage_local.f90 @@ -49,7 +49,7 @@ subroutine damage_local_init homog, & homogDamage - print'(/,a)', ' <<<+- damage_local init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- damage_local init -+>>>'; flush(IO_STDOUT) !---------------------------------------------------------------------------------------------- ! read numerics parameter and do sanity check diff --git a/src/element.f90 b/src/element.f90 index 2a2e81d00..722a7fd96 100644 --- a/src/element.f90 +++ b/src/element.f90 @@ -922,7 +922,7 @@ subroutine tElement_init(self,elemType) self%nIPneighbors = size(self%IPneighbor,1) - print'(/,a)', ' <<<+- element_init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- element_init -+>>>'; flush(IO_STDOUT) print*, 'element type: ',self%elemType print*, ' geom type: ',self%geomType diff --git a/src/grid/DAMASK_grid.f90 b/src/grid/DAMASK_grid.f90 index 03dfd2e77..8158996d6 100644 --- a/src/grid/DAMASK_grid.f90 +++ b/src/grid/DAMASK_grid.f90 @@ -99,7 +99,7 @@ program DAMASK_grid ! init DAMASK (all modules) call CPFEM_initAll - print'(/,a)', ' <<<+- DAMASK_spectral init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- DAMASK_spectral init -+>>>'; flush(IO_STDOUT) print*, 'Shanthraj et al., Handbook of Mechanics of Materials, 2019' print*, 'https://doi.org/10.1007/978-981-10-6855-3_80' @@ -279,11 +279,11 @@ program DAMASK_grid endif do i = 1, 3; do j = 1, 3 if(newLoadCase%deformation%maskLogical(i,j)) then - write(OUTPUT_UNIT,'(2x,f12.7)',advance='no') newLoadCase%deformation%values(i,j) + write(IO_STDOUT,'(2x,f12.7)',advance='no') newLoadCase%deformation%values(i,j) else - write(OUTPUT_UNIT,'(2x,12a)',advance='no') ' * ' + write(IO_STDOUT,'(2x,12a)',advance='no') ' * ' endif - enddo; write(OUTPUT_UNIT,'(/)',advance='no') + enddo; write(IO_STDOUT,'(/)',advance='no') enddo if (any(newLoadCase%stress%maskLogical .eqv. & newLoadCase%deformation%maskLogical)) errorID = 831 ! exclusive or masking only @@ -292,17 +292,17 @@ program DAMASK_grid print*, ' stress / GPa:' do i = 1, 3; do j = 1, 3 if(newLoadCase%stress%maskLogical(i,j)) then - write(OUTPUT_UNIT,'(2x,f12.7)',advance='no') newLoadCase%stress%values(i,j)*1e-9_pReal + write(IO_STDOUT,'(2x,f12.7)',advance='no') newLoadCase%stress%values(i,j)*1e-9_pReal else - write(OUTPUT_UNIT,'(2x,12a)',advance='no') ' * ' + write(IO_STDOUT,'(2x,12a)',advance='no') ' * ' endif - enddo; write(OUTPUT_UNIT,'(/)',advance='no') + enddo; write(IO_STDOUT,'(/)',advance='no') enddo if (any(abs(matmul(newLoadCase%rot%asMatrix(), & transpose(newLoadCase%rot%asMatrix()))-math_I3) > & reshape(spread(tol_math_check,1,9),[ 3,3]))) errorID = 846 ! given rotation matrix contains strain if (any(dNeq(newLoadCase%rot%asMatrix(), math_I3))) & - write(OUTPUT_UNIT,'(2x,a,/,3(3(3x,f12.7,1x)/))',advance='no') 'rotation of loadframe:',& + write(IO_STDOUT,'(2x,a,/,3(3(3x,f12.7,1x)/))',advance='no') 'rotation of loadframe:',& transpose(newLoadCase%rot%asMatrix()) if (newLoadCase%time < 0.0_pReal) errorID = 834 ! negative time increment print'(a,f0.3)', ' time: ', newLoadCase%time @@ -342,7 +342,7 @@ program DAMASK_grid open(newunit=statUnit,file=trim(getSolverJobName())//'.sta',form='FORMATTED',status='REPLACE') write(statUnit,'(a)') 'Increment Time CutbackLevel Converged IterationsNeeded' ! statistics file if (debug_grid%contains('basic')) print'(/,a)', ' header of statistics file written out' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) else writeHeader open(newunit=statUnit,file=trim(getSolverJobName())//& '.sta',form='FORMATTED', position='APPEND', status='OLD') @@ -405,7 +405,7 @@ program DAMASK_grid write(incInfo,'(4(a,i0))') & 'Increment ',totalIncsCounter,'/',sum(loadCases%incs),& '-', stepFraction,'/',subStepFactor**cutBackLevel - flush(OUTPUT_UNIT) + flush(IO_STDOUT) !-------------------------------------------------------------------------------------------------- ! forward fields @@ -489,11 +489,11 @@ program DAMASK_grid print'(/,a,i0,a)', ' increment ', totalIncsCounter, ' converged' else print'(/,a,i0,a)', ' increment ', totalIncsCounter, ' NOT converged' - endif; flush(OUTPUT_UNIT) + endif; flush(IO_STDOUT) if (mod(inc,loadCases(currentLoadCase)%outputFrequency) == 0) then ! at output frequency print'(1/,a)', ' ... writing results to file ......................................' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) call CPFEM_results(totalIncsCounter,time) endif if (mod(inc,loadCases(currentLoadCase)%restartFrequency) == 0) then diff --git a/src/grid/discretization_grid.f90 b/src/grid/discretization_grid.f90 index 32cd996db..76739a8d2 100644 --- a/src/grid/discretization_grid.f90 +++ b/src/grid/discretization_grid.f90 @@ -65,7 +65,7 @@ subroutine discretization_grid_init(restart) integer(C_INTPTR_T) :: & devNull, z, z_offset - print'(/,a)', ' <<<+- discretization_grid init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- discretization_grid init -+>>>'; flush(IO_STDOUT) if(index(interface_geomFile,'.vtr') /= 0) then call readVTR(grid,geomSize,origin,microstructureAt) diff --git a/src/grid/grid_damage_spectral.f90 b/src/grid/grid_damage_spectral.f90 index 3d6a9c431..27dc5c1bd 100644 --- a/src/grid/grid_damage_spectral.f90 +++ b/src/grid/grid_damage_spectral.f90 @@ -205,10 +205,10 @@ function grid_damage_spectral_solution(timeinc,timeinc_old) result(solution) call VecMax(solution_vec,devNull,phi_max,ierr); CHKERRQ(ierr) if (solution%converged) & print'(/,a)', ' ... nonlocal damage converged .....................................' - write(OUTPUT_UNIT,'(/,a,f8.6,2x,f8.6,2x,e11.4,/)',advance='no') ' Minimum|Maximum|Delta Damage = ',& + write(IO_STDOUT,'(/,a,f8.6,2x,f8.6,2x,e11.4,/)',advance='no') ' Minimum|Maximum|Delta Damage = ',& phi_min, phi_max, stagNorm print'(/,a)', ' ===========================================================================' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) end function grid_damage_spectral_solution diff --git a/src/grid/grid_mech_FEM.f90 b/src/grid/grid_mech_FEM.f90 index 0fcb08480..e1ceb42b0 100644 --- a/src/grid/grid_mech_FEM.f90 +++ b/src/grid/grid_mech_FEM.f90 @@ -122,7 +122,7 @@ subroutine grid_mech_FEM_init PetscScalar, pointer, dimension(:,:,:,:) :: & u_current,u_lastInc - print'(/,a)', ' <<<+- grid_mech_FEM init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- grid_mech_FEM init -+>>>'; flush(IO_STDOUT) !----------------------------------------------------------------------------------------------- ! debugging options @@ -413,7 +413,7 @@ subroutine grid_mech_FEM_restartWrite call DMDAVecGetArrayF90(mech_grid,solution_current,u_current,ierr); CHKERRQ(ierr) call DMDAVecGetArrayF90(mech_grid,solution_lastInc,u_lastInc,ierr); CHKERRQ(ierr) - print*, 'writing solver data required for restart to file'; flush(OUTPUT_UNIT) + print*, 'writing solver data required for restart to file'; flush(IO_STDOUT) write(fileName,'(a,a,i0,a)') trim(getSolverJobName()),'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName,'w') @@ -481,7 +481,7 @@ subroutine converged(snes_local,PETScIter,devNull1,devNull2,fnorm,reason,dummy,i print'(a,f12.2,a,es8.2,a,es9.2,a)', ' error stress BC = ', & err_BC/BCTol, ' (',err_BC, ' Pa, tol = ',BCTol,')' print'(/,a)', ' ===========================================================================' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) end subroutine converged @@ -517,11 +517,11 @@ subroutine formResidual(da_local,x_local, & totalIter = totalIter + 1 print'(1x,a,3(a,i0))', trim(incInfo), ' @ Iteration ', num%itmin, '≤',totalIter+1, '≤', num%itmax if (debugRotation) & - write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & + write(IO_STDOUT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim (lab) =', transpose(params%rotation_BC%rotate(F_aim,active=.true.)) - write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & + write(IO_STDOUT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim =', transpose(F_aim) - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif newIteration !-------------------------------------------------------------------------------------------------- diff --git a/src/grid/grid_mech_spectral_basic.f90 b/src/grid/grid_mech_spectral_basic.f90 index 819e9eded..e7fb9bd19 100644 --- a/src/grid/grid_mech_spectral_basic.f90 +++ b/src/grid/grid_mech_spectral_basic.f90 @@ -109,7 +109,7 @@ subroutine grid_mech_spectral_basic_init character(len=pStringLen) :: & fileName - print'(/,a)', ' <<<+- grid_mech_spectral_basic init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- grid_mech_spectral_basic init -+>>>'; flush(IO_STDOUT) print*, 'Eisenlohr et al., International Journal of Plasticity 46:37–53, 2013' print*, 'https://doi.org/10.1016/j.ijplas.2012.09.012'//IO_EOL @@ -375,7 +375,7 @@ subroutine grid_mech_spectral_basic_restartWrite call DMDAVecGetArrayF90(da,solution_vec,F,ierr); CHKERRQ(ierr) - print'(a)', ' writing solver data required for restart to file'; flush(OUTPUT_UNIT) + print'(a)', ' writing solver data required for restart to file'; flush(IO_STDOUT) write(fileName,'(a,a,i0,a)') trim(getSolverJobName()),'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName,'w') @@ -441,7 +441,7 @@ subroutine converged(snes_local,PETScIter,devNull1,devNull2,devNull3,reason,dumm print'(a,f12.2,a,es8.2,a,es9.2,a)', ' error stress BC = ', & err_BC/BCTol, ' (',err_BC, ' Pa, tol = ',BCTol,')' print'(/,a)', ' ===========================================================================' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) end subroutine converged @@ -475,11 +475,11 @@ subroutine formResidual(in, F, & totalIter = totalIter + 1 print'(1x,a,3(a,i0))', trim(incInfo), ' @ Iteration ', num%itmin, '≤',totalIter, '≤', num%itmax if (debugRotation) & - write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & + write(IO_STDOUT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim (lab) =', transpose(params%rotation_BC%rotate(F_aim,active=.true.)) - write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & + write(IO_STDOUT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim =', transpose(F_aim) - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif newIteration !-------------------------------------------------------------------------------------------------- diff --git a/src/grid/grid_mech_spectral_polarisation.f90 b/src/grid/grid_mech_spectral_polarisation.f90 index 021c2291e..5cc7d1602 100644 --- a/src/grid/grid_mech_spectral_polarisation.f90 +++ b/src/grid/grid_mech_spectral_polarisation.f90 @@ -123,7 +123,7 @@ subroutine grid_mech_spectral_polarisation_init character(len=pStringLen) :: & fileName - print'(/,a)', ' <<<+- grid_mech_spectral_polarisation init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- grid_mech_spectral_polarisation init -+>>>'; flush(IO_STDOUT) print*, 'Shanthraj et al., International Journal of Plasticity 66:31–45, 2015' print*, 'https://doi.org/10.1016/j.ijplas.2014.02.006' @@ -433,7 +433,7 @@ subroutine grid_mech_spectral_polarisation_restartWrite F => FandF_tau(0: 8,:,:,:) F_tau => FandF_tau(9:17,:,:,:) - print*, 'writing solver data required for restart to file'; flush(OUTPUT_UNIT) + print*, 'writing solver data required for restart to file'; flush(IO_STDOUT) write(fileName,'(a,a,i0,a)') trim(getSolverJobName()),'_',worldrank,'.hdf5' fileHandle = HDF5_openFile(fileName,'w') @@ -505,7 +505,7 @@ subroutine converged(snes_local,PETScIter,devNull1,devNull2,devNull3,reason,dumm print '(a,f12.2,a,es8.2,a,es9.2,a)', ' error stress BC = ', & err_BC/BCTol, ' (',err_BC, ' Pa, tol = ',BCTol,')' print'(/,a)', ' ===========================================================================' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) end subroutine converged @@ -559,11 +559,11 @@ subroutine formResidual(in, FandF_tau, & totalIter = totalIter + 1 print'(1x,a,3(a,i0))', trim(incInfo), ' @ Iteration ', num%itmin, '≤',totalIter, '≤', num%itmax if(debugRotation) & - write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & + write(IO_STDOUT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim (lab) =', transpose(params%rotation_BC%rotate(F_aim,active=.true.)) - write(OUTPUT_UNIT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & + write(IO_STDOUT,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim =', transpose(F_aim) - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif newIteration !-------------------------------------------------------------------------------------------------- diff --git a/src/grid/grid_thermal_spectral.f90 b/src/grid/grid_thermal_spectral.f90 index b12d67843..49be5ad7e 100644 --- a/src/grid/grid_thermal_spectral.f90 +++ b/src/grid/grid_thermal_spectral.f90 @@ -199,10 +199,10 @@ function grid_thermal_spectral_solution(timeinc,timeinc_old) result(solution) call VecMax(solution_vec,devNull,T_max,ierr); CHKERRQ(ierr) if (solution%converged) & print'(/,a)', ' ... thermal conduction converged ..................................' - write(OUTPUT_UNIT,'(/,a,f8.4,2x,f8.4,2x,f8.4,/)',advance='no') ' Minimum|Maximum|Delta Temperature / K = ',& + write(IO_STDOUT,'(/,a,f8.4,2x,f8.4,2x,f8.4,/)',advance='no') ' Minimum|Maximum|Delta Temperature / K = ',& T_min, T_max, stagNorm print'(/,a)', ' ===========================================================================' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) end function grid_thermal_spectral_solution diff --git a/src/grid/spectral_utilities.f90 b/src/grid/spectral_utilities.f90 index bfd05b6f5..dc6430c72 100644 --- a/src/grid/spectral_utilities.f90 +++ b/src/grid/spectral_utilities.f90 @@ -211,7 +211,7 @@ subroutine spectral_utilities_init if(debugPETSc) print'(3(/,a),/)', & ' Initializing PETSc with debug options: ', & trim(PETScDebug), & - ' add more using the PETSc_Options keyword in numerics.yaml '; flush(OUTPUT_UNIT) + ' add more using the PETSc_Options keyword in numerics.yaml '; flush(IO_STDOUT) num_grid => config_numerics%get('grid',defaultVal=emptyDict) @@ -280,7 +280,7 @@ subroutine spectral_utilities_init if (pReal /= C_DOUBLE .or. kind(1) /= C_INT) error stop 'C and Fortran datatypes do not match' call fftw_set_timelimit(num_grid%get_asFloat('fftw_timelimit',defaultVal=-1.0_pReal)) - print*, 'FFTW initialized'; flush(OUTPUT_UNIT) + print*, 'FFTW initialized'; flush(IO_STDOUT) !-------------------------------------------------------------------------------------------------- ! MPI allocation @@ -507,7 +507,7 @@ subroutine utilities_fourierGammaConvolution(fieldAim) print'(/,a)', ' ... doing gamma convolution ...............................................' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) !-------------------------------------------------------------------------------------------------- ! do the actual spectral method calculation (mechanical equilibrium) @@ -577,7 +577,7 @@ real(pReal) function utilities_divergenceRMS() complex(pReal), dimension(3) :: rescaledGeom print'(/,a)', ' ... calculating divergence ................................................' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) rescaledGeom = cmplx(geomSize/scaledGeomSize,0.0_pReal) @@ -621,7 +621,7 @@ real(pReal) function utilities_curlRMS() complex(pReal), dimension(3) :: rescaledGeom print'(/,a)', ' ... calculating curl ......................................................' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) rescaledGeom = cmplx(geomSize/scaledGeomSize,0.0_pReal) @@ -701,9 +701,9 @@ function utilities_maskedCompliance(rot_BC,mask_stress,C) if(debugGeneral) then print'(/,a)', ' ... updating masked compliance ............................................' - write(OUTPUT_UNIT,'(/,a,/,9(9(2x,f12.7,1x)/))',advance='no') ' Stiffness C (load) / GPa =',& + write(IO_STDOUT,'(/,a,/,9(9(2x,f12.7,1x)/))',advance='no') ' Stiffness C (load) / GPa =',& transpose(temp99_Real)*1.0e-9_pReal - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif do i = 1,9; do j = 1,9 @@ -723,9 +723,9 @@ function utilities_maskedCompliance(rot_BC,mask_stress,C) if (debugGeneral .or. errmatinv) then write(formatString, '(i2)') size_reduced formatString = '(/,a,/,'//trim(formatString)//'('//trim(formatString)//'(2x,es9.2,1x)/))' - write(OUTPUT_UNIT,trim(formatString),advance='no') ' C * S (load) ', & + write(IO_STDOUT,trim(formatString),advance='no') ' C * S (load) ', & transpose(matmul(c_reduced,s_reduced)) - write(OUTPUT_UNIT,trim(formatString),advance='no') ' S (load) ', transpose(s_reduced) + write(IO_STDOUT,trim(formatString),advance='no') ' S (load) ', transpose(s_reduced) if(errmatinv) call IO_error(error_ID=400,ext_msg='utilities_maskedCompliance') endif temp99_real = reshape(unpack(reshape(s_reduced,[size_reduced**2]),reshape(mask,[81]),0.0_pReal),[9,9]) @@ -736,9 +736,9 @@ function utilities_maskedCompliance(rot_BC,mask_stress,C) utilities_maskedCompliance = math_99to3333(temp99_Real) if(debugGeneral) then - write(OUTPUT_UNIT,'(/,a,/,9(9(2x,f10.5,1x)/),/)',advance='no') & + write(IO_STDOUT,'(/,a,/,9(9(2x,f10.5,1x)/),/)',advance='no') & ' Masked Compliance (load) * GPa =', transpose(temp99_Real)*1.0e9_pReal - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif end function utilities_maskedCompliance @@ -823,7 +823,7 @@ subroutine utilities_constitutiveResponse(P,P_av,C_volAvg,C_minmaxAvg,& real(pReal), dimension(2) :: valueAndRank !< pair of min/max norm of dPdF to synchronize min/max of dPdF print'(/,a)', ' ... evaluating constitutive response ......................................' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) materialpoint_F = reshape(F,[3,3,1,product(grid(1:2))*grid3]) ! set materialpoint target F to estimated field @@ -833,13 +833,13 @@ subroutine utilities_constitutiveResponse(P,P_av,C_volAvg,C_minmaxAvg,& P_av = sum(sum(sum(P,dim=5),dim=4),dim=3) * wgt ! average of P call MPI_Allreduce(MPI_IN_PLACE,P_av,9,MPI_DOUBLE,MPI_SUM,PETSC_COMM_WORLD,ierr) if (debugRotation) & - write(OUTPUT_UNIT,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress (lab) / MPa =',& + write(IO_STDOUT,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress (lab) / MPa =',& transpose(P_av)*1.e-6_pReal if(present(rotation_BC)) & P_av = rotation_BC%rotate(P_av) - write(OUTPUT_UNIT,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress / MPa =',& + write(IO_STDOUT,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress / MPa =',& transpose(P_av)*1.e-6_pReal - flush(OUTPUT_UNIT) + flush(IO_STDOUT) dPdF_max = 0.0_pReal dPdF_norm_max = 0.0_pReal @@ -1095,7 +1095,7 @@ subroutine utilities_saveReferenceStiffness fileUnit,ierr if (worldrank == 0) then - print'(a)', ' writing reference stiffness data required for restart to file'; flush(OUTPUT_UNIT) + print'(a)', ' writing reference stiffness data required for restart to file'; flush(IO_STDOUT) open(newunit=fileUnit, file=getSolverJobName()//'.C_ref',& status='replace',access='stream',action='write',iostat=ierr) if(ierr /=0) call IO_error(100,ext_msg='could not open file '//getSolverJobName()//'.C_ref') diff --git a/src/homogenization.f90 b/src/homogenization.f90 index 1c2b9bc38..0e7f1bf3a 100644 --- a/src/homogenization.f90 +++ b/src/homogenization.f90 @@ -186,7 +186,7 @@ subroutine homogenization_init materialpoint_F = materialpoint_F0 ! initialize to identity allocate(materialpoint_P(3,3,discretization_nIP,discretization_nElem), source=0.0_pReal) - print'(/,a)', ' <<<+- homogenization init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- homogenization init -+>>>'; flush(IO_STDOUT) num%nMPstate = num_homogGeneric%get_asInt ('nMPstate', defaultVal=10) num%subStepMinHomog = num_homogGeneric%get_asFloat('subStepMin', defaultVal=1.0e-3_pReal) diff --git a/src/homogenization_mech_RGC.f90 b/src/homogenization_mech_RGC.f90 index d954b0b9f..f0485b244 100644 --- a/src/homogenization_mech_RGC.f90 +++ b/src/homogenization_mech_RGC.f90 @@ -95,7 +95,7 @@ module subroutine mech_RGC_init(num_homogMech) print'(/,a)', ' <<<+- homogenization_mech_rgc init -+>>>' Ninstance = count(homogenization_type == HOMOGENIZATION_RGC_ID) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) print*, 'Tjahjanto et al., International Journal of Material Forming 2(1):939–942, 2009' print*, 'https://doi.org/10.1007/s12289-009-0619-1'//IO_EOL @@ -247,7 +247,7 @@ module subroutine mech_RGC_partitionDeformation(F,avgF,instance,of) print'(1x,3(e15.8,1x))',(F(i,j,iGrain), j = 1,3) enddo print*,' ' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif #endif enddo @@ -376,7 +376,7 @@ module procedure mech_RGC_updateState '@ grain ',stresLoc(3),' in component ',stresLoc(1),stresLoc(2) print'(a,e15.8,a,i3,a,i2)',' Max residual: ',residMax, & ' @ iface ',residLoc(1),' in direction ',residLoc(2) - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif #endif @@ -388,7 +388,7 @@ module procedure mech_RGC_updateState mech_RGC_updateState = .true. #ifdef DEBUG if (debugHomog%extensive .and. prm%of_debug == of) & - print*, '... done and happy'; flush(OUTPUT_UNIT) + print*, '... done and happy'; flush(IO_STDOUT) #endif !-------------------------------------------------------------------------------------------------- @@ -416,7 +416,7 @@ module procedure mech_RGC_updateState print'(a,e15.8,/)', ' Volume discrepancy: ', dst%volumeDiscrepancy(of) print'(a,e15.8)', ' Maximum relaxation rate: ', dst%relaxationRate_max(of) print'(a,e15.8,/)', ' Average relaxation rate: ', dst%relaxationRate_avg(of) - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif #endif @@ -429,7 +429,7 @@ module procedure mech_RGC_updateState #ifdef DEBUG if (debugHomog%extensive .and. prm%of_debug == of) & - print'(a,/)', ' ... broken'; flush(OUTPUT_UNIT) + print'(a,/)', ' ... broken'; flush(IO_STDOUT) #endif return @@ -437,7 +437,7 @@ module procedure mech_RGC_updateState else ! proceed with computing the Jacobian and state update #ifdef DEBUG if (debugHomog%extensive .and. prm%of_debug == of) & - print'(a,/)', ' ... not yet done'; flush(OUTPUT_UNIT) + print'(a,/)', ' ... not yet done'; flush(IO_STDOUT) #endif endif @@ -499,7 +499,7 @@ module procedure mech_RGC_updateState print'(1x,100(e11.4,1x))',(smatrix(i,j), j = 1,3*nIntFaceTot) enddo print*,' ' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif #endif @@ -559,7 +559,7 @@ module procedure mech_RGC_updateState print'(1x,100(e11.4,1x))',(pmatrix(i,j), j = 1,3*nIntFaceTot) enddo print*,' ' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif #endif @@ -578,7 +578,7 @@ module procedure mech_RGC_updateState print'(1x,100(e11.4,1x))',(rmatrix(i,j), j = 1,3*nIntFaceTot) enddo print*,' ' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif #endif @@ -593,7 +593,7 @@ module procedure mech_RGC_updateState print'(1x,100(e11.4,1x))',(jmatrix(i,j), j = 1,3*nIntFaceTot) enddo print*,' ' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif #endif @@ -609,7 +609,7 @@ module procedure mech_RGC_updateState print'(1x,100(e11.4,1x))',(jnverse(i,j), j = 1,3*nIntFaceTot) enddo print*,' ' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif #endif @@ -625,7 +625,7 @@ module procedure mech_RGC_updateState !$OMP CRITICAL (write2out) print'(a,i3,a,i3,a)',' RGC_updateState: ip ',ip,' | el ',el,' enforces cutback' print'(a,e15.8)',' due to large relaxation change = ',maxval(abs(drelax)) - flush(OUTPUT_UNIT) + flush(IO_STDOUT) !$OMP END CRITICAL (write2out) endif @@ -636,7 +636,7 @@ module procedure mech_RGC_updateState print'(1x,2(e15.8,1x))', stt%relaxationVector(i,of) enddo print*,' ' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) endif #endif diff --git a/src/homogenization_mech_isostrain.f90 b/src/homogenization_mech_isostrain.f90 index eefb3ad64..5138afa73 100644 --- a/src/homogenization_mech_isostrain.f90 +++ b/src/homogenization_mech_isostrain.f90 @@ -40,7 +40,7 @@ module subroutine mech_isostrain_init print'(/,a)', ' <<<+- homogenization_mech_isostrain init -+>>>' Ninstance = count(homogenization_type == HOMOGENIZATION_ISOSTRAIN_ID) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) allocate(param(Ninstance)) ! one container of parameters per instance diff --git a/src/homogenization_mech_none.f90 b/src/homogenization_mech_none.f90 index 52143a3d2..3cbec5911 100644 --- a/src/homogenization_mech_none.f90 +++ b/src/homogenization_mech_none.f90 @@ -21,7 +21,7 @@ module subroutine mech_none_init print'(/,a)', ' <<<+- homogenization_mech_none init -+>>>' Ninstance = count(homogenization_type == HOMOGENIZATION_NONE_ID) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) do h = 1, size(homogenization_type) if (homogenization_type(h) /= HOMOGENIZATION_NONE_ID) cycle diff --git a/src/kinematics_cleavage_opening.f90 b/src/kinematics_cleavage_opening.f90 index 37513d0e1..23f348831 100644 --- a/src/kinematics_cleavage_opening.f90 +++ b/src/kinematics_cleavage_opening.f90 @@ -49,7 +49,7 @@ module function kinematics_cleavage_opening_init(kinematics_length) result(myKin myKinematics = kinematics_active('cleavage_opening',kinematics_length) Ninstance = count(myKinematics) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/kinematics_slipplane_opening.f90 b/src/kinematics_slipplane_opening.f90 index 46ff59da5..660483b90 100644 --- a/src/kinematics_slipplane_opening.f90 +++ b/src/kinematics_slipplane_opening.f90 @@ -52,7 +52,7 @@ module function kinematics_slipplane_opening_init(kinematics_length) result(myKi myKinematics = kinematics_active('slipplane_opening',kinematics_length) Ninstance = count(myKinematics) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/kinematics_thermal_expansion.f90 b/src/kinematics_thermal_expansion.f90 index d3516862d..93a48e035 100644 --- a/src/kinematics_thermal_expansion.f90 +++ b/src/kinematics_thermal_expansion.f90 @@ -42,7 +42,7 @@ module function kinematics_thermal_expansion_init(kinematics_length) result(myKi myKinematics = kinematics_active('thermal_expansion',kinematics_length) Ninstance = count(myKinematics) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/lattice.f90 b/src/lattice.f90 index ba7631142..69305c839 100644 --- a/src/lattice.f90 +++ b/src/lattice.f90 @@ -457,7 +457,7 @@ subroutine lattice_init phase, & elasticity - print'(/,a)', ' <<<+- lattice init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- lattice init -+>>>'; flush(IO_STDOUT) phases => config_material%get('phase') Nphases = phases%length diff --git a/src/material.f90 b/src/material.f90 index 9bc2bbbc5..6688a0ae5 100644 --- a/src/material.f90 +++ b/src/material.f90 @@ -164,7 +164,7 @@ subroutine material_init(restart) material_homogenization character(len=pStringLen) :: sectionName - print'(/,a)', ' <<<+- material init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- material init -+>>>'; flush(IO_STDOUT) phases => config_material%get('phase') allocate(material_name_phase(phases%length)) diff --git a/src/math.f90 b/src/math.f90 index 63e539e48..163f4df6a 100644 --- a/src/math.f90 +++ b/src/math.f90 @@ -91,7 +91,7 @@ subroutine math_init class(tNode), pointer :: & num_generic - print'(/,a)', ' <<<+- math init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- math init -+>>>'; flush(IO_STDOUT) num_generic => config_numerics%get('generic',defaultVal=emptyDict) randomSeed = num_generic%get_asInt('random_seed', defaultVal = 0) diff --git a/src/mesh/DAMASK_mesh.f90 b/src/mesh/DAMASK_mesh.f90 index acee51394..bfa8d22ce 100644 --- a/src/mesh/DAMASK_mesh.f90 +++ b/src/mesh/DAMASK_mesh.f90 @@ -78,7 +78,7 @@ program DAMASK_mesh !-------------------------------------------------------------------------------------------------- ! init DAMASK (all modules) call CPFEM_initAll - print'(/,a)', ' <<<+- DAMASK_mesh init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- DAMASK_mesh init -+>>>'; flush(IO_STDOUT) !--------------------------------------------------------------------- ! reading field information from numerics file and do sanity checks @@ -299,7 +299,7 @@ program DAMASK_mesh write(incInfo,'(4(a,i0))') & 'Increment ',totalIncsCounter,'/',sum(loadCases%incs),& '-',stepFraction, '/', subStepFactor**cutBackLevel - flush(OUTPUT_UNIT) + flush(IO_STDOUT) !-------------------------------------------------------------------------------------------------- ! forward fields @@ -363,7 +363,7 @@ program DAMASK_mesh print'(/,a,i0,a)', ' increment ', totalIncsCounter, ' converged' else print'(/,a,i0,a)', ' increment ', totalIncsCounter, ' NOT converged' - endif; flush(OUTPUT_UNIT) + endif; flush(IO_STDOUT) if (mod(inc,loadCases(currentLoadCase)%outputFrequency) == 0) then ! at output frequency print'(/,a)', ' ... writing results to file ......................................' diff --git a/src/mesh/FEM_utilities.f90 b/src/mesh/FEM_utilities.f90 index 91e1bd5b6..4d9786112 100644 --- a/src/mesh/FEM_utilities.f90 +++ b/src/mesh/FEM_utilities.f90 @@ -122,7 +122,7 @@ subroutine FEM_utilities_init ' Initializing PETSc with debug options: ', & trim(PETScDebug), & ' add more using the PETSc_Options keyword in numerics.yaml ' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) call PetscOptionsClear(PETSC_NULL_OPTIONS,ierr) CHKERRQ(ierr) if(debugPETSc) call PetscOptionsInsertString(PETSC_NULL_OPTIONS,trim(PETSCDEBUG),ierr) diff --git a/src/mesh/mesh_mech_FEM.f90 b/src/mesh/mesh_mech_FEM.f90 index f7a177929..de1f0c687 100644 --- a/src/mesh/mesh_mech_FEM.f90 +++ b/src/mesh/mesh_mech_FEM.f90 @@ -110,7 +110,7 @@ subroutine FEM_mech_init(fieldBC) class(tNode), pointer :: & num_mesh - print'(/,a)', ' <<<+- FEM_mech init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- FEM_mech init -+>>>'; flush(IO_STDOUT) !----------------------------------------------------------------------------- ! read numerical parametes and do sanity checks @@ -319,7 +319,7 @@ type(tSolutionState) function FEM_mech_solution( & endif print'(/,a)', ' ===========================================================================' - flush(OUTPUT_UNIT) + flush(IO_STDOUT) end function FEM_mech_solution @@ -682,9 +682,9 @@ subroutine FEM_mech_converged(snes_local,PETScIter,xnorm,snorm,fnorm,reason,dumm print'(/,1x,a,a,i0,a,i0,f0.3)', trim(incInfo), & ' @ Iteration ',PETScIter,' mechanical residual norm = ', & int(fnorm/divTol),fnorm/divTol-int(fnorm/divTol) - write(OUTPUT_UNIT,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress / MPa =',& + write(IO_STDOUT,'(/,a,/,3(3(2x,f12.4,1x)/))',advance='no') ' Piola--Kirchhoff stress / MPa =',& transpose(P_av)*1.e-6_pReal - flush(OUTPUT_UNIT) + flush(IO_STDOUT) end subroutine FEM_mech_converged diff --git a/src/results.f90 b/src/results.f90 index 6dd84fb78..aec90d7be 100644 --- a/src/results.f90 +++ b/src/results.f90 @@ -65,7 +65,7 @@ subroutine results_init(restart) character(len=pStringLen) :: commandLine - print'(/,a)', ' <<<+- results init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- results init -+>>>'; flush(IO_STDOUT) print*, 'Diehl et al., Integrating Materials and Manufacturing Innovation 6(1):83–91, 2017' print*, 'https://doi.org/10.1007/s40192-017-0084-5'//IO_EOL diff --git a/src/rotations.f90 b/src/rotations.f90 index 723cced61..e19513866 100644 --- a/src/rotations.f90 +++ b/src/rotations.f90 @@ -104,7 +104,7 @@ contains subroutine rotations_init call quaternions_init - print'(/,a)', ' <<<+- rotations init -+>>>'; flush(OUTPUT_UNIT) + print'(/,a)', ' <<<+- rotations init -+>>>'; flush(IO_STDOUT) print*, 'Rowenhorst et al., Modelling and Simulation in Materials Science and Engineering 23:083501, 2015' print*, 'https://doi.org/10.1088/0965-0393/23/8/083501' diff --git a/src/source_damage_anisoBrittle.f90 b/src/source_damage_anisoBrittle.f90 index 5377f3373..7911d6d0a 100644 --- a/src/source_damage_anisoBrittle.f90 +++ b/src/source_damage_anisoBrittle.f90 @@ -53,7 +53,7 @@ module function source_damage_anisoBrittle_init(source_length) result(mySources) mySources = source_active('damage_anisoBrittle',source_length) Ninstance = count(mySources) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/source_damage_anisoDuctile.f90 b/src/source_damage_anisoDuctile.f90 index abbd90ca3..52189c839 100644 --- a/src/source_damage_anisoDuctile.f90 +++ b/src/source_damage_anisoDuctile.f90 @@ -47,7 +47,7 @@ module function source_damage_anisoDuctile_init(source_length) result(mySources) mySources = source_active('damage_anisoDuctile',source_length) Ninstance = count(mySources) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/source_damage_isoBrittle.f90 b/src/source_damage_isoBrittle.f90 index 45f6abf3a..714e71ef1 100644 --- a/src/source_damage_isoBrittle.f90 +++ b/src/source_damage_isoBrittle.f90 @@ -43,7 +43,7 @@ module function source_damage_isoBrittle_init(source_length) result(mySources) mySources = source_active('damage_isoBrittle',source_length) Ninstance = count(mySources) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/source_damage_isoDuctile.f90 b/src/source_damage_isoDuctile.f90 index e74f187de..493183d75 100644 --- a/src/source_damage_isoDuctile.f90 +++ b/src/source_damage_isoDuctile.f90 @@ -45,7 +45,7 @@ module function source_damage_isoDuctile_init(source_length) result(mySources) mySources = source_active('damage_isoDuctile',source_length) Ninstance = count(mySources) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/source_thermal_dissipation.f90 b/src/source_thermal_dissipation.f90 index 307d211b3..5cc740424 100644 --- a/src/source_thermal_dissipation.f90 +++ b/src/source_thermal_dissipation.f90 @@ -41,7 +41,7 @@ module function source_thermal_dissipation_init(source_length) result(mySources) mySources = source_active('thermal_dissipation',source_length) Ninstance = count(mySources) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return phases => config_material%get('phase') diff --git a/src/source_thermal_externalheat.f90 b/src/source_thermal_externalheat.f90 index 95d994e11..4a644f53b 100644 --- a/src/source_thermal_externalheat.f90 +++ b/src/source_thermal_externalheat.f90 @@ -45,7 +45,7 @@ module function source_thermal_externalheat_init(source_length) result(mySources mySources = source_active('thermal_externalheat',source_length) Ninstance = count(mySources) - print'(a,i2)', ' # instances: ',Ninstance; flush(OUTPUT_UNIT) + print'(a,i2)', ' # instances: ',Ninstance; flush(IO_STDOUT) if(Ninstance == 0) return phases => config_material%get('phase')