- Timestamp:
- 2014-07-18T17:32:27+02:00 (10 years ago)
- Location:
- branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/DOM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90
r4701 r4724 312 312 ! ! --------------------------------------------- ! 313 313 314 z_scale(:,:) = ( ssha(:,:) - sshb(:,:) ) * tmask_i(:,:) / ( ht_0(:,:) + sshn(:,:) + 1. - tmask_i(:,:) )314 z_scale(:,:) = ( ssha(:,:) - sshb(:,:) ) * lmask(:,:) / ( ht_0(:,:) + sshn(:,:) + 1. - lmask(:,:) ) 315 315 DO jk = 1, jpkm1 316 316 ! formally this is the same as fse3t_a = e3t_0*(1+ssha/ht_0) … … 472 472 zht(:,:) = zht(:,:) + tilde_e3t_a(:,:,jk) * tmask(:,:,jk) 473 473 END DO 474 z_scale(:,:) = - zht(:,:) / ( ht_0(:,:) + sshn(:,:) + 1. - tmask(:,:,1))474 z_scale(:,:) = - zht(:,:) / ( ht_0(:,:) + sshn(:,:) + 1. - lmask ) 475 475 DO jk = 1, jpkm1 476 476 dtilde_e3t_a(:,:,jk) = dtilde_e3t_a(:,:,jk) + fse3t_n(:,:,jk) * z_scale(:,:) * tmask(:,:,jk) … … 998 998 999 999 IF( ioptio /= 1 ) CALL ctl_stop( 'Choose ONE vertical coordinate in namelist nam_vvl' ) 1000 IF( .NOT. ln_vvl_zstar .AND. nn_isf .NE. 0) CALL ctl_stop( 'vvl_ztilde, vvl_layer, vvl_ztilde_as_zstar, vvl_zstar_at_eqtor not tested with ice shelf cavity (only vvl_zstar was tested)' ) 1000 1001 1001 1002 IF(lwp) THEN ! Print the choice -
branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r4666 r4724 299 299 ENDIF 300 300 301 ! need to be like this to compute the pressure gradient with ISF 301 ! need to be like this to compute the pressure gradient with ISF. If not, level beneath the ISF are not aligned (sum(e3t) /= depth) 302 302 ! define e3t_0 and e3w_0 as the differences between gdept and gdepw respectively 303 303 DO jk = 1, jpkm1 … … 1023 1023 END WHERE 1024 1024 1025 1025 ! basic check for the compatibility of bathy and icedep. I think it should be offline because it is not perfect and cannot solved all the situation 1026 1026 icompt = 0 1027 ! run the bathy check 10 times to be sure all the modif in the bathy or iceshelf draft are compatible together 1027 1028 DO jl = 1, 10 1028 1029 IF( lk_mpp ) THEN … … 1058 1059 bathy(:,:) = 0._wp 1059 1060 END WHERE 1060 1061 ! Case where bathy and icedep compatible but not the level variable mbathy/micedep because of partial cell condition 1061 1062 DO jj = 1, jpj 1062 1063 DO ji = 1, jpi … … 1075 1076 DO jj = 2, jpjm1 1076 1077 DO ji = 2, jpim1 1078 ! T point 1077 1079 IF( zmicedep(ji,jj) == zmbathy(ji,jj) .AND. zmbathy(ji,jj) .GT. 1) THEN 1078 1080 mbathy(ji,jj) = zmbathy(ji,jj) + 1 1079 1081 bathy(ji,jj)=gdepw_1d(mbathy(ji,jj)) + MIN( e3zps_min, e3t_1d(mbathy(ji,jj))*e3zps_rat ) 1080 1082 ENDIF 1083 ! V point 1081 1084 IF( zmicedep(ji,jj+1) == zmbathy(ji,jj) .AND. zmbathy(ji,jj) .GT. 1) THEN 1082 1085 mbathy(ji,jj) = zmbathy(ji,jj) + 1 1083 1086 bathy(ji,jj)=gdepw_1d(mbathy(ji,jj)) + MIN( e3zps_min, e3t_1d(mbathy(ji,jj))*e3zps_rat ) 1084 1087 ENDIF 1088 ! V point -1 1085 1089 IF( zmicedep(ji,jj-1) == zmbathy(ji,jj) .AND. zmbathy(ji,jj) .GT. 1) THEN 1086 1090 mbathy(ji,jj) = zmbathy(ji,jj) + 1 1087 1091 bathy(ji,jj)=gdepw_1d(mbathy(ji,jj)) + MIN( e3zps_min, e3t_1d(mbathy(ji,jj))*e3zps_rat ) 1088 1092 ENDIF 1093 ! U point 1089 1094 IF( zmicedep(ji+1,jj) == zmbathy(ji,jj) .AND. zmbathy(ji,jj) .GT. 1) THEN 1090 1095 mbathy(ji,jj) = zmbathy(ji,jj) + 1 1091 1096 bathy(ji,jj)=gdepw_1d(mbathy(ji,jj)) + MIN( e3zps_min, e3t_1d(mbathy(ji,jj))*e3zps_rat ) 1092 1097 ENDIF 1098 ! U point -1 1093 1099 IF( zmicedep(ji-1,jj) == zmbathy(ji,jj) .AND. zmbathy(ji,jj) .GT. 1) THEN 1094 1100 mbathy(ji,jj) = zmbathy(ji,jj) + 1 … … 1217 1223 mbathy(:,:) = INT( zbathy(:,:) ) 1218 1224 ENDIF 1219 ! remove pool of water stuck between ice shelf and bathymetry1225 ! remove 1 cell pool of water stuck between ice shelf and bathymetry (need a 3D flood filling tools to do this properly) 1220 1226 DO jk = 1, jpk 1221 1227 WHERE (micedep==0) micedep=jpk … … 1344 1350 e3w_0 (ji,jj,ik+1) = gdept_1d(ik+1) - gdept_0(ji,jj,ik) 1345 1351 1346 IF( ik + 1 == mbathy(ji,jj) ) THEN ! ice shelf point only 1352 IF( ik + 1 == mbathy(ji,jj) ) THEN ! ice shelf point only (2 cell water column) 1347 1353 e3w_0 (ji,jj,ik+1) = gdept_0(ji,jj,ik+1) - gdept_0(ji,jj,ik) 1348 1354 ENDIF … … 1398 1404 DO jj = 1, jpjm1 1399 1405 DO ji = 1, fs_jpim1 ! vector opt. 1400 ! (ISF)** NEEDS CHANGING TO SECOND OPTION FOR ICE SHELF BUT WILL CHANGE RESULTS WITHOUT ICE (DIFFER AT THE 1e-13 LEVEL)1401 1406 e3uw_0(ji,jj,jk) = MIN( gdept_0(ji,jj,jk), gdept_0(ji+1,jj ,jk) ) - MAX( gdept_0(ji,jj,jk-1), gdept_0(ji+1,jj ,jk-1) ) 1402 1407 e3vw_0(ji,jj,jk) = MIN( gdept_0(ji,jj,jk), gdept_0(ji ,jj+1,jk) ) - MAX( gdept_0(ji,jj,jk-1), gdept_0(ji ,jj+1,jk-1) )
Note: See TracChangeset
for help on using the changeset viewer.