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 6352 for trunk/NEMOGCM/NEMO/OPA_SRC – NEMO

Ignore:
Timestamp:
2016-02-24T19:52:54+01:00 (8 years ago)
Author:
mathiot
Message:

Fixe ticket #1662 about slope limitiation beneath an ice shelf in trunk

Location:
trunk/NEMOGCM/NEMO/OPA_SRC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90

    r6140 r6352  
    184184         DO jj = 2, jpjm1 
    185185            DO ji = fs_2, fs_jpim1   ! vector opt. 
    186                zslpml_hmlpu(ji,jj) = uslpml(ji,jj) / ( MAX(hmlpt(ji,jj), hmlpt(ji+1,jj  ), 5._wp)      & 
    187                   &                                  - 0.5_wp * ( risfdep(ji,jj) + risfdep(ji+1,jj  ) ) ) 
    188                zslpml_hmlpv(ji,jj) = vslpml(ji,jj) / ( MAX(hmlpt(ji,jj), hmlpt(ji  ,jj+1), 5._wp)      & 
    189                   &                                  - 0.5_wp * ( risfdep(ji,jj) + risfdep(ji  ,jj+1) ) ) 
     186               zslpml_hmlpu(ji,jj) = uslpml(ji,jj) / ( MAX(hmlpt  (ji,jj), hmlpt  (ji+1,jj  ), 5._wp) & 
     187                  &                                  - MAX(risfdep(ji,jj), risfdep(ji+1,jj  )       ) )  
     188               zslpml_hmlpv(ji,jj) = vslpml(ji,jj) / ( MAX(hmlpt  (ji,jj), hmlpt  (ji  ,jj+1), 5._wp) & 
     189                  &                                  - MAX(risfdep(ji,jj), risfdep(ji  ,jj+1)      ) ) 
    190190            END DO 
    191191         END DO 
     
    215215               zfj = MAX( omlmask(ji,jj,jk), omlmask(ji,jj+1,jk) ) 
    216216               ! thickness of water column between surface and level k at u/v point 
    217                zdepu = 0.5_wp * ( ( gdept_n (ji,jj,jk) + gdept_n (ji+1,jj  ,jk) )                            & 
    218                                 - ( risfdep(ji,jj)    + risfdep(ji+1,jj)    ) - e3u_n(ji,jj,miku(ji,jj)) ) 
    219                zdepv = 0.5_wp * ( ( gdept_n (ji,jj,jk) + gdept_n (ji,jj+1,jk) )                              & 
    220                                 - ( risfdep(ji,jj)    + risfdep(ji,jj+1)    ) - e3v_n(ji,jj,mikv(ji,jj)) ) 
     217               zdepu = 0.5_wp * ( ( gdept_n (ji,jj,jk) + gdept_n (ji+1,jj,jk) )                            & 
     218                                - 2 * MAX( risfdep(ji,jj), risfdep(ji+1,jj) ) - e3u_n(ji,jj,miku(ji,jj))  ) 
     219               zdepv = 0.5_wp * ( ( gdept_n (ji,jj,jk) + gdept_n (ji,jj+1,jk) )                            & 
     220                                - 2 * MAX( risfdep(ji,jj), risfdep(ji,jj+1) ) - e3v_n(ji,jj,mikv(ji,jj))  ) 
    221221               ! 
    222222               zwz(ji,jj,jk) = ( ( 1._wp - zfi) * zau / ( zbu - zeps )                                     & 
  • trunk/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90

    r6140 r6352  
    178178      IF( ln_ldfeiv .AND. .NOT.( ln_traldf_iso .OR. ln_traldf_triad ) )                                    & 
    179179           &            CALL ctl_stop( 'eddy induced velocity on tracers requires iso-neutral laplacian diffusion' ) 
     180      IF( ln_isfcav .AND. ln_traldf_triad ) & 
     181           &            CALL ctl_stop( ' ice shelf cavity and traldf_triad not tested' ) 
    180182           ! 
    181183      IF(  nldf == np_lap_i .OR. nldf == np_lap_it .OR. & 
  • trunk/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfmxl.F90

    r6140 r6352  
    3131   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hmld    !: mixing layer depth (turbocline)      [m] 
    3232   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hmlp    !: mixed layer depth  (rho=rho0+zdcrit) [m] 
    33    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hmlpt   !: depth of the last T-point inside the mixed layer 
     33   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hmlpt   !: depth of the last T-point inside the mixed layer [m] 
    3434 
    3535   REAL(wp), PUBLIC ::   rho_c = 0.01_wp    !: density criterion for mixed layer depth 
     
    7777      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    7878      ! 
    79       INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    80       INTEGER  ::   iikn, iiki, ikt, imkt  ! local integer 
    81       REAL(wp) ::   zN2_c        ! local scalar 
     79      INTEGER  ::   ji, jj, jk      ! dummy loop indices 
     80      INTEGER  ::   iikn, iiki, ikt ! local integer 
     81      REAL(wp) ::   zN2_c           ! local scalar 
    8282      INTEGER, POINTER, DIMENSION(:,:) ::   imld   ! 2D workspace 
    8383      !!---------------------------------------------------------------------- 
     
    123123            iiki = imld(ji,jj) 
    124124            iikn = nmln(ji,jj) 
    125             imkt = mikt(ji,jj) 
    126125            hmld (ji,jj) = gdepw_n(ji,jj,iiki  ) * ssmask(ji,jj)    ! Turbocline depth  
    127126            hmlp (ji,jj) = gdepw_n(ji,jj,iikn  ) * ssmask(ji,jj)    ! Mixed layer depth 
     
    129128         END DO 
    130129      END DO 
    131       IF( .NOT.lk_offline ) THEN            ! no need to output in offline mode 
     130      ! no need to output in offline mode 
     131      IF( .NOT.lk_offline ) THEN    
    132132         IF ( iom_use("mldr10_1") ) THEN 
    133             IF( .NOT. ln_isfcav ) CALL iom_put( "mldr10_1", hmlp )            ! mixed layer depth 
    134             IF(       ln_isfcav ) CALL iom_put( "mldr10_1", hmlp - risfdep)   ! mixed layer thickness 
     133            IF( ln_isfcav ) THEN 
     134               CALL iom_put( "mldr10_1", hmlp - risfdep)   ! mixed layer thickness 
     135            ELSE 
     136               CALL iom_put( "mldr10_1", hmlp )            ! mixed layer depth 
     137            END IF 
    135138         END IF 
    136139         IF ( iom_use("mldkz5") ) THEN 
    137             IF( .NOT. ln_isfcav ) CALL iom_put( "mldkz5"  , hmld )             ! turbocline depth 
    138             IF(       ln_isfcav ) CALL iom_put( "mldkz5"  , hmld - risfdep )   ! turbocline thickness 
     140            IF( ln_isfcav ) THEN 
     141               CALL iom_put( "mldkz5"  , hmld - risfdep )   ! turbocline thickness 
     142            ELSE 
     143               CALL iom_put( "mldkz5"  , hmld )             ! turbocline depth 
     144            END IF 
    139145         END IF 
    140146      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.