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/TRA/tradmp.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/TRA/tradmp.F90

    r2715 r3211  
    6464   INTEGER  ::   nn_file =    2      ! = 1 create a damping.coeff NetCDF file  
    6565 
     66   !! * Control permutation of array indices 
     67#  include "oce_ftrans.h90" 
     68#  include "dom_oce_ftrans.h90" 
     69#  include "zdf_oce_ftrans.h90" 
     70#  include "dtatem_ftrans.h90" 
     71#  include "dtasal_ftrans.h90" 
     72#  include "tradmp_ftrans.h90" 
     73 
    6674   !! * Substitutions 
    6775#  include "domzgr_substitute.h90" 
     
    112120      ! 
    113121      CASE( 0 )                   !==  newtonian damping throughout the water column  ==! 
     122#if defined key_z_first 
     123         DO jj = 2, jpjm1 
     124            DO ji = 2, jpim1 
     125               DO jk = 1, jpkm1 
     126#else 
    114127         DO jk = 1, jpkm1 
    115128            DO jj = 2, jpjm1 
    116129               DO ji = fs_2, fs_jpim1   ! vector opt. 
     130#endif 
    117131                  zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_tem) ) 
    118132                  zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_sal) ) 
     
    126140         ! 
    127141      CASE ( 1 )                  !==  no damping in the turbocline (avt > 5 cm2/s)  ==! 
     142#if defined key_z_first 
     143         DO jj = 2, jpjm1 
     144            DO ji = 2, jpim1 
     145               DO jk = 1, jpkm1 
     146#else 
    128147         DO jk = 1, jpkm1 
    129148            DO jj = 2, jpjm1 
    130149               DO ji = fs_2, fs_jpim1   ! vector opt. 
     150#endif 
    131151                  IF( avt(ji,jj,jk) <= 5.e-4_wp ) THEN 
    132152                     zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_tem) ) 
     
    145165         ! 
    146166      CASE ( 2 )                  !==  no damping in the mixed layer   ==! 
     167#if defined key_z_first 
     168         DO jj = 2, jpjm1 
     169            DO ji = 2, jpim1 
     170               DO jk = 1, jpkm1 
     171#else 
    147172         DO jk = 1, jpkm1 
    148173            DO jj = 2, jpjm1 
    149174               DO ji = fs_2, fs_jpim1   ! vector opt. 
     175#endif 
    150176                  IF( fsdept(ji,jj,jk) >= hmlp (ji,jj) ) THEN 
    151177                     zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_tem) ) 
     
    252278      !! ** Action  : - resto, the damping coeff. for T and S 
    253279      !!---------------------------------------------------------------------- 
    254       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout)  ::   presto   ! restoring coeff. (s-1) 
     280 
     281      !! DCSE_NEMO: This style defeats ftrans 
     282!     REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout)  ::   presto   ! restoring coeff. (s-1) 
     283!FTRANS presto :I :I :z 
     284      REAL(wp), INTENT(inout)  ::   presto(jpi,jpj,jpk)   ! restoring coeff. (s-1) 
    255285      ! 
    256286      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
     
    292322         z1_5d = 1._wp / ( 5._wp * rday )   ! z1_5d : 1 / 5days 
    293323 
     324#if defined key_z_first 
     325         DO jj = 1, jpj             ! Compute arrays resto ; value for internal damping : 5 days 
     326            DO ji = 1, jpi 
     327               DO jk = 2, jpkm1 
     328#else 
    294329         DO jk = 2, jpkm1           ! Compute arrays resto ; value for internal damping : 5 days 
    295330            DO jj = 1, jpj 
    296331               DO ji = 1, jpi 
     332#endif 
    297333                  zlat = ABS( gphit(ji,jj) ) 
    298334                  IF( zlat1 <= zlat .AND. zlat <= zlat2 ) THEN 
     
    311347   END SUBROUTINE dtacof_zoom 
    312348 
     349!! * Reset control of array index permutation 
     350!FTRANS CLEAR 
     351#  include "oce_ftrans.h90" 
     352#  include "dom_oce_ftrans.h90" 
     353#  include "zdf_oce_ftrans.h90" 
     354#  include "dtatem_ftrans.h90" 
     355#  include "dtasal_ftrans.h90" 
     356#  include "tradmp_ftrans.h90" 
    313357 
    314358   SUBROUTINE dtacof( kn_hdmp, pn_surf, pn_bot, pn_dep,  & 
     
    329373      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    330374      USE wrk_nemo, ONLY:   zhfac => wrk_1d_1, zmrs => wrk_2d_1 , zdct  => wrk_3d_1   ! 1D, 2D, 3D workspace 
     375 
     376      !! DCSE_NEMO: need additional directives for renamed module variables 
     377!FTRANS zdct :I :I :z 
     378 
    331379      !! 
    332380      INTEGER                         , INTENT(in   )  ::  kn_hdmp    ! damping option 
     
    336384      INTEGER                         , INTENT(in   )  ::  kn_file    ! save the damping coef on a file or not 
    337385      CHARACTER(len=3)                , INTENT(in   )  ::  cdtype     ! =TRA or TRC (tracer indicator) 
    338       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout)  ::  presto     ! restoring coeff. (s-1) 
     386 
     387      !! DCSE_NEMO: This style defeats ftrans 
     388!     REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout)  ::   presto   ! restoring coeff. (s-1) 
     389!FTRANS presto :I :I :z 
     390      REAL(wp), INTENT(inout)  ::   presto(jpi,jpj,jpk)   ! restoring coeff. (s-1) 
     391 
    339392      ! 
    340393      INTEGER  ::   ji, jj, jk                  ! dummy loop indices 
     
    407460         zsdmp = 1._wp / ( pn_surf * rday ) 
    408461         zbdmp = 1._wp / ( pn_bot  * rday ) 
     462#if defined key_z_first 
     463         DO jj = 1, jpj 
     464            DO ji = 1, jpi 
     465               DO jk = 2, jpkm1 
     466#else 
    409467         DO jk = 2, jpkm1 
    410468            DO jj = 1, jpj 
    411469               DO ji = 1, jpi 
     470#endif 
    412471                  zdct(ji,jj,jk) = MIN( zinfl, zdct(ji,jj,jk) ) 
    413472                  !   ... Decrease the value in the vicinity of the coast 
     
    518577         END SELECT 
    519578 
     579#if defined key_z_first 
     580         DO jj = 1, jpj 
     581            DO ji = 1, jpi 
     582               DO jk = 1, jpkm1 
     583                  presto(ji,jj,jk) = zmrs(ji,jj) * zhfac(jk) + ( 1._wp - zmrs(ji,jj) ) * presto(ji,jj,jk) 
     584               END DO 
     585            END DO 
     586         END DO 
     587#else 
    520588         DO jk = 1, jpkm1 
    521589            presto(:,:,jk) = zmrs(:,:) * zhfac(jk) + ( 1._wp - zmrs(:,:) ) * presto(:,:,jk) 
    522590         END DO 
     591#endif 
    523592 
    524593         ! Mask resto array and set to 0 first and last levels 
     
    550619   END SUBROUTINE dtacof 
    551620 
     621!! * Reset control of array index permutation 
     622!FTRANS CLEAR 
     623#  include "oce_ftrans.h90" 
     624#  include "dom_oce_ftrans.h90" 
     625#  include "zdf_oce_ftrans.h90" 
     626#  include "dtatem_ftrans.h90" 
     627#  include "dtasal_ftrans.h90" 
     628#  include "tradmp_ftrans.h90" 
    552629 
    553630   SUBROUTINE cofdis( pdct ) 
     
    571648      !!              - NetCDF file 'dist.coast.nc'  
    572649      !!---------------------------------------------------------------------- 
    573       USE ioipsl      ! IOipsl librairy 
     650      USE ioipsl      ! IOipsl library 
    574651      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    575652      USE wrk_nemo, ONLY:   zxt => wrk_2d_1 , zyt => wrk_2d_2 , zzt => wrk_2d_3, zmask => wrk_2d_4 
    576653      !! 
     654 
     655      !! DCSE_NEMO: This style defeats ftrans 
     656!     REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( out ) ::   pdct   ! distance to the coastline 
     657!FTRANS pdct :I :I :z 
    577658      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( out ) ::   pdct   ! distance to the coastline 
     659 
    578660      !! 
    579661      INTEGER ::   ji, jj, jk, jl   ! dummy loop indices 
Note: See TracChangeset for help on using the changeset viewer.