MODULE traswp !!============================================================================== !! *** MODULE traswp *** !! Ocean active tracers: swapping array !!============================================================================== USE par_oce ! ocean parameters USE oce ! ocean dynamics and active tracers USE dom_oce, ONLY: mbkmax IMPLICIT NONE PRIVATE PUBLIC tra_swap ! routine called by step.F90 PUBLIC tra_unswap ! routine called by step.F90 !! * Control permutation of array indices # include "oce_ftrans.h90" !!---------------------------------------------------------------------- !! NEMO/OPA 3.3 , NEMO Consortium (2010) !! $Id$ !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) !!---------------------------------------------------------------------- CONTAINS SUBROUTINE tra_swap !!---------------------------------------------------------------------- !! *** ROUTINE tra_swp *** !! !! ** Purpose : Store temperature and salinity aaray into a 4D array !! !!---------------------------------------------------------------------- ! #if defined key_z_first INTEGER :: ji,jj,jk DO jj = 1, jpj, 1 DO ji = 1, jpi, 1 DO jk = 1, mbkmax(ji,jj), 1 tsn(ji,jj,jk,jp_tem) = tn(ji,jj,jk) ; tsn(ji,jj,jk,jp_sal) = sn(ji,jj,jk) tsb(ji,jj,jk,jp_tem) = tb(ji,jj,jk) ; tsb(ji,jj,jk,jp_sal) = sb(ji,jj,jk) tsa(ji,jj,jk,jp_tem) = ta(ji,jj,jk) ; tsa(ji,jj,jk,jp_sal) = sa(ji,jj,jk) END DO END DO END DO #else tsn(:,:,:,jp_tem) = tn(:,:,:) ; tsn(:,:,:,jp_sal) = sn(:,:,:) tsb(:,:,:,jp_tem) = tb(:,:,:) ; tsb(:,:,:,jp_sal) = sb(:,:,:) tsa(:,:,:,jp_tem) = ta(:,:,:) ; tsa(:,:,:,jp_sal) = sa(:,:,:) #endif ! END SUBROUTINE tra_swap SUBROUTINE tra_unswap !!---------------------------------------------------------------------- !! *** ROUTINE tra_unswap *** !! !! ** Purpose : Store temperature and salinity aaray into a 4D array !! !!---------------------------------------------------------------------- ! #if defined key_z_first INTEGER :: ji,jj,jk DO jj = 1, jpj, 1 DO ji = 1, jpi, 1 DO jk = 1, mbkmax(ji,jj), 1 tn(ji,jj,jk) = tsn(ji,jj,jk,jp_tem) ; sn(ji,jj,jk) = tsn(ji,jj,jk,jp_sal) tb(ji,jj,jk) = tsb(ji,jj,jk,jp_tem) ; sb(ji,jj,jk) = tsb(ji,jj,jk,jp_sal) ta(ji,jj,jk) = tsa(ji,jj,jk,jp_tem) ; sa(ji,jj,jk) = tsa(ji,jj,jk,jp_sal) END DO END DO END DO #else tn(:,:,:) = tsn(:,:,:,jp_tem) ; sn(:,:,:) = tsn(:,:,:,jp_sal) tb(:,:,:) = tsb(:,:,:,jp_tem) ; sb(:,:,:) = tsb(:,:,:,jp_sal) ta(:,:,:) = tsa(:,:,:,jp_tem) ; sa(:,:,:) = tsa(:,:,:,jp_sal) #endif ! END SUBROUTINE tra_unswap !!====================================================================== END MODULE traswp