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 8369 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limtab.F90 – NEMO

Ignore:
Timestamp:
2017-07-25T16:38:38+02:00 (7 years ago)
Author:
clem
Message:

STEP4 (4): put all thermodynamics in 1D (limitd_th OK)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limtab.F90

    r8342 r8369  
    1313   USE par_kind 
    1414   USE par_oce 
     15   USE ice, ONLY : jpl 
    1516    
    1617   IMPLICIT NONE 
    1718   PRIVATE 
    1819 
    19    PUBLIC   tab_2d_1d   ! called by limthd 
    20    PUBLIC   tab_1d_2d   ! called by limthd 
     20   PUBLIC   tab_3d_2d 
     21   PUBLIC   tab_2d_1d 
     22   PUBLIC   tab_2d_3d 
     23   PUBLIC   tab_1d_2d 
    2124 
    2225   !!---------------------------------------------------------------------- 
     
    2629   !!---------------------------------------------------------------------- 
    2730CONTAINS 
     31 
     32 
     33   SUBROUTINE tab_3d_2d( ndim1d, tab_ind, tab1d, tab2d ) 
     34      !!---------------------------------------------------------------------- 
     35      !!                  ***  ROUTINE tab_2d_1d  *** 
     36      !!---------------------------------------------------------------------- 
     37      INTEGER                         , INTENT(in   ) ::   ndim1d   ! 1d size 
     38      INTEGER , DIMENSION(ndim1d)     , INTENT(in   ) ::   tab_ind  ! input index 
     39      REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(in   ) ::   tab2d    ! input 2D field 
     40      REAL(wp), DIMENSION(ndim1d,jpl) , INTENT(  out) ::   tab1d    ! output 1D field 
     41      ! 
     42      INTEGER ::   jl, jn, jid, jjd 
     43      !!---------------------------------------------------------------------- 
     44      DO jl = 1, jpl 
     45         DO jn = 1, ndim1d 
     46            jid          = MOD( tab_ind(jn) - 1 , jpi ) + 1 
     47            jjd          =    ( tab_ind(jn) - 1 ) / jpi + 1 
     48            tab1d(jn,jl) = tab2d(jid,jjd,jl) 
     49         END DO 
     50      END DO 
     51   END SUBROUTINE tab_3d_2d 
    2852 
    2953   SUBROUTINE tab_2d_1d( ndim1d, tab_ind, tab1d, tab2d ) 
     
    4569   END SUBROUTINE tab_2d_1d 
    4670 
     71   SUBROUTINE tab_2d_3d( ndim1d, tab_ind, tab1d, tab2d ) 
     72      !!---------------------------------------------------------------------- 
     73      !!                  ***  ROUTINE tab_2d_1d  *** 
     74      !!---------------------------------------------------------------------- 
     75      INTEGER                         , INTENT(in   ) ::   ndim1d    ! 1D size 
     76      INTEGER , DIMENSION(ndim1d)     , INTENT(in   ) ::   tab_ind   ! input index 
     77      REAL(wp), DIMENSION(ndim1d,jpl) , INTENT(in   ) ::   tab1d     ! input 1D field 
     78      REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   tab2d     ! output 2D field 
     79      ! 
     80      INTEGER ::   jl, jn, jid, jjd 
     81      !!---------------------------------------------------------------------- 
     82      DO jl = 1, jpl 
     83         DO jn = 1, ndim1d 
     84            jid               = MOD( tab_ind(jn) - 1 ,  jpi ) + 1 
     85            jjd               =    ( tab_ind(jn) - 1 ) / jpi  + 1 
     86            tab2d(jid,jjd,jl) = tab1d(jn,jl) 
     87         END DO 
     88      END DO 
     89   END SUBROUTINE tab_2d_3d 
    4790 
    4891   SUBROUTINE tab_1d_2d( ndim1d, tab_ind, tab1d, tab2d ) 
Note: See TracChangeset for help on using the changeset viewer.