corrected nonconforming use of openmp parallelization

This commit is contained in:
Christoph Kords 2012-12-14 14:30:08 +00:00
parent 2eb9f66c6c
commit 64d9c70dc7
1 changed files with 28 additions and 30 deletions

View File

@ -175,35 +175,33 @@ subroutine homogenization_init(Temperature)
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! allocate and initialize global state and postrestuls variables ! allocate and initialize global state and postrestuls variables
!$OMP PARALLEL DO PRIVATE(myInstance) do e = 1,mesh_NcpElems ! loop over elements
do e = 1,mesh_NcpElems ! loop over elements myInstance = homogenization_typeInstance(mesh_element(3,e))
myInstance = homogenization_typeInstance(mesh_element(3,e)) do i = 1,FE_Nips(FE_geomtype(mesh_element(2,e))) ! loop over IPs
do i = 1,FE_Nips(FE_geomtype(mesh_element(2,e))) ! loop over IPs select case(homogenization_type(mesh_element(3,e)))
select case(homogenization_type(mesh_element(3,e))) case (homogenization_isostrain_label)
case (homogenization_isostrain_label) if (homogenization_isostrain_sizeState(myInstance) > 0_pInt) then
if (homogenization_isostrain_sizeState(myInstance) > 0_pInt) then allocate(homogenization_state0(i,e)%p(homogenization_isostrain_sizeState(myInstance)))
allocate(homogenization_state0(i,e)%p(homogenization_isostrain_sizeState(myInstance))) allocate(homogenization_subState0(i,e)%p(homogenization_isostrain_sizeState(myInstance)))
allocate(homogenization_subState0(i,e)%p(homogenization_isostrain_sizeState(myInstance))) allocate(homogenization_state(i,e)%p(homogenization_isostrain_sizeState(myInstance)))
allocate(homogenization_state(i,e)%p(homogenization_isostrain_sizeState(myInstance))) homogenization_state0(i,e)%p = homogenization_isostrain_stateInit(myInstance)
homogenization_state0(i,e)%p = homogenization_isostrain_stateInit(myInstance) homogenization_sizeState(i,e) = homogenization_isostrain_sizeState(myInstance)
homogenization_sizeState(i,e) = homogenization_isostrain_sizeState(myInstance) endif
endif homogenization_sizePostResults(i,e) = homogenization_isostrain_sizePostResults(myInstance)
homogenization_sizePostResults(i,e) = homogenization_isostrain_sizePostResults(myInstance) case (homogenization_RGC_label)
case (homogenization_RGC_label) if (homogenization_RGC_sizeState(myInstance) > 0_pInt) then
if (homogenization_RGC_sizeState(myInstance) > 0_pInt) then allocate(homogenization_state0(i,e)%p(homogenization_RGC_sizeState(myInstance)))
allocate(homogenization_state0(i,e)%p(homogenization_RGC_sizeState(myInstance))) allocate(homogenization_subState0(i,e)%p(homogenization_RGC_sizeState(myInstance)))
allocate(homogenization_subState0(i,e)%p(homogenization_RGC_sizeState(myInstance))) allocate(homogenization_state(i,e)%p(homogenization_RGC_sizeState(myInstance)))
allocate(homogenization_state(i,e)%p(homogenization_RGC_sizeState(myInstance))) homogenization_state0(i,e)%p = homogenization_RGC_stateInit(myInstance)
homogenization_state0(i,e)%p = homogenization_RGC_stateInit(myInstance) homogenization_sizeState(i,e) = homogenization_RGC_sizeState(myInstance)
homogenization_sizeState(i,e) = homogenization_RGC_sizeState(myInstance) endif
endif homogenization_sizePostResults(i,e) = homogenization_RGC_sizePostResults(myInstance)
homogenization_sizePostResults(i,e) = homogenization_RGC_sizePostResults(myInstance) case default
case default call IO_error(500_pInt,ext_msg=homogenization_type(mesh_element(3,e))) ! unknown homogenization
call IO_error(500_pInt,ext_msg=homogenization_type(mesh_element(3,e))) ! unknown homogenization end select
end select
enddo
enddo enddo
!$OMP END PARALLEL DO enddo
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! write state size file out ! write state size file out
@ -451,8 +449,8 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt)
endif endif
endif endif
materialpoint_requested(i,e) = materialpoint_subStep(i,e) > subStepMinHomog if (materialpoint_subStep(i,e) > subStepMinHomog) then
if (materialpoint_requested(i,e)) then materialpoint_requested(i,e) = .true.
materialpoint_subF(1:3,1:3,i,e) = materialpoint_subF0(1:3,1:3,i,e) + & materialpoint_subF(1:3,1:3,i,e) = materialpoint_subF0(1:3,1:3,i,e) + &
materialpoint_subStep(i,e) * (materialpoint_F(1:3,1:3,i,e) - materialpoint_F0(1:3,1:3,i,e)) materialpoint_subStep(i,e) * (materialpoint_F(1:3,1:3,i,e) - materialpoint_F0(1:3,1:3,i,e))
materialpoint_subdt(i,e) = materialpoint_subStep(i,e) * dt materialpoint_subdt(i,e) = materialpoint_subStep(i,e) * dt