Changeset 3231
- Timestamp:
- 2011-12-21T10:11:11+01:00 (13 years ago)
- Location:
- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_cen2.F90
r3186 r3231 49 49 !! ** Action : (ua,va) updated with the now vorticity term trend 50 50 !!---------------------------------------------------------------------- 51 USE oce , ONLY: tsa ! tsa used as 2 3D workspace52 !53 51 INTEGER, INTENT( in ) :: kt ! ocean time-step index 54 52 ! … … 61 59 IF( nn_timing == 1 ) CALL timing_start('dyn_adv_cen2') 62 60 ! 63 CALL wrk_alloc( jpi, jpj, jpk, zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfw ) 64 zfu => tsa(:,:,:,1) 65 zfv => tsa(:,:,:,2) 61 CALL wrk_alloc( jpi, jpj, jpk, zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 66 62 ! 67 63 IF( kt == nit000 .AND. lwp ) THEN … … 163 159 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 164 160 ! 165 CALL wrk_dealloc( jpi, jpj, jpk, zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zf w )161 CALL wrk_dealloc( jpi, jpj, jpk, zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 166 162 ! 167 163 IF( nn_timing == 1 ) CALL timing_stop('dyn_adv_cen2') -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_ubs.F90
r3186 r3231 70 70 !! Reference : Shchepetkin & McWilliams, 2005, Ocean Modelling. 71 71 !!---------------------------------------------------------------------- 72 USE oce , ONLY: tsa ! tsa used as 2 3D workspace73 !74 72 INTEGER, INTENT(in) :: kt ! ocean time-step index 75 73 ! … … 84 82 IF( nn_timing == 1 ) CALL timing_start('dyn_adv_ubs') 85 83 ! 86 CALL wrk_alloc( jpi, jpj, jpk, zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfw ) 87 CALL wrk_alloc( jpi, jpj, jpk, jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu ) 88 zfu => tsa(:,:,:,1) 89 zfv => tsa(:,:,:,2) 84 CALL wrk_alloc( jpi, jpj, jpk, zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 85 CALL wrk_alloc( jpi, jpj, jpk, jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu ) 90 86 ! 91 87 IF( kt == nit000 ) THEN … … 255 251 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 256 252 ! 257 CALL wrk_dealloc( jpi, jpj, jpk, zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zf w )258 CALL wrk_dealloc( jpi, jpj, jpk, jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu )253 CALL wrk_dealloc( jpi, jpj, jpk, zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 254 CALL wrk_dealloc( jpi, jpj, jpk, jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu ) 259 255 ! 260 256 IF( nn_timing == 1 ) CALL timing_stop('dyn_adv_ubs') -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynbfr.F90
r3161 r3231 19 19 USE prtctl ! Print control 20 20 USE timing ! Timing 21 USE wrk_nemo ! Memory Allocation 21 22 22 23 IMPLICIT NONE … … 44 45 !! ** Action : (ua,va) momentum trend increased by bottom friction trend 45 46 !!--------------------------------------------------------------------- 46 USE oce, ONLY: ztrduv => tsa ! tsa used as 4D workspace47 !!48 47 INTEGER, INTENT(in) :: kt ! ocean time-step index 49 48 !! … … 51 50 INTEGER :: ikbu, ikbv ! local integers 52 51 REAL(wp) :: zm1_2dt ! local scalar 52 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdu, ztrdv 53 53 !!--------------------------------------------------------------------- 54 54 ! … … 62 62 63 63 IF( l_trddyn ) THEN ! temporary save of ua and va trends 64 ztrduv(:,:,:,1) = ua(:,:,:) 65 ztrduv(:,:,:,2) = va(:,:,:) 64 CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 65 ztrdu(:,:,:) = ua(:,:,:) 66 ztrdv(:,:,:) = va(:,:,:) 66 67 ENDIF 67 68 … … 85 86 ! 86 87 IF( l_trddyn ) THEN ! save the vertical diffusive trends for further diagnostics 87 ztrduv(:,:,:,1) = ua(:,:,:) - ztrduv(:,:,:,1) 88 ztrduv(:,:,:,2) = va(:,:,:) - ztrduv(:,:,:,2) 89 CALL trd_mod( ztrduv(:,:,:,1), ztrduv(:,:,:,2), jpdyn_trd_bfr, 'DYN', kt ) 88 ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 89 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 90 CALL trd_mod( ztrdu(:,:,:), ztrdv(:,:,:), jpdyn_trd_bfr, 'DYN', kt ) 91 CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 90 92 ENDIF 91 93 ! ! print mean trends (used for debugging) -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r3223 r3231 76 76 !! - Save the trend (l_trddyn=T) 77 77 !!---------------------------------------------------------------------- 78 USE oce, ONLY: tsa ! (tsa) used as 2 3D workspace79 !!80 78 INTEGER, INTENT(in) :: kt ! ocean time-step index 81 79 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdu, ztrdv … … 85 83 ! 86 84 IF( l_trddyn ) THEN ! Temporary saving of ua and va trends (l_trddyn) 87 ztrdu => tsa(:,:,:,1) 88 ztrdv => tsa(:,:,:,2) 89 ! 85 CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 90 86 ztrdu(:,:,:) = ua(:,:,:) 91 87 ztrdv(:,:,:) = va(:,:,:) … … 104 100 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 105 101 CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_hpg, 'DYN', kt ) 102 CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 106 103 ENDIF 107 104 ! … … 191 188 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 192 189 !!---------------------------------------------------------------------- 193 USE oce, ONLY: tsa ! (tsa) used as 2 3D workspace194 !!195 190 INTEGER, INTENT(in) :: kt ! ocean time-step index 196 191 !! … … 199 194 REAL(wp), POINTER, DIMENSION(:,:,:) :: zhpi, zhpj 200 195 !!---------------------------------------------------------------------- 201 202 zhpi => tsa(:,:,:,1) 203 zhpj => tsa(:,:,:,2) 196 ! 197 CALL wrk_alloc( jpi,jpj,jpk, zhpi, zhpj ) 204 198 ! 205 199 IF( kt == nit000 ) THEN … … 245 239 END DO 246 240 ! 241 CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zhpj ) 242 ! 247 243 END SUBROUTINE hpg_zco 248 244 … … 256 252 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 257 253 !!---------------------------------------------------------------------- 258 USE oce, ONLY: tsa ! (tsa) used as 2 3D workspace259 !!260 254 INTEGER, INTENT(in) :: kt ! ocean time-step index 261 255 !! … … 265 259 REAL(wp), POINTER, DIMENSION(:,:,:) :: zhpi, zhpj 266 260 !!---------------------------------------------------------------------- 267 268 zhpi => tsa(:,:,:,1) 269 zhpj => tsa(:,:,:,2) 261 ! 262 CALL wrk_alloc( jpi,jpj,jpk, zhpi, zhpj ) 270 263 ! 271 264 IF( kt == nit000 ) THEN … … 343 336 END DO 344 337 ! 345 338 CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zhpj ) 339 ! 346 340 END SUBROUTINE hpg_zps 347 341 … … 365 359 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 366 360 !!---------------------------------------------------------------------- 367 USE oce, ONLY: tsa ! (tsa) used as 2 3D workspace368 !!369 361 INTEGER, INTENT(in) :: kt ! ocean time-step index 370 362 !! … … 373 365 REAL(wp), POINTER, DIMENSION(:,:,:) :: zhpi, zhpj 374 366 !!---------------------------------------------------------------------- 375 376 zhpi => tsa(:,:,:,1) 377 zhpj => tsa(:,:,:,2) 367 ! 368 CALL wrk_alloc( jpi,jpj,jpk, zhpi, zhpj ) 378 369 ! 379 370 IF( kt == nit000 ) THEN … … 432 423 END DO 433 424 ! 425 CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zhpj ) 426 ! 434 427 END SUBROUTINE hpg_sco 435 428 … … 442 435 !! Reference: Shchepetkin and McWilliams, J. Geophys. Res., 108(C3), 3090, 2003 443 436 !!---------------------------------------------------------------------- 444 USE oce , ONLY: tsa ! (tsa) used as 2 3D workspace445 !!446 437 INTEGER, INTENT(in) :: kt ! ocean time-step index 447 438 !! … … 458 449 CALL wrk_alloc( jpi, jpj, jpk, dzx , dzy , dzz , dzu , dzv , dzw ) 459 450 CALL wrk_alloc( jpi, jpj, jpk, drhox, drhoy, drhoz, drhou, drhov, drhow ) 460 CALL wrk_alloc( jpi, jpj, jpk, rho_i, rho_j, rho_k ) 461 zhpi => tsa(:,:,:,1) 462 zhpj => tsa(:,:,:,2) 451 CALL wrk_alloc( jpi, jpj, jpk, rho_i, rho_j, rho_k, zhpi, zhpj ) 463 452 ! 464 453 … … 660 649 CALL wrk_dealloc( jpi, jpj, jpk, dzx , dzy , dzz , dzu , dzv , dzw ) 661 650 CALL wrk_dealloc( jpi, jpj, jpk, drhox, drhoy, drhoz, drhou, drhov, drhow ) 662 CALL wrk_dealloc( jpi, jpj, jpk, rho_i, rho_j, rho_k 651 CALL wrk_dealloc( jpi, jpj, jpk, rho_i, rho_j, rho_k, zhpi, zhpj ) 663 652 ! 664 653 END SUBROUTINE hpg_djc … … 678 667 !! 679 668 !!---------------------------------------------------------------------- 680 USE oce , ONLY: tsa ! (tsa) used as 2 3D workspace681 !!----------------------------------------------------------------------682 !!683 669 INTEGER, PARAMETER :: polynomial_type = 1 ! 1: cubic spline, 2: linear 684 670 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 697 683 !!---------------------------------------------------------------------- 698 684 ! 699 CALL wrk_alloc( jpi, jpj, jpk, zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp ) 700 zdeptht => tsa(:,:,:,1) 701 zrhh => tsa(:,:,:,2) 685 CALL wrk_alloc( jpi,jpj,jpk, zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp ) 686 CALL wrk_alloc( jpi,jpj,jpk, zdeptht, zrhh ) 702 687 ! 703 688 IF( kt == nit000 ) THEN … … 955 940 END DO 956 941 ! 957 CALL wrk_dealloc( jpi, jpj, jpk, zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp ) 942 CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp ) 943 CALL wrk_dealloc( jpi,jpj,jpk, zdeptht, zrhh ) 958 944 ! 959 945 END SUBROUTINE hpg_prj -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90
r3186 r3231 54 54 !! - save this trends (l_trddyn=T) for post-processing 55 55 !!---------------------------------------------------------------------- 56 USE oce , ONLY: tsa ! tsa used as 2 3D workspace57 !!58 56 INTEGER, INTENT( in ) :: kt ! ocean time-step index 59 57 !! … … 75 73 76 74 IF( l_trddyn ) THEN ! Save ua and va trends 77 ztrdu => tsa(:,:,:,1) 78 ztrdv => tsa(:,:,:,2) 79 ! 75 CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 80 76 ztrdu(:,:,:) = ua(:,:,:) 81 77 ztrdv(:,:,:) = va(:,:,:) … … 136 132 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 137 133 CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_keg, 'DYN', kt ) 134 CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 138 135 ENDIF 139 136 ! -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilapg.F90
r3186 r3231 87 87 !! - save the trend in (zwk3,zwk4) ('key_trddyn') 88 88 !!---------------------------------------------------------------------- 89 USE oce , ONLY: tsa ! tsa used as 2 3D workspace90 !91 89 INTEGER, INTENT( in ) :: kt ! ocean time-step index 92 90 ! 93 91 INTEGER :: ji, jj, jk ! dummy loop indices 94 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwk1, zwk2 95 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwk3, zwk4 92 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwk1, zwk2, zwk3, zwk4 96 93 !!---------------------------------------------------------------------- 97 94 ! 98 95 IF( nn_timing == 1 ) CALL timing_start('dyn_ldf_bilapg') 99 96 ! 100 CALL wrk_alloc( jpi, jpj, jpk, zwk1, zwk2 ) 101 zwk3 => tsa(:,:,:,1) 102 zwk4 => tsa(:,:,:,2) 97 CALL wrk_alloc( jpi, jpj, jpk, zwk1, zwk2, zwk3, zwk4 ) 103 98 ! 104 99 IF( kt == nit000 ) THEN … … 135 130 END DO 136 131 ! 137 CALL wrk_dealloc( jpi, jpj, jpk, zwk1, zwk2 )132 CALL wrk_dealloc( jpi, jpj, jpk, zwk1, zwk2, zwk3, zwk4 ) 138 133 ! 139 134 IF( nn_timing == 1 ) CALL timing_stop('dyn_ldf_bilapg') -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90
r3161 r3231 40 40 USE lbclnk ! lateral boundary condition (or mpp link) 41 41 USE lib_mpp ! MPP library 42 USE wrk_nemo ! Memory Allocation 42 43 USE prtctl ! Print control 43 44 #if defined key_agrif … … 93 94 !! un,vn now horizontal velocity of next time-step 94 95 !!---------------------------------------------------------------------- 95 USE oce , ONLY: tsa ! tsa used as 2 3D workspace96 !97 96 INTEGER, INTENT( in ) :: kt ! ocean time-step index 98 97 ! … … 109 108 IF( nn_timing == 1 ) CALL timing_start('dyn_nxt') 110 109 ! 111 ze3u_f => tsa(:,:,:,1) 112 ze3v_f => tsa(:,:,:,2) 110 CALL wrk_alloc( jpi,jpj,jpk, ze3u_f, ze3v_f ) 113 111 ! 114 112 IF( kt == nit000 ) THEN … … 281 279 & tab3d_2=vn, clinfo2=' Vn: ' , mask2=vmask ) 282 280 ! 281 CALL wrk_dealloc( jpi,jpj,jpk, ze3u_f, ze3v_f ) 282 ! 283 283 IF( nn_timing == 1 ) CALL timing_stop('dyn_nxt') 284 284 ! -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90
r3161 r3231 41 41 USE in_out_manager ! I/O manager 42 42 USE lib_mpp ! distributed memory computing library 43 USE wrk_nemo ! Memory Allocation 43 44 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 44 45 USE prtctl ! Print control … … 104 105 !! References : Roullet and Madec 1999, JGR. 105 106 !!--------------------------------------------------------------------- 106 USE oce, ONLY: tsa ! tsa used as 2 3D workspace107 !!108 107 INTEGER, INTENT(in ) :: kt ! ocean time-step index 109 108 INTEGER, INTENT( out) :: kindic ! solver convergence flag (<0 if not converge) … … 116 115 IF( nn_timing == 1 ) CALL timing_start('dyn_spg_flt') 117 116 ! 118 zub => tsa(:,:,:,1) 119 zvb => tsa(:,:,:,2) 117 CALL wrk_alloc( jpi,jpj,jpk, zub, zvb ) 120 118 ! 121 119 IF( kt == nit000 ) THEN … … 353 351 IF( lrst_oce ) CALL flt_rst( kt, 'WRITE' ) 354 352 ! 353 CALL wrk_dealloc( jpi,jpj,jpk, zub, zvb ) 354 ! 355 355 IF( nn_timing == 1 ) CALL timing_stop('dyn_spg_flt') 356 356 ! -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
r3186 r3231 75 75 !! and planetary vorticity trends) ('key_trddyn') 76 76 !!---------------------------------------------------------------------- 77 USE oce, ONLY: tsa ! tsa used as 2 3D workspace78 !!79 77 INTEGER, INTENT( in ) :: kt ! ocean time-step index 80 78 ! … … 84 82 IF( nn_timing == 1 ) CALL timing_start('dyn_vor') 85 83 ! 86 IF( l_trddyn ) THEN 87 ztrdu => tsa(:,:,:,1) 88 ztrdv => tsa(:,:,:,2) 89 END IF 84 IF( l_trddyn ) CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 90 85 ! 91 86 ! ! vorticity term … … 187 182 IF(ln_ctl) CALL prt_ctl( tab3d_1=ua, clinfo1=' vor - Ua: ', mask1=umask, & 188 183 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 184 ! 185 IF( l_trddyn ) CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 189 186 ! 190 187 IF( nn_timing == 1 ) CALL timing_stop('dyn_vor') -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynzad.F90
r3186 r3231 55 55 !! - Save the trends in (ztrdu,ztrdv) ('key_trddyn') 56 56 !!---------------------------------------------------------------------- 57 USE oce , ONLY: tsa ! tsa used as 2 3D workspace58 !!59 57 INTEGER, INTENT(in) :: kt ! ocean time-step inedx 60 58 ! … … 68 66 IF( nn_timing == 1 ) CALL timing_start('dyn_zad') 69 67 ! 70 CALL wrk_alloc( jpi, jpj, zww ) 71 ! 72 zwuw => tsa(:,:,:,1) 73 zwvw => tsa(:,:,:,2) 68 CALL wrk_alloc( jpi,jpj, zww ) 69 CALL wrk_alloc( jpi,jpj,jpk, zwuw , zwvw ) 74 70 ! 75 71 IF( kt == nit000 ) THEN … … 129 125 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 130 126 ! 131 CALL wrk_dealloc( jpi, jpj, zww ) 127 CALL wrk_dealloc( jpi,jpj, zww ) 128 CALL wrk_dealloc( jpi,jpj,jpk, zwuw , zwvw ) 132 129 ! 133 130 IF( nn_timing == 1 ) CALL timing_stop('dyn_zad') -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_exp.F90
r3186 r3231 57 57 !! ** Action : - Update (ua,va) with the vertical diffusive trend 58 58 !!--------------------------------------------------------------------- 59 USE oce , ONLY: tsa ! tsa used as 2 3D workspace60 !61 59 INTEGER , INTENT(in) :: kt ! ocean time-step index 62 60 REAL(wp), INTENT(in) :: p2dt ! time-step … … 64 62 INTEGER :: ji, jj, jk, jl ! dummy loop indices 65 63 REAL(wp) :: zrau0r, zlavmr, zua, zva ! local scalars 66 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwx, zwy 67 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwz, zww 64 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwx, zwy, zwz, zww 68 65 !!---------------------------------------------------------------------- 69 66 ! 70 67 IF( nn_timing == 1 ) CALL timing_start('dyn_zdf_exp') 71 68 ! 72 CALL wrk_alloc( jpi, jpj, jpk, zwz, zww ) 73 ! 74 zwx => tsa(:,:,:,1) 75 zwy => tsa(:,:,:,2) 69 CALL wrk_alloc( jpi,jpj,jpk, zwx, zwy, zwz, zww ) 76 70 ! 77 71 IF( kt == nit000 .AND. lwp ) THEN … … 126 120 END DO ! End of time splitting 127 121 ! 128 CALL wrk_dealloc( jpi, jpj, jpk, zwz, zww )122 CALL wrk_dealloc( jpi,jpj,jpk, zwx, zwy, zwz, zww ) 129 123 ! 130 124 IF( nn_timing == 1 ) CALL timing_stop('dyn_zdf_exp') -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90
r3186 r3231 57 57 !! ** Action : - Update (ua,va) arrays with the after vertical diffusive mixing trend. 58 58 !!--------------------------------------------------------------------- 59 USE oce , ONLY: tsa ! tsa used as 2 3D workspace60 !!61 59 INTEGER , INTENT(in) :: kt ! ocean time-step index 62 60 REAL(wp), INTENT(in) :: p2dt ! vertical profile of tracer time-step … … 69 67 REAL(wp) :: zbfru, zbfrv 70 68 REAL(wp) :: zbfr_imp = 0._wp ! toggle (SAVE'd by assignment) 71 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi 72 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwd, zws 69 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwd, zws 73 70 !!---------------------------------------------------------------------- 74 71 ! 75 72 IF( nn_timing == 1 ) CALL timing_start('dyn_zdf_imp') 76 73 ! 77 CALL wrk_alloc( jpi, jpj, jpk, zwi ) 78 ! 79 zwd => tsa(:,:,:,1) 80 zws => tsa(:,:,:,2) 74 CALL wrk_alloc( jpi,jpj,jpk, zwi, zwd, zws ) 81 75 ! 82 76 IF( kt == nit000 ) THEN … … 251 245 END DO 252 246 ! 253 CALL wrk_dealloc( jpi, jpj, jpk, zwi)247 CALL wrk_dealloc( jpi,jpj,jpk, zwi, zwd, zws ) 254 248 ! 255 249 IF( nn_timing == 1 ) CALL timing_stop('dyn_zdf_imp') -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90
r3186 r3231 77 77 !! Reference : Leclair, M., and G. Madec, 2009, Ocean Modelling. 78 78 !!---------------------------------------------------------------------- 79 USE oce , ONLY: tsa ! tsa used as 2 3D workspace80 !!81 79 INTEGER, INTENT(in) :: kt ! time step 82 80 ! … … 232 230 IF( lk_diaar5 ) THEN ! vertical mass transport & its square value 233 231 ! Caution: in the VVL case, it only correponds to the baroclinic mass transport. 234 z3d => tsa(:,:,:,1)232 CALL wrk_alloc( jpi,jpj,jpk, z3d ) 235 233 z2d(:,:) = rau0 * e1t(:,:) * e2t(:,:) 236 234 DO jk = 1, jpk … … 239 237 CALL iom_put( "w_masstr" , z3d ) 240 238 CALL iom_put( "w_masstr2", z3d(:,:,:) * z3d(:,:,:) ) 239 CALL wrk_dealloc( jpi,jpj,jpk, z3d ) 241 240 ENDIF 242 241 ! -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90
r3229 r3231 96 96 !! of now neutral surfaces at u-, w- and v- w-points, resp. 97 97 !!---------------------------------------------------------------------- 98 USE oce , ONLY: zwz => ua , zww => va ! (ua,va) used as workspace99 USE oce , ONLY: tsa ! (tsa) used as workspace100 !!101 98 INTEGER , INTENT(in) :: kt ! ocean time-step index 102 99 REAL(wp), INTENT(in), DIMENSION(:,:,:) :: prd ! in situ density … … 110 107 REAL(wp) :: zcj, zfj, zav, zbv, zaj, zbj ! - - 111 108 REAL(wp) :: zck, zfk, zbw ! - - 109 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwz, zww 112 110 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdzr 113 111 REAL(wp), POINTER, DIMENSION(:,:,:) :: zgru, zgrv … … 116 114 IF( nn_timing == 1 ) CALL timing_start('ldf_slp') 117 115 ! 118 CALL wrk_alloc( jpi,jpj,jpk, zdzr ) 119 ! 120 zgru => tsa(:,:,:,1) 121 zgrv => tsa(:,:,:,2) 116 CALL wrk_alloc( jpi,jpj,jpk, zwz, zww, zdzr, zgru, zgrv ) 122 117 123 118 zeps = 1.e-20_wp !== Local constant initialization ==! … … 366 361 ENDIF 367 362 ! 368 CALL wrk_dealloc( jpi,jpj,jpk, z dzr)363 CALL wrk_dealloc( jpi,jpj,jpk, zwz, zww, zdzr, zgru, zgrv ) 369 364 ! 370 365 IF( nn_timing == 1 ) CALL timing_stop('ldf_slp') … … 387 382 !! - wslp2 squared slope of neutral surfaces at w-points. 388 383 !!---------------------------------------------------------------------- 389 USE oce , ONLY: zalbet => ua ! use ua as workspace390 !!391 384 INTEGER, INTENT( in ) :: kt ! ocean time-step index 392 385 !! … … 401 394 REAL(wp) :: zbeta0 402 395 REAL(wp), POINTER, DIMENSION(:,:) :: z1_mlbw 396 REAL(wp), POINTER, DIMENSION(:,:,:) :: zalbet 403 397 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zdxrho , zdyrho, zdzrho ! Horizontal and vertical density gradients 404 398 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zti_mlb, ztj_mlb ! for Griffies operator only … … 408 402 ! 409 403 CALL wrk_alloc( jpi,jpj, z1_mlbw ) 404 CALL wrk_alloc( jpi,jpj,jpk, zalbet ) 410 405 CALL wrk_alloc( jpi,jpj,jpk,2, zdxrho , zdyrho, zdzrho, klstart = 0 ) 411 406 CALL wrk_alloc( jpi,jpj, 2,2, zti_mlb, ztj_mlb, kkstart = 0, klstart = 0 ) … … 602 597 ! 603 598 CALL wrk_dealloc( jpi,jpj, z1_mlbw ) 599 CALL wrk_dealloc( jpi,jpj,jpk, zalbet ) 604 600 CALL wrk_dealloc( jpi,jpj,jpk,2, zdxrho , zdyrho, zdzrho, klstart = 0 ) 605 601 CALL wrk_dealloc( jpi,jpj, 2,2, zti_mlb, ztj_mlb, kkstart = 0, klstart = 0 ) -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90
r3229 r3231 133 133 !! coefficients using the GLS turbulent closure scheme. 134 134 !!---------------------------------------------------------------------- 135 USE oce , ONLY: tsa ! use tsa as workspace136 USE oce , ONLY: z_elem_a => ua ! use ua as workspace137 USE oce , ONLY: z_elem_b => va ! use va as workspace138 !139 135 INTEGER, INTENT(in) :: kt ! ocean time step 140 136 INTEGER :: ji, jj, jk, ibot, ibotm1, dir ! dummy loop arguments … … 152 148 REAL(wp), POINTER, DIMENSION(:,:,:) :: eps ! dissipation rate 153 149 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwall_psi ! Wall function use in the wb case (ln_sigpsi.AND.ln_crban=T) 154 REAL(wp), POINTER, DIMENSION(:,:,:) :: z_elem_ c, psi150 REAL(wp), POINTER, DIMENSION(:,:,:) :: z_elem_a, z_elem_b, z_elem_c, psi 155 151 !!-------------------------------------------------------------------- 156 152 ! … … 158 154 ! 159 155 CALL wrk_alloc( jpi,jpj, zdep, zflxs, zhsro ) 160 CALL wrk_alloc( jpi,jpj,jpk, eb, mxlb, shear, eps, zwall_psi ) 161 ! 162 z_elem_c => tsa(:,:,:,1) 163 psi => tsa(:,:,:,2) 156 CALL wrk_alloc( jpi,jpj,jpk, eb, mxlb, shear, eps, zwall_psi, z_elem_a, z_elem_b, z_elem_c, psi ) 164 157 165 158 ! Preliminary computing … … 890 883 ! 891 884 CALL wrk_dealloc( jpi,jpj, zdep, zflxs, zhsro ) 892 CALL wrk_dealloc( jpi,jpj,jpk, eb, mxlb, shear, eps, zwall_psi )885 CALL wrk_dealloc( jpi,jpj,jpk, eb, mxlb, shear, eps, zwall_psi, z_elem_a, z_elem_b, z_elem_c, psi ) 893 886 ! 894 887 IF( nn_timing == 1 ) CALL timing_stop('zdf_gls') -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
r3229 r3231 192 192 !! (= Kz dz[Ub] * dz[Un] ) 193 193 !! --------------------------------------------------------------------- 194 USE oce , ONLY: zdiag => ua ! (ua,va) used as workspace195 USE oce , ONLY: tsa ! (tsa) used as workspace196 !!197 194 INTEGER :: ji, jj, jk ! dummy loop arguments 198 195 !!bfr INTEGER :: ikbu, ikbv, ikbum1, ikbvm1 ! temporary scalar … … 207 204 REAL(wp) :: zzd_up, zzd_lw ! - - 208 205 !!bfr REAL(wp) :: zebot ! - - 209 REAL(wp), POINTER, DIMENSION(:,:,:) :: zd_up, zd_lw210 206 INTEGER , POINTER, DIMENSION(:,: ) :: imlc 211 207 REAL(wp), POINTER, DIMENSION(:,: ) :: zhlc 212 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpelc 208 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpelc, zdiag, zd_up, zd_lw 213 209 !!-------------------------------------------------------------------- 214 210 ! … … 217 213 CALL wrk_alloc( jpi,jpj, imlc ) ! integer 218 214 CALL wrk_alloc( jpi,jpj, zhlc ) 219 CALL wrk_alloc( jpi,jpj,jpk, zpelc ) 220 ! 221 zd_up => tsa(:,:,:,1) 222 zd_lw => tsa(:,:,:,2) 223 215 CALL wrk_alloc( jpi,jpj,jpk, zpelc, zdiag, zd_up, zd_lw ) 216 ! 224 217 zbbrau = rn_ebb / rau0 ! Local constant initialisation 225 218 zfact1 = -.5_wp * rdt … … 437 430 CALL wrk_dealloc( jpi,jpj, imlc ) ! integer 438 431 CALL wrk_dealloc( jpi,jpj, zhlc ) 439 CALL wrk_dealloc( jpi,jpj,jpk, zpelc )432 CALL wrk_dealloc( jpi,jpj,jpk, zpelc, zdiag, zd_up, zd_lw ) 440 433 ! 441 434 IF( nn_timing == 1 ) CALL timing_stop('tke_tke') … … 479 472 !! - avmu, avmv : now vertical eddy viscosity at uw- and vw-points 480 473 !!---------------------------------------------------------------------- 481 USE oce, ONLY: zmpdl => ua ! ua used as workspace482 USE oce, ONLY: tsa ! use tsa as workspace483 !!484 474 INTEGER :: ji, jj, jk ! dummy loop indices 485 475 REAL(wp) :: zrn2, zraug, zcoef, zav ! local scalars 486 476 REAL(wp) :: zdku, zpdlr, zri, zsqen ! - - 487 477 REAL(wp) :: zdkv, zemxl, zemlm, zemlp ! - - 488 REAL(wp), POINTER, DIMENSION(:,:,:) :: zm xlm, zmxld478 REAL(wp), POINTER, DIMENSION(:,:,:) :: zmpdl, zmxlm, zmxld 489 479 !!-------------------------------------------------------------------- 490 480 ! 491 481 IF( nn_timing == 1 ) CALL timing_start('tke_avn') 492 ! 493 zmxlm => tsa(:,:,:,1) 494 zmxld => tsa(:,:,:,2) 482 483 CALL wrk_alloc( jpi,jpj,jpk, zmpdl, zmxlm, zmxld ) 495 484 496 485 ! !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< … … 664 653 & tab3d_2=avmv, clinfo2= ' v: ', mask2=vmask, ovlap=1, kdim=jpk ) 665 654 ENDIF 655 ! 656 CALL wrk_dealloc( jpi,jpj,jpk, zmpdl, zmxlm, zmxld ) 666 657 ! 667 658 IF( nn_timing == 1 ) CALL timing_stop('tke_avn') -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/oce.F90
r3116 r3231 28 28 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: rn2b , rn2 !: brunt-vaisala frequency**2 [s-2] 29 29 ! 30 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) , TARGET:: tsa !: 4D T-S trends fields & work array30 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tsa !: 4D T-S trends fields & work array 31 31 ! 32 32 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: rhd !: in situ density anomalie rhd=(rho-rau0)/rau0 [no units]
Note: See TracChangeset
for help on using the changeset viewer.