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

Create supporting packages for aerosol/cloud/total optical profiles required for CRTM generic interface #110

Open
3 tasks
chengdang opened this issue Feb 14, 2024 · 2 comments
Assignees
Labels
CRTM CRTM enhancement New feature or request

Comments

@chengdang
Copy link
Contributor

chengdang commented Feb 14, 2024

Per issue #107 #108, CRTM plans to enable user-defined optical profiles for CRTM calculations.
It is useful to provide supporting packages for computing optical profiles suitable for CRTM simulations.

For now, we only plan to create packages that adopt CRTM inputs and aerosol/cloud LUTs to generate:

  • Cloud OP
  • Aerosol OP
  • Total OP
@chengdang chengdang added enhancement New feature or request CRTM CRTM labels Feb 14, 2024
@chengdang chengdang self-assigned this Feb 14, 2024
@chengdang chengdang changed the title Creating supporting packages for creating aerosol/cloud/total optical profiles required for CRTM generic interface Creating supporting packages for aerosol/cloud/total optical profiles required for CRTM generic interface Feb 14, 2024
@chengdang chengdang changed the title Creating supporting packages for aerosol/cloud/total optical profiles required for CRTM generic interface Create supporting packages for aerosol/cloud/total optical profiles required for CRTM generic interface Feb 15, 2024
@chengdang
Copy link
Contributor Author

chengdang commented Apr 25, 2024

The first version of OP implementation has been uploaded to branch: Feature/cd generic itf

The supporting packages for aerosol/cloud/total optical profiles are still under testing. My initial hope was to create a python-based package completely independent from the CRTM source code, but it has proven to be very tricky, mostly due to the need of adding extra layers (function CRTM_Atmosphere_AddLayers) given input profiles and the standard climatological profiles. A fortran-based package built upon the existing CRTM functionality is more practical at this point.

@chengdang
Copy link
Contributor Author

The other option is to create a python-based package, with the extrapolation of pressure only. From the existing CRTM function, the cloud and aerosol related state variables are all set as zeros in the extrapolated layers:

    ! Slot the added layers into the output atmosphere structure
    ! Note: Cloud and Aerosol assignments not really needed (the
    !       zeroing is handled by the structure allocation) since
    !       at TOA, typically, there are not any clouds and/or
    !       aerosols.
    ! ...Profile
    Atm_Out%Level_Pressure(0:n) = iAtm%pl
    Atm_Out%Pressure(1:n)       = iAtm%p
    Atm_Out%Temperature(1:n)    = iAtm%t
    Atm_Out%Cloud_Fraction(1:n) = ZERO
    DO j = 1, Atm_Out%n_Absorbers
      Atm_Out%Absorber(1:n,j)   = iAtm%a(:,j)
    END DO
    ! ...Clouds
    IF ( Atm_In%n_Clouds > 0 ) THEN
      DO i = 1, Atm_In%n_Clouds
        Atm_Out%Cloud(i)%Effective_Radius(1:n)   = ZERO
        Atm_Out%Cloud(i)%Effective_Variance(1:n) = ZERO
        Atm_Out%Cloud(i)%Water_Content(1:n)      = ZERO
        Atm_Out%Cloud(i)%Water_Density(1:n)      = ZERO
      END DO
    END IF
    ! ...Aerosols
    IF ( Atm_In%n_Aerosols > 0 ) THEN
      DO i = 1, Atm_In%n_Aerosols
        Atm_Out%Aerosol(i)%Effective_Radius(1:n) = ZERO
        Atm_Out%Aerosol(i)%Concentration(1:n)    = ZERO
      END DO
    END IF

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

No branches or pull requests

1 participant