- Timestamp:
- 2020-09-14T17:40:34+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@13382 sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/ICE/icedyn.F90
r10994 r13463 52 52 53 53 !! * Substitutions 54 # include " vectopt_loop_substitute.h90"54 # include "do_loop_substitute.h90" 55 55 !!---------------------------------------------------------------------- 56 56 !! NEMO/ICE 4.0 , NEMO Consortium (2018) … … 60 60 CONTAINS 61 61 62 SUBROUTINE ice_dyn( kt )62 SUBROUTINE ice_dyn( kt, Kmm ) 63 63 !!------------------------------------------------------------------- 64 64 !! *** ROUTINE ice_dyn *** … … 73 73 !!-------------------------------------------------------------------- 74 74 INTEGER, INTENT(in) :: kt ! ice time step 75 INTEGER, INTENT(in) :: Kmm ! ocean time level index 75 76 !! 76 77 INTEGER :: ji, jj ! dummy loop indices … … 108 109 CASE ( np_dynALL ) !== all dynamical processes ==! 109 110 ! 110 CALL ice_dyn_rhg ( kt )! -- rheology111 CALL ice_dyn_rhg ( kt, Kmm ) ! -- rheology 111 112 CALL ice_dyn_adv ( kt ) ! -- advection of ice 112 113 CALL ice_dyn_rdgrft( kt ) ! -- ridging/rafting … … 115 116 CASE ( np_dynRHGADV ) !== no ridge/raft & no corrections ==! 116 117 ! 117 CALL ice_dyn_rhg ( kt )! -- rheology118 CALL ice_dyn_rhg ( kt, Kmm ) ! -- rheology 118 119 CALL ice_dyn_adv ( kt ) ! -- advection of ice 119 120 CALL Hpiling ! -- simple pile-up (replaces ridging/rafting) … … 125 126 ! CFL = 0.5 at a distance from the bound of 1/6 of the basin length 126 127 ! Then for dx = 2m and dt = 1s => rn_uice = u (1/6th) = 1m/s 127 DO jj = 1, jpj 128 DO ji = 1, jpi 129 zcoefu = ( REAL(jpiglo+1)*0.5 - REAL(ji+nimpp-1) ) / ( REAL(jpiglo+1)*0.5 - 1. ) 130 zcoefv = ( REAL(jpjglo+1)*0.5 - REAL(jj+njmpp-1) ) / ( REAL(jpjglo+1)*0.5 - 1. ) 131 u_ice(ji,jj) = rn_uice * 1.5 * SIGN( 1., zcoefu ) * ABS( zcoefu ) * umask(ji,jj,1) 132 v_ice(ji,jj) = rn_vice * 1.5 * SIGN( 1., zcoefv ) * ABS( zcoefv ) * vmask(ji,jj,1) 133 END DO 134 END DO 128 DO_2D( 1, 1, 1, 1 ) 129 zcoefu = ( REAL(jpiglo+1)*0.5 - REAL(ji+nimpp-1) ) / ( REAL(jpiglo+1)*0.5 - 1. ) 130 zcoefv = ( REAL(jpjglo+1)*0.5 - REAL(jj+njmpp-1) ) / ( REAL(jpjglo+1)*0.5 - 1. ) 131 u_ice(ji,jj) = rn_uice * 1.5 * SIGN( 1.0_wp, zcoefu ) * ABS( zcoefu ) * umask(ji,jj,1) 132 v_ice(ji,jj) = rn_vice * 1.5 * SIGN( 1.0_wp, zcoefv ) * ABS( zcoefv ) * vmask(ji,jj,1) 133 END_2D 135 134 ! --- 136 135 CALL ice_dyn_adv ( kt ) ! -- advection of ice … … 156 155 157 156 ALLOCATE( zdivu_i(jpi,jpj) ) 158 DO jj = 2, jpjm1159 DO ji = 2, jpim1160 zdivu_i(ji,jj) = ( e2u(ji,jj) * u_ice(ji,jj) - e2u(ji-1,jj) * u_ice(ji-1,jj) &161 & + e1v(ji,jj) * v_ice(ji,jj) - e1v(ji,jj-1) * v_ice(ji,jj-1) ) * r1_e1e2t(ji,jj)162 END DO163 END DO164 CALL lbc_lnk( 'icedyn', zdivu_i, 'T', 1.)165 CALL iom_put( "icediv" , zdivu_i(:,:) ) 157 DO_2D( 0, 0, 0, 0 ) 158 zdivu_i(ji,jj) = ( e2u(ji,jj) * u_ice(ji,jj) - e2u(ji-1,jj) * u_ice(ji-1,jj) & 159 & + e1v(ji,jj) * v_ice(ji,jj) - e1v(ji,jj-1) * v_ice(ji,jj-1) ) * r1_e1e2t(ji,jj) 160 END_2D 161 CALL lbc_lnk( 'icedyn', zdivu_i, 'T', 1.0_wp ) 162 ! output 163 CALL iom_put( 'icediv' , zdivu_i ) 164 166 165 DEALLOCATE( zdivu_i ) 167 166 … … 219 218 NAMELIST/namdyn/ ln_dynALL, ln_dynRHGADV, ln_dynADV1D, ln_dynADV2D, rn_uice, rn_vice, & 220 219 & rn_ishlat , & 221 & ln_landfast_L16, ln_landfast_home, rn_depfra, rn_icebfr, rn_lfrelax, rn_tensile 222 !!------------------------------------------------------------------- 223 ! 224 REWIND( numnam_ice_ref ) ! Namelist namdyn in reference namelist : Ice dynamics 220 & ln_landfast_L16, rn_depfra, rn_icebfr, rn_lfrelax, rn_tensile 221 !!------------------------------------------------------------------- 222 ! 225 223 READ ( numnam_ice_ref, namdyn, IOSTAT = ios, ERR = 901) 226 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn in reference namelist', lwp ) 227 REWIND( numnam_ice_cfg ) ! Namelist namdyn in configuration namelist : Ice dynamics 224 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn in reference namelist' ) 228 225 READ ( numnam_ice_cfg, namdyn, IOSTAT = ios, ERR = 902 ) 229 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namdyn in configuration namelist' , lwp)226 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namdyn in configuration namelist' ) 230 227 IF(lwm) WRITE( numoni, namdyn ) 231 228 ! … … 242 239 WRITE(numout,*) ' lateral boundary condition for sea ice dynamics rn_ishlat = ', rn_ishlat 243 240 WRITE(numout,*) ' Landfast: param from Lemieux 2016 ln_landfast_L16 = ', ln_landfast_L16 244 WRITE(numout,*) ' Landfast: param from home made ln_landfast_home= ', ln_landfast_home245 241 WRITE(numout,*) ' fraction of ocean depth that ice must reach rn_depfra = ', rn_depfra 246 242 WRITE(numout,*) ' maximum bottom stress per unit area of contact rn_icebfr = ', rn_icebfr … … 269 265 ENDIF 270 266 ! !--- Landfast ice 271 IF( .NOT.ln_landfast_L16 .AND. .NOT.ln_landfast_home ) tau_icebfr(:,:) = 0._wp 272 ! 273 IF ( ln_landfast_L16 .AND. ln_landfast_home ) THEN 274 CALL ctl_stop( 'ice_dyn_init: choose one and only one landfast parameterization (ln_landfast_L16 or ln_landfast_home)' ) 275 ENDIF 267 IF( .NOT.ln_landfast_L16 ) tau_icebfr(:,:) = 0._wp 276 268 ! 277 269 CALL ice_dyn_rdgrft_init ! set ice ridging/rafting parameters
Note: See TracChangeset
for help on using the changeset viewer.