Changeset 7581 for branches/UKMO
- Timestamp:
- 2017-01-19T13:20:22+01:00 (7 years ago)
- Location:
- branches/UKMO/dev_r5518_optim_GO6_alloc/NEMOGCM/NEMO
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_optim_GO6_alloc/NEMOGCM/NEMO/OPA_SRC/SOL/solpcg.F90
r6486 r7581 93 93 REAL(wp) :: zgcad ! temporary scalars 94 94 REAL(wp), DIMENSION(2) :: zsum 95 REAL(wp), POINTER, DIMENSION(:,:) :: zgcr95 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zgcr 96 96 !!---------------------------------------------------------------------- 97 97 ! 98 98 IF( nn_timing == 1 ) CALL timing_start('sol_pcg') 99 99 ! 100 CALL wrk_alloc( jpi, jpj, zgcr)100 ALLOCATE( zgcr(jpi,jpj) ) 101 101 ! 102 102 ! Initialization of the algorithm with standard PCG … … 210 210 CALL lbc_lnk( gcx, c_solver_pt, 1. ) ! Output in gcx with lateral b.c. applied 211 211 ! 212 CALL wrk_dealloc( jpi, jpj,zgcr )212 DEALLOCATE ( zgcr ) 213 213 ! 214 214 IF( nn_timing == 1 ) CALL timing_stop('sol_pcg') -
branches/UKMO/dev_r5518_optim_GO6_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r7061 r7581 80 80 ! 81 81 INTEGER :: jk ! dummy loop index 82 REAL(wp), POINTER, DIMENSION(:,:,:) :: zun, zvn, zwn83 REAL(wp), POINTER, DIMENSION(:,:,:) ::ztrdt, ztrds ! 3D workspace82 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zun, zvn, zwn 83 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrdt, ztrds ! 3D workspace 84 84 !!---------------------------------------------------------------------- 85 85 ! 86 86 IF( nn_timing == 1 ) CALL timing_start('tra_adv') 87 87 ! 88 CALL wrk_alloc( jpi, jpj, jpk, zun, zvn, zwn ) 88 ALLOCATE(zun(jpi, jpj, jpk)) 89 ALLOCATE(zvn(jpi, jpj, jpk)) 90 ALLOCATE(zwn(jpi, jpj, jpk)) 89 91 ! ! set time step 90 92 IF( neuler == 0 .AND. kt == nit000 ) THEN ! at nit000 … … 124 126 ! 125 127 IF( l_trdtra ) THEN !* Save ta and sa trends 126 CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 128 ALLOCATE(ztrdt( jpi, jpj, jpk) ) 129 ALLOCATE(ztrds( jpi, jpj, jpk) ) 127 130 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 128 131 ztrds(:,:,:) = tsa(:,:,:,jp_sal) … … 166 169 CALL trd_tra( kt, 'TRA', jp_tem, jptra_totad, ztrdt ) 167 170 CALL trd_tra( kt, 'TRA', jp_sal, jptra_totad, ztrds ) 168 CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 171 DEALLOCATE (ztrdt) 172 DEALLOCATE (ztrds) 169 173 ENDIF 170 174 ! ! print mean trends (used for debugging) … … 174 178 IF( nn_timing == 1 ) CALL timing_stop( 'tra_adv' ) 175 179 ! 176 CALL wrk_dealloc( jpi, jpj, jpk, zun, zvn, zwn ) 180 DEALLOCATE(zun) 181 DEALLOCATE(zvn) 182 DEALLOCATE(zwn) 177 183 ! 178 184 END SUBROUTINE tra_adv -
branches/UKMO/dev_r5518_optim_GO6_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_muscl.F90
r7179 r7581 82 82 REAL(wp) :: zv, z0v, zzwy, z0w ! - - 83 83 REAL(wp) :: ztra, zbtr, zdt, zalpha ! - - 84 REAL(wp), POINTER, DIMENSION(:,:,:) :: zslpx, zslpy ! 3D workspace85 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwx , zwy ! - -84 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zslpx, zslpy ! 3D workspace 85 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zwx , zwy ! - - 86 86 !!---------------------------------------------------------------------- 87 87 ! 88 88 IF( nn_timing == 1 ) CALL timing_start('tra_adv_muscl') 89 89 ! 90 CALL wrk_alloc( jpi, jpj, jpk, zslpx, zslpy, zwx, zwy ) 90 ALLOCATE( zslpx(1:jpi, 1:jpj, 1:jpk) ) 91 ALLOCATE( zslpy(1:jpi, 1:jpj, 1:jpk) ) 92 ALLOCATE( zwx (1:jpi, 1:jpj, 1:jpk) ) 93 ALLOCATE( zwy (1:jpi, 1:jpj, 1:jpk) ) 91 94 ! 92 95 IF( kt == kit000 ) THEN … … 288 291 END DO 289 292 ! 290 CALL wrk_dealloc( jpi, jpj, jpk, zslpx, zslpy, zwx, zwy ) 293 DEALLOCATE( zslpx ) 294 DEALLOCATE( zslpy ) 295 DEALLOCATE( zwx ) 296 DEALLOCATE( zwy ) 291 297 ! 292 298 IF( nn_timing == 1 ) CALL timing_stop('tra_adv_muscl') -
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') -
branches/UKMO/dev_r5518_optim_GO6_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90
r6486 r7581 107 107 INTEGER, INTENT( in ) :: kt ! ocean time-step 108 108 ! 109 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds109 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrdt, ztrds 110 110 !!---------------------------------------------------------------------- 111 111 ! … … 113 113 ! 114 114 IF( l_trdtra ) THEN !* Save ta and sa trends 115 CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 115 ALLOCATE( ztrdt (1:jpi, 1:jpj, 1:jpk)) 116 ALLOCATE( ztrds (1:jpi, 1:jpj, 1:jpk)) 116 117 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 117 118 ztrds(:,:,:) = tsa(:,:,:,jp_sal) … … 151 152 CALL trd_tra( kt, 'TRA', jp_tem, jptra_bbl, ztrdt ) 152 153 CALL trd_tra( kt, 'TRA', jp_sal, jptra_bbl, ztrds ) 153 CALL wrk_dealloc( jpi, jpj, jpk,ztrdt, ztrds )154 DEALLOCATE( ztrdt, ztrds ) 154 155 ENDIF 155 156 ! … … 187 188 INTEGER :: ik ! local integers 188 189 REAL(wp) :: zbtr ! local scalars 189 REAL(wp), POINTER, DIMENSION(:,:) :: zptb190 REAL(wp), ALLOCATABLE , DIMENSION(:,:) :: zptb 190 191 !!---------------------------------------------------------------------- 191 192 ! 192 193 IF( nn_timing == 1 ) CALL timing_start('tra_bbl_dif') 193 194 ! 194 CALL wrk_alloc( jpi, jpj, zptb)195 ALLOCATE(zptb(1:jpi, 1:jpj)) 195 196 ! 196 197 DO jn = 1, kjpt ! tracer loop … … 217 218 END DO ! end tracer 218 219 ! ! =========== 219 CALL wrk_dealloc( jpi, jpj,zptb )220 DEALLOCATE( zptb ) 220 221 ! 221 222 IF( nn_timing == 1 ) CALL timing_stop('tra_bbl_dif') -
branches/UKMO/dev_r5518_optim_GO6_alloc/NEMOGCM/NEMO/TOP_SRC/TRP/trcbbl.F90
r6486 r7581 53 53 INTEGER, INTENT( in ) :: kt ! ocean time-step 54 54 CHARACTER (len=22) :: charout 55 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrtrd55 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztrtrd 56 56 !!---------------------------------------------------------------------- 57 57 ! … … 64 64 65 65 IF( l_trdtrc ) THEN 66 CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrtrd) ! temporary save of trends66 ALLOCATE(ztrtrd( jpi, jpj, jpk, jptra )) ! temporary save of trends 67 67 ztrtrd(:,:,:,:) = tra(:,:,:,:) 68 68 ENDIF … … 95 95 CALL trd_tra( kt, 'TRC', jn, jptra_bbl, ztrtrd(:,:,:,jn) ) 96 96 END DO 97 CALL wrk_dealloc( jpi, jpj, jpk, jptra,ztrtrd ) ! temporary save of trends97 DEALLOCATE(ztrtrd ) ! temporary save of trends 98 98 ENDIF 99 99 ! -
branches/UKMO/dev_r5518_optim_GO6_alloc/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90
r6498 r7581 59 59 REAL(wp) :: zdep 60 60 CHARACTER (len=22) :: charout 61 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrtrd61 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztrtrd 62 62 !!---------------------------------------------------------------------- 63 63 ! … … 81 81 ! 82 82 IF( l_trdtrc ) THEN 83 CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrtrd)83 ALLOCATE( ztrtrd ( jpi, jpj, jpk, jptra) ) 84 84 ztrtrd(:,:,:,:) = tra(:,:,:,:) 85 85 ENDIF … … 120 120 CALL trd_tra( kt, 'TRC', jn, jptra_ldf, ztrtrd(:,:,:,jn) ) 121 121 END DO 122 CALL wrk_dealloc( jpi, jpj, jpk, jptra,ztrtrd )122 DEALLOCATE( ztrtrd ) 123 123 ENDIF 124 124 ! ! print mean trends (used for debugging)
Note: See TracChangeset
for help on using the changeset viewer.