Changeset 11467 for NEMO/branches/UKMO/dev_r10037_GPU/src/OCE
- Timestamp:
- 2019-08-22T11:49:08+02:00 (5 years ago)
- Location:
- NEMO/branches/UKMO/dev_r10037_GPU/src/OCE
- Files:
-
- 1 added
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/DIA/diahsb.F90
r10843 r11467 69 69 !! 70 70 !!--------------------------------------------------------------------------- 71 USE scoce, ONLY : z2d0 => scr2D1, z2d1 => scr2D2, zwrk => scr1 71 72 INTEGER, INTENT(in) :: kt ! ocean time-step index 72 73 ! … … 81 82 REAL(wp) :: z_wn_trd_t , z_wn_trd_s ! - - 82 83 REAL(wp) :: z_ssh_hc , z_ssh_sc ! - - 83 REAL(wp), DIMENSION(jpi,jpj) :: z2d0, z2d1 ! 2D workspace84 REAL(wp), DIMENSION(jpi,jpj,jpkm1) :: zwrk ! 3D workspace85 84 !!--------------------------------------------------------------------------- 86 85 IF( ln_timing ) CALL timing_start('dia_hsb') -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/DOM/dommsk.F90
r10847 r11467 93 93 INTEGER :: ijf, ijl ! - - 94 94 INTEGER :: iktop, ikbot ! - - 95 INTEGER :: ios , inum95 INTEGER :: ios 96 96 !! 97 97 INTEGER :: inum ! logical unit for shlat2d -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/DOM/domvvl.F90
r10843 r11467 288 288 !! Reference : Leclair, M., and Madec, G. 2011, Ocean Modelling. 289 289 !!---------------------------------------------------------------------- 290 USE scoce, ONLY : zht => scr2D1, z_scale => scr2D2, & 291 zwu => scr2D3, zwv=> scr2D4, & 292 zhdiv => scr2D5, ze3t => scr1 290 293 INTEGER, INTENT( in ) :: kt ! time step 291 294 INTEGER, INTENT( in ), OPTIONAL :: kcall ! optional argument indicating call sequence … … 295 298 REAL(wp) :: z2dt, z_tmin, z_tmax ! local scalars 296 299 LOGICAL :: ll_do_bclinic ! local logical 297 REAL(wp), DIMENSION(jpi,jpj) :: zht, z_scale, zwu, zwv, zhdiv298 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ze3t299 300 !!---------------------------------------------------------------------- 300 301 ! -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/DYN/dynhpg.F90
r10843 r11467 272 272 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 273 273 !!---------------------------------------------------------------------- 274 USE scoce, ONLY : zhpi => scr1, zhpj => scr2 274 275 INTEGER, INTENT(in) :: kt ! ocean time-step index 275 276 ! 276 277 INTEGER :: ji, jj, jk ! dummy loop indices 277 278 REAL(wp) :: zcoef0, zcoef1 ! temporary scalars 278 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zhpi, zhpj279 279 !!---------------------------------------------------------------------- 280 280 ! … … 332 332 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 333 333 !!---------------------------------------------------------------------- 334 USE scoce, ONLY : zhpi => scr1, zhpj => scr2 334 335 INTEGER, INTENT(in) :: kt ! ocean time-step index 335 336 !! … … 337 338 INTEGER :: iku, ikv ! temporary integers 338 339 REAL(wp) :: zcoef0, zcoef1, zcoef2, zcoef3 ! temporary scalars 339 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zhpi, zhpj340 340 !!---------------------------------------------------------------------- 341 341 ! … … 428 428 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 429 429 !!---------------------------------------------------------------------- 430 USE scoce, ONLY : zhpi => scr1, zhpj => scr2, & 431 zcpx => scr2D1, zcpy => scr2D2 ! W/D pressure filter 430 432 INTEGER, INTENT(in) :: kt ! ocean time-step index 431 433 !! … … 433 435 REAL(wp) :: zcoef0, zuap, zvap, znad, ztmp ! temporary scalars 434 436 LOGICAL :: ll_tmp1, ll_tmp2 ! local logical variables 435 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zhpi, zhpj 436 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: zcpx, zcpy !W/D pressure filter 437 !!---------------------------------------------------------------------- 438 ! 439 IF( ln_wd_il ) ALLOCATE(zcpx(jpi,jpj), zcpy(jpi,jpj)) 437 !!---------------------------------------------------------------------- 440 438 ! 441 439 IF( kt == nit000 ) THEN … … 551 549 END DO 552 550 ! 553 IF( ln_wd_il ) DEALLOCATE( zcpx , zcpy )554 !555 551 END SUBROUTINE hpg_sco 556 552 … … 575 571 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 576 572 !!---------------------------------------------------------------------- 573 USE scoce, ONLY : zhpi => scr1, zhpj => scr2, & 574 zrhdtop_oce => scr2D1, & 575 zts_top => scr3D1 577 576 INTEGER, INTENT(in) :: kt ! ocean time-step index 578 577 !! 579 578 INTEGER :: ji, jj, jk, ikt, iktp1i, iktp1j ! dummy loop indices 580 579 REAL(wp) :: zcoef0, zuap, zvap, znad ! temporary scalars 581 REAL(wp), DIMENSION(jpi,jpj,jpk ) :: zhpi, zhpj 582 REAL(wp), DIMENSION(jpi,jpj,jpts) :: zts_top 583 REAL(wp), DIMENSION(jpi,jpj) :: zrhdtop_oce 580 ! REAL(wp), DIMENSION(jpi,jpj,jpts) :: zts_top 584 581 !!---------------------------------------------------------------------- 585 582 ! … … 669 666 !! Reference: Shchepetkin and McWilliams, J. Geophys. Res., 108(C3), 3090, 2003 670 667 !!---------------------------------------------------------------------- 668 USE scoce, ONLY : zcpx => scr2D1, zcpy => scr2D2 671 669 INTEGER, INTENT(in) :: kt ! ocean time-step index 672 670 !! … … 680 678 REAL(wp), DIMENSION(jpi,jpj,jpk) :: drhox, drhoy, drhoz, drhou, drhov, drhow 681 679 REAL(wp), DIMENSION(jpi,jpj,jpk) :: rho_i, rho_j, rho_k 682 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: zcpx, zcpy !W/D pressure filter683 680 !!---------------------------------------------------------------------- 684 681 ! 685 682 IF( ln_wd_il ) THEN 686 ALLOCATE( zcpx(jpi,jpj) , zcpy(jpi,jpj) )687 683 DO jj = 2, jpjm1 688 684 DO ji = 2, jpim1 … … 926 922 END DO 927 923 ! 928 IF( ln_wd_il ) DEALLOCATE( zcpx, zcpy )929 !930 924 END SUBROUTINE hpg_djc 931 925 … … 942 936 !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 943 937 !!---------------------------------------------------------------------- 938 USE scoce, ONLY : zdept => scr1, zrhh => scr2, & 939 zhpi => scr3, zu => scr4, zv => scr5, fsp => scr6, & 940 xsp => scr7, asp => scr8, bsp => scr9, & 941 csp => scr10, dsp => scr11, & 942 zsshu_n => scr2D1, zsshv_n => scr2D2, & 943 zcpx => scr2D3, zcpy => scr2D4 944 944 INTEGER, PARAMETER :: polynomial_type = 1 ! 1: cubic spline, 2: linear 945 945 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 954 954 REAL(wp) :: zrhdt1 955 955 REAL(wp) :: zdpdx1, zdpdx2, zdpdy1, zdpdy2 956 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdept, zrhh957 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp958 REAL(wp), DIMENSION(jpi,jpj) :: zsshu_n, zsshv_n959 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: zcpx, zcpy !W/D pressure filter960 956 !!---------------------------------------------------------------------- 961 957 ! … … 972 968 973 969 IF( ln_wd_il ) THEN 974 ALLOCATE( zcpx(jpi,jpj) , zcpy(jpi,jpj) )975 970 DO jj = 2, jpjm1 976 971 DO ji = 2, jpim1 … … 1271 1266 END DO 1272 1267 ! 1273 IF( ln_wd_il ) DEALLOCATE( zcpx, zcpy )1274 !1275 1268 END SUBROUTINE hpg_prj 1276 1269 -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/DYN/dynnxt.F90
r10843 r11467 92 92 !! un,vn now horizontal velocity of next time-step 93 93 !!---------------------------------------------------------------------- 94 USE scoce, ONLY : zue => scr2D1, zve => scr2D2, & 95 ze3u_f => scr1, ze3v_f => scr2, zua => scr3, zva => scr4 94 96 INTEGER, INTENT( in ) :: kt ! ocean time-step index 95 97 ! … … 98 100 REAL(wp) :: zue3a, zue3n, zue3b, zuf, zcoef ! local scalars 99 101 REAL(wp) :: zve3a, zve3n, zve3b, zvf, z1_2dt ! - - 100 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zue, zve101 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ze3u_f, ze3v_f, zua, zva102 102 !!---------------------------------------------------------------------- 103 103 ! 104 104 IF( ln_timing ) CALL timing_start('dyn_nxt') 105 IF( ln_dynspg_ts ) ALLOCATE( zue(jpi,jpj) , zve(jpi,jpj) )106 IF( l_trddyn ) ALLOCATE( zua(jpi,jpj,jpk) , zva(jpi,jpj,jpk) )107 105 ! 108 106 IF( kt == nit000 ) THEN … … 275 273 ELSE ! Asselin filter applied on thickness weighted velocity 276 274 ! 277 ALLOCATE( ze3u_f(jpi,jpj,jpk) , ze3v_f(jpi,jpj,jpk) )278 275 ! Before filtered scale factor at (u/v)-points stored in ze3u_f, ze3v_f 279 276 CALL dom_vvl_interpol( e3t_b(:,:,:), ze3u_f, 'U' ) … … 302 299 e3v_b(:,:,1:jpkm1) = ze3v_f(:,:,1:jpkm1) 303 300 ! 304 DEALLOCATE( ze3u_f , ze3v_f )305 301 ENDIF 306 302 ! … … 368 364 & tab3d_2=vn, clinfo2=' Vn: ' , mask2=vmask ) 369 365 ! 370 IF( ln_dynspg_ts ) DEALLOCATE( zue, zve )371 IF( l_trddyn ) DEALLOCATE( zua, zva )372 366 IF( ln_timing ) CALL timing_stop('dyn_nxt') 373 367 ! -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/DYN/dynspg.F90
r10843 r11467 71 71 !! period is used to prevent the divergence of odd and even time step. 72 72 !!---------------------------------------------------------------------- 73 USE scoce, ONLY : zpice => scr2D1, ztrdu => scr1, ztrdv => scr2 73 74 INTEGER, INTENT(in) :: kt ! ocean time-step index 74 75 ! 75 76 INTEGER :: ji, jj, jk ! dummy loop indices 76 77 REAL(wp) :: z2dt, zg_2, zintp, zgrau0r, zld ! local scalars 77 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zpice78 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrdu, ztrdv79 78 !!---------------------------------------------------------------------- 80 79 ! … … 82 81 ! 83 82 IF( l_trddyn ) THEN ! temporary save of ta and sa trends 84 ALLOCATE( ztrdu(jpi,jpj,jpk) , ztrdv(jpi,jpj,jpk) )85 83 ztrdu(:,:,:) = ua(:,:,:) 86 84 ztrdv(:,:,:) = va(:,:,:) … … 134 132 ! 135 133 IF( ln_ice_embd ) THEN !== embedded sea ice: Pressure gradient due to snow-ice mass ==! 136 ALLOCATE( zpice(jpi,jpj) )137 134 zintp = REAL( MOD( kt-1, nn_fsbc ) ) / REAL( nn_fsbc ) 138 135 zgrau0r = - grav * r1_rau0 … … 144 141 END DO 145 142 END DO 146 DEALLOCATE( zpice )147 143 ENDIF 148 144 ! … … 169 165 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 170 166 CALL trd_dyn( ztrdu, ztrdv, jpdyn_spg, kt ) 171 DEALLOCATE( ztrdu , ztrdv )172 167 ENDIF 173 168 ! ! print mean trends (used for debugging) -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/DYN/dynvor.F90
r10843 r11467 205 205 !! ** Action : - Update (ua,va) with the now vorticity term trend 206 206 !!---------------------------------------------------------------------- 207 USE scoce, ONLY : zwx => scr2D1, zwy => scr2D2, zwz => scr2D3, zwt => scr2D4 207 208 INTEGER , INTENT(in ) :: kt ! ocean time-step index 208 209 INTEGER , INTENT(in ) :: kvor ! total, planetary, relative, or metric … … 212 213 INTEGER :: ji, jj, jk ! dummy loop indices 213 214 REAL(wp) :: zx1, zy1, zx2, zy2 ! local scalars 214 REAL(wp), DIMENSION(jpi,jpj) :: zwx, zwy, zwz, zwt ! 2D workspace215 215 !!---------------------------------------------------------------------- 216 216 ! … … 327 327 !! References : Sadourny, r., 1975, j. atmos. sciences, 32, 680-689. 328 328 !!---------------------------------------------------------------------- 329 USE scoce, ONLY : zwx => scr2D1, zwy => scr2D2, zwz => scr2D3 329 330 INTEGER , INTENT(in ) :: kt ! ocean time-step index 330 331 INTEGER , INTENT(in ) :: kvor ! total, planetary, relative, or metric … … 334 335 INTEGER :: ji, jj, jk ! dummy loop indices 335 336 REAL(wp) :: zx1, zy1, zx2, zy2 ! local scalars 336 REAL(wp), DIMENSION(jpi,jpj) :: zwx, zwy, zwz ! 2D workspace337 337 !!---------------------------------------------------------------------- 338 338 ! … … 435 435 !! References : Sadourny, r., 1975, j. atmos. sciences, 32, 680-689. 436 436 !!---------------------------------------------------------------------- 437 USE scoce, ONLY : zwx => scr2D1, zwy => scr2D2, & 438 zwz => scr2D3, zww => scr2D4 ! 2D workspace 437 439 INTEGER , INTENT(in ) :: kt ! ocean time-step index 438 440 INTEGER , INTENT(in ) :: kvor ! total, planetary, relative, or metric … … 442 444 INTEGER :: ji, jj, jk ! dummy loop indices 443 445 REAL(wp) :: zuav, zvau ! local scalars 444 REAL(wp), DIMENSION(jpi,jpj) :: zwx, zwy, zwz, zww ! 2D workspace445 446 !!---------------------------------------------------------------------- 446 447 ! … … 539 540 !! References : Arakawa and Lamb 1980, Mon. Wea. Rev., 109, 18-36 540 541 !!---------------------------------------------------------------------- 542 USE scoce, ONLY : zwx => scr2D1, zwy => scr2D2, zwz => scr2D3, z1_e3f => scr2D4, & 543 ztnw => scr2D5, ztne => scr2D6, ztsw => scr2D7, ztse => scr2D8 541 544 INTEGER , INTENT(in ) :: kt ! ocean time-step index 542 545 INTEGER , INTENT(in ) :: kvor ! total, planetary, relative, or metric … … 548 551 REAL(wp) :: zua, zva ! local scalars 549 552 REAL(wp) :: zmsk, ze3f ! local scalars 550 REAL(wp), DIMENSION(jpi,jpj) :: zwx , zwy , zwz , z1_e3f551 REAL(wp), DIMENSION(jpi,jpj) :: ztnw, ztne, ztsw, ztse552 553 !!---------------------------------------------------------------------- 553 554 ! … … 692 693 !! References : Arakawa and Lamb 1980, Mon. Wea. Rev., 109, 18-36 693 694 !!---------------------------------------------------------------------- 695 USE scoce, ONLY : zwx => scr2D1, zwy => scr2D2, zwz => scr2D3, z1_e3f => scr2D4, & 696 ztnw => scr2D1, ztne => scr2D2, ztsw => scr2D3, ztse => scr2D4 694 697 INTEGER , INTENT(in ) :: kt ! ocean time-step index 695 698 INTEGER , INTENT(in ) :: kvor ! total, planetary, relative, or metric … … 701 704 REAL(wp) :: zua, zva ! local scalars 702 705 REAL(wp) :: zmsk, z1_e3t ! local scalars 703 REAL(wp), DIMENSION(jpi,jpj) :: zwx , zwy , zwz704 REAL(wp), DIMENSION(jpi,jpj) :: ztnw, ztne, ztsw, ztse705 706 !!---------------------------------------------------------------------- 706 707 ! -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/DYN/dynzdf.F90
r10843 r11467 65 65 !! ** Action : (ua,va) after velocity 66 66 !!--------------------------------------------------------------------- 67 USE scoce, ONLY : zwi => scr1, zwd => scr2, zws => scr3, & ! 3D workspace 68 ztrdu => scr3 , ztrdv => scr4 67 69 INTEGER, INTENT(in) :: kt ! ocean time-step index 68 70 ! … … 71 73 REAL(wp) :: zzwi, ze3ua, zdt ! local scalars 72 74 REAL(wp) :: zzws, ze3va ! - - 73 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwi, zwd, zws ! 3D workspace74 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrdu, ztrdv ! - -75 75 !!--------------------------------------------------------------------- 76 76 ! … … 96 96 ! 97 97 IF( l_trddyn ) THEN !* temporary save of ta and sa trends 98 ALLOCATE( ztrdu(jpi,jpj,jpk), ztrdv(jpi,jpj,jpk) )99 98 ztrdu(:,:,:) = ua(:,:,:) 100 99 ztrdv(:,:,:) = va(:,:,:) … … 391 390 ztrdv(:,:,:) = ( va(:,:,:) - vb(:,:,:) ) / r2dt - ztrdv(:,:,:) 392 391 CALL trd_dyn( ztrdu, ztrdv, jpdyn_zdf, kt ) 393 DEALLOCATE( ztrdu, ztrdv )394 392 ENDIF 395 393 ! ! print mean trends (used for debugging) -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/DYN/sshwzv.F90
r10843 r11467 66 66 !! Reference : Leclair, M., and G. Madec, 2009, Ocean Modelling. 67 67 !!---------------------------------------------------------------------- 68 use scoce, ONLY : zhdiv => scr2D1 68 69 INTEGER, INTENT(in) :: kt ! time step 69 70 ! 70 71 INTEGER :: jk ! dummy loop indice 71 72 REAL(wp) :: z2dt, zcoef ! local scalars 72 REAL(wp), DIMENSION(jpi,jpj) :: zhdiv ! 2D workspace73 73 !!---------------------------------------------------------------------- 74 74 ! … … 140 140 !! Reference : Leclair, M., and G. Madec, 2009, Ocean Modelling. 141 141 !!---------------------------------------------------------------------- 142 USE scoce, ONLY : zhdiv => scr1 142 143 INTEGER, INTENT(in) :: kt ! time step 143 144 ! 144 145 INTEGER :: ji, jj, jk ! dummy loop indices 145 146 REAL(wp) :: z1_2dt ! local scalars 146 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zhdiv147 147 !!---------------------------------------------------------------------- 148 148 ! … … 163 163 ! 164 164 IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN ! z_tilde and layer cases 165 ALLOCATE( zhdiv(jpi,jpj,jpk) )166 165 ! 167 166 DO jk = 1, jpkm1 … … 183 182 END DO 184 183 ! IF( ln_vvl_layer ) wn(:,:,:) = 0.e0 185 DEALLOCATE( zhdiv )186 184 ELSE ! z_star and linear free surface cases 187 185 DO jk = jpkm1, 1, -1 ! integrate from the bottom the hor. divergence -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/LDF/ldfslp.F90
r10843 r11467 106 106 !! of now neutral surfaces at u-, w- and v- w-points, resp. 107 107 !!---------------------------------------------------------------------- 108 USE scoce, ONLY : zslpml_hmlpu => scr2D1, zslpml_hmlpv => scr2D2, & 109 zgru => scr1, zwz => scr2, zdzr => scr3, & 110 zgrv => scr4, zww => scr5 108 111 INTEGER , INTENT(in) :: kt ! ocean time-step index 109 112 REAL(wp), INTENT(in), DIMENSION(:,:,:) :: prd ! in situ density … … 118 121 REAL(wp) :: zck, zfk, zbw ! - - 119 122 REAL(wp) :: zdepu, zdepv ! - - 120 REAL(wp), DIMENSION(jpi,jpj) :: zslpml_hmlpu, zslpml_hmlpv121 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgru, zwz, zdzr122 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrv, zww123 123 !!---------------------------------------------------------------------- 124 124 ! … … 389 389 !! - wslp2 squared slope of neutral surfaces at w-points. 390 390 !!---------------------------------------------------------------------- 391 USE scoce, ONLY : z1_mlbw => scr2D1, zalbet => scr1 391 392 INTEGER, INTENT( in ) :: kt ! ocean time-step index 392 393 !! … … 401 402 REAL(wp) :: zdzrho_raw 402 403 REAL(wp) :: zbeta0, ze3_e1, ze3_e2 403 REAL(wp), DIMENSION(jpi,jpj) :: z1_mlbw404 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zalbet405 404 REAL(wp), DIMENSION(jpi,jpj,jpk,0:1) :: zdxrho , zdyrho, zdzrho ! Horizontal and vertical density gradients 406 405 REAL(wp), DIMENSION(jpi,jpj,0:1,0:1) :: zti_mlb, ztj_mlb ! for Griffies operator only -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/TRA/traadv.F90
r10843 r11467 83 83 !! ** Method : - Update (ua,va) with the advection term following nadv 84 84 !!---------------------------------------------------------------------- 85 USE scoce, ONLY : zun => scr1, zvn => scr2, zwn => scr3, & ! 3D workspace 86 ztrdt => scr4, ztrds => scr5 85 87 INTEGER, INTENT(in) :: kt ! ocean time-step index 86 88 ! 87 89 INTEGER :: jk ! dummy loop index 88 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zun, zvn, zwn ! 3D workspace89 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrdt, ztrds90 90 !!---------------------------------------------------------------------- 91 91 ! … … 138 138 ! 139 139 IF( l_trdtra ) THEN !* Save ta and sa trends 140 ALLOCATE( ztrdt(jpi,jpj,jpk), ztrds(jpi,jpj,jpk) )141 140 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 142 141 ztrds(:,:,:) = tsa(:,:,:,jp_sal) … … 165 164 CALL trd_tra( kt, 'TRA', jp_tem, jptra_totad, ztrdt ) 166 165 CALL trd_tra( kt, 'TRA', jp_sal, jptra_totad, ztrds ) 167 DEALLOCATE( ztrdt, ztrds )168 166 ENDIF 169 167 ! ! print mean trends (used for debugging) -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/TRA/tranxt.F90
r10843 r11467 86 86 !! ** Action : - tsb & tsn ready for the next time step 87 87 !!---------------------------------------------------------------------- 88 USE scoce, ONLY : ztrdt => scr1, ztrds => scr2 88 89 INTEGER, INTENT(in) :: kt ! ocean time-step index 89 90 !! 90 91 INTEGER :: ji, jj, jk, jn ! dummy loop indices 91 92 REAL(wp) :: zfact ! local scalars 92 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrdt, ztrds93 93 !!---------------------------------------------------------------------- 94 94 ! … … 118 118 ! trends computation initialisation 119 119 IF( l_trdtra ) THEN 120 ALLOCATE( ztrdt(jpi,jpj,jpk) , ztrds(jpi,jpj,jpk) )121 120 ztrdt(:,:,jpk) = 0._wp 122 121 ztrds(:,:,jpk) = 0._wp … … 178 177 CALL trd_tra( kt, 'TRA', jp_sal, jptra_atf, ztrds ) 179 178 END IF 180 IF( l_trdtra ) DEALLOCATE( ztrdt , ztrds )181 179 ! 182 180 ! ! control print -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/TRA/traqsr.F90
r10843 r11467 101 101 !! Morel, A. et Berthon, JF, 1989, Limnol Oceanogr 34(8), 1545-1562 102 102 !!---------------------------------------------------------------------- 103 USE scoce, ONLY : zekb => scr2D1, zekg => scr2D2, zekr => scr2D3, & 104 ze0 => scr1, ze1 => scr2, ze2 => scr3, ze3 => scr4, zea => scr5, ztrdt => scr6, & 105 zetot => scr7, zchl3d => scr8 103 106 INTEGER, INTENT(in) :: kt ! ocean time-step 104 107 ! … … 111 114 REAL(wp) :: zCb, zCmax, zze, zpsi, zpsimax, zdelpsi, zCtot, zCze 112 115 REAL(wp) :: zlogc, zlogc2, zlogc3 113 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zekb, zekg, zekr114 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ze0, ze1, ze2, ze3, zea, ztrdt115 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zetot, zchl3d116 116 !!---------------------------------------------------------------------- 117 117 ! … … 125 125 ! 126 126 IF( l_trdtra ) THEN ! trends diagnostic: save the input temperature trend 127 ALLOCATE( ztrdt(jpi,jpj,jpk) )128 127 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 129 128 ENDIF … … 158 157 ! 159 158 CASE( np_RGB , np_RGBc ) !== R-G-B fluxes ==! 160 !161 ALLOCATE( zekb(jpi,jpj) , zekg(jpi,jpj) , zekr (jpi,jpj) , &162 & ze0 (jpi,jpj,jpk) , ze1 (jpi,jpj,jpk) , ze2 (jpi,jpj,jpk) , &163 & ze3 (jpi,jpj,jpk) , zea (jpi,jpj,jpk) , zchl3d(jpi,jpj,jpk) )164 159 ! 165 160 IF( nqsr == np_RGBc ) THEN !* Variable Chlorophyll … … 239 234 END DO 240 235 ! 241 DEALLOCATE( zekb , zekg , zekr , ze0 , ze1 , ze2 , ze3 , zea , zchl3d )242 !243 236 CASE( np_2BD ) !== 2-bands fluxes ==! 244 237 ! … … 278 271 ! 279 272 IF( iom_use('qsr3d') ) THEN ! output the shortwave Radiation distribution 280 ALLOCATE( zetot(jpi,jpj,jpk) )281 273 zetot(:,:,nksr+1:jpk) = 0._wp ! below ~400m set to zero 282 274 DO jk = nksr, 1, -1 … … 284 276 END DO 285 277 CALL iom_put( 'qsr3d', zetot ) ! 3D distribution of shortwave Radiation 286 DEALLOCATE( zetot )287 278 ENDIF 288 279 ! … … 297 288 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 298 289 CALL trd_tra( kt, 'TRA', jp_tem, jptra_qsr, ztrdt ) 299 DEALLOCATE( ztrdt )300 290 ENDIF 301 291 ! ! print mean trends (used for debugging) -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/TRA/trasbc.F90
r10843 r11467 73 73 !! - send trends to trdtra module for further diagnostics(l_trdtra=T) 74 74 !!---------------------------------------------------------------------- 75 USE scoce, ONLY : ztrdt => scr1, ztrds => scr2 75 76 INTEGER, INTENT(in) :: kt ! ocean time-step index 76 77 ! … … 78 79 INTEGER :: ikt, ikb ! local integers 79 80 REAL(wp) :: zfact, z1_e3t, zdep, ztim ! local scalar 80 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrdt, ztrds81 81 !!---------------------------------------------------------------------- 82 82 ! … … 90 90 ! 91 91 IF( l_trdtra ) THEN !* Save ta and sa trends 92 ALLOCATE( ztrdt(jpi,jpj,jpk) , ztrds(jpi,jpj,jpk) )93 92 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 94 93 ztrds(:,:,:) = tsa(:,:,:,jp_sal) … … 276 275 CALL trd_tra( kt, 'TRA', jp_tem, jptra_nsr, ztrdt ) 277 276 CALL trd_tra( kt, 'TRA', jp_sal, jptra_nsr, ztrds ) 278 DEALLOCATE( ztrdt , ztrds )279 277 ENDIF 280 278 ! -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/ZDF/zdfmxl.F90
r10843 r11467 86 86 !! ** Action : nmln, hmld, hmlp, hmlpt 87 87 !!---------------------------------------------------------------------- 88 USE scoce, ONLY : imld => iscr2D1 88 89 INTEGER, INTENT(in) :: kt ! ocean time-step index 89 90 ! … … 91 92 INTEGER :: iikn, iiki, ikt ! local integer 92 93 REAL(wp) :: zN2_c ! local scalar 93 INTEGER, DIMENSION(jpi,jpj) :: imld ! 2D workspace94 94 !!---------------------------------------------------------------------- 95 95 ! … … 177 177 ! 178 178 !!----------------------------------------------------------------------------------- 179 179 USE scoce, ONLY : ikmt => iscr2D1, & ! number of active tracer levels 180 ik_ref => iscr2D2, & ! index of reference level 181 ik_iso => iscr2D3, & ! index of last uniform temp level 182 zT => scr1, & ! Temperature or density 183 ppzdep => scr2D1, & ! depth for use in calculating d(rho) 184 zT_ref => scr2D2, & ! reference temperature 185 zdTdz => scr2, & ! gradient of zT 186 zmoddT => scr3, & ! Absolute temperature difference 187 zdelta_T => scr2D3,& ! difference critereon 188 zRHO1 => scr2D4, & ! Densities 189 zRHO2 => scr2D5 ! Densities 180 190 TYPE(MXL_ZINT), INTENT(in) :: sf 181 191 … … 188 198 ! Local variables 189 199 REAL(wp), PARAMETER :: zepsilon = 1.e-30 ! local small value 190 INTEGER, DIMENSION(jpi,jpj) :: ikmt ! number of active tracer levels191 INTEGER, DIMENSION(jpi,jpj) :: ik_ref ! index of reference level192 INTEGER, DIMENSION(jpi,jpj) :: ik_iso ! index of last uniform temp level193 REAL, DIMENSION(jpi,jpj,jpk) :: zT ! Temperature or density194 REAL, DIMENSION(jpi,jpj) :: ppzdep ! depth for use in calculating d(rho)195 REAL, DIMENSION(jpi,jpj) :: zT_ref ! reference temperature196 200 REAL :: zT_b ! base temperature 197 REAL, DIMENSION(jpi,jpj,jpk) :: zdTdz ! gradient of zT198 REAL, DIMENSION(jpi,jpj,jpk) :: zmoddT ! Absolute temperature difference199 201 REAL :: zdz ! depth difference 200 202 REAL :: zdT ! temperature difference 201 REAL, DIMENSION(jpi,jpj) :: zdelta_T ! difference critereon202 REAL, DIMENSION(jpi,jpj) :: zRHO1, zRHO2 ! Densities203 203 INTEGER :: ji, jj, jk ! loop counter 204 204 -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/ZDF/zdfphy.F90
r10846 r11467 225 225 !! bottom stress..... <<<<====verifier ! 226 226 !!---------------------------------------------------------------------- 227 USE scoce, ONLY : zsh2 => scr1 ! shear production 227 228 INTEGER, INTENT(in) :: kt ! ocean time-step index 228 229 ! 229 230 INTEGER :: ji, jj, jk ! dummy loop indice 230 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zsh2 ! shear production231 231 !! --------------------------------------------------------------------- 232 232 ! -
NEMO/branches/UKMO/dev_r10037_GPU/src/OCE/nemogcm.F90
r10843 r11467 92 92 USE agrif_all_update ! Master Agrif update 93 93 #endif 94 USE scoce, ONLY : scoce_alloc ! scratch arrays 94 95 95 96 IMPLICIT NONE … … 607 608 ierr = ierr + trc_oce_alloc() ! shared TRC / TRA arrays 608 609 ierr = ierr + bdy_oce_alloc() ! bdy masks (incl. initialization) 610 ierr = ierr + scoce_alloc() ! scratch arrays 609 611 ! 610 612 #if defined key_diadct
Note: See TracChangeset
for help on using the changeset viewer.