now using correct exit routine for Abaqus/Explicit
This commit is contained in:
parent
f82460457d
commit
d55ba3e3e6
|
@ -1,7 +1,7 @@
|
||||||
! Copyright 2011-13 Max-Planck-Institut für Eisenforschung GmbH
|
! Copyright 2011-13 Max-Planck-Institut für Eisenforschung GmbH
|
||||||
!
|
!
|
||||||
! This file is part of DAMASK,
|
! This file is part of DAMASK,
|
||||||
! the Düsseldorf Advanced MAterial Simulation Kit.
|
! the Düsseldorf Advanced Material Simulation Kit.
|
||||||
!
|
!
|
||||||
! DAMASK is free software: you can redistribute it and/or modify
|
! DAMASK is free software: you can redistribute it and/or modify
|
||||||
! it under the terms of the GNU General Public License as published by
|
! it under the terms of the GNU General Public License as published by
|
||||||
|
@ -16,26 +16,19 @@
|
||||||
! You should have received a copy of the GNU General Public License
|
! You should have received a copy of the GNU General Public License
|
||||||
! along with DAMASK. If not, see <http://www.gnu.org/licenses/>.
|
! along with DAMASK. If not, see <http://www.gnu.org/licenses/>.
|
||||||
!
|
!
|
||||||
!##############################################################
|
!--------------------------------------------------------------------------------------------------
|
||||||
!* $Id$
|
! $Id$
|
||||||
!********************************************************************
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @author Philip Eisenlohr, Max-Planck-Institut für Eisenforschung GmbH
|
||||||
|
!> @author Franz Roters, Max-Planck-Institut für Eisenforschung GmbH
|
||||||
|
!> @author Koen Janssens, Paul Scherrer Institut
|
||||||
|
!> @author Arun Prakash, Fraunhofer IWM
|
||||||
! Material subroutine for Abaqus
|
! Material subroutine for Abaqus
|
||||||
!
|
|
||||||
! written by P. Eisenlohr,
|
|
||||||
! F. Roters,
|
|
||||||
! K. Janssens 2,
|
|
||||||
! A. Prakash 3
|
|
||||||
!
|
|
||||||
! MPI fuer Eisenforschung, Duesseldorf
|
|
||||||
! 2 PSI, Switzerland
|
|
||||||
! 3 Fraunhofer IWM, Freiburg
|
|
||||||
!
|
|
||||||
! REMARK: put the included file abaqus_v6.env in either your home
|
! REMARK: put the included file abaqus_v6.env in either your home
|
||||||
! or model directory, it is a minimum Abaqus environment file
|
! or model directory, it is a minimum Abaqus environment file
|
||||||
! containing all changes necessary to use the MPIE subroutine
|
! containing all changes necessary to use the MPIE subroutine
|
||||||
! (see Abaqus documentation for more information on the use of abaqus_v6.env)
|
! (see Abaqus documentation for more information on the use of abaqus_v6.env)
|
||||||
!
|
!--------------------------------------------------------------------------------------------------
|
||||||
!********************************************************************
|
|
||||||
|
|
||||||
#ifndef INT
|
#ifndef INT
|
||||||
#define INT 4
|
#define INT 4
|
||||||
|
@ -52,49 +45,52 @@
|
||||||
module DAMASK_interface
|
module DAMASK_interface
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
character(len=4), dimension(2), parameter :: InputFileExtension = ['.pes','.inp']
|
character(len=4), dimension(2), parameter :: INPUTFILEEXTENSION = ['.pes','.inp']
|
||||||
character(len=4), parameter :: LogFileExtension = '.log'
|
character(len=4), parameter :: LOGFILEEXTENSION = '.log'
|
||||||
|
|
||||||
contains
|
contains
|
||||||
|
|
||||||
!--------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @brief just reporting
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine DAMASK_interface_init()
|
subroutine DAMASK_interface_init()
|
||||||
!--------------------
|
|
||||||
|
|
||||||
write(6,*)
|
write(6,'(/,a)') ' <<<+- DAMASK_abaqus init -+>>>'
|
||||||
write(6,*) '<<<+- DAMASK_abaqus init -+>>>'
|
write(6,'(a)') ' $Id$'
|
||||||
write(6,*) '$Id$'
|
|
||||||
#include "compilation_info.f90"
|
#include "compilation_info.f90"
|
||||||
write(6,*)
|
|
||||||
|
|
||||||
end subroutine DAMASK_interface_init
|
end subroutine DAMASK_interface_init
|
||||||
|
|
||||||
!--------------------
|
|
||||||
function getSolverWorkingDirectoryName()
|
!--------------------------------------------------------------------------------------------------
|
||||||
!--------------------
|
!> @brief using Abaqus Explit function to get working directory name
|
||||||
use prec, only: pInt
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
character(1024) function getSolverWorkingDirectoryName()
|
||||||
|
use prec, only: &
|
||||||
|
pInt
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
character(1024) getSolverWorkingDirectoryName
|
integer(pInt) :: lenOutDir
|
||||||
integer(pInt) LENOUTDIR
|
|
||||||
|
|
||||||
getSolverWorkingDirectoryName=''
|
getSolverWorkingDirectoryName=''
|
||||||
CALL VGETOUTDIR( getSolverWorkingDirectoryName, LENOUTDIR )
|
call vgetoutdir(getSolverWorkingDirectoryName, lenOutDir)
|
||||||
getSolverWorkingDirectoryName=trim(getSolverWorkingDirectoryName)//'/'
|
getSolverWorkingDirectoryName=trim(getSolverWorkingDirectoryName)//'/'
|
||||||
|
|
||||||
end function getSolverWorkingDirectoryName
|
end function getSolverWorkingDirectoryName
|
||||||
|
|
||||||
!--------------------
|
|
||||||
function getSolverJobName()
|
!--------------------------------------------------------------------------------------------------
|
||||||
!--------------------
|
!> @brief using Abaqus Explit function to get solver job name
|
||||||
use prec, only: pInt
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
character(1024) function getSolverJobName()
|
||||||
|
use prec, only: &
|
||||||
|
pInt
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
character(1024) getSolverJobName, JOBNAME
|
integer(pInt) :: lenJobName
|
||||||
integer(pInt) LENJOBNAME
|
|
||||||
|
|
||||||
getSolverJobName=''
|
getSolverJobName=''
|
||||||
CALL VGETJOBNAME(getSolverJobName , LENJOBNAME )
|
call vGetJobName(getSolverJobName , lenJobName)
|
||||||
|
|
||||||
end function getSolverJobName
|
end function getSolverJobName
|
||||||
|
|
||||||
|
@ -337,7 +333,7 @@ stepTime, totalTime, dt, cmname, coordMp, charLength, &
|
||||||
stressNew(n,1:ndir+nshr) = stress(1:ndir+nshr)*invnrmMandel(1:ndir+nshr)
|
stressNew(n,1:ndir+nshr) = stress(1:ndir+nshr)*invnrmMandel(1:ndir+nshr)
|
||||||
|
|
||||||
stateNew(n,:) = materialpoint_results(1:min(nstatev,materialpoint_sizeResults),nMatPoint,mesh_FEasCP('elem', nElement(n)))
|
stateNew(n,:) = materialpoint_results(1:min(nstatev,materialpoint_sizeResults),nMatPoint,mesh_FEasCP('elem', nElement(n)))
|
||||||
tempNew(n) = temp
|
!tempNew(n) = temp
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
@ -346,13 +342,13 @@ stepTime, totalTime, dt, cmname, coordMp, charLength, &
|
||||||
!********************************************************************
|
!********************************************************************
|
||||||
! This subroutine replaces the corresponding Marc subroutine
|
! This subroutine replaces the corresponding Marc subroutine
|
||||||
!********************************************************************
|
!********************************************************************
|
||||||
subroutine quit(mpie_error)
|
subroutine quit(mpie_error)
|
||||||
|
|
||||||
use prec, only: pInt
|
use prec, only: pInt
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt) mpie_error
|
integer(pInt) mpie_error
|
||||||
|
|
||||||
call xit
|
|
||||||
flush(6)
|
flush(6)
|
||||||
end subroutine quit
|
call xplb_exit
|
||||||
|
|
||||||
|
end subroutine quit
|
||||||
|
|
Loading…
Reference in New Issue