fixed closing of file (unit 222) statement in FEsolving.f90

added missing keyword in mesh.f90 with ifndef Spectral statement (needed for Marc and Abaqus)
This commit is contained in:
Martin Diehl 2012-06-19 14:33:24 +00:00
parent 06be437bc9
commit 481268c8c2
2 changed files with 35 additions and 34 deletions

View File

@ -166,11 +166,11 @@ subroutine FE_init
endif endif
enddo enddo
#endif #endif
200 close(fileunit)
else else
modelName = getSolverJobName() modelName = getSolverJobName()
endif endif
200 close(fileunit)
#endif #endif
!$OMP CRITICAL (write2out) !$OMP CRITICAL (write2out)
write(6,*) write(6,*)

View File

@ -366,7 +366,6 @@ subroutine mesh_init(ip,element)
call mesh_build_FEdata ! get properties of the different types of elements call mesh_build_FEdata ! get properties of the different types of elements
#ifdef Spectral #ifdef Spectral
call IO_open_file(fileUnit,geometryFile) ! parse info from geometry file... call IO_open_file(fileUnit,geometryFile) ! parse info from geometry file...
call mesh_spectral_count_nodesAndElements(fileUnit) call mesh_spectral_count_nodesAndElements(fileUnit)
call mesh_spectral_count_cpElements call mesh_spectral_count_cpElements
call mesh_spectral_map_elements call mesh_spectral_map_elements
@ -2572,15 +2571,17 @@ use IO, only: &
IO_stringValue, & IO_stringValue, &
IO_stringPos IO_stringPos
implicit none implicit none
integer(pInt), intent(in) :: myUnit integer(pInt), intent(in) :: myUnit
integer(pInt), parameter :: maxNchunks = 5_pInt integer(pInt), parameter :: maxNchunks = 5_pInt
integer(pInt), dimension (1+2*maxNchunks) :: myPos integer(pInt), dimension (1+2*maxNchunks) :: myPos
integer(pInt) chunk, Nchunks integer(pInt) chunk, Nchunks
character(len=300) line, damaskOption, v character(len=300) :: line, damaskOption, v
#ifndef Spectral
mesh_periodicSurface = .false. character(len=300) :: keyword
#endif
mesh_periodicSurface = .false.
610 FORMAT(A300) 610 FORMAT(A300)
@ -2591,37 +2592,37 @@ mesh_periodicSurface = .false.
keyword = '**damask' keyword = '**damask'
#endif #endif
rewind(myUnit) rewind(myUnit)
do do
read (myUnit,610,END=620) line read (myUnit,610,END=620) line
myPos = IO_stringPos(line,maxNchunks) myPos = IO_stringPos(line,maxNchunks)
Nchunks = myPos(1) Nchunks = myPos(1)
#ifndef Spectral #ifndef Spectral
if (IO_lc(IO_stringValue(line,myPos,1_pInt)) == keyword .and. Nchunks > 1_pInt) then ! found keyword for damask option and there is at least one more chunk to read if (IO_lc(IO_stringValue(line,myPos,1_pInt)) == keyword .and. Nchunks > 1_pInt) then ! found keyword for damask option and there is at least one more chunk to read
damaskOption = IO_lc(IO_stringValue(line,myPos,2_pInt)) damaskOption = IO_lc(IO_stringValue(line,myPos,2_pInt))
select case(damaskOption) select case(damaskOption)
case('periodic') ! damask Option that allows to specify periodic fluxes case('periodic') ! damask Option that allows to specify periodic fluxes
do chunk = 3_pInt,Nchunks ! loop through chunks (skipping the keyword) do chunk = 3_pInt,Nchunks ! loop through chunks (skipping the keyword)
v = IO_lc(IO_stringValue(line,myPos,chunk)) ! chunk matches keyvalues x,y, or z?
mesh_periodicSurface(1) = mesh_periodicSurface(1) .or. v == 'x'
mesh_periodicSurface(2) = mesh_periodicSurface(2) .or. v == 'y'
mesh_periodicSurface(3) = mesh_periodicSurface(3) .or. v == 'z'
enddo
endselect
endif
#else
damaskOption = IO_lc(IO_stringValue(line,myPos,1_pInt))
select case(damaskOption)
case('periodic') ! damask Option that allows to specify periodic fluxes
do chunk = 2_pInt,Nchunks ! loop through chunks (skipping the keyword)
v = IO_lc(IO_stringValue(line,myPos,chunk)) ! chunk matches keyvalues x,y, or z? v = IO_lc(IO_stringValue(line,myPos,chunk)) ! chunk matches keyvalues x,y, or z?
mesh_periodicSurface(1) = mesh_periodicSurface(1) .or. v == 'x' mesh_periodicSurface(1) = mesh_periodicSurface(1) .or. v == 'x'
mesh_periodicSurface(2) = mesh_periodicSurface(2) .or. v == 'y' mesh_periodicSurface(2) = mesh_periodicSurface(2) .or. v == 'y'
mesh_periodicSurface(3) = mesh_periodicSurface(3) .or. v == 'z' mesh_periodicSurface(3) = mesh_periodicSurface(3) .or. v == 'z'
enddo enddo
endselect endselect
endif
#else
damaskOption = IO_lc(IO_stringValue(line,myPos,1_pInt))
select case(damaskOption)
case('periodic') ! damask Option that allows to specify periodic fluxes
do chunk = 2_pInt,Nchunks ! loop through chunks (skipping the keyword)
v = IO_lc(IO_stringValue(line,myPos,chunk)) ! chunk matches keyvalues x,y, or z?
mesh_periodicSurface(1) = mesh_periodicSurface(1) .or. v == 'x'
mesh_periodicSurface(2) = mesh_periodicSurface(2) .or. v == 'y'
mesh_periodicSurface(3) = mesh_periodicSurface(3) .or. v == 'z'
enddo
endselect
#endif #endif
enddo enddo
620 end subroutine mesh_get_damaskOptions 620 end subroutine mesh_get_damaskOptions