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 9019 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/step.F90 – NEMO

Ignore:
Timestamp:
2017-12-13T15:58:53+01:00 (6 years ago)
Author:
timgraham
Message:

Merge of dev_CNRS_2017 into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/step.F90

    r7753 r9019  
    2929   !!            3.7  !  2014-10  (G. Madec)  LDF simplication  
    3030   !!             -   !  2014-12  (G. Madec) remove KPP scheme 
    31    !!             -   !  2015-11  (J. Chanut) free surface simplification 
     31   !!             -   !  2015-11  (J. Chanut) free surface simplification (remove filtered free surface) 
     32   !!            4.0  !  2017-05  (G. Madec)  introduction of the vertical physics manager (zdfphy) 
    3233   !!---------------------------------------------------------------------- 
    3334 
     
    4546 
    4647   !!---------------------------------------------------------------------- 
    47    !! NEMO/OPA 3.7 , NEMO Consortium (2015) 
     48   !! NEMO/OPA 4.0 , NEMO Consortium (2017) 
    4849   !! $Id$ 
    4950   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    6162      !!                     ***  ROUTINE stp  *** 
    6263      !! 
    63       !! ** Purpose : - Time stepping of OPA (momentum and active tracer eqs.) 
    64       !!              - Time stepping of LIM (dynamic and thermodynamic eqs.) 
    65       !!              - Tme stepping  of TRC (passive tracer eqs.) 
     64      !! ** Purpose : - Time stepping of OPA  (momentum and active tracer eqs.) 
     65      !!              - Time stepping of ESIM (dynamic and thermodynamic eqs.) 
     66      !!              - Time stepping of TRC (passive tracer eqs.) 
    6667      !! 
    6768      !! ** Method  : -1- Update forcings and data 
     
    7475      !!              -8- Outputs and diagnostics 
    7576      !!---------------------------------------------------------------------- 
    76       INTEGER ::   ji,jj,jk ! dummy loop indice 
    77       INTEGER ::   indic    ! error indicator if < 0 
    78       INTEGER ::   kcall    ! optional integer argument (dom_vvl_sf_nxt) 
     77      INTEGER ::   ji, jj, jk   ! dummy loop indice 
     78      INTEGER ::   indic        ! error indicator if < 0 
     79!!gm kcall can be removed, I guess 
     80      INTEGER ::   kcall        ! optional integer argument (dom_vvl_sf_nxt) 
    7981      !! --------------------------------------------------------------------- 
    8082#if defined key_agrif 
     
    125127                         CALL bn2    ( tsn, rab_n, rn2  ) ! now    Brunt-Vaisala frequency 
    126128 
    127       ! 
    128129      !  VERTICAL PHYSICS 
    129                          CALL zdf_bfr( kstp )         ! bottom friction (if quadratic) 
    130       !                                               ! Vertical eddy viscosity and diffusivity coefficients 
    131       IF( lk_zdfric  )   CALL zdf_ric ( kstp )             ! Richardson number dependent Kz 
    132       IF( lk_zdftke  )   CALL zdf_tke ( kstp )             ! TKE closure scheme for Kz 
    133       IF( lk_zdfgls  )   CALL zdf_gls ( kstp )             ! GLS closure scheme for Kz 
    134       IF( ln_zdfqiao )   CALL zdf_qiao( kstp )             ! Qiao vertical mixing  
    135       ! 
    136       IF( lk_zdfcst  ) THEN                                ! Constant Kz (reset avt, avm[uv] to the background value) 
    137          avt (:,:,:) = rn_avt0 * wmask (:,:,:) 
    138          avmu(:,:,:) = rn_avm0 * wumask(:,:,:) 
    139          avmv(:,:,:) = rn_avm0 * wvmask(:,:,:) 
    140       ENDIF 
    141  
    142       IF( ln_rnf_mouth ) THEN                         ! increase diffusivity at rivers mouths 
    143          DO jk = 2, nkrnf   ;   avt(:,:,jk) = avt(:,:,jk) + 2._wp * rn_avt_rnf * rnfmsk(:,:) * tmask(:,:,jk)   ;   END DO 
    144       ENDIF 
    145       IF( ln_zdfevd  )   CALL zdf_evd( kstp )         ! enhanced vertical eddy diffusivity 
    146  
    147       IF( lk_zdftmx  )   CALL zdf_tmx( kstp )         ! tidal vertical mixing 
    148  
    149       IF( lk_zdfddm  )   CALL zdf_ddm( kstp )         ! double diffusive mixing 
    150  
    151                          CALL zdf_mxl( kstp )         ! mixed layer depth 
    152  
    153                                                       ! write TKE or GLS information in the restart file 
    154       IF( lrst_oce .AND. lk_zdftke )   CALL tke_rst( kstp, 'WRITE' ) 
    155       IF( lrst_oce .AND. lk_zdfgls )   CALL gls_rst( kstp, 'WRITE' ) 
    156       ! 
     130                         CALL zdf_phy( kstp )         ! vertical physics update (top/bot drag, avt, avs, avm + MLD) 
     131 
    157132      !  LATERAL  PHYSICS 
    158133      ! 
     
    211186                         CALL dyn_vor       ( kstp )  ! vorticity term including Coriolis 
    212187                         CALL dyn_ldf       ( kstp )  ! lateral mixing 
     188      IF( ln_zdfosm  )   CALL dyn_osm       ( kstp )  ! OSMOSIS non-local velocity fluxes 
    213189                         CALL dyn_hpg       ( kstp )  ! horizontal gradient of Hydrostatic pressure 
    214190                         CALL dyn_spg       ( kstp )  ! surface pressure gradient 
     
    221197      ENDIF 
    222198 
    223                          CALL dyn_bfr       ( kstp )  ! bottom friction 
     199      IF( .NOT.ln_drgimp)   CALL dyn_bfr    ( kstp )  ! bottom friction 
     200       
    224201                         CALL dyn_zdf       ( kstp )  ! vertical diffusion 
    225202 
     
    233210      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    234211      IF( lk_floats  )   CALL flo_stp( kstp )         ! drifting Floats 
    235       IF( nn_diacfl == 1 )   CALL dia_cfl( kstp )         ! Courant number diagnostics 
     212      IF( ln_diacfl )   CALL dia_cfl( kstp )         ! Courant number diagnostics 
    236213      IF( lk_diahth  )   CALL dia_hth( kstp )         ! Thermocline depth (20 degres isotherm depth) 
    237214      IF( lk_diadct  )   CALL dia_dct( kstp )         ! Transports 
     
    259236      IF( ln_traqsr  )   CALL tra_qsr       ( kstp )  ! penetrative solar radiation qsr 
    260237      IF( ln_trabbc  )   CALL tra_bbc       ( kstp )  ! bottom heat flux 
    261       IF( lk_trabbl  )   CALL tra_bbl       ( kstp )  ! advective (and/or diffusive) bottom boundary layer scheme 
     238      IF( ln_trabbl  )   CALL tra_bbl       ( kstp )  ! advective (and/or diffusive) bottom boundary layer scheme 
    262239      IF( ln_tradmp  )   CALL tra_dmp       ( kstp )  ! internal damping trends 
    263240      IF( ln_bdy     )   CALL bdy_tra_dmp   ( kstp )  ! bdy damping trends 
     
    267244#endif 
    268245                         CALL tra_adv       ( kstp )  ! horizontal & vertical advection 
     246      IF( ln_zdfosm  )   CALL tra_osm       ( kstp )  ! OSMOSIS non-local tracer fluxes 
     247      IF( lrst_oce .AND. ln_zdfosm ) & 
     248           &             CALL osm_rst( kstp, 'WRITE' )! write OSMOSIS outputs + wn (so must do here) to restarts 
    269249                         CALL tra_ldf       ( kstp )  ! lateral mixing 
    270250 
     
    349329#endif 
    350330      ! 
    351       IF( nn_timing == 1 .AND.  kstp == nit000  )   CALL timing_reset 
     331      IF( ln_timing .AND.  kstp == nit000  )   CALL timing_reset 
    352332      ! 
    353333   END SUBROUTINE stp 
    354334    
     335   !!====================================================================== 
    355336END MODULE step 
Note: See TracChangeset for help on using the changeset viewer.