- Timestamp:
- 2017-09-27T16:29:24+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/RK3_SRC/LDF/ldfslp.F90
r7753 r8568 32 32 USE lib_mpp ! distribued memory computing library 33 33 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 34 USE wrk_nemo ! work arrays35 34 USE timing ! Timing 36 35 … … 118 117 REAL(wp) :: zck, zfk, zbw ! - - 119 118 REAL(wp) :: zdepu, zdepv ! - - 120 REAL(wp), POINTER, DIMENSION(:,: ) :: zslpml_hmlpu, zslpml_hmlpv 121 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwz, zww 122 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdzr 123 REAL(wp), POINTER, DIMENSION(:,:,:) :: zgru, zgrv 124 !!---------------------------------------------------------------------- 125 ! 126 IF( nn_timing == 1 ) CALL timing_start('ldf_slp') 127 ! 128 CALL wrk_alloc( jpi,jpj,jpk, zwz, zww, zdzr, zgru, zgrv ) 129 CALL wrk_alloc( jpi,jpj, zslpml_hmlpu, zslpml_hmlpv ) 130 119 REAL(wp), DIMENSION(jpi,jpj) :: zslpml_hmlpu, zslpml_hmlpv 120 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgru, zwz, zdzr 121 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrv, zww 122 !!---------------------------------------------------------------------- 123 ! 124 IF( ln_timing ) CALL timing_start('ldf_slp') 125 ! 131 126 zeps = 1.e-20_wp !== Local constant initialization ==! 132 127 z1_16 = 1.0_wp / 16._wp … … 157 152 DO jj = 1, jpjm1 158 153 DO ji = 1, jpim1 159 IF ( miku(ji,jj) > 1 )zgru(ji,jj,miku(ji,jj)) = grui(ji,jj)160 IF ( mikv(ji,jj) > 1 )zgrv(ji,jj,mikv(ji,jj)) = grvi(ji,jj)154 IF( miku(ji,jj) > 1 ) zgru(ji,jj,miku(ji,jj)) = grui(ji,jj) 155 IF( mikv(ji,jj) > 1 ) zgrv(ji,jj,mikv(ji,jj)) = grvi(ji,jj) 161 156 END DO 162 157 END DO … … 375 370 ENDIF 376 371 ! 377 CALL wrk_dealloc( jpi,jpj,jpk, zwz, zww, zdzr, zgru, zgrv ) 378 CALL wrk_dealloc( jpi,jpj, zslpml_hmlpu, zslpml_hmlpv ) 379 ! 380 IF( nn_timing == 1 ) CALL timing_stop('ldf_slp') 372 IF( ln_timing ) CALL timing_stop('ldf_slp') 381 373 ! 382 374 END SUBROUTINE ldf_slp … … 409 401 REAL(wp) :: zdzrho_raw 410 402 REAL(wp) :: zbeta0, ze3_e1, ze3_e2 411 REAL(wp), POINTER, DIMENSION(:,:) :: z1_mlbw 412 REAL(wp), POINTER, DIMENSION(:,:,:) :: zalbet 413 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zdxrho , zdyrho, zdzrho ! Horizontal and vertical density gradients 414 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zti_mlb, ztj_mlb ! for Griffies operator only 415 !!---------------------------------------------------------------------- 416 ! 417 IF( nn_timing == 1 ) CALL timing_start('ldf_slp_triad') 418 ! 419 CALL wrk_alloc( jpi,jpj, z1_mlbw ) 420 CALL wrk_alloc( jpi,jpj,jpk, zalbet ) 421 CALL wrk_alloc( jpi,jpj,jpk,2, zdxrho , zdyrho, zdzrho, klstart = 0 ) 422 CALL wrk_alloc( jpi,jpj, 2,2, zti_mlb, ztj_mlb, kkstart = 0, klstart = 0 ) 403 REAL(wp), DIMENSION(jpi,jpj) :: z1_mlbw 404 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zalbet 405 REAL(wp), DIMENSION(jpi,jpj,jpk,0:1) :: zdxrho , zdyrho, zdzrho ! Horizontal and vertical density gradients 406 REAL(wp), DIMENSION(jpi,jpj,0:1,0:1) :: zti_mlb, ztj_mlb ! for Griffies operator only 407 !!---------------------------------------------------------------------- 408 ! 409 IF( ln_timing ) CALL timing_start('ldf_slp_triad') 410 ! 423 411 ! 424 412 !--------------------------------! … … 624 612 CALL lbc_lnk( wslp2, 'W', 1. ) ! lateral boundary confition on wslp2 only ==>>> gm : necessary ? to be checked 625 613 ! 626 CALL wrk_dealloc( jpi,jpj, z1_mlbw ) 627 CALL wrk_dealloc( jpi,jpj,jpk, zalbet ) 628 CALL wrk_dealloc( jpi,jpj,jpk,2, zdxrho , zdyrho, zdzrho, klstart = 0 ) 629 CALL wrk_dealloc( jpi,jpj, 2,2, zti_mlb, ztj_mlb, kkstart = 0, klstart = 0 ) 630 ! 631 IF( nn_timing == 1 ) CALL timing_stop('ldf_slp_triad') 614 IF( ln_timing ) CALL timing_stop('ldf_slp_triad') 632 615 ! 633 616 END SUBROUTINE ldf_slp_triad … … 663 646 !!---------------------------------------------------------------------- 664 647 ! 665 IF( nn_timing == 1 )CALL timing_start('ldf_slp_mxl')648 IF( ln_timing ) CALL timing_start('ldf_slp_mxl') 666 649 ! 667 650 zeps = 1.e-20_wp !== Local constant initialization ==! … … 746 729 CALL lbc_lnk( wslpiml, 'W', -1. ) ; CALL lbc_lnk( wslpjml, 'W', -1. ) ! lateral boundary conditions 747 730 ! 748 IF( nn_timing == 1 )CALL timing_stop('ldf_slp_mxl')731 IF( ln_timing ) CALL timing_stop('ldf_slp_mxl') 749 732 ! 750 733 END SUBROUTINE ldf_slp_mxl … … 763 746 !!---------------------------------------------------------------------- 764 747 ! 765 IF( nn_timing == 1 )CALL timing_start('ldf_slp_init')748 IF( ln_timing ) CALL timing_start('ldf_slp_init') 766 749 ! 767 750 IF(lwp) THEN … … 821 804 ENDIF 822 805 ! 823 IF( nn_timing == 1 )CALL timing_stop('ldf_slp_init')806 IF( ln_timing ) CALL timing_stop('ldf_slp_init') 824 807 ! 825 808 END SUBROUTINE ldf_slp_init
Note: See TracChangeset
for help on using the changeset viewer.