- Timestamp:
- 2010-04-30T17:49:04+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r1837_mass_heat_salt_fluxes/NEMO/LIM_SRC_2/limtab_2.F90
r1156 r1855 2 2 !!====================================================================== 3 3 !! *** MODULE limtab_2 *** 4 !! transform 1D (2D) array to a 2D (1D) table4 !! LIM 2 ice model : transform 1D (2D) array to a 2D (1D) array 5 5 !!====================================================================== 6 6 #if defined key_lim2 7 7 !!---------------------------------------------------------------------- 8 !! tab_2d_1d : 2-D to 1-D 9 !! tab_1d_2d : 1-D to 2-D 8 !! 'key_lim2' : LIM 2.0 sea-ice model 10 9 !!---------------------------------------------------------------------- 11 !! * Modules used 10 !! tab_2d_1d_2 : 2-D to 1-D 11 !! tab_1d_2d_2 : 1-D to 2-D 12 !!---------------------------------------------------------------------- 12 13 USE par_kind 13 14 … … 15 16 PRIVATE 16 17 17 !! * Routine accessibility 18 PUBLIC tab_2d_1d_2 ! called by lim_ther 19 PUBLIC tab_1d_2d_2 ! called by lim_ther 18 PUBLIC tab_2d_1d_2 ! called by lim_thd_2 19 PUBLIC tab_1d_2d_2 ! called by lim_thd_2 20 20 21 21 !!---------------------------------------------------------------------- 22 !! LIM 2.0, UCL-LOCEAN-IPSL (2005)22 !! NEMO/LIM 3.3, UCL-LOCEAN-IPSL (2010) 23 23 !! $Id$ 24 24 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) … … 26 26 CONTAINS 27 27 28 SUBROUTINE tab_2d_1d_2 ( ndim1d, tab1d, tab2d, ndim2d_x, ndim2d_y, tab_ind ) 29 30 INTEGER, INTENT(in) :: & 31 ndim1d, ndim2d_x, ndim2d_y 32 33 REAL(wp), DIMENSION (ndim2d_x, ndim2d_y), INTENT(in) :: & 34 tab2d 35 36 INTEGER, DIMENSION ( ndim1d), INTENT ( in) :: & 37 tab_ind 38 39 REAL(wp), DIMENSION(ndim1d), INTENT ( out) :: & 40 tab1d 41 42 INTEGER :: & 43 jn , jid, jjd 44 45 DO jn = 1, ndim1d 46 jid = MOD( tab_ind(jn) - 1, ndim2d_x ) + 1 47 jjd = ( tab_ind(jn) - 1 ) / ndim2d_x + 1 48 tab1d( jn) = tab2d( jid, jjd) 28 SUBROUTINE tab_2d_1d_2( kdim1d, ptab1d, ptab2d, kdim2d_i, kdim2d_j, ptab_ind ) 29 !!------------------------------------------------------------------- 30 INTEGER , INTENT(in ) :: kdim1d 31 INTEGER , INTENT(in ) :: kdim2d_i, kdim2d_j 32 REAL(wp), INTENT(in ), DIMENSION(kdim2d_i, kdim2d_j) :: ptab2d 33 INTEGER , INTENT(in ), DIMENSION(kdim1d) :: ptab_ind 34 REAL(wp), INTENT( out), DIMENSION(kdim1d) :: ptab1d 35 !! 36 INTEGER :: jn , jid, jjd ! dummy loop indices 37 !!------------------------------------------------------------------- 38 ! 39 DO jn = 1, kdim1d 40 jid = MOD( ptab_ind(jn) - 1, kdim2d_i ) + 1 41 jjd = ( ptab_ind(jn) - 1 ) / kdim2d_i + 1 42 ptab1d(jn) = ptab2d(jid,jjd) 49 43 END DO 50 44 ! 51 45 END SUBROUTINE tab_2d_1d_2 52 46 53 47 54 SUBROUTINE tab_1d_2d_2 ( ndim1d, tab2d, tab_ind, tab1d, ndim2d_x, ndim2d_y ) 55 56 INTEGER, INTENT ( in) :: & 57 ndim1d, ndim2d_x, ndim2d_y 58 59 INTEGER, DIMENSION (ndim1d) , INTENT (in) :: & 60 tab_ind 61 62 REAL(wp), DIMENSION(ndim1d), INTENT (in) :: & 63 tab1d 64 65 REAL(wp), DIMENSION (ndim2d_x, ndim2d_y), INTENT ( out) :: & 66 tab2d 67 68 INTEGER :: & 69 jn, jid, jjd 70 71 DO jn = 1, ndim1d 72 jid = MOD( tab_ind(jn) - 1, ndim2d_x) + 1 73 jjd = ( tab_ind(jn) - 1 ) / ndim2d_x + 1 74 tab2d(jid, jjd) = tab1d( jn) 48 SUBROUTINE tab_1d_2d_2( kdim1d, ptab2d, ptab_ind, ptab1d, kdim2d_i, kdim2d_j ) 49 !!------------------------------------------------------------------- 50 INTEGER , INTENT(in ) :: kdim1d 51 INTEGER , INTENT(in ) :: kdim2d_i, kdim2d_j 52 INTEGER , INTENT(in ), DIMENSION(kdim1d) :: ptab_ind 53 REAL(wp), INTENT(in ), DIMENSION(kdim1d) :: ptab1d 54 REAL(wp), INTENT( out), DIMENSION(kdim2d_i, kdim2d_j) :: ptab2d 55 !! 56 INTEGER :: jn, jid, jjd ! dummy loop indices 57 !!------------------------------------------------------------------- 58 ! 59 DO jn = 1, kdim1d 60 jid = MOD( ptab_ind(jn) - 1, kdim2d_i) + 1 61 jjd = ( ptab_ind(jn) - 1 ) / kdim2d_i + 1 62 ptab2d(jid,jjd) = ptab1d(jn) 75 63 END DO 76 64 ! 77 65 END SUBROUTINE tab_1d_2d_2 78 66 67 #else 68 !!---------------------------------------------------------------------- 69 !! Default option Dummy module NO LIM 2.0 sea-ice model 70 !!---------------------------------------------------------------------- 79 71 #endif 72 73 !!====================================================================== 80 74 END MODULE limtab_2
Note: See TracChangeset
for help on using the changeset viewer.