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.
Changeset 14086 for NEMO/trunk/src/NST/agrif_oce.F90 – NEMO

Ignore:
Timestamp:
2020-12-04T12:37:14+01:00 (3 years ago)
Author:
cetlod
Message:

Adding AGRIF branches into the trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/NST/agrif_oce.F90

    r13286 r14086  
    2323   LOGICAL , PUBLIC ::   ln_spc_dyn    = .FALSE.   !: use zeros (.false.) or not (.true.) in 
    2424                                                   !: bdys dynamical fields interpolation 
    25    REAL(wp), PUBLIC ::   rn_sponge_tra = 2800.     !: sponge coeff. for tracers 
    26    REAL(wp), PUBLIC ::   rn_sponge_dyn = 2800.     !: sponge coeff. for dynamics 
     25   LOGICAL , PUBLIC ::   ln_vert_remap = .FALSE.   !: use vertical remapping 
     26   REAL(wp), PUBLIC ::   rn_sponge_tra = 0.002     !: sponge coeff. for tracers 
     27   REAL(wp), PUBLIC ::   rn_sponge_dyn = 0.002     !: sponge coeff. for dynamics 
    2728   REAL(wp), PUBLIC ::   rn_trelax_tra = 0.01      !: time relaxation parameter for tracers 
    2829   REAL(wp), PUBLIC ::   rn_trelax_dyn = 0.01      !: time relaxation parameter for momentum 
     
    3031   ! 
    3132   INTEGER , PUBLIC, PARAMETER ::   nn_sponge_len = 2  !: Sponge width (in number of parent grid points) 
     33   INTEGER , PUBLIC, PARAMETER ::   nn_shift_bar = 0   !: nb of coarse grid points by which we shift 2d interface 
    3234 
    3335   LOGICAL , PUBLIC :: spongedoneT = .FALSE.       !: tracer   sponge layer indicator 
     
    3537   LOGICAL , PUBLIC :: lk_agrif_fstep = .TRUE.     !: if true: first step 
    3638   LOGICAL , PUBLIC :: lk_agrif_debug = .FALSE.    !: if true: print debugging info 
    37  
     39   LOGICAL , PUBLIC :: lk_tint2d_notinterp = .FALSE. !: if true, no time interp 
    3840   LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_tsn 
    3941# if defined key_top 
     
    4648   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fspu, fspv !: sponge arrays 
    4749   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fspt, fspf !:   "      " 
     50   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fspu_2d,fspv_2d  !: sponge arrays (2d mode) 
     51   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fspt_2d, fspf_2d !:   "       "     "   " 
    4852 
    4953   ! Barotropic arrays used to store open boundary data during time-splitting loop: 
     
    5155   INTEGER , PUBLIC,              SAVE                 ::  Kbb_a, Kmm_a, Krhs_a   !: AGRIF module-specific copies of time-level indices 
    5256 
    53    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ht0_parent, hu0_parent, hv0_parent 
    54    INTEGER,  PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: mbkt_parent, mbku_parent, mbkv_parent 
     57   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   :: ht0_parent, hu0_parent, hv0_parent 
     58   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3t0_parent, e3u0_parent, e3v0_parent 
     59   INTEGER,  PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   :: mbkt_parent, mbku_parent, mbkv_parent 
    5560 
    56    INTEGER, PUBLIC :: tsn_id                                                  ! AGRIF profile for tracers interpolation and update 
     61 
     62   INTEGER, PUBLIC :: ts_interp_id, ts_update_id                              ! AGRIF profile for tracers interpolation and update 
    5763   INTEGER, PUBLIC :: un_interp_id, vn_interp_id                              ! AGRIF profiles for interpolations 
    5864   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 
     65   INTEGER, PUBLIC :: ts_sponge_id, un_sponge_id, vn_sponge_id                ! AGRIF profiles for sponge layers (3d) 
     66   INTEGER, PUBLIC :: unb_sponge_id, vnb_sponge_id                            ! AGRIF profiles for sponge layers (2d) 
    6067   INTEGER, PUBLIC :: tsini_id, uini_id, vini_id, sshini_id                   ! AGRIF profile for initialization 
    6168# if defined key_top 
    6269   INTEGER, PUBLIC :: trn_id, trn_sponge_id 
    6370# endif   
    64    INTEGER, PUBLIC :: unb_id, vnb_id, ub2b_interp_id, vb2b_interp_id 
    65    INTEGER, PUBLIC :: ub2b_update_id, vb2b_update_id 
    66    INTEGER, PUBLIC :: e3t_id, e1u_id, e2v_id, sshn_id 
     71   INTEGER, PUBLIC :: unb_interp_id, vnb_interp_id, ub2b_interp_id, vb2b_interp_id 
     72   INTEGER, PUBLIC :: ub2b_update_id, vb2b_update_id, unb_update_id, vnb_update_id 
     73   INTEGER, PUBLIC :: ub2b_cor_id, vb2b_cor_id 
     74   INTEGER, PUBLIC :: e3t_id, sshn_id 
    6775   INTEGER, PUBLIC :: scales_t_id 
    6876   INTEGER, PUBLIC :: avt_id, avm_id, en_id                ! TKE related identificators 
    69    INTEGER, PUBLIC :: mbkt_id, ht0_id 
     77   INTEGER, PUBLIC :: mbkt_id, ht0_id, e3t0_interp_id 
    7078   INTEGER, PUBLIC :: glamt_id, gphit_id 
     79   INTEGER, PUBLIC :: batupd_id 
    7180   INTEGER, PUBLIC :: kindic_agr 
    7281 
     
    7483!$AGRIF_DO_NOT_TREAT 
    7584   LOGICAL, PUBLIC :: use_sign_north 
    76    REAL, PUBLIC :: sign_north 
     85   REAL, PUBLIC    :: sign_north 
    7786   LOGICAL, PUBLIC :: l_ini_child = .FALSE. 
    78 # if defined key_vertical 
    79    LOGICAL, PUBLIC :: l_vremap    = .TRUE. 
    80 # else 
    8187   LOGICAL, PUBLIC :: l_vremap    = .FALSE. 
    82 # endif 
    8388!$AGRIF_END_DO_NOT_TREAT 
    8489    
     
    100105      ALLOCATE( fspu(jpi,jpj), fspv(jpi,jpj),          & 
    101106         &      fspt(jpi,jpj), fspf(jpi,jpj),               & 
     107         &      fspu_2d(jpi,jpj), fspv_2d(jpi,jpj),         & 
     108         &      fspt_2d(jpi,jpj), fspf_2d(jpi,jpj),         & 
    102109         &      tabspongedone_tsn(jpi,jpj),                 & 
    103110         &      utint_stage(jpi,jpj), vtint_stage(jpi,jpj), & 
     
    116123      ! 
    117124   END FUNCTION agrif_oce_alloc 
    118  
    119125#endif 
    120126   !!====================================================================== 
Note: See TracChangeset for help on using the changeset viewer.