MODULE usrdef_sbc !!====================================================================== !! *** MODULE usrdef_sbc *** !! Ocean forcing: user defined momentum, heat and freshwater forcings !! !! === Here OVERFLOW configuration === !! !!===================================================================== !! History : 4.0 ! 2016-03 (S. Flavoni, G. Madec) user defined interface !!---------------------------------------------------------------------- !!---------------------------------------------------------------------- !! usr_def_sbc : user defined surface bounday conditions in OVERFLOW case !!---------------------------------------------------------------------- USE oce ! ocean dynamics and tracers USE dom_oce ! ocean space and time domain USE sbc_oce ! Surface boundary condition: ocean fields USE phycst ! physical constants ! USE in_out_manager ! I/O manager USE lib_mpp ! distribued memory computing library USE lbclnk ! ocean lateral boundary conditions (or mpp link) USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) IMPLICIT NONE PRIVATE PUBLIC usr_def_sbc ! routine called in sbcmod module !! * Substitutions # include "vectopt_loop_substitute.h90" !!---------------------------------------------------------------------- !! NEMO/OPA 4.0 , NEMO Consortium (2016) !! $Id: $ !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) !!---------------------------------------------------------------------- CONTAINS SUBROUTINE usr_def_sbc( kt ) !!--------------------------------------------------------------------- !! *** ROUTINE usr_def_sbc *** !! !! ** Purpose : provide at each time-step the surface boundary !! condition, i.e. the momentum, heat and freshwater fluxes. !! !! ** Method : all 0 fields, for OVERFLOW case !! CAUTION : never mask the surface stress field ! !! !! ** Action : - set to ZERO all the ocean surface boundary condition, i.e. !! utau, vtau, taum, wndm, qns, qsr, emp, sfx !! !!---------------------------------------------------------------------- INTEGER, INTENT(in) :: kt ! ocean time step !! !!--------------------------------------------------------------------- ! IF( kt == nit000 ) THEN ! IF(lwp) WRITE(numout,*)' usr_sbc : OVERFLOW case: NO surface forcing' IF(lwp) WRITE(numout,*)' ~~~~~~~~~~~ utau = vtau = taum = wndm = qns = qsr = emp = sfx = 0' ! utau(:,:) = 0.0_wp vtau(:,:) = 0._wp taum(:,:) = 0.0_wp wndm(:,:) = 0.0_wp ! emp (:,:) = 0.0_wp sfx (:,:) = 0.0_wp qns (:,:) = 0.0_wp qsr (:,:) = 0.0_wp ! ENDIF END SUBROUTINE usr_def_sbc !!====================================================================== END MODULE usrdef_sbc