Changeset 14986 for NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/TOP/TRP/trcadv.F90
- Timestamp:
- 2021-06-14T13:34:08+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/TOP/TRP/trcadv.F90
r14644 r14986 23 23 USE traadv_cen ! centered scheme (tra_adv_cen routine) 24 24 USE traadv_fct ! FCT scheme (tra_adv_fct routine) 25 USE traadv_fct_lf ! FCT scheme (tra_adv_fct routine - loop fusion version)26 25 USE traadv_mus ! MUSCL scheme (tra_adv_mus routine) 27 USE traadv_mus_lf ! MUSCL scheme (tra_adv_mus routine - loop fusion version)28 26 USE traadv_ubs ! UBS scheme (tra_adv_ubs routine) 29 27 USE traadv_qck ! QUICKEST scheme (tra_adv_qck routine) … … 63 61 64 62 # include "domzgr_substitute.h90" 65 # include "single_precision_substitute.h90"66 63 !!---------------------------------------------------------------------- 67 64 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 81 78 INTEGER , INTENT(in) :: kt ! ocean time-step index 82 79 INTEGER , INTENT(in) :: Kbb, Kmm, Krhs ! time level indices 83 REAL( dp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation80 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 84 81 ! 85 82 INTEGER :: jk ! dummy loop index … … 128 125 ! 129 126 CASE ( np_CEN ) ! Centered : 2nd / 4th order 130 IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kmm), 'T', 1._wp)131 127 CALL tra_adv_cen( kt, nittrc000,'TRC', zuu, zvv, zww, Kmm, ptr, jptra, Krhs, nn_cen_h, nn_cen_v ) 132 128 CASE ( np_FCT ) ! FCT : 2nd / 4th order 133 IF (nn_hls.EQ.2) THEN134 <<<<<<< .working135 CALL lbc_lnk_multi( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1._wp, ptr(:,:,:,:,Kmm), 'T', 1._wp)136 CALL lbc_lnk_multi( 'traadv', zuu(:,:,:), 'U', -1._wp, zvv(:,:,:), 'V', -1._wp, zww(:,:,:), 'W', 1._wp)137 ||||||| .merge-left.r14199138 CALL lbc_lnk_multi( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1., ptr(:,:,:,:,Kmm), 'T', 1.)139 CALL lbc_lnk_multi( 'traadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1., zww(:,:,:), 'W', 1.)140 =======141 CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1., ptr(:,:,:,:,Kmm), 'T', 1.)142 CALL lbc_lnk( 'traadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1., zww(:,:,:), 'W', 1.)143 >>>>>>> .merge-right.r14642144 #if defined key_loop_fusion145 CALL tra_adv_fct_lf( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_fct_h, nn_fct_v )146 #else147 129 CALL tra_adv_fct( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_fct_h, nn_fct_v ) 148 #endif149 ELSE150 CALL tra_adv_fct( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_fct_h, nn_fct_v )151 END IF152 130 CASE ( np_MUS ) ! MUSCL 153 IF (nn_hls.EQ.2) THEN 154 <<<<<<< .working 155 IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1._wp) 156 ||||||| .merge-left.r14199 157 IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1.) 158 ======= 159 CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1.) 160 >>>>>>> .merge-right.r14642 161 #if defined key_loop_fusion 162 CALL tra_adv_mus_lf( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups ) 163 #else 164 CALL tra_adv_mus( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups ) 165 #endif 166 ELSE 167 CALL tra_adv_mus( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups ) 168 END IF 131 CALL tra_adv_mus( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups ) 169 132 CASE ( np_UBS ) ! UBS 170 IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1._wp)171 133 CALL tra_adv_ubs( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_ubs_v ) 172 134 CASE ( np_QCK ) ! QUICKEST 173 IF (nn_hls.EQ.2) THEN174 <<<<<<< .working175 CALL lbc_lnk_multi( 'trcadv', zuu(:,:,:), 'U', -1._wp, zvv(:,:,:), 'V', -1._wp)176 CALL lbc_lnk( 'traadv', ptr(:,:,:,:,Kbb), 'T', 1._wp)177 ||||||| .merge-left.r14199178 CALL lbc_lnk_multi( 'trcadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1.)179 CALL lbc_lnk( 'traadv', ptr(:,:,:,:,Kbb), 'T', 1.)180 =======181 CALL lbc_lnk( 'trcadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1.)182 CALL lbc_lnk( 'traadv', ptr(:,:,:,:,Kbb), 'T', 1.)183 >>>>>>> .merge-right.r14642184 END IF185 135 CALL tra_adv_qck( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs ) 186 136 ! … … 190 140 WRITE(charout, FMT="('adv ')") 191 141 CALL prt_ctl_info( charout, cdcomp = 'top' ) 192 CALL prt_ctl( tab4d_1= CASTWP(tr(:,:,:,:,Krhs)), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' )142 CALL prt_ctl( tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm, clinfo3='trd' ) 193 143 END IF 194 144 !
Note: See TracChangeset
for help on using the changeset viewer.