Changeset 14648
- Timestamp:
- 2021-03-26T18:02:29+01:00 (3 years ago)
- Location:
- NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/DYN/dynatf_qco.F90
r14644 r14648 270 270 ENDIF 271 271 ! 272 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1= puu(:,:,:,Kaa), clinfo1=' nxt - puu(:,:,:,Kaa): ', mask1=umask, &273 & tab3d_2= pvv(:,:,:,Kaa), clinfo2=' pvv(:,:,:,Kaa): ' , mask2=vmask )272 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=CASTWP(puu(:,:,:,Kaa)), clinfo1=' nxt - puu(:,:,:,Kaa): ', mask1=umask, & 273 & tab3d_2=CASTWP(pvv(:,:,:,Kaa)), clinfo2=' pvv(:,:,:,Kaa): ' , mask2=vmask ) 274 274 ! 275 275 IF( ln_dynspg_ts ) DEALLOCATE( zue, zve ) -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/DYN/dynspg_ts.F90
r14644 r14648 266 266 zhV(:,:) = pvv_b(:,:,Kmm) * hv(:,:,Kmm) * e1v(:,:) ! NB: FULL domain : put a value in last row and column 267 267 ! 268 CALL dyn_cor_2d( ht(:,:), hu(:,:,Kmm), hv(:,:,Kmm), puu_b(:,:,Kmm), pvv_b(:,:,Kmm), zhU, zhV, & ! <<== in268 CALL dyn_cor_2d( CASTWP(ht(:,:)), hu(:,:,Kmm), hv(:,:,Kmm), puu_b(:,:,Kmm), pvv_b(:,:,Kmm), zhU, zhV, & ! <<== in 269 269 & zu_trd, zv_trd ) ! ==>> out 270 270 ! … … 283 283 END_2D 284 284 ELSE !* remove baroclinic drag AND provide the barotropic drag coefficients 285 CALL dyn_drg_init( Kbb, Kmm, puu, pvv, puu_b, pvv_b, zu_frc, zv_frc, zCdU_u, zCdU_v )285 CALL dyn_drg_init( Kbb, Kmm, CASTWP(puu), CASTWP(pvv), puu_b, pvv_b, zu_frc, zv_frc, zCdU_u, zCdU_v ) 286 286 ENDIF 287 287 ! … … 530 530 END_2D 531 531 ! 532 CALL lbc_lnk( 'dynspg_ts', ssha_e, 'T', 1._wp, zhU, 'U', -1._wp, zhV, 'V', -1._wp ) 532 CALL lbc_lnk( 'dynspg_ts', ssha_e, 'T', 1._wp ) 533 CALL lbc_lnk( 'dynspg_ts', zhU, 'U', -1._wp, zhV, 'V', -1._wp ) 533 534 ! 534 535 ! Duplicate sea level across open boundaries (this is only cosmetic if linssh=T) -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/DYN/sshwzv.F90
r14644 r14648 281 281 REAL(dp), DIMENSION(jpi,jpj,jpt), INTENT(inout) :: pssh ! SSH field 282 282 ! 283 REAL( wp) :: zcoef ! local scalar283 REAL(dp) :: zcoef ! local scalar 284 284 !!---------------------------------------------------------------------- 285 285 ! -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/LBC/lbc_lnk_call_generic.h90
r14644 r14648 33 33 CHARACTER(len=1) , OPTIONAL , INTENT(in ) :: cdna2 , cdna3 , cdna4 , cdna5 , cdna6 , cdna7 , cdna8 , cdna9, & 34 34 & cdna10, cdna11, cdna12, cdna13, cdna14, cdna15, cdna16 35 REAL( PRECISION) , INTENT(in ) :: psgn1 ! sign used across the north fold36 REAL( PRECISION) , OPTIONAL , INTENT(in ) :: psgn2 , psgn3 , psgn4 , psgn5 , psgn6 , psgn7 , psgn8 , psgn9, &35 REAL(wp) , INTENT(in ) :: psgn1 ! sign used across the north fold 36 REAL(wp) , OPTIONAL , INTENT(in ) :: psgn2 , psgn3 , psgn4 , psgn5 , psgn6 , psgn7 , psgn8 , psgn9, & 37 37 & psgn10, psgn11, psgn12, psgn13, psgn14, psgn15, psgn16 38 38 INTEGER , OPTIONAL , INTENT(in ) :: kfillmode ! filling method for halo over land (default = constant) … … 45 45 TYPE(PTR_4d_/**/PRECISION), DIMENSION(16) :: ptab_ptr ! pointer array 46 46 CHARACTER(len=1) , DIMENSION(16) :: cdna_ptr ! nature of ptab_ptr grid-points 47 REAL( PRECISION) , DIMENSION(16) :: psgn_ptr ! sign used across the north fold boundary47 REAL(wp) , DIMENSION(16) :: psgn_ptr ! sign used across the north fold boundary 48 48 !!--------------------------------------------------------------------- 49 49 ! … … 83 83 REAL(PRECISION), DIMENSION(DIMS), TARGET, INTENT(inout), CONTIGUOUS :: ptab ! arrays on which the lbc is applied 84 84 CHARACTER(len=1) , INTENT(in ) :: cdna ! nature of pt2d array grid-points 85 REAL( PRECISION) , INTENT(in ) :: psgn ! sign used across the north fold boundary85 REAL(wp) , INTENT(in ) :: psgn ! sign used across the north fold boundary 86 86 TYPE(PTR_4d_/**/PRECISION), DIMENSION(:), INTENT(inout) :: ptab_ptr ! array of pointers 87 87 CHARACTER(len=1), DIMENSION(:), INTENT(inout) :: cdna_ptr ! nature of pt2d_array array grid-points 88 REAL( PRECISION) , DIMENSION(:), INTENT(inout) :: psgn_ptr ! sign used across the north fold boundary88 REAL(wp) , DIMENSION(:), INTENT(inout) :: psgn_ptr ! sign used across the north fold boundary 89 89 INTEGER , INTENT(inout) :: kfld ! number of elements that has been attributed 90 90 !!--------------------------------------------------------------------- -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/LBC/lbc_lnk_neicoll_generic.h90
r14644 r14648 4 4 TYPE(PTR_4d_/**/PRECISION), DIMENSION(:), INTENT(inout) :: ptab ! pointer of arrays on which apply the b.c. 5 5 CHARACTER(len=1), DIMENSION(:), INTENT(in ) :: cd_nat ! nature of array grid-points 6 REAL( PRECISION), DIMENSION(:), INTENT(in ) :: psgn ! sign used across the north fold boundary6 REAL(wp), DIMENSION(:), INTENT(in ) :: psgn ! sign used across the north fold boundary 7 7 INTEGER , INTENT(in ) :: kfld ! number of pt3d arrays 8 8 INTEGER , OPTIONAL, INTENT(in ) :: kfillmode ! filling method for halo over land (default = constant) -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/LBC/lbc_lnk_pt2pt_generic.h90
r14644 r14648 5 5 TYPE(PTR_4d_/**/PRECISION), DIMENSION(:), INTENT(inout) :: ptab ! pointer of arrays on which apply the b.c. 6 6 CHARACTER(len=1), DIMENSION(:), INTENT(in ) :: cd_nat ! nature of array grid-points 7 REAL( PRECISION), DIMENSION(:), INTENT(in ) :: psgn ! sign used across the north fold boundary7 REAL(wp), DIMENSION(:), INTENT(in ) :: psgn ! sign used across the north fold boundary 8 8 INTEGER , INTENT(in ) :: kfld ! number of pt3d arrays 9 9 INTEGER , OPTIONAL, INTENT(in ) :: kfillmode ! filling method for halo over land (default = constant) -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/LBC/lbc_nfd_ext_generic.h90
r14644 r14648 4 4 REAL(PRECISION), DIMENSION(:,1-kextj:),INTENT(inout) :: ptab 5 5 CHARACTER(len=1), INTENT(in ) :: cd_nat ! nature of array grid-points 6 REAL( PRECISION), INTENT(in ) :: psgn ! sign used across the north fold boundary6 REAL(wp), INTENT(in ) :: psgn ! sign used across the north fold boundary 7 7 INTEGER, INTENT(in ) :: kextj ! extra halo width at north fold 8 8 ! -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/LBC/lbc_nfd_generic.h90
r14644 r14648 3 3 TYPE(PTR_4d_/**/PRECISION), DIMENSION(:), INTENT(inout) :: ptab ! pointer of arrays on which apply the b.c. 4 4 CHARACTER(len=1), DIMENSION(:), INTENT(in ) :: cd_nat ! nature of array grid-points 5 REAL( PRECISION), DIMENSION(:), INTENT(in ) :: psgn ! sign used across the north fold boundary5 REAL(wp), DIMENSION(:), INTENT(in ) :: psgn ! sign used across the north fold boundary 6 6 INTEGER , INTENT(in ) :: khls ! halo size, default = nn_hls 7 7 INTEGER , INTENT(in ) :: kfld ! number of pt3d arrays -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/LBC/lbc_nfd_nogather_generic.h90
r14644 r14648 10 10 REAL(PRECISION), DIMENSION(:,:,:,:), INTENT(inout) :: ptab2 ! 11 11 CHARACTER(len=1) , INTENT(in ) :: cd_nat ! nature of array grid-points 12 REAL( PRECISION) , INTENT(in ) :: psgn ! sign used across the north fold boundary12 REAL(wp) , INTENT(in ) :: psgn ! sign used across the north fold boundary 13 13 INTEGER , INTENT(in ) :: khls ! halo size, default = nn_hls 14 14 ! -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/LBC/mpp_lbc_north_icb_generic.h90
r14644 r14648 31 31 CHARACTER(len=1) , INTENT(in ) :: cd_type ! nature of pt3d grid-points 32 32 ! ! = T , U , V , F or W -points 33 REAL( PRECISION) , INTENT(in ) :: psgn ! = -1. the sign change across the33 REAL(wp) , INTENT(in ) :: psgn ! = -1. the sign change across the 34 34 !! ! north fold, = 1. otherwise 35 35 INTEGER , INTENT(in ) :: kextj ! Extra halo width at north fold -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/LBC/mpp_lnk_icb_generic.h90
r14644 r14648 31 31 REAL(PRECISION), DIMENSION(1-kexti:jpi+kexti,1-kextj:jpj+kextj), INTENT(inout) :: pt2d ! 2D array with extra halo 32 32 CHARACTER(len=1) , INTENT(in ) :: cd_type ! nature of ptab array grid-points 33 REAL( PRECISION) , INTENT(in ) :: psgn ! sign used across the north fold33 REAL(wp) , INTENT(in ) :: psgn ! sign used across the north fold 34 34 INTEGER , INTENT(in ) :: kexti ! extra i-halo width 35 35 INTEGER , INTENT(in ) :: kextj ! extra j-halo width -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/LBC/mpp_nfd_generic.h90
r14644 r14648 3 3 TYPE(PTR_4d_/**/PRECISION), DIMENSION(:), INTENT(inout) :: ptab ! pointer of arrays on which apply the b.c. 4 4 CHARACTER(len=1), DIMENSION(:), INTENT(in ) :: cd_nat ! nature of array grid-points 5 REAL( PRECISION), DIMENSION(:), INTENT(in ) :: psgn ! sign used across the north fold boundary5 REAL(wp), DIMENSION(:), INTENT(in ) :: psgn ! sign used across the north fold boundary 6 6 INTEGER , INTENT(in ) :: kfillmode ! filling method for halo over land 7 7 REAL(PRECISION) , INTENT(in ) :: pfillval ! background value (used at closed boundaries) -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/SBC/sbcmod.F90
r14644 r14648 442 442 END_2D 443 443 ! 444 CALL lbc_lnk _multi( 'sbcwave', utau, 'U', -1._wp , vtau, 'V', -1._wp )444 CALL lbc_lnk( 'sbcwave', utau, 'U', -1._wp , vtau, 'V', -1._wp ) 445 445 ! 446 446 taum(:,:) = taum(:,:)*tauoc_wave(:,:) … … 452 452 utau(:,:) = utau(:,:) - tawx(:,:) + twox(:,:) 453 453 vtau(:,:) = vtau(:,:) - tawy(:,:) + twoy(:,:) 454 CALL lbc_lnk _multi( 'sbcwave', utau, 'U', -1._wp, vtau, 'V', -1._wp )454 CALL lbc_lnk( 'sbcwave', utau, 'U', -1._wp, vtau, 'V', -1._wp ) 455 455 ! 456 456 DO_2D( 0, 0, 0, 0) -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/TRA/traadv.F90
r14644 r14648 184 184 IF (nn_hls.EQ.2) THEN 185 185 CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kbb), 'T', 1._wp, pts(:,:,:,:,Kmm), 'T', 1._wp) 186 CALL lbc_lnk( 'traadv', zuu(:,:,:), 'U', -1._wp, zvv(:,:,:), 'V', -1. , zww(:,:,:), 'W', 1._wp)186 CALL lbc_lnk( 'traadv', zuu(:,:,:), 'U', -1._wp, zvv(:,:,:), 'V', -1._wp, zww(:,:,:), 'W', 1._wp) 187 187 #if defined key_loop_fusion 188 188 CALL tra_adv_fct_lf ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_fct_h, nn_fct_v ) -
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/TRA/traadv_fct.F90
r14644 r14648 294 294 ! 295 295 IF (nn_hls.EQ.1) THEN 296 CALL lbc_lnk( 'traadv_fct', zwi, 'T', 1.0_wp, zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp, zwz, 'T', 1.0_wp ) 296 CALL lbc_lnk( 'traadv_fct', zwi, 'T', 1.0_wp ) 297 CALL lbc_lnk( 'traadv_fct', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp, zwz, 'T', 1.0_wp ) 297 298 ELSE 298 299 CALL lbc_lnk( 'traadv_fct', zwi, 'T', 1.0_wp)
Note: See TracChangeset
for help on using the changeset viewer.