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.
flxmod.F90 in trunk/NEMO/OPA_SRC/SBC – NEMO

source: trunk/NEMO/OPA_SRC/SBC/flxmod.F90 @ 3

Last change on this file since 3 was 3, checked in by opalod, 20 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.4 KB
Line 
1MODULE flxmod
2   !!======================================================================
3   !!                       ***  MODULE  flxmod  ***
4   !! Ocean forcing:  thermohaline forcing of the ocean
5   !!=====================================================================
6   !! * Modules used
7   USE oce             ! ocean dynamics and tracers
8   USE dom_oce         ! ocean space and time domain
9   USE phycst          ! physical constants
10   USE in_out_manager  ! I/O manager
11   USE lib_mpp         ! distribued memory computing library
12   USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
13   USE daymod          ! calendar
14   USE ocfzpt          ! ocean freezing point
15
16   IMPLICIT NONE
17   PRIVATE
18
19   !! * Routine accessibility
20   PUBLIC flx       ! routine called by step.F90
21   
22   !! * Substitutions
23#  include "domzgr_substitute.h90"
24   !!----------------------------------------------------------------------
25   !!   OPA 9.0 , LODYC-IPSL  (2003)
26   !!----------------------------------------------------------------------
27
28#if defined key_flx_bulk_monthly
29# if defined key_fdir
30   !!----------------------------------------------------------------------
31   !!   'key_flx_bulk_monthly'   and                           MONTHLY bulk
32   !!   'key_fdir'                                       direct access file
33   !!----------------------------------------------------------------------
34#  include "flx_bulk_monthly_fdir.h90"
35
36# else
37   !!----------------------------------------------------------------------
38   !!   'key_flx_bulk_monthly'   and                           MONTHLY bulk
39   !!   Default option                                         Net CDF file
40   !!----------------------------------------------------------------------
41#  include "flx_bulk_monthly.h90"
42
43# endif
44#elif defined key_flx_bulk_daily
45   !!----------------------------------------------------------------------
46   !!   'key_flx_bulk_daily'                                     DAILY bulk
47   !!                                                          Net CDF file
48   !!----------------------------------------------------------------------
49#  include "flx_bulk_daily.h90"
50
51#elif defined key_flx_forced_daily
52   !!----------------------------------------------------------------------
53   !!   'key_flx_forced_daily'                                 DAILY fluxes
54   !!                                                          Net CDF file
55   !!----------------------------------------------------------------------
56#  include "flx_forced_daily.h90"
57
58#elif defined key_coupled
59# if defined key_ice_lim
60   !!----------------------------------------------------------------------
61   !!   'key_coupled'  and                          Coupled Ocan/Atmosphere
62   !!   'key_ice_lim'                               with  LIM sea-ice model
63   !!----------------------------------------------------------------------
64#  include "flx_coupled_ice.h90"
65
66# else
67   !!----------------------------------------------------------------------
68   !!   'key_flx_coupled'  and                      Coupled Ocan/Atmosphere
69   !!   Default option                              without   sea-ice model
70   !!----------------------------------------------------------------------
71#  include "flx_coupled_noice.h90"
72
73# endif
74#else
75   !!----------------------------------------------------------------------
76   !!   Default option                                   Analytical forcing
77   !!----------------------------------------------------------------------
78   !!   flx          : define the thermohaline fluxes for the ocean
79   !!----------------------------------------------------------------------
80   !! * Module used
81   !!----------------------------------------------------------------------
82
83CONTAINS
84
85   SUBROUTINE flx ( kt )
86      !!---------------------------------------------------------------------
87      !!                    ***  ROUTINE flx  ***
88      !!             
89      !! ** Purpose :   provide the thermohaline fluxes (heat and freshwater)
90      !!      to the ocean at each time step.
91      !!
92      !! ** Method  :   Constant surface fluxes (read in namelist (namflx))
93      !!
94      !! ** Action  : - q, qt, qsr, emp, emps, qrp, erp
95      !!
96      !! History :
97      !!        !  91-03  ()  Original code
98      !!   8.5  !  02-09  (G. Madec)  F90: Free form and module
99      !!----------------------------------------------------------------------
100      !! * Modules used
101      USE flxrnf                       ! ocean runoffs
102
103      !! * arguments
104      INTEGER, INTENT( in  ) ::   kt   ! ocean time step
105
106      !! * local declarations
107      REAL(wp) ::                   & !!! surface fluxes namelist (namflx)
108         q0   = 0.e0,               &  ! net heat flux
109         qsr0 = 0.e0,               &  ! solar heat flux
110         emp0 = 0.e0                   ! net freshwater flux
111
112      NAMELIST/namflx/ q0, qsr0, emp0
113      !!---------------------------------------------------------------------
114
115      IF( kt == nit000 ) THEN
116
117         ! Read Namelist namflx : surface thermohaline fluxes
118         ! --------------------
119         REWIND ( numnam )
120         READ   ( numnam, namflx )
121
122         IF(lwp) WRITE(numout,*)' '
123         IF(lwp) WRITE(numout,*)' flx     : Constant surface fluxes read in namelist'
124         IF(lwp) WRITE(numout,*)' ~~~~~~~ '
125         IF(lwp) WRITE(numout,*)'      : See the routine ocesbc'     
126
127     ENDIF
128
129   END SUBROUTINE flx
130
131#endif
132   !!======================================================================
133END MODULE flxmod
Note: See TracBrowser for help on using the repository browser.