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 14986 for NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/TRA/trabbl.F90 – NEMO

Ignore:
Timestamp:
2021-06-14T13:34:08+02:00 (3 years ago)
Author:
sparonuz
Message:

Merge trunk -r14984:HEAD

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/OCE/TRA/trabbl.F90

    r14644 r14986  
    127127         CALL prt_ctl( tab3d_1=CASTWP(pts(:,:,:,jp_tem,Krhs)), clinfo1=' bbl_ldf  - Ta: ', mask1=tmask, & 
    128128            &          tab3d_2=CASTWP(pts(:,:,:,jp_sal,Krhs)), clinfo2=           ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    129          IF( ntile == 0 .OR. ntile == nijtile ) THEN                       ! Do only on the last tile 
    130             CALL iom_put( "ahu_bbl", ahu_bbl )   ! bbl diffusive flux i-coef 
    131             CALL iom_put( "ahv_bbl", ahv_bbl )   ! bbl diffusive flux j-coef 
    132          ENDIF 
     129         CALL iom_put( "ahu_bbl", ahu_bbl )   ! bbl diffusive flux i-coef 
     130         CALL iom_put( "ahv_bbl", ahv_bbl )   ! bbl diffusive flux j-coef 
    133131         ! 
    134132      ENDIF 
     
    140138         CALL prt_ctl( tab3d_1=CASTWP(pts(:,:,:,jp_tem,Krhs)), clinfo1=' bbl_adv  - Ta: ', mask1=tmask, & 
    141139            &          tab3d_2=CASTWP(pts(:,:,:,jp_sal,Krhs)), clinfo2=           ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    142          IF( ntile == 0 .OR. ntile == nijtile ) THEN                       ! Do only on the last tile 
    143             ! lateral boundary conditions ; just need for outputs 
    144             CALL lbc_lnk( 'trabbl', utr_bbl, 'U', 1.0_wp , vtr_bbl, 'V', 1.0_wp ) 
    145             CALL iom_put( "uoce_bbl", utr_bbl )  ! bbl i-transport 
    146             CALL iom_put( "voce_bbl", vtr_bbl )  ! bbl j-transport 
    147          ENDIF 
     140         CALL iom_put( "uoce_bbl", utr_bbl )  ! bbl i-transport 
     141         CALL iom_put( "voce_bbl", vtr_bbl )  ! bbl j-transport 
    148142         ! 
    149143      ENDIF 
     
    216210 
    217211 
     212   ! NOTE: [tiling] tiling changes the results, but only the order of floating point operations is different 
    218213   SUBROUTINE tra_bbl_adv( pt, pt_rhs, kjpt, Kmm ) 
    219214      !!---------------------------------------------------------------------- 
     
    239234      INTEGER  ::   iis , iid , ijs , ijd    ! local integers 
    240235      INTEGER  ::   ikus, ikud, ikvs, ikvd   !   -       - 
    241       INTEGER  ::   isi, isj                 !   -       - 
    242236      REAL(wp) ::   zbtr, ztra               ! local scalars 
    243237      REAL(wp) ::   zu_bbl, zv_bbl           !   -      - 
    244238      !!---------------------------------------------------------------------- 
    245       ! 
    246       IF( ntsi == Nis0 ) THEN ; isi = 1 ; ELSE ; isi = 0 ; ENDIF    ! Avoid double-counting when using tiling 
    247       IF( ntsj == Njs0 ) THEN ; isj = 1 ; ELSE ; isj = 0 ; ENDIF 
    248239      !                                                          ! =========== 
    249240      DO jn = 1, kjpt                                            ! tracer loop 
    250241         !                                                       ! =========== 
    251          DO_2D( isi, 0, isj, 0 )            ! CAUTION start from i=1 to update i=2 when cyclic east-west 
     242         DO_2D_OVR( 1, 0, 1, 0 )            ! CAUTION start from i=1 to update i=2 when cyclic east-west 
    252243            IF( utr_bbl(ji,jj) /= 0.e0 ) THEN            ! non-zero i-direction bbl advection 
    253244               ! down-slope i/k-indices (deep)      &   up-slope i/k indices (shelf) 
     
    341332      !!---------------------------------------------------------------------- 
    342333      ! 
    343       IF( ntile == 0 .OR. ntile == 1 )  THEN                       ! Do only on the first tile 
     334      IF( .NOT. l_istiled .OR. ntile == 1 )  THEN                       ! Do only on the first tile 
    344335         IF( kt == kit000 )  THEN 
    345336            IF(lwp)  WRITE(numout,*) 
     
    364355      IF( nn_bbl_ldf == 1 ) THEN          !   diffusive bbl   ! 
    365356         !                                !-------------------! 
    366          DO_2D( 1, 0, 1, 0 )                   ! (criteria for non zero flux: grad(rho).grad(h) < 0 ) 
     357         DO_2D_OVR( 1, 0, 1, 0 )                   ! (criteria for non zero flux: grad(rho).grad(h) < 0 ) 
    367358            !                                                   ! i-direction 
    368359            za = zab(ji+1,jj,jp_tem) + zab(ji,jj,jp_tem)              ! 2*(alpha,beta) at u-point 
     
    394385         ! 
    395386         CASE( 1 )                                   != use of upper velocity 
    396             DO_2D( 1, 0, 1, 0 )                              ! criteria: grad(rho).grad(h)<0  and grad(rho).grad(h)<0 
     387            DO_2D_OVR( 1, 0, 1, 0 )                              ! criteria: grad(rho).grad(h)<0  and grad(rho).grad(h)<0 
    397388               !                                                  ! i-direction 
    398389               za = zab(ji+1,jj,jp_tem) + zab(ji,jj,jp_tem)               ! 2*(alpha,beta) at u-point 
     
    423414         CASE( 2 )                                 != bbl velocity = F( delta rho ) 
    424415            zgbbl = grav * rn_gambbl 
    425             DO_2D( 1, 0, 1, 0 )                         ! criteria: rho_up > rho_down 
     416            DO_2D_OVR( 1, 0, 1, 0 )                         ! criteria: rho_up > rho_down 
    426417               !                                                  ! i-direction 
    427418               ! down-slope T-point i/k-index (deep)  &   up-slope T-point i/k-index (shelf) 
Note: See TracChangeset for help on using the changeset viewer.