Skip to content

Commit

Permalink
Refactored evp sub cycling loop (CICE-Consortium#756)
Browse files Browse the repository at this point in the history
* Refactored evp sub cycling loop

* corrected indent and case for dyn_haloUptdate
  • Loading branch information
TillRasmussen authored Aug 24, 2022
1 parent 2d0b213 commit 588a86f
Showing 1 changed file with 43 additions and 23 deletions.
66 changes: 43 additions & 23 deletions cicecore/cicedynB/dynamics/ice_dyn_evp.F90
Original file line number Diff line number Diff line change
Expand Up @@ -745,9 +745,10 @@ subroutine evp (dt)
else ! evp_algorithm == standard_2d (Standard CICE)

call ice_timer_start(timer_evp_2d)
do ksub = 1,ndte ! subcycling

if (grid_ice == "B") then
if (grid_ice == "B") then

do ksub = 1,ndte ! subcycling

!$OMP PARALLEL DO PRIVATE(iblk,strtmp) SCHEDULE(runtime)
do iblk = 1, nblocks
Expand Down Expand Up @@ -810,7 +811,17 @@ subroutine evp (dt)
enddo ! iblk
!$OMP END PARALLEL DO

elseif (grid_ice == "C") then
! U fields at NE corner
! calls ice_haloUpdate, controls bundles and masks
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_NEcorner, field_type_vector, &
uvel, vvel)

enddo ! sub cycling

elseif (grid_ice == "C") then

do ksub = 1,ndte ! subcycling

!$OMP PARALLEL DO PRIVATE(iblk)
do iblk = 1, nblocks
Expand All @@ -837,7 +848,7 @@ subroutine evp (dt)
!$OMP END PARALLEL DO

! calls ice_haloUpdate, controls bundles and masks
call dyn_HaloUpdate (halo_info, halo_info_mask, &
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_NEcorner, field_type_scalar, &
shearU)

Expand Down Expand Up @@ -877,7 +888,7 @@ subroutine evp (dt)
!$OMP END PARALLEL DO

! calls ice_haloUpdate, controls bundles and masks
call dyn_HaloUpdate (halo_info, halo_info_mask, &
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_center, field_type_scalar, &
zetax2T, etax2T, stresspT, stressmT)

Expand All @@ -900,7 +911,7 @@ subroutine evp (dt)
!$OMP END PARALLEL DO

! calls ice_haloUpdate, controls bundles and masks
call dyn_HaloUpdate (halo_info , halo_info_mask, &
call dyn_haloUpdate (halo_info , halo_info_mask, &
field_loc_NEcorner, field_type_scalar, &
stress12U)

Expand Down Expand Up @@ -958,10 +969,10 @@ subroutine evp (dt)
!$OMP END PARALLEL DO

! calls ice_haloUpdate, controls bundles and masks
call dyn_HaloUpdate (halo_info, halo_info_mask, &
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_Eface, field_type_vector, &
uvelE)
call dyn_HaloUpdate (halo_info, halo_info_mask, &
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_Nface, field_type_vector, &
vvelN)

Expand All @@ -971,10 +982,10 @@ subroutine evp (dt)
vvelE(:,:,:) = vvelE(:,:,:)*epm(:,:,:)

! calls ice_haloUpdate, controls bundles and masks
call dyn_HaloUpdate (halo_info, halo_info_mask, &
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_Nface, field_type_vector, &
uvelN)
call dyn_HaloUpdate (halo_info, halo_info_mask, &
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_Eface, field_type_vector, &
vvelE)

Expand All @@ -983,8 +994,17 @@ subroutine evp (dt)

uvel(:,:,:) = uvel(:,:,:)*uvm(:,:,:)
vvel(:,:,:) = vvel(:,:,:)*uvm(:,:,:)
! U fields at NE corner
! calls ice_haloUpdate, controls bundles and masks
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_NEcorner, field_type_vector, &
uvel, vvel)

enddo ! subcycling

elseif (grid_ice == "CD") then
elseif (grid_ice == "CD") then

do ksub = 1,ndte ! subcycling

!$OMP PARALLEL DO PRIVATE(iblk)
do iblk = 1, nblocks
Expand Down Expand Up @@ -1020,7 +1040,7 @@ subroutine evp (dt)
!$OMP END PARALLEL DO

! calls ice_haloUpdate, controls bundles and masks
call dyn_HaloUpdate (halo_info, halo_info_mask, &
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_center, field_type_scalar, &
zetax2T, etax2T)

Expand Down Expand Up @@ -1065,10 +1085,10 @@ subroutine evp (dt)
!$OMP END PARALLEL DO

! calls ice_haloUpdate, controls bundles and masks
call dyn_HaloUpdate (halo_info, halo_info_mask, &
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_center, field_type_scalar, &
stresspT, stressmT, stress12T)
call dyn_HaloUpdate (halo_info, halo_info_mask, &
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_NEcorner,field_type_scalar, &
stresspU, stressmU, stress12U)

Expand Down Expand Up @@ -1148,10 +1168,10 @@ subroutine evp (dt)
!$OMP END PARALLEL DO

! calls ice_haloUpdate, controls bundles and masks
call dyn_HaloUpdate (halo_info, halo_info_mask, &
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_Eface, field_type_vector, &
uvelE, vvelE)
call dyn_HaloUpdate (halo_info, halo_info_mask, &
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_Nface, field_type_vector, &
uvelN, vvelN)

Expand All @@ -1160,16 +1180,16 @@ subroutine evp (dt)

uvel(:,:,:) = uvel(:,:,:)*uvm(:,:,:)
vvel(:,:,:) = vvel(:,:,:)*uvm(:,:,:)
! U fields at NE corner
! calls ice_haloUpdate, controls bundles and masks
call dyn_haloUpdate (halo_info, halo_info_mask, &
field_loc_NEcorner, field_type_vector, &
uvel, vvel)

endif ! grid_ice
enddo ! subcycling

! U fields at NE corner
! calls ice_haloUpdate, controls bundles and masks
call dyn_HaloUpdate (halo_info, halo_info_mask, &
field_loc_NEcorner, field_type_vector, &
uvel, vvel)
endif ! grid_ice

enddo ! subcycling
call ice_timer_stop(timer_evp_2d)
endif ! evp_algorithm

Expand Down

0 comments on commit 588a86f

Please sign in to comment.