From 341a0b73c8c6083facfd225ca2a1c1d4ef7d0470 Mon Sep 17 00:00:00 2001 From: David Bailey Date: Thu, 18 Nov 2021 14:26:14 -0700 Subject: [PATCH 1/5] Fix some variables initialization on CD variables. --- cicecore/cicedynB/dynamics/ice_dyn_evp.F90 | 2 +- cicecore/cicedynB/general/ice_flux.F90 | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 b/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 index 5f237d9f0..0d974e961 100644 --- a/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 +++ b/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 @@ -266,7 +266,7 @@ subroutine evp (dt) call grid_average_X2Y('T2EF',tmass,emass) call grid_average_X2Y('T2EF',aice_init, aie) call grid_average_X2Y('T2NF',tmass,nmass) - call grid_average_X2Y('T2NF',aice_init, aie) + call grid_average_X2Y('T2NF',aice_init, ain) endif !---------------------------------------------------------------- ! Set wind stress to values supplied via NEMO or other forcing diff --git a/cicecore/cicedynB/general/ice_flux.F90 b/cicecore/cicedynB/general/ice_flux.F90 index e17faab6a..5c40e459e 100644 --- a/cicecore/cicedynB/general/ice_flux.F90 +++ b/cicecore/cicedynB/general/ice_flux.F90 @@ -738,11 +738,19 @@ subroutine init_coupler_flux ! fluxes received from ocean !----------------------------------------------------------------- - ss_tltx(:,:,:)= c0 ! sea surface tilt (m/m) - ss_tlty(:,:,:)= c0 - uocn (:,:,:) = c0 ! surface ocean currents (m/s) - vocn (:,:,:) = c0 - frzmlt(:,:,:) = c0 ! freezing/melting potential (W/m^2) + ss_tltx(:,:,:) = c0 ! sea surface tilt (m/m) + ss_tlty(:,:,:) = c0 + uocn (:,:,:) = c0 ! surface ocean currents (m/s) + vocn (:,:,:) = c0 + ss_tltxN(:,:,:)= c0 ! sea surface tilt (m/m) + ss_tltyN(:,:,:)= c0 + uocnN (:,:,:) = c0 ! surface ocean currents (m/s) + vocnN (:,:,:) = c0 + frzmlt (:,:,:) = c0 ! freezing/melting potential (W/m^2) + ss_tltxE(:,:,:)= c0 ! sea surface tilt (m/m) + ss_tltyE(:,:,:)= c0 + uocnE (:,:,:) = c0 ! surface ocean currents (m/s) + vocnE (:,:,:) = c0 frzmlt_init(:,:,:) = c0 ! freezing/melting potential (W/m^2) sss (:,:,:) = 34.0_dbl_kind ! sea surface salinity (ppt) From 446ee0ba29f17ba5580de24e24f0e5ec27e68505 Mon Sep 17 00:00:00 2001 From: David Bailey Date: Thu, 18 Nov 2021 14:38:58 -0700 Subject: [PATCH 2/5] Combine iblk loops --- cicecore/cicedynB/dynamics/ice_dyn_evp.F90 | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 b/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 index 0d974e961..779e84452 100644 --- a/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 +++ b/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 @@ -420,22 +420,10 @@ subroutine evp (dt) uvelN (:,:,iblk), vvelN (:,:,iblk), & TbN (:,:,iblk)) - enddo ! iblk - !$TCXOMP END PARALLEL DO - - !$TCXOMP PARALLEL DO PRIVATE(iblk,ilo,ihi,jlo,jhi,this_block) - do iblk = 1, nblocks - !----------------------------------------------------------------- ! more preparation for dynamics on E grid !----------------------------------------------------------------- - this_block = get_block(blocks_ice(iblk),iblk) - ilo = this_block%ilo - ihi = this_block%ihi - jlo = this_block%jlo - jhi = this_block%jhi - call dyn_prep2 (nx_block, ny_block, & ilo, ihi, jlo, jhi, & icellt(iblk), icelle(iblk), & From c682189e8f0a8975099fe978499981dbf13dc547 Mon Sep 17 00:00:00 2001 From: David Bailey Date: Thu, 18 Nov 2021 14:47:25 -0700 Subject: [PATCH 3/5] Fix some arrangement and alignment --- cicecore/cicedynB/general/ice_flux.F90 | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/cicecore/cicedynB/general/ice_flux.F90 b/cicecore/cicedynB/general/ice_flux.F90 index 5c40e459e..a35e722a1 100644 --- a/cicecore/cicedynB/general/ice_flux.F90 +++ b/cicecore/cicedynB/general/ice_flux.F90 @@ -738,19 +738,19 @@ subroutine init_coupler_flux ! fluxes received from ocean !----------------------------------------------------------------- - ss_tltx(:,:,:) = c0 ! sea surface tilt (m/m) - ss_tlty(:,:,:) = c0 - uocn (:,:,:) = c0 ! surface ocean currents (m/s) - vocn (:,:,:) = c0 - ss_tltxN(:,:,:)= c0 ! sea surface tilt (m/m) - ss_tltyN(:,:,:)= c0 - uocnN (:,:,:) = c0 ! surface ocean currents (m/s) - vocnN (:,:,:) = c0 - frzmlt (:,:,:) = c0 ! freezing/melting potential (W/m^2) - ss_tltxE(:,:,:)= c0 ! sea surface tilt (m/m) - ss_tltyE(:,:,:)= c0 - uocnE (:,:,:) = c0 ! surface ocean currents (m/s) - vocnE (:,:,:) = c0 + ss_tltx (:,:,:) = c0 ! sea surface tilt (m/m) + ss_tlty (:,:,:) = c0 + ss_tltxN(:,:,:) = c0 ! sea surface tilt (m/m) + ss_tltyN(:,:,:) = c0 + ss_tltxE(:,:,:) = c0 ! sea surface tilt (m/m) + ss_tltyE(:,:,:) = c0 + uocn (:,:,:) = c0 ! surface ocean currents (m/s) + vocn (:,:,:) = c0 + uocnN (:,:,:) = c0 ! surface ocean currents (m/s) + vocnN (:,:,:) = c0 + uocnE (:,:,:) = c0 ! surface ocean currents (m/s) + vocnE (:,:,:) = c0 + frzml t (:,:,:) = c0 ! freezing/melting potential (W/m^2) frzmlt_init(:,:,:) = c0 ! freezing/melting potential (W/m^2) sss (:,:,:) = 34.0_dbl_kind ! sea surface salinity (ppt) From 42829fbac1ad2c0440b569c46d2600763090f4b0 Mon Sep 17 00:00:00 2001 From: David Bailey Date: Thu, 18 Nov 2021 14:56:11 -0700 Subject: [PATCH 4/5] Need to add grid_system --- cicecore/cicedynB/general/ice_flux.F90 | 27 ++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/cicecore/cicedynB/general/ice_flux.F90 b/cicecore/cicedynB/general/ice_flux.F90 index a35e722a1..c593d91b1 100644 --- a/cicecore/cicedynB/general/ice_flux.F90 +++ b/cicecore/cicedynB/general/ice_flux.F90 @@ -641,7 +641,7 @@ subroutine init_coupler_flux use ice_flux_bgc, only: flux_bio_atm, flux_bio, faero_atm, fiso_atm, & fnit, famm, fsil, fdmsp, fdms, fhum, fdust, falgalN, & fdoc, fdon, fdic, ffed, ffep - use ice_grid, only: bathymetry + use ice_grid, only: bathymetry, grid_system integer (kind=int_kind) :: n @@ -740,19 +740,22 @@ subroutine init_coupler_flux ss_tltx (:,:,:) = c0 ! sea surface tilt (m/m) ss_tlty (:,:,:) = c0 - ss_tltxN(:,:,:) = c0 ! sea surface tilt (m/m) - ss_tltyN(:,:,:) = c0 - ss_tltxE(:,:,:) = c0 ! sea surface tilt (m/m) - ss_tltyE(:,:,:) = c0 uocn (:,:,:) = c0 ! surface ocean currents (m/s) vocn (:,:,:) = c0 - uocnN (:,:,:) = c0 ! surface ocean currents (m/s) - vocnN (:,:,:) = c0 - uocnE (:,:,:) = c0 ! surface ocean currents (m/s) - vocnE (:,:,:) = c0 - frzml t (:,:,:) = c0 ! freezing/melting potential (W/m^2) - frzmlt_init(:,:,:) = c0 ! freezing/melting potential (W/m^2) - sss (:,:,:) = 34.0_dbl_kind ! sea surface salinity (ppt) + frzmlt (:,:,:) = c0 ! freezing/melting potential (W/m^2) + frzmlt_init(:,:,:) = c0 ! freezing/melting potential (W/m^2) + sss (:,:,:) = 34.0_dbl_kind ! sea surface salinity (ppt) + + if (grid_system == 'CD') then + ss_tltxN(:,:,:) = c0 ! sea surface tilt (m/m) + ss_tltyN(:,:,:) = c0 + ss_tltxE(:,:,:) = c0 ! sea surface tilt (m/m) + ss_tltyE(:,:,:) = c0 + uocnN (:,:,:) = c0 ! surface ocean currents (m/s) + vocnN (:,:,:) = c0 + uocnE (:,:,:) = c0 ! surface ocean currents (m/s) + vocnE (:,:,:) = c0 + endif do iblk = 1, size(Tf,3) do j = 1, size(Tf,2) From 6057724312df00d1e826615a75526d1e0fc5d90d Mon Sep 17 00:00:00 2001 From: David Bailey Date: Thu, 18 Nov 2021 15:33:29 -0700 Subject: [PATCH 5/5] add wtmp to OMP PRIVATE --- cicecore/cicedynB/infrastructure/ice_grid.F90 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/cicecore/cicedynB/infrastructure/ice_grid.F90 b/cicecore/cicedynB/infrastructure/ice_grid.F90 index 6a3cf1171..c73b9cb79 100644 --- a/cicecore/cicedynB/infrastructure/ice_grid.F90 +++ b/cicecore/cicedynB/infrastructure/ice_grid.F90 @@ -2437,7 +2437,7 @@ subroutine grid_average_X2YS(dir,work1,area1,mask1,work2) select case (trim(dir)) case('NE') - !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block) + !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block,wtmp) do iblk = 1, nblocks this_block = get_block(blocks_ice(iblk),iblk) ilo = this_block%ilo @@ -2462,7 +2462,7 @@ subroutine grid_average_X2YS(dir,work1,area1,mask1,work2) !$OMP END PARALLEL DO case('SW') - !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block) + !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block,wtmp) do iblk = 1, nblocks this_block = get_block(blocks_ice(iblk),iblk) ilo = this_block%ilo @@ -2487,7 +2487,7 @@ subroutine grid_average_X2YS(dir,work1,area1,mask1,work2) !$OMP END PARALLEL DO case('NW') - !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block) + !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block,wtmp) do iblk = 1, nblocks this_block = get_block(blocks_ice(iblk),iblk) ilo = this_block%ilo @@ -2512,7 +2512,7 @@ subroutine grid_average_X2YS(dir,work1,area1,mask1,work2) !$OMP END PARALLEL DO case('SE') - !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block) + !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block,wtmp) do iblk = 1, nblocks this_block = get_block(blocks_ice(iblk),iblk) ilo = this_block%ilo @@ -2537,7 +2537,7 @@ subroutine grid_average_X2YS(dir,work1,area1,mask1,work2) !$OMP END PARALLEL DO case('E') - !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block) + !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block,wtmp) do iblk = 1, nblocks this_block = get_block(blocks_ice(iblk),iblk) ilo = this_block%ilo @@ -2558,7 +2558,7 @@ subroutine grid_average_X2YS(dir,work1,area1,mask1,work2) !$OMP END PARALLEL DO case('W') - !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block) + !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block,wtmp) do iblk = 1, nblocks this_block = get_block(blocks_ice(iblk),iblk) ilo = this_block%ilo @@ -2579,7 +2579,7 @@ subroutine grid_average_X2YS(dir,work1,area1,mask1,work2) !$OMP END PARALLEL DO case('N') - !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block) + !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block,wtmp) do iblk = 1, nblocks this_block = get_block(blocks_ice(iblk),iblk) ilo = this_block%ilo @@ -2600,7 +2600,7 @@ subroutine grid_average_X2YS(dir,work1,area1,mask1,work2) !$OMP END PARALLEL DO case('S') - !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block) + !$OMP PARALLEL DO PRIVATE(iblk,i,j,ilo,ihi,jlo,jhi,this_block,wtmp) do iblk = 1, nblocks this_block = get_block(blocks_ice(iblk),iblk) ilo = this_block%ilo