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.
usrdef_sbc.F90 in NEMO/branches/UKMO/NEMO_4.0.4_CO9_package/src/OCE/USR – NEMO

source: NEMO/branches/UKMO/NEMO_4.0.4_CO9_package/src/OCE/USR/usrdef_sbc.F90 @ 15425

Last change on this file since 15425 was 15425, checked in by dbruciaferri, 12 months ago

Adding zero external forcing possibility for HPGE tests.

File size: 3.9 KB
Line 
1MODULE usrdef_sbc
2   !!======================================================================
3   !!                     ***  MODULE  usrdef_sbc  ***
4   !!
5   !!                 
6   !!
7   !! User defined :   set all surface forcing to 0
8   !!======================================================================
9   !! History :  4.0   ! 2016-03  (S. Flavoni, G. Madec)  user defined interface
10   !!----------------------------------------------------------------------
11
12   !!----------------------------------------------------------------------
13   !!   usrdef_sbc    : user defined surface bounday conditions
14   !!----------------------------------------------------------------------
15   USE oce            ! ocean dynamics and tracers
16   USE dom_oce        ! ocean space and time domain
17   USE sbc_oce        ! Surface boundary condition: ocean fields
18   USE phycst         ! physical constants
19   !
20   USE in_out_manager ! I/O manager
21   USE lib_mpp        ! distribued memory computing library
22   USE lbclnk         ! ocean lateral boundary conditions (or mpp link)
23   USE lib_fortran    !
24
25   IMPLICIT NONE
26   PRIVATE
27
28   PUBLIC   usrdef_sbc_oce       ! routine called in sbcmod module
29   PUBLIC   usrdef_sbc_ice_tau   ! routine called by icestp.F90 for ice dynamics
30   PUBLIC   usrdef_sbc_ice_flx   ! routine called by icestp.F90 for ice thermo
31
32   !! * Substitutions
33#  include "vectopt_loop_substitute.h90"
34   !!----------------------------------------------------------------------
35   !! NEMO/OCE 4.0 , NEMO Consortium (2018)
36   !! $Id$
37   !! Software governed by the CeCILL license (see ./LICENSE)
38   !!----------------------------------------------------------------------
39CONTAINS
40
41   SUBROUTINE usrdef_sbc_oce( kt )
42      !!---------------------------------------------------------------------
43      !!                    ***  ROUTINE usrdef_sbc  ***
44      !!             
45      !! ** Purpose :   provide at each time-step the surface boundary
46      !!              condition, i.e. the momentum, heat and freshwater fluxes.
47      !!
48      !! ** Method  :   Set all surface forcing to 0
49      !! ** Action  : - set the ocean surface boundary condition, i.e.   
50      !!                   utau, vtau, taum, wndm, qns, qsr, emp, sfx
51      !!
52      !!----------------------------------------------------------------------
53      INTEGER, INTENT(in) ::   kt   ! ocean time step
54
55      ! ---------------------------- !
56      !  heat and freshwater fluxes  !
57      ! ---------------------------- !
58
59      ! freshwater (mass flux) and update of qns with heat content of emp
60      emp (:,:) = 0.0_wp        ! freshwater flux
61      sfx (:,:) = 0.0_wp        ! no salt flux
62      qns (:,:) = 0.0_wp        ! non solar heat flux
63      qsr (:,:) = 0.0_wp        ! solar heat flux
64     
65
66      ! ---------------------------- !
67      !       momentum fluxes        !
68      ! ---------------------------- !
69      utau(:,:) = 0.0_wp
70      vtau(:,:) = 0.0_wp
71      taum(:,:) = 0.0_wp
72      wndm(:,:) = 0.0_wp
73      CALL lbc_lnk_multi( 'usrdef_sbc', taum(:,:), 'T', 1. , wndm(:,:), 'T', 1. )
74
75      ! ---------------------------------- !
76      !  control print at first time-step  !
77      ! ---------------------------------- !
78      IF( kt == nit000 .AND. lwp ) THEN
79         WRITE(numout,*)
80         WRITE(numout,*)'usrdef_sbc_oce : all surface fluxes set to 0'               
81         WRITE(numout,*)'~~~~~~~~~~~ ' 
82
83      ENDIF
84      !
85   END SUBROUTINE usrdef_sbc_oce
86
87
88   SUBROUTINE usrdef_sbc_ice_tau( kt )
89      INTEGER, INTENT(in) ::   kt   ! ocean time step
90   END SUBROUTINE usrdef_sbc_ice_tau
91
92
93   SUBROUTINE usrdef_sbc_ice_flx( kt, phs, phi )
94      INTEGER, INTENT(in) ::   kt   ! ocean time step
95      REAL(wp), DIMENSION(:,:,:), INTENT(in)  ::   phs    ! snow thickness
96      REAL(wp), DIMENSION(:,:,:), INTENT(in)  ::   phi    ! ice thickness
97   END SUBROUTINE usrdef_sbc_ice_flx
98
99   !!======================================================================
100END MODULE usrdef_sbc
Note: See TracBrowser for help on using the repository browser.