Changeset 14789 for NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU/src/OCE/DOM/domutl.F90
- Timestamp:
- 2021-05-05T13:18:04+02:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev _r12970_AGRIF_CMEMSext/AGRIF5 ^/vendors/AGRIF/dev@HEAD ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 ^/vendors/PPR@HEAD ext/PPR 8 9 9 10 # SETTE 10 ^/utils/CI/sette@1 3559sette11 ^/utils/CI/sette@14244 sette
-
- Property svn:externals
-
NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU/src/OCE/DOM/domutl.F90
r13458 r14789 21 21 PRIVATE 22 22 23 INTERFACE is_tile 24 MODULE PROCEDURE is_tile_2d, is_tile_3d, is_tile_4d 25 END INTERFACE is_tile 26 23 27 PUBLIC dom_ngb ! routine called in iom.F90 module 24 28 PUBLIC dom_uniq ! Called by dommsk and domwri 29 PUBLIC is_tile 25 30 26 31 !!---------------------------------------------------------------------- 27 32 !! NEMO/OCE 4.2 , NEMO Consortium (2020) 28 !! $Id$ 33 !! $Id$ 29 34 !! Software governed by the CeCILL license (see ./LICENSE) 30 35 !!---------------------------------------------------------------------- … … 37 42 !! ** Purpose : find the closest grid point from a given lon/lat position 38 43 !! 39 !! ** Method : look for minimum distance in cylindrical projection 44 !! ** Method : look for minimum distance in cylindrical projection 40 45 !! -> not good if located at too high latitude... 41 46 !!---------------------------------------------------------------------- … … 81 86 !!---------------------------------------------------------------------- 82 87 !! *** ROUTINE dom_uniq *** 83 !! 88 !! 84 89 !! ** Purpose : identify unique point of a grid (TUVF) 85 90 !! … … 87 92 !! 2) check which elements have been changed 88 93 !!---------------------------------------------------------------------- 89 CHARACTER(len=1) , INTENT(in ) :: cdgrd ! 90 REAL(wp), DIMENSION(:,:), INTENT(inout) :: puniq ! 94 CHARACTER(len=1) , INTENT(in ) :: cdgrd ! 95 REAL(wp), DIMENSION(:,:), INTENT(inout) :: puniq ! 91 96 ! 92 97 REAL(wp) :: zshift ! shift value link to the process number … … 96 101 !!---------------------------------------------------------------------- 97 102 ! 98 ! build an array with different values for each element 103 ! build an array with different values for each element 99 104 ! in mpp: make sure that these values are different even between process 100 105 ! -> apply a shift value according to the process number … … 104 109 puniq(:,:) = ztstref(:,:) ! default definition 105 110 CALL lbc_lnk( 'domwri', puniq, cdgrd, 1. ) ! apply boundary conditions 106 lluniq(:,:,1) = puniq(:,:) == ztstref(:,:) ! check which values have not been changed 111 lluniq(:,:,1) = puniq(:,:) == ztstref(:,:) ! check which values have not been changed 107 112 ! 108 113 puniq(:,:) = REAL( COUNT( lluniq(:,:,:), dim = 3 ), wp ) 109 114 ! 110 115 END SUBROUTINE dom_uniq 111 116 117 118 FUNCTION is_tile_2d( pt ) 119 !! 120 REAL(wp), DIMENSION(:,:), INTENT(in) :: pt 121 INTEGER :: is_tile_2d 122 !! 123 IF( ln_tile .AND. (SIZE(pt, 1) < jpi .OR. SIZE(pt, 2) < jpj) ) THEN 124 is_tile_2d = 1 125 ELSE 126 is_tile_2d = 0 127 ENDIF 128 END FUNCTION is_tile_2d 129 130 131 FUNCTION is_tile_3d( pt ) 132 !! 133 REAL(wp), DIMENSION(:,:,:), INTENT(in) :: pt 134 INTEGER :: is_tile_3d 135 !! 136 IF( ln_tile .AND. (SIZE(pt, 1) < jpi .OR. SIZE(pt, 2) < jpj) ) THEN 137 is_tile_3d = 1 138 ELSE 139 is_tile_3d = 0 140 ENDIF 141 END FUNCTION is_tile_3d 142 143 144 FUNCTION is_tile_4d( pt ) 145 !! 146 REAL(wp), DIMENSION(:,:,:,:), INTENT(in) :: pt 147 INTEGER :: is_tile_4d 148 !! 149 IF( ln_tile .AND. (SIZE(pt, 1) < jpi .OR. SIZE(pt, 2) < jpj) ) THEN 150 is_tile_4d = 1 151 ELSE 152 is_tile_4d = 0 153 ENDIF 154 END FUNCTION is_tile_4d 155 112 156 !!====================================================================== 113 157 END MODULE domutl
Note: See TracChangeset
for help on using the changeset viewer.