Changeset 14286 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/lib_fortran_generic.h90
- Timestamp:
- 2021-01-11T18:30:11+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/lib_fortran_generic.h90
r14219 r14286 1 #if defined SINGLE_PRECISION2 # define TYPE REAL(sp)3 #else4 # define TYPE REAL(dp)5 #endif6 7 1 #if defined GLOBSUM_CODE 8 2 ! ! FUNCTION FUNCTION_GLOBSUM ! 9 3 # if defined DIM_1d 10 # define ARRAY_TYPE(i,j,k) TYPE, INTENT(in ) :: ARRAY_IN(i,j,k)4 # define ARRAY_TYPE(i,j,k) REAL(PRECISION) , INTENT(in ) :: ARRAY_IN(i,j,k) 11 5 # define ARRAY_IN(i,j,k) ptab(i) 12 6 # define ARRAY2_IN(i,j,k) ptab2(i) … … 16 10 # endif 17 11 # if defined DIM_2d 18 # define ARRAY_TYPE(i,j,k) TYPE, INTENT(in ) :: ARRAY_IN(i,j,k)12 # define ARRAY_TYPE(i,j,k) REAL(PRECISION) , INTENT(in ) :: ARRAY_IN(i,j,k) 19 13 # define ARRAY_IN(i,j,k) ptab(i,j) 20 14 # define ARRAY2_IN(i,j,k) ptab2(i,j) … … 23 17 # endif 24 18 # if defined DIM_3d 25 # define ARRAY_TYPE(i,j,k) TYPE, INTENT(in ) :: ARRAY_IN(i,j,k)19 # define ARRAY_TYPE(i,j,k) REAL(PRECISION) , INTENT(in ) :: ARRAY_IN(i,j,k) 26 20 # define ARRAY_IN(i,j,k) ptab(i,j,k) 27 21 # define ARRAY2_IN(i,j,k) ptab2(i,j,k) … … 40 34 CHARACTER(len=*), INTENT(in ) :: cdname ! name of the calling subroutine 41 35 ARRAY_TYPE(:,:,:) ! array on which operation is applied 42 TYPE:: FUNCTION_GLOBSUM36 REAL(PRECISION) :: FUNCTION_GLOBSUM 43 37 ! 44 38 !!----------------------------------------------------------------------- 45 39 !! 46 40 COMPLEX(dp):: ctmp 47 TYPE:: ztmp41 REAL(PRECISION) :: ztmp 48 42 INTEGER :: ji, jj, jk ! dummy loop indices 49 43 INTEGER :: ipi, ipj, ipk ! dimensions … … 69 63 END FUNCTION FUNCTION_GLOBSUM 70 64 71 #undef TYPE72 65 #undef ARRAY_TYPE 73 66 #undef ARRAY2_TYPE … … 82 75 ! ! FUNCTION FUNCTION_GLOBMINMAX ! 83 76 # if defined DIM_2d 84 # define ARRAY_TYPE(i,j,k) TYPE, INTENT(in ) :: ARRAY_IN(i,j,k)77 # define ARRAY_TYPE(i,j,k) REAL(PRECISION) , INTENT(in ) :: ARRAY_IN(i,j,k) 85 78 # define ARRAY_IN(i,j,k) ptab(i,j) 86 79 # define ARRAY2_IN(i,j,k) ptab2(i,j) … … 88 81 # endif 89 82 # if defined DIM_3d 90 # define ARRAY_TYPE(i,j,k) TYPE, INTENT(in ) :: ARRAY_IN(i,j,k)83 # define ARRAY_TYPE(i,j,k) REAL(PRECISION) , INTENT(in ) :: ARRAY_IN(i,j,k) 91 84 # define ARRAY_IN(i,j,k) ptab(i,j,k) 92 85 # define ARRAY2_IN(i,j,k) ptab2(i,j,k) … … 108 101 CHARACTER(len=*), INTENT(in ) :: cdname ! name of the calling subroutine 109 102 ARRAY_TYPE(:,:,:) ! array on which operation is applied 110 TYPE:: FUNCTION_GLOBMINMAX103 REAL(PRECISION) :: FUNCTION_GLOBMINMAX 111 104 ! 112 105 !!----------------------------------------------------------------------- … … 114 107 !! 115 108 COMPLEX(dp):: ctmp 116 REAL( wp) :: ztmp109 REAL(PRECISION) :: ztmp 117 110 INTEGER :: jk ! dummy loop indices 118 111 INTEGER :: ipk ! dimensions … … 133 126 END FUNCTION FUNCTION_GLOBMINMAX 134 127 135 #undef TYPE136 128 #undef ARRAY_TYPE 137 129 #undef ARRAY2_TYPE
Note: See TracChangeset
for help on using the changeset viewer.