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 14003 for NEMO/branches/2020/SI3_vp_rheology – NEMO

Ignore:
Timestamp:
2020-12-02T15:12:08+01:00 (3 years ago)
Author:
clem
Message:

update to trunk

Location:
NEMO/branches/2020/SI3_vp_rheology
Files:
8 edited
2 copied

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/SI3_vp_rheology/cfgs/SHARED/field_def_nemo-ice.xml

    r13610 r14003  
    7777          <field id="sig1_pnorm"   long_name="P-normalized 1st principal stress component"                                                                       unit=""     /> 
    7878          <field id="sig2_pnorm"   long_name="P-normalized 2nd principal stress component"                                                                       unit=""     /> 
     79          <field id="icedlt"       long_name="delta"                                                   standard_name="delta"                                     unit=""     /> 
    7980          <field id="normstr"      long_name="Average normal stress in sea ice"                        standard_name="average_normal_stress"                     unit="N/m"  /> 
    8081          <field id="sheastr"      long_name="Maximum shear stress in sea ice"                         standard_name="maximum_shear_stress"                      unit="N/m"  /> 
     
    8283          <field id="icediv"       long_name="Divergence of the sea-ice velocity field"                standard_name="divergence_of_sea_ice_velocity"            unit="s-1"  /> 
    8384          <field id="iceshe"       long_name="Maximum shear of sea-ice velocity field"                 standard_name="maximum_shear_of_sea_ice_velocity"         unit="s-1"  /> 
     85          <field id="aniso"        long_name="anisotropy of sea ice floe orientation (0.5 - 1)"        standard_name="anisotropy"                                unit=""     /> 
     86          <field id="yield11"      long_name="yield surface tensor component 11"                       standard_name="yield11"                                   unit="N/m"  /> 
     87          <field id="yield22"      long_name="yield surface tensor component 22"                       standard_name="yield22"                                   unit="N/m"  /> 
     88          <field id="yield12"      long_name="yield surface tensor component 12"                       standard_name="yield12"                                   unit="N/m"  /> 
    8489          <field id="beta_evp"     long_name="Relaxation parameter of ice rheology (beta)"             standard_name="relaxation_parameter_of_ice_rheology"      unit=""  />    
    8590  
     
    405410     <field field_ref="sig1_pnorm"       name="sig1_pnorm"/> 
    406411     <field field_ref="sig2_pnorm"       name="sig2_pnorm"/> 
     412     <field field_ref="icedlt"           name="sidelta" /> 
    407413      
    408414     <!-- heat fluxes --> 
  • NEMO/branches/2020/SI3_vp_rheology/cfgs/SHARED/namelist_ice_ref

    r13969 r14003  
    9292!------------------------------------------------------------------------------ 
    9393   ln_rhg_EVP       = .true.          !  EVP rheology 
     94   ln_rhg_EAP       = .false.         !  EAP rheology 
    9495      ln_aEVP       = .true.          !     adaptive rheology (Kimmritz et al. 2016 & 2017) 
    9596      rn_creepl     =   2.0e-9        !     creep limit [1/s] 
  • NEMO/branches/2020/SI3_vp_rheology/doc/namelists/namdyn_rhg

    r13472 r14003  
    33!------------------------------------------------------------------------------ 
    44   ln_rhg_EVP       = .true.          !  EVP rheology 
     5   ln_rhg_EAP       = .false.          !  EAP rheology 
    56      ln_aEVP       = .false.         !     adaptive rheology (Kimmritz et al. 2016 & 2017) 
    67      rn_creepl     =   2.0e-9        !     creep limit [1/s] 
  • NEMO/branches/2020/SI3_vp_rheology/src/ICE/ice.F90

    r13969 r14003  
    151151   !                                     !!** ice-rheology namelist (namdyn_rhg) ** 
    152152   ! -- evp 
     153   LOGICAL , PUBLIC ::   ln_rhg_EVP       ! EVP rheology switch, used for rdgrft and rheology 
     154   LOGICAL , PUBLIC ::   ln_rhg_EAP       ! EAP rheology switch, used for rdgrft and rheology 
    153155   LOGICAL , PUBLIC ::   ln_aEVP          !: using adaptive EVP (T or F)  
    154156   REAL(wp), PUBLIC ::   rn_creepl        !: creep limit (has to be low enough, circa 10-9 m/s, depending on rheology) 
     
    158160   INTEGER , PUBLIC ::   nn_rhg_chkcvg    !: check ice rheology convergence  
    159161   ! -- vp 
     162   LOGICAL , PUBLIC ::   ln_rhg_VP        !: VP rheology 
    160163   INTEGER , PUBLIC ::   nn_vp_nout       !: Number of outer iterations 
    161164   INTEGER , PUBLIC ::   nn_vp_ninn       !: Number of inner iterations (linear system solver) 
     
    251254   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   divu_i          !: Divergence of the velocity field             [s-1] 
    252255   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   shear_i         !: Shear of the velocity field                  [s-1] 
     256   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   aniso_11, aniso_12   !: structure tensor elements 
     257   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   rdg_conv 
    253258   ! 
    254259   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   t_bo            !: Sea-Ice bottom temperature [Kelvin]      
     
    441446      ALLOCATE( u_oce    (jpi,jpj) , v_oce    (jpi,jpj) , ht_i_new  (jpi,jpj) , strength(jpi,jpj) ,  & 
    442447         &      stress1_i(jpi,jpj) , stress2_i(jpi,jpj) , stress12_i(jpi,jpj) ,                      & 
    443          &      delta_i  (jpi,jpj) , divu_i   (jpi,jpj) , shear_i   (jpi,jpj) , STAT=ierr(ii) ) 
     448         &      delta_i  (jpi,jpj) , divu_i   (jpi,jpj) , shear_i   (jpi,jpj) ,                      & 
     449         &      aniso_11 (jpi,jpj) , aniso_12 (jpi,jpj) , rdg_conv  (jpi,jpj) , STAT=ierr(ii) ) 
    444450 
    445451      ii = ii + 1 
  • NEMO/branches/2020/SI3_vp_rheology/src/ICE/icedyn_rdgrft.F90

    r13618 r14003  
    140140      INTEGER , DIMENSION(jpij) ::   iptidx        ! compute ridge/raft or not 
    141141      REAL(wp), DIMENSION(jpij) ::   zdivu, zdelt  ! 1D divu_i & delta_i 
     142      REAL(wp), DIMENSION(jpij) ::   zconv         ! 1D rdg_conv (if EAP rheology) 
    142143      ! 
    143144      INTEGER, PARAMETER ::   jp_itermax = 20     
     
    175176         ! just needed here 
    176177         CALL tab_2d_1d( npti, nptidx(1:npti), zdelt   (1:npti)      , delta_i ) 
     178         CALL tab_2d_1d( npti, nptidx(1:npti), zconv   (1:npti)      , rdg_conv ) 
    177179         ! needed here and in the iteration loop 
    178180         CALL tab_2d_1d( npti, nptidx(1:npti), zdivu   (1:npti)      , divu_i) ! zdivu is used as a work array here (no change in divu_i) 
     
    184186            ! closing_net = rate at which open water area is removed + ice area removed by ridging  
    185187            !                                                        - ice area added in new ridges 
    186             closing_net(ji) = rn_csrdg * 0.5_wp * ( zdelt(ji) - ABS( zdivu(ji) ) ) - MIN( zdivu(ji), 0._wp ) 
     188            IF( ln_rhg_EVP )  closing_net(ji) = rn_csrdg * 0.5_wp * ( zdelt(ji) - ABS( zdivu(ji) ) ) - MIN( zdivu(ji), 0._wp ) 
     189            IF( ln_rhg_EAP )  closing_net(ji) = zconv(ji) 
    187190            ! 
    188191            IF( zdivu(ji) < 0._wp )   closing_net(ji) = MAX( closing_net(ji), -zdivu(ji) )   ! make sure the closing rate is large enough 
     
    776779      !                              !--------------------------------------------------! 
    777780         strength(:,:) = rn_pstar * SUM( v_i(:,:,:), dim=3 ) * EXP( -rn_crhg * ( 1._wp - SUM( a_i(:,:,:), dim=3 ) ) ) 
    778          ismooth = 1 
     781         ismooth = 1    ! original code 
     782!        ismooth = 0    ! try for EAP stability 
    779783         !                           !--------------------------------------------------! 
    780784      ELSE                           ! Zero strength                                    ! 
  • NEMO/branches/2020/SI3_vp_rheology/src/ICE/icedyn_rhg.F90

    r13969 r14003  
    1717   USE ice            ! sea-ice: variables 
    1818   USE icedyn_rhg_evp ! sea-ice: EVP rheology 
    19    USE icedyn_rhg_vp  ! sea-ice: VP rheology 
     19   USE icedyn_rhg_eap ! sea-ice: EAP rheology 
     20   USE icedyn_rhg_vp  ! sea-ice: VP  rheology 
    2021   USE icectl         ! sea-ice: control prints 
    2122   ! 
     
    3435   !                                        ! associated indices: 
    3536   INTEGER, PARAMETER ::   np_rhgEVP = 1   ! EVP rheology 
    36 !! INTEGER, PARAMETER ::   np_rhgEAP = 2   ! EAP rheology 
     37  INTEGER, PARAMETER ::   np_rhgEAP = 2   ! EAP rheology 
    3738   INTEGER, PARAMETER ::   np_rhgVP  = 3   ! VP rheology 
    3839 
    39    ! ** namelist (namrhg) ** 
    40    LOGICAL ::   ln_rhg_EVP       ! EVP rheology 
    41    LOGICAL ::   ln_rhg_VP        ! EVP rheology 
    4240   ! 
    4341   !!---------------------------------------------------------------------- 
     
    8684         CALL ice_dyn_rhg_vp ( kt, shear_i, divu_i, delta_i ) 
    8785         ! 
     86         !                             !----------------------------! 
     87      CASE( np_rhgEAP )                ! Elasto-Anisotropic-Plastic ! 
     88         !                             !----------------------------! 
     89         CALL ice_dyn_rhg_eap( kt, Kmm, stress1_i, stress2_i, stress12_i, shear_i, divu_i, delta_i, aniso_11, aniso_12, rdg_conv ) 
    8890      END SELECT 
    8991      ! 
    90       IF( lrst_ice ) THEN                       !* write EVP fields in the restart file 
    91          IF( ln_rhg_EVP )   CALL rhg_evp_rst( 'WRITE', kt ) 
     92      IF( lrst_ice ) THEN 
     93         IF( ln_rhg_EVP )   CALL rhg_evp_rst( 'WRITE', kt ) !* write EVP fields in the restart file 
     94         IF( ln_rhg_EAP )   CALL rhg_eap_rst( 'WRITE', kt ) !* write EAP fields in the restart file 
    9295         ! MV note: no restart needed for VP as there is no time equation for stress tensor 
    9396      ENDIF 
     
    117120      INTEGER ::   ios, ioptio   ! Local integer output status for namelist read 
    118121      !! 
    119       NAMELIST/namdyn_rhg/  ln_rhg_EVP, ln_aEVP, rn_creepl, rn_ecc , nn_nevp, rn_relast, nn_rhg_chkcvg,   &    !-- evp 
    120     &                       ln_rhg_VP, nn_vp_nout, nn_vp_ninn, nn_vp_chkcvg                                    !-- vp  
     122      NAMELIST/namdyn_rhg/  ln_rhg_EVP, ln_aEVP, ln_rhg_EAP, rn_creepl, rn_ecc , nn_nevp, rn_relast, nn_rhg_chkcvg, &  !-- evp 
     123         &                  ln_rhg_VP, nn_vp_nout, nn_vp_ninn, nn_vp_chkcvg                                            !-- vp  
    121124      !!------------------------------------------------------------------- 
    122125      ! 
     
    149152            ENDIF 
    150153         ENDIF 
     154         WRITE(numout,*) '      rheology EAP (icedyn_rhg_eap)                        ln_rhg_EAP = ', ln_rhg_EAP 
    151155      ENDIF 
    152156      ! 
     
    154158      ioptio = 0  
    155159      IF( ln_rhg_EVP ) THEN   ;   ioptio = ioptio + 1   ;   nice_rhg = np_rhgEVP    ;   ENDIF 
    156 !!    IF( ln_rhg_EAP ) THEN   ;   ioptio = ioptio + 1   ;   nice_rhg = np_rhgEAP    ;   ENDIF 
     160      IF( ln_rhg_EAP ) THEN   ;   ioptio = ioptio + 1   ;   nice_rhg = np_rhgEAP    ;   ENDIF 
    157161      IF( ln_rhg_VP  ) THEN   ;   ioptio = ioptio + 1   ;   nice_rhg = np_rhgVP     ;   ENDIF  
    158162      IF( ioptio /= 1 )   CALL ctl_stop( 'ice_dyn_rhg_init: choose one and only one ice rheology' ) 
    159163      ! 
    160164      IF( ln_rhg_EVP  )   CALL rhg_evp_rst( 'READ' )  !* read or initialize all required files 
     165      IF( ln_rhg_EAP  )   CALL rhg_eap_rst( 'READ' )  !* read or initialize all required files 
    161166      ! no restart for VP as there is no explicit time dependency in the equation 
    162167      ! 
  • NEMO/branches/2020/SI3_vp_rheology/tests/ICE_ADV2D/MY_SRC/usrdef_sbc.F90

    r13472 r14003  
    1818   USE sbc_ice         ! Surface boundary condition: ice fields 
    1919   USE phycst          ! physical constants 
    20    USE ice, ONLY       : at_i_b, a_i_b 
     20   USE ice, ONLY       : jpl, at_i_b, a_i_b 
    2121   USE icethd_dh       ! for CALL ice_thd_snwblow 
    2222   ! 
  • NEMO/branches/2020/SI3_vp_rheology/tests/demo_cfgs.txt

    r13207 r14003  
    1212STATION_ASF OCE 
    1313CPL_OASIS  OCE TOP ICE NST 
     14ICE_RHEO OCE SAS ICE 
Note: See TracChangeset for help on using the changeset viewer.