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 12624 for NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA – NEMO

Ignore:
Timestamp:
2020-03-29T12:55:27+02:00 (4 years ago)
Author:
techene
Message:

all: add e3 substitute and limit precompiled files lines to about 130 character, change key_LF into key_QCO, change module name (dynatfQCO, traatfQCO, stepLF)

Location:
NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traadv.F90

    r12377 r12624  
    6565   INTEGER, PARAMETER ::   np_UBS     = 4   ! 3rd order Upstream Biased Scheme 
    6666   INTEGER, PARAMETER ::   np_QCK     = 5   ! QUICK scheme 
    67     
     67 
     68#  include "domzgr_substitute.h90" 
    6869   !!---------------------------------------------------------------------- 
    6970   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    103104      IF( ln_wave .AND. ln_sdw )  THEN 
    104105         DO jk = 1, jpkm1                                                       ! eulerian transport + Stokes Drift 
    105             zuu(:,:,jk) = e2u  (:,:) * e3u(:,:,jk,Kmm) * ( uu(:,:,jk,Kmm) + usd(:,:,jk) ) 
    106             zvv(:,:,jk) = e1v  (:,:) * e3v(:,:,jk,Kmm) * ( vv(:,:,jk,Kmm) + vsd(:,:,jk) ) 
    107             zww(:,:,jk) = e1e2t(:,:)                 * ( ww(:,:,jk) + wsd(:,:,jk) ) 
     106            zuu(:,:,jk) =   & 
     107               &  e2u  (:,:) * e3u(:,:,jk,Kmm) * ( uu(:,:,jk,Kmm) + usd(:,:,jk) ) 
     108            zvv(:,:,jk) =   &  
     109               &  e1v  (:,:) * e3v(:,:,jk,Kmm) * ( vv(:,:,jk,Kmm) + vsd(:,:,jk) ) 
     110            zww(:,:,jk) =   &  
     111               &  e1e2t(:,:)                 * ( ww(:,:,jk) + wsd(:,:,jk) ) 
    108112         END DO 
    109113      ELSE 
  • NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traatfQCO.F90

    r12623 r12624  
    1 MODULE traatfLF 
     1MODULE traatfqco 
    22   !!====================================================================== 
    3    !!                       ***  MODULE  traatfLF  *** 
     3   !!                       ***  MODULE  traatfqco  *** 
    44   !! Ocean active tracers:  Asselin time filtering for temperature and salinity 
    55   !!====================================================================== 
     
    5252   PRIVATE 
    5353 
    54    PUBLIC   tra_atf_lf       ! routine called by step.F90 
     54   PUBLIC   tra_atf_qco       ! routine called by step.F90 
    5555   PUBLIC   tra_atf_fix_lf   ! to be used in trcnxt !!st WARNING discrepancy here interpol is used 
    56    PUBLIC   tra_atf_qe_lf    ! to be used in trcnxt !!st WARNING discrepancy here interpol is used 
     56   PUBLIC   tra_atf_qco_lf    ! to be used in trcnxt !!st WARNING discrepancy here interpol is used 
    5757 
    5858   !! * Substitutions 
    5959#  include "do_loop_substitute.h90" 
     60#  include "domzgr_substitute.h90" 
    6061   !!---------------------------------------------------------------------- 
    6162   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    6566CONTAINS 
    6667 
    67    SUBROUTINE tra_atf_lf( kt, Kbb, Kmm, Kaa, pts ) 
     68   SUBROUTINE tra_atf_qco( kt, Kbb, Kmm, Kaa, pts ) 
    6869      !!---------------------------------------------------------------------- 
    6970      !!                   ***  ROUTINE traatfLF  *** 
     
    9596      !!---------------------------------------------------------------------- 
    9697      ! 
    97       IF( ln_timing )   CALL timing_start( 'tra_atf_lf') 
     98      IF( ln_timing )   CALL timing_start( 'tra_atf_qco') 
    9899      ! 
    99100      IF( kt == nit000 ) THEN 
    100101         IF(lwp) WRITE(numout,*) 
    101          IF(lwp) WRITE(numout,*) 'tra_atf_lf : apply Asselin time filter to "now" fields' 
     102         IF(lwp) WRITE(numout,*) 'tra_atf_qco : apply Asselin time filter to "now" fields' 
    102103         IF(lwp) WRITE(numout,*) '~~~~~~~' 
    103104      ENDIF 
     
    131132         ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3t*T)/e3tn; e3tn cancel from pts(Kmm) terms 
    132133         DO jk = 1, jpkm1 
    133             ztrdt(:,:,jk) = ( pts(:,:,jk,jp_tem,Kaa)*e3t(:,:,jk,Kaa) / e3t(:,:,jk,Kmm) - pts(:,:,jk,jp_tem,Kmm)) * zfact 
    134             ztrds(:,:,jk) = ( pts(:,:,jk,jp_sal,Kaa)*e3t(:,:,jk,Kaa) / e3t(:,:,jk,Kmm) - pts(:,:,jk,jp_sal,Kmm)) * zfact 
     134            ! ztrdt(:,:,jk) = ( pts(:,:,jk,jp_tem,Kaa)*e3t(:,:,jk,Kaa) / e3t(:,:,jk,Kmm) - pts(:,:,jk,jp_tem,Kmm)) * zfact 
     135            ! ztrds(:,:,jk) = ( pts(:,:,jk,jp_sal,Kaa)*e3t(:,:,jk,Kaa) / e3t(:,:,jk,Kmm) - pts(:,:,jk,jp_sal,Kmm)) * zfact 
     136            ztrdt(:,:,jk) = ( pts(:,:,jk,jp_tem,Kaa) * (1._wp + r3t(:,:,Kaa) * tmask(:,:,jk))/(1._wp + r3t(:,:,Kmm) * tmask(:,:,jk))  & 
     137               &            - pts(:,:,jk,jp_tem,Kmm) ) * zfact 
     138            ztrds(:,:,jk) = ( pts(:,:,jk,jp_sal,Kaa) * (1._wp + r3t(:,:,Kaa) * tmask(:,:,jk))/(1._wp + r3t(:,:,Kmm) * tmask(:,:,jk))  & 
     139               &            - pts(:,:,jk,jp_sal,Kmm) ) * zfact 
    135140         END DO 
    136141         CALL trd_tra( kt, Kmm, Kaa, 'TRA', jp_tem, jptra_tot, ztrdt ) 
     
    156161      ELSE                                            ! Leap-Frog + Asselin filter time stepping 
    157162         ! 
    158          IF( ln_linssh ) THEN   ;   CALL tra_atf_fix_lf( kt, Kbb, Kmm, Kaa, nit000,      'TRA', pts, jpts )  ! linear free surface 
    159          ELSE                   ;   CALL tra_atf_qe_lf( kt, Kbb, Kmm, Kaa, nit000, rdt, 'TRA', pts, sbc_tsc, sbc_tsc_b, jpts )  ! non-linear free surface 
    160          ENDIF 
    161          ! 
    162          CALL lbc_lnk_multi( 'traatfLF', pts(:,:,:,jp_tem,Kbb) , 'T', 1., pts(:,:,:,jp_sal,Kbb) , 'T', 1., & 
     163         IF ( ln_linssh ) THEN   ;   CALL tra_atf_fix_lf( kt, Kbb, Kmm, Kaa, nit000,      'TRA', pts, jpts )  ! linear free surface 
     164         ELSE                    ;   CALL tra_atf_qco_lf( kt, Kbb, Kmm, Kaa, nit000, rdt, 'TRA', pts, sbc_tsc, sbc_tsc_b, jpts )  ! non-linear free surface 
     165         ENDIF 
     166         ! 
     167         CALL lbc_lnk_multi( 'traatfqco', pts(:,:,:,jp_tem,Kbb) , 'T', 1., pts(:,:,:,jp_sal,Kbb) , 'T', 1., & 
    163168                  &                    pts(:,:,:,jp_tem,Kmm) , 'T', 1., pts(:,:,:,jp_sal,Kmm) , 'T', 1., & 
    164169                  &                    pts(:,:,:,jp_tem,Kaa), 'T', 1., pts(:,:,:,jp_sal,Kaa), 'T', 1.  ) 
     
    181186         &                                  tab3d_2=pts(:,:,:,jp_sal,Kmm), clinfo2=       ' Sn: ', mask2=tmask ) 
    182187      ! 
    183       IF( ln_timing )   CALL timing_stop('tra_atf_lf') 
    184       ! 
    185    END SUBROUTINE tra_atf_lf 
     188      IF( ln_timing )   CALL timing_stop('tra_atf_qco') 
     189      ! 
     190   END SUBROUTINE tra_atf_qco 
    186191 
    187192 
     
    227232 
    228233 
    229    SUBROUTINE tra_atf_qe_lf( kt, Kbb, Kmm, Kaa, kit000, p2dt, cdtype, pt, psbc_tc, psbc_tc_b, kjpt ) 
     234   SUBROUTINE tra_atf_qco_lf( kt, Kbb, Kmm, Kaa, kit000, p2dt, cdtype, pt, psbc_tc, psbc_tc_b, kjpt ) 
    230235      !!---------------------------------------------------------------------- 
    231236      !!                   ***  ROUTINE tra_atf_vvl  *** 
     
    234239      !! 
    235240      !! ** Method  : - Apply a thickness weighted Asselin time filter on now fields. 
    236       !!             pt(Kmm)  = ( e3t(Kmm)*pt(Kmm) + atfp*[ e3t(Kbb)*pt(Kbb) - 2 e3t(Kmm)*pt(Kmm) + e3t_a*pt(Kaa) ] ) 
    237       !!                       /( e3t(Kmm)         + atfp*[ e3t(Kbb)         - 2 e3t(Kmm)         + e3t(Kaa)    ] ) 
     241      !!             pt(Kmm)  = ( e3t_m*pt(Kmm) + atfp*[ e3t_b*pt(Kbb) - 2 e3t_m*pt(Kmm) + e3t_a*pt(Kaa) ] ) 
     242      !!                       /( e3t_m         + atfp*[ e3t_b         - 2 e3t_m         + e3t_a    ] ) 
    238243      !! 
    239244      !! ** Action  : - pt(Kmm) ready for the next time step 
     
    258263      IF( kt == kit000 )  THEN 
    259264         IF(lwp) WRITE(numout,*) 
    260          IF(lwp) WRITE(numout,*) 'tra_atf_vvl : time filtering', cdtype 
     265         IF(lwp) WRITE(numout,*) 'tra_atf_qco : time filtering', cdtype 
    261266         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
    262267      ENDIF 
     
    325330                  IF ( jk == misfkb_cav(ji,jj) ) THEN 
    326331                     ztc_f  = ztc_f  - zfact1 * ( risf_cav_tsc(ji,jj,jn) - risf_cav_tsc_b(ji,jj,jn) )  & 
    327                             &                 * e3t(ji,jj,jk,Kmm) / rhisf_tbl_cav(ji,jj) * rfrac_tbl_cav(ji,jj) 
     332                            &                 * e3t(ji,jj,jk,Kmm) / rhisf_tbl_cav(ji,jj)               & 
     333                            &                 * rfrac_tbl_cav(ji,jj) 
    328334                  END IF 
    329335               END IF 
     
    339345                  IF ( jk == misfkb_par(ji,jj) ) THEN 
    340346                     ztc_f  = ztc_f  - zfact1 * ( risf_par_tsc(ji,jj,jn) - risf_par_tsc_b(ji,jj,jn) )  & 
    341                             &                 * e3t(ji,jj,jk,Kmm) / rhisf_tbl_par(ji,jj) * rfrac_tbl_par(ji,jj) 
     347                            &                 * e3t(ji,jj,jk,Kmm) / rhisf_tbl_par(ji,jj)               & 
     348                            &                 * rfrac_tbl_par(ji,jj) 
    342349                  END IF 
    343350               END IF 
     
    380387      ENDIF 
    381388      ! 
    382    END SUBROUTINE tra_atf_qe_lf 
     389   END SUBROUTINE tra_atf_qco_lf 
    383390 
    384391   !!====================================================================== 
    385 END MODULE traatfLF 
     392END MODULE traatfqco 
Note: See TracChangeset for help on using the changeset viewer.