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 14286 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/lib_fortran_generic.h90 – NEMO

Ignore:
Timestamp:
2021-01-11T18:30:11+01:00 (3 years ago)
Author:
mcastril
Message:

Reformatting and allowing to use key_qco

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_PRECISION 
    2 #   define TYPE                          REAL(sp) 
    3 #else 
    4 #   define TYPE                          REAL(dp) 
    5 #endif 
    6  
    71#if defined GLOBSUM_CODE 
    82!                          ! FUNCTION FUNCTION_GLOBSUM ! 
    93#   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) 
    115#      define ARRAY_IN(i,j,k)   ptab(i) 
    126#      define ARRAY2_IN(i,j,k)  ptab2(i) 
     
    1610#   endif 
    1711#   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) 
    1913#      define ARRAY_IN(i,j,k)   ptab(i,j) 
    2014#      define ARRAY2_IN(i,j,k)  ptab2(i,j) 
     
    2317#   endif 
    2418#   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) 
    2620#      define ARRAY_IN(i,j,k)   ptab(i,j,k) 
    2721#      define ARRAY2_IN(i,j,k)  ptab2(i,j,k) 
     
    4034      CHARACTER(len=*),  INTENT(in   ) ::   cdname  ! name of the calling subroutine 
    4135      ARRAY_TYPE(:,:,:)                             ! array on which operation is applied 
    42       TYPE   ::  FUNCTION_GLOBSUM 
     36      REAL(PRECISION)   ::  FUNCTION_GLOBSUM 
    4337      ! 
    4438      !!----------------------------------------------------------------------- 
    4539      !! 
    4640      COMPLEX(dp)::   ctmp 
    47       TYPE   ::   ztmp 
     41      REAL(PRECISION)   ::   ztmp 
    4842      INTEGER    ::   ji, jj, jk   ! dummy loop indices 
    4943      INTEGER    ::   ipi, ipj, ipk    ! dimensions 
     
    6963   END FUNCTION FUNCTION_GLOBSUM 
    7064 
    71 #undef TYPE 
    7265#undef ARRAY_TYPE 
    7366#undef ARRAY2_TYPE 
     
    8275!                          ! FUNCTION FUNCTION_GLOBMINMAX ! 
    8376#   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) 
    8578#      define ARRAY_IN(i,j,k)   ptab(i,j) 
    8679#      define ARRAY2_IN(i,j,k)  ptab2(i,j) 
     
    8881#   endif 
    8982#   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) 
    9184#      define ARRAY_IN(i,j,k)   ptab(i,j,k) 
    9285#      define ARRAY2_IN(i,j,k)  ptab2(i,j,k) 
     
    108101      CHARACTER(len=*),  INTENT(in   ) ::   cdname  ! name of the calling subroutine 
    109102      ARRAY_TYPE(:,:,:)                             ! array on which operation is applied 
    110       TYPE   ::  FUNCTION_GLOBMINMAX 
     103      REAL(PRECISION)   ::  FUNCTION_GLOBMINMAX 
    111104      ! 
    112105      !!----------------------------------------------------------------------- 
     
    114107      !! 
    115108      COMPLEX(dp)::   ctmp 
    116       REAL(wp)   ::   ztmp 
     109      REAL(PRECISION)   ::   ztmp 
    117110      INTEGER    ::   jk       ! dummy loop indices 
    118111      INTEGER    ::   ipk      ! dimensions 
     
    133126   END FUNCTION FUNCTION_GLOBMINMAX 
    134127 
    135 #undef TYPE 
    136128#undef ARRAY_TYPE 
    137129#undef ARRAY2_TYPE 
Note: See TracChangeset for help on using the changeset viewer.