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/BDY/bdydyn3d.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/BDY/bdydyn3d.F90

    r13226 r14219  
    2626   PUBLIC   bdy_dyn3d_dmp ! routine called by step 
    2727 
     28#  include "single_precision_substitute.h90" 
    2829   !!---------------------------------------------------------------------- 
    2930   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    4243      INTEGER                             , INTENT( in    ) ::   kt        ! Main time step counter 
    4344      INTEGER                             , INTENT( in    ) ::   Kbb, Kaa  ! Time level indices 
    44       REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     45      REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
    4546      ! 
    4647      INTEGER  ::   ib_bdy, ir     ! BDY set index, rim index 
     
    118119      !!---------------------------------------------------------------------- 
    119120      INTEGER                             , INTENT( in    ) ::   Kaa       ! Time level index 
    120       REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     121      REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
    121122      TYPE(OBC_INDEX)                     , INTENT( in    ) ::   idx       ! OBC indices 
    122123      TYPE(OBC_DATA)                      , INTENT( in    ) ::   dta       ! OBC external data 
     
    157158      !!---------------------------------------------------------------------- 
    158159      INTEGER                             , INTENT( in    ) ::   Kaa       ! Time level index 
    159       REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     160      REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
    160161      TYPE(OBC_INDEX)                     , INTENT( in    ) ::   idx       ! OBC indices 
    161162      TYPE(OBC_DATA)                      , INTENT( in    ) ::   dta       ! OBC external data 
     
    222223      INTEGER                             , INTENT( in    ) ::   kt        ! time step index 
    223224      INTEGER                             , INTENT( in    ) ::   Kaa       ! Time level index 
    224       REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     225      REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
    225226      TYPE(OBC_INDEX)                     , INTENT( in    ) ::   idx       ! OBC indices 
    226227      TYPE(OBC_DATA)                      , INTENT( in    ) ::   dta       ! OBC external data 
     
    265266      INTEGER                             , INTENT( in    ) ::   kt        ! time step index 
    266267      INTEGER                             , INTENT( in    ) ::   Kaa       ! Time level index 
    267       REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     268      REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
    268269      TYPE(OBC_INDEX)                     , INTENT( in    ) ::   idx       ! OBC indices 
    269270      TYPE(OBC_DATA)                      , INTENT( in    ) ::   dta       ! OBC external data 
     
    309310      !!---------------------------------------------------------------------- 
    310311      INTEGER                             , INTENT( in    ) ::   Kbb, Kaa  ! Time level indices 
    311       REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     312      REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
    312313      TYPE(OBC_INDEX)                     , INTENT( in    ) ::   idx       ! OBC indices 
    313314      TYPE(OBC_DATA)                      , INTENT( in    ) ::   dta       ! OBC external data 
     
    323324      igrd = 2      ! Orlanski bc on u-velocity;  
    324325      !             
    325       CALL bdy_orlanski_3d( idx, igrd, puu(:,:,:,Kbb), puu(:,:,:,Kaa), dta%u3d, ll_npo, llrim0 ) 
     326      CALL bdy_orlanski_3d( idx, igrd, CASTWP(puu(:,:,:,Kbb)), puu(:,:,:,Kaa), dta%u3d, ll_npo, llrim0 ) 
    326327 
    327328      igrd = 3      ! Orlanski bc on v-velocity 
    328329      !   
    329       CALL bdy_orlanski_3d( idx, igrd, pvv(:,:,:,Kbb), pvv(:,:,:,Kaa), dta%v3d, ll_npo, llrim0 ) 
     330      CALL bdy_orlanski_3d( idx, igrd, CASTWP(pvv(:,:,:,Kbb)), pvv(:,:,:,Kaa), dta%v3d, ll_npo, llrim0 ) 
    330331      ! 
    331332   END SUBROUTINE bdy_dyn3d_orlanski 
     
    341342      INTEGER                             , INTENT( in    ) ::   kt        ! time step 
    342343      INTEGER                             , INTENT( in    ) ::   Kbb, Krhs ! Time level indices 
    343       REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities and trends (to be updated at open boundaries) 
     344      REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities and trends (to be updated at open boundaries) 
    344345      ! 
    345346      INTEGER  ::   jb, jk         ! dummy loop indices 
     
    392393      !!---------------------------------------------------------------------- 
    393394      INTEGER                             , INTENT( in    ) ::   Kaa       ! Time level index 
    394       REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
     395      REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT( inout ) ::   puu, pvv  ! Ocean velocities (to be updated at open boundaries) 
    395396      TYPE(OBC_INDEX)                     , INTENT( in    ) ::   idx       ! OBC indices 
    396397      INTEGER                             , INTENT( in    ) ::   ib_bdy    ! BDY set index 
Note: See TracChangeset for help on using the changeset viewer.