- Timestamp:
- 2019-12-10T15:16:33+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynhpg.F90
r11960 r12150 31 31 !!---------------------------------------------------------------------- 32 32 USE oce ! ocean dynamics and tracers 33 USE isf_oce , ONLY : risfload ! ice shelf (risfload variable) 34 USE isfload , ONLY : isf_load ! ice shelf (isf_load routine ) 33 35 USE sbc_oce ! surface variable (only for the flag with ice shelf) 34 36 USE dom_oce ! ocean space and time domain … … 216 218 ENDIF 217 219 ! 218 IF ( .NOT. ln_isfcav ) THEN !--- no ice shelf load219 riceload(:,:) = 0._wp220 !221 ELSE !--- set an ice shelf load222 !223 IF(lwp) WRITE(numout,*)224 IF(lwp) WRITE(numout,*) ' ice shelf case: set the ice-shelf load'225 ALLOCATE( zts_top(jpi,jpj,jpts) , zrhd(jpi,jpj,jpk) , zrhdtop_isf(jpi,jpj) , ziceload(jpi,jpj) )226 !227 znad = 1._wp !- To use density and not density anomaly228 !229 ! !- assume water displaced by the ice shelf is at T=-1.9 and S=34.4 (rude)230 zts_top(:,:,jp_tem) = -1.9_wp ; zts_top(:,:,jp_sal) = 34.4_wp231 !232 DO jk = 1, jpk !- compute density of the water displaced by the ice shelf233 CALL eos( zts_top(:,:,:), gdept(:,:,jk,Kmm), zrhd(:,:,jk) )234 END DO235 !236 ! !- compute rhd at the ice/oce interface (ice shelf side)237 CALL eos( zts_top , risfdep, zrhdtop_isf )238 !239 ! !- Surface value + ice shelf gradient240 ziceload = 0._wp ! compute pressure due to ice shelf load241 DO jj = 1, jpj ! (used to compute hpgi/j for all the level from 1 to miku/v)242 DO ji = 1, jpi ! divided by 2 later243 ikt = mikt(ji,jj)244 ziceload(ji,jj) = ziceload(ji,jj) + (znad + zrhd(ji,jj,1) ) * e3w(ji,jj,1,Kmm) * (1._wp - tmask(ji,jj,1))245 DO jk = 2, ikt-1246 ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhd(ji,jj,jk-1) + zrhd(ji,jj,jk)) * e3w(ji,jj,jk,Kmm) &247 & * (1._wp - tmask(ji,jj,jk))248 END DO249 IF (ikt >= 2) ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhdtop_isf(ji,jj) + zrhd(ji,jj,ikt-1)) &250 & * ( risfdep(ji,jj) - gdept(ji,jj,ikt-1,Kmm) )251 END DO252 END DO253 riceload(:,:) = ziceload(:,:) ! need to be saved for diaar5254 !255 DEALLOCATE( zts_top , zrhd , zrhdtop_isf , ziceload )256 ENDIF257 !258 220 END SUBROUTINE dyn_hpg_init 259 221 … … 581 543 !! puu(:,:,:,Krhs) = puu(:,:,:,Krhs) - 1/e1u * zhpi 582 544 !! pvv(:,:,:,Krhs) = pvv(:,:,:,Krhs) - 1/e2v * zhpj 583 !! iceload is added and partial cell case are added to the top and bottom545 !! iceload is added 584 546 !! 585 547 !! ** Action : - Update (puu(:,:,:,Krhs),pvv(:,:,:,Krhs)) with the now hydrastatic pressure trend … … 628 590 & - 0.5_wp * e3w(ji,jj,ikt,Kmm) & 629 591 & * ( 2._wp * znad + rhd(ji,jj,ikt) + zrhdtop_oce(ji,jj) ) & 630 & + ( ri ceload(ji+1,jj) - riceload(ji,jj)) )592 & + ( risfload(ji+1,jj) - risfload(ji,jj)) ) 631 593 zhpj(ji,jj,1) = zcoef0 / e2v(ji,jj) * ( 0.5_wp * e3w(ji,jj+1,iktp1j,Kmm) & 632 594 & * ( 2._wp * znad + rhd(ji,jj+1,iktp1j) + zrhdtop_oce(ji,jj+1) ) & 633 595 & - 0.5_wp * e3w(ji,jj,ikt,Kmm) & 634 596 & * ( 2._wp * znad + rhd(ji,jj,ikt) + zrhdtop_oce(ji,jj) ) & 635 & + ( ri ceload(ji,jj+1) - riceload(ji,jj)) )597 & + ( risfload(ji,jj+1) - risfload(ji,jj)) ) 636 598 ! s-coordinate pressure gradient correction (=0 if z coordinate) 637 599 zuap = -zcoef0 * ( rhd (ji+1,jj,1) + rhd (ji,jj,1) + 2._wp * znad ) &
Note: See TracChangeset
for help on using the changeset viewer.