- Timestamp:
- 2019-08-05T19:14:52+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/DYN/dynhpg.F90
r11395 r11403 31 31 !!---------------------------------------------------------------------- 32 32 USE oce ! ocean dynamics and tracers 33 USE isf ! ice shelf 33 USE isf ! ice shelf (risfload variable) 34 USE isfload ! ice shelf (isf_load routine ) 34 35 USE sbc_oce ! surface variable (only for the flag with ice shelf) 35 36 USE dom_oce ! ocean space and time domain … … 214 215 ENDIF 215 216 ! 216 IF ( .NOT. ln_isfcav ) THEN !--- no ice shelf load217 riceload(:,:) = 0._wp218 !219 ELSE !--- set an ice shelf load220 !221 IF(lwp) WRITE(numout,*)222 IF(lwp) WRITE(numout,*) ' ice shelf case: set the ice-shelf load'223 ALLOCATE( zts_top(jpi,jpj,jpts) , zrhd(jpi,jpj,jpk) , zrhdtop_isf(jpi,jpj) , ziceload(jpi,jpj) )224 !225 znad = 1._wp !- To use density and not density anomaly226 !227 ! !- assume water displaced by the ice shelf is at T=-1.9 and S=34.4 (rude)228 zts_top(:,:,jp_tem) = -1.9_wp ; zts_top(:,:,jp_sal) = 34.4_wp229 !230 DO jk = 1, jpk !- compute density of the water displaced by the ice shelf231 CALL eos( zts_top(:,:,:), gdept_n(:,:,jk), zrhd(:,:,jk) )232 END DO233 !234 ! !- compute rhd at the ice/oce interface (ice shelf side)235 CALL eos( zts_top , risfdep, zrhdtop_isf )236 !237 ! !- Surface value + ice shelf gradient238 ziceload = 0._wp ! compute pressure due to ice shelf load239 DO jj = 1, jpj ! (used to compute hpgi/j for all the level from 1 to miku/v)240 DO ji = 1, jpi ! divided by 2 later241 ikt = mikt(ji,jj)242 ziceload(ji,jj) = ziceload(ji,jj) + (znad + zrhd(ji,jj,1) ) * e3w_n(ji,jj,1) * (1._wp - tmask(ji,jj,1))243 DO jk = 2, ikt-1244 ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhd(ji,jj,jk-1) + zrhd(ji,jj,jk)) * e3w_n(ji,jj,jk) &245 & * (1._wp - tmask(ji,jj,jk))246 END DO247 IF (ikt >= 2) ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhdtop_isf(ji,jj) + zrhd(ji,jj,ikt-1)) &248 & * ( risfdep(ji,jj) - gdept_n(ji,jj,ikt-1) )249 END DO250 END DO251 riceload(:,:) = ziceload(:,:) ! need to be saved for diaar5252 !253 DEALLOCATE( zts_top , zrhd , zrhdtop_isf , ziceload )254 ENDIF255 !256 217 END SUBROUTINE dyn_hpg_init 257 258 218 259 219 SUBROUTINE hpg_zco( kt ) … … 572 532 !! ua = ua - 1/e1u * zhpi 573 533 !! va = va - 1/e2v * zhpj 574 !! iceload is added and partial cell case are added to the top and bottom534 !! iceload is added 575 535 !! 576 536 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend … … 617 577 & - 0.5_wp * e3w_n(ji,jj,ikt) & 618 578 & * ( 2._wp * znad + rhd(ji,jj,ikt) + zrhdtop_oce(ji,jj) ) & 619 & + ( ri ceload(ji+1,jj) - riceload(ji,jj)) )579 & + ( risfload(ji+1,jj) - risfload(ji,jj)) ) 620 580 zhpj(ji,jj,1) = zcoef0 / e2v(ji,jj) * ( 0.5_wp * e3w_n(ji,jj+1,iktp1j) & 621 581 & * ( 2._wp * znad + rhd(ji,jj+1,iktp1j) + zrhdtop_oce(ji,jj+1) ) & 622 582 & - 0.5_wp * e3w_n(ji,jj,ikt) & 623 583 & * ( 2._wp * znad + rhd(ji,jj,ikt) + zrhdtop_oce(ji,jj) ) & 624 & + ( ri ceload(ji,jj+1) - riceload(ji,jj)) )584 & + ( risfload(ji,jj+1) - risfload(ji,jj)) ) 625 585 ! s-coordinate pressure gradient correction (=0 if z coordinate) 626 586 zuap = -zcoef0 * ( rhd (ji+1,jj,1) + rhd (ji,jj,1) + 2._wp * znad ) &
Note: See TracChangeset
for help on using the changeset viewer.