Changeset 14004 for NEMO/branches/2020/SI3_martin_ponds/src
- Timestamp:
- 2020-12-02T15:12:26+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/SI3_martin_ponds/src/ICE
- Files:
-
- 3 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/SI3_martin_ponds/src/ICE/ice.F90
r13962 r14004 150 150 ! 151 151 ! !!** ice-rheology namelist (namdyn_rhg) ** 152 LOGICAL , PUBLIC :: ln_rhg_EVP ! EVP rheology switch, used for rdgrft and rheology 153 LOGICAL , PUBLIC :: ln_rhg_EAP ! EAP rheology switch, used for rdgrft and rheology 152 154 LOGICAL , PUBLIC :: ln_aEVP !: using adaptive EVP (T or F) 153 155 REAL(wp), PUBLIC :: rn_creepl !: creep limit : has to be under 1.0e-9 … … 248 250 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: divu_i !: Divergence of the velocity field [s-1] 249 251 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: shear_i !: Shear of the velocity field [s-1] 252 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: aniso_11, aniso_12 !: structure tensor elements 253 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rdg_conv 250 254 ! 251 255 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: t_bo !: Sea-Ice bottom temperature [Kelvin] … … 445 449 ALLOCATE( u_oce (jpi,jpj) , v_oce (jpi,jpj) , ht_i_new (jpi,jpj) , strength(jpi,jpj) , & 446 450 & stress1_i(jpi,jpj) , stress2_i(jpi,jpj) , stress12_i(jpi,jpj) , & 447 & delta_i (jpi,jpj) , divu_i (jpi,jpj) , shear_i (jpi,jpj) , STAT=ierr(ii) ) 451 & delta_i (jpi,jpj) , divu_i (jpi,jpj) , shear_i (jpi,jpj) , & 452 & aniso_11 (jpi,jpj) , aniso_12 (jpi,jpj) , rdg_conv (jpi,jpj) , STAT=ierr(ii) ) 448 453 449 454 ii = ii + 1 -
NEMO/branches/2020/SI3_martin_ponds/src/ICE/icedyn_rdgrft.F90
r13908 r14004 140 140 INTEGER , DIMENSION(jpij) :: iptidx ! compute ridge/raft or not 141 141 REAL(wp), DIMENSION(jpij) :: zdivu, zdelt ! 1D divu_i & delta_i 142 REAL(wp), DIMENSION(jpij) :: zconv ! 1D rdg_conv (if EAP rheology) 142 143 ! 143 144 INTEGER, PARAMETER :: jp_itermax = 20 … … 175 176 ! just needed here 176 177 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 ) 177 179 ! needed here and in the iteration loop 178 180 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) … … 184 186 ! closing_net = rate at which open water area is removed + ice area removed by ridging 185 187 ! - 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) 187 190 ! 188 191 IF( zdivu(ji) < 0._wp ) closing_net(ji) = MAX( closing_net(ji), -zdivu(ji) ) ! make sure the closing rate is large enough … … 776 779 ! !--------------------------------------------------! 777 780 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 779 783 ! !--------------------------------------------------! 780 784 ELSE ! Zero strength ! -
NEMO/branches/2020/SI3_martin_ponds/src/ICE/icedyn_rhg.F90
r13472 r14004 17 17 USE ice ! sea-ice: variables 18 18 USE icedyn_rhg_evp ! sea-ice: EVP rheology 19 USE icedyn_rhg_eap ! sea-ice: EAP rheology 19 20 USE icectl ! sea-ice: control prints 20 21 ! … … 33 34 ! ! associated indices: 34 35 INTEGER, PARAMETER :: np_rhgEVP = 1 ! EVP rheology 35 !!INTEGER, PARAMETER :: np_rhgEAP = 2 ! EAP rheology36 INTEGER, PARAMETER :: np_rhgEAP = 2 ! EAP rheology 36 37 37 38 ! ** namelist (namrhg) ** 38 LOGICAL :: ln_rhg_EVP ! EVP rheology39 39 ! 40 40 !!---------------------------------------------------------------------- … … 78 78 CALL ice_dyn_rhg_evp( kt, Kmm, stress1_i, stress2_i, stress12_i, shear_i, divu_i, delta_i ) 79 79 ! 80 ! !----------------------------! 81 CASE( np_rhgEAP ) ! Elasto-Anisotropic-Plastic ! 82 ! !----------------------------! 83 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 ) 80 84 END SELECT 81 85 ! 82 86 IF( lrst_ice ) THEN !* write EVP fields in the restart file 83 87 IF( ln_rhg_EVP ) CALL rhg_evp_rst( 'WRITE', kt ) 88 IF( ln_rhg_EAP ) CALL rhg_eap_rst( 'WRITE', kt ) !* write EAP fields in the restart file 84 89 ENDIF 85 90 ! … … 108 113 INTEGER :: ios, ioptio ! Local integer output status for namelist read 109 114 !! 110 NAMELIST/namdyn_rhg/ ln_rhg_EVP, ln_aEVP, rn_creepl, rn_ecc , nn_nevp, rn_relast, nn_rhg_chkcvg115 NAMELIST/namdyn_rhg/ ln_rhg_EVP, ln_aEVP, ln_rhg_EAP, rn_creepl, rn_ecc , nn_nevp, rn_relast, nn_rhg_chkcvg 111 116 !!------------------------------------------------------------------- 112 117 ! … … 133 138 ELSEIF( nn_rhg_chkcvg == 2 ) THEN ; WRITE(numout,*) ' check cvg at both main and rheology time steps' 134 139 ENDIF 140 WRITE(numout,*) ' rheology EAP (icedyn_rhg_eap) ln_rhg_EAP = ', ln_rhg_EAP 135 141 ENDIF 136 142 ! … … 138 144 ioptio = 0 139 145 IF( ln_rhg_EVP ) THEN ; ioptio = ioptio + 1 ; nice_rhg = np_rhgEVP ; ENDIF 140 !!IF( ln_rhg_EAP ) THEN ; ioptio = ioptio + 1 ; nice_rhg = np_rhgEAP ; ENDIF146 IF( ln_rhg_EAP ) THEN ; ioptio = ioptio + 1 ; nice_rhg = np_rhgEAP ; ENDIF 141 147 IF( ioptio /= 1 ) CALL ctl_stop( 'ice_dyn_rhg_init: choose one and only one ice rheology' ) 142 148 ! 143 149 IF( ln_rhg_EVP ) CALL rhg_evp_rst( 'READ' ) !* read or initialize all required files 150 IF( ln_rhg_EAP ) CALL rhg_eap_rst( 'READ' ) !* read or initialize all required files 144 151 ! 145 152 END SUBROUTINE ice_dyn_rhg_init
Note: See TracChangeset
for help on using the changeset viewer.