New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 10345 for NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/icevar.F90 – NEMO

Ignore:
Timestamp:
2018-11-21T11:25:53+01:00 (5 years ago)
Author:
smasson
Message:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: merge with trunk@10344, see #2133

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/ICE/icevar.F90

    r10069 r10345  
    4949   !!   ice_var_bv        : brine volume 
    5050   !!   ice_var_enthalpy  : compute ice and snow enthalpies from temperature 
     51   !!   ice_var_sshdyn    : compute equivalent ssh in lead 
    5152   !!---------------------------------------------------------------------- 
    5253   USE dom_oce        ! ocean space and time domain 
    5354   USE phycst         ! physical constants (ocean directory)  
    54    USE sbc_oce , ONLY : sss_m 
     55   USE sbc_oce , ONLY : sss_m, ln_ice_embd, nn_fsbc 
    5556   USE ice            ! sea-ice: variables 
    5657   USE ice1D          ! sea-ice: thermodynamics variables 
     
    7475   PUBLIC   ice_var_bv            
    7576   PUBLIC   ice_var_enthalpy            
     77   PUBLIC   ice_var_sshdyn 
    7678 
    7779   !!---------------------------------------------------------------------- 
     
    949951   END SUBROUTINE ice_var_enthalpy 
    950952 
     953   FUNCTION ice_var_sshdyn(pssh, psnwice_mass, psnwice_mass_b) 
     954      !!--------------------------------------------------------------------- 
     955      !!                   ***  ROUTINE rhg_evp_rst  *** 
     956      !!                      
     957      !! ** Purpose :  compute the equivalent ssh in lead when sea ice is embedded 
     958      !! 
     959      !! ** Method  :  ssh_lead = ssh + (Mice + Msnow) / rau0 
     960      !! 
     961      !! ** Reference : Jean-Michel Campin, John Marshall, David Ferreira, 
     962      !!                Sea ice-ocean coupling using a rescaled vertical coordinate z*,  
     963      !!                Ocean Modelling, Volume 24, Issues 1-2, 2008 
     964      !! 
     965      !!---------------------------------------------------------------------- 
     966      ! 
     967      ! input 
     968      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: pssh            !: ssh [m] 
     969      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: psnwice_mass    !: mass of snow and ice at current  ice time step [Kg/m2] 
     970      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: psnwice_mass_b  !: mass of snow and ice at previous ice time step [Kg/m2] 
     971      ! 
     972      ! output 
     973      REAL(wp), DIMENSION(jpi,jpj) :: ice_var_sshdyn  ! equivalent ssh in lead [m] 
     974      ! 
     975      ! temporary 
     976      REAL(wp) :: zintn, zintb                     ! time interpolation weights [] 
     977      REAL(wp), DIMENSION(jpi,jpj) :: zsnwiceload  ! snow and ice load [m] 
     978      ! 
     979      ! compute ice load used to define the equivalent ssh in lead 
     980      IF( ln_ice_embd ) THEN 
     981         !                                             
     982         ! average interpolation coeff as used in dynspg = (1/nn_fsbc)   * {SUM[n/nn_fsbc], n=0,nn_fsbc-1} 
     983         !                                               = (1/nn_fsbc)^2 * {SUM[n]        , n=0,nn_fsbc-1} 
     984         zintn = REAL( nn_fsbc - 1 ) / REAL( nn_fsbc ) * 0.5_wp 
     985         ! 
     986         ! average interpolation coeff as used in dynspg = (1/nn_fsbc)   *    {SUM[1-n/nn_fsbc], n=0,nn_fsbc-1} 
     987         !                                               = (1/nn_fsbc)^2 * (nn_fsbc^2 - {SUM[n], n=0,nn_fsbc-1}) 
     988         zintb = REAL( nn_fsbc + 1 ) / REAL( nn_fsbc ) * 0.5_wp 
     989         ! 
     990         zsnwiceload(:,:) = ( zintn * psnwice_mass(:,:) + zintb * psnwice_mass_b(:,:) ) * r1_rau0 
     991         ! 
     992      ELSE 
     993         zsnwiceload(:,:) = 0.0_wp 
     994      ENDIF 
     995      ! compute equivalent ssh in lead 
     996      ice_var_sshdyn(:,:) = pssh(:,:) + zsnwiceload(:,:) 
     997      ! 
     998   END FUNCTION ice_var_sshdyn 
     999 
     1000 
    9511001#else 
    9521002   !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.