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.
flo_oce.F90 in branches/2015/dev_r5803_NOC_WAD/NEMOGCM/NEMO/OPA_SRC/FLO – NEMO

source: branches/2015/dev_r5803_NOC_WAD/NEMOGCM/NEMO/OPA_SRC/FLO/flo_oce.F90 @ 5870

Last change on this file since 5870 was 5870, checked in by acc, 8 years ago

Branch 2015/dev_r5803_NOC_WAD. Merge in trunk changes from 5803 to 5869 in preparation for merge. Also tidied and reorganised some wetting and drying code. Renamed wadlmt.F90 to wetdry.F90. Wetting drying code changes restricted to domzgr.F90, domvvl.F90 nemogcm.F90 sshwzv.F90, dynspg_ts.F90, wetdry.F90 and dynhpg.F90. Code passes full SETTE tests with ln_wd=.false.. Still awaiting test case for checking with ln_wd=.false.

  • Property svn:keywords set to Id
File size: 3.9 KB
Line 
1MODULE flo_oce
2   !!======================================================================
3   !!                     ***  MODULE flo_oce  ***
4   !! lagrangian floats :   define in memory all floats parameters and variables
5   !!======================================================================
6   !! History :   OPA  ! 1999-10  (CLIPPER projet)
7   !!   NEMO      1.0  ! 2002-11  (G. Madec, A. Bozec)  F90: Free form and module
8   !!----------------------------------------------------------------------
9#if   defined key_floats
10   !!----------------------------------------------------------------------
11   !!   'key_floats'                                        drifting floats
12   !!----------------------------------------------------------------------
13   USE par_oce         ! ocean parameters
14   USE in_out_manager  ! I/O manager
15   USE lib_mpp         ! MPP library
16
17   IMPLICIT NONE
18   PUBLIC
19
20   PUBLIC   flo_oce_alloc   ! Routine called in floats.F90
21
22   LOGICAL, PUBLIC, PARAMETER ::   lk_floats = .TRUE.    !: float flag
23
24   !! float parameters
25   !! ----------------
26   INTEGER, PUBLIC ::   jpnfl       !: total number of floats during the run
27   INTEGER, PUBLIC ::   jpnnewflo   !: number of floats added in a new run
28   INTEGER, PUBLIC ::   jpnrstflo   !: number of floats for the restart
29
30   !! float variables
31   !! ---------------
32   INTEGER , PUBLIC, ALLOCATABLE, DIMENSION(:) ::   nisobfl   !: =0 for a isobar float , =1 for a float following the w velocity
33   INTEGER , PUBLIC, ALLOCATABLE, DIMENSION(:) ::   ngrpfl    !: number to identify searcher group
34   INTEGER , PUBLIC, ALLOCATABLE, DIMENSION(:) ::   nfloat    !: number to identify searcher group
35
36   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:) ::   flxx , flyy , flzz    !: long, lat, depth of float (decimal degree, m >0)
37   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:) ::   tpifl, tpjfl, tpkfl   !: (i,j,k) indices of float position
38
39   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   wb   !: vertical velocity at previous time step (m s-1).
40   
41   !                                   !! * namelist namflo : langrangian floats *
42   LOGICAL, PUBLIC  ::   ln_rstflo      !: T/F float restart
43   LOGICAL, PUBLIC  ::   ln_argo        !: T/F argo type floats
44   LOGICAL, PUBLIC  ::   ln_flork4      !: T/F 4th order Runge-Kutta
45   LOGICAL, PUBLIC  ::   ln_ariane      !: handle ariane input/output convention
46   LOGICAL, PUBLIC  ::   ln_flo_ascii   !: write in ascii (T) or in Netcdf (F)
47
48   INTEGER, PUBLIC  ::   nn_writefl     !: frequency of float output file
49   INTEGER, PUBLIC  ::   nn_stockfl     !: frequency of float restart file
50
51   !!----------------------------------------------------------------------
52   !! NEMO/OPA 4.0 , NEMO Consortium (2011)
53   !! $Id$
54   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
55   !!----------------------------------------------------------------------
56CONTAINS
57
58   INTEGER FUNCTION flo_oce_alloc()
59      !!----------------------------------------------------------------------
60      !!                 ***  FUNCTION flo_oce_alloc  ***
61      !!----------------------------------------------------------------------
62      ALLOCATE( wb(jpi,jpj,jpk) , nfloat(jpnfl) , nisobfl(jpnfl) , ngrpfl(jpnfl) , &
63                flxx(jpnfl)     , flyy(jpnfl)   , flzz(jpnfl)    ,                 & 
64                tpifl(jpnfl)    , tpjfl(jpnfl)  , tpkfl(jpnfl)   , STAT=flo_oce_alloc )
65      !
66      IF( lk_mpp             )   CALL mpp_sum ( flo_oce_alloc )
67      IF( flo_oce_alloc /= 0 )   CALL ctl_warn('flo_oce_alloc: failed to allocate arrays')
68   END FUNCTION flo_oce_alloc
69
70#else
71   !!----------------------------------------------------------------------
72   !!   Default option :                                 NO drifting floats
73   !!----------------------------------------------------------------------
74   LOGICAL, PUBLIC, PARAMETER ::   lk_floats = .FALSE.   !: float flag
75#endif
76
77   !!======================================================================
78END MODULE flo_oce
Note: See TracBrowser for help on using the repository browser.