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 @ 239

Last change on this file since 239 was 239, checked in by opalod, 19 years ago

CT : UPDATE172 : remove all direct acces modules and the related cpp key key_fdir

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.1 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   !!----------------------------------------------------------------------
30   !!   'key_flx_bulk_monthly'   and                           MONTHLY bulk
31   !!   Default option                                         Net CDF file
32   !!----------------------------------------------------------------------
33#  include "flx_bulk_monthly.h90"
34
35#elif defined key_flx_bulk_daily
36   !!----------------------------------------------------------------------
37   !!   'key_flx_bulk_daily'                                     DAILY bulk
38   !!                                                          Net CDF file
39   !!----------------------------------------------------------------------
40#  include "flx_bulk_daily.h90"
41
42#elif defined key_flx_forced_daily
43   !!----------------------------------------------------------------------
44   !!   'key_flx_forced_daily'                                 DAILY fluxes
45   !!                                                          Net CDF file
46   !!----------------------------------------------------------------------
47#  include "flx_forced_daily.h90"
48
49#elif defined key_coupled
50# if defined key_ice_lim
51   !!----------------------------------------------------------------------
52   !!   'key_coupled'  and                          Coupled Ocan/Atmosphere
53   !!   'key_ice_lim'                               with  LIM sea-ice model
54   !!----------------------------------------------------------------------
55#  include "flx_coupled_ice.h90"
56
57# else
58   !!----------------------------------------------------------------------
59   !!   'key_flx_coupled'  and                      Coupled Ocan/Atmosphere
60   !!   Default option                              without   sea-ice model
61   !!----------------------------------------------------------------------
62#  include "flx_coupled_noice.h90"
63
64# endif
65#else
66   !!----------------------------------------------------------------------
67   !!   Default option                                   Analytical forcing
68   !!----------------------------------------------------------------------
69   !!   flx          : define the thermohaline fluxes for the ocean
70   !!----------------------------------------------------------------------
71   !! * Module used
72   !!----------------------------------------------------------------------
73
74CONTAINS
75
76   SUBROUTINE flx ( kt )
77      !!---------------------------------------------------------------------
78      !!                    ***  ROUTINE flx  ***
79      !!             
80      !! ** Purpose :   provide the thermohaline fluxes (heat and freshwater)
81      !!      to the ocean at each time step.
82      !!
83      !! ** Method  :   Constant surface fluxes (read in namelist (namflx))
84      !!
85      !! ** Action  : - q, qt, qsr, emp, emps, qrp, erp
86      !!
87      !! History :
88      !!        !  91-03  ()  Original code
89      !!   8.5  !  02-09  (G. Madec)  F90: Free form and module
90      !!----------------------------------------------------------------------
91      !! * Modules used
92      USE flxrnf                       ! ocean runoffs
93
94      !! * arguments
95      INTEGER, INTENT( in  ) ::   kt   ! ocean time step
96
97      !! * local declarations
98      REAL(wp) ::                   & !!! surface fluxes namelist (namflx)
99         q0   = 0.e0,               &  ! net heat flux
100         qsr0 = 0.e0,               &  ! solar heat flux
101         emp0 = 0.e0                   ! net freshwater flux
102
103      NAMELIST/namflx/ q0, qsr0, emp0
104      !!---------------------------------------------------------------------
105
106      IF( kt == nit000 ) THEN
107
108         ! Read Namelist namflx : surface thermohaline fluxes
109         ! --------------------
110         REWIND ( numnam )
111         READ   ( numnam, namflx )
112
113         IF(lwp) WRITE(numout,*)' '
114         IF(lwp) WRITE(numout,*)' flx     : Constant surface fluxes read in namelist'
115         IF(lwp) WRITE(numout,*)' ~~~~~~~ '
116         IF(lwp) WRITE(numout,*)'      : See the routine ocesbc'     
117
118     ENDIF
119
120   END SUBROUTINE flx
121
122#endif
123   !!======================================================================
124END MODULE flxmod
Note: See TracBrowser for help on using the repository browser.