From 11e430a10346f201ce9af8bddb0f9875ccffae23 Mon Sep 17 00:00:00 2001 From: daminton Date: Wed, 7 Dec 2016 21:46:13 +0000 Subject: [PATCH] Streamlined add-to-layer --- src/util/module_util.f90 | 5 ++--- src/util/util_add_to_layer.f90 | 13 ++++++------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/util/module_util.f90 b/src/util/module_util.f90 index ac409c1d..f099304d 100644 --- a/src/util/module_util.f90 +++ b/src/util/module_util.f90 @@ -79,13 +79,12 @@ end subroutine util_init_list end interface interface - subroutine util_add_to_layer(user,surfi,fcrat,xl,yl) + subroutine util_add_to_layer(user,surfi,crater) use module_globals implicit none type(usertype),intent(in) :: user type(surftype),intent(inout) :: surfi - real(DP),intent(in) :: fcrat - real(SP),intent(in) :: xl,yl + type(cratertype),intent(in) :: crater end subroutine util_add_to_layer end interface diff --git a/src/util/util_add_to_layer.f90 b/src/util/util_add_to_layer.f90 index 2a268baf..a99dd9dd 100644 --- a/src/util/util_add_to_layer.f90 +++ b/src/util/util_add_to_layer.f90 @@ -18,7 +18,7 @@ ! Notes : ! !********************************************************************************************************************************** -subroutine util_add_to_layer(user,surfi,fcrat,xl,yl) +subroutine util_add_to_layer(user,surfi,crater) use module_globals use module_util, EXCEPT_THIS_ONE => util_add_to_layer implicit none @@ -26,8 +26,7 @@ subroutine util_add_to_layer(user,surfi,fcrat,xl,yl) ! Arguments type(usertype),intent(in) :: user type(surftype),intent(inout) :: surfi -real(DP),intent(in) :: fcrat -real(SP),intent(in) :: xl,yl +type(cratertype),intent(in) :: crater ! Internals integer(I4B) :: layer,l @@ -37,7 +36,7 @@ subroutine util_add_to_layer(user,surfi,fcrat,xl,yl) ! add to successive layers, destroying smaller craters if they exist do l=user%numlayers,1,-1 ! mark layer as available if nothing as big is now recorded there: - if ((fcrat * COOKIESIZE) > surfi%diam(l) ) then + if ((crater%fcrat * COOKIESIZE) > surfi%diam(l) ) then call util_remove_from_layer(surfi,l) layer = l end if @@ -45,9 +44,9 @@ subroutine util_add_to_layer(user,surfi,fcrat,xl,yl) ! Emplace a new crater if requested and a spot is available if (layer>0) then - surfi%diam(layer) = fcrat - surfi%xl(layer) = xl - surfi%yl(layer) = yl + surfi%diam(layer) = crater%fcrat + surfi%xl(layer) = crater%xl + surfi%yl(layer) = crater%yl else write(*,*) write(*,*) 'WARNING! No free layer to add crater pixel. Consider increasing NUMLAYERS'