Skip to content

Commit

Permalink
Multiple PaHM fixes and improvements (#150)
Browse files Browse the repository at this point in the history
* updated the PaHM sourcesto their latest version as of 07/19/2022

* fixed bug in CPP projection subroutines so the argument of cos is in radians

* modified the cmake files for ParMETIS to allow the use of externally built ParMETIS libraries if requested

* added the NO_PARMETIS capability to the src/CMakeLists.txt src/Driver/CMakeLists.txt files

* typo fix in the FindParMETIS.cmake file

* Add a deleted cmake def (IMPOSE_NET_FLUX)

* fix read format issue in ReadCsvBestTrackFile subroutine when reading b-deck formatted track files

* fixed CMakeLists.txt

* deleted duplicated fortran statement in parwind.F90

* PAHM: fixed CSV read issue with columns 7 and 8 in the best track files

* temp commit

* another temp commit

* Added new code in PaHM to account for missing of last closed isobar radius (RRP).
The fields are usually missing in forecast track files and occassionaly in best track files.

* added '-mcmodel medium' compiler flag to overcome the 2GB memory limit (orion/hercules)

* removed the AVX flag for orion/hercules compilations

* added options in the cmake module files for orion/hercules to consider compilations w/wo Intel's AVX

* Modified the src/CMakeLists.txt in support of standalone and coupled compilations; added the BUILD_TOOLS option to also build the pschism* and the utilities executables in coupled configurations (e.g ufs-coastal)

* modified slightly the if(BLD_STANDALONE) ... else(BLD_STANDALONE)... conditional block

* reverted changes in cmake/*

* updated PaHM with the following fixes:
(1) added code to fill missing values in best track fields (POuter, ROCI, RMW) using linear interpolation method
(2) added code to estimate ROCI and RMW values (internally availably at this point) based on Dean et al. (2009) & Avenas et al. (2023)
(3) fixed some random IEEE floating point error bugs in parwinds.F90
(4) added code to to filter out duplicate lines in best track files (e.g., Hurricane Ian and maybe others)
(5) added code to check & adjust so that POuter is always greater than the central pressure by at least 1 mbar (during pre-processing)
(6) added code to the GaHM model so that it performs its calculations within an extended ROCI region and not the whole domain (speedup factor > 5)

Tested with hurricanes: Florence, Sandy, Gustav, Ike, Ian, Beryl'

* fixed minor typos caused compilation errors

* PaHM: updated the FillMissDataTrackFile_LinInterp subroutine to bail out when there are no available data to interpolate from for the specific field in the best track file - it happens

* PaHM: fixed typo Utilities->PaHM_Utilities in FillMissDataTrackFile_LinInterp subroutine

* fixed missing code snippet for calculating the distances from the storm's eye in the subroutine GetHollandFields

* PaHM: slightly extended the radius from the TC's eye where wind fields are calculated to allow for a more graceful reduction to zero of the wind speeds

* PaHM: corrected the code that filters out the duplicate lines in the best track files - depends only upon the date string and the intensity value: 35,50,64 kt

---------

Co-authored-by: Joseph Zhang <[email protected]>
  • Loading branch information
pvelissariou1 and josephzhang8 authored Oct 25, 2024
1 parent 661258b commit 2b1bfac
Show file tree
Hide file tree
Showing 7 changed files with 1,653 additions and 4,599 deletions.
11 changes: 8 additions & 3 deletions src/Core/PaHM/PaHM_Global.F90
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@ MODULE PaHM_Global
!################################################################
!### BEG :: VARIABLES RELATED TO THE CONTROL FILE
!################################################################
! It uses values(1:3) and values(5:7) from the DATE_AND_TIME subroutine
CHARACTER(LEN=DATETIMELEN) :: date_time_str = BLANK
CHARACTER(LEN=FNAMELEN) :: logFileName = 'pahm_model.log'

!-------------------- Input files
Expand Down Expand Up @@ -120,9 +122,12 @@ MODULE PaHM_Global
REAL(SZ), PARAMETER :: DEFV_WINDREDUCTION = 0.90_SZ
REAL(SZ) :: windReduction = DEFV_WINDREDUCTION ! BL reduction factor used in the Holland model

! Used when estinating the ROCI
INTEGER, PARAMETER :: DEFV_USEMAXR34 = 1
INTEGER :: useMaxR34 = DEFV_USEMAXR34
! Used when estinating the ROCI or RMW
! ROCI calculations use only the useMaxR34 value
! RMW calculations can use all three values
INTEGER :: useMaxR34 = 1
INTEGER :: useMaxR50 = 1
INTEGER :: useMaxR64 = 1

!====================
!=== This block is for the : time/date and time stepping variables
Expand Down
2 changes: 1 addition & 1 deletion src/Core/PaHM/PaHM_Messages.F90
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

MODULE PaHM_Messages

USE PaHM_Sizes, ONLY : FNAMELEN
USE PaHM_Sizes, ONLY : FNAMELEN, DATETIMELEN
USE PaHM_Global, ONLY : LUN_SCREEN, LUN_LOG, logFileName

#ifdef __INTEL_COMPILER
Expand Down
3 changes: 3 additions & 0 deletions src/Core/PaHM/PaHM_Sizes.F90
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,16 @@ MODULE PaHM_Sizes
! Also used to initialize some input variables to check if these variables
! were supplied user defined values.
REAL(SZ), PARAMETER :: RMISSV = -999999.0_SZ
REAL(SP), PARAMETER :: FMISSV = -999999.0_SP
INTEGER, PARAMETER :: IMISSV = -999999

CHARACTER(LEN=1), PARAMETER :: BLANK = ' '

! Filename length (considers the presence of the full path in the filename)
INTEGER, PARAMETER :: FNAMELEN = 1024

! For DATE_AND_TIME VALUES string
INTEGER, PARAMETER :: DATETIMELEN = 14

CONTAINS

Expand Down
Loading

0 comments on commit 2b1bfac

Please sign in to comment.