New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12150 for NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynhpg.F90 – NEMO

Ignore:
Timestamp:
2019-12-10T15:16:33+01:00 (4 years ago)
Author:
davestorkey
Message:

2019/dev_r11943_MERGE_2019: Merge in UKMO_MERGE_2019.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynhpg.F90

    r11960 r12150  
    3131   !!---------------------------------------------------------------------- 
    3232   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 ) 
    3335   USE sbc_oce         ! surface variable (only for the flag with ice shelf) 
    3436   USE dom_oce         ! ocean space and time domain 
     
    216218      ENDIF 
    217219      !                           
    218       IF ( .NOT. ln_isfcav ) THEN     !--- no ice shelf load 
    219          riceload(:,:) = 0._wp 
    220          ! 
    221       ELSE                            !--- set an ice shelf load 
    222          ! 
    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 anomaly 
    228          ! 
    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_wp 
    231          ! 
    232          DO jk = 1, jpk                   !- compute density of the water displaced by the ice shelf  
    233             CALL eos( zts_top(:,:,:), gdept(:,:,jk,Kmm), zrhd(:,:,jk) ) 
    234          END DO 
    235          ! 
    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 gradient 
    240          ziceload = 0._wp                       ! compute pressure due to ice shelf load  
    241          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 later 
    243                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-1 
    246                   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 DO 
    249                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 DO 
    252          END DO 
    253          riceload(:,:) = ziceload(:,:)  ! need to be saved for diaar5 
    254          ! 
    255          DEALLOCATE( zts_top , zrhd , zrhdtop_isf , ziceload )  
    256       ENDIF 
    257       ! 
    258220   END SUBROUTINE dyn_hpg_init 
    259221 
     
    581543      !!         puu(:,:,:,Krhs) = puu(:,:,:,Krhs) - 1/e1u * zhpi 
    582544      !!         pvv(:,:,:,Krhs) = pvv(:,:,:,Krhs) - 1/e2v * zhpj 
    583       !!      iceload is added and partial cell case are added to the top and bottom 
     545      !!      iceload is added 
    584546      !!       
    585547      !! ** Action : - Update (puu(:,:,:,Krhs),pvv(:,:,:,Krhs)) with the now hydrastatic pressure trend 
     
    628590               &                                  - 0.5_wp * e3w(ji,jj,ikt,Kmm)                                         & 
    629591               &                                    * ( 2._wp * znad + rhd(ji,jj,ikt) + zrhdtop_oce(ji,jj) )          & 
    630                &                                  + ( riceload(ji+1,jj) - riceload(ji,jj))                            )  
     592               &                                  + ( risfload(ji+1,jj) - risfload(ji,jj))                            )  
    631593            zhpj(ji,jj,1) = zcoef0 / e2v(ji,jj) * ( 0.5_wp * e3w(ji,jj+1,iktp1j,Kmm)                                    & 
    632594               &                                    * ( 2._wp * znad + rhd(ji,jj+1,iktp1j) + zrhdtop_oce(ji,jj+1) )   & 
    633595               &                                  - 0.5_wp * e3w(ji,jj,ikt,Kmm)                                         &  
    634596               &                                    * ( 2._wp * znad + rhd(ji,jj,ikt) + zrhdtop_oce(ji,jj) )          & 
    635                &                                  + ( riceload(ji,jj+1) - riceload(ji,jj))                            )  
     597               &                                  + ( risfload(ji,jj+1) - risfload(ji,jj))                            )  
    636598            ! s-coordinate pressure gradient correction (=0 if z coordinate) 
    637599            zuap = -zcoef0 * ( rhd    (ji+1,jj,1) + rhd    (ji,jj,1) + 2._wp * znad )   & 
Note: See TracChangeset for help on using the changeset viewer.