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 3211 for branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90 – NEMO

Ignore:
Timestamp:
2011-12-11T16:00:26+01:00 (12 years ago)
Author:
spickles2
Message:

Stephen Pickles, 11 Dec 2011

Commit to bring the rest of the DCSE NEMO development branch
in line with the latest development version. This includes
array index re-ordering of all OPA_SRC/.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90

    r2715 r3211  
    2525  
    2626   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: trdtx, trdty, trdt  !: 
     27 
     28   !! * Control permutation of array indices 
     29#  include "dom_oce_ftrans.h90" 
     30   !! These are all private to the module, 
     31   !! so we do not need a separate file of ftrans directives 
     32!FTRANS trdtx trdty trdt :I :I :z 
    2733 
    2834   !! * Substitutions 
     
    6369      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    6470      USE wrk_nemo, ONLY:   ztrds => wrk_3d_10   ! 3D workspace 
     71      !! DCSE_NEMO: Need additional directives for renamed module variables 
     72!FTRANS ztrds :I :I :z 
     73 
    6574      ! 
    6675      INTEGER                         , INTENT(in)           ::  kt      ! time step 
     
    6877      INTEGER                         , INTENT(in)           ::  ktra    ! tracer index 
    6978      INTEGER                         , INTENT(in)           ::  ktrd    ! tracer trend index 
    70       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in)           ::  ptrd    ! tracer trend  or flux 
    71       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL ::  pun     ! velocity  
    72       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL ::  ptra    ! Tracer variable  
     79 
     80      !! DCSE_NEMO: This style defeats ftrans 
     81!     REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in)           ::  ptrd    ! tracer trend  or flux 
     82!     REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL ::  pun     ! velocity  
     83!     REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL ::  ptra    ! Tracer variable  
     84 
     85!FTRANS ptrd pun ptra :I :I :z 
     86      REAL(wp), INTENT(in)           ::  ptrd(jpi,jpj,jpk)    ! tracer trend  or flux 
     87      REAL(wp), INTENT(in), OPTIONAL ::  pun(jpi,jpj,jpk)     ! velocity  
     88      REAL(wp), INTENT(in), OPTIONAL ::  ptra(jpi,jpj,jpk)    ! Tracer variable  
    7389      !!---------------------------------------------------------------------- 
    7490 
     
    142158   END SUBROUTINE trd_tra 
    143159 
     160   !! * Reset control of array index permutation 
     161!FTRANS CLEAR 
     162#  include "dom_oce_ftrans.h90" 
     163!FTRANS trdtx trdty trdt :I :I :z 
    144164 
    145165   SUBROUTINE trd_tra_adv( pf, pun, ptn, cdir, ptrd ) 
     
    153173      !!                k-advective trends = -un. di+1[T] = -( dk+1[fi] - tn dk+1[un] ) 
    154174      !!---------------------------------------------------------------------- 
    155       REAL(wp)        , INTENT(in ), DIMENSION(jpi,jpj,jpk) ::   pf      ! advective flux in one direction 
    156       REAL(wp)        , INTENT(in ), DIMENSION(jpi,jpj,jpk) ::   pun     ! now velocity  in one direction 
    157       REAL(wp)        , INTENT(in ), DIMENSION(jpi,jpj,jpk) ::   ptn     ! now or before tracer  
     175 
     176      !! DCSE_NEMO: This style defeats ftrans 
     177!     REAL(wp)        , INTENT(in ), DIMENSION(jpi,jpj,jpk) ::   pf      ! advective flux in one direction 
     178!     REAL(wp)        , INTENT(in ), DIMENSION(jpi,jpj,jpk) ::   pun     ! now velocity  in one direction 
     179!     REAL(wp)        , INTENT(in ), DIMENSION(jpi,jpj,jpk) ::   ptn     ! now or before tracer  
     180 
     181!FTRANS pf pun ptn :I :I :z 
     182      REAL(wp)        , INTENT(in )            ::   pf(jpi,jpj,jpk)      ! advective flux in one direction 
     183      REAL(wp)        , INTENT(in )            ::   pun(jpi,jpj,jpk)     ! now velocity  in one direction 
     184      REAL(wp)        , INTENT(in )            ::   ptn(jpi,jpj,jpk)     ! now or before tracer  
    158185      CHARACTER(len=1), INTENT(in )                         ::   cdir    ! X/Y/Z direction 
    159       REAL(wp)        , INTENT(out), DIMENSION(jpi,jpj,jpk) ::   ptrd    ! advective trend in one direction 
     186 
     187!     REAL(wp)        , INTENT(out), DIMENSION(jpi,jpj,jpk) ::   ptrd    ! advective trend in one direction 
     188!FTRANS ptrd :I :I :z 
     189      REAL(wp)        , INTENT(out)            ::   ptrd(jpi,jpj,jpk)    ! advective trend in one direction 
    160190      ! 
    161191      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     
    176206      ! 
    177207      ! 
     208#if defined key_z_first 
     209      DO jj = 2, jpjm1 
     210         DO ji = 2, jpim1 
     211            DO jk = 1, jpkm1 
     212#else 
    178213      DO jk = 1, jpkm1 
    179214         DO jj = 2, jpjm1 
    180215            DO ji = fs_2, fs_jpim1   ! vector opt. 
     216#endif 
    181217               zbtr    = 1.e0/ ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
    182218               ptrd(ji,jj,jk) = - zbtr * (      pf (ji,jj,jk) - pf (ji-ii,jj-ij,jk-ik)                    & 
     
    200236      INTEGER                         , INTENT(in)           ::  ktra    ! tracer index 
    201237      INTEGER                         , INTENT(in)           ::  ktrd    ! tracer trend index 
    202       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in)           ::  ptrd    ! tracer trend  
    203       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL ::  pu      ! velocity  
    204       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL ::  ptra    ! Tracer variable  
     238      !! DCSE_NEMO: This style defeats ftrans 
     239!     REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in)           ::  ptrd    ! tracer trend  or flux 
     240!     REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL ::  pu      ! velocity  
     241!     REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL ::  ptra    ! Tracer variable  
     242 
     243!FTRANS ptrd pu ptra :I :I :z 
     244      REAL(wp), INTENT(in)           ::  ptrd(jpi,jpj,jpk)    ! tracer trend  or flux 
     245      REAL(wp), INTENT(in), OPTIONAL ::  pu(jpi,jpj,jpk)      ! velocity  
     246      REAL(wp), INTENT(in), OPTIONAL ::  ptra(jpi,jpj,jpk)    ! Tracer variable  
     247 
    205248      WRITE(*,*) 'trd_3d: You should not have seen this print! error ?', ptrd(1,1,1), ptra(1,1,1), pu(1,1,1),   & 
    206249         &                                                               ktrd, ktra, ctype, kt 
Note: See TracChangeset for help on using the changeset viewer.