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 14200 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/stpmlf.F90 – NEMO

Ignore:
Timestamp:
2020-12-17T15:36:44+01:00 (4 years ago)
Author:
mcastril
Message:

Merging r14117 through r14199 into dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/stpmlf.F90

    r14053 r14200  
    3636   !!---------------------------------------------------------------------- 
    3737 
    38 #if defined key_qco 
    39    !!---------------------------------------------------------------------- 
    40    !!   'key_qco'       Quasi-Eulerian vertical coordonate 
    41    !!---------------------------------------------------------------------- 
    42     
    43    !!---------------------------------------------------------------------- 
    44    !!   stp_MLF       : NEMO modified Leap Frog time-stepping with qco 
     38#if defined key_qco   ||   defined key_linssh 
     39   !!---------------------------------------------------------------------- 
     40   !!   'key_qco'                        Quasi-Eulerian vertical coordinate 
     41   !!                          OR 
     42   !!   'key_linssh                       Fixed in time vertical coordinate 
     43   !!---------------------------------------------------------------------- 
     44 
     45   !!---------------------------------------------------------------------- 
     46   !!   stp_MLF       : NEMO modified Leap Frog time-stepping with qco or linssh 
    4547   !!---------------------------------------------------------------------- 
    4648   USE step_oce       ! time stepping definition modules 
     
    196198      END DO 
    197199                            CALL ssh_nxt    ( kstp, Nbb, Nnn, ssh,  Naa )   ! after ssh (includes call to div_hor) 
    198       IF( .NOT.ln_linssh )  THEN 
     200      IF( .NOT.lk_linssh )  THEN 
    199201                             CALL dom_qco_r3c( ssh(:,:,Naa), r3t(:,:,Naa), r3u(:,:,Naa), r3v(:,:,Naa)           )   ! "after" ssh/h_0 ratio at t,u,v pts 
    200202         IF( ln_dynspg_exp ) CALL dom_qco_r3c( ssh(:,:,Nnn), r3t(:,:,Nnn), r3u(:,:,Nnn), r3v(:,:,Nnn), r3f(:,:) )   ! spg_exp : needed only for "now" ssh/h_0 ratio at f point 
     
    225227      IF( ln_dynspg_ts ) THEN                         ! vertical scale factors and vertical velocity need to be updated 
    226228                            CALL div_hor    ( kstp, Nbb, Nnn )                ! Horizontal divergence  (2nd call in time-split case) 
    227          IF(.NOT.ln_linssh) CALL dom_qco_r3c ( ssh(:,:,Naa), r3t(:,:,Naa), r3u(:,:,Naa), r3v(:,:,Naa), r3f(:,:) )   ! update ssh/h_0 ratio at t,u,v,f pts  
     229         IF(.NOT.lk_linssh) CALL dom_qco_r3c ( ssh(:,:,Naa), r3t(:,:,Naa), r3u(:,:,Naa), r3v(:,:,Naa), r3f(:,:) )   ! update ssh/h_0 ratio at t,u,v,f pts  
    228230      ENDIF 
    229231                            CALL dyn_zdf    ( kstp, Nbb, Nnn, Nrhs, uu, vv, Naa  )  ! vertical diffusion 
     
    257259      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    258260                         CALL ssh_atf    ( kstp, Nbb, Nnn, Naa, ssh )            ! time filtering of "now" sea surface height 
    259                         CALL dom_qco_r3c( ssh(:,:,Nnn), r3t_f, r3u_f, r3v_f )   ! "now" ssh/h_0 ratio from filtrered ssh 
     261      IF(.NOT.lk_linssh) CALL dom_qco_r3c( ssh(:,:,Nnn), r3t_f, r3u_f, r3v_f )   ! "now" ssh/h_0 ratio from filtrered ssh 
    260262#if defined key_top 
    261263      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     
    311313                         CALL finalize_lbc  ( kstp, Nbb     , Naa, uu, vv, ts )   ! boundary conditions 
    312314                         CALL tra_atf_qco   ( kstp, Nbb, Nnn, Naa        , ts )   ! time filtering of "now" tracer arrays 
    313                          CALL dyn_atf_qco   ( kstp, Nbb, Nnn, Naa, uu, vv     )   ! time filtering of "now" velocities  
     315                         CALL dyn_atf_qco   ( kstp, Nbb, Nnn, Naa, uu, vv     )   ! time filtering of "now" velocities 
     316      IF(.NOT.lk_linssh) THEN 
    314317                         r3t(:,:,Nnn) = r3t_f(:,:)                                ! update now ssh/h_0 with time filtered values 
    315318                         r3u(:,:,Nnn) = r3u_f(:,:) 
    316319                         r3v(:,:,Nnn) = r3v_f(:,:) 
     320      ENDIF 
    317321 
    318322      ! 
     
    367371      IF( kstp == nitend .OR. indic < 0 ) THEN 
    368372                      CALL iom_context_finalize(      cxios_context          ) ! needed for XIOS+AGRIF 
    369          IF( lrxios ) CALL iom_context_finalize(      crxios_context          ) 
    370373         IF( ln_crs ) CALL iom_context_finalize( trim(cxios_context)//"_crs" ) ! 
    371374      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.