diff --git a/cicecore/cicedynB/dynamics/ice_dyn_eap.F90 b/cicecore/cicedynB/dynamics/ice_dyn_eap.F90 index 677b7572b..55a95aa0d 100644 --- a/cicecore/cicedynB/dynamics/ice_dyn_eap.F90 +++ b/cicecore/cicedynB/dynamics/ice_dyn_eap.F90 @@ -78,7 +78,7 @@ subroutine eap (dt) ! Wind stress is set during this routine from the values supplied ! via NEMO (unless calc_strair is true). These values are supplied ! rotated on u grid and multiplied by aice. strairxT = 0 in this -! case so operations in evp_prep1 are pointless but carried out to +! case so operations in dyn_prep1 are pointless but carried out to ! minimise code changes. #endif @@ -91,7 +91,7 @@ subroutine eap (dt) use ice_domain, only: nblocks, blocks_ice, halo_info, maskhalo_dyn use ice_dyn_shared, only: fcor_blk, ndte, dtei, a_min, m_min, & cosw, sinw, denom1, uvel_init, vvel_init, arlx1i, & - evp_prep1, evp_prep2, stepu, evp_finish, & + dyn_prep1, dyn_prep2, stepu, dyn_finish, & basal_stress_coeff, basalstress use ice_flux, only: rdg_conv, rdg_shear, strairxT, strairyT, & strairx, strairy, uocn, vocn, ss_tltx, ss_tlty, iceumask, fm, & @@ -198,7 +198,7 @@ subroutine eap (dt) jlo = this_block%jlo jhi = this_block%jhi - call evp_prep1 (nx_block, ny_block, & + call dyn_prep1 (nx_block, ny_block, & ilo, ihi, jlo, jhi, & aice (:,:,iblk), vice (:,:,iblk), & vsno (:,:,iblk), tmask (:,:,iblk), & @@ -253,7 +253,7 @@ subroutine eap (dt) jlo = this_block%jlo jhi = this_block%jhi - call evp_prep2 (nx_block, ny_block, & + call dyn_prep2 (nx_block, ny_block, & ilo, ihi, jlo, jhi, & icellt(iblk), icellu(iblk), & indxti (:,iblk), indxtj (:,iblk), & @@ -334,7 +334,7 @@ subroutine eap (dt) call ice_timer_start(timer_bound) call ice_HaloUpdate (strength, halo_info, & field_loc_center, field_type_scalar) - ! velocities may have changed in evp_prep2 + ! velocities may have changed in dyn_prep2 call ice_HaloUpdate (fld2, halo_info, & field_loc_NEcorner, field_type_vector) call ice_timer_stop(timer_bound) @@ -362,13 +362,15 @@ subroutine eap (dt) !----------------------------------------------------------------- if (basalstress) then + !$OMP PARALLEL DO PRIVATE(iblk) do iblk = 1, nblocks call basal_stress_coeff (nx_block, ny_block, & icellu (iblk), & indxui(:,iblk), indxuj(:,iblk), & vice(:,:,iblk), aice(:,:,iblk), & hwater(:,:,iblk), Tbu(:,:,iblk)) - enddo + enddo + !$OMP END PARALLEL DO endif do ksub = 1,ndte ! subcycling @@ -495,7 +497,7 @@ subroutine eap (dt) !$OMP PARALLEL DO PRIVATE(iblk) do iblk = 1, nblocks - call evp_finish & + call dyn_finish & (nx_block, ny_block, & icellu (iblk), Cdn_ocn (:,:,iblk), & indxui (:,iblk), indxuj (:,iblk), & diff --git a/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 b/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 index 218e9feac..e20289e39 100644 --- a/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 +++ b/cicecore/cicedynB/dynamics/ice_dyn_evp.F90 @@ -39,7 +39,7 @@ module ice_dyn_evp field_type_scalar, field_type_vector use ice_constants, only: c0, c4, p027, p055, p111, p166, & p2, p222, p25, p333, p5, c1 - use ice_dyn_shared, only: stepu, evp_prep1, evp_prep2, evp_finish, & + use ice_dyn_shared, only: stepu, dyn_prep1, dyn_prep2, dyn_finish, & ndte, yield_curve, ecci, denom1, arlx1i, fcor_blk, uvel_init, & vvel_init, basal_stress_coeff, basalstress, Ktens use ice_fileunits, only: nu_diag @@ -66,7 +66,7 @@ module ice_dyn_evp ! Wind stress is set during this routine from the values supplied ! via NEMO (unless calc_strair is true). These values are supplied ! rotated on u grid and multiplied by aice. strairxT = 0 in this -! case so operations in evp_prep1 are pointless but carried out to +! case so operations in dyn_prep1 are pointless but carried out to ! minimise code changes. #endif ! @@ -190,7 +190,7 @@ subroutine evp (dt) jlo = this_block%jlo jhi = this_block%jhi - call evp_prep1 (nx_block, ny_block, & + call dyn_prep1 (nx_block, ny_block, & ilo, ihi, jlo, jhi, & aice (:,:,iblk), vice (:,:,iblk), & vsno (:,:,iblk), tmask (:,:,iblk), & @@ -244,7 +244,7 @@ subroutine evp (dt) jlo = this_block%jlo jhi = this_block%jhi - call evp_prep2 (nx_block, ny_block, & + call dyn_prep2 (nx_block, ny_block, & ilo, ihi, jlo, jhi, & icellt(iblk), icellu(iblk), & indxti (:,iblk), indxtj (:,iblk), & @@ -304,7 +304,7 @@ subroutine evp (dt) call ice_timer_start(timer_bound) call ice_HaloUpdate (strength, halo_info, & field_loc_center, field_type_scalar) - ! velocities may have changed in evp_prep2 + ! velocities may have changed in dyn_prep2 call ice_HaloUpdate (fld2, halo_info, & field_loc_NEcorner, field_type_vector) call ice_timer_stop(timer_bound) @@ -332,13 +332,15 @@ subroutine evp (dt) !----------------------------------------------------------------- if (basalstress) then + !$OMP PARALLEL DO PRIVATE(iblk) do iblk = 1, nblocks call basal_stress_coeff (nx_block, ny_block, & icellu (iblk), & indxui(:,iblk), indxuj(:,iblk), & vice(:,:,iblk), aice(:,:,iblk), & hwater(:,:,iblk), Tbu(:,:,iblk)) - enddo + enddo + !$OMP END PARALLEL DO endif do ksub = 1,ndte ! subcycling @@ -497,7 +499,7 @@ subroutine evp (dt) !$OMP PARALLEL DO PRIVATE(iblk) do iblk = 1, nblocks - call evp_finish & + call dyn_finish & (nx_block, ny_block, & icellu (iblk), Cdn_ocn (:,:,iblk), & indxui (:,iblk), indxuj (:,iblk), & @@ -662,8 +664,8 @@ subroutine stress (nx_block, ny_block, & ! Delta (in the denominator of zeta, eta) Deltane = sqrt(divune**2 + ecci*(tensionne**2 + shearne**2)) Deltanw = sqrt(divunw**2 + ecci*(tensionnw**2 + shearnw**2)) - Deltase = sqrt(divuse**2 + ecci*(tensionse**2 + shearse**2)) Deltasw = sqrt(divusw**2 + ecci*(tensionsw**2 + shearsw**2)) + Deltase = sqrt(divuse**2 + ecci*(tensionse**2 + shearse**2)) !----------------------------------------------------------------- ! on last subcycle, save quantities for mechanical redistribution diff --git a/cicecore/cicedynB/dynamics/ice_dyn_shared.F90 b/cicecore/cicedynB/dynamics/ice_dyn_shared.F90 index 6092a9e80..a52bcae7e 100644 --- a/cicecore/cicedynB/dynamics/ice_dyn_shared.F90 +++ b/cicecore/cicedynB/dynamics/ice_dyn_shared.F90 @@ -22,7 +22,7 @@ module ice_dyn_shared implicit none private public :: init_evp, set_evp_parameters, stepu, principal_stress, & - evp_prep1, evp_prep2, evp_finish, basal_stress_coeff + dyn_prep1, dyn_prep2, dyn_finish, basal_stress_coeff ! namelist parameters @@ -250,7 +250,7 @@ end subroutine set_evp_parameters ! ! author: Elizabeth C. Hunke, LANL - subroutine evp_prep1 (nx_block, ny_block, & + subroutine dyn_prep1 (nx_block, ny_block, & ilo, ihi, jlo, jhi, & aice, vice, & vsno, tmask, & @@ -353,7 +353,7 @@ subroutine evp_prep1 (nx_block, ny_block, & enddo enddo - end subroutine evp_prep1 + end subroutine dyn_prep1 !======================================================================= ! Computes quantities needed in the stress tensor (sigma) @@ -365,7 +365,7 @@ end subroutine evp_prep1 ! ! author: Elizabeth C. Hunke, LANL - subroutine evp_prep2 (nx_block, ny_block, & + subroutine dyn_prep2 (nx_block, ny_block, & ilo, ihi, jlo, jhi, & icellt, icellu, & indxti, indxtj, & @@ -604,7 +604,7 @@ subroutine evp_prep2 (nx_block, ny_block, & forcey(i,j) = strairy(i,j) + strtlty(i,j) enddo - end subroutine evp_prep2 + end subroutine dyn_prep2 !======================================================================= @@ -765,7 +765,7 @@ end subroutine stepu ! ! author: Elizabeth C. Hunke, LANL - subroutine evp_finish (nx_block, ny_block, & + subroutine dyn_finish (nx_block, ny_block, & icellu, Cw, & indxui, indxuj, & uvel, vvel, & @@ -857,7 +857,7 @@ subroutine evp_finish (nx_block, ny_block, & strocnyT(i,j) = strocny(i,j) / aiu(i,j) enddo - end subroutine evp_finish + end subroutine dyn_finish !======================================================================= ! Computes basal stress Tbu coefficients (landfast ice) diff --git a/configuration/scripts/machines/env.fram_intel b/configuration/scripts/machines/env.fram_intel index 671d7b134..5f71b21d9 100755 --- a/configuration/scripts/machines/env.fram_intel +++ b/configuration/scripts/machines/env.fram_intel @@ -6,9 +6,9 @@ setenv ICE_MACHINE_ENVNAME fram setenv ICE_MACHINE_COMPILER intel setenv ICE_MACHINE_MAKE make -setenv ICE_MACHINE_WKDIR /users/dor/armn/jfl/local1/CICE6dev/CICE/tests/CICE_RUNS +setenv ICE_MACHINE_WKDIR /home/dormrb01/zephyr4/armn/jfl/local1/Minor_modif4july2018/CICE/tests/CICE_RUNS setenv ICE_MACHINE_INPUTDATA /users/dor/armn/jfl/local1/CICE6/CICE/configuration/data/gx3Ncar -setenv ICE_MACHINE_BASELINE /users/dor/armn/jfl/local1/CICE6dev/CICE/tests/CICE_BASELINE +setenv ICE_MACHINE_BASELINE /home/dormrb01/zephyr4/armn/jfl/local1/Minor_modif4july2018/CICE/tests/CICE_BASELINE setenv ICE_MACHINE_SUBMIT "qsub" setenv ICE_MACHINE_QUEUE "default" setenv ICE_MACHINE_TPNODE 36 @@ -19,5 +19,3 @@ if (-e ~/.cice_proj) then set account_name = `head -1 ~/.cice_proj` setenv CICE_ACCT ${account_name} endif - -echo "je suis dans env" diff --git a/doc/source/science_guide/sg_coupling.rst b/doc/source/science_guide/sg_coupling.rst index 11108ed5c..7656177a5 100644 --- a/doc/source/science_guide/sg_coupling.rst +++ b/doc/source/science_guide/sg_coupling.rst @@ -393,7 +393,7 @@ source. In our case, the sea surface height :math:`H_\circ` is a prognostic variable in POP—the flux coupler can provide the surface slope directly, rather than inferring it from the currents. (The option of computing it from the currents is provided in subroutine -*evp\_prep*.) The sea ice model uses the surface layer currents +*dyn\_prep2*.) The sea ice model uses the surface layer currents :math:`\vec{U}_w` to determine the stress between the ocean and the ice, and subsequently the ice velocity :math:`\vec{u}`. This stress, relative to the ice, diff --git a/doc/source/user_guide/ug_implementation.rst b/doc/source/user_guide/ug_implementation.rst index 113794a52..6c6878cb0 100644 --- a/doc/source/user_guide/ug_implementation.rst +++ b/doc/source/user_guide/ug_implementation.rst @@ -343,7 +343,7 @@ The logical masks `tmask` and `umask` (which correspond to the real masks `hm` and `uvm`, respectively) are useful in conditional statements. In addition to the land masks, two other masks are implemented in -*evp\_prep* in order to reduce the dynamics component’s work on a global +*dyn\_prep* in order to reduce the dynamics component’s work on a global grid. At each time step the logical masks `ice\_tmask` and `ice\_umask` are determined from the current ice extent, such that they have the value “true” wherever ice exists. They also include a border of cells around