- Timestamp:
- 2020-06-26T15:02:13+02:00 (4 years ago)
- Location:
- NEMO/branches/UKMO/NEMO_4.0.1_GM_rossby_radius_cutoff
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.1_GM_rossby_radius_cutoff/cfgs/SHARED/field_def_nemo-oce.xml
r13002 r13161 72 72 <field id="N_2d" long_name="Depth-mean N" unit="m/s" /> 73 73 <field id="RossRad" long_name="Rossby radius" unit="m" /> 74 <field id="RossRadlim" long_name="Rossby radius (limited)" unit="m" /> 75 <field id="Tclinic_recip" long_name="recip of baroclinic timescale" unit="s-1" /> 74 76 <field id="RR_GS" long_name="Rossby radius / min(dx,dy)" unit="1" /> 75 <field id="GS_RR" long_name="min(dx,dy) / Rossby radius" unit="1" />76 77 77 78 <!-- Energy - horizontal divergence --> -
NEMO/branches/UKMO/NEMO_4.0.1_GM_rossby_radius_cutoff/src/OCE/DIA/diawri.F90
r11715 r13161 391 391 CALL iom_put( "bn2", rn2 ) ! Brunt-Vaisala buoyancy frequency (N^2) 392 392 ! 393 IF( (.NOT.l_ldfeiv_time) .AND. ( iom_use('RossRad') .OR. iom_use('RossRadlim') & 394 & .OR. iom_use('TclinicR') .OR. iom_use('RR_GG') & 395 & .OR. iom_use('aeiu_2d') .OR. iom_use('aeiv_2d') ) ) THEN 396 CALL ldf_eiv(kt, 75.0, z2d, z3d(:,:,1)) 397 CALL iom_put('aeiu_2d', z2d) 398 CALL iom_put('aeiv_2d', z3d(:,:,1)) 399 ENDIF 393 400 394 401 IF (ln_diatmb) CALL dia_tmb ! tmb values -
NEMO/branches/UKMO/NEMO_4.0.1_GM_rossby_radius_cutoff/src/OCE/LDF/ldftra.F90
r13038 r13161 426 426 ahtv(:,:,1) = aeiv(:,:,1) 427 427 ELSE ! compute aht. 428 CALL ldf_eiv( kt, aht0, ahtu, ahtv , .false.)428 CALL ldf_eiv( kt, aht0, ahtu, ahtv ) 429 429 ENDIF 430 430 ! … … 641 641 !!---------------------------------------------------------------------- 642 642 INTEGER , INTENT(in ) :: kt ! ocean time-step index 643 REAL(wp) , INTENT(in out) :: paei0 ! max value [m2/s]643 REAL(wp) , INTENT(in ) :: paei0 ! max value [m2/s] 644 644 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: paeiu, paeiv ! eiv coefficient [m2/s] 645 645 ! 646 646 INTEGER :: ji, jj, jk ! dummy loop indices 647 647 REAL(wp) :: zfw, ze3w, zn2, z1_f20, zaht, zaht_min, zzaei, z2_3 ! local scalars 648 REAL(wp), DIMENSION(jpi,jpj) :: zn, zah, zhw, zRo, zRo_lim, z aeiw, zratio ! 2D workspace648 REAL(wp), DIMENSION(jpi,jpj) :: zn, zah, zhw, zRo, zRo_lim, zTclinic_recip, zaeiw, zratio ! 2D workspace 649 649 !!---------------------------------------------------------------------- 650 650 ! … … 654 654 zRo(:,:) = 0._wp 655 655 zRo_lim(:,:) = 0._wp 656 zTclinic_recip(:,:) = 0._wp 657 zratio(:,:) = 0._wp 658 zaeiw(:,:) = 0._wp 656 659 ! ! Compute lateral diffusive coefficient at T-point 657 660 IF( ln_traldf_triad ) THEN … … 701 704 zRo_lim(ji,jj) = MAX( 2.e3 , MIN( zRo(ji,jj), 40.e3 ) ) 702 705 ! Compute aeiw by multiplying Ro^2 and T^-1 703 zaeiw(ji,jj) = zRo_lim(ji,jj) * zRo_lim(ji,jj) * SQRT( zah(ji,jj) / zhw(ji,jj) ) * tmask(ji,jj,1) 704 END DO 705 END DO 706 IF( iom_use('N_2d') ) CALL iom_put('N_2d',zn(:,:)/ht_0(:,:)) 706 zTclinic_recip(ji,jj) = SQRT( MAX(zah(ji,jj),0._wp) / zhw(ji,jj) ) * tmask(ji,jj,1) 707 zaeiw(ji,jj) = zRo_lim(ji,jj) * zRo_lim(ji,jj) * zTclinic_recip(ji,jj) 708 END DO 709 END DO 710 IF( iom_use('N_2d') ) CALL iom_put('N_2d',zn(:,:)/zhw(:,:)) 707 711 CALL iom_put('RossRad',zRo) 712 CALL iom_put('RossRadlim',zRo_lim) 713 CALL iom_put('Tclinic_recip',zTclinic_recip) 708 714 ! !== Bound on eiv coeff. ==! 709 715 z1_f20 = 1._wp / ( 2._wp * omega * sin( rad * 20._wp ) ) … … 748 754 END DO 749 755 END DO 750 CALL iom_put('GS_RR',zratio) 756 757 CASE(4) !! bathymetry ramp: 758 DO jj = 2, jpjm1 759 DO ji = fs_2, fs_jpim1 ! vector opt. 760 zaeiw(ji,jj) = MIN( zaeiw(ji,jj), MAX( 0._wp, MIN( 1._wp, 0.001*(ht_0(ji,jj) - 2000._wp) ) ) * paei0 ) 761 END DO 762 END DO 751 763 752 764 END SELECT … … 766 778 paeiv(:,:,jk) = paeiv(:,:,1) * vmask(:,:,jk) 767 779 END DO 768 ! 780 ! 769 781 END SUBROUTINE ldf_eiv 770 782
Note: See TracChangeset
for help on using the changeset viewer.