Removal of Content Advisory - April 2024

Advisory to Hurricane WRF (HWRF) users: As of the beginning of April 2024, all support assets for Hurricane WRF (HWRF) will be removed from the DTC website. Users should download all reference materials of interest prior to April 2024.

Hurricane WRF (HWRF) | FAQ's

HWRF Users Guide citation:

Biswas, M. K., L. Carson, K. Newman, D. Stark, E. Kalina, E. Grell, J. Frimel, 2018: Community HWRF Users’ Guide V4.0a, 162 pp.

HWRF Scientific Documentation:

Biswas M. K., S. Abarca, L. Bernardet, I. Ginis, E. Grell, M. Iacono, E. Kalina, B. Liu, Q. Liu, T. Marchok, A. Mehra, K. Newman, J. Sippel, V. Tallapragada, B. Thomas, W. Wang, H. Winterbottom, and Z. Zhang, 2018: Hurricane Weather Research and Forecasting (HWRF) Model: 2018 Scientific Documentation, Available at https://dtcenter.org/HurrWRF/users/docs/index.php 

Please refer to our data FAQ.

Yes. The GFS ensemble is used as input to GSI during data assimilation. When the GFS ensemble is available, GSI runs in ensemble-variational hybrid data assimilation mode and uses flow-dependent information to create the background error covariance matrix. Conversely, when the GFS ensemble is not available, GSI uses the previously generated static background error covariance.

Please refer to the HWRF v4.0 Users Guide (Appendix B: Example of Computational Resources and Notes for NCAR-Cheyenne) for recommended modules and resources to run on Cheyenne.

Background: In HWRF users can output accumulated temperature change due to the total diabatic heating in its microphysics scheme. The output variable is named “Train” with a long name “Accum stratiform temp tendency” defined in Registry.NMM. However, sometimes it may be desirable to output the accumulated or instantaneous temperature change due to an individual microphysics process. Therefore, the question is how to output the diabatic heating terms (temperature change) due to an individual microphysical process, for example, the ice melting?

 

Methods.

To output the instantaneous total or individual diabatic heating terms.

Define a new variable train_ins in Registry.NMM

state  real   train_ins ijk   dyn_nmm     1    -    rh023     "TRAIN_INS" "Instantaneous stratiform temp tendency"    "K s-1"
 
In dyn_nmm/solve_nmm.F, add the new variable “train_ins” to the call to the subroutine “GSMDRIVE”
 
        CALL GSMDRIVE(grid%ntsd,GRID%DT,GRID%NPHS,N_MOIST                   &
     &               ,grid%dx_nmm(ITS,JC),GRID%DY,grid%sm,grid%hbm2,grid%fis               &
     &               ,grid%deta1,grid%deta2,grid%aeta1,grid%aeta2,grid%eta1,grid%eta2                &
     &               ,grid%pdtop,grid%pt,grid%pd,grid%res,grid%pint,grid%t,grid%q,grid%cwm,grid%train               &
     &               ,grid%train_ins                                   &
     &               ,MOIST,SCALAR,NUM_SCALAR                          &
     &               ,grid%f_ice,grid%f_rain,grid%f_rimef,grid%sr                          &
     &               ,grid%prec,grid%acprec,grid%avrain                               &
     &               ,grid%mp_restart_state                                 &
     &               ,grid%tbpvs_state                                      &
     &               ,grid%tbpvs0_state                                     &
 
  1. Accordingly, you need to add the new variable to subroutine GSMDRIVE in the file dyn_nmm/module_PHYSICS_CALLS.F, and declare (not shown) the variable as an array

    And calculate train as, for example for total diabatic heating:

      SUBROUTINE GSMDRIVE(NTSD,DT,NPHS,N_MOIST                          &
     &                   ,DX,DY,SM,HBM2,FIS                             &
     &                   ,DETA1,DETA2,AETA1,AETA2,ETA1,ETA2             &
     &                   ,PDTOP,PT,PD,RES,PINT,T,Q,CWM,TRAIN,TRAIN_INS  &
     &                   ,MOIST,SCALAR,N_SCALAR                         &
     &                   ,F_ICE,F_RAIN,F_RIMEF,SR                       &
 
Also, declare TRAIN_INS under the subroutine
 
      REAL,DIMENSION(IMS:IME,JMS:JME,KMS:KME),INTENT(INOUT) :: CWM,Q    &
     &                                                        ,T,TRAIN  &
     &                                                      ,TRAIN_INS
 
Get the instantaneous tendency within this code block:
!-----------------------------------------------------------------------
!***  UPDATE TEMPERATURE, SPECIFIC HUMIDITY, CLOUD WATER, AND HEATING.
!-----------------------------------------------------------------------
!$omp parallel do                                                       &
!$omp& private(i,iendx,j,k,tnew)
      DO K=KTS,KTE
        DO J=MYJS2,MYJE2
          IENDX=MYIE1
          IF(E_BDY.AND.MOD(J,2)==0)IENDX=IENDX-1
          DO I=MYIS1,IENDX
            TNEW=TH_PHY(I,K,J)*PI_PHY(I,K,J)
            TRAIN(I,J,K)=TRAIN(I,J,K)+(TNEW-T(I,J,K))*RDTPHS
            TRAIN_INS(I,J,K)=(TNEW-T(I,J,K))*RDTPHS
            T(I,J,K)=TNEW
            Q(I,J,K)=MOIST_TRANS(I,K,J,P_QV)/(1.+MOIST_TRANS(I,K,J,P_QV))
            CWM(I,J,K)=CWM_PHY(I,K,J)
          ENDDO
        ENDDO
      ENDDO
!