SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
prep_ocean_mercatorvergrid.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  SUBROUTINE prep_ocean_mercatorvergrid(HPROGRAM,OUNIF)
7 ! ######################################################################
8 !
9 !!**** *PREP_OCEAN_MERCATORVERGRID*
10 !!
11 !! PURPOSE
12 !! -------
13 !
14 ! Define the vertical ocean grid
15 !
16 !
17 !!** METHOD
18 !! ------
19 !
20 !
21 !
22 !
23 !! EXTERNAL
24 !! --------
25 !!
26 !!
27 !! IMPLICIT ARGUMENTS
28 !! ------------------
29 !!
30 !! MODD_OCEAN_CST
31 !!
32 !!
33 !! REFERENCE
34 !! ---------
35 !!
36 !!
37 !! AUTHOR
38 !! ------
39 !!
40 !! C. Lebeaupin Brossier * Meteo-France *
41 !!
42 !! MODIFICATIONS
43 !! -------------
44 !! Original 01/2008
45 ! D.BARBARY 11/2014 : HPROGRAM,OUNIF in Calling OCEAN_MERCATORVERGRID
46 ! Reading oceanic level and depth
47 !-------------------------------------------------------------------------------
48 !
49 !* 0. DECLARATIONS
50 ! ------------
51 !
53 USE modi_read_z1d_netcdf
55 !
56 USE yomhook ,ONLY : lhook, dr_hook
57 USE parkind1 ,ONLY : jprb
58 !
59 IMPLICIT NONE
60 !
61 !* 0.1 declarations of arguments
62  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling
63 LOGICAL, INTENT(IN) :: ounif
64 !
65 !* 0.2 declarations of local variables
66 !
67 INTEGER :: ik1,ikk1
68 REAL(KIND=JPRB) :: zhook_handle
69 !
70 !-------------------------------------------------------------------------------
71 ! 1. Allocations
72 ! -----------
73 IF (lhook) CALL dr_hook('PREP_OCEAN_MERCATORVERGRID',0,zhook_handle)
74 
75 ! 1. Principal grid
76 ! --------------
77 !CLB
78 nockmin=0
79 ik1=nockmin+1
80 
81 IF (.NOT.ounif) THEN
82  !
83  CALL read_z1d_netcdf ! doit initialiser(NOCKMAX,XZHOC(:))
84  !
85 ELSE
86  !
87  ! Initialize vertical grid for idealized case
88  nockmax=40
89  ikk1=nockmax-1
90  ALLOCATE(xzhoc(nockmin:nockmax))
91  xzhoc(0)=0.
92  xzhoc(ik1) = -1.
93  xzhoc(2) = -5.
94  xzhoc(3) = -10.
95  xzhoc(4) = -15.
96  xzhoc(5) = -20.
97  xzhoc(6) = -25.
98  xzhoc(7) = -30.
99  xzhoc(8) = -40.
100  xzhoc(9) = -50.
101  xzhoc(10) = -60.
102  xzhoc(11) = -75.
103  xzhoc(12) = -100.
104  xzhoc(13) = -125.
105  xzhoc(14) = -150.
106  xzhoc(15) = -175.
107  xzhoc(16) = -200.
108  xzhoc(17) = -225.
109  xzhoc(18) = -250.
110  xzhoc(19) = -300.
111  xzhoc(20) = -400.
112  xzhoc(21) = -500.
113  xzhoc(22) = -600.
114  xzhoc(23) = -700.
115  xzhoc(24) = -800.
116  xzhoc(25) = -900.
117  xzhoc(26) = -1000.
118  xzhoc(27) = -1100.
119  xzhoc(28) = -1200.
120  xzhoc(29) = -1300.
121  xzhoc(30) = -1400.
122  xzhoc(31) = -1500.
123  xzhoc(32) = -1750.
124  xzhoc(33) = -2000.
125  xzhoc(34) = -2250.
126  xzhoc(35) = -2500.
127  xzhoc(36) = -2750.
128  xzhoc(37) = -3000.
129  xzhoc(38) = -3250.
130  xzhoc(ikk1) = -3500.
131  xzhoc(nockmax) = -4000.
132 ! WRITE(0,*) 'Number of vertical levels ',NOCKMAX
133 ! WRITE(0,*) 'Depth of vertical level (m)',XZHOC(:)
134 ENDIF
135 !
136 IF (lhook) CALL dr_hook('PREP_OCEAN_MERCATORVERGRID',1,zhook_handle)
137 !
138 END SUBROUTINE prep_ocean_mercatorvergrid
subroutine read_z1d_netcdf
subroutine prep_ocean_mercatorvergrid(HPROGRAM, OUNIF)