source: NEMO/branches/2019/dev_r11233_AGRIF-05_jchanut_vert_coord_interp/src/OCE/FLO/flo_oce.F90 @ 11574

Last change on this file since 11574 was 11573, checked in by jchanut, 17 months ago

#2222, merged with trunk

  • Property svn:keywords set to Id
File size: 3.4 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   USE par_oce         ! ocean parameters
10   USE in_out_manager  ! I/O manager
11   USE lib_mpp         ! MPP library
12
13   IMPLICIT NONE
14   PUBLIC
15
16   PUBLIC   flo_oce_alloc   ! Routine called in floats.F90
17
18   !! float parameters
19   !! ----------------
20   LOGICAL, PUBLIC ::   ln_floats   !: Activate floats or not
21   INTEGER, PUBLIC ::   jpnfl       !: total number of floats during the run
22   INTEGER, PUBLIC ::   jpnnewflo   !: number of floats added in a new run
23   INTEGER, PUBLIC ::   jpnrstflo   !: number of floats for the restart
24
25   !! float variables
26   !! ---------------
27   INTEGER , PUBLIC, ALLOCATABLE, DIMENSION(:) ::   nisobfl   !: =0 for a isobar float , =1 for a float following the w velocity
28   INTEGER , PUBLIC, ALLOCATABLE, DIMENSION(:) ::   ngrpfl    !: number to identify searcher group
29   INTEGER , PUBLIC, ALLOCATABLE, DIMENSION(:) ::   nfloat    !: number to identify searcher group
30
31   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:) ::   flxx , flyy , flzz    !: long, lat, depth of float (decimal degree, m >0)
32   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:) ::   tpifl, tpjfl, tpkfl   !: (i,j,k) indices of float position
33
34   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   wb   !: vertical velocity at previous time step (m s-1).
35   
36   !                                   !! * namelist namflo : langrangian floats *
37   LOGICAL, PUBLIC  ::   ln_rstflo      !: T/F float restart
38   LOGICAL, PUBLIC  ::   ln_argo        !: T/F argo type floats
39   LOGICAL, PUBLIC  ::   ln_flork4      !: T/F 4th order Runge-Kutta
40   LOGICAL, PUBLIC  ::   ln_ariane      !: handle ariane input/output convention
41   LOGICAL, PUBLIC  ::   ln_flo_ascii   !: write in ascii (T) or in Netcdf (F)
42
43   INTEGER, PUBLIC  ::   nn_writefl     !: frequency of float output file
44   INTEGER, PUBLIC  ::   nn_stockfl     !: frequency of float restart file
45
46   !!----------------------------------------------------------------------
47   !! NEMO/OCE 4.0 , NEMO Consortium (2018)
48   !! $Id$
49   !! Software governed by the CeCILL license (see ./LICENSE)
50   !!----------------------------------------------------------------------
51CONTAINS
52
53   INTEGER FUNCTION flo_oce_alloc()
54      !!----------------------------------------------------------------------
55      !!                 ***  FUNCTION flo_oce_alloc  ***
56      !!----------------------------------------------------------------------
57      ALLOCATE( wb(jpi,jpj,jpk) , nfloat(jpnfl) , nisobfl(jpnfl) , ngrpfl(jpnfl) , &
58         &      flxx(jpnfl)     , flyy(jpnfl)   , flzz(jpnfl)    ,                 & 
59         &      tpifl(jpnfl)    , tpjfl(jpnfl)  , tpkfl(jpnfl)   , STAT=flo_oce_alloc )
60      !
61      CALL mpp_sum ( 'flo_oce', flo_oce_alloc )
62      IF( flo_oce_alloc /= 0 )   CALL ctl_stop( 'STOP', 'flo_oce_alloc: failed to allocate arrays' )
63   END FUNCTION flo_oce_alloc
64
65   !!======================================================================
66END MODULE flo_oce
Note: See TracBrowser for help on using the repository browser.