- Timestamp:
- 2017-07-25T16:38:38+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limtab.F90
r8342 r8369 13 13 USE par_kind 14 14 USE par_oce 15 USE ice, ONLY : jpl 15 16 16 17 IMPLICIT NONE 17 18 PRIVATE 18 19 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 21 24 22 25 !!---------------------------------------------------------------------- … … 26 29 !!---------------------------------------------------------------------- 27 30 CONTAINS 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 28 52 29 53 SUBROUTINE tab_2d_1d( ndim1d, tab_ind, tab1d, tab2d ) … … 45 69 END SUBROUTINE tab_2d_1d 46 70 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 47 90 48 91 SUBROUTINE tab_1d_2d( ndim1d, tab_ind, tab1d, tab2d )
Note: See TracChangeset
for help on using the changeset viewer.