Changeset 14495
- Timestamp:
- 2021-02-18T18:06:18+01:00 (3 years ago)
- Location:
- NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/ICE/icethd_dh.F90
r14072 r14495 369 369 !--- zswi2 if dh/dt > 3.6e-7 370 370 zgrr = MIN( 1.0e-3, MAX ( dh_i_bog(ji) * r1_Dt_ice , epsi10 ) ) 371 zswi2 = MAX( 0._wp , SIGN( 1._wp , zgrr - 3.6e-7 ) )372 zswi12 = MAX( 0._wp , SIGN( 1._wp , zgrr - 2.0e-8 ) ) * ( 1.0 - zswi2 )371 zswi2 = MAX( 0._wp , SIGN( 1._wp , zgrr - 3.6e-7_wp ) ) 372 zswi12 = MAX( 0._wp , SIGN( 1._wp , zgrr - 2.0e-8_wp ) ) * ( 1.0 - zswi2 ) 373 373 zswi1 = 1. - zswi2 * zswi12 374 374 zfracs = MIN( zswi1 * 0.12 + zswi12 * ( 0.8925 + 0.0568 * LOG( 100.0 * zgrr ) ) & -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/FLO/flodom.F90
r14219 r14495 372 372 LOGICAL , INTENT(out) :: ldinmesh ! ??? 373 373 !! 374 REAL( wp) :: zabt, zbct, zcdt, zdat, zabpt, zbcpt, zcdpt, zdapt374 REAL(dp) :: zabt, zbct, zcdt, zdat, zabpt, zbcpt, zcdpt, zdapt 375 375 !!--------------------------------------------------------------------- 376 376 !! Statement function 377 REAL( wp) :: fsline378 REAL( wp) :: psax, psay, psbx, psby, psx, psy377 REAL(dp) :: fsline 378 REAL(dp) :: psax, psay, psbx, psby, psx, psy 379 379 fsline( psax, psay, psbx, psby, psx, psy ) = psy * ( psbx - psax ) & 380 380 & - psx * ( psby - psay ) & … … 389 389 390 390 ! 4 semi plane defined by the 4 points and including the extrememity 391 zabpt = fsline(pax,pay,pbx,pby, px,py)392 zbcpt = fsline(pbx,pby,pcx,pcy, px,py)393 zcdpt = fsline(pcx,pcy,pdx,pdy, px,py)394 zdapt = fsline(pdx,pdy,pax,pay, px,py)391 zabpt = fsline(pax,pay,pbx,pby,CASTDP(px),CASTDP(py)) 392 zbcpt = fsline(pbx,pby,pcx,pcy,CASTDP(px),CASTDP(py)) 393 zcdpt = fsline(pcx,pcy,pdx,pdy,CASTDP(px),CASTDP(py)) 394 zdapt = fsline(pdx,pdy,pax,pay,CASTDP(px),CASTDP(py)) 395 395 396 396 ! We compare the semi plane T with the semi plane including the point -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/LBC/mpp_nfd_generic.h90
r14219 r14495 1 # define PASTE(a) a 2 # define ADD_TRAIL_USCORE(a) PASTE(a)_ 3 # define CONCATENATE(a,b) ADD_TRAIL_USCORE(a)b 4 1 5 #if defined MULTI 2 6 # define NAT_IN(k) cd_nat(k) … … 67 71 # define RECVROUTINE mpprecv_sp 68 72 # define MPI_TYPE MPI_REAL 69 # define HUGEVAL(x) HUGE( x##_sp)73 # define HUGEVAL(x) HUGE(CONCATENATE(x,sp)) 70 74 # else 71 75 # define PRECISION dp … … 73 77 # define RECVROUTINE mpprecv_dp 74 78 # define MPI_TYPE MPI_DOUBLE_PRECISION 75 # define HUGEVAL(x) HUGE( x##_dp)79 # define HUGEVAL(x) HUGE(CONCATENATE(x,dp)) 76 80 # endif 77 81 -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/SBC/sbcblk_algo_coare3p0.F90
r14072 r14495 399 399 ! Charnock's constant, increases with the wind : 400 400 zgt10 = 0.5 + SIGN(0.5_wp,(zw - 10)) ! If zw<10. --> 0, else --> 1 401 zgt18 = 0.5 + SIGN(0.5_wp,(zw - 18. )) ! If zw<18. --> 0, else --> 1401 zgt18 = 0.5 + SIGN(0.5_wp,(zw - 18._wp)) ! If zw<18. --> 0, else --> 1 402 402 ! 403 403 charn_coare3p0(ji,jj) = (1. - zgt10)*0.011 & ! wind is lower than 10 m/s -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/TRA/traadv_fct.F90
r14219 r14495 474 474 zau = MIN( 1._wp, zbetdo(ji,jj,jk), zbetup(ji+1,jj,jk) ) 475 475 zbu = MIN( 1._wp, zbetup(ji,jj,jk), zbetdo(ji+1,jj,jk) ) 476 zcu = ( 0.5 + SIGN( 0.5_wp , paa(ji,jj,jk) ) )476 zcu = ( 0.5 + SIGN( 0.5_wp , CASTWP(paa(ji,jj,jk)) ) ) 477 477 paa(ji,jj,jk) = paa(ji,jj,jk) * ( zcu * zau + ( 1._wp - zcu) * zbu ) 478 478 479 479 zav = MIN( 1._wp, zbetdo(ji,jj,jk), zbetup(ji,jj+1,jk) ) 480 480 zbv = MIN( 1._wp, zbetup(ji,jj,jk), zbetdo(ji,jj+1,jk) ) 481 zcv = ( 0.5 + SIGN( 0.5_wp , pbb(ji,jj,jk) ) )481 zcv = ( 0.5 + SIGN( 0.5_wp , CASTWP(pbb(ji,jj,jk)) ) ) 482 482 pbb(ji,jj,jk) = pbb(ji,jj,jk) * ( zcv * zav + ( 1._wp - zcv) * zbv ) 483 483 … … 486 486 za = MIN( 1., zbetdo(ji,jj,jk+1), zbetup(ji,jj,jk) ) 487 487 zb = MIN( 1., zbetup(ji,jj,jk+1), zbetdo(ji,jj,jk) ) 488 zc = ( 0.5 + SIGN( 0.5_wp , pcc(ji,jj,jk+1) ) )488 zc = ( 0.5 + SIGN( 0.5_wp , CASTWP(pcc(ji,jj,jk+1)) ) ) 489 489 pcc(ji,jj,jk+1) = pcc(ji,jj,jk+1) * ( zc * za + ( 1._wp - zc) * zb ) 490 490 END_3D -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/TRA/trabbl.F90
r14219 r14495 372 372 & - zb * ( zts(ji+1,jj,jp_sal) - zts(ji,jj,jp_sal) ) ) * umask(ji,jj,1) 373 373 ! 374 zsign = SIGN( 0.5_wp, -zgdrho * REAL( mgrhu(ji,jj) ) ) ! sign of ( i-gradient * i-slope )374 zsign = SIGN( 0.5_wp, CASTWP(-zgdrho * REAL( mgrhu(ji,jj)) ) ) ! sign of ( i-gradient * i-slope ) 375 375 ahu_bbl(ji,jj) = ( 0.5 - zsign ) * ahu_bbl_0(ji,jj) ! masked diffusive flux coeff. 376 376 ! … … 382 382 & - zb * ( zts(ji,jj+1,jp_sal) - zts(ji,jj,jp_sal) ) ) * vmask(ji,jj,1) 383 383 ! 384 zsign = SIGN( 0.5_wp, -zgdrho * REAL( mgrhv(ji,jj) ) ) ! sign of ( j-gradient * j-slope )384 zsign = SIGN( 0.5_wp, CASTWP(-zgdrho * REAL( mgrhv(ji,jj)) ) ) ! sign of ( j-gradient * j-slope ) 385 385 ahv_bbl(ji,jj) = ( 0.5 - zsign ) * ahv_bbl_0(ji,jj) 386 386 END_2D … … 402 402 - zb * ( zts(ji+1,jj,jp_sal) - zts(ji,jj,jp_sal) ) ) * umask(ji,jj,1) 403 403 ! 404 zsign = SIGN( 0.5_wp, - zgdrho * REAL( mgrhu(ji,jj) ) ) ! sign of i-gradient * i-slope405 zsigna= SIGN( 0.5_wp, zub(ji,jj) * REAL( mgrhu(ji,jj) ) ) ! sign of u * i-slope404 zsign = SIGN( 0.5_wp, CASTWP(- zgdrho * REAL( mgrhu(ji,jj)) ) ) ! sign of i-gradient * i-slope 405 zsigna= SIGN( 0.5_wp, CASTWP(zub(ji,jj) * REAL( mgrhu(ji,jj)) ) ) ! sign of u * i-slope 406 406 ! 407 407 ! ! bbl velocity … … 414 414 zgdrho = ( za * ( zts(ji,jj+1,jp_tem) - zts(ji,jj,jp_tem) ) & 415 415 & - zb * ( zts(ji,jj+1,jp_sal) - zts(ji,jj,jp_sal) ) ) * vmask(ji,jj,1) 416 zsign = SIGN( 0.5_wp, - zgdrho * REAL( mgrhv(ji,jj) ) ) ! sign of j-gradient * j-slope417 zsigna= SIGN( 0.5_wp, zvb(ji,jj) * REAL( mgrhv(ji,jj) ) ) ! sign of u * i-slope416 zsign = SIGN( 0.5_wp, CASTWP(- zgdrho * REAL( mgrhv(ji,jj)) ) ) ! sign of j-gradient * j-slope 417 zsigna= SIGN( 0.5_wp, CASTWP(zvb(ji,jj) * REAL( mgrhv(ji,jj)) ) ) ! sign of u * i-slope 418 418 ! 419 419 ! ! bbl transport -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/ZDF/zdfmfc.F90
r14219 r14495 181 181 & grav * ( 2.e-4_wp *zfnet(:,:) - 7.6E-4_wp*pts(:,:,1,jp_sal,Kmm)*zsws(:,:)/zrautb(:,:)) * zhcmo(:,:) 182 182 183 zedmf(:,:,1) = -0.065_wp*(ABS(zfbuo(:,:)))**(1._wp/3._wp)*SIGN(1. ,zfbuo(:,:))183 zedmf(:,:,1) = -0.065_wp*(ABS(zfbuo(:,:)))**(1._wp/3._wp)*SIGN(1._wp,zfbuo(:,:)) 184 184 zedmf(:,:,1) = MAX(0., zedmf(:,:,1)) 185 185
Note: See TracChangeset
for help on using the changeset viewer.