- Timestamp:
- 2017-01-19T13:20:22+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_optim_GO6_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r7560 r7581 86 86 REAL(wp) :: zfp_ui, zfp_vj, zfp_wk ! - - 87 87 REAL(wp) :: zfm_ui, zfm_vj, zfm_wk ! - - 88 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwz89 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz, zptry90 REAL(wp), POINTER, DIMENSION(:,:) :: z2d88 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zwi, zwz 89 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz, zptry 90 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: z2d 91 91 !!---------------------------------------------------------------------- 92 92 ! 93 93 IF( nn_timing == 1 ) CALL timing_start('tra_adv_tvd') 94 94 ! 95 CALL wrk_alloc( jpi, jpj, jpk, zwi, zwz ) 95 ALLOCATE(zwi(1:jpi, 1:jpj, 1:jpk)) 96 ALLOCATE(zwz(1:jpi, 1:jpj, 1:jpk)) 97 96 98 ! 97 99 IF( kt == kit000 ) THEN … … 107 109 ! 108 110 IF( l_trd .OR. l_trans ) THEN 109 CALL wrk_alloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 111 ALLOCATE(ztrdx(1:jpi, 1:jpj, 1:jpk)) 112 ALLOCATE(ztrdy(1:jpi, 1:jpj, 1:jpk)) 113 ALLOCATE(ztrdz(1:jpi, 1:jpj, 1:jpk)) 110 114 ztrdx(:,:,:) = 0.e0 ; ztrdy(:,:,:) = 0.e0 ; ztrdz(:,:,:) = 0.e0 111 CALL wrk_alloc( jpi, jpj, z2d)115 ALLOCATE(z2d(1:jpi, 1:jpj)) 112 116 ENDIF 113 117 ! 114 118 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 115 CALL wrk_alloc( jpi, jpj, jpk, zptry)119 ALLOCATE(zptry(1:jpi, 1:jpj, 1:jpk)) 116 120 zptry(:,:,:) = 0._wp 117 121 ENDIF … … 304 308 END DO 305 309 ! 306 CALL wrk_dealloc( jpi, jpj, jpk, zwi, zwz ) 310 DEALLOCATE( zwi ) 311 DEALLOCATE( zwz ) 307 312 IF( l_trd .OR. l_trans ) THEN 308 CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 309 CALL wrk_dealloc( jpi, jpj, z2d ) 313 DEALLOCATE( ztrdx ) 314 DEALLOCATE( ztrdy ) 315 DEALLOCATE( ztrdz ) 316 DEALLOCATE( z2d ) 310 317 ENDIF 311 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL wrk_dealloc( jpi, jpj, jpk,zptry )318 IF( cdtype == 'TRA' .AND. ln_diaptr ) DEALLOCATE( zptry ) 312 319 ! 313 320 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_tvd') … … 353 360 REAL(wp) :: zfp_ui, zfp_vj, zfp_wk ! - - 354 361 REAL(wp) :: zfm_ui, zfm_vj, zfm_wk ! - - 355 REAL(wp), POINTER, DIMENSION(:,: ) :: zwx_sav , zwy_sav356 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwz, zhdiv, zwz_sav, zwzts357 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz358 REAL(wp), POINTER, DIMENSION(:,:,:) :: zptry359 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrs362 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zwx_sav , zwy_sav 363 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zwi, zwz, zhdiv, zwz_sav, zwzts 364 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrdx, ztrdy, ztrdz 365 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zptry 366 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztrs 360 367 !!---------------------------------------------------------------------- 361 368 ! 362 369 IF( nn_timing == 1 ) CALL timing_start('tra_adv_tvd_zts') 363 370 ! 364 CALL wrk_alloc( jpi, jpj, zwx_sav, zwy_sav ) 365 CALL wrk_alloc( jpi, jpj, jpk, zwi, zwz , zhdiv, zwz_sav, zwzts ) 366 CALL wrk_alloc( jpi, jpj, jpk, kjpt+1, ztrs ) 371 ALLOCATE(zwx_sav(jpi, jpj)) 372 ALLOCATE(zwy_sav(jpi, jpj)) 373 ALLOCATE(zwi(jpi, jpj, jpk)) 374 ALLOCATE(zwz(jpi, jpj, jpk)) 375 ALLOCATE(zhdiv(jpi, jpj, jpk)) 376 ALLOCATE(zwz_sav(jpi, jpj, jpk)) 377 ALLOCATE(zwzts(jpi, jpj, jpk)) 378 ALLOCATE(ztrs(jpi, jpj, jpk, kjpt+1)) 367 379 ! 368 380 IF( kt == kit000 ) THEN … … 376 388 ! 377 389 IF( l_trd ) THEN 378 CALL wrk_alloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 390 ALLOCATE(ztrdx(jpi, jpj, jpk)) 391 ALLOCATE(ztrdy(jpi, jpj, jpk)) 392 ALLOCATE(ztrdz(jpi, jpj, jpk)) 379 393 ztrdx(:,:,:) = 0._wp ; ztrdy(:,:,:) = 0._wp ; ztrdz(:,:,:) = 0._wp 380 394 ENDIF 381 395 ! 382 396 IF( cdtype == 'TRA' .AND. ln_diaptr ) THEN 383 CALL wrk_alloc( jpi, jpj,jpk, zptry )397 ALLOCATE(zptry(jpi, jpj, jpk)) 384 398 zptry(:,:,:) = 0._wp 385 399 ENDIF … … 603 617 END DO 604 618 ! 605 CALL wrk_dealloc( jpi, jpj, jpk, zwi, zwz, zhdiv, zwz_sav, zwzts ) 606 CALL wrk_dealloc( jpi, jpj, jpk, kjpt+1, ztrs ) 607 CALL wrk_dealloc( jpi, jpj, zwx_sav, zwy_sav ) 608 IF( l_trd ) CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 609 IF( cdtype == 'TRA' .AND. ln_diaptr ) CALL wrk_dealloc( jpi, jpj, jpk, zptry ) 619 DEALLOCATE(zwi) 620 DEALLOCATE(zwz) 621 DEALLOCATE(zhdiv) 622 DEALLOCATE(zwz_sav) 623 DEALLOCATE(zwzts) 624 DEALLOCATE(ztrs ) 625 DEALLOCATE(zwx_sav) 626 DEALLOCATE(zwy_sav ) 627 628 IF( l_trd ) THEN 629 DEALLOCATE(ztrdx) 630 DEALLOCATE(ztrdy) 631 DEALLOCATE(ztrdz) 632 END IF 633 634 IF( cdtype == 'TRA' .AND. ln_diaptr ) DEALLOCATE(zptry ) 610 635 ! 611 636 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_tvd_zts') … … 635 660 REAL(wp) :: zpos, zneg, zbt, za, zb, zc, zbig, zrtrn, z2dtt ! local scalars 636 661 REAL(wp) :: zau, zbu, zcu, zav, zbv, zcv, zup, zdo ! - - 637 REAL(wp), POINTER, DIMENSION(:,:,:) :: zbetup, zbetdo, zbup, zbdo662 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zbetup, zbetdo, zbup, zbdo 638 663 !!---------------------------------------------------------------------- 639 664 ! 640 665 IF( nn_timing == 1 ) CALL timing_start('nonosc') 641 666 ! 642 CALL wrk_alloc( jpi, jpj, jpk, zbetup, zbetdo, zbup, zbdo ) 667 ALLOCATE(zbetup(jpi, jpj, jpk)) 668 ALLOCATE(zbetdo(jpi, jpj, jpk)) 669 ALLOCATE(zbup(jpi, jpj, jpk)) 670 ALLOCATE(zbdo(jpi, jpj, jpk)) 643 671 ! 644 672 zbig = 1.e+40_wp … … 717 745 CALL lbc_lnk( paa, 'U', -1. ) ; CALL lbc_lnk( pbb, 'V', -1. ) ! lateral boundary condition (changed sign) 718 746 ! 719 CALL wrk_dealloc( jpi, jpj, jpk, zbetup, zbetdo, zbup, zbdo ) 747 DEALLOCATE(zbetup) 748 DEALLOCATE(zbetdo) 749 DEALLOCATE(zbup) 750 DEALLOCATE(zbdo) 720 751 ! 721 752 IF( nn_timing == 1 ) CALL timing_stop('nonosc')
Note: See TracChangeset
for help on using the changeset viewer.