aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet/src/LoadBalanceReal
diff options
context:
space:
mode:
authorPeter Diener <diener@cct.lsu.edu>2011-11-16 18:02:14 -0600
committerBarry Wardell <barry.wardell@gmail.com>2011-12-14 19:54:57 +0000
commitd5c39995e74bfca30eb0a4796e9872cc41ff1994 (patch)
treec74450caaf053a91fd6f7c345e84e9d7969783ed /Carpet/Carpet/src/LoadBalanceReal
parent04923dd0a2f573c2422d9528135923e336fd1107 (diff)
Remove intent attribute when declaring pointer arguments in order to allow
compilation with fortran 4.1.2 that doesn't support Fortran 2003. Also remove allocatable attributes when using intent(in).
Diffstat (limited to 'Carpet/Carpet/src/LoadBalanceReal')
-rw-r--r--Carpet/Carpet/src/LoadBalanceReal/carpet_boxtypes.f9030
-rw-r--r--Carpet/Carpet/src/LoadBalanceReal/carpet_region.f9025
-rw-r--r--Carpet/Carpet/src/LoadBalanceReal/splitregions_recursively.F904
3 files changed, 42 insertions, 17 deletions
diff --git a/Carpet/Carpet/src/LoadBalanceReal/carpet_boxtypes.f90 b/Carpet/Carpet/src/LoadBalanceReal/carpet_boxtypes.f90
index a55b4d632..b6dc18f85 100644
--- a/Carpet/Carpet/src/LoadBalanceReal/carpet_boxtypes.f90
+++ b/Carpet/Carpet/src/LoadBalanceReal/carpet_boxtypes.f90
@@ -133,7 +133,9 @@ module carpet_boxtypes
! zones (communication). Ghost zones are added with a multiplication factor
! of alpha.
subroutine calc_imbalance ( sregion, imbalance )
- type(superregion2), pointer, intent(in) :: sregion
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(in) :: sregion
+ type(superregion2), pointer :: sregion
real(wp), intent(out) :: imbalance
integer, dimension(3) :: cost
real(wp) :: maxcost, maxgcost, n
@@ -161,7 +163,9 @@ module carpet_boxtypes
! Routine to traverse the tree and accumulate the cost of the leaves.
recursive subroutine traverse_tree ( sreg )
- type(superregion2), pointer, intent(in) :: sreg
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(in) :: sreg
+ type(superregion2), pointer :: sreg
integer :: ich, nch, tcost, gcost
! If the region has children recursively traverse the children.
@@ -194,8 +198,10 @@ module carpet_boxtypes
! Assign processor numbers to the leaves in a tree starting from start_proc.
subroutine AssignProcs ( minproc, maxproc, frac1, frac2, sregion )
integer, intent(in) :: minproc, maxproc
- real(wp), intent(in) :: frac1, frac2
- type(superregion2), pointer, intent(inout) :: sregion
+ real(wp ), intent(in) :: frac1, frac2
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(inout) :: sregion
+ type(superregion2), pointer :: sregion
! Initialize.
if ( frac1 == 0 ) then
@@ -211,7 +217,9 @@ module carpet_boxtypes
! Routine to traverse the tree and assign processor ids to the leaves.
recursive subroutine traverse_treep ( sreg )
- type(superregion2), pointer, intent(inout) :: sreg
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(inout) :: sreg
+ type(superregion2), pointer :: sreg
integer :: ich, nch, maxcost, np
integer, dimension(3) :: cost
integer, dimension(1) :: mydim
@@ -258,8 +266,8 @@ module carpet_boxtypes
! in the pre-allocated array of length nprocs. The array should be
! initialized to zero.
subroutine calc_proc_load ( sregions, proc_load )
- type(ptr), dimension(:), allocatable, intent(in) :: sregions
- integer, dimension(:), allocatable, intent(inout) :: proc_load
+ type(ptr), dimension(:), intent(in) :: sregions
+ integer, dimension(:), intent(inout) :: proc_load
integer :: i
! For each of the super regions in the array.
@@ -274,7 +282,9 @@ module carpet_boxtypes
! Routine to traverse the tree and add the load of each leaf to the
! assigned processor.
recursive subroutine traverse_treel ( sreg )
- type(superregion2), pointer, intent(in) :: sreg
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(in) :: sreg
+ type(superregion2), pointer :: sreg
integer, dimension(3) :: cost
integer :: ich, nch
@@ -313,7 +323,9 @@ module carpet_boxtypes
real(wp), intent(in) :: nprocs, fract
integer, intent(in) :: maxchoices, maxfactor
integer, intent(inout) :: clevel
- type(superregion2), pointer, intent(inout) :: newreg
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(inout) :: newreg
+ type(superregion2), pointer :: newreg
integer, intent(inout) :: ncount
type(bbox) :: reg
integer, dimension(3) :: cost
diff --git a/Carpet/Carpet/src/LoadBalanceReal/carpet_region.f90 b/Carpet/Carpet/src/LoadBalanceReal/carpet_region.f90
index d5cb6bdf9..e76075e19 100644
--- a/Carpet/Carpet/src/LoadBalanceReal/carpet_region.f90
+++ b/Carpet/Carpet/src/LoadBalanceReal/carpet_region.f90
@@ -56,7 +56,9 @@ module carpet_region
type(bbox), intent(in) :: box
type(boundary), intent(in) :: outerbound
integer, intent(in) :: map
- type(superregion2), pointer, intent(out) :: sregion
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(out) :: sregion
+ type(superregion2), pointer :: sregion
! gfortran dies with an internal compiler error on this initialization.
! type(superregion2), pointer, intent(out) :: sregion => null()
@@ -77,7 +79,8 @@ module carpet_region
! The use of intent(in) on the sregion just ensures that sregion itself
! is not modified. Its childrens pointer can be nullified.
subroutine disassociate ( sregion )
- ! type(superregion2), pointer, intent(in) :: sregion
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(in) :: sregion
type(superregion2), pointer :: sregion
integer :: n, i
@@ -94,8 +97,11 @@ module carpet_region
! Routine to assign the pointers of the children of sregion1 to the same
! super regions as sregion2.
subroutine point_to_children ( sregion1, sregion2 )
- type(superregion2), pointer, intent(inout) :: sregion1
- type(superregion2), pointer, intent(in) :: sregion2
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(inout) :: sregion1
+! type(superregion2), pointer, intent(in) :: sregion2
+ type(superregion2), pointer :: sregion1
+ type(superregion2), pointer :: sregion2
integer :: n1, n2, i
! Only do something if sregion2 actually has children.
@@ -126,7 +132,9 @@ module carpet_region
! Routine to recursively deallocate memory for a super region.
recursive subroutine destroy_sregion ( sregion )
- type(superregion2), pointer, intent(inout) :: sregion
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(inout) :: sregion
+ type(superregion2), pointer :: sregion
integer :: n, i
! If the super region has children.
@@ -159,7 +167,9 @@ module carpet_region
! Routine to recursively print all information about a super region tree
! structure to stdout.
recursive subroutine print_tree ( sregion )
- type(superregion2), pointer, intent(in) :: sregion
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(in) :: sregion
+ type(superregion2), pointer :: sregion
integer :: n, i
! Only do something if the super region pointer is associated with a
@@ -201,7 +211,8 @@ module carpet_region
! the largest element smaller than the size of the super region in direction
! dir. There is currently no check that this is indeed the case.
subroutine split_sregion ( sregion, dir, frac )
- ! type(superregion2), pointer, intent(in) :: sregion
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(in) :: sregion
type(superregion2), pointer :: sregion
integer, intent(in) :: dir
integer, dimension(:), intent(in) :: frac
diff --git a/Carpet/Carpet/src/LoadBalanceReal/splitregions_recursively.F90 b/Carpet/Carpet/src/LoadBalanceReal/splitregions_recursively.F90
index 7c427f724..9162cd59b 100644
--- a/Carpet/Carpet/src/LoadBalanceReal/splitregions_recursively.F90
+++ b/Carpet/Carpet/src/LoadBalanceReal/splitregions_recursively.F90
@@ -106,7 +106,9 @@ subroutine splitregions_recursively ( &
contains
recursive subroutine insert_region (sreg, cxx_tree, cxx_regs)
- type(superregion2), pointer, intent(in) :: sreg
+! The intent has been removed to make it compile with gfortran 4.1.
+! type(superregion2), pointer, intent(in) :: sreg
+ type(superregion2), pointer :: sreg
CCTK_POINTER, intent(in) :: cxx_regs
CCTK_POINTER, intent(out) :: cxx_tree