@@ -32867,14 +32867,20 @@ subroutine find_all_maxmins (imax,jmax,ibeg,iend,jbeg,jend,fxy
3286732867c ------------------------------------------------------------------
3286832868c STEP 3: Now go through the grid again and, for all eligible
3286932869c points that are not already masked out (due to there being an
32870- c already-existing storm from the previous lead time), call a
32871- c routine to go out along 8 radials surrounding each point to
32872- c determine if there is a radial gradient of MSLP along each radial
32873- c that is at least as strong as that specified by the user. If
32874- c that check passes, then call a routine that checks for a closed
32875- c low-level (10m) wind circulation. If both the MSLP radial
32876- c gradient and low-level wind circulation checks pass, then you
32877- c can consider this as a candidate point.
32870+ c already-existing storm from the previous lead time), do one or
32871+ c both of these next two steps:
32872+ c
32873+ c (1) For both trkrtypes ("midlat" or "tcgen"), call a routine to
32874+ c go out along 8 radials surrounding each point to determine
32875+ c if there is a radial gradient of MSLP along each radial
32876+ c that is at least as strong as that specified by the user.
32877+ c
32878+ c (2) If that check passes *AND* if this is a "tcgen" run, then
32879+ c call a routine that checks for a closed low-level (10m) wind
32880+ c circulation. If both the MSLP radial gradient and low-level
32881+ c wind circulation checks pass, then you can consider this as a
32882+ c candidate point. If this is instead a "midlat" run, then we
32883+ c will skip the check for a low-level wind circulation.
3287832884c ------------------------------------------------------------------
3287932885
3288032886 candidate_ct = 0
@@ -32929,74 +32935,98 @@ subroutine find_all_maxmins (imax,jmax,ibeg,iend,jbeg,jend,fxy
3292932935
3293032936 if (icmrgret == 0) then
3293132937
32932- call date_and_time (big_ben(1),big_ben(2),big_ben(3)
32933- & ,date_time)
32934- write (6,31) date_time(5),date_time(6),date_time(7)
32935- 31 format (1x,'TIMING: b4 check_for_closed_wind_circ at '
32936- & ,i2.2,':',i2.2,':',i2.2)
32937-
32938- !------------------------------------------------------
32938+ !-------------------------------------------------------
3293932939 ! Call routine to check for low-level circulation here
32940- !------------------------------------------------------
32940+ ! since we have passed the mslp radial gradient test.
32941+ ! However, note from the IF statement below that we
32942+ ! will only do the low-level wind circulation test for
32943+ ! a tcgen case; For a midlat case, we skip the low-level
32944+ ! wind circulation test.
32945+ !-------------------------------------------------------
3294132946
32942- low_level_wind_circ_flag = 'n'
32943- call check_for_closed_wind_circulation (imax,jmax,ip,jp
32944- & ,dx,dy,valid_pt,trkrinfo,ifh
32945- & ,low_level_wind_circ_flag,gm_wrap_flag
32946- & ,vtquadmax,'genesis',iccwcret)
32947+ if (trkrinfo%type == 'tcgen') then
3294732948
32948- call date_and_time (big_ben(1),big_ben(2),big_ben(3)
32949- & ,date_time)
32950- write (6,33 ) date_time(5),date_time(6),date_time(7)
32951- 33 format (1x,'TIMING: after check_for_closed_wind_circ at'
32952- & ,' ' ,i2.2,':',i2.2,':',i2.2)
32949+ call date_and_time (big_ben(1),big_ben(2),big_ben(3)
32950+ & ,date_time)
32951+ write (6,31 ) date_time(5),date_time(6),date_time(7)
32952+ 31 format (1x,'TIMING: b4 check_for_closed_wind_circ at '
32953+ & ,i2.2,':',i2.2,':',i2.2)
3295332954
32954- if (iccwcret == 0) then
32955+ low_level_wind_circ_flag = 'n'
32956+ call check_for_closed_wind_circulation (imax,jmax,ip,jp
32957+ & ,dx,dy,valid_pt,trkrinfo,ifh
32958+ & ,low_level_wind_circ_flag,gm_wrap_flag
32959+ & ,vtquadmax,'genesis',iccwcret)
3295532960
32956- int_vtq_ne = nint(10.0 * vtquadmax(1) * 1.9427)
32957- int_vtq_se = nint(10.0 * vtquadmax(2) * 1.9427)
32958- int_vtq_sw = nint(10.0 * vtquadmax(3) * 1.9427)
32959- int_vtq_nw = nint(10.0 * vtquadmax(4) * 1.9427)
32961+ call date_and_time (big_ben(1),big_ben(2),big_ben(3)
32962+ & ,date_time)
32963+ write (6,33) date_time(5),date_time(6),date_time(7)
32964+ 33 format (1x,'TIMING: after check_for_closed_wind_circ at'
32965+ & ,' ',i2.2,':',i2.2,':',i2.2)
3296032966
32961- print *,' '
32967+ if (iccwcret == 0) then
3296232968
32963- write (6,234) ,atcfymdh,adjustr(atcfname)
32964- & ,ifhours(ifh)
32965- & ,int_vtq_ne,int_vtq_se,int_vtq_sw,int_vtq_nw
32969+ int_vtq_ne = nint(10.0 * vtquadmax(1) * 1.9427)
32970+ int_vtq_se = nint(10.0 * vtquadmax(2) * 1.9427)
32971+ int_vtq_sw = nint(10.0 * vtquadmax(3) * 1.9427)
32972+ int_vtq_nw = nint(10.0 * vtquadmax(4) * 1.9427)
32973+
32974+ print *,' '
3296632975
32967- 234 format (1x,'tcvq_genesis ',i10.10,', ',1x,a4,', ',1x
32976+ write (6,234) ,atcfymdh,adjustr(atcfname)
32977+ & ,ifhours(ifh)
32978+ & ,int_vtq_ne,int_vtq_se,int_vtq_sw,int_vtq_nw
32979+
32980+ 234 format (1x,'tcvq_genesis ',i10.10,', ',1x,a4,', ',1x
3296832981 & ,i3,4(', ',i7))
3296932982
32970- if (low_level_wind_circ_flag == 'y') then
32971- candidate_ct = candidate_ct + 1
32972- prstemp(candidate_ct) = slp_array(ip,jp)
32973- ipos(candidate_ct) = ip
32974- jpos(candidate_ct) = jp
32975- if (verb >= 3) then
32976- print *,' '
32977- print *,' +++ Successful check of both MSLP radial'
32978- & ,' gradient and LL wind circ, '
32979- & ,' ip= ',ip,' jp= ',jp
32980- print *,' '
32983+ if (low_level_wind_circ_flag == 'y') then
32984+ candidate_ct = candidate_ct + 1
32985+ prstemp(candidate_ct) = slp_array(ip,jp)
32986+ ipos(candidate_ct) = ip
32987+ jpos(candidate_ct) = jp
32988+ if (verb >= 3) then
32989+ print *,' '
32990+ print *,' +++ Successful check of both MSLP'
32991+ & ,' radial gradient and LL wind circ, '
32992+ & ,' ip= ',ip,' jp= ',jp
32993+ print *,' '
32994+ endif
32995+ else
32996+ if (verb >= 3) then
32997+ print *,' '
32998+ print *,' !!! MSLP radial gradient passed but'
32999+ & ,' LL wind circ check FAILED. '
33000+ & ,' ip= ',ip,' jp= ',jp
33001+ print *,' '
33002+ endif
33003+ cycle iloop_g
3298133004 endif
3298233005 else
3298333006 if (verb >= 3) then
3298433007 print *,' '
32985- print *,' !!! MSLP radial gradient passed but'
32986- & ,' LL wind circ check FAILED. '
32987- & ,' ip= ',ip,' jp= ',jp
33008+ print *,' !!! Failed check 2 of LL wind circ, '
33009+ & ,' ip= ',ip,' jp= ',jp
3298833010 print *,' '
3298933011 endif
3299033012 cycle iloop_g
3299133013 endif
33014+
3299233015 else
33016+
33017+ candidate_ct = candidate_ct + 1
33018+ prstemp(candidate_ct) = slp_array(ip,jp)
33019+ ipos(candidate_ct) = ip
33020+ jpos(candidate_ct) = jp
33021+
3299333022 if (verb >= 3) then
3299433023 print *,' '
32995- print *,' !!! Failed check 2 of LL wind circ, '
32996- & ,' ip= ',ip,' jp= ',jp
33024+ print *,' +++ Successful check of the MSLP radial'
33025+ & ,' gradient check for a midlat run,'
33026+ & ,' ip= ',ip,' jp= ',jp
3299733027 print *,' '
3299833028 endif
32999- cycle iloop_g
33029+
3300033030 endif
3300133031
3300233032 else
0 commit comments