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.
traswp.F90 in branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA – NEMO

source: branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/traswp.F90 @ 4451

Last change on this file since 4451 was 4451, checked in by trackstand2, 10 years ago

Add use of mbkmax to tra_nxt and traswp

  • Property svn:keywords set to Id
File size: 3.2 KB
Line 
1MODULE traswp
2   !!==============================================================================
3   !!                       ***  MODULE  traswp  ***
4   !! Ocean active tracers: swapping array
5   !!==============================================================================
6   USE par_oce         ! ocean parameters
7   USE oce             ! ocean dynamics and active tracers
8   USE dom_oce, ONLY: mbkmax
9
10   IMPLICIT NONE
11   PRIVATE
12
13   PUBLIC   tra_swap     ! routine called by step.F90
14   PUBLIC   tra_unswap   ! routine called by step.F90
15
16   !! * Control permutation of array indices
17#  include "oce_ftrans.h90"
18
19   !!----------------------------------------------------------------------
20   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
21   !! $Id$
22   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
23   !!----------------------------------------------------------------------
24CONTAINS
25
26   SUBROUTINE tra_swap 
27      !!----------------------------------------------------------------------
28      !!                  ***  ROUTINE tra_swp  ***
29      !!                   
30      !! ** Purpose : Store temperature and salinity aaray into a 4D array
31      !!
32      !!----------------------------------------------------------------------
33      !
34#if defined key_z_first
35      INTEGER :: ji,jj,jk
36
37      DO jj = 1, jpj, 1
38         DO ji = 1, jpi, 1
39            DO jk = 1, mbkmax(ji,jj), 1
40               tsn(ji,jj,jk,jp_tem) = tn(ji,jj,jk)      ;      tsn(ji,jj,jk,jp_sal) = sn(ji,jj,jk)
41               tsb(ji,jj,jk,jp_tem) = tb(ji,jj,jk)      ;      tsb(ji,jj,jk,jp_sal) = sb(ji,jj,jk)
42               tsa(ji,jj,jk,jp_tem) = ta(ji,jj,jk)      ;      tsa(ji,jj,jk,jp_sal) = sa(ji,jj,jk)
43            END DO
44         END DO
45      END DO
46#else
47      tsn(:,:,:,jp_tem) = tn(:,:,:)      ;      tsn(:,:,:,jp_sal) = sn(:,:,:)
48      tsb(:,:,:,jp_tem) = tb(:,:,:)      ;      tsb(:,:,:,jp_sal) = sb(:,:,:)
49      tsa(:,:,:,jp_tem) = ta(:,:,:)      ;      tsa(:,:,:,jp_sal) = sa(:,:,:)
50#endif
51      !
52   END SUBROUTINE tra_swap
53
54   SUBROUTINE tra_unswap 
55      !!----------------------------------------------------------------------
56      !!                  ***  ROUTINE tra_unswap  ***
57      !!                   
58      !! ** Purpose : Store temperature and salinity aaray into a 4D array
59      !!
60      !!----------------------------------------------------------------------
61      !
62#if defined key_z_first
63      INTEGER :: ji,jj,jk
64
65      DO jj = 1, jpj, 1
66         DO ji = 1, jpi, 1
67            DO jk = 1, mbkmax(ji,jj), 1
68               tn(ji,jj,jk) = tsn(ji,jj,jk,jp_tem)      ;      sn(ji,jj,jk) = tsn(ji,jj,jk,jp_sal)
69               tb(ji,jj,jk) = tsb(ji,jj,jk,jp_tem)      ;      sb(ji,jj,jk) = tsb(ji,jj,jk,jp_sal)
70               ta(ji,jj,jk) = tsa(ji,jj,jk,jp_tem)      ;      sa(ji,jj,jk) = tsa(ji,jj,jk,jp_sal)
71            END DO
72         END DO
73      END DO
74#else
75      tn(:,:,:) = tsn(:,:,:,jp_tem)      ;      sn(:,:,:) = tsn(:,:,:,jp_sal)
76      tb(:,:,:) = tsb(:,:,:,jp_tem)      ;      sb(:,:,:) = tsb(:,:,:,jp_sal)
77      ta(:,:,:) = tsa(:,:,:,jp_tem)      ;      sa(:,:,:) = tsa(:,:,:,jp_sal)
78#endif
79      !
80   END SUBROUTINE tra_unswap
81
82   !!======================================================================
83END MODULE traswp
Note: See TracBrowser for help on using the repository browser.