source: NEMO/branches/2020/dev_r12563_ASINTER-06_ABL_improvement/src/NST/agrif_oce.F90 @ 12808

Last change on this file since 12808 was 12377, checked in by acc, 10 months ago

The big one. Merging all 2019 developments from the option 1 branch back onto the trunk.

This changeset reproduces 2019/dev_r11943_MERGE_2019 on the trunk using a 2-URL merge
onto a working copy of the trunk. I.e.:

svn merge —ignore-ancestry \

svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk \
svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/branches/2019/dev_r11943_MERGE_2019 ./

The —ignore-ancestry flag avoids problems that may otherwise arise from the fact that
the merge history been trunk and branch may have been applied in a different order but
care has been taken before this step to ensure that all applicable fixes and updates
are present in the merge branch.

The trunk state just before this step has been branched to releases/release-4.0-HEAD
and that branch has been immediately tagged as releases/release-4.0.2. Any fixes
or additions in response to tickets on 4.0, 4.0.1 or 4.0.2 should be done on
releases/release-4.0-HEAD. From now on future 'point' releases (e.g. 4.0.2) will
remain unchanged with periodic releases as needs demand. Note release-4.0-HEAD is a
transitional naming convention. Future full releases, say 4.2, will have a release-4.2
branch which fulfills this role and the first point release (e.g. 4.2.0) will be made
immediately following the release branch creation.

2020 developments can be started from any trunk revision later than this one.

  • Property svn:keywords set to Id
File size: 5.6 KB
Line 
1MODULE agrif_oce
2   !!======================================================================
3   !!                       ***  MODULE agrif_oce  ***
4   !! AGRIF :   define in memory AGRIF variables
5   !!----------------------------------------------------------------------
6   !! History :  2.0  ! 2007-12  (R. Benshila)  Original code
7   !!----------------------------------------------------------------------
8#if defined key_agrif
9   !!----------------------------------------------------------------------
10   !!   'key_agrif'                                              AGRIF zoom
11   !!----------------------------------------------------------------------
12   USE par_oce      ! ocean parameters
13   USE dom_oce      ! domain parameters
14
15   IMPLICIT NONE
16   PRIVATE
17
18   PUBLIC agrif_oce_alloc ! routine called by nemo_init in nemogcm.F90
19 
20   !                                              !!* Namelist namagrif: AGRIF parameters
21   LOGICAL , PUBLIC ::   ln_agrif_2way = .TRUE.    !: activate two way nesting
22   LOGICAL , PUBLIC ::   ln_spc_dyn    = .FALSE.   !: use zeros (.false.) or not (.true.) in
23                                                   !: bdys dynamical fields interpolation
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   REAL(wp), PUBLIC ::   rn_trelax_tra = 0.01      !: time relaxation parameter for tracers
27   REAL(wp), PUBLIC ::   rn_trelax_dyn = 0.01      !: time relaxation parameter for momentum
28   LOGICAL , PUBLIC ::   ln_chk_bathy  = .FALSE.   !: check of parent bathymetry
29   !
30   INTEGER , PUBLIC, PARAMETER ::   nn_sponge_len = 2  !: Sponge width (in number of parent grid points)
31   LOGICAL , PUBLIC :: spongedoneT = .FALSE.       !: tracer   sponge layer indicator
32   LOGICAL , PUBLIC :: spongedoneU = .FALSE.       !: dynamics sponge layer indicator
33   LOGICAL , PUBLIC :: lk_agrif_fstep = .TRUE.     !: if true: first step
34   LOGICAL , PUBLIC :: lk_agrif_debug = .FALSE.    !: if true: print debugging info
35
36   LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_tsn
37# if defined key_top
38   LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_trn
39# endif
40   LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_u
41   LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_v
42   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: utint_stage
43   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: vtint_stage
44   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fspu, fspv !: sponge arrays
45   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fspt, fspf !:   "      "
46
47   ! Barotropic arrays used to store open boundary data during time-splitting loop:
48   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::  ubdy, vbdy, hbdy
49   INTEGER , PUBLIC,              SAVE                 ::  Kbb_a, Kmm_a, Krhs_a   !: AGRIF module-specific copies of time-level indices
50
51# if defined key_vertical
52   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ht0_parent, hu0_parent, hv0_parent
53   INTEGER,  PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: mbkt_parent, mbku_parent, mbkv_parent
54# endif
55
56   INTEGER, PUBLIC :: tsn_id                                                  ! AGRIF profile for tracers interpolation and update
57   INTEGER, PUBLIC :: un_interp_id, vn_interp_id                              ! AGRIF profiles for interpolations
58   INTEGER, PUBLIC :: un_update_id, vn_update_id                              ! AGRIF profiles for udpates
59   INTEGER, PUBLIC :: tsn_sponge_id, un_sponge_id, vn_sponge_id               ! AGRIF profiles for sponge layers
60# if defined key_top
61   INTEGER, PUBLIC :: trn_id, trn_sponge_id
62# endif 
63   INTEGER, PUBLIC :: unb_id, vnb_id, ub2b_interp_id, vb2b_interp_id
64   INTEGER, PUBLIC :: ub2b_update_id, vb2b_update_id
65   INTEGER, PUBLIC :: e3t_id, e1u_id, e2v_id, sshn_id
66   INTEGER, PUBLIC :: scales_t_id
67   INTEGER, PUBLIC :: avt_id, avm_id, en_id                ! TKE related identificators
68   INTEGER, PUBLIC :: mbkt_id, ht0_id
69   INTEGER, PUBLIC :: kindic_agr
70   
71   !!----------------------------------------------------------------------
72   !! NEMO/NST 4.0 , NEMO Consortium (2018)
73   !! $Id$
74   !! Software governed by the CeCILL license (see ./LICENSE)
75   !!----------------------------------------------------------------------
76CONTAINS
77
78   INTEGER FUNCTION agrif_oce_alloc()
79      !!----------------------------------------------------------------------
80      !!                ***  FUNCTION agrif_oce_alloc  ***
81      !!----------------------------------------------------------------------
82      INTEGER, DIMENSION(2) :: ierr
83      !!----------------------------------------------------------------------
84      ierr(:) = 0
85      !
86      ALLOCATE( fspu(jpi,jpj), fspv(jpi,jpj),          &
87         &      fspt(jpi,jpj), fspf(jpi,jpj),               &
88         &      tabspongedone_tsn(jpi,jpj),                 &
89         &      utint_stage(jpi,jpj), vtint_stage(jpi,jpj), &
90# if defined key_top         
91         &      tabspongedone_trn(jpi,jpj),           &
92# endif   
93# if defined key_vertical
94         &      ht0_parent(jpi,jpj), mbkt_parent(jpi,jpj),  &
95         &      hu0_parent(jpi,jpj), mbku_parent(jpi,jpj),  &
96         &      hv0_parent(jpi,jpj), mbkv_parent(jpi,jpj),  &
97# endif     
98         &      tabspongedone_u  (jpi,jpj),           &
99         &      tabspongedone_v  (jpi,jpj), STAT = ierr(1) )
100
101      ALLOCATE( ubdy(jpi,jpj), vbdy(jpi,jpj), hbdy(jpi,jpj), STAT = ierr(2) )
102
103      agrif_oce_alloc = MAXVAL(ierr)
104      !
105   END FUNCTION agrif_oce_alloc
106
107#endif
108   !!======================================================================
109END MODULE agrif_oce
Note: See TracBrowser for help on using the repository browser.