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.
agrif_oce.F90 in branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/NST_SRC – NEMO

source: branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/NST_SRC/agrif_oce.F90 @ 8214

Last change on this file since 8214 was 8214, checked in by gm, 7 years ago

#1883 (HPC-09) - correction of minor issues

  • Property svn:keywords set to Id
File size: 5.5 KB
RevLine 
[782]1MODULE agrif_oce
[1605]2   !!======================================================================
[782]3   !!                       ***  MODULE agrif_oce  ***
[1605]4   !! AGRIF :   define in memory AGRIF variables
[782]5   !!----------------------------------------------------------------------
[1605]6   !! History :  2.0  ! 2007-12  (R. Benshila)  Original code
[782]7   !!----------------------------------------------------------------------
[1605]8#if defined key_agrif
[782]9   !!----------------------------------------------------------------------
[1605]10   !!   'key_agrif'                                              AGRIF zoom
11   !!----------------------------------------------------------------------
[782]12   USE par_oce      ! ocean parameters
13   USE dom_oce      ! domain parameters
[5656]14
[782]15   IMPLICIT NONE
[2715]16   PRIVATE
[782]17
[2715]18   PUBLIC agrif_oce_alloc ! routine called by nemo_init in nemogcm.F90
19
[1605]20   !                                              !!* Namelist namagrif: AGRIF parameters
[5656]21   LOGICAL , PUBLIC ::   ln_spc_dyn    = .FALSE.   !:
22   INTEGER , PUBLIC ::   nn_cln_update = 3         !: update frequency
23   INTEGER , PUBLIC, PARAMETER ::   nn_sponge_len = 2  !: Sponge width (in number of parent grid points)
24   REAL(wp), PUBLIC ::   rn_sponge_tra = 2800.     !: sponge coeff. for tracers
25   REAL(wp), PUBLIC ::   rn_sponge_dyn = 2800.     !: sponge coeff. for dynamics
26   LOGICAL , PUBLIC ::   ln_chk_bathy  = .FALSE.   !: check of parent bathymetry
[782]27
[1605]28   !                                              !!! OLD namelist names
[3680]29   INTEGER , PUBLIC ::   nbcline = 0               !: update counter
[1605]30   INTEGER , PUBLIC ::   nbclineupdate             !: update frequency
31   REAL(wp), PUBLIC ::   visc_tra                  !: sponge coeff. for tracers
32   REAL(wp), PUBLIC ::   visc_dyn                  !: sponge coeff. for dynamics
[782]33
[5656]34   LOGICAL , PUBLIC :: spongedoneT = .FALSE.       !: tracer   sponge layer indicator
35   LOGICAL , PUBLIC :: spongedoneU = .FALSE.       !: dynamics sponge layer indicator
36   LOGICAL , PUBLIC :: lk_agrif_fstep = .TRUE.     !: if true: first step
37   LOGICAL , PUBLIC :: lk_agrif_doupd = .TRUE.     !: if true: send update from current grid
38   LOGICAL , PUBLIC :: lk_agrif_debug = .FALSE.    !: if true: print debugging info
[1605]39
[5656]40   LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_tsn
41# if defined key_top
42   LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_trn
43# endif
44   LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_u
45   LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_v
[8214]46   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsaht_spu, fsaht_spv !: sponge diffusivities
47   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsahm_spt, fsahm_spf !: sponge viscosities
[2715]48
[8214]49!!gm   add PUBLIC in all variable below:  should we need to add it
50
[7953]51   ! Barotropic arrays used to store open boundary data during time-splitting loop:
[8214]52   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::  ubdy_w, vbdy_w, hbdy_w
53   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::  ubdy_e, vbdy_e, hbdy_e
54   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::  ubdy_n, vbdy_n, hbdy_n
55   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::  ubdy_s, vbdy_s, hbdy_s
[5656]56
[7953]57
58   INTEGER, PUBLIC :: tsn_id                                                  ! AGRIF profile for tracers interpolation and update
59   INTEGER, PUBLIC :: un_interp_id, vn_interp_id                              ! AGRIF profiles for interpolations
60   INTEGER, PUBLIC :: un_update_id, vn_update_id                              ! AGRIF profiles for udpates
61   INTEGER, PUBLIC :: tsn_sponge_id, un_sponge_id, vn_sponge_id               ! AGRIF profiles for sponge layers
[5656]62# if defined key_top
[7953]63   INTEGER, PUBLIC :: trn_id, trn_sponge_id
[5656]64# endif 
[7953]65   INTEGER, PUBLIC :: unb_id, vnb_id, ub2b_interp_id, vb2b_interp_id
66   INTEGER, PUBLIC :: ub2b_update_id, vb2b_update_id
67   INTEGER, PUBLIC :: e3t_id, e1u_id, e2v_id, sshn_id
68   INTEGER, PUBLIC :: scales_t_id
69   INTEGER, PUBLIC :: avt_id, avm_id, en_id                ! TKE related identificators
70   INTEGER, PUBLIC :: umsk_id, vmsk_id
71   INTEGER, PUBLIC :: kindic_agr
72   
73!!gm end public addition
[5656]74
[1605]75   !!----------------------------------------------------------------------
[2715]76   !! NEMO/NST 3.3.1 , NEMO Consortium (2011)
[1605]77   !! $Id$
[2715]78   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
79   !!----------------------------------------------------------------------
80CONTAINS
81
82   INTEGER FUNCTION agrif_oce_alloc()
83      !!----------------------------------------------------------------------
84      !!                ***  FUNCTION agrif_oce_alloc  ***
85      !!----------------------------------------------------------------------
[5656]86      INTEGER, DIMENSION(2) :: ierr
87      !!----------------------------------------------------------------------
88      ierr(:) = 0
89      !
90      ALLOCATE( fsaht_spu(jpi,jpj), fsaht_spv(jpi,jpj),   &
91         &      fsahm_spt(jpi,jpj), fsahm_spf(jpi,jpj),   &
92         &      tabspongedone_tsn(jpi,jpj),           &
93# if defined key_top         
94         &      tabspongedone_trn(jpi,jpj),           &
95# endif         
96         &      tabspongedone_u  (jpi,jpj),           &
97         &      tabspongedone_v  (jpi,jpj), STAT = ierr(1) )
98
99      ALLOCATE( ubdy_w(jpj), vbdy_w(jpj), hbdy_w(jpj),   &
100         &      ubdy_e(jpj), vbdy_e(jpj), hbdy_e(jpj),   & 
101         &      ubdy_n(jpi), vbdy_n(jpi), hbdy_n(jpi),   & 
102         &      ubdy_s(jpi), vbdy_s(jpi), hbdy_s(jpi), STAT = ierr(2) )
103
104      agrif_oce_alloc = MAXVAL(ierr)
105      !
[2715]106   END FUNCTION agrif_oce_alloc
107
108#endif
[1605]109   !!======================================================================
[782]110END MODULE agrif_oce
Note: See TracBrowser for help on using the repository browser.