Changeset 14787
- Timestamp:
- 2021-05-05T11:35:40+02:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE
- Files:
-
- 27 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DIA/diaptr.F90
r14780 r14787 317 317 ENDIF 318 318 ! 319 ! TODO: [tiling] NOT TESTED- hangs on iom_get_var320 319 IF( iom_use( 'uocetr_vsum_cumul' ) ) THEN 321 320 CALL iom_get_var( 'uocetr_vsum_op', z2d ) ! get uocetr_vsum_op from xml -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DOM/domtile.F90
r14780 r14787 160 160 ktej = ntej_a(ktile) 161 161 162 ! Calculate the modifying factor on DO loop bounds (1 = do not work on halo of a tile that has already been processed)162 ! Calculate the modifying factor on DO loop bounds (1 = do not work on points that have already been processed by a neighbouring tile) 163 163 nthl = 0 ; nthr = 0 ; nthb = 0 ; ntht = 0 164 164 iitile = Ni_0 / nn_ltile_i -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/divhor.F90
r14765 r14787 97 97 ! 98 98 #endif 99 ! WED025 + isomip true100 99 IF( ln_isf ) CALL isf_hdiv( kt, Kmm, hdiv ) !== ice shelf ==! (update hdiv field) 101 100 ! -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynadv_ubs.F90
r14780 r14787 112 112 END_2D 113 113 ! 114 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) ! laplacia 114 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) ! laplacian 115 115 ! round brackets added to fix the order of floating point operations 116 116 ! needed to ensure halo 1 - halo 2 compatibility -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynatf.F90
r14765 r14787 285 285 ENDIF ! .NOT. l_1st_euler 286 286 ! 287 ! NOTE: [tiling] this is needed for dyn_ldf_blp to be restartable. dyn_ldf_blp uses uu/vv(Kbb) to calculate z[uv]lap. With nn_hls=1 lbc_lnk is called on z[uv]lap, with nn_hls=2 the calculation is explicit. Restart uses iom_get to read uu/vv(Kbb) & includes an lbc_lnk. nn_hls=2 is not restartable because there is no lbc_lnk on uu/vv(Kbb) or z[uv]lap.287 ! This is needed for dyn_ldf_blp to be restartable 288 288 IF( nn_hls == 2 ) CALL lbc_lnk( 'dynatf', puu(:,:,:,Kmm), 'U', -1.0_wp, pvv(:,:,:,Kmm), 'V', -1.0_wp ) 289 289 ! Set "now" and "before" barotropic velocities for next time step: -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynatf_qco.F90
r14764 r14787 195 195 ENDIF ! .NOT. l_1st_euler 196 196 ! 197 ! NOTE: [tiling] this is needed for dyn_ldf_blp to be restartable; see equivalent call in dynatf.F90197 ! This is needed for dyn_ldf_blp to be restartable 198 198 IF( nn_hls == 2 ) CALL lbc_lnk( 'dynatfqco', puu(:,:,:,Kmm), 'U', -1.0_wp, pvv(:,:,:,Kmm), 'V', -1.0_wp ) 199 199 -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynhpg.F90
r14780 r14787 120 120 CASE ( np_djc ) 121 121 ! [ comm_cleanup ] : it should not be needed but the removal/shift of this lbc_lnk results in a seg_fault error 122 ! NOTE: [tiling] to check if still needed122 ! TODO: [tiling] to check if still needed 123 123 !#if defined key_qco 124 124 ! IF (nn_hls==2) CALL lbc_lnk( 'dynhpg', r3t(:,:,Kmm), 'T', 1.) … … 801 801 zdzy (:,:,:) = 0._wp 802 802 803 ! NOTE: [tiling] reorder zdzx/zdzy to avoid leading negation operator (may change order of operations)804 803 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 805 804 zdrhox(ji,jj,jk) = rhd (ji+1,jj ,jk) - rhd (ji ,jj ,jk) … … 815 814 !------------------------------------------------------------------------- 816 815 817 ! NOTE: [tiling] have refactored harmonic averages so that zep applies to denominator rather than numerator. This changes results, but I think this is the correct approach?818 816 DO_3D( 0, 1, 0, 1, 1, jpkm1 ) 819 817 cffu = MAX( 2._wp * zdrhox(ji-1,jj,jk) * zdrhox(ji,jj,jk), 0._wp ) -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynldf_iso.F90
r14765 r14787 129 129 !!gm bug is dyn_ldf_iso called before tra_ldf_iso .... <<<<<===== TO BE CHECKED 130 130 ! s-coordinate: Iso-level diffusion on momentum but not on tracer 131 ! TODO: [tiling] NOT TESTED- requires ln_sco to be called with ln_dynldf_hor132 131 IF( ln_dynldf_hor .AND. ln_traldf_iso ) THEN 133 132 ! -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynvor.F90
r14765 r14787 162 162 CASE( np_ENT ) !* energy conserving scheme (T-pts) 163 163 CALL vor_enT( kt, Kmm, ntot, puu(:,:,:,Kmm) , pvv(:,:,:,Kmm) , puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! total vorticity trend 164 ! TODO: [tiling] NOT TESTED- requires waves165 164 IF( ln_stcor .AND. .NOT. ln_vortex_force ) THEN 166 165 CALL vor_enT( kt, Kmm, ncor, usd, vsd, puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! add the Stokes-Coriolis trend 167 ! TODO: [tiling] NOT TESTED- requires waves168 166 ELSE IF( ln_stcor .AND. ln_vortex_force ) THEN 169 167 CALL vor_enT( kt, Kmm, ntot, usd, vsd, puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! add the Stokes-Coriolis trend and vortex force … … 171 169 CASE( np_EET ) !* energy conserving scheme (een scheme using e3t) 172 170 CALL vor_eeT( kt, Kmm, ntot, puu(:,:,:,Kmm) , pvv(:,:,:,Kmm) , puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! total vorticity trend 173 ! TODO: [tiling] NOT TESTED- requires waves174 171 IF( ln_stcor .AND. .NOT. ln_vortex_force ) THEN 175 172 CALL vor_eeT( kt, Kmm, ncor, usd, vsd, puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! add the Stokes-Coriolis trend 176 ! TODO: [tiling] NOT TESTED- requires waves177 173 ELSE IF( ln_stcor .AND. ln_vortex_force ) THEN 178 174 CALL vor_eeT( kt, Kmm, ntot, usd, vsd, puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! add the Stokes-Coriolis trend and vortex force … … 180 176 CASE( np_ENE ) !* energy conserving scheme 181 177 CALL vor_ene( kt, Kmm, ntot, puu(:,:,:,Kmm) , pvv(:,:,:,Kmm) , puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! total vorticity trend 182 ! TODO: [tiling] NOT TESTED- requires waves183 178 IF( ln_stcor .AND. .NOT. ln_vortex_force ) THEN 184 179 CALL vor_ene( kt, Kmm, ncor, usd, vsd, puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! add the Stokes-Coriolis trend 185 ! TODO: [tiling] NOT TESTED- requires waves186 180 ELSE IF( ln_stcor .AND. ln_vortex_force ) THEN 187 181 CALL vor_ene( kt, Kmm, ntot, usd, vsd, puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! add the Stokes-Coriolis trend and vortex force … … 190 184 CALL vor_ens( kt, Kmm, ntot, puu(:,:,:,Kmm) , pvv(:,:,:,Kmm) , puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! total vorticity trend 191 185 192 ! TODO: [tiling] NOT TESTED- requires waves193 186 IF( ln_stcor .AND. .NOT. ln_vortex_force ) THEN 194 187 CALL vor_ens( kt, Kmm, ncor, usd, vsd, puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! add the Stokes-Coriolis trend 195 ! TODO: [tiling] NOT TESTED- requires waves196 188 ELSE IF( ln_stcor .AND. ln_vortex_force ) THEN 197 189 CALL vor_ens( kt, Kmm, ntot, usd, vsd, puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! add the Stokes-Coriolis trend and vortex force … … 200 192 CALL vor_ens( kt, Kmm, nrvm, puu(:,:,:,Kmm) , pvv(:,:,:,Kmm) , puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! relative vorticity or metric trend (ens) 201 193 CALL vor_ene( kt, Kmm, ncor, puu(:,:,:,Kmm) , pvv(:,:,:,Kmm) , puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! planetary vorticity trend (ene) 202 ! TODO: [tiling] NOT TESTED- requires waves203 194 IF( ln_stcor ) CALL vor_ene( kt, Kmm, ncor, usd, vsd, puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! add the Stokes-Coriolis trend 204 ! TODO: [tiling] NOT TESTED- requires waves205 195 IF( ln_vortex_force ) CALL vor_ens( kt, Kmm, nrvm, usd, vsd, puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! add vortex force 206 196 CASE( np_EEN ) !* energy and enstrophy conserving scheme 207 197 CALL vor_een( kt, Kmm, ntot, puu(:,:,:,Kmm) , pvv(:,:,:,Kmm) , puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! total vorticity trend 208 ! TODO: [tiling] NOT TESTED- requires waves209 198 IF( ln_stcor .AND. .NOT. ln_vortex_force ) THEN 210 199 CALL vor_een( kt, Kmm, ncor, usd, vsd, puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! add the Stokes-Coriolis trend 211 ! TODO: [tiling] NOT TESTED- requires waves212 200 ELSE IF( ln_stcor .AND. ln_vortex_force ) THEN 213 201 CALL vor_een( kt, Kmm, ntot, usd, vsd, puu(:,:,:,Krhs), pvv(:,:,:,Krhs) ) ! add the Stokes-Coriolis trend and vortex force -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynzad.F90
r14751 r14787 81 81 82 82 DO jk = 2, jpkm1 ! Vertical momentum advection at level w and u- and v- vertical 83 ! TODO: [tiling] NOT TESTED- requires waves84 83 IF( ln_vortex_force ) THEN ! vertical fluxes 85 84 DO_2D( 0, 1, 0, 1 ) -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/sshwzv.F90
r14765 r14787 189 189 ! ! Is it problematic to have a wrong vertical velocity in boundary cells? 190 190 ! ! Same question holds for hdiv. Perhaps just for security 191 ! NOTE: [tiling] have made these explicit loops to check whether 2nd halo points are needed (also makes it clearer that undefined hdiv values are not used)192 191 DO_3DS( 1, 1, 1, 1, jpkm1, 1, -1 ) ! integrate from the bottom the hor. divergence 193 192 ! computation of w -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/OBS/diaobs.F90
r14752 r14787 99 99 CHARACTER(len=8), PUBLIC, DIMENSION(:), ALLOCATABLE :: cobstypesprof, cobstypessurf !: Profile & surface obs types 100 100 101 # include "domzgr_substitute.h90"102 101 !!---------------------------------------------------------------------- 103 102 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 624 623 INTEGER :: jtype ! Data loop variable 625 624 INTEGER :: jvar ! Variable number 626 INTEGER :: ji, jj , jk! Loop counters625 INTEGER :: ji, jj ! Loop counters 627 626 REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE :: & 628 627 & zprofvar ! Model values for variables in a prof ob … … 635 634 & zglam, & ! Model longitudes for prof variables 636 635 & zgphi ! Model latitudes for prof variables 637 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zdept, zdepw638 636 639 637 !----------------------------------------------------------------------- … … 652 650 653 651 IF ( nproftypes > 0 ) THEN 654 655 ALLOCATE( zdept(jpi,jpj,jpk), zdepw(jpi,jpj,jpk) )656 DO jk = 1, jpk657 zdept(:,:,jk) = gdept(:,:,jk,Kmm)658 zdepw(:,:,jk) = gdepw(:,:,jk,Kmm)659 END DO660 652 661 653 DO jtype = 1, nproftypes … … 695 687 & nit000, idaystp, jvar, & 696 688 & zprofvar(:,:,:,jvar), & 697 & zdept(:,:,:), zdepw(:,:,:), &689 & gdept(:,:,:,Kmm), gdepw(:,:,:,Kmm), & 698 690 & zprofmask(:,:,:,jvar), & 699 691 & zglam(:,:,jvar), zgphi(:,:,jvar), & … … 705 697 706 698 END DO 707 708 DEALLOCATE( zdept, zdepw )709 699 710 700 ENDIF -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/OBS/obs_prep.F90
r14752 r14787 33 33 PUBLIC calc_month_len ! Calculate the number of days in the months of a year 34 34 35 # include "domzgr_substitute.h90"36 35 !!---------------------------------------------------------------------- 37 36 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 1075 1074 & gdepw_1d, & 1076 1075 & gdepw_0, & 1077 & gdepw, r3t,&1076 & gdepw, & 1078 1077 & gdept, & 1079 1078 & ln_zco, & … … 1129 1128 & zglam, & ! Model longitude at grid points 1130 1129 & zgphi ! Model latitude at grid points 1131 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepw1132 1130 INTEGER, DIMENSION(2,2,kprofno) :: & 1133 1131 & igrdi, & ! Grid i,j … … 1188 1186 CALL obs_int_comm_2d( 2, 2, kprofno, kpi, kpj, igrdi, igrdj, plam, zglam ) 1189 1187 CALL obs_int_comm_2d( 2, 2, kprofno, kpi, kpj, igrdi, igrdj, pphi, zgphi ) 1190 DO jk = 1, jpk 1191 zdepw(:,:,jk) = gdepw(:,:,jk,Kmm) 1192 END DO 1193 CALL obs_int_comm_3d( 2, 2, kprofno, kpi, kpj, kpk, igrdi, igrdj, zdepw(:,:,:), zgdepw ) 1188 CALL obs_int_comm_3d( 2, 2, kprofno, kpi, kpj, kpk, igrdi, igrdj, gdepw(:,:,:,Kmm), & 1189 & zgdepw ) 1194 1190 1195 1191 DO jobs = 1, kprofno -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/SBC/sbcrnf.F90
r14765 r14787 204 204 zfact = 0.5_wp 205 205 ! 206 ! TODO: [tiling] NOT TESTED- requires ln_rnf_depth207 206 IF( ln_rnf_depth .OR. ln_rnf_depth_ini ) THEN !== runoff distributed over several levels ==! 208 207 IF( ln_linssh ) THEN !* constant volume case : just apply the runoff input flow -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traadv.F90
r14780 r14787 119 119 IF( .NOT. lskip ) THEN 120 120 ! !== effective transport ==! 121 ! TODO: [tiling] NOT TESTED- requires waves122 121 IF( ln_wave .AND. ln_sdw ) THEN 123 122 DO_3D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 1, jpkm1 ) … … 134 133 ENDIF 135 134 ! 136 ! TODO: [tiling] NOT TESTED- requires ztilde137 135 IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN ! add z-tilde and/or vvl corrections 138 136 DO_3D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 1, jpkm1 ) -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traadv_qck.F90
r14780 r14787 149 149 zfd(ji,jj,jk) = pt(ji+1,jj,jk,jn,Kbb) ! Downstream in the x-direction for the tracer 150 150 END_3D 151 IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zf d(:,:,:), 'T', 1.0_wp ) ! Lateral boundary conditions151 IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp ) ! Lateral boundary conditions 152 152 153 153 ! … … 239 239 IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp ) ! Lateral boundary conditions 240 240 241 ! Correct zfd on northfold after lbc_lnk; see #2640242 IF( nn_hls == 1 .AND. l_IdoNFold .AND. ntej == Nje0 ) THEN243 DO jk = 1, jpkm1244 WHERE( tmask_i(ntsi:ntei,ntej:jpj) == 0._wp ) zfd(ntsi:ntei,ntej:jpj,jk) = zfc(ntsi:ntei,ntej:jpj,jk)245 END DO246 ENDIF247 241 ! 248 242 ! Horizontal advective fluxes -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traatf.F90
r14780 r14787 53 53 54 54 PUBLIC tra_atf ! routine called by step.F90 55 56 #if defined key_qco || defined key_linssh57 !!----------------------------------------------------------------------58 !! 'key_qco' Quasi-Eulerian vertical coordinate59 !! OR EMPTY MODULE60 !! 'key_linssh' Fix in time vertical coordinate61 !!----------------------------------------------------------------------62 CONTAINS63 64 SUBROUTINE tra_atf( kt, Kbb, Kmm, Kaa, pts )65 INTEGER , INTENT(in ) :: kt ! ocean time-step index66 INTEGER , INTENT(in ) :: Kbb, Kmm, Kaa ! time level indices67 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts,jpt), INTENT(inout) :: pts ! active tracers68 69 WRITE(*,*) 'tra_atf: You should not have seen this print! error?', kt70 END SUBROUTINE tra_atf71 72 #else73 74 55 PUBLIC tra_atf_fix ! to be used in trcnxt 75 56 PUBLIC tra_atf_vvl ! to be used in trcnxt … … 401 382 END SUBROUTINE tra_atf_vvl 402 383 403 #endif404 405 384 !!====================================================================== 406 385 END MODULE traatf -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/tradmp.F90
r14752 r14787 53 53 !! * Substitutions 54 54 # include "do_loop_substitute.h90" 55 # include "domzgr_substitute.h90"56 55 !!---------------------------------------------------------------------- 57 56 !! NEMO/OCE 4.0 , NEMO Consortium (2018) -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traldf_triad.F90
r14780 r14787 398 398 zaei_slp1 = aeiu(ji,jj,jk) * triadi_g(ji+1,jj,jk,0,kp) 399 399 ENDIF 400 ! zftu(ji ,jj,jk ) = zftu(ji ,jj,jk ) - ( zah * zdxt + (zah_slp - zaei_slp) * zdzt ) * zbu * ze1ur - ( zah * zdxt + (zah_slp1 - zaei_slp1) * zdzt_ip1 ) * zbu * ze1ur401 ! ztfw(ji+1,jj,jk+kp) = ztfw(ji+1,jj,jk+kp) - (zah_slp_ip1 + zaei_slp_ip1) * zdxt_ip1 * zbu_ip1 * ze3wr_ip1 - (zah_slp1 + zaei_slp1) * zdxt * zbu * ze3wr_ip1402 400 ! round brackets added to fix the order of floating point operations 403 401 ! needed to ensure halo 1 - halo 2 compatibility … … 435 433 zaei_slp1 = aeiv(ji,jj,jk) * triadj_g(ji,jj+1,jk,0,kp) 436 434 ENDIF 437 ! zftv(ji,jj ,jk ) = zftv(ji,jj ,jk ) - ( zah * zdyt + (zah_slp - zaei_slp) * zdzt ) * zbv * ze2vr - ( zah * zdyt + (zah_slp1 - zaei_slp1) * zdzt_jp1 ) * zbv * ze2vr438 ! ztfw(ji,jj+1,jk+kp) = ztfw(ji,jj+1,jk+kp) - ( zah_slp_jp1 + zaei_slp_jp1) * zdyt_jp1 * zbv_jp1 * ze3wr_jp1 - (zah_slp1 + zaei_slp1) * zdyt * zbv * ze3wr_jp1439 435 ! round brackets added to fix the order of floating point operations 440 436 ! needed to ensure halo 1 - halo 2 compatibility -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfiwm.F90
r14780 r14787 311 311 IF( .NOT. l_istiled .OR. ntile == 1 ) zztmp = 0._wp ! Do only on the first tile 312 312 !!gm used of glosum 3D.... 313 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )313 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 314 314 zztmp = zztmp + e3w(ji,jj,jk,Kmm) * e1e2t(ji,jj) & 315 315 & * MAX( 0._wp, rn2(ji,jj,jk) ) * zav_wave(ji,jj,jk) * wmask(ji,jj,jk) * tmask_i(ji,jj) -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfphy.F90
r14780 r14787 286 286 ENDIF 287 287 ! 288 ! TODO: [tiling] NOT TESTED- requires SI3 and isfcav289 288 #if defined key_si3 290 289 IF ( ln_drgice_imp) THEN … … 301 300 #endif 302 301 ! 303 ! NOTE: [tiling] zdf_mxl has been split into zdf_mxl (nmln, hmlp, hmlpt) and zdf_mxl_turb (hmld), which depend on rn2b and avt respectively. zdf_mxl has been moved here from below (which is now zdf_mxl_turb) because zdf_tke with nn_etau = 2 depends on nmln. The previous solution was to call zdf_mxl in zdf_tke_init, but rn2b is not yet calculated here (0 everywhere), so this specific option was not restartable and tiling changed the results. Furthermore, the MLD diagnostics sent from zdf_mxl were incorrect for the first timestep. This bug fix has therefore changed the results when using zdf_tke with nn_etau = 2.304 302 CALL zdf_mxl( kt, Kmm ) !* mixed layer depth, and level 305 303 … … 360 358 ! 361 359 ! !* wave-induced mixing 362 ! TODO: [tiling] NOT TESTED- requires ln_wave and ln_sdw363 360 IF( ln_zdfswm ) CALL zdf_swm( kt, Kmm, avm, avt, avs ) ! surface wave (Qiao et al. 2004) 364 361 IF( ln_zdfiwm ) CALL zdf_iwm( kt, Kmm, avm, avt, avs ) ! internal wave (de Lavergne et al 2017) … … 366 363 #if defined key_agrif 367 364 ! interpolation parent grid => child grid for avm_k ( ex : at west border: update column 1 and 2) 368 ! TODO: [tiling] NOT TESTED- requires AGRIF369 365 IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN ! Do only on the last tile 370 366 IF( l_zdfsh2 ) CALL Agrif_avm -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfric.F90
r14765 r14787 51 51 !! * Substitutions 52 52 # include "do_loop_substitute.h90" 53 # include "domzgr_substitute.h90"54 53 !!---------------------------------------------------------------------- 55 54 !! NEMO/OCE 4.0 , NEMO Consortium (2018) -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfsh2.F90
r14765 r14787 64 64 ! 65 65 DO jk = 2, jpkm1 !* Shear production at uw- and vw-points (energy conserving form) 66 ! TODO: [tiling] NOT TESTED- requires key_oasis367 66 IF ( cpl_sdrftx .AND. ln_stshear ) THEN ! Surface Stokes Drift available ===>>> shear + stokes drift contibution 68 67 DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdftke.F90
r14765 r14787 287 287 ! !* Langmuir velocity scale 288 288 ! 289 ! TODO: [tiling] NOT TESTED- requires key_oasis3290 289 IF ( cpl_sdrftx ) THEN ! Surface Stokes Drift available 291 290 ! ! Craik-Leibovich velocity scale Wlc = ( u* u_s )^1/2 with u* = (taum/rho0)^1/2 … … 403 402 ! !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 404 403 ! 405 ! TODO: [tiling] NOT TESTED- requires key_oasis3 and waves406 404 IF ( cpl_phioc .and. ln_phioc ) THEN 407 405 SELECT CASE (nn_bc_surf) ! Boundary Condition using surface TKE flux from waves … … 468 466 & * MAX( 0._wp, 1._wp - zice_fra(ji,jj) ) * wmask(ji,jj,jk) * tmask(ji,jj,1) 469 467 END_2D 470 ! TODO: [tiling] NOT TESTED- requires ln_cpl471 468 ELSEIF( nn_etau == 3 ) THEN !* penetration belox the mixed layer (HF variability) 472 469 DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) … … 540 537 zmxld(:,:,:) = rmxl_min 541 538 ! 542 ! TODO: [tiling] NOT TESTED- requires waves543 539 IF(ln_sdw .AND. ln_mxhsw) THEN 544 540 zmxlm(:,:,1)= vkarmn * MAX ( 1.6 * hsw(:,:) , 0.02 ) ! surface mixing length = F(wave height) … … 556 552 END_2D 557 553 #else 558 ! TODO: [tiling] NOT TESTED- requires sea ice559 554 SELECT CASE( nn_mxlice ) ! Type of scaling under sea-ice 560 555 ! -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/do_loop_substitute.h90
r14537 r14787 60 60 61 61 #define DO_2D(L, R, B, T) DO jj = ntsj-(B), ntej+(T) ; DO ji = ntsi-(L), ntei+(R) 62 ! NOTE: This easily exceeds 132 characters. ifort compiles OK, but it is against the NEMO coding standard.63 ! TODO: To consider alternatives (and revise name)64 62 #define DO_2D_OVR(L, R, B, T) DO_2D(L-(L+R)*nthl, R-(R+L)*nthr, B-(B+T)*nthb, T-(T+B)*ntht) 65 63 #define A1Di(H) ntsi-H:ntei+H -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/step.F90
r14780 r14787 182 182 ! LATERAL PHYSICS 183 183 ! 184 IF( ln_zps .OR. l_ldfslp ) CALL eos( ts(:,:,:,:,Nbb), rhd, gdept_0(:,:,:) ) ! before in situ density 184 IF( l_ldfslp ) THEN ! slope of lateral mixing 185 CALL eos( ts(:,:,:,:,Nbb), rhd, gdept_0(:,:,:) ) ! before in situ density 185 186 186 187 IF( ln_zps .AND. .NOT. ln_isfcav) & … … 191 192 & CALL zps_hde_isf( kstp, Nnn, jpts, ts(:,:,:,:,Nbb), gtsu, gtsv, gtui, gtvi, & ! Partial steps for top cell (ISF) 192 193 & rhd, gru , grv , grui, grvi ) ! of t, s, rd at the first ocean level 193 194 IF( l_ldfslp ) THEN ! slope of lateral mixing195 194 IF( ln_traldf_triad ) THEN 196 195 CALL ldf_slp_triad( kstp, Nbb, Nnn ) ! before slope for triad operator -
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/stpmlf.F90
r14780 r14787 185 185 ! LATERAL PHYSICS 186 186 ! 187 IF( ln_zps .OR. l_ldfslp ) CALL eos( ts(:,:,:,:,Nbb), rhd, gdept_0(:,:,:) ) ! before in situ density 187 IF( l_ldfslp ) THEN ! slope of lateral mixing 188 CALL eos( ts(:,:,:,:,Nbb), rhd, gdept_0(:,:,:) ) ! before in situ density 188 189 189 190 IF( ln_zps .AND. .NOT. ln_isfcav) & … … 194 195 & CALL zps_hde_isf( kstp, Nnn, jpts, ts(:,:,:,:,Nbb), gtsu, gtsv, gtui, gtvi, & ! Partial steps for top cell (ISF) 195 196 & rhd, gru , grv , grui, grvi ) ! of t, s, rd at the first ocean level 196 197 IF( l_ldfslp ) THEN ! slope of lateral mixing198 197 IF( ln_traldf_triad ) THEN 199 198 CALL ldf_slp_triad( kstp, Nbb, Nnn ) ! before slope for triad operator
Note: See TracChangeset
for help on using the changeset viewer.