Changeset 12377 for NEMO/trunk/src/ICE/icedyn.F90
- Timestamp:
- 2020-02-12T15:39:06+01:00 (4 years ago)
- Location:
- NEMO/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEAD ext/AGRIF5 ^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL
-
- Property svn:externals
-
NEMO/trunk/src/ICE/icedyn.F90
r11536 r12377 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_11_11 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_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, jpjm1 159 DO ji = 2, jpim1 160 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 DO 163 END DO 157 DO_2D_00_00 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 164 161 CALL lbc_lnk( 'icedyn', zdivu_i, 'T', 1. ) 165 162 ! output … … 224 221 !!------------------------------------------------------------------- 225 222 ! 226 REWIND( numnam_ice_ref ) ! Namelist namdyn in reference namelist : Ice dynamics227 223 READ ( numnam_ice_ref, namdyn, IOSTAT = ios, ERR = 901) 228 224 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdyn in reference namelist' ) 229 REWIND( numnam_ice_cfg ) ! Namelist namdyn in configuration namelist : Ice dynamics230 225 READ ( numnam_ice_cfg, namdyn, IOSTAT = ios, ERR = 902 ) 231 226 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namdyn in configuration namelist' )
Note: See TracChangeset
for help on using the changeset viewer.