Changeset 14219 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/DYN/dynhpg.F90
- Timestamp:
- 2020-12-18T18:52:57+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/DYN/dynhpg.F90
r14200 r14219 81 81 # include "do_loop_substitute.h90" 82 82 # include "domzgr_substitute.h90" 83 # include "single_precision_substitute.h90" 83 84 84 85 !!---------------------------------------------------------------------- … … 101 102 INTEGER , INTENT( in ) :: kt ! ocean time-step index 102 103 INTEGER , INTENT( in ) :: Kmm, Krhs ! ocean time level indices 103 REAL( wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation104 ! 105 REAL( wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrdu, ztrdv104 REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation 105 ! 106 REAL(dp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrdu, ztrdv 106 107 !!---------------------------------------------------------------------- 107 108 ! … … 130 131 ENDIF 131 132 ! 132 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1= puu(:,:,:,Krhs), clinfo1=' hpg - Ua: ', mask1=umask, &133 & tab3d_2= pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )133 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=CASTWP(puu(:,:,:,Krhs)), clinfo1=' hpg - Ua: ', mask1=umask, & 134 & tab3d_2=CASTWP(pvv(:,:,:,Krhs)), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 134 135 ! 135 136 IF( ln_timing ) CALL timing_stop('dyn_hpg') … … 262 263 INTEGER , INTENT( in ) :: kt ! ocean time-step index 263 264 INTEGER , INTENT( in ) :: Kmm, Krhs ! ocean time level indices 264 REAL( wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation265 REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation 265 266 ! 266 267 INTEGER :: ji, jj, jk ! dummy loop indices … … 313 314 INTEGER , INTENT( in ) :: kt ! ocean time-step index 314 315 INTEGER , INTENT( in ) :: Kmm, Krhs ! ocean time level indices 315 REAL( wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation316 REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation 316 317 !! 317 318 INTEGER :: ji, jj, jk ! dummy loop indices … … 405 406 INTEGER , INTENT( in ) :: kt ! ocean time-step index 406 407 INTEGER , INTENT( in ) :: Kmm, Krhs ! ocean time level indices 407 REAL( wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation408 REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation 408 409 !! 409 410 INTEGER :: ji, jj, jk, jii, jjj ! dummy loop indices … … 542 543 INTEGER , INTENT( in ) :: kt ! ocean time-step index 543 544 INTEGER , INTENT( in ) :: Kmm, Krhs ! ocean time level indices 544 REAL( wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation545 REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation 545 546 !! 546 547 INTEGER :: ji, jj, jk ! dummy loop indices … … 631 632 INTEGER , INTENT( in ) :: kt ! ocean time-step index 632 633 INTEGER , INTENT( in ) :: Kmm, Krhs ! ocean time level indices 633 REAL( wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation634 REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation 634 635 !! 635 636 INTEGER :: ji, jj, jk ! dummy loop indices … … 793 794 END_3D 794 795 795 CALL lbc_lnk_multi( 'dynhpg', zdrhox, 'U', 1. , zdzx, 'U', 1., zdrhoy, 'V', 1., zdzy, 'V', 1.)796 CALL lbc_lnk_multi( 'dynhpg', zdrhox, 'U', 1._wp, zdzx, 'U', 1._wp, zdrhoy, 'V', 1._wp, zdzy, 'V', 1._wp ) 796 797 797 798 !------------------------------------------------------------------------- … … 963 964 INTEGER , INTENT( in ) :: kt ! ocean time-step index 964 965 INTEGER , INTENT( in ) :: Kmm, Krhs ! ocean time level indices 965 REAL( wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation966 REAL(dp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation 966 967 !! 967 968 INTEGER :: ji, jj, jk, jkk ! dummy loop indices … … 990 991 zcoef0 = - grav 991 992 znad = 1._wp 992 IF( ln_linssh ) znad = 1._wp 993 ! 994 ! --------------- 995 ! Surface pressure gradient to be removed 996 ! --------------- 997 DO_2D( 0, 0, 0, 0 ) 998 zpgu(ji,jj) = - grav * ( ssh(ji+1,jj,Kmm) - ssh(ji,jj,Kmm) ) * r1_e1u(ji,jj) 999 zpgv(ji,jj) = - grav * ( ssh(ji,jj+1,Kmm) - ssh(ji,jj,Kmm) ) * r1_e2v(ji,jj) 1000 END_2D 1001 ! 993 IF( ln_linssh ) znad = 0._wp 994 1002 995 IF( ln_wd_il ) THEN 1003 996 ALLOCATE( zcpx(jpi,jpj) , zcpy(jpi,jpj) ) … … 1057 1050 ELSEIF( jk < jpkm1 ) THEN 1058 1051 DO jkk = jk+1, jpk 1059 zrhh(ji,jj,jkk) = interp1(gde3w(ji,jj,jkk ), gde3w(ji,jj,jkk-1), & 1060 & gde3w(ji,jj,jkk-2), zrhh (ji,jj,jkk-1), zrhh(ji,jj,jkk-2)) 1052 zrhh(ji,jj,jkk) = interp1(CASTWP(gde3w(ji,jj,jkk )), CASTWP(gde3w(ji,jj,jkk-1)), & 1053 & CASTWP(gde3w(ji,jj,jkk-2)), zrhh (ji,jj,jkk-1), zrhh(ji,jj,jkk-2)) 1054 1061 1055 END DO 1062 1056 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.