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 14219 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/DYN/dynvor.F90 – NEMO

Ignore:
Timestamp:
2020-12-18T18:52:57+01:00 (4 years ago)
Author:
mcastril
Message:

Add Mixed Precision support by Oriol Tintó

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/DYN/dynvor.F90

    r14200 r14219  
    9696#  include "do_loop_substitute.h90" 
    9797#  include "domzgr_substitute.h90" 
     98#  include "single_precision_substitute.h90" 
    9899 
    99100   !!---------------------------------------------------------------------- 
     
    116117      INTEGER                             , INTENT( in  ) ::   kt          ! ocean time-step index 
    117118      INTEGER                             , INTENT( in  ) ::   Kmm, Krhs   ! ocean time level indices 
    118       REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) ::   puu, pvv    ! ocean velocity field and RHS of momentum equation 
    119       ! 
    120       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
     119      REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) ::   puu, pvv    ! ocean velocity field and RHS of momentum equation 
     120      ! 
     121      REAL(dp), ALLOCATABLE, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
    121122      !!---------------------------------------------------------------------- 
    122123      ! 
     
    206207      ! 
    207208      !                       ! print sum trends (used for debugging) 
    208       IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' vor  - Ua: ', mask1=umask,               & 
    209          &                                tab3d_2=pvv(:,:,:,Krhs), clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
     209      IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=CASTWP(puu(:,:,:,Krhs)), clinfo1=' vor  - Ua: ', mask1=umask,               & 
     210         &                                tab3d_2=CASTWP(pvv(:,:,:,Krhs)), clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    210211      ! 
    211212      IF( ln_timing )   CALL timing_stop('dyn_vor') 
     
    235236      INTEGER                         , INTENT(in   ) ::   Kmm              ! ocean time level index 
    236237      INTEGER                         , INTENT(in   ) ::   kvor             ! total, planetary, relative, or metric 
    237       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv           ! now velocities 
    238       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pv_rhs   ! total v-trend 
     238      REAL(dp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv           ! now velocities 
     239      REAL(dp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pv_rhs   ! total v-trend 
    239240      ! 
    240241      INTEGER  ::   ji, jj, jk           ! dummy loop indices 
     
    351352      INTEGER                         , INTENT(in   ) ::   Kmm              ! ocean time level index 
    352353      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
    353       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv    ! now velocities 
    354       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pv_rhs    ! total v-trend 
     354      REAL(dp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv    ! now velocities 
     355      REAL(dp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pv_rhs    ! total v-trend 
    355356      ! 
    356357      INTEGER  ::   ji, jj, jk           ! dummy loop indices 
     
    478479      INTEGER                         , INTENT(in   ) ::   Kmm              ! ocean time level index 
    479480      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
    480       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv    ! now velocities 
    481       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pv_rhs    ! total v-trend 
     481      REAL(dp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv    ! now velocities 
     482      REAL(dp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pv_rhs    ! total v-trend 
    482483      ! 
    483484      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     
    602603      INTEGER                         , INTENT(in   ) ::   Kmm              ! ocean time level index 
    603604      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
    604       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv    ! now velocities 
    605       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pv_rhs    ! total v-trend 
     605      REAL(dp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv    ! now velocities 
     606      REAL(dp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pv_rhs    ! total v-trend 
    606607      ! 
    607608      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     
    751752      INTEGER                         , INTENT(in   ) ::   Kmm              ! ocean time level index 
    752753      INTEGER                         , INTENT(in   ) ::   kvor             ! total, planetary, relative, or metric 
    753       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv           ! now velocities 
    754       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pv_rhs   ! total v-trend 
     754      REAL(dp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv           ! now velocities 
     755      REAL(dp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pv_rhs   ! total v-trend 
    755756      ! 
    756757      INTEGER  ::   ji, jj, jk     ! dummy loop indices 
Note: See TracChangeset for help on using the changeset viewer.