Changeset 10813
- Timestamp:
- 2019-03-29T16:06:08+01:00 (4 years ago)
- Location:
- NEMO/branches/UKMO/dev_r10037_vorticity_trends
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/dev_r10037_vorticity_trends/cfgs/SHARED/field_def_nemo-oce.xml
r10810 r10813 798 798 <!-- variables available with ln_dyn_vor --> 799 799 <field id="vort_prg_avg" long_name="curl(vertical avg) vort trend: internal pressure gradient" unit="m/s^2" /> 800 <field id="vort_keg_avg" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />801 <field id="vort_rvo_avg" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />802 <field id="vort_pvo_avg" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />803 <field id="vort_ldf_avg" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />804 <field id="vort_zad_avg" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />805 <field id="vort_zdf_avg" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />806 <field id="vort_spg_avg" long_name="curl(vertical avg) vort trend: internalpressure gradient" unit="m/s^2" />807 <field id="vort_swf_avg" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />808 <field id="vort_bfr_avg" long_name="curl(vertical avg) vort trend: internal pressure gradient" unit="m/s^2" />809 <field id="vort_prg_int" long_name="curl(vertical avg) vort trend: internal pressure gradient" unit="m/s^2" />810 <field id="vort_keg_int" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />811 <field id="vort_rvo_int" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />812 <field id="vort_pvo_int" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />813 <field id="vort_ldf_int" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />814 <field id="vort_zad_int" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />815 <field id="vort_zdf_int" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />816 <field id="vort_spg_int" long_name="curl(vertical avg) vort trend: internalpressure gradient" unit="m/s^2" />817 <!-- <field id="vort_swf_avg" long_name="curl(vertical avg) vort trend: internal pressure gradient"unit="m/s^2" />818 <field id="vort_bfr_avg" long_name="curl(vertical avg) vort trend: internal pressure gradient" unit="m/s^2" /> -->800 <field id="vort_keg_avg" long_name="curl(vertical avg) vort trend: KE gradient or hor. adv." unit="m/s^2" /> 801 <field id="vort_rvo_avg" long_name="curl(vertical avg) vort trend: relative vorticity or metric term" unit="m/s^2" /> 802 <field id="vort_pvo_avg" long_name="curl(vertical avg) vort trend: planetary vorticity" unit="m/s^2" /> 803 <field id="vort_ldf_avg" long_name="curl(vertical avg) vort trend: lateral diffusion" unit="m/s^2" /> 804 <field id="vort_zad_avg" long_name="curl(vertical avg) vort trend: vertical advection" unit="m/s^2" /> 805 <field id="vort_zdf_avg" long_name="curl(vertical avg) vort trend: vertical diffusion" unit="m/s^2" /> 806 <field id="vort_spg_avg" long_name="curl(vertical avg) vort trend: surface pressure gradient" unit="m/s^2" /> 807 <field id="vort_swf_avg" long_name="curl(vertical avg) vort trend: wind stress" unit="m/s^2" /> 808 <field id="vort_bfr_avg" long_name="curl(vertical avg) vort trend: bottom friction (explicit)" unit="m/s^2" /> 809 <field id="vort_prg_int" long_name="curl(vertical int) vort trend: internal pressure gradient" unit="m/s^2" /> 810 <field id="vort_keg_int" long_name="curl(vertical int) vort trend: KE gradient or hor. adv." unit="m/s^2" /> 811 <field id="vort_rvo_int" long_name="curl(vertical int) vort trend: relative vorticity or metric term" unit="m/s^2" /> 812 <field id="vort_pvo_int" long_name="curl(vertical int) vort trend: planetary vorticity" unit="m/s^2" /> 813 <field id="vort_ldf_int" long_name="curl(vertical int) vort trend: lateral diffusion" unit="m/s^2" /> 814 <field id="vort_zad_int" long_name="curl(vertical int) vort trend: vertical advection" unit="m/s^2" /> 815 <field id="vort_zdf_int" long_name="curl(vertical int) vort trend: vertical diffusion" unit="m/s^2" /> 816 <field id="vort_spg_int" long_name="curl(vertical int) vort trend: surface pressure gradient" unit="m/s^2" /> 817 <field id="vort_swf_int" long_name="curl(vertical int) vort trend: wind stress" unit="m/s^2" /> 818 <field id="vort_bfr_int" long_name="curl(vertical int) vort trend: bottom friction (explicit)" unit="m/s^2" /> 819 819 </field_group> 820 820 -
NEMO/branches/UKMO/dev_r10037_vorticity_trends/src/OCE/TRD/trdvor.F90
r10810 r10813 43 43 INTEGER, SAVE, ALLOCATABLE, DIMENSION(:) :: ndexvor1 ! needed for IOIPSL output 44 44 INTEGER :: ndebug ! (0/1) set it to 1 in case of problem to have more print 45 45 INTEGER, SAVE :: n_hf_lastcalc ! last timestep for which r1_hf_n was calculated. 46 47 REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:) :: r1_hf_n ! reciprocal of water column height at F-points 46 48 REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:) :: vor_avr ! average 47 49 REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:) :: vor_avrb ! before vorticity (kt-1) … … 71 73 & vor_avrbn (jpi,jpj) , rotot (jpi,jpj) , vor_avrtot(jpi,jpj) , & 72 74 & vor_avrres(jpi,jpj) , vortrd (jpi,jpj,jpltot_vor,jpltype_vor) , & 73 & ndexvor1 (jpi*jpj) 75 & ndexvor1 (jpi*jpj) , r1_hf_n (jpi,jpj) , STAT= trd_vor_alloc ) 74 76 ! 75 77 IF( lk_mpp ) CALL mpp_sum ( trd_vor_alloc ) … … 89 91 INTEGER , INTENT(in ) :: kt ! time step 90 92 ! 91 INTEGER :: ji, jj ! dummy loop indices93 INTEGER :: ji, jj, jk ! dummy loop indices 92 94 REAL(wp), DIMENSION(jpi,jpj) :: ztswu, ztswv ! 2D workspace 93 95 !!---------------------------------------------------------------------- 96 97 IF( n_hf_lastcalc .lt. kt ) THEN 98 ! calculate reciprocal water column depth at F points if not already done this timestep. 99 r1_hf_n(:,:) = 0.0 100 DO jk = 1,jpk 101 r1_hf_n(:,:) = r1_hf_n(:,:) + e3f_n(:,:,jk) * fmask(:,:,jk) 102 END DO 103 r1_hf_n(:,:) = fmask(:,:,1) / ( r1_hf_n(:,:) + 1._wp - fmask(:,:,1) ) 104 n_hf_lastcalc = kt 105 ENDIF 94 106 95 107 SELECT CASE( ktrd ) … … 186 198 END SELECT 187 199 200 ! Curl(vertical integral)/H diagnostics: 201 ! Curl: 202 DO ji = 1, jpim1 203 DO jj = 1, jpjm1 204 vortrd(ji,jj,ktrd,jptype_vor_int) = ( zvdpvor(ji+1,jj) - zvdpvor(ji,jj) & 205 & - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) ) ) / ( e1f(ji,jj) * e2f(ji,jj) ) 206 END DO 207 END DO 208 ! Average of the Curl and Surface mask: 209 vortrd(:,:,ktrd,jptype_vor_int) = vortrd(:,:,ktrd,jptype_vor_int) * r1_hf_n(:,:) * fmask(:,:,1) 210 188 211 ! Average except for Beta.V 189 212 zudpvor(:,:) = zudpvor(:,:) * r1_hu_n(:,:) … … 266 289 END DO 267 290 ! Average of the Curl and Surface mask: 268 vortrd(:,:,ktrd,jptype_vor_int) = vortrd(:,:,ktrd,jptype_vor_int) * r1_h u_n(:,:) * fmask(:,:,1)291 vortrd(:,:,ktrd,jptype_vor_int) = vortrd(:,:,ktrd,jptype_vor_int) * r1_hf_n(:,:) * fmask(:,:,1) 269 292 ! 270 293 ! Curl(vertical mean) diagnostics: … … 424 447 IF( iom_use("vort_zdf_int") ) CALL iom_put("vort_zdf_int",vortrd(:,:,jpvor_zdf,jptype_vor_int)) 425 448 IF( iom_use("vort_spg_int") ) CALL iom_put("vort_spg_int",vortrd(:,:,jpvor_spg,jptype_vor_int)) 426 !!$IF( iom_use("vort_swf_int") ) CALL iom_put("vort_swf_int",vortrd(:,:,jpvor_prg,jptype_vor_int))427 !!$IF( iom_use("vort_bfr_int") ) CALL iom_put("vort_bfr_int",vortrd(:,:,jpvor_prg,jptype_vor_int))449 IF( iom_use("vort_swf_int") ) CALL iom_put("vort_swf_int",vortrd(:,:,jpvor_prg,jptype_vor_int)) 450 IF( iom_use("vort_bfr_int") ) CALL iom_put("vort_bfr_int",vortrd(:,:,jpvor_prg,jptype_vor_int)) 428 451 ! 429 452 ENDIF … … 465 488 IF( trd_vor_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'trd_vor_init : unable to allocate trdvor arrays' ) 466 489 490 n_hf_lastcalc = 0 467 491 vortrd(:,:,:,:) = 0.0 468 492
Note: See TracChangeset
for help on using the changeset viewer.