diff options
author | Peter Diener <diener@cct.lsu.edu> | 2011-11-16 18:02:14 -0600 |
---|---|---|
committer | Barry Wardell <barry.wardell@gmail.com> | 2011-12-14 19:54:57 +0000 |
commit | d5c39995e74bfca30eb0a4796e9872cc41ff1994 (patch) | |
tree | c74450caaf053a91fd6f7c345e84e9d7969783ed /Carpet/Carpet/src/LoadBalanceReal | |
parent | 04923dd0a2f573c2422d9528135923e336fd1107 (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')
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 |