Changeset 8946 for branches/2017/dev_CNRS_2017/NEMOGCM/NEMO
- Timestamp:
- 2017-12-08T08:49:34+01:00 (6 years ago)
- Location:
- branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/C1D/step_c1d.F90
r8930 r8946 105 105 IF( ln_tradmp ) CALL tra_dmp( kstp ) ! internal damping trends- tracers 106 106 IF(.NOT.ln_linssh)CALL tra_adv( kstp ) ! horizontal & vertical advection 107 IF( l k_zdfosm ) CALL tra_osm( kstp ) ! OSMOSIS non-local tracer fluxes107 IF( ln_zdfosm ) CALL tra_osm( kstp ) ! OSMOSIS non-local tracer fluxes 108 108 CALL tra_zdf( kstp ) ! vertical mixing 109 109 CALL eos( tsn, rhd, rhop, gdept_0(:,:,:) ) ! now potential density for zdfmxl … … 121 121 IF( ln_dyndmp ) CALL dyn_dmp ( kstp ) ! internal damping trends- momentum 122 122 CALL dyn_cor_c1d( kstp ) ! vorticity term including Coriolis 123 IF( l k_zdfosm ) CALL dyn_osm ( kstp ) ! OSMOSIS non-local velocity fluxes123 IF( ln_zdfosm ) CALL dyn_osm ( kstp ) ! OSMOSIS non-local velocity fluxes 124 124 CALL dyn_zdf ( kstp ) ! vertical diffusion 125 125 CALL dyn_nxt ( kstp ) ! lateral velocity at next time step -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfosm.F90
r8930 r8946 6 6 !!===================================================================== 7 7 !! History : NEMO 4.0 ! A. Grant, G. Nurser 8 9 8 !! 15/03/2017 Changed calculation of pycnocline thickness in unstable conditions and stable conditions AG 10 9 !! 15/03/2017 Calculation of pycnocline gradients for stable conditions changed. Pycnocline gradients now depend on stability of the OSBL. A.G … … 30 29 !! (16) Calculation of Stokes drift from windspeed for PM spectrum (for testing, commented out) 31 30 !! (17) Modification to Langmuir velocity scale to include effects due to the Stokes penetration depth (for testing, commented out) 32 !!33 31 !!---------------------------------------------------------------------- 32 34 33 !!---------------------------------------------------------------------- 35 34 !! 'key_zdfosm' OSMOSIS scheme … … 42 41 !! dyn_osm : compute and add to u & v trensd the non-local flux 43 42 !!---------------------------------------------------------------------- 44 USE oce !, wb => wn! ocean dynamics and active tracers43 USE oce ! ocean dynamics and active tracers 45 44 ! uses wn from previous time step (which is now wb) to calculate hbl 46 45 USE dom_oce ! ocean space and time domain … … 79 78 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: etmean !: averaging operator for avt 80 79 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hbl !: boundary layer depth 81 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hbli ! intial boundary layer depth for stable blayer82 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: dstokes ! penetration depth of the Stokes drift.80 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hbli !: intial boundary layer depth for stable blayer 81 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: dstokes !: penetration depth of the Stokes drift. 83 82 84 83 ! !!** Namelist namzdf_osm ** … … 122 121 IF( lk_mpp ) CALL mpp_sum ( zdf_osm_alloc ) 123 122 END FUNCTION zdf_osm_alloc 123 124 124 125 125 SUBROUTINE zdf_osm( kt, p_avm, p_avt ) … … 158 158 !! the equation number. (LMD94, here after) 159 159 !!---------------------------------------------------------------------- 160 161 INTEGER, INTENT( in ) :: kt ! ocean time step 160 INTEGER , INTENT(in ) :: kt ! ocean time step 162 161 REAL(wp), DIMENSION(:,:,:), INTENT(inout) :: p_avm, p_avt ! momentum and tracer Kz (w-points) 163 162 !! … … 252 251 ! For debugging 253 252 INTEGER :: ikt 254 255 253 !!-------------------------------------------------------------------- 256 254 ! … … 1350 1348 IF ( iom_use("zwth_ent") ) CALL iom_put( "zwth_ent", tmask(:,:,1)*zwth_ent ) ! ML depth internal to zdf_osm routine 1351 1349 IF ( iom_use("zt_ml") ) CALL iom_put( "zt_ml", tmask(:,:,1)*zt_ml ) ! average T in ML 1352 1353 1354 1355 1350 END IF 1351 ! Lateral boundary conditions on p_avt (sign unchanged) 1352 CALL lbc_lnk( p_avt(:,:,:), 'W', 1. ) 1353 ! 1356 1354 END SUBROUTINE zdf_osm 1355 1357 1356 1358 1357 SUBROUTINE zdf_osm_init … … 1507 1506 ! 1508 1507 END SUBROUTINE zdf_osm_init 1508 1509 1509 1510 1510 SUBROUTINE osm_rst( kt, cdrw ) … … 1600 1600 END SUBROUTINE osm_rst 1601 1601 1602 1602 1603 SUBROUTINE tra_osm( kt ) 1603 1604 !!---------------------------------------------------------------------- … … 1660 1661 END SUBROUTINE tra_osm 1661 1662 1663 1662 1664 SUBROUTINE trc_osm( kt ) ! Dummy routine 1663 1665 !!---------------------------------------------------------------------- … … 1670 1672 !! ** Method : ??? 1671 1673 !!---------------------------------------------------------------------- 1674 ! 1672 1675 !!---------------------------------------------------------------------- 1673 1676 INTEGER, INTENT(in) :: kt 1674 1677 WRITE(*,*) 'trc_osm: Not written yet', kt 1675 1678 END SUBROUTINE trc_osm 1679 1676 1680 1677 1681 SUBROUTINE dyn_osm( kt ) … … 1684 1688 !! ** Method : ??? 1685 1689 !!---------------------------------------------------------------------- 1690 INTEGER, INTENT(in) :: kt ! 1691 ! 1692 INTEGER :: ji, jj, jk ! dummy loop indices 1686 1693 !!---------------------------------------------------------------------- 1687 INTEGER, INTENT(in) :: kt1688 INTEGER :: ji, jj, jk1689 1694 ! 1690 1695 IF( nn_timing == 1 ) CALL timing_start('dyn_osm') … … 1697 1702 !code saving tracer trends removed, replace with trdmxl_oce 1698 1703 1699 ! add non-local u and v fluxes 1700 DO jk = 1, jpkm1 1704 DO jk = 1, jpkm1 ! add non-local u and v fluxes 1701 1705 DO jj = 2, jpjm1 1702 1706 DO ji = 2, jpim1 … … 1717 1721 END SUBROUTINE dyn_osm 1718 1722 1723 !!====================================================================== 1719 1724 END MODULE zdfosm 1720
Note: See TracChangeset
for help on using the changeset viewer.