Changeset 5029 for trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
- Timestamp:
- 2015-01-14T17:32:37+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
r4990 r5029 51 51 LOGICAL, PUBLIC :: ln_dynvor_mix !: mixed scheme 52 52 LOGICAL, PUBLIC :: ln_dynvor_een !: energy and enstrophy conserving scheme 53 LOGICAL, PUBLIC :: ln_dynvor_een_old !: energy and enstrophy conserving scheme (original formulation) 53 54 54 55 INTEGER :: nvor = 0 ! type of vorticity trend used … … 596 597 597 598 IF( kt == nit000 .OR. lk_vvl ) THEN ! reciprocal of e3 at F-point (masked averaging of e3t over ocean points) 598 DO jk = 1, jpk 599 DO jj = 1, jpjm1 600 DO ji = 1, jpim1 601 ze3 = ( fse3t(ji,jj+1,jk)*tmask(ji,jj+1,jk) + fse3t(ji+1,jj+1,jk)*tmask(ji+1,jj+1,jk) & 602 & + fse3t(ji,jj ,jk)*tmask(ji,jj ,jk) + fse3t(ji+1,jj ,jk)*tmask(ji+1,jj ,jk) ) 603 zmsk = ( tmask(ji,jj+1,jk) + tmask(ji+1,jj+1,jk) & 604 & + tmask(ji,jj ,jk) + tmask(ji+1,jj ,jk) ) 605 IF( ze3 /= 0._wp ) ze3f(ji,jj,jk) = zmsk / ze3 606 END DO 607 END DO 608 END DO 599 600 IF( ln_dynvor_een_old ) THEN ! original formulation 601 DO jk = 1, jpk 602 DO jj = 1, jpjm1 603 DO ji = 1, jpim1 604 ze3 = ( fse3t(ji,jj+1,jk)*tmask(ji,jj+1,jk) + fse3t(ji+1,jj+1,jk)*tmask(ji+1,jj+1,jk) & 605 & + fse3t(ji,jj ,jk)*tmask(ji,jj ,jk) + fse3t(ji+1,jj ,jk)*tmask(ji+1,jj ,jk) ) 606 IF( ze3 /= 0._wp ) ze3f(ji,jj,jk) = 4.0_wp / ze3 607 END DO 608 END DO 609 END DO 610 ELSE ! new formulation from NEMO 3.6 611 DO jk = 1, jpk 612 DO jj = 1, jpjm1 613 DO ji = 1, jpim1 614 ze3 = ( fse3t(ji,jj+1,jk)*tmask(ji,jj+1,jk) + fse3t(ji+1,jj+1,jk)*tmask(ji+1,jj+1,jk) & 615 & + fse3t(ji,jj ,jk)*tmask(ji,jj ,jk) + fse3t(ji+1,jj ,jk)*tmask(ji+1,jj ,jk) ) 616 zmsk = ( tmask(ji,jj+1,jk) + tmask(ji+1,jj+1,jk) & 617 & + tmask(ji,jj ,jk) + tmask(ji+1,jj ,jk) ) 618 IF( ze3 /= 0._wp ) ze3f(ji,jj,jk) = zmsk / ze3 619 END DO 620 END DO 621 END DO 622 ENDIF 623 609 624 CALL lbc_lnk( ze3f, 'F', 1. ) 610 625 ENDIF … … 705 720 INTEGER :: ios ! Local integer output status for namelist read 706 721 !! 707 NAMELIST/namdyn_vor/ ln_dynvor_ens, ln_dynvor_ene, ln_dynvor_mix, ln_dynvor_een 722 NAMELIST/namdyn_vor/ ln_dynvor_ens, ln_dynvor_ene, ln_dynvor_mix, ln_dynvor_een, ln_dynvor_een_old 708 723 !!---------------------------------------------------------------------- 709 724 … … 726 741 WRITE(numout,*) ' mixed enstrophy/energy conserving scheme ln_dynvor_mix = ', ln_dynvor_mix 727 742 WRITE(numout,*) ' enstrophy and energy conserving scheme ln_dynvor_een = ', ln_dynvor_een 743 WRITE(numout,*) ' enstrophy and energy conserving scheme (old) ln_dynvor_een_old= ', ln_dynvor_een_old 728 744 ENDIF 729 745 … … 749 765 IF( ln_dynvor_mix ) ioptio = ioptio + 1 750 766 IF( ln_dynvor_een ) ioptio = ioptio + 1 767 IF( ln_dynvor_een_old ) ioptio = ioptio + 1 751 768 IF( lk_esopa ) ioptio = 1 752 769 … … 757 774 IF( ln_dynvor_ens ) nvor = 1 758 775 IF( ln_dynvor_mix ) nvor = 2 759 IF( ln_dynvor_een ) nvor = 3776 IF( ln_dynvor_een .or. ln_dynvor_een_old ) nvor = 3 760 777 IF( lk_esopa ) nvor = -1 761 778
Note: See TracChangeset
for help on using the changeset viewer.