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 13351 – NEMO

Changeset 13351


Ignore:
Timestamp:
2020-07-28T17:20:03+02:00 (4 years ago)
Author:
jchanut
Message:

#2222, fixes mistakes when removing key_vertical - rename flag in namelist to prevent further mistakes - vertical refinement works fine in VORTEX

Location:
NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep/cfgs/SHARED/namelist_ref

    r13337 r13351  
    645645   ln_agrif_2way   = .true.  !  activate two way nesting 
    646646   ln_init_chfrpar = .false. !  initialize child grids from parent 
    647    ln_vremap       = .false. !  use vertical remapping 
     647   ln_vert_remap   = .false. !  use vertical remapping 
    648648   ln_chk_bathy    = .false. !  =T  check the parent bathymetry 
    649649   ln_spc_dyn      = .true.  !  use 0 as special value for dynamics 
  • NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep/src/NST/agrif_oce.F90

    r13337 r13351  
    2323   LOGICAL , PUBLIC ::   ln_spc_dyn    = .FALSE.   !: use zeros (.false.) or not (.true.) in 
    2424                                                   !: bdys dynamical fields interpolation 
    25    LOGICAL , PUBLIC ::   ln_vremap    = .FALSE.   !: use vertical remapping 
     25   LOGICAL , PUBLIC ::   ln_vert_remap = .FALSE.   !: use vertical remapping 
    2626   REAL(wp), PUBLIC ::   rn_sponge_tra = 0.002     !: sponge coeff. for tracers 
    2727   REAL(wp), PUBLIC ::   rn_sponge_dyn = 0.002     !: sponge coeff. for dynamics 
     
    5555   INTEGER,  PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: mbkt_parent, mbku_parent, mbkv_parent 
    5656 
    57    INTEGER, PUBLIC :: tsn_id                                                  ! AGRIF profile for tracers interpolation and update 
     57   INTEGER, PUBLIC :: ts_interp_id, ts_update_id                              ! AGRIF profile for tracers interpolation and update 
    5858   INTEGER, PUBLIC :: un_interp_id, vn_interp_id                              ! AGRIF profiles for interpolations 
    5959   INTEGER, PUBLIC :: un_update_id, vn_update_id                              ! AGRIF profiles for udpates 
    60    INTEGER, PUBLIC :: tsn_sponge_id, un_sponge_id, vn_sponge_id               ! AGRIF profiles for sponge layers 
     60   INTEGER, PUBLIC :: ts_sponge_id, un_sponge_id, vn_sponge_id                ! AGRIF profiles for sponge layers 
    6161   INTEGER, PUBLIC :: tsini_id, uini_id, vini_id, sshini_id                   ! AGRIF profile for initialization 
    6262# if defined key_top 
     
    7575!$AGRIF_DO_NOT_TREAT 
    7676   LOGICAL, PUBLIC :: use_sign_north 
    77    REAL, PUBLIC :: sign_north 
     77   REAL, PUBLIC    :: sign_north 
    7878   LOGICAL, PUBLIC :: l_ini_child = .FALSE. 
    7979   LOGICAL, PUBLIC :: l_vremap    = .FALSE. 
  • NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep/src/NST/agrif_oce_interp.F90

    r13337 r13351  
    169169      Agrif_SpecialValue    = 0._wp 
    170170      Agrif_UseSpecialValue = .TRUE. 
    171       l_vremap           = ln_vremap 
    172       ! 
    173       CALL Agrif_Bc_variable( tsn_id, procname=interptsn ) 
     171      l_vremap           = ln_vert_remap 
     172      ! 
     173      CALL Agrif_Bc_variable( ts_interp_id, procname=interptsn ) 
    174174      ! 
    175175      Agrif_UseSpecialValue = .FALSE. 
     
    194194      Agrif_SpecialValue    = 0.0_wp 
    195195      Agrif_UseSpecialValue = ln_spc_dyn 
    196       l_vremap              = ln_vremap 
     196      l_vremap              = ln_vert_remap 
    197197      ! 
    198198      use_sign_north = .TRUE. 
     
    785785      Agrif_SpecialValue    = 0.e0 
    786786      Agrif_UseSpecialValue = .TRUE. 
    787       l_vremap              = ln_vremap 
     787      l_vremap              = ln_vert_remap 
    788788      ! 
    789789      CALL Agrif_Bc_variable( avm_id, calledweight=zalpha, procname=interpavm )        
     
    828828         END DO 
    829829 
    830          IF( l_vremap .OR. l_ini_child) THEN 
     830         IF( l_vremap .OR. l_ini_child ) THEN 
    831831            ! Interpolate thicknesses 
    832832            ! Warning: these are masked, hence extrapolated prior interpolation. 
     
    15881588      ! --- West --- ! 
    15891589      IF(lk_west) THEN 
    1590          ispon  = nn_sponge_len * Agrif_irhox() + 1 
     1590         ispon  = nn_sponge_len * Agrif_irhox() 
    15911591         istart = nn_hls + 2                                 ! halo + land + 1 
    15921592         iend   = nn_hls + 1 + nbghostcells + ispon          ! halo + land + nbghostcells + sponge 
     
    16101610      ! --- East --- ! 
    16111611      IF(lk_east) THEN 
    1612          ispon  = nn_sponge_len * Agrif_irhox() + 1 
     1612         ispon  = nn_sponge_len * Agrif_irhox()  
    16131613         istart = jpiglo - ( nn_hls + nbghostcells + ispon ) ! halo + land + nbghostcells + sponge - 1 
    16141614         iend   = jpiglo - ( nn_hls + 1 )                    ! halo + land + 1                     - 1 
     
    16321632      ! --- South --- ! 
    16331633      IF(lk_south) THEN 
    1634          ispon  = nn_sponge_len * Agrif_irhoy() + 1  
     1634         ispon  = nn_sponge_len * Agrif_irhoy()  
    16351635         jstart = nn_hls + 2                                 ! halo + land + 1 
    16361636         jend   = nn_hls + 1 + nbghostcells + ispon          ! halo + land + nbghostcells + sponge 
     
    16541654      ! --- North --- ! 
    16551655      IF(lk_north) THEN 
    1656          ispon  = nn_sponge_len * Agrif_irhoy() + 1  
     1656         ispon  = nn_sponge_len * Agrif_irhoy()  
    16571657         jstart = jpjglo - ( nn_hls + nbghostcells + ispon)  ! halo + land + nbghostcells +sponge - 1 
    16581658         jend   = jpjglo - ( nn_hls + 1 )                    ! halo + land + 1            - 1 
  • NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep/src/NST/agrif_oce_sponge.F90

    r13337 r13351  
    5555      Agrif_SpecialValue    = 0._wp 
    5656      Agrif_UseSpecialValue = .TRUE. 
    57       l_vremap              = ln_vremap 
     57      l_vremap              = ln_vert_remap 
    5858      tabspongedone_tsn     = .FALSE. 
    5959      ! 
    60       CALL Agrif_Bc_Variable( tsn_sponge_id, calledweight=zcoef, procname=interptsn_sponge ) 
     60      CALL Agrif_Bc_Variable( ts_sponge_id, calledweight=zcoef, procname=interptsn_sponge ) 
    6161      ! 
    6262      Agrif_UseSpecialValue = .FALSE. 
     
    8282      Agrif_SpecialValue    = 0._wp 
    8383      Agrif_UseSpecialValue = ln_spc_dyn 
    84       l_vremap              = ln_vremap 
     84      l_vremap              = ln_vert_remap 
    8585      use_sign_north        = .TRUE. 
    8686      sign_north            = -1._wp 
  • NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep/src/NST/agrif_oce_update.F90

    r13337 r13351  
    5252      Agrif_UseSpecialValueInUpdate = .NOT.l_vremap 
    5353      Agrif_SpecialValueFineGrid    = 0._wp 
    54       l_vremap                      = ln_vremap 
     54      l_vremap                      = ln_vert_remap 
    5555      !  
    5656# if ! defined DECAL_FEEDBACK 
    57       CALL Agrif_Update_Variable(tsn_id, procname=updateTS) 
     57      CALL Agrif_Update_Variable(ts_update_id, procname=updateTS) 
    5858! near boundary update: 
    59 !      CALL Agrif_Update_Variable(tsn_id,locupdate=(/0,2/), procname=updateTS) 
     59!      CALL Agrif_Update_Variable(ts_update_id,locupdate=(/0,2/), procname=updateTS) 
    6060# else 
    61       CALL Agrif_Update_Variable(tsn_id, locupdate=(/1,0/),procname=updateTS) 
     61      CALL Agrif_Update_Variable(ts_update_id, locupdate=(/1,0/),procname=updateTS) 
    6262! near boundary update: 
    63 !      CALL Agrif_Update_Variable(tsn_id,locupdate=(/1,2/), procname=updateTS) 
     63!      CALL Agrif_Update_Variable(ts_update_id,locupdate=(/1,2/), procname=updateTS) 
    6464# endif 
    6565      ! 
     
    8181      Agrif_UseSpecialValueInUpdate = .FALSE. 
    8282      Agrif_SpecialValueFineGrid    = 0._wp 
    83       l_vremap                      = ln_vremap 
     83      l_vremap                      = ln_vert_remap 
    8484      use_sign_north                = .TRUE. 
    8585      sign_north                    = -1._wp 
     
    128128      ! 
    129129      use_sign_north = .FALSE. 
    130       ln_vremap = .FALSE. 
     130      l_vremap = .FALSE. 
    131131      ! 
    132132   END SUBROUTINE Agrif_Update_Dyn 
     
    428428         IF  ((l_1st_euler).AND.(Agrif_Nb_Step()==0) ) THEN 
    429429            ts(i1:i2,j1:j2,1:jpkm1,1:jpts,Kbb_a)  = ts(i1:i2,j1:j2,1:jpkm1,1:jpts,Kmm_a) 
    430          ENDIF 
     430         ENDIF          
    431431      ENDIF 
    432432      !  
  • NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep/src/NST/agrif_top_interp.F90

    r13337 r13351  
    4343      Agrif_SpecialValue    = 0._wp 
    4444      Agrif_UseSpecialValue = .TRUE. 
    45       l_vremap = ln_vremap 
     45      l_vremap = ln_vert_remap 
    4646      ! 
    4747      CALL Agrif_Bc_variable( trn_id, procname=interptrn ) 
     48      ! 
    4849      Agrif_UseSpecialValue = .FALSE. 
    49       l_vremap = .FALSE. 
     50      l_vremap              = .FALSE. 
    5051      ! 
    5152   END SUBROUTINE Agrif_trc 
  • NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep/src/NST/agrif_user.F90

    r13337 r13351  
    230230         ! 
    231231         kindic_agr = 0 
    232          IF( .NOT. ln_vremap ) THEN 
     232         IF( .NOT. ln_vert_remap ) THEN 
    233233            ! 
    234234            ! check if tmask and vertical scale factors agree with parent in sponge area: 
     
    251251      ENDIF 
    252252 
    253       IF( ln_vremap ) THEN 
     253      IF( ln_vert_remap ) THEN 
    254254      ! Additional constrain that should be removed someday: 
    255255         IF ( Agrif_Parent(jpk).GT.jpk ) THEN 
    256             CALL ctl_stop( ' With ln_vremap, child grids must have jpk greater or equal to the parent value' ) 
     256            CALL ctl_stop( ' With ln_vert_remap, child grids must have jpk greater or equal to the parent value' ) 
    257257         ENDIF 
    258258      ENDIF 
     
    294294      Agrif_SpecialValue    = 0._wp 
    295295      Agrif_UseSpecialValue = .TRUE. 
    296       l_vremap              = ln_vremap 
    297  
    298       CALL Agrif_Bc_variable(       tsn_id,calledweight=1.,procname=interptsn) 
     296      l_vremap              = ln_vert_remap 
     297 
     298      CALL Agrif_Bc_variable(ts_interp_id,calledweight=1.,procname=interptsn) 
    299299      CALL Agrif_Sponge 
    300300      tabspongedone_tsn = .FALSE. 
    301       CALL Agrif_Bc_variable(tsn_sponge_id,calledweight=1.,procname=interptsn_sponge) 
     301      CALL Agrif_Bc_variable(ts_sponge_id,calledweight=1.,procname=interptsn_sponge) 
    302302      ! reset tsa to zero 
    303303      ts(:,:,:,:,Krhs_a) = 0._wp 
     
    394394      ind3 = nn_hls + 2 + nbghostcells_y_s 
    395395 
    396       CALL agrif_declare_variable((/2,2,0,0/),(/ind2,ind3,0,0/)  ,(/'x','y','N','N'/),(/1,1,1,1/),(/jpi,jpj,jpk,jpts+1/),tsn_id) 
    397       CALL agrif_declare_variable((/2,2,0,0/),(/ind2,ind3,0,0/)  ,(/'x','y','N','N'/),(/1,1,1,1/),(/jpi,jpj,jpk,jpts+1/),tsn_sponge_id) 
     396      CALL agrif_declare_variable((/2,2,0,0/),(/ind2,ind3,0,0/)  ,(/'x','y','N','N'/),(/1,1,1,1/),(/jpi,jpj,jpk,jpts+1/),ts_interp_id) 
     397      CALL agrif_declare_variable((/2,2,0,0/),(/ind2,ind3,0,0/)  ,(/'x','y','N','N'/),(/1,1,1,1/),(/jpi,jpj,jpk,jpts+1/),ts_update_id) 
     398      CALL agrif_declare_variable((/2,2,0,0/),(/ind2,ind3,0,0/)  ,(/'x','y','N','N'/),(/1,1,1,1/),(/jpi,jpj,jpk,jpts+1/),ts_sponge_id) 
    398399      CALL agrif_declare_variable((/1,2,0,0/),(/ind2-1,ind3,0,0/),(/'x','y','N','N'/),(/1,1,1,1/),(/jpi,jpj,jpk,2/),un_interp_id) 
    399400      CALL agrif_declare_variable((/2,1,0,0/),(/ind2,ind3-1,0,0/),(/'x','y','N','N'/),(/1,1,1,1/),(/jpi,jpj,jpk,2/),vn_interp_id) 
     
    423424      ! 2. Type of interpolation 
    424425      !------------------------- 
    425       CALL Agrif_Set_bcinterp(       tsn_id,interp =AGRIF_linear) 
     426      CALL Agrif_Set_bcinterp( ts_interp_id,interp =AGRIF_linear) 
    426427      CALL Agrif_Set_bcinterp( un_interp_id,interp1=Agrif_linear,interp2=AGRIF_ppm   ) 
    427428      CALL Agrif_Set_bcinterp( vn_interp_id,interp1=AGRIF_ppm   ,interp2=Agrif_linear) 
    428429 
    429       CALL Agrif_Set_bcinterp( tsn_sponge_id,interp =AGRIF_linear) 
     430      CALL Agrif_Set_bcinterp(  ts_sponge_id,interp =AGRIF_linear) 
    430431      CALL Agrif_Set_bcinterp(  un_sponge_id,interp1=Agrif_linear,interp2=AGRIF_ppm   ) 
    431432      CALL Agrif_Set_bcinterp(  vn_sponge_id,interp1=AGRIF_ppm   ,interp2=Agrif_linear) 
     
    453454      ! 3. Location of interpolation 
    454455      !----------------------------- 
    455       CALL Agrif_Set_bc(       tsn_id, (/0,ind1-1/) ) ! if west,  rhox=3 and nbghost=3: columns 2 to 4 
     456      CALL Agrif_Set_bc( ts_interp_id, (/0,ind1-1/) ) ! if west,  rhox=3 and nbghost=3: columns 2 to 4 
    456457      CALL Agrif_Set_bc( un_interp_id, (/0,ind1-1/) )  
    457458      CALL Agrif_Set_bc( vn_interp_id, (/0,ind1-1/) ) 
    458459 
    459       CALL Agrif_Set_bc( tsn_sponge_id, (/-nn_sponge_len*Agrif_irhox()-1,0/) )  ! if west,  rhox=3, nn_sponge_len=2  
     460      CALL Agrif_Set_bc(  ts_sponge_id, (/-nn_sponge_len*Agrif_irhox()-1,0/) )  ! if west,  rhox=3, nn_sponge_len=2  
    460461      CALL Agrif_Set_bc(  un_sponge_id, (/-nn_sponge_len*Agrif_irhox()-1,0/) )  ! and nbghost=3:  
    461462      CALL Agrif_Set_bc(  vn_sponge_id, (/-nn_sponge_len*Agrif_irhox()-1,0/) )  ! columns 4 to 11 
     
    475476 
    476477# if defined UPD_HIGH 
    477       CALL Agrif_Set_Updatetype(      tsn_id,update  = Agrif_Update_Full_Weighting) 
     478      CALL Agrif_Set_Updatetype(ts_interp_id,update  = Agrif_Update_Full_Weighting) 
    478479      CALL Agrif_Set_Updatetype(un_update_id,update1 = Agrif_Update_Average       , update2 = Agrif_Update_Full_Weighting) 
    479480      CALL Agrif_Set_Updatetype(vn_update_id,update1 = Agrif_Update_Full_Weighting, update2 = Agrif_Update_Average       ) 
     
    491492 
    492493#else 
    493       CALL Agrif_Set_Updatetype(     tsn_id, update  = AGRIF_Update_Average) 
    494       CALL Agrif_Set_Updatetype(un_update_id,update1 = Agrif_Update_Copy   , update2 = Agrif_Update_Average) 
    495       CALL Agrif_Set_Updatetype(vn_update_id,update1 = Agrif_Update_Average, update2 = Agrif_Update_Copy   ) 
     494      CALL Agrif_Set_Updatetype(ts_update_id ,update  = AGRIF_Update_Average) 
     495      CALL Agrif_Set_Updatetype(un_update_id ,update1 = Agrif_Update_Copy   , update2 = Agrif_Update_Average) 
     496      CALL Agrif_Set_Updatetype(vn_update_id ,update1 = Agrif_Update_Average, update2 = Agrif_Update_Copy   ) 
    496497 
    497498      CALL Agrif_Set_Updatetype(ub2b_update_id,update1 = Agrif_Update_Copy   , update2 = Agrif_Update_Average) 
     
    766767      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    767768      NAMELIST/namagrif/ ln_agrif_2way, ln_init_chfrpar, rn_sponge_tra, rn_sponge_dyn, rn_trelax_tra, rn_trelax_dyn, & 
    768                        & ln_spc_dyn, ln_vremap, ln_chk_bathy 
     769                       & ln_spc_dyn, ln_vert_remap, ln_chk_bathy 
    769770      !!-------------------------------------------------------------------------------------- 
    770771      ! 
     
    787788         WRITE(numout,*) '      ad. time relaxation for dynamics  rn_trelax_dyn = ', rn_trelax_dyn 
    788789         WRITE(numout,*) '      use special values for dynamics   ln_spc_dyn    = ', ln_spc_dyn 
    789          WRITE(numout,*) '      vertical remapping                ln_vremap     = ', ln_vremap 
     790         WRITE(numout,*) '      vertical remapping                ln_vert_remap = ', ln_vert_remap 
    790791         WRITE(numout,*) '      check bathymetry                  ln_chk_bathy  = ', ln_chk_bathy 
    791792      ENDIF 
  • NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep/tests/VORTEX/MY_SRC/usrdef_nam.F90

    r13286 r13351  
    7171         rn_dx = Agrif_Parent(rn_dx)/Agrif_Rhox() 
    7272         rn_dy = Agrif_Parent(rn_dy)/Agrif_Rhoy() 
    73          rn_dz = Agrif_Parent(rn_dz) 
     73!         rn_dz = Agrif_Parent(rn_dz) 
    7474         rn_ppgphi0 = Agrif_Parent(rn_ppgphi0) 
    7575      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.