- Timestamp:
- 2017-04-13T16:21:08+02:00 (7 years ago)
- Location:
- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
r7753 r7910 30 30 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 31 31 USE lib_mpp ! Massively Parallel Processing library 32 USE wrk_nemo ! Memory allocation33 32 USE timing ! Timing 34 33 … … 92 91 INTEGER :: iktop, ikbot ! - - 93 92 INTEGER :: ios, inum 94 REAL(wp), POINTER, DIMENSION(:,:) :: zwf ! 2D workspace93 REAL(wp), DIMENSION(jpi,jpj) :: zwf ! 2D workspace 95 94 !! 96 95 NAMELIST/namlbc/ rn_shlat, ln_vorlat … … 248 247 IF( rn_shlat /= 0 ) THEN ! Not free-slip lateral boundary condition 249 248 ! 250 CALL wrk_alloc( jpi,jpj, zwf )251 249 ! 252 250 DO jk = 1, jpk … … 278 276 END DO 279 277 ! 280 CALL wrk_dealloc( jpi,jpj, zwf )281 278 ! 282 279 CALL lbc_lnk( fmask, 'F', 1._wp ) ! Lateral boundary conditions on fmask -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/domngb.F90
r7646 r7910 13 13 USE in_out_manager ! I/O manager 14 14 USE lib_mpp ! for mppsum 15 USE wrk_nemo ! Memory allocation16 15 USE timing ! Timing 17 16 … … 45 44 INTEGER , DIMENSION(2) :: iloc 46 45 REAL(wp) :: zlon, zmini 47 REAL(wp), POINTER, DIMENSION(:,:) :: zglam, zgphi, zmask, zdist46 REAL(wp), DIMENSION(jpi,jpj) :: zglam, zgphi, zmask, zdist 48 47 !!-------------------------------------------------------------------- 49 48 ! 50 49 IF( nn_timing == 1 ) CALL timing_start('dom_ngb') 51 50 ! 52 CALL wrk_alloc( jpi,jpj, zglam, zgphi, zmask, zdist )53 51 ! 54 52 zmask(:,:) = 0._wp … … 79 77 ENDIF 80 78 ! 81 CALL wrk_dealloc( jpi,jpj, zglam, zgphi, zmask, zdist )82 79 ! 83 80 IF( nn_timing == 1 ) CALL timing_stop('dom_ngb') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90
r7753 r7910 31 31 USE lib_mpp ! distributed memory computing library 32 32 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 33 USE wrk_nemo ! Memory allocation34 33 USE timing ! Timing 35 34 … … 276 275 REAL(wp) :: z2dt, z_tmin, z_tmax ! local scalars 277 276 LOGICAL :: ll_do_bclinic ! local logical 278 REAL(wp), POINTER, DIMENSION(:,:,:) :: ze3t279 REAL(wp), POINTER, DIMENSION(:,:) :: zht, z_scale, zwu, zwv, zhdiv277 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ze3t 278 REAL(wp), DIMENSION(jpi,jpj) :: zht, z_scale, zwu, zwv, zhdiv 280 279 !!---------------------------------------------------------------------- 281 280 ! … … 284 283 IF( nn_timing == 1 ) CALL timing_start('dom_vvl_sf_nxt') 285 284 ! 286 CALL wrk_alloc( jpi,jpj,zht, z_scale, zwu, zwv, zhdiv )287 CALL wrk_alloc( jpi,jpj,jpk, ze3t )288 285 289 286 IF( kt == nit000 ) THEN … … 543 540 r1_hv_a(:,:) = ssvmask(:,:) / ( hv_a(:,:) + 1._wp - ssvmask(:,:) ) 544 541 ! 545 CALL wrk_dealloc( jpi,jpj, zht, z_scale, zwu, zwv, zhdiv )546 CALL wrk_dealloc( jpi,jpj,jpk, ze3t )547 542 ! 548 543 IF( nn_timing == 1 ) CALL timing_stop('dom_vvl_sf_nxt') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/domwri.F90
r7646 r7910 24 24 USE lbclnk ! lateral boundary conditions - mpp exchanges 25 25 USE lib_mpp ! MPP library 26 USE wrk_nemo ! Memory allocation27 26 USE timing ! Timing 28 27 … … 75 74 INTEGER :: izco, izps, isco, icav 76 75 ! 77 REAL(wp), POINTER, DIMENSION(:,:) :: zprt, zprw ! 2D workspace78 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepu, zdepv ! 3D workspace76 REAL(wp), DIMENSION(jpi,jpj) :: zprt, zprw ! 2D workspace 77 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepu, zdepv ! 3D workspace 79 78 !!---------------------------------------------------------------------- 80 79 ! 81 80 IF( nn_timing == 1 ) CALL timing_start('dom_wri') 82 81 ! 83 CALL wrk_alloc( jpi,jpj, zprt , zprw )84 CALL wrk_alloc( jpi,jpj,jpk, zdepu, zdepv )85 82 ! 86 83 IF(lwp) WRITE(numout,*) … … 206 203 ! ! ============================ 207 204 ! 208 CALL wrk_dealloc( jpi, jpj, zprt, zprw )209 CALL wrk_dealloc( jpi, jpj, jpk, zdepu, zdepv )210 205 ! 211 206 IF( nn_timing == 1 ) CALL timing_stop('dom_wri') … … 229 224 INTEGER :: ji ! dummy loop indices 230 225 LOGICAL, DIMENSION(SIZE(puniq,1),SIZE(puniq,2),1) :: lldbl ! store whether each point is unique or not 231 REAL(wp), POINTER, DIMENSION(:,:) :: ztstref226 REAL(wp), DIMENSION(jpi,jpj) :: ztstref 232 227 !!---------------------------------------------------------------------- 233 228 ! 234 229 IF( nn_timing == 1 ) CALL timing_start('dom_uniq') 235 230 ! 236 CALL wrk_alloc( jpi, jpj, ztstref )237 231 ! 238 232 ! build an array with different values for each element … … 250 244 puniq(nldi:nlei,nldj:nlej) = REAL( COUNT( lldbl(nldi:nlei,nldj:nlej,:), dim = 3 ) , wp ) 251 245 ! 252 CALL wrk_dealloc( jpi, jpj, ztstref )253 246 ! 254 247 IF( nn_timing == 1 ) CALL timing_stop('dom_uniq') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r7753 r7910 36 36 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 37 37 USE lib_mpp ! distributed memory computing library 38 USE wrk_nemo ! Memory allocation39 38 USE timing ! Timing 40 39 … … 284 283 ! 285 284 INTEGER :: ji, jj ! dummy loop indices 286 REAL(wp), POINTER, DIMENSION(:,:) :: zk285 REAL(wp), DIMENSION(jpi,jpj) :: zk 287 286 !!---------------------------------------------------------------------- 288 287 ! 289 288 IF( nn_timing == 1 ) CALL timing_start('zgr_top_bot') 290 289 ! 291 CALL wrk_alloc( jpi,jpj, zk )292 290 ! 293 291 IF(lwp) WRITE(numout,*) … … 319 317 zk(:,:) = REAL( mbkv(:,:), wp ) ; CALL lbc_lnk( zk, 'V', 1. ) ; mbkv(:,:) = MAX( INT( zk(:,:) ), 1 ) 320 318 ! 321 CALL wrk_dealloc( jpi,jpj, zk )322 319 ! 323 320 IF( nn_timing == 1 ) CALL timing_stop('zgr_top_bot') -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/dtatsd.F90
r7753 r7910 21 21 USE phycst ! physical constants 22 22 USE lib_mpp ! MPP library 23 USE wrk_nemo ! Memory allocation24 23 USE timing ! Timing 25 24 … … 146 145 INTEGER :: ik, il0, il1, ii0, ii1, ij0, ij1 ! local integers 147 146 REAL(wp):: zl, zi 148 REAL(wp), POINTER, DIMENSION(:) :: ztp, zsp ! 1D workspace147 REAL(wp), DIMENSION(jpk) :: ztp, zsp ! 1D workspace 149 148 !!---------------------------------------------------------------------- 150 149 ! … … 186 185 IF( ln_sco ) THEN !== s- or mixed s-zps-coordinate ==! 187 186 ! 188 CALL wrk_alloc( jpk, ztp, zsp )189 187 ! 190 188 IF( kt == nit000 .AND. lwp )THEN … … 222 220 END DO 223 221 ! 224 CALL wrk_dealloc( jpk, ztp, zsp )225 222 ! 226 223 ELSE !== z- or zps- coordinate ==! -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/iscplhsb.F90
r7646 r7910 21 21 USE lib_mpp ! MPP library 22 22 USE lib_fortran ! MPP library 23 USE wrk_nemo ! Memory allocation24 23 USE lbclnk ! 25 24 USE domngb ! … … 65 64 !! 66 65 REAL(wp):: zde3t, zdtem, zdsal 67 REAL(wp), DIMENSION( :,:), POINTER:: zdssh66 REAL(wp), DIMENSION(jpi,jpj) :: zdssh 68 67 !! 69 68 REAL(wp), DIMENSION(:), ALLOCATABLE :: zlon, zlat … … 72 71 INTEGER :: jpts, npts 73 72 74 CALL wrk_alloc(jpi,jpj, zdssh )75 73 76 74 ! get imbalance (volume heat and salt) … … 289 287 290 288 ! deallocate variables 291 CALL wrk_dealloc(jpi,jpj, zdssh )292 289 293 290 END SUBROUTINE iscpl_cons -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/iscplrst.F90
r7646 r7910 21 21 USE lib_mpp ! MPP library 22 22 USE lib_fortran ! MPP library 23 USE wrk_nemo ! Memory allocation24 23 USE lbclnk ! communication 25 24 USE iscplini ! ice sheet coupling: initialisation … … 50 49 !!---------------------------------------------------------------------- 51 50 INTEGER :: inum0 52 REAL(wp), DIMENSION( :,: ), POINTER:: zsmask_b53 REAL(wp), DIMENSION( :,:,:), POINTER:: ztmask_b, zumask_b, zvmask_b54 REAL(wp), DIMENSION( :,:,:), POINTER:: ze3t_b , ze3u_b , ze3v_b55 REAL(wp), DIMENSION( :,:,:), POINTER:: zdepw_b51 REAL(wp), DIMENSION(jpi,jpj) :: zsmask_b 52 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztmask_b, zumask_b, zvmask_b 53 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ze3t_b , ze3u_b , ze3v_b 54 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepw_b 56 55 CHARACTER(20) :: cfile 57 56 !!---------------------------------------------------------------------- 58 57 59 CALL wrk_alloc(jpi,jpj,jpk, ztmask_b, zumask_b, zvmask_b) ! mask before60 CALL wrk_alloc(jpi,jpj,jpk, ze3t_b , ze3u_b , ze3v_b ) ! e3 before61 CALL wrk_alloc(jpi,jpj,jpk, zdepw_b )62 CALL wrk_alloc(jpi,jpj, zsmask_b )63 58 64 59 … … 98 93 END IF 99 94 100 CALL wrk_dealloc(jpi,jpj,jpk, ztmask_b,zumask_b,zvmask_b )101 CALL wrk_dealloc(jpi,jpj,jpk, ze3t_b ,ze3u_b ,ze3v_b )102 CALL wrk_dealloc(jpi,jpj,jpk, zdepw_b )103 CALL wrk_dealloc(jpi,jpj, zsmask_b )104 95 105 96 !! next step is an euler time step … … 150 141 REAL(wp):: zdz, zdzm1, zdzp1 151 142 !! 152 REAL(wp), DIMENSION( :,: ), POINTER:: zdmask , zdsmask, zvcorr, zucorr, zde3t153 REAL(wp), DIMENSION( :,: ), POINTER:: zbub , zbvb , zbun , zbvn154 REAL(wp), DIMENSION( :,: ), POINTER:: zssh0 , zssh1, zhu1, zhv1155 REAL(wp), DIMENSION( :,: ), POINTER:: zsmask0, zsmask1156 REAL(wp), DIMENSION( :,:,: ), POINTER:: ztmask0, ztmask1, ztrp157 REAL(wp), DIMENSION( :,:,: ), POINTER:: zwmaskn, zwmaskb, ztmp3d158 REAL(wp), DIMENSION( :,:,:,:), POINTER:: zts0143 REAL(wp), DIMENSION(jpi,jpj) :: zdmask , zdsmask, zvcorr, zucorr, zde3t 144 REAL(wp), DIMENSION(jpi,jpj) :: zbub , zbvb , zbun , zbvn 145 REAL(wp), DIMENSION(jpi,jpj) :: zssh0 , zssh1, zhu1, zhv1 146 REAL(wp), DIMENSION(jpi,jpj) :: zsmask0, zsmask1 147 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztmask0, ztmask1, ztrp 148 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwmaskn, zwmaskb, ztmp3d 149 REAL(wp), DIMENSION(jpi,jpj,jpk,2) :: zts0 159 150 !!---------------------------------------------------------------------- 160 151 161 152 !! allocate variables 162 CALL wrk_alloc(jpi,jpj,jpk,2, zts0 )163 CALL wrk_alloc(jpi,jpj,jpk, ztmask0, ztmask1 , ztrp, ztmp3d )164 CALL wrk_alloc(jpi,jpj,jpk, zwmaskn, zwmaskb )165 CALL wrk_alloc(jpi,jpj, zsmask0, zsmask1 )166 CALL wrk_alloc(jpi,jpj, zdmask , zdsmask, zvcorr, zucorr, zde3t)167 CALL wrk_alloc(jpi,jpj, zbub , zbvb , zbun , zbvn )168 CALL wrk_alloc(jpi,jpj, zssh0 , zssh1, zhu1, zhv1 )169 153 170 154 !! mask value to be sure … … 430 414 ! 431 415 ! deallocation tmp arrays 432 CALL wrk_dealloc(jpi,jpj,jpk,2, zts0 )433 CALL wrk_dealloc(jpi,jpj,jpk, ztmask0, ztmask1 , ztrp )434 CALL wrk_dealloc(jpi,jpj,jpk, zwmaskn, zwmaskb , ztmp3d )435 CALL wrk_dealloc(jpi,jpj, zsmask0, zsmask1 )436 CALL wrk_dealloc(jpi,jpj, zdmask , zdsmask, zvcorr, zucorr, zde3t)437 CALL wrk_dealloc(jpi,jpj, zbub , zbvb , zbun , zbvn )438 CALL wrk_dealloc(jpi,jpj, zssh0 , zssh1 , zhu1 , zhv1 )439 416 ! 440 417 END SUBROUTINE iscpl_rst_interpol -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90
r7753 r7910 60 60 !!---------------------------------------------------------------------- 61 61 INTEGER :: ji, jj, jk ! dummy loop indices 62 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zuvd ! U & V data workspace62 REAL(wp), DIMENSION(jpi,jpj,jpk,2) :: zuvd ! U & V data workspace 63 63 !!---------------------------------------------------------------------- 64 64 ! … … 121 121 !!gm to be moved in usrdef of C1D case 122 122 ! IF ( ln_uvd_init .AND. lk_c1d ) THEN ! read 3D U and V data at nit000 123 ! CALL wrk_alloc( jpi,jpj,jpk,2, zuvd )124 123 ! CALL dta_uvd( nit000, zuvd ) 125 124 ! ub(:,:,:) = zuvd(:,:,:,1) ; un(:,:,:) = ub(:,:,:)
Note: See TracChangeset
for help on using the changeset viewer.