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 trunk/NEMOGCM/NEMO/OPA_SRC/FLO – NEMO

source: trunk/NEMOGCM/NEMO/OPA_SRC/FLO/flo_oce.F90 @ 2715

Last change on this file since 2715 was 2715, checked in by rblod, 13 years ago

First attempt to put dynamic allocation on the trunk

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