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 6870 – NEMO

Changeset 6870


Ignore:
Timestamp:
2016-08-17T10:58:50+02:00 (8 years ago)
Author:
timgraham
Message:

All functional changes added

Location:
branches/UKMO/dev_r5518_convadj_clean/NEMOGCM
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_convadj_clean/NEMOGCM/CONFIG/SHARED/namelist_ref

    r5501 r6870  
    921921   ln_zdfexp   = .false.   !  time-stepping: split-explicit (T) or implicit (F) time stepping 
    922922   nn_zdfexp   =    3            !  number of sub-timestep for ln_zdfexp=T 
     923/ 
     924!----------------------------------------------------------------------- 
     925&namzdf_convadj    !   Convective adjustment (cliff) parameterization    
     926!----------------------------------------------------------------------- 
     927  ln_convadj      = .false.        ! Use convective adjustment or not 
     928  cn_convadj_mask = 'convadj.nc'   ! Name of mask file defining grid points where scheme should be used 
     929  nn_con          = 5              ! Number of iterations at each timestep 
    923930/ 
    924931!----------------------------------------------------------------------- 
  • branches/UKMO/dev_r5518_convadj_clean/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90

    r6869 r6870  
    3232   USE wrk_nemo        ! Memory Allocation 
    3333   USE timing          ! Timing 
     34   USE zdfconvadj 
     35   USE zdfmxl, ONLY : nmln 
    3436 
    3537   IMPLICIT NONE 
     
    103105      REAL(wp)                             , INTENT(in   ) ::   pahtb0     ! background diffusion coef 
    104106      ! 
     107      INTEGER  :: zconvadjw, zconvadju, zconvadjv  
    105108      INTEGER  ::  ji, jj, jk, jn   ! dummy loop indices 
    106109      INTEGER  ::  ikt 
     
    212215                  zcof2 = - fsahtv(ji,jj,jk) * e1v(ji,jj) * vslp(ji,jj,jk) * zmskv 
    213216                  ! 
    214                   zftu(ji,jj,jk ) = (  zabe1 * zdit(ji,jj,jk)   & 
     217                  IF(ln_convadj .AND. (jk .GT. nmln(ji,jj)) ) THEN 
     218                     zconvadju = 1 - MAX( convadj_mask(ji,jj), convadj_mask(ji+1,jj) ) 
     219                     zconvadjv = 1 - MAX( convadj_mask(ji,jj), convadj_mask(ji,jj+1) ) 
     220                  ELSE 
     221                     zconvadju = 1 
     222                     zconvadjv = 1 
     223                  END IF 
     224                  zftu(ji,jj,jk ) = zconvadju * (  zabe1 * zdit(ji,jj,jk)   & 
    215225                     &              + zcof1 * (  zdkt (ji+1,jj,jk) + zdk1t(ji,jj,jk)      & 
    216226                     &                         + zdk1t(ji+1,jj,jk) + zdkt (ji,jj,jk)  )  ) * umask(ji,jj,jk) 
    217                   zftv(ji,jj,jk) = (  zabe2 * zdjt(ji,jj,jk)   & 
     227                  zftv(ji,jj,jk) = zconvadjv * (  zabe2 * zdjt(ji,jj,jk)   & 
    218228                     &              + zcof2 * (  zdkt (ji,jj+1,jk) + zdk1t(ji,jj,jk)      & 
    219229                     &                         + zdk1t(ji,jj+1,jk) + zdkt (ji,jj,jk)  )  ) * vmask(ji,jj,jk)                   
     
    296306                     &            + vmask(ji,jj-1,jk-1) + vmask(ji,jj  ,jk), 1.  ) 
    297307                  ! 
    298                   zcoef3 = zcoef0 * e2t(ji,jj) * zmsku * wslpi (ji,jj,jk) 
    299                   zcoef4 = zcoef0 * e1t(ji,jj) * zmskv * wslpj (ji,jj,jk) 
     308                  IF(ln_convadj .AND. ( jk .GT. nmln(ji,jj)) ) THEN 
     309                     zconvadjw = 1 - convadj_mask(ji,jj) 
     310                  ELSE 
     311                     zconvadjw = 1 
     312                  ENDIF 
     313                  zcoef3 = zcoef0 * e2t(ji,jj) * zmsku * wslpi (ji,jj,jk) * zconvadjw 
     314                  zcoef4 = zcoef0 * e1t(ji,jj) * zmskv * wslpj (ji,jj,jk) * zconvadjw 
    300315                  ! 
    301316                  ztfw(ji,jj,jk) = zcoef3 * (   zdit(ji  ,jj  ,jk-1) + zdit(ji-1,jj  ,jk)      & 
  • branches/UKMO/dev_r5518_convadj_clean/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90

    r6869 r6870  
    7474   REAL(wp) ::   rn_emin0  ! surface minimum value of tke   [m2/s2] 
    7575   REAL(wp) ::   rn_bshear ! background shear (>0) currently a numerical threshold (do not change it) 
    76    INTEGER  ::   nn_etau   ! type of depth penetration of surface tke (=0/1/2/3) 
     76   INTEGER, PUBLIC  ::   nn_etau   ! type of depth penetration of surface tke (=0/1/2/3) 
    7777   INTEGER  ::   nn_htau   ! type of tke profile of penetration (=0/1) 
    7878   REAL(wp) ::   rn_efr    ! fraction of TKE surface value which penetrates in the ocean 
  • branches/UKMO/dev_r5518_convadj_clean/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r6869 r6870  
    413413      IF( lk_zdfddm .AND. .NOT. lk_zdfkpp )   & 
    414414         &                  CALL zdf_ddm_init      ! double diffusive mixing 
     415                            CALL zdf_convadj_init  !Convective adjustment (cliff scheme) 
    415416      !                                         ! Lateral physics 
    416417                            CALL ldf_tra_init      ! Lateral ocean tracer physics 
  • branches/UKMO/dev_r5518_convadj_clean/NEMOGCM/NEMO/OPA_SRC/step.F90

    r6869 r6870  
    9898 
    9999      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    100       ! Update data, open boundaries, surface boundary condition (including sea-ice) 
     100      ! Update data, open boundaries, surface boundary condition (including sea-ice), convective adjustment (cliff) 
    101101      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    102102      IF( lk_tide    )   CALL sbc_tide( kstp ) 
     
    105105                         CALL bdy_dta ( kstp, time_offset=+1 )   ! update dynamic & tracer data at open boundaries 
    106106      ENDIF 
     107 
     108      IF( ln_convadj )   CALL zdf_convadj( kstp )     ! Called here so that tsn is updated before rest of physics is called 
     109 
     110 
    107111                         CALL sbc    ( kstp )         ! Sea Boundary Condition (including sea-ice) 
    108112                                                      ! clem: moved here for bdy ice purpose 
  • branches/UKMO/dev_r5518_convadj_clean/NEMOGCM/NEMO/OPA_SRC/step_oce.F90

    r6869 r6870  
    8484   USE zdfric           ! Richardson vertical mixing       (zdf_ric routine) 
    8585   USE zdfmxl           ! Mixed-layer depth                (zdf_mxl routine) 
     86   USE zdfconvadj       ! Convective adjustment            (zdf_convadj routine) 
    8687 
    8788   USE zpshde           ! partial step: hor. derivative     (zps_hde routine) 
Note: See TracChangeset for help on using the changeset viewer.