ADVERTISEMENT

'Francisco' nears typhoon strength; Signal No. 1 may be raised in Northern Luzon — PAGASA

Published Jun 21, 2026 11:39 am  |  Updated Jun 21, 2026 01:57 pm

At A Glance

  • Francisco will be classified as a typhoon once it reaches maximum sustained winds of 118 to 184 kph.
  • PAGASA said a landfall scenario remains less likely, but as the weather disturbance moves closer to Northern Luzon, its outer circulation may trigger the hoisting of Tropical Cyclone Wind Signal No. 1.
Satellite image of Severe Tropical Storm Francisco (international name: Mekkhala) (Courtesy of PAGASA)
Satellite image of Severe Tropical Storm Francisco (international name: Mekkhala) (Courtesy of PAGASA)
Severe Tropical Storm Francisco (international name: Mekkhala) has continued to intensify and is now nearing typhoon category as it moves over the Philippine Sea, the Philippine Atmospheric, Geophysical and Astronomical Services Administration (PAGASA) said on Sunday, June 21.
At 10 a.m., PAGASA said the center of Francisco was located 1,170 kilometers east of Southeastern Luzon, packing maximum sustained winds of 110 kilometers per hour (kph) near the center and gustiness of up to 135 kph while moving northwestward at 25 kph.
Francisco will be classified as a typhoon once it reaches maximum sustained winds of 118 to 184 kph.
PAGASA said it may reach typhoon category within the day, with peak intensity likely on Monday or Tuesday, June 22 to 23.
Forecast track
“Francisco will likely remain over the Philippine Sea throughout the forecast period. However, a closer approach to Extreme Northern Luzon is not ruled out should the forecast track continue to shift westward,” PAGASA said.
PAGASA said a landfall scenario remains less likely, but as the weather disturbance moves closer to Northern Luzon, its outer circulation may trigger the hoisting of Tropical Cyclone Wind Signal No. 1.
“Based on the latest forecast track, Wind Signal No. 1 may be hoisted in some localities in the northern and eastern portions of Cagayan, Babuyan Islands, and Batanes by tomorrow morning (June 22),” PAGASA said.
Enhanced ‘habagat’
PAGASA also warned that the enhanced southwest monsoon or “habagat” is expected to bring heavy rains over Northern Luzon and parts of western Luzon and Visayas starting Monday.
“A Weather Advisory may be issued today (June 21) in anticipation of the heavy rains over Northern Luzon and some areas in the western portions of Luzon and Visayas,” the agency said.
The southwest monsoon is also expected to bring strong to gale-force gusts across several areas in the coming days, including portions of Visayas, Mindanao, and Southern Luzon.
Seas may also become moderate to rough, with waves reaching up to 2.5 meters along the eastern seaboards of Catanduanes and Davao Oriental, and up to 2.0 meters in several northern and eastern coastal waters.
Mariners are advised to take precautionary measures or avoid sea travel if possible.

Related Tags

PAGASA TYPHOON FRANCISCO MEKKHALA HABAGAT SOUTHWEST MONSOON SIGNAL NO. 1
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ static_articles_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.