Changeset 14863
- Timestamp:
- 2021-05-14T11:31:05+02:00 (4 years ago)
- Location:
- NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/src/OCE/TRA/traadv_fct.F90
r14856 r14863 164 164 END_3D 165 165 ! !* upstream tracer flux in the k direction *! 166 DO_3D( 1, 1, 1,1, 2, jpkm1 ) ! Interior value ( multiplied by wmask)166 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) ! Interior value ( multiplied by wmask) 167 167 zfp_wk = pW(ji,jj,jk) + ABS( pW(ji,jj,jk) ) 168 168 zfm_wk = pW(ji,jj,jk) - ABS( pW(ji,jj,jk) ) … … 171 171 IF( ln_linssh ) THEN ! top ocean value (only in linear free surface as zwz has been w-masked) 172 172 IF( ln_isfcav ) THEN ! top of the ice-shelf cavities and at the ocean surface 173 DO_2D( 1, 1, 1,1 )173 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 174 174 zwz(ji,jj, mikt(ji,jj) ) = pW(ji,jj,mikt(ji,jj)) * pt(ji,jj,mikt(ji,jj),jn,Kbb) ! linear free surface 175 175 END_2D 176 176 ELSE ! no cavities: only at the ocean surface 177 DO_2D( 1, 1, 1,1 )177 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 178 178 zwz(ji,jj,1) = pW(ji,jj,1) * pt(ji,jj,1,jn,Kbb) 179 179 END_2D -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/tests/ISOMIP+/MY_SRC/dtatsd.F90
r14090 r14863 168 168 INTEGER :: ji, jj, jk, jl, jkk ! dummy loop indicies 169 169 INTEGER :: ik, il0, il1, ii0, ii1, ij0, ij1 ! local integers 170 INTEGER :: itile171 170 REAL(wp):: zl, zi ! local scalars 172 171 REAL(wp), DIMENSION(jpk) :: ztp, zsp ! 1D workspace 173 172 !!---------------------------------------------------------------------- 174 173 ! 175 IF( ntile == 0 .OR. ntile == 1 ) THEN ! Do only for the full domain 176 itile = ntile 177 IF( ln_tile ) CALL dom_tile( ntsi, ntsj, ntei, ntej, ktile = 0 ) ! Use full domain 174 IF( .NOT. l_istiled .OR. ntile == 1 ) THEN ! Do only for the full domain 175 IF( ln_tile ) CALL dom_tile_stop( ldhold=.TRUE. ) ! Use full domain 178 176 179 177 SELECT CASE(cddta) … … 186 184 END SELECT 187 185 188 IF( ln_tile ) CALL dom_tile ( ntsi, ntsj, ntei, ntej, ktile = itile) ! Revert to tile domain186 IF( ln_tile ) CALL dom_tile_start( ldhold=.TRUE. ) ! Revert to tile domain 189 187 ENDIF 190 188 ! … … 206 204 IF( ln_sco ) THEN !== s- or mixed s-zps-coordinate ==! 207 205 ! 208 IF( ntile == 0.OR. ntile == 1 ) THEN ! Do only on the first tile206 IF( .NOT. l_istiled .OR. ntile == 1 ) THEN ! Do only on the first tile 209 207 IF( kt == nit000 .AND. lwp )THEN 210 208 WRITE(numout,*) … … 213 211 ENDIF 214 212 ! 215 DO_2D( 1, 1, 1, 1) ! vertical interpolation of T & S213 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) ! vertical interpolation of T & S 216 214 DO jk = 1, jpk ! determines the intepolated T-S profiles at each (i,j) points 217 215 zl = gdept_0(ji,jj,jk) … … 248 246 ! 249 247 IF( ln_zps ) THEN ! zps-coordinate (partial steps) interpolation at the last ocean level 250 DO_2D( 1, 1, 1, 1)248 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 251 249 ik = mbkt(ji,jj) 252 250 IF( ik > 1 ) THEN -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/tests/ISOMIP+/MY_SRC/eosbn2.F90
r14822 r14863 256 256 CASE( np_teos10, np_eos80 ) !== polynomial TEOS-10 / EOS-80 ==! 257 257 ! 258 DO_3D( 1, 1, 1, 1, 1, jpkm1 )258 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 259 259 ! 260 260 zh = pdep(ji,jj,jk) * r1_Z0 ! depth … … 292 292 CASE( np_seos ) !== simplified EOS ==! 293 293 ! 294 DO_3D( 1, 1, 1, 1, 1, jpkm1 )294 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 295 295 zt = pts (ji,jj,jk,jp_tem) - 10._wp 296 296 zs = pts (ji,jj,jk,jp_sal) - 35._wp … … 307 307 CASE( np_leos ) !== linear ISOMIP EOS ==! 308 308 ! 309 DO_3D( 1, 1, 1, 1, 1, jpkm1 )309 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 310 310 zt = pts (ji,jj,jk,jp_tem) - (-1._wp) 311 311 zs = pts (ji,jj,jk,jp_sal) - 34.2_wp … … 382 382 END DO 383 383 ! 384 DO_3D( 1, 1, 1, 1, 1, jpkm1 )384 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 385 385 ! 386 386 ! compute density (2*nn_sto_eos) times: … … 432 432 ! Non-stochastic equation of state 433 433 ELSE 434 DO_3D( 1, 1, 1, 1, 1, jpkm1 )434 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 435 435 ! 436 436 zh = pdep(ji,jj,jk) * r1_Z0 ! depth … … 470 470 CASE( np_seos ) !== simplified EOS ==! 471 471 ! 472 DO_3D( 1, 1, 1, 1, 1, jpkm1 )472 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 473 473 zt = pts (ji,jj,jk,jp_tem) - 10._wp 474 474 zs = pts (ji,jj,jk,jp_sal) - 35._wp … … 488 488 CASE( np_leos ) !== linear ISOMIP EOS ==! 489 489 ! 490 DO_3D( 1, 1, 1, 1, 1, jpkm1 )490 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 491 491 zt = pts (ji,jj,jk,jp_tem) - (-1._wp) 492 492 zs = pts (ji,jj,jk,jp_sal) - 34.2_wp … … 551 551 CASE( np_teos10, np_eos80 ) !== polynomial TEOS-10 / EOS-80 ==! 552 552 ! 553 DO_2D( 1, 1, 1, 1)553 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 554 554 ! 555 555 zh = pdep(ji,jj) * r1_Z0 ! depth … … 586 586 CASE( np_seos ) !== simplified EOS ==! 587 587 ! 588 DO_2D( 1, 1, 1, 1)588 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 589 589 ! 590 590 zt = pts (ji,jj,jp_tem) - 10._wp … … 602 602 CASE( np_leos ) !== ISOMIP EOS ==! 603 603 ! 604 DO_2D( 1, 1, 1, 1)604 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 605 605 ! 606 606 zt = pts (ji,jj,jp_tem) - (-1._wp) … … 625 625 626 626 SUBROUTINE eos_insitu_pot_2d( pts, prhop ) 627 !! 628 REAL(wp), DIMENSION(:,:,:), INTENT(in ) :: pts ! 1 : potential temperature [Celsius] 629 ! ! 2 : salinity [psu] 630 REAL(wp), DIMENSION(:,:) , INTENT( out) :: prhop ! potential density (surface referenced) 631 !! 632 CALL eos_insitu_pot_2d_t( pts, is_tile(pts), prhop, is_tile(prhop) ) 633 END SUBROUTINE eos_insitu_pot_2d 634 635 636 SUBROUTINE eos_insitu_pot_2d_t( pts, ktts, prhop, ktrhop ) 627 637 !!---------------------------------------------------------------------- 628 638 !! *** ROUTINE eos_insitu_pot *** … … 637 647 !! 638 648 !!---------------------------------------------------------------------- 639 REAL(wp), DIMENSION(jpi,jpj,jpts), INTENT(in ) :: pts ! 1 : potential temperature [Celsius] 649 INTEGER , INTENT(in ) :: ktts, ktrhop 650 REAL(wp), DIMENSION(A2D_T(ktts),JPTS), INTENT(in ) :: pts ! 1 : potential temperature [Celsius] 640 651 ! ! 2 : salinity [psu] 641 REAL(wp), DIMENSION( jpi,jpj), INTENT( out) :: prhop ! potential density (surface referenced)652 REAL(wp), DIMENSION(A2D_T(ktrhop) ), INTENT( out) :: prhop ! potential density (surface referenced) 642 653 ! 643 654 INTEGER :: ji, jj, jk, jsmp ! dummy loop indices … … 654 665 CASE( np_teos10, np_eos80 ) !== polynomial TEOS-10 / EOS-80 ==! 655 666 ! 656 DO_2D( 1, 1, 1, 1)667 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 657 668 ! 658 669 zt = pts (ji,jj,jp_tem) * r1_T0 ! temperature … … 675 686 CASE( np_seos ) !== simplified EOS ==! 676 687 ! 677 DO_2D( 1, 1, 1, 1)688 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 678 689 zt = pts (ji,jj,jp_tem) - 10._wp 679 690 zs = pts (ji,jj,jp_sal) - 35._wp … … 689 700 CASE( np_leos ) !== ISOMIP EOS ==! 690 701 ! 691 DO_2D( 1, 1, 1, 1)702 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 692 703 ! 693 704 zt = pts (ji,jj,jp_tem) - (-1._wp) … … 707 718 IF( ln_timing ) CALL timing_stop('eos-pot') 708 719 ! 709 END SUBROUTINE eos_insitu_pot_2d 720 END SUBROUTINE eos_insitu_pot_2d_t 710 721 711 722 … … 746 757 CASE( np_teos10, np_eos80 ) !== polynomial TEOS-10 / EOS-80 ==! 747 758 ! 748 DO_3D( 1, 1, 1, 1, 1, jpkm1 )759 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 749 760 ! 750 761 zh = gdept(ji,jj,jk,Kmm) * r1_Z0 ! depth … … 799 810 CASE( np_seos ) !== simplified EOS ==! 800 811 ! 801 DO_3D( 1, 1, 1, 1, 1, jpkm1 )812 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 802 813 zt = pts (ji,jj,jk,jp_tem) - 10._wp ! pot. temperature anomaly (t-T0) 803 814 zs = pts (ji,jj,jk,jp_sal) - 35._wp ! abs. salinity anomaly (s-S0) … … 815 826 CASE( np_leos ) !== linear ISOMIP EOS ==! 816 827 ! 817 DO_3D( 1, 1, 1, 1, 1, jpkm1 )828 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 818 829 zt = pts (ji,jj,jk,jp_tem) - (-1._wp) 819 830 zs = pts (ji,jj,jk,jp_sal) - 34.2_wp ! abs. salinity anomaly (s-S0) … … 881 892 CASE( np_teos10, np_eos80 ) !== polynomial TEOS-10 / EOS-80 ==! 882 893 ! 883 DO_2D( 1, 1, 1, 1)894 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 884 895 ! 885 896 zh = pdep(ji,jj) * r1_Z0 ! depth … … 934 945 CASE( np_seos ) !== simplified EOS ==! 935 946 ! 936 DO_2D( 1, 1, 1, 1)947 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 937 948 ! 938 949 zt = pts (ji,jj,jp_tem) - 10._wp ! pot. temperature anomaly (t-T0) … … 950 961 CASE( np_leos ) !== linear ISOMIP EOS ==! 951 962 ! 952 DO_2D( 1, 1, 1, 1)963 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 953 964 ! 954 965 zt = pts (ji,jj,jp_tem) - (-1._wp) ! pot. temperature anomaly (t-T0) … … 1124 1135 IF( ln_timing ) CALL timing_start('bn2') 1125 1136 ! 1126 DO_3D( 1, 1, 1, 1, 2, jpkm1 ) ! interior points only (2=< jk =< jpkm1 ); surface and bottom value set to zero one for all in istate.F901137 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 2, jpkm1 ) ! interior points only (2=< jk =< jpkm1 ); surface and bottom value set to zero one for all in istate.F90 1127 1138 zrw = ( gdepw(ji,jj,jk ,Kmm) - gdept(ji,jj,jk,Kmm) ) & 1128 1139 & / ( gdept(ji,jj,jk-1,Kmm) - gdept(ji,jj,jk,Kmm) ) … … 1418 1429 CASE( np_leos ) !== linear ISOMIP EOS ==! 1419 1430 ! 1420 DO_3D( 1, 1, 1, 1, 1, jpkm1 )1431 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 1421 1432 zt = pts(ji,jj,jk,jp_tem) - (-1._wp) ! temperature anomaly (t-T0) 1422 1433 zs = pts (ji,jj,jk,jp_sal) - 34.2_wp ! abs. salinity anomaly (s-S0) -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/tests/ISOMIP+/MY_SRC/istate.F90
r14053 r14863 167 167 ! 168 168 !!gm the use of umsak & vmask is not necessary below as uu(:,:,:,Kmm), vv(:,:,:,Kmm), uu(:,:,:,Kbb), vv(:,:,:,Kbb) are always masked 169 DO_3D( 1, 1, 1, 1, 1, jpkm1 )169 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 170 170 uu_b(ji,jj,Kmm) = uu_b(ji,jj,Kmm) + e3u(ji,jj,jk,Kmm) * uu(ji,jj,jk,Kmm) * umask(ji,jj,jk) 171 171 vv_b(ji,jj,Kmm) = vv_b(ji,jj,Kmm) + e3v(ji,jj,jk,Kmm) * vv(ji,jj,jk,Kmm) * vmask(ji,jj,jk) -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/tests/OVERFLOW/MY_SRC/usrdef_zgr.F90
r14822 r14863 184 184 pe3vw(:,:,jk) = pe3w_1d (jk) 185 185 END DO 186 DO_2D( 1, 1, 1, 1)186 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 187 187 ik = k_bot(ji,jj) 188 188 pdepw(ji,jj,ik+1) = MIN( zht(ji,jj) , pdepw_1d(ik+1) ) -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/tests/SWG/MY_SRC/usrdef_hgr.F90
r13752 r14863 113 113 DO jj = 1, jpj 114 114 DO ji = 1, jpi 115 zim1 = REAL( ji + nimpp - 1 ) ; zim05 = REAL( ji + nimpp - 1 ) - 0.5116 zjm1 = REAL( jj + njmpp - 1 ) ; zjm05 = REAL( jj + njmpp - 1 ) - 0.5115 zim1 = REAL( ji + nimpp - nn_hls ) ; zim05 = REAL( ji + nimpp - nn_hls ) - 0.5 116 zjm1 = REAL( jj + njmpp - nn_hls ) ; zjm05 = REAL( jj + njmpp - nn_hls ) - 0.5 117 117 ! 118 118 !glamt(i,j) position (meters) at T-point -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/tests/VORTEX/MY_SRC/usrdef_istate.F90
r14822 r14863 76 76 ! 77 77 ! temperature: 78 DO_2D( 1, 1, 1, 1)78 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 79 79 zx = glamt(ji,jj) * 1.e3 80 80 zy = gphit(ji,jj) * 1.e3 … … 160 160 ! Sea level: 161 161 za = -zP0 * (1._wp-EXP(-zH)) / (grav*(zH-1._wp + EXP(-zH))) 162 DO_2D( 1, 1, 1, 1)162 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 163 163 zx = glamt(ji,jj) * 1.e3 164 164 zy = gphit(ji,jj) * 1.e3
Note: See TracChangeset
for help on using the changeset viewer.