Changeset 15128
- Timestamp:
- 2021-07-18T16:30:44+02:00 (3 years ago)
- Location:
- NEMO/branches/UKMO/tools_r4.0-HEAD_dev_MEs/DOMAINcfg/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/tools_r4.0-HEAD_dev_MEs/DOMAINcfg/src/domain.f90
r15121 r15128 385 385 !! and depths (ln_e3_dep=F) 386 386 !!---------------------------------------------------------------------- 387 INTEGER :: ji, jj, jk ! dummy loop indices 388 INTEGER :: izco, izps, isco, icav 389 INTEGER :: inum ! temprary units for 'domain_cfg.nc' file 390 CHARACTER(len=21) :: clnam ! filename (mesh and mask informations) 391 REAL(wp), DIMENSION(jpi,jpj) :: z2d ! workspace 387 INTEGER :: ji, jj, jk ! dummy loop indices 388 INTEGER :: izco, izps, isco, icav 389 INTEGER :: inum ! temporary units for 390 ! 'domain_cfg.nc' file 391 CHARACTER(len=21) :: clnam ! filename (mesh and 392 ! mask informations) 393 REAL(wp), DIMENSION(jpi,jpj) :: z2d ! workspace 394 REAL(wp), DIMENSION(jpi,jpj,jpk) :: z3d ! workspace 392 395 !!---------------------------------------------------------------------- 393 396 ! … … 493 496 CALL dom_stiff( z2d ) 494 497 CALL iom_rstput( 0, 0, inum, 'stiffness', z2d ) ! ! Max. grid stiffness ratio 498 CALL dom_stiff_3D( z3d ) 499 CALL iom_rstput( 0, 0, inum, 'stiff3D', z3d ) ! 3D stiffness ratio 495 500 ENDIF 496 501 ! -
NEMO/branches/UKMO/tools_r4.0-HEAD_dev_MEs/DOMAINcfg/src/domwri.f90
r15121 r15128 30 30 PUBLIC dom_wri_coordinate ! routine called by domhgr.F90 31 31 PUBLIC dom_stiff ! routine called by inidom.F90 32 PUBLIC dom_stiff_3d ! routine called by domain.F90 32 33 33 34 !!---------------------------------------------------------------------- … … 480 481 END SUBROUTINE dom_stiff 481 482 483 484 SUBROUTINE dom_stiff_3D( px1 ) 485 !!---------------------------------------------------------------------- 486 !! *** ROUTINE dom_stiff *** 487 !! 488 !! ** Purpose : Diagnose maximum grid stiffness/hydrostatic consistency 489 !! 490 !! ** Method : Compute Haney (1991) hydrostatic condition ratio 491 !! Save the maximum in the vertical direction 492 !! (this number is only relevant in s-coordinates) 493 !! 494 !! Haney, 1991, J. Phys. Oceanogr., 21, 610-619. 495 !!---------------------------------------------------------------------- 496 REAL(wp), DIMENSION(:,:,:), INTENT(out), OPTIONAL :: px1 ! stiffness 497 ! 498 INTEGER :: ji, jj, jk 499 REAL(wp) :: zrxmax 500 REAL(wp), DIMENSION(4) :: zr1 501 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zx1 502 !!---------------------------------------------------------------------- 503 zx1(:,:,:) = 0._wp 504 zrxmax = 0._wp 505 zr1(:) = 0._wp 506 ! 507 DO ji = 2, jpim1 508 DO jj = 2, jpjm1 509 DO jk = 1, jpkm1 510 !!gm remark: dk(gdepw) = e3t ===>>> possible simplification of the following calculation .... 511 !! especially since it is gde3w which is used to compute the pressure gradient 512 !! furthermore, I think gdept_0 should be used below instead of w-point in the numerator 513 !! so that the ratio is computed at the same point (i.e. uw and vw) .... 514 zr1(1) = ABS( ( gdepw_0(ji ,jj,jk )-gdepw_0(ji-1,jj,jk ) & 515 & +gdepw_0(ji ,jj,jk+1)-gdepw_0(ji-1,jj,jk+1) ) & 516 & / ( gdepw_0(ji ,jj,jk )+gdepw_0(ji-1,jj,jk ) & 517 & -gdepw_0(ji ,jj,jk+1)-gdepw_0(ji-1,jj,jk+1) + rsmall ) ) * umask(ji-1,jj,jk) 518 zr1(2) = ABS( ( gdepw_0(ji+1,jj,jk )-gdepw_0(ji ,jj,jk ) & 519 & +gdepw_0(ji+1,jj,jk+1)-gdepw_0(ji ,jj,jk+1) ) & 520 & / ( gdepw_0(ji+1,jj,jk )+gdepw_0(ji ,jj,jk ) & 521 & -gdepw_0(ji+1,jj,jk+1)-gdepw_0(ji ,jj,jk+1) + rsmall ) ) * umask(ji ,jj,jk) 522 zr1(3) = ABS( ( gdepw_0(ji,jj+1,jk )-gdepw_0(ji,jj ,jk ) & 523 & +gdepw_0(ji,jj+1,jk+1)-gdepw_0(ji,jj ,jk+1) ) & 524 & / ( gdepw_0(ji,jj+1,jk )+gdepw_0(ji,jj ,jk ) & 525 & -gdepw_0(ji,jj+1,jk+1)-gdepw_0(ji,jj ,jk+1) + rsmall ) ) * vmask(ji,jj ,jk) 526 zr1(4) = ABS( ( gdepw_0(ji,jj ,jk )-gdepw_0(ji,jj-1,jk ) & 527 & +gdepw_0(ji,jj ,jk+1)-gdepw_0(ji,jj-1,jk+1) ) & 528 & / ( gdepw_0(ji,jj ,jk )+gdepw_0(ji,jj-1,jk ) & 529 & -gdepw_0(ji,jj ,jk+1)-gdepw_0(ji,jj-1,jk+1) + rsmall ) ) * vmask(ji,jj-1,jk) 530 zrxmax = MAXVAL( zr1(1:4) ) 531 zx1(ji,jj,jk) = zrxmax 532 END DO 533 END DO 534 END DO 535 CALL lbc_lnk( zx1, 'T', 1. ) 536 ! 537 IF( PRESENT( px1 ) ) px1 = zx1 538 ! 539 END SUBROUTINE dom_stiff_3D 540 482 541 !!====================================================================== 483 542 END MODULE domwri
Note: See TracChangeset
for help on using the changeset viewer.