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 10743 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/step.F90 – NEMO

Ignore:
Timestamp:
2019-03-12T12:06:29+01:00 (5 years ago)
Author:
davestorkey
Message:

First block of changes:

  1. New state variables uu, vv, e3X and corresponding temporary pointers.
  2. Updated code for time-filtering and time-level-swapping uu, vv, e3X.
  3. DYN routines not updated to use new variables at this stage.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/step.F90

    r10364 r10743  
    4444 
    4545   PUBLIC   stp   ! called by nemogcm.F90 
     46   PUBLIC   update_pointers ! called by nemo_init 
    4647 
    4748   !!---------------------------------------------------------------------- 
     
    276277!!jc2: dynnxt must be the latest call. e3t_b are indeed updated in that routine 
    277278                         CALL tra_nxt       ( kstp )  ! finalize (bcs) tracer fields at next time step and swap 
    278                          CALL dyn_nxt       ( kstp )  ! finalize (bcs) velocities at next time step and swap (always called after tra_nxt) 
     279                         CALL dyn_nxt       ( kstp, Nm1, Np1, uu(:,:,:,Nnn), vv(:,:,:,Nnn), e3t(:,:,:,Nnn), e3u(:,:,:,Nnn), e3v(:,:,:,Nnn) )  !  
    279280                         CALL ssh_swp       ( kstp )  ! swap of sea surface height 
    280       IF(.NOT.ln_linssh) CALL dom_vvl_sf_swp( kstp )  ! swap of vertical scale factors 
     281      ! 
     282      ! Swap time levels 
     283      Nrhs = Nm1 
     284      Nm1 = Nnn 
     285      Nnn = Np1 
     286      Np1 = Nrhs 
     287      ! 
     288      ! Update temporary pointers 
     289      CALL update_pointers() 
     290      ! 
     291      ! Note that 2-time-level indices don't need to be swapped because both "before" and "now" fields are derived in dom_vvl_sf_swp 
     292      IF(.NOT.ln_linssh) CALL dom_vvl_sf_swp( kstp, Nm1, Nnn, Nm1_2lev, Nnn_2lev )  ! interpolate vertical scale factors for Nnn time level 
    281293      ! 
    282294      IF( ln_diahsb  )   CALL dia_hsb       ( kstp )  ! - ML - global conservation diagnostics 
     
    329341   END SUBROUTINE stp 
    330342    
     343   SUBROUTINE update_pointers 
     344      !!---------------------------------------------------------------------- 
     345      !!                     ***  ROUTINE update_pointers  *** 
     346      !! 
     347      !! ** Purpose :   Associate temporary pointer arrays. 
     348      !!                For IMMERSE development phase only - to be deleted 
     349      !! 
     350      !! ** Method  : 
     351      !!---------------------------------------------------------------------- 
     352 
     353      ub => uu(:,:,:,Nm1); un => uu(:,:,:,Nnn); ua => uu(:,:,:,Np1) 
     354      vb => vv(:,:,:,Nm1); vn => vv(:,:,:,Nnn); va => vv(:,:,:,Np1) 
     355 
     356      e3t_b => e3t(:,:,:,Nm1); e3t_n => e3t(:,:,:,Nnn); e3t_a => e3t(:,:,:,Np1) 
     357      e3u_b => e3u(:,:,:,Nm1); e3u_n => e3u(:,:,:,Nnn); e3u_a => e3u(:,:,:,Np1) 
     358      e3v_b => e3v(:,:,:,Nm1); e3v_n => e3v(:,:,:,Nnn); e3v_a => e3v(:,:,:,Np1) 
     359 
     360      e3f_n => e3f(:,:,:) 
     361 
     362      e3w_b  => e3w (:,:,:,Nm1_2lev); e3w_n  => e3w (:,:,:,Nnn_2lev) 
     363      e3uw_b => e3uw(:,:,:,Nm1_2lev); e3uw_n => e3uw(:,:,:,Nnn_2lev) 
     364      e3vw_b => e3vw(:,:,:,Nm1_2lev); e3vw_n => e3vw(:,:,:,Nnn_2lev) 
     365 
     366   END SUBROUTINE update_pointers 
     367 
    331368   !!====================================================================== 
    332369END MODULE step 
Note: See TracChangeset for help on using the changeset viewer.