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 1857 for branches/DEV_r1837_mass_heat_salt_fluxes/NEMO/LIM_SRC_2/limtab_2.F90 – NEMO

Ignore:
Timestamp:
2010-05-03T13:59:46+02:00 (14 years ago)
Author:
gm
Message:

ticket:#665 Reverting previous commit and going back to revision 1850

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_r1837_mass_heat_salt_fluxes/NEMO/LIM_SRC_2/limtab_2.F90

    r1855 r1857  
    22   !!====================================================================== 
    33   !!                       ***  MODULE limtab_2   *** 
    4    !!   LIM 2 ice model : transform 1D (2D) array to a 2D (1D) array 
     4   !!              transform 1D (2D) array to a 2D (1D) table 
    55   !!====================================================================== 
    66#if defined key_lim2 
    77   !!---------------------------------------------------------------------- 
    8    !!   'key_lim2' :                                  LIM 2.0 sea-ice model 
     8   !!   tab_2d_1d  : 2-D to 1-D 
     9   !!   tab_1d_2d  : 1-D to 2-D 
    910   !!---------------------------------------------------------------------- 
    10    !!   tab_2d_1d_2  : 2-D to 1-D 
    11    !!   tab_1d_2d_2  : 1-D to 2-D 
    12    !!---------------------------------------------------------------------- 
     11   !! * Modules used 
    1312   USE par_kind 
    1413 
     
    1615   PRIVATE 
    1716 
    18    PUBLIC   tab_2d_1d_2   ! called by lim_thd_2 
    19    PUBLIC   tab_1d_2d_2   ! called by lim_thd_2 
     17   !! * Routine accessibility 
     18   PUBLIC tab_2d_1d_2  ! called by lim_ther 
     19   PUBLIC tab_1d_2d_2  ! called by lim_ther 
    2020 
    2121   !!---------------------------------------------------------------------- 
    22    !! NEMO/LIM 3.3,  UCL-LOCEAN-IPSL (2010)  
     22   !!   LIM 2.0,  UCL-LOCEAN-IPSL (2005)  
    2323   !! $Id$ 
    2424   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     
    2626CONTAINS 
    2727 
    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) 
     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) 
    4349      END DO  
    44       ! 
     50 
    4551   END SUBROUTINE tab_2d_1d_2 
    4652 
    4753 
    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) 
     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) 
    6375      END DO 
    64       ! 
     76 
    6577   END SUBROUTINE tab_1d_2d_2 
    6678 
    67 #else 
    68    !!---------------------------------------------------------------------- 
    69    !!   Default option          Dummy module       NO LIM 2.0 sea-ice model 
    70    !!---------------------------------------------------------------------- 
    7179#endif 
    72  
    73    !!====================================================================== 
    7480END MODULE limtab_2 
Note: See TracChangeset for help on using the changeset viewer.