now using correct exit routine for Abaqus/Explicit

This commit is contained in:
Martin Diehl 2013-03-25 13:52:22 +00:00
parent f82460457d
commit d55ba3e3e6
1 changed files with 40 additions and 44 deletions

View File

@ -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