- Timestamp:
- 2016-01-08T10:35:19+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4704_NOC5_MPP_BDY_UPDATE/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftmx.F90
r4624 r6225 8 8 !! 3.3 ! 2010-10 (C. Ethe, G. Madec) reorganisation of initialisation phase 9 9 !!---------------------------------------------------------------------- 10 #if defined key_zdftmx || defined key_esopa10 #if defined key_zdftmx 11 11 !!---------------------------------------------------------------------- 12 12 !! 'key_zdftmx' Tidal vertical mixing … … 51 51 52 52 !! * Substitutions 53 # include "domzgr_substitute.h90"54 53 # include "vectopt_loop_substitute.h90" 55 54 !!---------------------------------------------------------------------- 56 !! NEMO/OPA 4.0 , NEMO Consortium (2011)55 !! NEMO/OPA 3.7 , NEMO Consortium (2014) 57 56 !! $Id$ 58 57 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 105 104 !! Koch-Larrouy et al. 2007, GRL. 106 105 !!---------------------------------------------------------------------- 107 USE oce, zav_tide => ua ! use ua as workspace108 !!109 106 INTEGER, INTENT(in) :: kt ! ocean time-step 110 ! !107 ! 111 108 INTEGER :: ji, jj, jk ! dummy loop indices 112 109 REAL(wp) :: ztpc ! scalar workspace 113 REAL(wp), POINTER, DIMENSION(:,:) :: zkz 110 REAL(wp), POINTER, DIMENSION(:,:) :: zkz 111 REAL(wp), POINTER, DIMENSION(:,:,:) :: zav_tide 114 112 !!---------------------------------------------------------------------- 115 113 ! 116 114 IF( nn_timing == 1 ) CALL timing_start('zdf_tmx') 117 115 ! 118 CALL wrk_alloc( jpi,jpj, zkz ) 119 116 CALL wrk_alloc( jpi,jpj, zkz ) 117 CALL wrk_alloc( jpi,jpj,jpk, zav_tide ) 118 ! 120 119 ! ! ----------------------- ! 121 120 ! ! Standard tidal mixing ! (compute zav_tide) … … 126 125 zkz(:,:) = 0.e0 !* Associated potential energy consummed over the whole water column 127 126 DO jk = 2, jpkm1 128 zkz(:,:) = zkz(:,:) + fse3w(:,:,jk) * MAX( 0.e0, rn2(:,:,jk) ) * rau0 * zav_tide(:,:,jk)* tmask(:,:,jk)127 zkz(:,:) = zkz(:,:) + e3w_n(:,:,jk) * MAX( 0.e0, rn2(:,:,jk) ) * rau0 * zav_tide(:,:,jk) * wmask(:,:,jk) 129 128 END DO 130 129 … … 135 134 END DO 136 135 137 DO jk = 2, jpkm1 138 zav_tide(:,:,jk) = zav_tide(:,:,jk) * MIN( zkz(:,:), 30./6. ) !kz max = 300 cm2/s136 DO jk = 2, jpkm1 !* Mutiply by zkz to recover en_tmx, BUT bound by 30/6 ==> zav_tide bound by 300 cm2/s 137 zav_tide(:,:,jk) = zav_tide(:,:,jk) * MIN( zkz(:,:), 30./6. ) * wmask(:,:,jk) !kz max = 300 cm2/s 139 138 END DO 140 139 141 140 IF( kt == nit000 ) THEN !* check at first time-step: diagnose the energy consumed by zav_tide 142 ztpc = 0. e0141 ztpc = 0._wp 143 142 DO jk= 1, jpk 144 143 DO jj= 1, jpj 145 144 DO ji= 1, jpi 146 ztpc = ztpc + fse3w(ji,jj,jk) * e1t(ji,jj) * e2t(ji,jj)&147 & 145 ztpc = ztpc + e3w_n(ji,jj,jk) * e1e2t(ji,jj) & 146 & * MAX( 0.e0, rn2(ji,jj,jk) ) * zav_tide(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 148 147 END DO 149 148 END DO 150 149 END DO 151 150 ztpc= rau0 / ( rn_tfe * rn_me ) * ztpc 151 IF( lk_mpp ) CALL mpp_sum( ztpc ) 152 152 IF(lwp) WRITE(numout,*) 153 153 IF(lwp) WRITE(numout,*) ' N Total power consumption by av_tide : ztpc = ', ztpc * 1.e-12 ,'TW' … … 163 163 ! ! ----------------------- ! 164 164 DO jk = 2, jpkm1 !* update momentum & tracer diffusivity with tidal mixing 165 avt(:,:,jk) = avt(:,:,jk) + zav_tide(:,:,jk) 166 avm(:,:,jk) = avm(:,:,jk) + zav_tide(:,:,jk) 165 avt(:,:,jk) = avt(:,:,jk) + zav_tide(:,:,jk) * wmask(:,:,jk) 166 avm(:,:,jk) = avm(:,:,jk) + zav_tide(:,:,jk) * wmask(:,:,jk) 167 167 DO jj = 2, jpjm1 168 168 DO ji = fs_2, fs_jpim1 ! vector opt. 169 avmu(ji,jj,jk) = avmu(ji,jj,jk) + 0.5 * ( zav_tide(ji,jj,jk) + zav_tide(ji+1,jj ,jk) ) * umask(ji,jj,jk)170 avmv(ji,jj,jk) = avmv(ji,jj,jk) + 0.5 * ( zav_tide(ji,jj,jk) + zav_tide(ji ,jj+1,jk) ) * vmask(ji,jj,jk)169 avmu(ji,jj,jk) = avmu(ji,jj,jk) + 0.5 * ( zav_tide(ji,jj,jk) + zav_tide(ji+1,jj ,jk) ) * wumask(ji,jj,jk) 170 avmv(ji,jj,jk) = avmv(ji,jj,jk) + 0.5 * ( zav_tide(ji,jj,jk) + zav_tide(ji ,jj+1,jk) ) * wvmask(ji,jj,jk) 171 171 END DO 172 172 END DO … … 179 179 IF(ln_ctl) CALL prt_ctl(tab3d_1=zav_tide , clinfo1=' tmx - av_tide: ', tab3d_2=avt, clinfo2=' avt: ', ovlap=1, kdim=jpk) 180 180 ! 181 CALL wrk_dealloc( jpi,jpj, zkz ) 181 CALL wrk_dealloc( jpi,jpj, zkz ) 182 CALL wrk_dealloc( jpi,jpj,jpk, zav_tide ) 182 183 ! 183 184 IF( nn_timing == 1 ) CALL timing_stop('zdf_tmx') … … 228 229 DO jk = 1, jpkm1 229 230 zdn2dz (:,:,jk) = rn2(:,:,jk) - rn2(:,:,jk+1) ! Vertical profile of dN2/dz 230 !CDIR NOVERRCHK231 231 zempba_3d_1(:,:,jk) = SQRT( MAX( 0.e0, rn2(:,:,jk) ) ) ! - - of N 232 232 zempba_3d_2(:,:,jk) = MAX( 0.e0, rn2(:,:,jk) ) ! - - of N^2 … … 237 237 zsum2(:,:) = 0.e0 238 238 DO jk= 2, jpk 239 zsum1(:,:) = zsum1(:,:) + zempba_3d_1(:,:,jk) * fse3w(:,:,jk)240 zsum2(:,:) = zsum2(:,:) + zempba_3d_2(:,:,jk) * fse3w(:,:,jk)239 zsum1(:,:) = zsum1(:,:) + zempba_3d_1(:,:,jk) * e3w_n(:,:,jk) * wmask(:,:,jk) 240 zsum2(:,:) = zsum2(:,:) + zempba_3d_2(:,:,jk) * e3w_n(:,:,jk) * wmask(:,:,jk) 241 241 END DO 242 242 DO jj = 1, jpj … … 255 255 ! 256 256 zempba_3d(ji,jj,jk) = ztpc 257 zsum (ji,jj) = zsum(ji,jj) + ztpc * fse3w(ji,jj,jk)257 zsum (ji,jj) = zsum(ji,jj) + ztpc * e3w_n(ji,jj,jk) 258 258 END DO 259 259 END DO … … 274 274 zkz(:,:) = 0.e0 ! Associated potential energy consummed over the whole water column 275 275 DO jk = 2, jpkm1 276 zkz(:,:) = zkz(:,:) + fse3w(:,:,jk) * MAX( 0.e0, rn2(:,:,jk) ) * rau0 * zavt_itf(:,:,jk) * tmask(:,:,jk)276 zkz(:,:) = zkz(:,:) + e3w_n(:,:,jk) * MAX( 0.e0, rn2(:,:,jk) ) * rau0 * zavt_itf(:,:,jk) * wmask(:,:,jk) 277 277 END DO 278 278 … … 284 284 285 285 DO jk = 2, jpkm1 ! Mutiply by zkz to recover en_tmx, BUT bound by 30/6 ==> zavt_itf bound by 300 cm2/s 286 zavt_itf(:,:,jk) = zavt_itf(:,:,jk) * MIN( zkz(:,:), 120./10. ) ! kz max = 120 cm2/s286 zavt_itf(:,:,jk) = zavt_itf(:,:,jk) * MIN( zkz(:,:), 120./10. ) * wmask(:,:,jk) ! kz max = 120 cm2/s 287 287 END DO 288 288 … … 292 292 DO jj= 1, jpj 293 293 DO ji= 1, jpi 294 ztpc = ztpc + e1 t(ji,jj) * e2t(ji,jj) * fse3w(ji,jj,jk) * MAX( 0.e0, rn2(ji,jj,jk) ) &295 & * zavt_itf(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj)294 ztpc = ztpc + e1e2t(ji,jj) * e3w_n(ji,jj,jk) * MAX( 0.e0, rn2(ji,jj,jk) ) & 295 & * zavt_itf(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 296 296 END DO 297 297 END DO 298 298 END DO 299 IF( lk_mpp ) CALL mpp_sum( ztpc ) 299 300 ztpc= rau0 * ztpc / ( rn_me * rn_tfe_itf ) 300 301 IF(lwp) WRITE(numout,*) ' N Total power consumption by zavt_itf: ztpc = ', ztpc * 1.e-12 ,'TW' … … 350 351 !! Koch-Larrouy et al. 2007, GRL. 351 352 !!---------------------------------------------------------------------- 352 USE oce , zav_tide => ua ! ua used as workspace353 !!354 353 INTEGER :: ji, jj, jk ! dummy loop indices 355 354 INTEGER :: inum ! local integer 356 355 INTEGER :: ios 357 356 REAL(wp) :: ztpc, ze_z ! local scalars 358 REAL(wp), DIMENSION(:,:) , POINTER :: zem2, zek1 ! read M2 and K1 tidal energy359 REAL(wp), DIMENSION(:,:) , POINTER :: zkz ! total M2, K1 and S2 tidal energy360 REAL(wp), DIMENSION(:,:) , POINTER :: zfact ! used for vertical structure function361 REAL(wp), DIMENSION(:,:) , POINTER :: zhdep ! Ocean depth362 REAL(wp), DIMENSION(:,:,:), POINTER :: zpc 357 REAL(wp), DIMENSION(:,:) , POINTER :: zem2, zek1 ! read M2 and K1 tidal energy 358 REAL(wp), DIMENSION(:,:) , POINTER :: zkz ! total M2, K1 and S2 tidal energy 359 REAL(wp), DIMENSION(:,:) , POINTER :: zfact ! used for vertical structure function 360 REAL(wp), DIMENSION(:,:) , POINTER :: zhdep ! Ocean depth 361 REAL(wp), DIMENSION(:,:,:), POINTER :: zpc, zav_tide ! power consumption 363 362 !! 364 363 NAMELIST/namzdf_tmx/ rn_htmx, rn_n2min, rn_tfe, rn_me, ln_tmx_itf, rn_tfe_itf … … 367 366 IF( nn_timing == 1 ) CALL timing_start('zdf_tmx_init') 368 367 ! 369 CALL wrk_alloc( jpi,jpj, zem2, zek1, zkz, zfact, zhdep )370 CALL wrk_alloc( jpi,jpj,jpk, zpc)371 372 REWIND( numnam_ref ) 368 CALL wrk_alloc( jpi,jpj, zem2, zek1, zkz, zfact, zhdep ) 369 CALL wrk_alloc( jpi,jpj,jpk, zpc, zav_tide ) 370 ! 371 REWIND( numnam_ref ) ! Namelist namzdf_tmx in reference namelist : Tidal Mixing 373 372 READ ( numnam_ref, namzdf_tmx, IOSTAT = ios, ERR = 901) 374 373 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tmx in reference namelist', lwp ) 375 376 REWIND( numnam_cfg ) 374 ! 375 REWIND( numnam_cfg ) ! Namelist namzdf_tmx in configuration namelist : Tidal Mixing 377 376 READ ( numnam_cfg, namzdf_tmx, IOSTAT = ios, ERR = 902 ) 378 377 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tmx in configuration namelist', lwp ) 379 378 IF(lwm) WRITE ( numond, namzdf_tmx ) 380 381 IF(lwp) THEN ! Control print379 ! 380 IF(lwp) THEN ! Control print 382 381 WRITE(numout,*) 383 382 WRITE(numout,*) 'zdf_tmx_init : tidal mixing' … … 391 390 WRITE(numout,*) ' ITF tidal dissipation efficiency = ', rn_tfe_itf 392 391 ENDIF 393 394 ! ! allocate tmx arrays 392 ! ! allocate tmx arrays 395 393 IF( zdf_tmx_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'zdf_tmx_init : unable to allocate tmx arrays' ) 396 394 397 IF( ln_tmx_itf ) THEN ! read the Indonesian Through Flow mask395 IF( ln_tmx_itf ) THEN ! read the Indonesian Through Flow mask 398 396 CALL iom_open('mask_itf',inum) 399 397 CALL iom_get (inum, jpdom_data, 'tmaskitf',mask_itf,1) ! 400 398 CALL iom_close(inum) 401 399 ENDIF 402 403 ! read M2 tidal energy flux : W/m2 ( zem2 < 0 ) 400 ! ! read M2 tidal energy flux : W/m2 ( zem2 < 0 ) 404 401 CALL iom_open('M2rowdrg',inum) 405 402 CALL iom_get (inum, jpdom_data, 'field',zem2,1) ! 406 403 CALL iom_close(inum) 407 408 ! read K1 tidal energy flux : W/m2 ( zek1 < 0 ) 404 ! ! read K1 tidal energy flux : W/m2 ( zek1 < 0 ) 409 405 CALL iom_open('K1rowdrg',inum) 410 406 CALL iom_get (inum, jpdom_data, 'field',zek1,1) ! 411 407 CALL iom_close(inum) 412 413 ! Total tidal energy ( M2, S2 and K1 with S2=(1/2)^2 * M2 ) 414 ! only the energy available for mixing is taken into account, 415 ! (mixing efficiency tidal dissipation efficiency) 416 en_tmx(:,:) = - rn_tfe * rn_me * ( zem2(:,:) * 1.25 + zek1(:,:) ) * tmask(:,:,1) 417 418 ! Vertical structure (az_tmx) 419 DO jj = 1, jpj ! part independent of the level 408 ! ! Total tidal energy ( M2, S2 and K1 with S2=(1/2)^2 * M2 ) 409 ! ! only the energy available for mixing is taken into account, 410 ! ! (mixing efficiency tidal dissipation efficiency) 411 en_tmx(:,:) = - rn_tfe * rn_me * ( zem2(:,:) * 1.25 + zek1(:,:) ) * ssmask(:,:) 412 413 !============ 414 !TG: Bug for VVL? Should this section be moved out of _init and be updated at every timestep? 415 !!gm : you are right, but tidal mixing acts in deep ocean (H>500m) where e3 is O(100m) 416 !! the error is thus ~1% which I feel comfortable with, compared to uncertainties in tidal energy dissipation. 417 ! ! Vertical structure (az_tmx) 418 DO jj = 1, jpj ! part independent of the level 420 419 DO ji = 1, jpi 421 zhdep(ji,jj) = fsdepw(ji,jj,mbkt(ji,jj)+1) ! depth of the ocean420 zhdep(ji,jj) = gdepw_0(ji,jj,mbkt(ji,jj)+1) ! depth of the ocean 422 421 zfact(ji,jj) = rau0 * rn_htmx * ( 1. - EXP( -zhdep(ji,jj) / rn_htmx ) ) 423 422 IF( zfact(ji,jj) /= 0 ) zfact(ji,jj) = en_tmx(ji,jj) / zfact(ji,jj) 424 423 END DO 425 424 END DO 426 DO jk= 1, jpk ! complete with the level-dependent part425 DO jk= 1, jpk ! complete with the level-dependent part 427 426 DO jj = 1, jpj 428 427 DO ji = 1, jpi 429 az_tmx(ji,jj,jk) = zfact(ji,jj) * EXP( -( zhdep(ji,jj)-fsdepw(ji,jj,jk) ) / rn_htmx ) * tmask(ji,jj,jk) 430 END DO 431 END DO 432 END DO 433 428 az_tmx(ji,jj,jk) = zfact(ji,jj) * EXP( -( zhdep(ji,jj)-gdepw_0(ji,jj,jk) ) / rn_htmx ) * tmask(ji,jj,jk) 429 END DO 430 END DO 431 END DO 432 !=========== 433 ! 434 434 IF( nprint == 1 .AND. lwp ) THEN 435 435 ! Control print … … 440 440 zav_tide(:,:,jk) = az_tmx(:,:,jk) / MAX( rn_n2min, rn2(:,:,jk) ) 441 441 END DO 442 443 ztpc = 0. e0442 ! 443 ztpc = 0._wp 444 444 zpc(:,:,:) = MAX(rn_n2min,rn2(:,:,:)) * zav_tide(:,:,:) 445 445 DO jk= 2, jpkm1 446 446 DO jj = 1, jpj 447 447 DO ji = 1, jpi 448 ztpc = ztpc + fse3w(ji,jj,jk) * e1t(ji,jj) * e2t(ji,jj) * zpc(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj)448 ztpc = ztpc + e3w_n(ji,jj,jk) * e1e2t(ji,jj) * zpc(ji,jj,jk) * wmask(ji,jj,jk) * tmask_i(ji,jj) 449 449 END DO 450 450 END DO 451 451 END DO 452 IF( lk_mpp ) CALL mpp_sum( ztpc ) 452 453 ztpc= rau0 * 1/(rn_tfe * rn_me) * ztpc 453 454 ! 454 455 WRITE(numout,*) 455 456 WRITE(numout,*) ' Total power consumption of the tidally driven part of Kz : ztpc = ', ztpc * 1.e-12 ,'TW' 456 457 457 ! 458 458 ! control print 2 459 459 zav_tide(:,:,:) = MIN( zav_tide(:,:,:), 60.e-4 ) 460 zkz(:,:) = 0. e0460 zkz(:,:) = 0._wp 461 461 DO jk = 2, jpkm1 462 DO jj = 1, jpj 463 DO ji = 1, jpi 464 zkz(ji,jj) = zkz(ji,jj) + fse3w(ji,jj,jk) * MAX( 0.e0, rn2(ji,jj,jk) ) * rau0 * zav_tide(ji,jj,jk)* tmask(ji,jj,jk) 465 END DO 466 END DO 462 zkz(:,:) = zkz(:,:) + e3w_n(:,:,jk) * MAX(0.e0, rn2(:,:,jk)) * rau0 * zav_tide(:,:,jk) * wmask(:,:,jk) 467 463 END DO 468 464 ! Here zkz should be equal to en_tmx ==> multiply by en_tmx/zkz … … 483 479 END DO 484 480 WRITE(numout,*) ' Min de zkz ', ztpc, ' Max = ', maxval(zkz(:,:) ) 485 481 ! 486 482 DO jk = 2, jpkm1 487 zav_tide(:,:,jk) = zav_tide(:,:,jk) * MIN( zkz(:,:), 30./6. ) !kz max = 300 cm2/s488 END DO 489 ztpc = 0. e0483 zav_tide(:,:,jk) = zav_tide(:,:,jk) * MIN( zkz(:,:), 30./6. ) * wmask(:,:,jk) !kz max = 300 cm2/s 484 END DO 485 ztpc = 0._wp 490 486 zpc(:,:,:) = Max(0.e0,rn2(:,:,:)) * zav_tide(:,:,:) 491 487 DO jk= 1, jpk 492 488 DO jj = 1, jpj 493 489 DO ji = 1, jpi 494 ztpc = ztpc + fse3w(ji,jj,jk) * e1t(ji,jj) * e2t(ji,jj) * zpc(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj)490 ztpc = ztpc + e3w_n(ji,jj,jk) * e1e2t(ji,jj) * zpc(ji,jj,jk) * wmask(ji,jj,jk) * tmask_i(ji,jj) 495 491 END DO 496 492 END DO 497 493 END DO 494 IF( lk_mpp ) CALL mpp_sum( ztpc ) 498 495 ztpc= rau0 * 1/(rn_tfe * rn_me) * ztpc 499 496 WRITE(numout,*) ' 2 Total power consumption of the tidally driven part of Kz : ztpc = ', ztpc * 1.e-12 ,'TW' 500 497 !!gm bug mpp in these diagnostics 501 498 DO jk = 1, jpk 502 ze_z = SUM( e1 t(:,:) * e2t(:,:) * zav_tide(:,:,jk)* tmask_i(:,:) ) &503 & / MAX( 1.e-20, SUM( e1 t(:,:) * e2t(:,:) * tmask(:,:,jk) * tmask_i(:,:) ) )504 ztpc = 1. E50499 ze_z = SUM( e1e2t(:,:) * zav_tide(:,:,jk) * tmask_i(:,:) ) & 500 & / MAX( 1.e-20, SUM( e1e2t(:,:) * wmask (:,:,jk) * tmask_i(:,:) ) ) 501 ztpc = 1.e50 505 502 DO jj = 1, jpj 506 503 DO ji = 1, jpi 507 IF( zav_tide(ji,jj,jk) /= 0.e0 ) ztpc = Min( ztpc, zav_tide(ji,jj,jk) )504 IF( zav_tide(ji,jj,jk) /= 0.e0 ) ztpc = MIN( ztpc, zav_tide(ji,jj,jk) ) 508 505 END DO 509 506 END DO … … 512 509 END DO 513 510 514 WRITE(numout,*) ' e_tide : ', SUM( e1 t*e2t*en_tmx ) / ( rn_tfe * rn_me ) * 1.e-12, 'TW'511 WRITE(numout,*) ' e_tide : ', SUM( e1e2t*en_tmx ) / ( rn_tfe * rn_me ) * 1.e-12, 'TW' 515 512 WRITE(numout,*) 516 513 WRITE(numout,*) ' Initial profile of tidal vertical mixing' … … 521 518 END DO 522 519 END DO 523 ze_z = SUM( e1 t(:,:) * e2t(:,:) * zkz(:,:)* tmask_i(:,:) ) &524 & / MAX( 1.e-20, SUM( e1 t(:,:) * e2t(:,:) * tmask(:,:,jk) * tmask_i(:,:) ) )520 ze_z = SUM( e1e2t(:,:) * zkz (:,:) * tmask_i(:,:) ) & 521 & / MAX( 1.e-20, SUM( e1e2t(:,:) * wmask(:,:,jk) * tmask_i(:,:) ) ) 525 522 WRITE(numout,*) ' jk= ', jk,' ', ze_z * 1.e4,' cm2/s' 526 523 END DO 527 524 DO jk = 1, jpk 528 525 zkz(:,:) = az_tmx(:,:,jk) /rn_n2min 529 ze_z = SUM( e1 t(:,:) * e2t(:,:) * zkz(:,:)* tmask_i(:,:) ) &530 & / MAX( 1.e-20, SUM( e1 t(:,:) * e2t(:,:) * tmask(:,:,jk) * tmask_i(:,:) ) )526 ze_z = SUM( e1e2t(:,:) * zkz (:,:) * tmask_i(:,:) ) & 527 & / MAX( 1.e-20, SUM( e1e2t(:,:) * wmask(:,:,jk) * tmask_i(:,:) ) ) 531 528 WRITE(numout,*) 532 529 WRITE(numout,*) ' N2 min - jk= ', jk,' ', ze_z * 1.e4,' cm2/s min= ',MINVAL(zkz)*1.e4, & 533 530 & 'max= ', MAXVAL(zkz)*1.e4, ' cm2/s' 534 531 END DO 532 !!gm end bug mpp 535 533 ! 536 534 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.