SURFEX v8.1
General documentation of Surfex
modd_oceann.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #################
6  MODULE modd_ocean_n
7 ! #################
8 !
9 !!**** *MODD_OCEAN_n - declaration of ocean varaiables
10 !! for 1D oceanic model
11 !!
12 !! PURPOSE
13 !! -------
14 ! Declaration of ocean varaiables
15 !
16 !!
17 !!** IMPLICIT ARGUMENTS
18 !! ------------------
19 !! None
20 !!
21 !! REFERENCE
22 !! ---------
23 !!
24 !! AUTHOR
25 !! ------
26 !! C. Lebeaupin *Meteo France*
27 !!
28 !! MODIFICATIONS
29 !! -------------
30 !! Original 04/2006
31 !! Modified 07/2012, P. Le Moigne : CMO1D phasing
32 !
33 !* 0. DECLARATIONS
34 ! ------------
35 !
36 !
37 USE yomhook ,ONLY : lhook, dr_hook
38 USE parkind1 ,ONLY : jprb
39 !
40 IMPLICIT NONE
41 !
42 TYPE ocean_t
43 !
44 !
45 ! Switche for interactive coupling with oceanic model
46 LOGICAL:: lmercator !set to .true. to initialize oceanic var. from Mercator
47 LOGICAL:: lcurrent !set to .true. to make initialize ocean state with current
48 LOGICAL:: lprogsst !set to .true. to make SST evolve with tendance
49 INTEGER:: ntime_coupling! coupling time frequency
50 INTEGER:: noctcount !oceanic model counter
51 REAL :: xocean_tstep ! time step of the oceanic 1D model
52 !
53 ! General surface:
54 !
55 REAL, POINTER, DIMENSION(:,:) :: xseat ! oceanic temperature profiles
56 REAL, POINTER, DIMENSION(:,:) :: xseas ! oceanic salinity profiles
57 REAL, POINTER, DIMENSION(:,:) :: xseau ! oceanic zonal current profiles
58 REAL, POINTER, DIMENSION(:,:) :: xseav ! oceanic meridian current profiles
59 REAL, POINTER, DIMENSION(:,:) :: xseae ! oceanic kinetic turbulent energy profiles (^(1/2))
60 REAL, POINTER, DIMENSION(:,:) :: xseabath !bathymetry indice
61  !=1 for free sea water
62  !=0 for sea-bed
63 REAL, POINTER, DIMENSION(:) :: xseahmo! oceanic mixing lengths
64 !
65 REAL, POINTER, DIMENSION(:,:) :: xle,xlk! oceanic mixing lengths
66 REAL, POINTER, DIMENSION(:,:) :: xkmel,xkmelm ! oceanic mixing coefficients
67 !
68 REAL, POINTER, DIMENSION(:) :: xseatend! SST tendance
69 !
70 REAL, POINTER, DIMENSION(:,:) :: xdtfsol ! Temp tendancy due to solar flux
71 REAL, POINTER, DIMENSION(:) :: xdtfnsol! -------------------- non solar flux
72 !
73 END TYPE ocean_t
74 !
75 
76 
77 CONTAINS
78 
79 !
80 
81 
82 
83 
84 SUBROUTINE ocean_init(YOCEAN)
85 TYPE(ocean_t), INTENT(INOUT) :: YOCEAN
86 REAL(KIND=JPRB) :: ZHOOK_HANDLE
87 IF (lhook) CALL dr_hook("MODD_OCEAN_N:OCEAN_INIT",0,zhook_handle)
88  NULLIFY(yocean%XSEAT)
89  NULLIFY(yocean%XSEAS)
90  NULLIFY(yocean%XSEAU)
91  NULLIFY(yocean%XSEAV)
92  NULLIFY(yocean%XSEAE)
93  NULLIFY(yocean%XSEABATH)
94  NULLIFY(yocean%XSEAHMO)
95  NULLIFY(yocean%XLE)
96  NULLIFY(yocean%XLK)
97  NULLIFY(yocean%XKMEL)
98  NULLIFY(yocean%XKMELM)
99  NULLIFY(yocean%XSEATEND)
100  NULLIFY(yocean%XDTFNSOL)
101  NULLIFY(yocean%XDTFSOL)
102 yocean%LMERCATOR=.false.
103 yocean%LCURRENT=.false.
104 yocean%LPROGSST=.false.
105 yocean%NTIME_COUPLING=0
106 yocean%NOCTCOUNT=0
107 yocean%XOCEAN_TSTEP=5*60.
108 IF (lhook) CALL dr_hook("MODD_OCEAN_N:OCEAN_INIT",1,zhook_handle)
109 END SUBROUTINE ocean_init
110 
111 
112 END MODULE modd_ocean_n
integer, parameter jprb
Definition: parkind1.F90:32
subroutine ocean_init(YOCEAN)
Definition: modd_oceann.F90:85
logical lhook
Definition: yomhook.F90:15