moved DAMASK_NaN to prec.f90 respectively prec_single.f90 as it is precision dependent

This commit is contained in:
Martin Diehl 2011-10-20 16:46:11 +00:00
parent 9565852247
commit 8ac1891b3c
4 changed files with 23 additions and 13 deletions

View File

@ -1489,7 +1489,8 @@ subroutine constitutive_nonlocal_dotState(dotState, Tstar_v, Fe, Fp, Temperature
use prec, only: pReal, & use prec, only: pReal, &
pInt, & pInt, &
p_vec p_vec, &
DAMASK_NaN
use numerics, only: numerics_integrationMode use numerics, only: numerics_integrationMode
use IO, only: IO_error use IO, only: IO_error
use debug, only: debug_verbosity, & use debug, only: debug_verbosity, &
@ -1507,8 +1508,7 @@ use math, only: math_norm3, &
math_Mandel6to33, & math_Mandel6to33, &
math_QuaternionDisorientation, & math_QuaternionDisorientation, &
math_qRot, & math_qRot, &
pi, & pi
NaN
use mesh, only: mesh_NcpElems, & use mesh, only: mesh_NcpElems, &
mesh_maxNips, & mesh_maxNips, &
mesh_maxNipNeighbors, & mesh_maxNipNeighbors, &
@ -1694,7 +1694,7 @@ if (any(1.2_pReal * constitutive_nonlocal_v(1:ns,1:4,g,ip,el) * timestep &
write(6,*) '<< CONST >> CFL condition not fullfilled' write(6,*) '<< CONST >> CFL condition not fullfilled'
endif endif
#endif #endif
dotState%p = 0.0_pReal/0.0_pReal dotState%p = DAMASK_NaN
return return
endif endif

View File

@ -23,13 +23,12 @@
!############################################################## !##############################################################
use prec, only: pReal,pInt use prec, only: pReal,pInt,DAMASK_NaN
implicit none implicit none
real(pReal), parameter :: pi = 3.14159265358979323846264338327950288419716939937510_pReal real(pReal), parameter :: pi = 3.14159265358979323846264338327950288419716939937510_pReal
real(pReal), parameter :: inDeg = 180.0_pReal/pi real(pReal), parameter :: inDeg = 180.0_pReal/pi
real(pReal), parameter :: inRad = pi/180.0_pReal real(pReal), parameter :: inRad = pi/180.0_pReal
real(pReal), parameter :: DAMASK_NaN = Z'7FF0000000000001'
! *** 3x3 Identity *** ! *** 3x3 Identity ***
real(pReal), dimension(3,3), parameter :: math_I3 = & real(pReal), dimension(3,3), parameter :: math_I3 = &
reshape( (/ & reshape( (/ &
@ -155,9 +154,6 @@ real(pReal), dimension(4,36), parameter :: math_symOperations = &
write(6,*) '<<<+- math init -+>>>' write(6,*) '<<<+- math init -+>>>'
write(6,*) '$Id$' write(6,*) '$Id$'
write(6,*) write(6,*)
write(6,*) 'NaN: ',DAMASK_NAN
write(6,*) 'NaN /= NaN: ',DAMASK_NaN/=DAMASK_NaN
write(6,*)
!$OMP END CRITICAL (write2out) !$OMP END CRITICAL (write2out)
if (fixedSeed > 0_pInt) then if (fixedSeed > 0_pInt) then

View File

@ -30,6 +30,10 @@ integer, parameter :: pInt = selected_int_kind(9) ! up to +- 1e9
integer, parameter :: pLongInt = 8 ! should be 64bit integer, parameter :: pLongInt = 8 ! should be 64bit
real(pReal), parameter :: tol_math_check = 1.0e-8_pReal real(pReal), parameter :: tol_math_check = 1.0e-8_pReal
real(pReal), parameter :: tol_gravityNodePos = 1.0e-100_pReal real(pReal), parameter :: tol_gravityNodePos = 1.0e-100_pReal
! NaN is precistion dependent
! from http://www.hpc.unimelb.edu.au/doc/f90lrm/dfum_035.html
! copy found in documentation/Code/Fortran
real(pReal), parameter :: DAMASK_NaN = Z'7FF0000000000001'
type :: p_vec type :: p_vec
real(pReal), dimension(:), pointer :: p real(pReal), dimension(:), pointer :: p
@ -44,6 +48,9 @@ implicit none
write(6,*) write(6,*)
write(6,*) '<<<+- prec init -+>>>' write(6,*) '<<<+- prec init -+>>>'
write(6,*) '$Id$' write(6,*) '$Id$'
write(6,*)
write(6,*) 'NaN: ',DAMASK_NAN
write(6,*) 'NaN /= NaN: ',DAMASK_NaN/=DAMASK_NaN
write(6,*) write(6,*)
!$OMP END CRITICAL (write2out) !$OMP END CRITICAL (write2out)

View File

@ -17,7 +17,7 @@
! along with DAMASK. If not, see <http://www.gnu.org/licenses/>. ! along with DAMASK. If not, see <http://www.gnu.org/licenses/>.
! !
!############################################################## !##############################################################
!* $Id: prec.f90 407 2009-08-31 15:09:15Z MPIE\f.roters $ !* $Id$
!############################################################## !##############################################################
MODULE prec MODULE prec
!############################################################## !##############################################################
@ -30,7 +30,11 @@ integer, parameter :: pInt = selected_int_kind(9) ! up to +- 1e9
integer, parameter :: pLongInt = 4 ! should be 64bit integer, parameter :: pLongInt = 4 ! should be 64bit
real(pReal), parameter :: tol_math_check = 1.0e-5_pReal real(pReal), parameter :: tol_math_check = 1.0e-5_pReal
real(pReal), parameter :: tol_gravityNodePos = 1.0e-36_pReal real(pReal), parameter :: tol_gravityNodePos = 1.0e-36_pReal
! NaN is precistion dependent
! from http://www.hpc.unimelb.edu.au/doc/f90lrm/dfum_035.html
! copy can be found in documentation/Code/Fortran
real(pReal), parameter :: DAMASK_NaN = Z'7F800001'
type :: p_vec type :: p_vec
real(pReal), dimension(:), pointer :: p real(pReal), dimension(:), pointer :: p
end type p_vec end type p_vec
@ -40,8 +44,11 @@ CONTAINS
subroutine prec_init subroutine prec_init
!$OMP CRITICAL (write2out) !$OMP CRITICAL (write2out)
write(6,*) write(6,*)
write(6,*) '<<<+- prec init -+>>>' write(6,*) '<<<+- prec_single init -+>>>'
write(6,*) '$Id: prec.f90 407 2009-08-31 15:09:15Z MPIE\f.roters $' write(6,*) '$Id$'
write(6,*)
write(6,*) 'NaN: ',DAMASK_NAN
write(6,*) 'NaN /= NaN: ',DAMASK_NaN/=DAMASK_NaN
write(6,*) write(6,*)
!$OMP END CRITICAL (write2out) !$OMP END CRITICAL (write2out)