2011-12-22 16:06:59 +05:30
|
|
|
! $Id$
|
2011-12-01 17:31:13 +05:30
|
|
|
! -*- f90 -*-
|
|
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
2012-04-24 22:32:27 +05:30
|
|
|
! Note: the syntax of this file is case sensitive.
|
2011-12-01 17:31:13 +05:30
|
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
! This file was auto-generated with f2py (version:2_5972).
|
|
|
|
! See http://cens.ioc.ee/projects/f2py2e/
|
|
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
! The auto-generated file is quite heavily corrected
|
|
|
|
! For modifying, notice the following hints:
|
|
|
|
! - if the dimension of an array depend on a array that is itself an input, use the C-Syntax: (1) becomes [0] etc.
|
|
|
|
! - be sure that the precision defined for math.f90 is integer, real*8, and complex*16
|
|
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
2011-12-22 16:06:59 +05:30
|
|
|
python module core ! in
|
|
|
|
interface ! in :core
|
2012-04-10 19:00:34 +05:30
|
|
|
|
2012-06-19 19:01:15 +05:30
|
|
|
module prec
|
|
|
|
subroutine prec_init
|
|
|
|
end subroutine prec_init
|
|
|
|
end module prec
|
2012-04-10 20:45:46 +05:30
|
|
|
|
2012-04-11 22:58:08 +05:30
|
|
|
module damask_interface ! in :damask_interface:DAMASK_spectral_interface.f90
|
|
|
|
subroutine damask_interface_init(loadcaseParameterIn,geometryParameterIn) ! in :damask_interface:DAMASK_spectral_interface.f90
|
2012-04-10 19:00:34 +05:30
|
|
|
character(len=1024), intent(in) :: loadcaseParameterIn
|
|
|
|
character(len=1024), intent(in) :: geometryParameterIn
|
|
|
|
end subroutine damask_interface_init
|
2012-06-19 19:01:15 +05:30
|
|
|
end module damask_interface
|
|
|
|
|
|
|
|
module io
|
|
|
|
subroutine io_init
|
|
|
|
end subroutine io_init
|
|
|
|
end module io
|
|
|
|
|
|
|
|
module numerics
|
|
|
|
subroutine numerics_init
|
|
|
|
end subroutine numerics_init
|
|
|
|
end module numerics
|
|
|
|
|
|
|
|
module debug
|
|
|
|
subroutine debug_init
|
|
|
|
end subroutine debug_init
|
|
|
|
end module debug
|
|
|
|
|
|
|
|
module math ! in :math:math.f90
|
|
|
|
subroutine math_init
|
|
|
|
end subroutine math_init
|
2011-12-01 17:31:13 +05:30
|
|
|
|
|
|
|
subroutine volume_compare(res,geomdim,defgrad,nodes,volume_mismatch) ! in :math:math.f90
|
|
|
|
! input variables
|
|
|
|
integer, dimension(3), intent(in) :: res
|
|
|
|
real*8, dimension(3), intent(in) :: geomdim
|
|
|
|
real*8, dimension(res[0], res[1], res[2], 3,3),intent(in), depend(res[0],res[1],res[2]) :: defgrad
|
|
|
|
real*8, dimension(res[0]+1,res[1]+1,res[2]+1,3), intent(in), depend(res[0],res[1],res[2]) :: nodes
|
|
|
|
! output variables
|
|
|
|
real*8, dimension(res[0], res[1], res[2]), intent(out), depend(res[0],res[1],res[2])) :: volume_mismatch
|
|
|
|
end subroutine volume_compare
|
|
|
|
|
|
|
|
subroutine shape_compare(res,geomdim,defgrad,nodes,centroids,shape_mismatch) ! in :math:math.f90
|
|
|
|
! input variables
|
|
|
|
integer, dimension(3), intent(in) :: res
|
|
|
|
real*8, dimension(3), intent(in) :: geomdim
|
|
|
|
real*8, dimension(res[0], res[1], res[2], 3,3),intent(in), depend(res[0],res[1],res[2]) :: defgrad
|
|
|
|
real*8, dimension(res[0]+1,res[1]+1,res[2]+1,3), intent(in), depend(res[0],res[1],res[2]) :: nodes
|
|
|
|
real*8, dimension(res[0], res[1], res[2], 3), intent(in), depend(res[0],res[1],res[2]) :: centroids
|
|
|
|
! output variables
|
|
|
|
real*8, dimension(res[0], res[1], res[2]), intent(out), depend(res[0],res[1],res[2])) :: shape_mismatch
|
|
|
|
end subroutine shape_compare
|
|
|
|
|
|
|
|
subroutine mesh_regular_grid(res,geomdim,defgrad_av,centroids,nodes) ! in :math:math.f90
|
|
|
|
! input variables
|
|
|
|
integer, dimension(3), intent(in) :: res
|
|
|
|
real*8, dimension(3), intent(in) :: geomdim
|
|
|
|
real*8, dimension(3,3), intent(in) :: defgrad_av
|
|
|
|
real*8, dimension(res[0], res[1], res[2], 3), intent(in), depend(res[0],res[1],res[2]) :: centroids
|
|
|
|
! output variables
|
|
|
|
real*8, dimension(res[0]+1,res[1]+1,res[2]+1,3), intent(out), depend(res[0],res[1],res[2]) :: nodes
|
|
|
|
! variables with dimension depending on input
|
|
|
|
real*8, dimension(res[0]+2,res[1]+2,res[2]+2,3), depend(res[0],res[1],res[2]) :: wrappedCentroids
|
|
|
|
end subroutine mesh_regular_grid
|
|
|
|
|
|
|
|
subroutine deformed_linear(res,geomdim,defgrad_av,defgrad,coord_avgCorner) ! in :math:math.f90
|
|
|
|
! input variables
|
|
|
|
integer, dimension(3), intent(in) :: res
|
|
|
|
real*8, dimension(3), intent(in) :: geomdim
|
|
|
|
real*8, dimension(3,3), intent(in) :: defgrad_av
|
|
|
|
real*8, dimension(res[0], res[1], res[2], 3,3),intent(in), depend(res[0],res[1],res[2]) :: defgrad
|
|
|
|
! output variables
|
|
|
|
real*8, dimension(res[0], res[1], res[2], 3), intent(out), depend(res[0],res[1],res[2]) :: coord_avgCorner
|
|
|
|
! variables with dimension depending on input
|
|
|
|
real*8, dimension(8,6,res[0],res[1],res[2],3), depend(res[0],res[1],res[2]) :: coord
|
|
|
|
real*8, dimension(8,res[0],res[1],res[2],3), depend(res[0],res[1],res[2]) :: coord_avgOrder
|
|
|
|
end subroutine deformed_linear
|
|
|
|
|
|
|
|
subroutine deformed_fft(res,geomdim,defgrad_av,scaling,defgrad,coords) ! in :math:math.f90
|
|
|
|
! input variables
|
|
|
|
integer, dimension(3), intent(in) :: res
|
|
|
|
real*8, dimension(3), intent(in) :: geomdim
|
|
|
|
real*8, dimension(3,3), intent(in) :: defgrad_av
|
|
|
|
real*8, intent(in) :: scaling
|
|
|
|
real*8, dimension(res[0], res[1], res[2], 3,3),intent(in), depend(res[0],res[1],res[2]) :: defgrad
|
|
|
|
! output variables
|
|
|
|
real*8, dimension(res[0], res[1], res[2], 3), intent(out), depend(res[0],res[1],res[2]) :: coords
|
|
|
|
end subroutine deformed_fft
|
|
|
|
|
2012-01-13 21:48:16 +05:30
|
|
|
subroutine curl_fft(res,geomdim,vec_tens,field,curl) ! in :math:math.f90
|
2011-12-01 17:31:13 +05:30
|
|
|
! input variables
|
|
|
|
integer, dimension(3), intent(in) :: res
|
|
|
|
real*8, dimension(3), intent(in) :: geomdim
|
|
|
|
integer, intent(in) :: vec_tens
|
2012-01-20 02:09:33 +05:30
|
|
|
real*8, dimension(res[0], res[1], res[2], vec_tens,3), intent(in), depend(res[0],res[1],res[2],vec_tens) :: field
|
2011-12-01 17:31:13 +05:30
|
|
|
! output variables
|
2012-01-20 02:09:33 +05:30
|
|
|
real*8, dimension(res[0], res[1], res[2], vec_tens,3), intent(out), depend(res[0],res[1],res[2],vec_tens) :: curl
|
2011-12-01 17:31:13 +05:30
|
|
|
! variables with dimension depending on input
|
|
|
|
real*8, dimension(res[0]/2+1,res[1],res[2],3), depend(res[0],res[1],res[2]) :: xi
|
|
|
|
end subroutine curl_fft
|
|
|
|
|
2012-01-13 21:48:16 +05:30
|
|
|
subroutine divergence_fft(res,geomdim,vec_tens,field,divergence) ! in :math:math.f90
|
2011-12-01 17:31:13 +05:30
|
|
|
! input variables
|
|
|
|
integer, dimension(3), intent(in) :: res
|
|
|
|
real*8, dimension(3), intent(in) :: geomdim
|
|
|
|
integer, intent(in) :: vec_tens
|
2012-01-25 20:01:21 +05:30
|
|
|
real*8, dimension(res[0], res[1], res[2], vec_tens,3), intent(in), depend(res[0],res[1],res[2],vec_tens) :: field
|
2011-12-01 17:31:13 +05:30
|
|
|
! output variables
|
2012-01-13 21:48:16 +05:30
|
|
|
real*8, dimension(res[0], res[1], res[2], vec_tens), intent(out), depend(res[0],res[1],res[2],vec_tens) :: divergence
|
|
|
|
! variables with dimension depending on input
|
2011-12-01 17:31:13 +05:30
|
|
|
real*8, dimension(res[0]/2+1,res[1],res[2],3), depend(res[0],res[1],res[2],3) :: xi
|
|
|
|
end subroutine divergence_fft
|
|
|
|
|
2012-01-25 20:01:21 +05:30
|
|
|
subroutine divergence_fdm(res,geomdim,vec_tens,order,field,divergence) ! in :math:math.f90
|
2011-12-01 17:31:13 +05:30
|
|
|
! input variables
|
|
|
|
integer dimension(3), intent(in) :: res
|
|
|
|
real*8 dimension(3), intent(in) :: geomdim
|
|
|
|
integer intent(in) :: vec_tens
|
|
|
|
integer, intent(in) :: order
|
2012-01-25 20:01:21 +05:30
|
|
|
real*8 dimension(res[0], res[1], res[2], vec_tens,3), intent(in), depend(res[0],res[1],res[2],vec_tens) :: field
|
2011-12-01 17:31:13 +05:30
|
|
|
! output variables
|
2012-01-25 20:01:21 +05:30
|
|
|
real*8 dimension(res[0], res[1], res[2], vec_tens), intent(out), depend(res[0],res[1],res[2],vec_tens) :: divergence
|
2011-12-01 17:31:13 +05:30
|
|
|
end subroutine divergence_fdm
|
|
|
|
|
|
|
|
subroutine tensor_avg(res,tensor,avg) ! in :math:math.f90
|
|
|
|
! input variables
|
|
|
|
integer dimension(3), intent(in) :: res
|
|
|
|
real*8 dimension(res[0],res[1],res[2],3,3), intent(in), depend(res[0],res[1],res[2]) :: tensor
|
|
|
|
! output variables
|
|
|
|
real*8 dimension(3,3), intent(out) :: avg
|
|
|
|
end subroutine tensor_avg
|
|
|
|
|
|
|
|
subroutine logstrain_mat(res,defgrad,logstrain_field) ! in :math:math.f90
|
|
|
|
! input variables
|
|
|
|
integer, dimension(3), intent(in) :: res
|
|
|
|
real*8, dimension(res[0],res[1],res[2],3,3), intent(in), depend(res[0],res[1],res[2]) :: defgrad
|
|
|
|
! output variables
|
|
|
|
real*8, dimension(res[0],res[1],res[2],3,3), intent(out), depend(res[0],res[1],res[2]) :: logstrain_field
|
|
|
|
end subroutine logstrain_mat
|
|
|
|
|
|
|
|
subroutine logstrain_spat(res,defgrad,logstrain_field) ! in :math:math.f90
|
|
|
|
! input variables
|
2012-05-04 18:37:37 +05:30
|
|
|
integer, dimension(3), intent(in) :: res
|
2011-12-01 17:31:13 +05:30
|
|
|
real*8, dimension(res[0],res[1],res[2],3,3), intent(in), depend(res[0],res[1],res[2]) :: defgrad
|
|
|
|
! output variables
|
|
|
|
real*8, dimension(res[0],res[1],res[2],3,3), intent(out), depend(res[0],res[1],res[2]) :: logstrain_field
|
|
|
|
end subroutine logstrain_spat
|
|
|
|
|
|
|
|
subroutine calculate_cauchy(res,defgrad,p_stress,c_stress) ! in :math:math.f90
|
|
|
|
! input variables
|
|
|
|
integer, dimension(3), intent(in) :: res
|
|
|
|
real*8, dimension(res[0],res[1],res[2],3,3), intent(in), depend(res[0],res[1],res[2]) :: defgrad
|
|
|
|
real*8, dimension(res[0],res[1],res[2],3,3), intent(in), depend(res[0],res[1],res[2]) :: p_stress
|
|
|
|
! output variables
|
|
|
|
real*8, dimension(res[0],res[1],res[2],3,3), intent(out), depend(res[0],res[1],res[2]) :: c_stress
|
|
|
|
end subroutine calculate_cauchy
|
|
|
|
|
|
|
|
subroutine math_equivStrain33_field(res,tensor,vm) ! in :math:math.f90
|
|
|
|
! input variables
|
2012-05-04 18:37:37 +05:30
|
|
|
integer, dimension(3), intent(in) :: res
|
|
|
|
real*8, dimension(res[0],res[1],res[2],3,3), intent(in),depend(res[0],res[1],res[2]) :: tensor
|
2011-12-01 17:31:13 +05:30
|
|
|
! output variables
|
|
|
|
real*8, dimension(res[0],res[1],res[2]),intent(out),depend(res[0],res[1],res[2]) :: vm
|
|
|
|
end subroutine math_equivStrain33_field
|
2012-04-10 19:00:34 +05:30
|
|
|
|
2012-05-08 18:46:59 +05:30
|
|
|
subroutine math_nearestNeighborSearch(spatialDim,Favg,geomdim,queryPoints,domainPoints,querySet,domainSet,indices) ! in :math:math.f90
|
2012-05-04 18:37:37 +05:30
|
|
|
! input variables
|
2012-05-08 18:46:59 +05:30
|
|
|
integer, intent(in) :: spatialDim
|
|
|
|
real*8, dimension(3,3), intent(in) :: Favg
|
2012-05-04 18:37:37 +05:30
|
|
|
real*8, dimension(3), intent(in) :: geomdim
|
2012-05-08 18:46:59 +05:30
|
|
|
integer, intent(in) :: queryPoints
|
|
|
|
integer, intent(in) :: domainPoints
|
2012-06-19 19:01:15 +05:30
|
|
|
real*8, dimension(spatialDim,queryPoints), intent(in), depend(spatialDim,queryPoints) :: querySet
|
|
|
|
real*8, dimension(spatialDim,domainPoints), intent(in), depend(spatialDim,domainPoints) :: domainSet
|
2012-05-04 18:37:37 +05:30
|
|
|
! output variable
|
2012-06-19 19:01:15 +05:30
|
|
|
integer, dimension(queryPoints), intent(out), depend(queryPoints) :: indices
|
2012-05-08 18:46:59 +05:30
|
|
|
! depending on input
|
2012-06-19 19:01:15 +05:30
|
|
|
real*8, dimension(spatialDim,(3**spatialDim)*domainPoints), depend(spatialDim,domainPoints) :: domainSetLarge
|
2012-04-10 19:00:34 +05:30
|
|
|
end subroutine math_nearestNeighborSearch
|
2011-12-01 17:31:13 +05:30
|
|
|
end module math
|
2012-04-10 20:45:46 +05:30
|
|
|
|
2012-06-19 19:01:15 +05:30
|
|
|
module fesolving
|
|
|
|
subroutine fe_init
|
|
|
|
end subroutine fe_init
|
|
|
|
end module fesolving
|
2012-04-10 20:45:46 +05:30
|
|
|
|
2012-06-19 19:01:15 +05:30
|
|
|
module mesh ! in :mesh:mesh.f90
|
|
|
|
subroutine mesh_init(ip,element)
|
|
|
|
integer, parameter :: ip = 1
|
|
|
|
integer, parameter :: element = 1
|
|
|
|
end subroutine mesh_init
|
|
|
|
|
|
|
|
function mesh_regrid(resNewInput,minRes) ! in :mesh:mesh.f90
|
2012-05-08 20:27:06 +05:30
|
|
|
integer, dimension(3) :: mesh_regrid
|
2012-06-20 18:19:46 +05:30
|
|
|
integer, dimension(3), intent(in), optional :: resNewInput = -1
|
|
|
|
integer, dimension(3), intent(in), optional :: minRes = -1
|
2012-05-08 20:27:06 +05:30
|
|
|
end function mesh_regrid
|
2012-04-10 20:45:46 +05:30
|
|
|
end module mesh
|
2011-12-01 17:31:13 +05:30
|
|
|
end interface
|
2011-12-22 16:06:59 +05:30
|
|
|
end python module core
|
2011-12-01 17:31:13 +05:30
|
|
|
|