Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Code updates to aircraft level calculation and downward RT calculation #157

Closed
chengdang opened this issue Aug 8, 2024 · 2 comments
Closed
Assignees
Labels
CRTM CRTM

Comments

@chengdang
Copy link
Contributor

The initial code updates are delivered by Mark and Yingtao, in branch: https://github.com/JCSDA/CRTMv3/tree/CloudRadar_AirCraft

This issue focuses only on the calculations regarding aircraft level sensors and the radiative transfer solver.

@chengdang chengdang self-assigned this Aug 8, 2024
@chengdang chengdang added the CRTM CRTM label Aug 8, 2024
@chengdang
Copy link
Contributor Author

All code updates are pushed to branch: https://github.com/JCSDA/CRTMv3/tree/feature/cd_AirCraft_STAR

These updates are merged manually into the current CRTM develop branch, with the following notes:

src/Options/CRTM_Options_Define.f90

  • Add new optional flag for downward ADA calculations: Obs_4_downward_P

src/RTSolution/RTV_Define.f90

  • A new optional data structure is added to RTV for the downward RT calculation: obs_4_downward_type
  • Multiple new internal variables are added, see code block: ... Aircraft level and downward AD calculation

src/RTSolution/Common_RTSolution.f90

  • Add assignment of the downwelling radiance if RTV%obs_4_downward%rt = TRUE

src/RTSolution/ADA/ADA_Module.f90

  • Add downward RT calculations of ADA solver in SUBROUTINE CRTM_ADA

src/CRTM_Forward_Module.f90

  • Add downward radiance calculation: IF ( Opt%Obs_4_downward_P > ZERO ) THEN

  • The following code block is moved to a new n_channel_threads loop:

       ! Process aircraft pressure altitude
        IF ( Opt%Aircraft_Pressure > ZERO ) THEN
           RTV(nt)%aircraft%rt = .TRUE.
           RTV(nt)%aircraft%idx = CRTM_Get_PressureLevelIdx(Atm, Opt%Aircraft_Pressure)
           ! ...Issue warning if profile level is TOO different from flight level
           IF ( ABS(Atm%Level_Pressure(RTV(nt)%aircraft%idx)-Opt%Aircraft_Pressure) > AIRCRAFT_PRESSURE_THRESHOLD ) THEN
              WRITE( Message,'("Difference between aircraft pressure level (",es22.15,&
                   &"hPa) and closest input profile level (",es22.15,&
                   &"hPa) is larger than recommended (",f4.1,"hPa) for profile #",i0)') &
                   Opt%Aircraft_Pressure, Atm%Level_Pressure(RTV(nt)%aircraft%idx), &
                   AIRCRAFT_PRESSURE_THRESHOLD, m
              CALL Display_Message( ROUTINE_NAME, Message, WARNING )
           END IF
        ELSE
           RTV(nt)%aircraft%rt = .FALSE.
        END IF

@chengdang
Copy link
Contributor Author

Note that all the updates in https://github.com/JCSDA/CRTMv3/tree/CloudRadar_AirCraft regarding radar sensor has not been made, therefore no changes to the subroutine CRTM_Compute_CloudScatter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CRTM CRTM
Projects
None yet
Development

No branches or pull requests

1 participant