writing more results out
This commit is contained in:
parent
d0b1db1966
commit
4cac2448d4
|
@ -1085,7 +1085,7 @@ subroutine constitutive_results()
|
||||||
PLASTICITY_DISLOTWIN_ID, &
|
PLASTICITY_DISLOTWIN_ID, &
|
||||||
PLASTICITY_DISLOUCLA_ID, &
|
PLASTICITY_DISLOUCLA_ID, &
|
||||||
PLASTICITY_NONLOCAL_ID
|
PLASTICITY_NONLOCAL_ID
|
||||||
#if defined(PETSc) || defined(DAMASKHDF5)
|
#if defined(PETSc) || defined(DAMASK_HDF5)
|
||||||
use results
|
use results
|
||||||
use HDF5_utilities
|
use HDF5_utilities
|
||||||
use config, only: &
|
use config, only: &
|
||||||
|
|
|
@ -560,23 +560,40 @@ end function plastic_disloUCLA_postResults
|
||||||
!> @brief writes results to HDF5 output file
|
!> @brief writes results to HDF5 output file
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_disloUCLA_results(instance,group)
|
subroutine plastic_disloUCLA_results(instance,group)
|
||||||
#if defined(PETSc) || defined(DAMASKHDF5)
|
#if defined(PETSc) || defined(DAMASK_HDF5)
|
||||||
use results
|
use results
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer, intent(in) :: instance
|
integer, intent(in) :: instance
|
||||||
character(len=*) :: group
|
character(len=*), intent(in) :: group
|
||||||
|
|
||||||
integer :: o
|
integer :: o
|
||||||
|
|
||||||
associate(prm => param(instance), stt => state(instance))
|
associate(prm => param(instance), stt => state(instance), dst => dependentState(instance))
|
||||||
outputsLoop: do o = 1,size(prm%outputID)
|
outputsLoop: do o = 1,size(prm%outputID)
|
||||||
select case(prm%outputID(o))
|
select case(prm%outputID(o))
|
||||||
|
case (rho_mob_ID)
|
||||||
|
call results_writeDataset(group,stt%rho_mob,'rho_mob',&
|
||||||
|
'mobile dislocation density','1/m^2')
|
||||||
|
case (rho_dip_ID)
|
||||||
|
call results_writeDataset(group,stt%rho_dip,'rho_dip',&
|
||||||
|
'dislocation dipole density''1/m^2')
|
||||||
|
case (dot_gamma_sl_ID)
|
||||||
|
call results_writeDataset(group,stt%gamma_sl,'dot_gamma_sl',&
|
||||||
|
'plastic slip','1')
|
||||||
|
case (Lambda_sl_ID)
|
||||||
|
call results_writeDataset(group,dst%Lambda_sl,'Lambda_sl',&
|
||||||
|
'mean free path for slip','m')
|
||||||
|
case (thresholdstress_ID)
|
||||||
|
call results_writeDataset(group,dst%threshold_stress,'threshold_stress',&
|
||||||
|
'threshold stress for slip','Pa')
|
||||||
end select
|
end select
|
||||||
enddo outputsLoop
|
enddo outputsLoop
|
||||||
end associate
|
end associate
|
||||||
|
|
||||||
#else
|
#else
|
||||||
integer, intent(in) :: instance
|
integer, intent(in) :: instance
|
||||||
character(len=*) :: group
|
character(len=*), intent(in) :: group
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
end subroutine plastic_disloUCLA_results
|
end subroutine plastic_disloUCLA_results
|
||||||
|
|
|
@ -409,8 +409,7 @@ subroutine plastic_isotropic_dotState(Mp,instance,of)
|
||||||
xi_inf_star = prm%xi_inf
|
xi_inf_star = prm%xi_inf
|
||||||
else
|
else
|
||||||
xi_inf_star = prm%xi_inf &
|
xi_inf_star = prm%xi_inf &
|
||||||
+ asinh( (dot_gamma / prm%c_1)**(1.0_pReal / prm%c_2) &
|
+ asinh( (dot_gamma / prm%c_1)**(1.0_pReal / prm%c_2))**(1.0_pReal / prm%c_3) &
|
||||||
)**(1.0_pReal / prm%c_3) &
|
|
||||||
/ prm%c_4 * (dot_gamma / prm%dot_gamma_0)**(1.0_pReal / prm%n)
|
/ prm%c_4 * (dot_gamma / prm%dot_gamma_0)**(1.0_pReal / prm%n)
|
||||||
endif
|
endif
|
||||||
dot%xi(of) = dot_gamma &
|
dot%xi(of) = dot_gamma &
|
||||||
|
@ -469,7 +468,7 @@ function plastic_isotropic_postResults(Mp,instance,of) result(postResults)
|
||||||
c = c + 1
|
c = c + 1
|
||||||
case (dot_gamma_ID)
|
case (dot_gamma_ID)
|
||||||
postResults(c+1) = prm%dot_gamma_0 &
|
postResults(c+1) = prm%dot_gamma_0 &
|
||||||
* (sqrt(1.5_pReal) * norm_Mp /(prm%M * stt%xi(of)))**prm%n
|
* (sqrt(1.5_pReal) * norm_Mp /(prm%M * stt%xi(of)))**prm%n
|
||||||
c = c + 1
|
c = c + 1
|
||||||
|
|
||||||
end select
|
end select
|
||||||
|
@ -484,23 +483,27 @@ end function plastic_isotropic_postResults
|
||||||
!> @brief writes results to HDF5 output file
|
!> @brief writes results to HDF5 output file
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_isotropic_results(instance,group)
|
subroutine plastic_isotropic_results(instance,group)
|
||||||
#if defined(PETSc) || defined(DAMASKHDF5)
|
#if defined(PETSc) || defined(DAMASK_HDF5)
|
||||||
use results
|
use results
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer, intent(in) :: instance
|
integer, intent(in) :: instance
|
||||||
character(len=*) :: group
|
character(len=*), intent(in) :: group
|
||||||
|
|
||||||
integer :: o
|
integer :: o
|
||||||
|
|
||||||
associate(prm => param(instance), stt => state(instance))
|
associate(prm => param(instance), stt => state(instance))
|
||||||
outputsLoop: do o = 1,size(prm%outputID)
|
outputsLoop: do o = 1,size(prm%outputID)
|
||||||
select case(prm%outputID(o))
|
select case(prm%outputID(o))
|
||||||
|
case (xi_ID)
|
||||||
|
call results_writeDataset(group,stt%xi,'xi','resistance against plastic flow','Pa')
|
||||||
end select
|
end select
|
||||||
enddo outputsLoop
|
enddo outputsLoop
|
||||||
end associate
|
end associate
|
||||||
|
|
||||||
#else
|
#else
|
||||||
integer, intent(in) :: instance
|
integer, intent(in) :: instance
|
||||||
character(len=*) :: group
|
character(len=*), intent(in) :: group
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
end subroutine plastic_isotropic_results
|
end subroutine plastic_isotropic_results
|
||||||
|
|
|
@ -563,28 +563,34 @@ end function plastic_phenopowerlaw_postResults
|
||||||
!> @brief writes results to HDF5 output file
|
!> @brief writes results to HDF5 output file
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_phenopowerlaw_results(instance,group)
|
subroutine plastic_phenopowerlaw_results(instance,group)
|
||||||
#if defined(PETSc) || defined(DAMASKHDF5)
|
#if defined(PETSc) || defined(DAMASK_HDF5)
|
||||||
use results
|
use results
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer, intent(in) :: instance
|
integer, intent(in) :: instance
|
||||||
character(len=*) :: group
|
character(len=*), intent(in) :: group
|
||||||
integer :: o
|
|
||||||
|
integer :: o
|
||||||
|
|
||||||
associate(prm => param(instance), stt => state(instance))
|
associate(prm => param(instance), stt => state(instance))
|
||||||
outputsLoop: do o = 1,size(prm%outputID)
|
outputsLoop: do o = 1,size(prm%outputID)
|
||||||
select case(prm%outputID(o))
|
select case(prm%outputID(o))
|
||||||
case (resistance_slip_ID)
|
case (resistance_slip_ID)
|
||||||
call results_writeVectorDataset(group,stt%xi_slip,'xi_slip','Pa')
|
call results_writeDataset(group,stt%xi_slip, 'xi_slip', &
|
||||||
case (accumulatedshear_slip_ID)
|
'resistance against plastic slip','Pa')
|
||||||
call results_writeVectorDataset(group,stt%gamma_slip,'gamma_slip','-')
|
case (accumulatedshear_slip_ID)
|
||||||
end select
|
call results_writeDataset(group,stt%gamma_slip,'gamma_slip', &
|
||||||
enddo outputsLoop
|
'plastic slip','1')
|
||||||
end associate
|
|
||||||
|
end select
|
||||||
|
enddo outputsLoop
|
||||||
|
end associate
|
||||||
|
|
||||||
#else
|
#else
|
||||||
integer, intent(in) :: instance
|
integer, intent(in) :: instance
|
||||||
character(len=*) :: group
|
character(len=*), intent(in) :: group
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
end subroutine plastic_phenopowerlaw_results
|
end subroutine plastic_phenopowerlaw_results
|
||||||
|
|
||||||
|
|
||||||
|
|
181
src/results.f90
181
src/results.f90
|
@ -18,6 +18,13 @@ module results
|
||||||
integer(HID_T), public, protected :: tempCoordinates, tempResults
|
integer(HID_T), public, protected :: tempCoordinates, tempResults
|
||||||
integer(HID_T), private :: resultsFile, currentIncID, plist_id
|
integer(HID_T), private :: resultsFile, currentIncID, plist_id
|
||||||
|
|
||||||
|
interface results_writeDataset
|
||||||
|
module procedure results_writeTensorDataset_real
|
||||||
|
module procedure results_writeTensorDataset_int
|
||||||
|
module procedure results_writeVectorDataset_real
|
||||||
|
module procedure results_writeVectorDataset_int
|
||||||
|
module procedure results_writeScalarDataset_real
|
||||||
|
end interface results_writeDataset
|
||||||
|
|
||||||
public :: &
|
public :: &
|
||||||
results_init, &
|
results_init, &
|
||||||
|
@ -26,8 +33,9 @@ module results
|
||||||
results_addIncrement, &
|
results_addIncrement, &
|
||||||
results_addGroup, &
|
results_addGroup, &
|
||||||
results_openGroup, &
|
results_openGroup, &
|
||||||
results_writeVectorDataset, &
|
results_writeDataset, &
|
||||||
results_setLink, &
|
results_setLink, &
|
||||||
|
results_addAttribute, &
|
||||||
results_removeLink
|
results_removeLink
|
||||||
contains
|
contains
|
||||||
|
|
||||||
|
@ -36,13 +44,21 @@ subroutine results_init
|
||||||
getSolverJobName
|
getSolverJobName
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
character(len=pStringLen) :: commandLine
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- results init -+>>>'
|
write(6,'(/,a)') ' <<<+- results init -+>>>'
|
||||||
|
|
||||||
write(6,'(/,a)') ' Diehl et al., Integrating Materials and Manufacturing Innovation 6(1):83–91, 2017'
|
write(6,'(/,a)') ' Diehl et al., Integrating Materials and Manufacturing Innovation 6(1):83–91, 2017'
|
||||||
write(6,'(a)') ' https://doi.org/10.1007/s40192-018-0118-7'
|
write(6,'(a)') ' https://doi.org/10.1007/s40192-018-0118-7'
|
||||||
|
|
||||||
call HDF5_closeFile(HDF5_openFile(trim(getSolverJobName())//'.hdf5','w',.true.))
|
resultsFile = HDF5_openFile(trim(getSolverJobName())//'.hdf5','w',.true.)
|
||||||
|
call HDF5_addAttribute(resultsFile,'DADF5-version',0.1)
|
||||||
|
call HDF5_addAttribute(resultsFile,'DADF5-major',0)
|
||||||
|
call HDF5_addAttribute(resultsFile,'DADF5-minor',1)
|
||||||
|
call HDF5_addAttribute(resultsFile,'DAMASK',DAMASKVERSION)
|
||||||
|
call get_command(commandLine)
|
||||||
|
call HDF5_addAttribute(resultsFile,'call',trim(commandLine))
|
||||||
|
call HDF5_closeFile(resultsFile)
|
||||||
|
|
||||||
end subroutine results_init
|
end subroutine results_init
|
||||||
|
|
||||||
|
@ -50,18 +66,13 @@ end subroutine results_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief opens the results file to append data
|
!> @brief opens the results file to append data
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine results_openJobFile()
|
subroutine results_openJobFile
|
||||||
use DAMASK_interface, only: &
|
use DAMASK_interface, only: &
|
||||||
getSolverJobName
|
getSolverJobName
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
character(len=pStringLen) :: commandLine
|
|
||||||
|
|
||||||
resultsFile = HDF5_openFile(trim(getSolverJobName())//'.hdf5','a',.true.)
|
resultsFile = HDF5_openFile(trim(getSolverJobName())//'.hdf5','a',.true.)
|
||||||
call HDF5_addAttribute(resultsFile,'DADF5',0.1_pReal)
|
|
||||||
call HDF5_addAttribute(resultsFile,'DAMASK',DAMASKVERSION)
|
|
||||||
call get_command(commandLine)
|
|
||||||
call HDF5_addAttribute(resultsFile,'call',trim(commandLine))
|
|
||||||
|
|
||||||
end subroutine results_openJobFile
|
end subroutine results_openJobFile
|
||||||
|
|
||||||
|
@ -69,7 +80,7 @@ end subroutine results_openJobFile
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief closes the results file
|
!> @brief closes the results file
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine results_closeJobFile()
|
subroutine results_closeJobFile
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
call HDF5_closeFile(resultsFile)
|
call HDF5_closeFile(resultsFile)
|
||||||
|
@ -87,7 +98,7 @@ subroutine results_addIncrement(inc,time)
|
||||||
real(pReal), intent(in) :: time
|
real(pReal), intent(in) :: time
|
||||||
character(len=pStringLen) :: incChar
|
character(len=pStringLen) :: incChar
|
||||||
|
|
||||||
write(incChar,*) inc
|
write(incChar,'(i5.5)') inc ! allow up to 99999 increments
|
||||||
call HDF5_closeGroup(results_addGroup(trim('inc'//trim(adjustl(incChar)))))
|
call HDF5_closeGroup(results_addGroup(trim('inc'//trim(adjustl(incChar)))))
|
||||||
call results_setLink(trim('inc'//trim(adjustl(incChar))),'current')
|
call results_setLink(trim('inc'//trim(adjustl(incChar))),'current')
|
||||||
call HDF5_addAttribute(resultsFile,'time/s',time,trim('inc'//trim(adjustl(incChar))))
|
call HDF5_addAttribute(resultsFile,'time/s',time,trim('inc'//trim(adjustl(incChar))))
|
||||||
|
@ -135,6 +146,19 @@ subroutine results_setLink(path,link)
|
||||||
end subroutine results_setLink
|
end subroutine results_setLink
|
||||||
|
|
||||||
|
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @brief adds an attribute to an object
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
subroutine results_addAttribute(attrLabel,attrValue,path)
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
character(len=*), intent(in) :: attrLabel, attrValue, path
|
||||||
|
|
||||||
|
call HDF5_addAttribute_str(resultsFile,attrLabel, attrValue, path)
|
||||||
|
|
||||||
|
end subroutine results_addAttribute
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief remove link to an object
|
!> @brief remove link to an object
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -151,23 +175,138 @@ subroutine results_removeLink(link)
|
||||||
end subroutine results_removeLink
|
end subroutine results_removeLink
|
||||||
|
|
||||||
|
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @brief stores a scalar dataset in a group
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
subroutine results_writeScalarDataset_real(group,dataset,label,description,SIunit)
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
character(len=*), intent(in) :: label,group,description
|
||||||
|
character(len=*), intent(in), optional :: SIunit
|
||||||
|
real(pReal), intent(inout), dimension(:) :: dataset
|
||||||
|
|
||||||
|
integer(HID_T) :: groupHandle
|
||||||
|
|
||||||
|
groupHandle = results_openGroup(group)
|
||||||
|
|
||||||
|
#ifdef PETSc
|
||||||
|
call HDF5_write(groupHandle,dataset,label,.true.)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (HDF5_objectExists(groupHandle,label)) &
|
||||||
|
call HDF5_addAttribute(groupHandle,'Description',description,label)
|
||||||
|
if (HDF5_objectExists(groupHandle,label) .and. present(SIunit)) &
|
||||||
|
call HDF5_addAttribute(groupHandle,'Unit',SIunit,label)
|
||||||
|
call HDF5_closeGroup(groupHandle)
|
||||||
|
|
||||||
|
end subroutine results_writeScalarDataset_real
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief stores a vector dataset in a group
|
!> @brief stores a vector dataset in a group
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine results_writeVectorDataset(group,dataset,label,SIunit)
|
subroutine results_writeVectorDataset_real(group,dataset,label,description,SIunit)
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
character(len=*), intent(in) :: SIunit,label,group
|
character(len=*), intent(in) :: label,group,description
|
||||||
real(pReal), intent(inout), dimension(:,:) :: dataset
|
character(len=*), intent(in), optional :: SIunit
|
||||||
integer(HID_T) :: groupHandle
|
real(pReal), intent(inout), dimension(:,:) :: dataset
|
||||||
|
|
||||||
|
integer(HID_T) :: groupHandle
|
||||||
|
|
||||||
groupHandle = results_openGroup(group)
|
groupHandle = results_openGroup(group)
|
||||||
call HDF5_write(groupHandle,dataset,label)
|
|
||||||
if (HDF5_objectExists(groupHandle,label)) &
|
#ifdef PETSc
|
||||||
call HDF5_addAttribute(groupHandle,'Unit',SIunit,label)
|
call HDF5_write(groupHandle,dataset,label,.true.)
|
||||||
call HDF5_closeGroup(groupHandle)
|
#endif
|
||||||
|
|
||||||
|
if (HDF5_objectExists(groupHandle,label)) &
|
||||||
|
call HDF5_addAttribute(groupHandle,'Description',description,label)
|
||||||
|
if (HDF5_objectExists(groupHandle,label) .and. present(SIunit)) &
|
||||||
|
call HDF5_addAttribute(groupHandle,'Unit',SIunit,label)
|
||||||
|
call HDF5_closeGroup(groupHandle)
|
||||||
|
|
||||||
end subroutine results_writeVectorDataset
|
end subroutine results_writeVectorDataset_real
|
||||||
|
|
||||||
|
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @brief stores a tensor dataset in a group
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
subroutine results_writeTensorDataset_real(group,dataset,label,description,SIunit)
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
character(len=*), intent(in) :: label,group,description
|
||||||
|
character(len=*), intent(in), optional :: SIunit
|
||||||
|
real(pReal), intent(inout), dimension(:,:,:) :: dataset
|
||||||
|
|
||||||
|
integer(HID_T) :: groupHandle
|
||||||
|
|
||||||
|
groupHandle = results_openGroup(group)
|
||||||
|
|
||||||
|
#ifdef PETSc
|
||||||
|
call HDF5_write(groupHandle,dataset,label,.true.)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (HDF5_objectExists(groupHandle,label)) &
|
||||||
|
call HDF5_addAttribute(groupHandle,'Description',description,label)
|
||||||
|
if (HDF5_objectExists(groupHandle,label) .and. present(SIunit)) &
|
||||||
|
call HDF5_addAttribute(groupHandle,'Unit',SIunit,label)
|
||||||
|
call HDF5_closeGroup(groupHandle)
|
||||||
|
|
||||||
|
end subroutine results_writeTensorDataset_real
|
||||||
|
|
||||||
|
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @brief stores a vector dataset in a group
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
subroutine results_writeVectorDataset_int(group,dataset,label,description,SIunit)
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
character(len=*), intent(in) :: label,group,description
|
||||||
|
character(len=*), intent(in), optional :: SIunit
|
||||||
|
integer, intent(inout), dimension(:,:) :: dataset
|
||||||
|
|
||||||
|
integer(HID_T) :: groupHandle
|
||||||
|
|
||||||
|
groupHandle = results_openGroup(group)
|
||||||
|
|
||||||
|
#ifdef PETSc
|
||||||
|
call HDF5_write(groupHandle,dataset,label,.true.)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (HDF5_objectExists(groupHandle,label)) &
|
||||||
|
call HDF5_addAttribute(groupHandle,'Description',description,label)
|
||||||
|
if (HDF5_objectExists(groupHandle,label) .and. present(SIunit)) &
|
||||||
|
call HDF5_addAttribute(groupHandle,'Unit',SIunit,label)
|
||||||
|
call HDF5_closeGroup(groupHandle)
|
||||||
|
|
||||||
|
end subroutine results_writeVectorDataset_int
|
||||||
|
|
||||||
|
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @brief stores a vector dataset in a group
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
subroutine results_writeTensorDataset_int(group,dataset,label,description,SIunit)
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
character(len=*), intent(in) :: label,group,description
|
||||||
|
character(len=*), intent(in), optional :: SIunit
|
||||||
|
integer, intent(inout), dimension(:,:,:) :: dataset
|
||||||
|
|
||||||
|
integer(HID_T) :: groupHandle
|
||||||
|
|
||||||
|
groupHandle = results_openGroup(group)
|
||||||
|
|
||||||
|
#ifdef PETSc
|
||||||
|
call HDF5_write(groupHandle,dataset,label,.true.)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (HDF5_objectExists(groupHandle,label)) &
|
||||||
|
call HDF5_addAttribute(groupHandle,'Description',description,label)
|
||||||
|
if (HDF5_objectExists(groupHandle,label) .and. present(SIunit)) &
|
||||||
|
call HDF5_addAttribute(groupHandle,'Unit',SIunit,label)
|
||||||
|
call HDF5_closeGroup(groupHandle)
|
||||||
|
|
||||||
|
end subroutine results_writeTensorDataset_int
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue