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.
traqsr.F90 in branches/dev_001_GM/NEMO/OFF_SRC/TRA – NEMO

source: branches/dev_001_GM/NEMO/OFF_SRC/TRA/traqsr.F90 @ 952

Last change on this file since 952 was 952, checked in by cetlod, 16 years ago

phasing the OFFLINE module to the new version of NEMO, see ticket 146

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.5 KB
Line 
1MODULE traqsr
2   !!======================================================================
3   !!                       ***  MODULE  traqsr  ***
4   !! Ocean physics: solar radiation penetration in the top ocean levels
5   !!======================================================================
6
7   !!----------------------------------------------------------------------
8   !!   tra_qsr      : trend due to the solar radiation penetration
9   !!   tra_qsr_init : solar radiation penetration initialization
10   !!----------------------------------------------------------------------
11   !!   OPA 9.0 , LOCEAN-IPSL  (2005)
12   !!   $Header$
13   !!   This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
14   !!----------------------------------------------------------------------
15   !! * Modules used
16   USE in_out_manager  ! I/O manager
17
18   IMPLICIT NONE
19   PRIVATE
20
21   !! * Routine accessibility
22   PUBLIC tra_qsr_init ! routine called by opa.F90
23
24   !! * Shared module variables
25   LOGICAL, PUBLIC ::   ln_traqsr = .TRUE.   !: qsr flag (Default=T)
26
27   !! * Module variables
28   REAL(wp), PUBLIC ::  & !!! * penetrative solar radiation namelist *
29      xsi1 = 0.35_wp    ! first depth of extinction
30   LOGICAL , PUBLIC ::   ln_qsr_sms = .false. ! flag to use or not the biological fluxes for light
31
32
33CONTAINS
34
35   SUBROUTINE tra_qsr_init
36      !!----------------------------------------------------------------------
37      !!                  ***  ROUTINE tra_qsr_init  ***
38      !!
39      !! ** Purpose :   Initialization for the penetrative solar radiation
40      !!
41      !! ** Method  :   The profile of solar radiation within the ocean is set
42      !!      from two length scale of penetration (xsr1,xsr2) and a ratio
43      !!      (rabs). These parameters are read in the namqsr namelist. The
44      !!      default values correspond to clear water (type I in Jerlov'
45      !!      (1968) classification.
46      !!         called by tra_qsr at the first timestep (nit000)
47      !!
48      !! ** Action  : - initialize xsr1, xsr2 and rabs
49      !!
50      !! Reference :
51      !!   Jerlov, N. G., 1968 Optical Oceanography, Elsevier, 194pp.
52      !!
53      !! History :
54      !!   8.5  !  02-06  (G. Madec) Original code
55      !!----------------------------------------------------------------------
56      !! * Local declarations
57
58      NAMELIST/nam_qsr/ ln_traqsr, xsi1
59      !!----------------------------------------------------------------------
60
61      ! Read Namelist nam_qsr : ratio and length of penetration
62      ! --------------------
63      REWIND ( numnam )
64      READ   ( numnam, nam_qsr )
65
66      ! Parameter control and print
67      ! ---------------------------
68      IF( ln_traqsr  ) THEN
69        IF ( lwp ) THEN
70         WRITE(numout,*)
71         WRITE(numout,*) 'tra_qsr_init : penetration of the surface solar radiation'
72         WRITE(numout,*) '~~~~~~~~~~~~'
73         WRITE(numout,*) '    Namelist namqsr : set the parameter of penetration'
74         WRITE(numout,*) '        first depth of extinction        xsi1        = ',xsi1
75         WRITE(numout,*) '     Biological fluxes for light(Y/N) ln_qsr_sms  = ',ln_qsr_sms
76         WRITE(numout,*) ' '
77        END IF
78      ELSE
79        IF ( lwp ) THEN
80         WRITE(numout,*)
81         WRITE(numout,*) 'tra_qsr_init : NO solar flux penetration'
82         WRITE(numout,*) '~~~~~~~~~~~~'
83        END IF
84      ENDIF
85
86      IF( xsi1 < 0.e0  ) &
87         CALL ctl_stop( '              0<xsi1 not satisfied' )
88
89
90   END SUBROUTINE tra_qsr_init
91
92   !!======================================================================
93END MODULE traqsr
Note: See TracBrowser for help on using the repository browser.