! $Id$
!    -*- f90 -*-
! Note: the context of this file is case sensitive.
python module postprocessingMath ! in 
    interface  ! in :postprocessingMath
        module math ! in :postprocessingMath:postprocessingMath.f90
            real*8 parameter,optional,dimension(3,3) :: math_i3=reshape((/1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0/),(/3,3/))
            real*8 parameter,optional :: pi=3.14159265359
            function math_mul33x33(a,b) ! in :postprocessingMath:postprocessingMath.f90:math
                real*8 dimension(3,3),intent(in) :: a
                real*8 dimension(3,3),intent(in) :: b
                real*8 dimension(3,3) :: math_mul33x33
            end function math_mul33x33
            subroutine math_invert3x3(a,inva,deta,error) ! in :postprocessingMath:postprocessingMath.f90:math
                real*8 dimension(3,3),intent(in) :: a
                real*8 dimension(3,3),intent(out) :: inva
                real*8 intent(out) :: deta
                logical intent(out) :: error
            end subroutine math_invert3x3
            function math_det3x3(m) ! in :postprocessingMath:postprocessingMath.f90:math
                real*8 dimension(3,3),intent(in) :: m
                real*8 :: math_det3x3
            end function math_det3x3
            subroutine math_pdecomposition(fe,u,r,error) ! in :postprocessingMath:postprocessingMath.f90:math
                real*8 dimension(3,3),intent(in) :: fe
                real*8 dimension(3,3),intent(out) :: u
                real*8 dimension(3,3),intent(out) :: r
                logical intent(out) :: error
            end subroutine math_pdecomposition
            function math_inv3x3(a) ! in :postprocessingMath:postprocessingMath.f90:math
                real*8 dimension(3,3),intent(in) :: a
                real*8 dimension(3,3) :: math_inv3x3
            end function math_inv3x3
            subroutine math_hi(m,hi1m,hi2m,hi3m) ! in :postprocessingMath:postprocessingMath.f90:math
                real*8 dimension(3,3),intent(in) :: m
                real*8 intent(out) :: hi1m
                real*8 intent(out) :: hi2m
                real*8 intent(out) :: hi3m
            end subroutine math_hi
            subroutine math_spectral1(m,ew1,ew2,ew3,eb1,eb2,eb3) ! in :postprocessingMath:postprocessingMath.f90:math
                real*8 dimension(3,3),intent(in) :: m
                real*8 intent(out) :: ew1
                real*8 intent(out) :: ew2
                real*8 intent(out) :: ew3
                real*8 dimension(3,3),intent(out) :: eb1
                real*8 dimension(3,3),intent(out) :: eb2
                real*8 dimension(3,3),intent(out) :: eb3
            end subroutine math_spectral1
            function math_volTetrahedron(v1,v2,v3,v4) ! in :postprocessingMath:postprocessingMath.f90:math
               real*8 dimension(3), intent(in) :: v1
               real*8 dimension(3), intent(in) :: v2
               real*8 dimension(3), intent(in) :: v3
               real*8 dimension(3), intent(in) :: v4
            end function math_volTetrahedron
            function mesh_location(idx,resolution) ! in :postprocessingMath:postprocessingMath.f90:math
               integer, intent(in) :: idx
               integer dimension(3), intent(in) :: resolution
               integer dimension(3) :: mesh_location
            end function mesh_location
            function mesh_index(location,resolution) ! in :postprocessingMath:postprocessingMath.f90:math
               integer dimension(3), intent(in) :: resolution
               integer dimension(3), intent(in) :: location
               integer :: mesh_index
            end function mesh_location
        end module math
        subroutine mesh(res_x,res_y,res_z,geomdim,defgrad_av,centroids,nodes) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y
            integer intent(in) :: res_z
            real*8 dimension(3),intent(in) :: geomdim
            real*8 dimension(3,3),intent(in) :: defgrad_av
            real*8 dimension(res_x,res_y,res_z,3),intent(in),depend(res_x,res_y,res_z) :: centroids
            real*8 dimension(res_x + 2,res_y + 2,res_z +2 ,3),depend(res_x,res_y,res_z) :: centroids
            real*8 dimension(res_x + 1,res_y + 1,res_z + 1,3),intent(out),depend(res_x,res_y,res_z) :: nodes
        end subroutine mesh
        subroutine deformed(res_x,res_y,res_z,geomdim,defgrad,defgrad_av,coord_avgCorner) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y
            integer intent(in) :: res_z
            real*8 dimension(3),intent(in) :: geomdim
            real*8 dimension(3,3),intent(in) :: defgrad_av
            real*8 dimension(res_x,res_y,res_z,3),intent(out),depend(res_x,res_y,res_z) :: coord_avgCorner
            real*8 dimension(8,6,res_x,res_y,res_z,3),depend(res_x,res_y,res_z) :: coord
            real*8 dimension(8,res_x,res_y,res_z,3),depend(res_x,res_y,res_z) :: coord_avgOrder
            real*8 dimension(res_x,res_y,res_z,3,3),intent(in),depend(res_x,res_y,res_z) :: defgrad
        end subroutine deformed
        subroutine deformed_fft(res_x,res_y,res_z,geomdim,defgrad,defgrad_av,scaling,coords) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y
            integer intent(in) :: res_z
            real*8 intent(in) :: scaling
            real*8 dimension(3),intent(in) :: geomdim
            real*8 dimension(3,3),intent(in) :: defgrad_av
            real*8 dimension(res_x,res_y,res_z,3,3),intent(in),depend(res_x,res_y,res_z) :: defgrad
            real*8 dimension(res_x,res_y,res_z,3),intent(out),depend(res_x,res_y,res_z) :: coords
            complex*16 dimension(res_x,res_y,res_z,3,3),depend(res_x,res_y,res_z) :: defgrad_fft
            complex*16 dimension(res_x/2+1,res_y,res_z,3),depend(res_x,res_y,res_z) :: coords_fft
        end subroutine deformed_fft
        subroutine volume_compare(res_x,res_y,res_z,geomdim,nodes,defgrad,volume_mismatch) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y
            integer intent(in) :: res_z
            real*8 dimension(3),intent(in) :: geomdim
            real*8 dimension(res_x+1,res_y+1,res_z+1,3),intent(in),depend(res_x,res_y,res_z) :: nodes
            real*8 dimension(res_x,res_y,res_z,3,3),intent(in),depend(res_x,res_y,res_z) :: defgrad
            real*8 dimension(res_x,res_y,res_z),intent(out),depend(res_x,res_y,res_z) :: volume_mismatch
        end subroutine volume_compare
        subroutine shape_compare(res_x,res_y,res_z,geomdim,nodes,centroids,defgrad,shape_mismatch) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y
            integer intent(in) :: res_z
            real*8 dimension(3),intent(in) :: geomdim
            real*8 dimension(res_x,res_y,res_z,3,3),intent(in),depend(res_x,res_y,res_z) :: defgrad
            real*8 dimension(res_x+1,res_y+1,res_z+1,3),intent(in),depend(res_x,res_y,res_z) :: nodes
            real*8 dimension(res_x,res_y,res_z,3),intent(in),depend(res_x,res_y,res_z) :: centroids
            real*8 dimension(res_x,res_y,res_z),intent(out),depend(res_x,res_y,res_z) :: shape_mismatch
        end subroutine shape_compare
        subroutine inverse_reconstruction(res_x,res_y,res_z,reference_configuration,current_configuration,defgrad) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y
            integer intent(in) :: res_z
            real*8 dimension(res_x+1,res_y+1,res_z+1,3),intent(in),depend(res_x,res_y,res_z) :: reference_configuration
            real*8 dimension(res_x+1,res_y+1,res_z+1,3),intent(in),depend(res_x,res_y,res_z) :: current_configuration
            real*8 dimension(res_x,res_y,res_z,3,3),intent(out),depend(res_x,res_y,res_z) :: defgrad
        end subroutine inverse_reconstruction
        subroutine tensor_avg(res_x,res_y,res_z,tensor,avg) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y
            integer intent(in) :: res_z
            real*8 dimension(res_x,res_y,res_z,3,3),intent(in),depend(res_x,res_y,res_z) :: tensor
            real*8 dimension(3,3),intent(out) :: avg
        end subroutine tensor_avg
        subroutine logstrain_mat(res_x,res_y,res_z,defgrad,logstrain_field) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y
            integer intent(in) :: res_z
            real*8 dimension(res_x,res_y,res_z,3,3),intent(in),depend(res_x,res_y,res_z) :: defgrad
            real*8 dimension(res_x,res_y,res_z,3,3),intent(out),depend(res_x,res_y,res_z) :: logstrain_field            
        end subroutine logstrain_mat
        subroutine logstrain_spat(res_x,res_y,res_z,defgrad,logstrain_field) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y
            integer intent(in) :: res_z
            real*8 dimension(res_x,res_y,res_z,3,3),intent(in),depend(res_x,res_y,res_z) :: defgrad
            real*8 dimension(res_x,res_y,res_z,3,3),intent(out),depend(res_x,res_y,res_z) :: logstrain_field            
        end subroutine logstrain_spat
        subroutine calculate_cauchy(res_x,res_y,res_z,defgrad,p_stress,c_stress) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y 
            integer intent(in) :: res_z 
            real*8 dimension(res_x,res_y,res_z,3,3),intent(in),depend(res_x,res_y,res_z) :: defgrad
            real*8 dimension(res_x,res_y,res_z,3,3),intent(in),depend(res_x,res_y,res_z) :: p_stress
            real*8 dimension(res_x,res_y,res_z,3,3),intent(out),depend(res_x,res_y,res_z) :: c_stress  
        end subroutine calculate_cauchy
        subroutine calculate_mises(res_x,res_y,res_z,tensor,vm) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y
            integer intent(in) :: res_z
            real*8 dimension(res_x,res_y,res_z,3,3),intent(in),depend(res_x,res_y,res_z) :: tensor
            real*8 dimension(res_x,res_y,res_z,1),intent(out),depend(res_x,res_y,res_z) :: vm
        end subroutine calculate_mises
        subroutine divergence_fft(res_x,res_y,res_z,vec_tens,geomdim,field,divergence_field) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y
            integer intent(in) :: res_z
            integer intent(in) :: vec_tens
            real*8 dimension(3),intent(in) :: geomdim
            real*8 dimension(res_x,res_y,res_z,3,vec_tens),intent(in),depend(res_x,res_y,res_z,vec_tens) :: field
            real*8 dimension(res_x,res_y,res_z,vec_tens), intent(out),depend(res_x,res_y,res_z,vec_tens) :: divergence_field
            complex*8 dimension(res_x,res_y,res_z,3,vec_tens),depend(res_x,res_y,res_z,vec_tens) :: field_fft
            complex*8 dimension(res_x/2+1,res_y,res_z,vec_tens),depend(res_x,res_y,res_z,vec_tens) :: divergence_field_fft       
        end subroutine divergence_fft
        subroutine divergence(res_x,res_y,res_z,vec_tens,order,geomdim,field,divergence_field) ! in :postprocessingMath:postprocessingMath.f90
            integer intent(in) :: res_x
            integer intent(in) :: res_y
            integer intent(in) :: res_z
            integer intent(in) :: vec_tens
            integer intent(in) :: order
            real*8 dimension(3),intent(in) :: geomdim
            real*8 dimension(res_x,res_y,res_z,vec_tens,3),intent(in),depend(res_x,res_y,res_z,vec_tens,3) :: field
            real*8 dimension(res_x,res_y,res_z,vec_tens),intent(out),depend(res_x,res_y,res_z,vec_tens) :: divergence_field
        end subroutine divergence
    end interface 
end python module postprocessingMath

! This file was auto-generated with f2py (version:2_5972).
! See http://cens.ioc.ee/projects/f2py2e/
! modified by m.diehl