- Timestamp:
- 2017-04-13T16:21:08+02:00 (7 years ago)
- Location:
- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r7753 r7910 34 34 USE prtctl ! Print control 35 35 USE lib_mpp ! MPP library 36 USE wrk_nemo ! Memory Allocation37 36 USE timing ! Timing 38 37 USE sbcwave ! wave module … … 89 88 ! 90 89 INTEGER :: jk ! dummy loop index 91 REAL(wp), POINTER, DIMENSION(:,:,:) :: zun, zvn, zwn92 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds ! 3D workspace90 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zun, zvn, zwn 91 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrdt, ztrds ! 3D workspace 93 92 !!---------------------------------------------------------------------- 94 93 ! 95 94 IF( nn_timing == 1 ) CALL timing_start('tra_adv') 96 95 ! 97 CALL wrk_alloc( jpi,jpj,jpk, zun, zvn, zwn )98 96 ! 99 97 ! ! set time step … … 146 144 ! 147 145 IF( l_trdtra ) THEN !* Save ta and sa trends 148 CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )149 146 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 150 147 ztrds(:,:,:) = tsa(:,:,:,jp_sal) … … 175 172 CALL trd_tra( kt, 'TRA', jp_tem, jptra_totad, ztrdt ) 176 173 CALL trd_tra( kt, 'TRA', jp_sal, jptra_totad, ztrds ) 177 CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )178 174 ENDIF 179 175 ! ! print mean trends (used for debugging) … … 183 179 IF( nn_timing == 1 ) CALL timing_stop( 'tra_adv' ) 184 180 ! 185 CALL wrk_dealloc( jpi,jpj,jpk, zun, zvn, zwn )186 181 ! 187 182 END SUBROUTINE tra_adv -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen.F90
r7646 r7910 24 24 USE trc_oce ! share passive tracers/Ocean variables 25 25 USE lib_mpp ! MPP library 26 USE wrk_nemo ! Memory Allocation27 26 USE timing ! Timing 28 27 … … 80 79 REAL(wp) :: zC2t_u, zC4t_u ! local scalars 81 80 REAL(wp) :: zC2t_v, zC4t_v ! - - 82 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwx, zwy, zwz, ztu, ztv, ztw81 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwx, zwy, zwz, ztu, ztv, ztw 83 82 !!---------------------------------------------------------------------- 84 83 ! 85 84 IF( nn_timing == 1 ) CALL timing_start('tra_adv_cen') 86 85 ! 87 CALL wrk_alloc( jpi,jpj,jpk, zwx, zwy, zwz, ztu, ztv, ztw )88 86 ! 89 87 IF( kt == kit000 ) THEN … … 209 207 END DO 210 208 ! 211 CALL wrk_dealloc( jpi,jpj,jpk, zwx, zwy, zwz, ztu, ztv, ztw )212 209 ! 213 210 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_cen') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_fct.F90
r7753 r7910 28 28 USE lbclnk ! ocean lateral boundary condition (or mpp link) 29 29 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 30 USE wrk_nemo ! Memory Allocation31 30 USE timing ! Timing 32 31 … … 88 87 REAL(wp) :: zfp_ui, zfp_vj, zfp_wk, zC2t_u, zC4t_u ! - - 89 88 REAL(wp) :: zfm_ui, zfm_vj, zfm_wk, zC2t_v, zC4t_v ! - - 90 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw91 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz, zptry89 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw 90 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrdx, ztrdy, ztrdz, zptry 92 91 REAL(wp), POINTER, DIMENSION(:,:) :: z2d 93 92 !!---------------------------------------------------------------------- … … 95 94 IF( nn_timing == 1 ) CALL timing_start('tra_adv_fct') 96 95 ! 97 CALL wrk_alloc( jpi,jpj,jpk, zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw )98 96 ! 99 97 IF( kt == kit000 ) THEN … … 112 110 ! 113 111 IF( l_trd .OR. l_hst ) THEN 114 CALL wrk_alloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz )115 112 ztrdx(:,:,:) = 0._wp ; ztrdy(:,:,:) = 0._wp ; ztrdz(:,:,:) = 0._wp 116 113 ENDIF 117 114 ! 118 115 IF( l_ptr ) THEN 119 CALL wrk_alloc( jpi, jpj, jpk, zptry )120 116 zptry(:,:,:) = 0._wp 121 117 ENDIF … … 331 327 END DO ! end of tracer loop 332 328 ! 333 CALL wrk_dealloc( jpi,jpj,jpk, zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw )334 IF( l_trd .OR. l_hst ) CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz )335 IF( l_ptr ) CALL wrk_dealloc( jpi, jpj, jpk, zptry )336 329 ! 337 330 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_fct') … … 376 369 REAL(wp) :: zfp_ui, zfp_vj, zfp_wk ! - - 377 370 REAL(wp) :: zfm_ui, zfm_vj, zfm_wk ! - - 378 REAL(wp), POINTER, DIMENSION(:,:) :: zwx_sav , zwy_sav379 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwx, zwy, zwz, zhdiv, zwzts, zwz_sav380 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz381 REAL(wp), POINTER, DIMENSION(:,:,:) :: zptry382 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrs371 REAL(wp), DIMENSION(jpi,jpj) :: zwx_sav , zwy_sav 372 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwi, zwx, zwy, zwz, zhdiv, zwzts, zwz_sav 373 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrdx, ztrdy, ztrdz 374 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zptry 375 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt+1) :: ztrs 383 376 !!---------------------------------------------------------------------- 384 377 ! 385 378 IF( nn_timing == 1 ) CALL timing_start('tra_adv_fct_zts') 386 379 ! 387 CALL wrk_alloc( jpi,jpj, zwx_sav, zwy_sav )388 CALL wrk_alloc( jpi,jpj,jpk, zwx, zwy, zwz, zwi, zhdiv, zwzts, zwz_sav )389 CALL wrk_alloc( jpi,jpj,jpk,kjpt+1, ztrs )390 380 ! 391 381 IF( kt == kit000 ) THEN … … 404 394 ! 405 395 IF( l_trd .OR. l_hst ) THEN 406 CALL wrk_alloc( jpi,jpj,jpk, ztrdx, ztrdy, ztrdz )407 396 ztrdx(:,:,:) = 0._wp ; ztrdy(:,:,:) = 0._wp ; ztrdz(:,:,:) = 0._wp 408 397 ENDIF 409 398 ! 410 399 IF( l_ptr ) THEN 411 CALL wrk_alloc( jpi, jpj,jpk, zptry )412 400 zptry(:,:,:) = 0._wp 413 401 ENDIF … … 621 609 END DO 622 610 ! 623 CALL wrk_alloc( jpi,jpj, zwx_sav, zwy_sav )624 CALL wrk_alloc( jpi,jpj, jpk, zwx, zwy, zwz, zwi, zhdiv, zwzts, zwz_sav )625 CALL wrk_alloc( jpi,jpj,jpk,kjpt+1, ztrs )626 IF( l_trd .OR. l_hst ) CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz )627 IF( l_ptr ) CALL wrk_dealloc( jpi, jpj, jpk, zptry )628 611 ! 629 612 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_fct_zts') … … 653 636 REAL(wp) :: zpos, zneg, zbt, za, zb, zc, zbig, zrtrn ! local scalars 654 637 REAL(wp) :: zau, zbu, zcu, zav, zbv, zcv, zup, zdo ! - - 655 REAL(wp), POINTER, DIMENSION(:,:,:) :: zbetup, zbetdo, zbup, zbdo638 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zbetup, zbetdo, zbup, zbdo 656 639 !!---------------------------------------------------------------------- 657 640 ! 658 641 IF( nn_timing == 1 ) CALL timing_start('nonosc') 659 642 ! 660 CALL wrk_alloc( jpi, jpj, jpk, zbetup, zbetdo, zbup, zbdo )661 643 ! 662 644 zbig = 1.e+40_wp … … 734 716 CALL lbc_lnk( paa, 'U', -1. ) ; CALL lbc_lnk( pbb, 'V', -1. ) ! lateral boundary condition (changed sign) 735 717 ! 736 CALL wrk_dealloc( jpi, jpj, jpk, zbetup, zbetdo, zbup, zbdo )737 718 ! 738 719 IF( nn_timing == 1 ) CALL timing_stop('nonosc') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mle.F90
r7753 r7910 19 19 USE iom ! IOM library 20 20 USE lib_mpp ! MPP library 21 USE wrk_nemo ! work arrays22 21 USE timing ! Timing 23 22 … … 95 94 INTEGER, DIMENSION(3) :: ilocu ! 96 95 INTEGER, DIMENSION(2) :: ilocs ! 97 REAL(wp), POINTER, DIMENSION(:,:) :: zpsim_u, zpsim_v, zmld, zbm, zhu, zhv, zn2, zLf_NH, zLf_MH98 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpsi_uw, zpsi_vw99 INTEGER, POINTER, DIMENSION(:,:) :: inml_mle96 REAL(wp), DIMENSION(jpi,jpj) :: zpsim_u, zpsim_v, zmld, zbm, zhu, zhv, zn2, zLf_NH, zLf_MH 97 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpsi_uw, zpsi_vw 98 INTEGER, DIMENSION(jpi,jpj) :: inml_mle 100 99 !!---------------------------------------------------------------------- 101 100 ! 102 101 IF( nn_timing == 1 ) CALL timing_start('tra_adv_mle') 103 CALL wrk_alloc( jpi, jpj, zpsim_u, zpsim_v, zmld, zbm, zhu, zhv, zn2, zLf_NH, zLf_MH)104 CALL wrk_alloc( jpi, jpj, jpk, zpsi_uw, zpsi_vw)105 CALL wrk_alloc( jpi, jpj, inml_mle)106 102 ! 107 103 ! !== MLD used for MLE ==! … … 256 252 CALL iom_put( "psiv_mle", zpsi_vw ) ! j-mle streamfunction 257 253 ENDIF 258 CALL wrk_dealloc( jpi, jpj, zpsim_u, zpsim_v, zmld, zbm, zhu, zhv, zn2, zLf_NH, zLf_MH)259 CALL wrk_dealloc( jpi, jpj, jpk, zpsi_uw, zpsi_vw)260 CALL wrk_dealloc( jpi, jpj, inml_mle)261 254 262 255 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_mle') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mus.F90
r7753 r7910 27 27 ! 28 28 USE iom 29 USE wrk_nemo ! Memory Allocation30 29 USE timing ! Timing 31 30 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) … … 90 89 REAL(wp) :: zv, z0v, zzwy, z0w ! - - 91 90 REAL(wp) :: zalpha ! - - 92 REAL(wp), POINTER, DIMENSION(:,:,:) :: zslpx, zslpy ! 3D workspace93 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwx , zwy ! - -91 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zslpx, zslpy ! 3D workspace 92 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwx , zwy ! - - 94 93 !!---------------------------------------------------------------------- 95 94 ! 96 95 IF( nn_timing == 1 ) CALL timing_start('tra_adv_mus') 97 96 ! 98 CALL wrk_alloc( jpi,jpj,jpk, zslpx, zslpy, zwx, zwy )99 97 ! 100 98 IF( kt == kit000 ) THEN … … 279 277 END DO ! end of tracer loop 280 278 ! 281 CALL wrk_dealloc( jpi,jpj,jpk, zslpx, zslpy, zwx, zwy )282 279 ! 283 280 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_mus') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
r7646 r7910 25 25 USE lbclnk ! ocean lateral boundary condition (or mpp link) 26 26 USE in_out_manager ! I/O manager 27 USE wrk_nemo ! Memory Allocation28 27 USE timing ! Timing 29 28 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) … … 138 137 INTEGER :: ji, jj, jk, jn ! dummy loop indices 139 138 REAL(wp) :: ztra, zbtr, zdir, zdx, zmsk ! local scalars 140 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwx, zfu, zfc, zfd139 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwx, zfu, zfc, zfd 141 140 !---------------------------------------------------------------------- 142 141 ! 143 CALL wrk_alloc( jpi, jpj, jpk, zwx, zfu, zfc, zfd )144 142 ! ! =========== 145 143 DO jn = 1, kjpt ! tracer loop … … 234 232 END DO 235 233 ! 236 CALL wrk_dealloc( jpi, jpj, jpk, zwx, zfu, zfc, zfd )237 234 ! 238 235 END SUBROUTINE tra_adv_qck_i … … 254 251 INTEGER :: ji, jj, jk, jn ! dummy loop indices 255 252 REAL(wp) :: ztra, zbtr, zdir, zdx, zmsk ! local scalars 256 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwy, zfu, zfc, zfd253 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwy, zfu, zfc, zfd 257 254 !---------------------------------------------------------------------- 258 255 ! 259 CALL wrk_alloc( jpi, jpj, jpk, zwy, zfu, zfc, zfd )260 256 ! 261 257 ! ! =========== … … 359 355 END DO 360 356 ! 361 CALL wrk_dealloc( jpi, jpj, jpk, zwy, zfu, zfc, zfd )362 357 ! 363 358 END SUBROUTINE tra_adv_qck_j … … 377 372 ! 378 373 INTEGER :: ji, jj, jk, jn ! dummy loop indices 379 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwz 380 !!---------------------------------------------------------------------- 381 ! 382 CALL wrk_alloc( jpi,jpj,jpk, zwz ) 374 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwz 375 !!---------------------------------------------------------------------- 376 ! 383 377 ! 384 378 zwz(:,:, 1 ) = 0._wp ! surface & bottom values set to zero for all tracers … … 421 415 END DO 422 416 ! 423 CALL wrk_dealloc( jpi,jpj,jpk, zwz )424 417 ! 425 418 END SUBROUTINE tra_adv_cen2_k -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90
r7646 r7910 26 26 USE lbclnk ! ocean lateral boundary condition (or mpp link) 27 27 USE in_out_manager ! I/O manager 28 USE wrk_nemo ! Memory Allocation29 28 USE timing ! Timing 30 29 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) … … 101 100 REAL(wp) :: zfp_ui, zfm_ui, zcenut, ztak, zfp_wk, zfm_wk ! - - 102 101 REAL(wp) :: zfp_vj, zfm_vj, zcenvt, zeeu, zeev, z_hdivn ! - - 103 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztu, ztv, zltu, zltv, zti, ztw102 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztu, ztv, zltu, zltv, zti, ztw 104 103 !!---------------------------------------------------------------------- 105 104 ! 106 105 IF( nn_timing == 1 ) CALL timing_start('tra_adv_ubs') 107 106 ! 108 CALL wrk_alloc( jpi,jpj,jpk, ztu, ztv, zltu, zltv, zti, ztw )109 107 ! 110 108 IF( kt == kit000 ) THEN … … 285 283 END DO 286 284 ! 287 CALL wrk_dealloc( jpi,jpj,jpk, ztu, ztv, zltu, zltv, zti, ztw )288 285 ! 289 286 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_ubs') … … 313 310 INTEGER :: ikm1 ! local integer 314 311 REAL(wp) :: zpos, zneg, zbt, za, zb, zc, zbig, zrtrn ! local scalars 315 REAL(wp), POINTER, DIMENSION(:,:,:) :: zbetup, zbetdo312 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zbetup, zbetdo 316 313 !!---------------------------------------------------------------------- 317 314 ! 318 315 IF( nn_timing == 1 ) CALL timing_start('nonosc_z') 319 316 ! 320 CALL wrk_alloc( jpi,jpj,jpk, zbetup, zbetdo )321 317 ! 322 318 zbig = 1.e+40_wp … … 387 383 END DO 388 384 ! 389 CALL wrk_dealloc( jpi,jpj,jpk, zbetup, zbetdo )390 385 ! 391 386 IF( nn_timing == 1 ) CALL timing_stop('nonosc_z') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trabbc.F90
r7753 r7910 27 27 USE lib_mpp ! distributed memory computing library 28 28 USE prtctl ! Print control 29 USE wrk_nemo ! Memory Allocation30 29 USE timing ! Timing 31 30 … … 77 76 ! 78 77 INTEGER :: ji, jj ! dummy loop indices 79 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt78 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrdt 80 79 !!---------------------------------------------------------------------- 81 80 ! … … 83 82 ! 84 83 IF( l_trdtra ) THEN ! Save the input temperature trend 85 CALL wrk_alloc( jpi,jpj,jpk, ztrdt )86 84 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 87 85 ENDIF … … 98 96 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 99 97 CALL trd_tra( kt, 'TRA', jp_tem, jptra_bbc, ztrdt ) 100 CALL wrk_dealloc( jpi,jpj,jpk, ztrdt )101 98 ENDIF 102 99 ! -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90
r7753 r7910 36 36 USE lbclnk ! ocean lateral boundary conditions 37 37 USE prtctl ! Print control 38 USE wrk_nemo ! Memory Allocation39 38 USE timing ! Timing 40 39 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) … … 106 105 INTEGER, INTENT( in ) :: kt ! ocean time-step 107 106 ! 108 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds107 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrdt, ztrds 109 108 !!---------------------------------------------------------------------- 110 109 ! … … 112 111 ! 113 112 IF( l_trdtra ) THEN !* Save the input trends 114 CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )115 113 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 116 114 ztrds(:,:,:) = tsa(:,:,:,jp_sal) … … 150 148 CALL trd_tra( kt, 'TRA', jp_tem, jptra_bbl, ztrdt ) 151 149 CALL trd_tra( kt, 'TRA', jp_sal, jptra_bbl, ztrds ) 152 CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )153 150 ENDIF 154 151 ! … … 186 183 INTEGER :: ik ! local integers 187 184 REAL(wp) :: zbtr ! local scalars 188 REAL(wp), POINTER, DIMENSION(:,:) :: zptb185 REAL(wp), DIMENSION(jpi,jpj) :: zptb 189 186 !!---------------------------------------------------------------------- 190 187 ! 191 188 IF( nn_timing == 1 ) CALL timing_start('tra_bbl_dif') 192 189 ! 193 CALL wrk_alloc( jpi, jpj, zptb )194 190 ! 195 191 DO jn = 1, kjpt ! tracer loop … … 216 212 END DO ! end tracer 217 213 ! ! =========== 218 CALL wrk_dealloc( jpi, jpj, zptb )219 214 ! 220 215 IF( nn_timing == 1 ) CALL timing_stop('tra_bbl_dif') … … 497 492 INTEGER :: ii0, ii1, ij0, ij1 ! local integer 498 493 INTEGER :: ios ! - - 499 REAL(wp), POINTER, DIMENSION(:,:) :: zmbk494 REAL(wp), DIMENSION(jpi,jpj) :: zmbk 500 495 ! 501 496 NAMELIST/nambbl/ nn_bbl_ldf, nn_bbl_adv, rn_ahtbbl, rn_gambbl … … 540 535 END DO 541 536 ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk 542 CALL wrk_alloc( jpi, jpj, zmbk )543 537 zmbk(:,:) = REAL( mbku_d(:,:), wp ) ; CALL lbc_lnk(zmbk,'U',1.) ; mbku_d(:,:) = MAX( INT( zmbk(:,:) ), 1 ) 544 538 zmbk(:,:) = REAL( mbkv_d(:,:), wp ) ; CALL lbc_lnk(zmbk,'V',1.) ; mbkv_d(:,:) = MAX( INT( zmbk(:,:) ), 1 ) 545 CALL wrk_dealloc( jpi, jpj, zmbk )546 539 547 540 ! !* sign of grad(H) at u- and v-points -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90
r7753 r7910 35 35 USE lib_mpp ! MPP library 36 36 USE prtctl ! Print control 37 USE wrk_nemo ! Memory allocation38 37 USE timing ! Timing 39 38 USE iom … … 94 93 ! 95 94 INTEGER :: ji, jj, jk, jn ! dummy loop indices 96 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zts_dta, ztrdts95 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) :: zts_dta, ztrdts 97 96 !!---------------------------------------------------------------------- 98 97 ! 99 98 IF( nn_timing == 1 ) CALL timing_start('tra_dmp') 100 99 ! 101 CALL wrk_alloc( jpi,jpj,jpk,jpts, zts_dta )102 100 IF( l_trdtra ) THEN !* Save ta and sa trends 103 CALL wrk_alloc( jpi,jpj,jpk,jpts, ztrdts )104 101 ztrdts(:,:,:,:) = tsa(:,:,:,:) 105 102 ENDIF … … 154 151 CALL trd_tra( kt, 'TRA', jp_tem, jptra_dmp, ztrdts(:,:,:,jp_tem) ) 155 152 CALL trd_tra( kt, 'TRA', jp_sal, jptra_dmp, ztrdts(:,:,:,jp_sal) ) 156 CALL wrk_dealloc( jpi,jpj,jpk,jpts, ztrdts )157 153 ENDIF 158 154 ! ! Control print … … 160 156 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 161 157 ! 162 CALL wrk_dealloc( jpi,jpj,jpk,jpts, zts_dta )163 158 ! 164 159 IF( nn_timing == 1 ) CALL timing_stop('tra_dmp') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90
r7765 r7910 30 30 USE lib_mpp ! distribued memory computing library 31 31 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 32 USE wrk_nemo ! Memory allocation33 32 USE timing ! Timing 34 33 … … 58 57 INTEGER, INTENT( in ) :: kt ! ocean time-step index 59 58 !! 60 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds59 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrdt, ztrds 61 60 !!---------------------------------------------------------------------- 62 61 ! … … 64 63 ! 65 64 IF( l_trdtra ) THEN !* Save ta and sa trends 66 CALL wrk_alloc( jpi,jpj,jpk, ztrdt, ztrds )67 65 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 68 66 ztrds(:,:,:) = tsa(:,:,:,jp_sal) … … 85 83 CALL trd_tra( kt, 'TRA', jp_tem, jptra_ldf, ztrdt ) 86 84 CALL trd_tra( kt, 'TRA', jp_sal, jptra_ldf, ztrds ) 87 CALL wrk_dealloc( jpi,jpj,jpk, ztrdt, ztrds )88 85 ENDIF 89 86 ! !* print mean trends (used for debugging) -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90
r7753 r7910 30 30 USE phycst ! physical constants 31 31 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 32 USE wrk_nemo ! Memory Allocation33 32 USE timing ! Timing 34 33 … … 111 110 REAL(wp) :: zmskv, zahv_w, zabe2, zcof2, zcoef4 ! - - 112 111 REAL(wp) :: zcoef0, ze3w_2, zsign, z2dt, z1_2dt ! - - 113 REAL(wp), POINTER, DIMENSION(:,:) :: zdkt, zdk1t, z2d114 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdit, zdjt, zftu, zftv, ztfw112 REAL(wp), DIMENSION(jpi,jpj) :: zdkt, zdk1t, z2d 113 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdit, zdjt, zftu, zftv, ztfw 115 114 !!---------------------------------------------------------------------- 116 115 ! 117 116 IF( nn_timing == 1 ) CALL timing_start('tra_ldf_iso') 118 117 ! 119 CALL wrk_alloc( jpi,jpj, zdkt, zdk1t, z2d )120 CALL wrk_alloc( jpi,jpj,jpk, zdit, zdjt , zftu, zftv, ztfw )121 118 ! 122 119 IF( kt == kit000 ) THEN … … 388 385 ! ! =============== 389 386 ! 390 CALL wrk_dealloc( jpi, jpj, zdkt, zdk1t, z2d )391 CALL wrk_dealloc( jpi, jpj, jpk, zdit, zdjt , zftu, zftv, ztfw )392 387 ! 393 388 IF( nn_timing == 1 ) CALL timing_stop('tra_ldf_iso') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap_blp.F90
r7646 r7910 25 25 USE lib_mpp ! distribued memory computing library 26 26 USE timing ! Timing 27 USE wrk_nemo ! Memory allocation28 27 USE iom 29 28 … … 87 86 INTEGER :: ji, jj, jk, jn ! dummy loop indices 88 87 REAL(wp) :: zsign ! local scalars 89 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztu, ztv, zaheeu, zaheev88 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztu, ztv, zaheeu, zaheev 90 89 !!---------------------------------------------------------------------- 91 90 ! … … 98 97 ENDIF 99 98 ! 100 CALL wrk_alloc( jpi,jpj,jpk, ztu, ztv, zaheeu, zaheev )101 99 ! 102 100 l_hst = .FALSE. … … 169 167 ! ! ================== 170 168 ! 171 CALL wrk_dealloc( jpi,jpj,jpk, ztu, ztv, zaheeu, zaheev )172 169 ! 173 170 IF( nn_timing == 1 ) CALL timing_stop('tra_ldf_lap') … … 203 200 ! 204 201 INTEGER :: ji, jj, jk, jn ! dummy loop indices 205 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zlap ! laplacian at t-point206 REAL(wp), POINTER, DIMENSION(:,:,:) :: zglu, zglv ! bottom GRADh of the laplacian (u- and v-points)207 REAL(wp), POINTER, DIMENSION(:,:,:) :: zgui, zgvi ! top GRADh of the laplacian (u- and v-points)202 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt) :: zlap ! laplacian at t-point 203 REAL(wp), DIMENSION(jpi,jpj,kjpt) :: zglu, zglv ! bottom GRADh of the laplacian (u- and v-points) 204 REAL(wp), DIMENSION(jpi,jpj,kjpt) :: zgui, zgvi ! top GRADh of the laplacian (u- and v-points) 208 205 !!--------------------------------------------------------------------- 209 206 ! 210 207 IF( nn_timing == 1 ) CALL timing_start('tra_ldf_blp') 211 208 ! 212 CALL wrk_alloc( jpi,jpj,jpk,kjpt, zlap )213 CALL wrk_alloc( jpi,jpj, kjpt, zglu, zglv, zgui, zgvi )214 209 ! 215 210 IF( kt == kit000 .AND. lwp ) THEN … … 253 248 END SELECT 254 249 ! 255 CALL wrk_dealloc( jpi,jpj,jpk,kjpt, zlap )256 CALL wrk_dealloc( jpi,jpj ,kjpt, zglu, zglv, zgui, zgvi )257 250 ! 258 251 IF( nn_timing == 1 ) CALL timing_stop('tra_ldf_blp') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_triad.F90
r7646 r7910 27 27 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 28 28 USE lib_mpp ! MPP library 29 USE wrk_nemo ! Memory Allocation30 29 USE timing ! Timing 31 30 … … 94 93 REAL(wp) :: ze1ur, ze2vr, ze3wr, zdxt, zdyt, zdzt 95 94 REAL(wp) :: zah, zah_slp, zaei_slp 96 REAL(wp), POINTER, DIMENSION(:,:) :: z2d ! 2D workspace97 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw ! 3D -95 REAL(wp), DIMENSION(jpi,jpj) :: z2d ! 2D workspace 96 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw ! 3D - 98 97 !!---------------------------------------------------------------------- 99 98 ! 100 99 IF( nn_timing == 1 ) CALL timing_start('tra_ldf_triad') 101 100 ! 102 CALL wrk_alloc( jpi,jpj, z2d )103 CALL wrk_alloc( jpi,jpj,jpk, zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw )104 101 ! 105 102 IF( .NOT.ALLOCATED(zdkt3d) ) THEN … … 435 432 ! ! =============== 436 433 ! 437 CALL wrk_dealloc( jpi,jpj, z2d )438 CALL wrk_dealloc( jpi,jpj,jpk, zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw )439 434 ! 440 435 IF( nn_timing == 1 ) CALL timing_stop('tra_ldf_triad') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tranpc.F90
r6140 r7910 26 26 USE in_out_manager ! I/O manager 27 27 USE lib_mpp ! MPP library 28 USE wrk_nemo ! Memory Allocation29 28 USE timing ! Timing 30 29 … … 68 67 REAL(wp) :: zsa, zbeta, zsum_sali, zsum_beta, zbw, zrw, z1_r2dt 69 68 REAL(wp), PARAMETER :: zn2_zero = 1.e-14_wp ! acceptance criteria for neutrality (N2==0) 70 REAL(wp), POINTER, DIMENSION(:) :: zvn2 ! vertical profile of N2 at 1 given point...71 REAL(wp), POINTER, DIMENSION(:,:) :: zvts ! vertical profile of T and S at 1 given point...72 REAL(wp), POINTER, DIMENSION(:,:) :: zvab ! vertical profile of alpha and beta73 REAL(wp), POINTER, DIMENSION(:,:,:) :: zn2 ! N^274 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zab ! alpha and beta75 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds ! 3D workspace69 REAL(wp), DIMENSION(jpk) :: zvn2 ! vertical profile of N2 at 1 given point... 70 REAL(wp), DIMENSION(jpk,2) :: zvts ! vertical profile of T and S at 1 given point... 71 REAL(wp), DIMENSION(jpk,2) :: zvab ! vertical profile of alpha and beta 72 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zn2 ! N^2 73 REAL(wp), DIMENSION(jpi,jpj,jpk,2) :: zab ! alpha and beta 74 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrdt, ztrds ! 3D workspace 76 75 ! 77 76 LOGICAL, PARAMETER :: l_LB_debug = .FALSE. ! set to true if you want to follow what is … … 84 83 IF( MOD( kt, nn_npc ) == 0 ) THEN 85 84 ! 86 CALL wrk_alloc( jpi, jpj, jpk, zn2 ) ! N287 CALL wrk_alloc( jpi, jpj, jpk, 2, zab ) ! Alpha and Beta88 CALL wrk_alloc( jpk, 2, zvts, zvab ) ! 1D column vector at point ji,jj89 CALL wrk_alloc( jpk, zvn2 ) ! 1D column vector at point ji,jj90 85 91 86 IF( l_trdtra ) THEN !* Save initial after fields 92 CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )93 87 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 94 88 ztrds(:,:,:) = tsa(:,:,:,jp_sal) … … 313 307 CALL trd_tra( kt, 'TRA', jp_tem, jptra_npc, ztrdt ) 314 308 CALL trd_tra( kt, 'TRA', jp_sal, jptra_npc, ztrds ) 315 CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )316 309 ENDIF 317 310 ! … … 323 316 ENDIF 324 317 ! 325 CALL wrk_dealloc(jpi, jpj, jpk, zn2 )326 CALL wrk_dealloc(jpi, jpj, jpk, 2, zab )327 CALL wrk_dealloc(jpk, zvn2 )328 CALL wrk_dealloc(jpk, 2, zvts, zvab )329 318 ! 330 319 ENDIF ! IF( MOD( kt, nn_npc ) == 0 ) THEN -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
r7753 r7910 43 43 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 44 44 USE prtctl ! Print control 45 USE wrk_nemo ! Memory allocation46 45 USE timing ! Timing 47 46 #if defined key_agrif … … 91 90 INTEGER :: ji, jj, jk, jn ! dummy loop indices 92 91 REAL(wp) :: zfact ! local scalars 93 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds92 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrdt, ztrds 94 93 !!---------------------------------------------------------------------- 95 94 ! … … 120 119 ! trends computation initialisation 121 120 IF( l_trdtra ) THEN 122 CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )123 121 ztrdt(:,:,jk) = 0._wp 124 122 ztrds(:,:,jk) = 0._wp … … 170 168 CALL trd_tra( kt, 'TRA', jp_tem, jptra_atf, ztrdt ) 171 169 CALL trd_tra( kt, 'TRA', jp_sal, jptra_atf, ztrds ) 172 CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )173 170 END IF 174 171 ! -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90
r7753 r7910 34 34 USE lib_mpp ! MPP library 35 35 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 36 USE wrk_nemo ! Memory Allocation37 36 USE timing ! Timing 38 37 … … 113 112 REAL(wp) :: zCb, zCmax, zze, zpsi, zpsimax, zdelpsi, zCtot, zCze 114 113 REAL(wp) :: zlogc, zlogc2, zlogc3 115 REAL(wp), POINTER, DIMENSION(:,:) :: zekb, zekg, zekr116 REAL(wp), POINTER, DIMENSION(:,:,:) :: ze0, ze1, ze2, ze3, zea, ztrdt117 REAL(wp), POINTER, DIMENSION(:,:,:) :: zetot, zchl3d114 REAL(wp), DIMENSION(jpi,jpj) :: zekb, zekg, zekr 115 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ze0, ze1, ze2, ze3, zea, ztrdt 116 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zetot, zchl3d 118 117 !!---------------------------------------------------------------------- 119 118 ! … … 127 126 ! 128 127 IF( l_trdtra ) THEN ! trends diagnostic: save the input temperature trend 129 CALL wrk_alloc( jpi,jpj,jpk, ztrdt )130 128 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 131 129 ENDIF … … 161 159 CASE( np_RGB , np_RGBc ) !== R-G-B fluxes ==! 162 160 ! 163 CALL wrk_alloc( jpi,jpj, zekb, zekg, zekr )164 CALL wrk_alloc( jpi,jpj,jpk, ze0, ze1, ze2, ze3, zea, zchl3d )165 161 ! 166 162 IF( nqsr == np_RGBc ) THEN !* Variable Chlorophyll … … 240 236 END DO 241 237 ! 242 CALL wrk_dealloc( jpi,jpj, zekb, zekg, zekr )243 CALL wrk_dealloc( jpi,jpj,jpk, ze0, ze1, ze2, ze3, zea, zchl3d )244 238 ! 245 239 CASE( np_2BD ) !== 2-bands fluxes ==! … … 282 276 ! 283 277 IF( iom_use('qsr3d') ) THEN ! output the shortwave Radiation distribution 284 CALL wrk_alloc( jpi,jpj,jpk, zetot )285 278 ! 286 279 zetot(:,:,nksr+1:jpk) = 0._wp ! below ~400m set to zero … … 290 283 CALL iom_put( 'qsr3d', zetot ) ! 3D distribution of shortwave Radiation 291 284 ! 292 CALL wrk_dealloc( jpi,jpj,jpk, zetot )293 285 ENDIF 294 286 ! … … 301 293 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 302 294 CALL trd_tra( kt, 'TRA', jp_tem, jptra_qsr, ztrdt ) 303 CALL wrk_dealloc( jpi,jpj,jpk, ztrdt )304 295 ENDIF 305 296 ! ! print mean trends (used for debugging) -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90
r7788 r7910 32 32 USE iom ! xIOS server 33 33 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 34 USE wrk_nemo ! Memory Allocation35 34 USE timing ! Timing 36 35 … … 75 74 INTEGER :: ikt, ikb ! local integers 76 75 REAL(wp) :: zfact, z1_e3t, zdep ! local scalar 77 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds76 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrdt, ztrds 78 77 !!---------------------------------------------------------------------- 79 78 ! … … 87 86 ! 88 87 IF( l_trdtra ) THEN !* Save ta and sa trends 89 CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )90 88 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 91 89 ztrds(:,:,:) = tsa(:,:,:,jp_sal) … … 232 230 CALL trd_tra( kt, 'TRA', jp_tem, jptra_nsr, ztrdt ) 233 231 CALL trd_tra( kt, 'TRA', jp_sal, jptra_nsr, ztrds ) 234 CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )235 232 ENDIF 236 233 ! -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90
r7753 r7910 29 29 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 30 30 USE lib_mpp ! MPP library 31 USE wrk_nemo ! Memory allocation32 31 USE timing ! Timing 33 32 … … 59 58 ! 60 59 INTEGER :: jk ! Dummy loop indices 61 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds ! 3D workspace60 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrdt, ztrds ! 3D workspace 62 61 !!--------------------------------------------------------------------- 63 62 ! … … 71 70 ! 72 71 IF( l_trdtra ) THEN !* Save ta and sa trends 73 CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )74 72 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 75 73 ztrds(:,:,:) = tsa(:,:,:,jp_sal) … … 98 96 CALL trd_tra( kt, 'TRA', jp_tem, jptra_zdf, ztrdt ) 99 97 CALL trd_tra( kt, 'TRA', jp_sal, jptra_zdf, ztrds ) 100 CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )101 98 ENDIF 102 99 ! ! print mean trends (used for debugging) -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_exp.F90
r6140 r7910 32 32 USE in_out_manager ! I/O manager 33 33 USE lib_mpp ! MPP library 34 USE wrk_nemo ! Memory Allocation35 34 USE timing ! Timing 36 35 … … 84 83 REAL(wp) :: z1_ksts, ze3tr ! local scalars 85 84 REAL(wp) :: ztra, ze3tb ! - - 86 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztb, zwf85 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztb, zwf 87 86 !!--------------------------------------------------------------------- 88 87 ! 89 88 IF( nn_timing == 1 ) CALL timing_start('tra_zdf_exp') 90 89 ! 91 CALL wrk_alloc( jpi,jpj,jpk, ztb, zwf )92 90 ! 93 91 IF( kt == kit000 ) THEN … … 144 142 END DO ! end of tracer loop 145 143 ! 146 CALL wrk_dealloc( jpi,jpj,jpk, ztb, zwf )147 144 ! 148 145 IF( nn_timing == 1 ) CALL timing_stop('tra_zdf_exp') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp.F90
r7753 r7910 35 35 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 36 36 USE lib_mpp ! MPP library 37 USE wrk_nemo ! Memory Allocation38 37 USE timing ! Timing 39 38 … … 83 82 INTEGER :: ji, jj, jk, jn ! dummy loop indices 84 83 REAL(wp) :: zrhs ! local scalars 85 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwt, zwd, zws84 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwi, zwt, zwd, zws 86 85 !!--------------------------------------------------------------------- 87 86 ! 88 87 IF( nn_timing == 1 ) CALL timing_start('tra_zdf_imp') 89 88 ! 90 CALL wrk_alloc( jpi,jpj,jpk, zwi, zwt, zwd, zws )91 89 ! 92 90 IF( kt == kit000 ) THEN … … 208 206 ! ! ================= ! 209 207 ! 210 CALL wrk_dealloc( jpi,jpj,jpk, zwi, zwt, zwd, zws )211 208 ! 212 209 IF( nn_timing == 1 ) CALL timing_stop('tra_zdf_imp')
Note: See TracChangeset
for help on using the changeset viewer.