@@ -4,13 +4,13 @@ MODULE pycrtm
4
4
5
5
REAL (KIND= 8 ), ALLOCATABLE :: aerosolEffectiveRadius(:,:,:) ! (N_Profiles,N_layers, N_aerosols)
6
6
REAL (KIND= 8 ), ALLOCATABLE :: aerosolConcentration(:,:,:) ! (N_profiles,N_layers, N_aerosols)
7
- INTEGER , ALLOCATABLE :: aerosolType(:,:) ! (N_Profiles, N_aerosols)
7
+ INTEGER , ALLOCATABLE :: aerosolType(:,:) ! (N_Profiles, N_aerosols)
8
8
9
9
10
10
REAL (KIND= 8 ), ALLOCATABLE :: cloudEffectiveRadius(:,:,:) ! (N_Profiles,N_layers, N_clouds)
11
11
REAL (KIND= 8 ), ALLOCATABLE :: cloudConcentration(:,:,:) ! (N_profiles,N_layers, N_clouds)
12
12
REAL (KIND= 8 ), ALLOCATABLE :: cloudFraction(:,:) ! (N_profiles,N_layers)
13
- INTEGER , ALLOCATABLE :: cloudType(:,:) ! (N_Profiles, N_clouds)
13
+ INTEGER , ALLOCATABLE :: cloudType(:,:) ! (N_Profiles, N_clouds)
14
14
15
15
REAL (KIND= 8 ), ALLOCATABLE :: emissivityReflectivity(:,:,:) ! 2,N_profiles, nChan
16
16
@@ -41,24 +41,24 @@ SUBROUTINE wrap_forward( coefficientPath, sensor_id_in, IRwaterCoeff_File, MWwat
41
41
CHARACTER (len=* ), INTENT (IN ) :: sensor_id_in
42
42
CHARACTER (len=* ), INTENT (IN ) :: IRwaterCoeff_File
43
43
CHARACTER (len=* ), INTENT (IN ) :: MWwaterCoeff_File
44
- LOGICAL , INTENT (IN ) :: output_tb_flag, output_transmission_flag, output_emissivity_flag
45
- LOGICAL , INTENT (IN ) :: use_passed_emissivity
44
+ LOGICAL , INTENT (IN ) :: output_tb_flag, output_transmission_flag, output_emissivity_flag
45
+ LOGICAL , INTENT (IN ) :: use_passed_emissivity
46
46
! The scan angle is based
47
47
! on the default Re (earth radius) and h (satellite height)
48
- INTEGER , INTENT (IN ) :: nChan, N_Profiles, N_Layers, N_trace
48
+ INTEGER , INTENT (IN ) :: nChan, N_Profiles, N_Layers, N_trace
49
49
REAL (KIND= 8 ), INTENT (IN ) :: zenithAngle(n_profiles), scanAngle(n_profiles)
50
50
REAL (KIND= 8 ), INTENT (IN ) :: azimuthAngle(n_profiles), solarAngle(n_profiles,2 )
51
- INTEGER , INTENT (IN ) :: year(n_profiles), month(n_profiles), day(n_profiles)
51
+ INTEGER , INTENT (IN ) :: year(n_profiles), month(n_profiles), day(n_profiles)
52
52
REAL (KIND= 8 ), INTENT (IN ) :: pressureLevels(N_profiles, N_LAYERS+1 )
53
53
REAL (KIND= 8 ), INTENT (IN ) :: pressureLayers(N_profiles, N_LAYERS), temperatureLayers(N_Profiles,N_Layers)
54
54
REAL (KIND= 8 ), INTENT (IN ) :: traceConcLayers(N_Profiles,N_layers,N_trace)
55
- INTEGER , INTENT (IN ) :: trace_IDs(N_trace)
56
- INTEGER , INTENT (IN ) :: climatology(N_profiles)
55
+ INTEGER , INTENT (IN ) :: trace_IDs(N_trace)
56
+ INTEGER , INTENT (IN ) :: climatology(N_profiles)
57
57
REAL (KIND= 8 ), INTENT (IN ) :: surfaceTemperatures(N_Profiles,4 ), surfaceFractions(N_profiles, 4 )
58
58
REAL (KIND= 8 ), INTENT (IN ) :: LAI(N_Profiles), salinity(N_Profiles), windSpeed10m(N_Profiles), windDirection10m(N_Profiles)
59
- INTEGER , INTENT (IN ) :: landType(N_Profiles), soilType(N_Profiles), vegType(N_Profiles), waterType(N_Profiles)
60
- INTEGER , INTENT (IN ) :: snowType(N_Profiles), iceType(N_Profiles)
61
- INTEGER , INTENT (IN ) :: nthreads
59
+ INTEGER , INTENT (IN ) :: landType(N_Profiles), soilType(N_Profiles), vegType(N_Profiles), waterType(N_Profiles)
60
+ INTEGER , INTENT (IN ) :: snowType(N_Profiles), iceType(N_Profiles)
61
+ INTEGER , INTENT (IN ) :: nthreads
62
62
REAL (KIND= 8 ), INTENT (OUT ) :: outTb(N_Profiles,nChan)
63
63
CHARACTER (len= 256 ), DIMENSION (1 ) :: sensor_id
64
64
! --------------------------
@@ -346,22 +346,22 @@ SUBROUTINE wrap_k_matrix( coefficientPath, sensor_id_in, IRwaterCoeff_File, MWwa
346
346
! on the default Re (earth radius) and h (satellite height)
347
347
REAL (KIND= 8 ), INTENT (IN ) :: zenithAngle(N_profiles), scanAngle(N_profiles)
348
348
REAL (KIND= 8 ), INTENT (IN ) :: azimuthAngle(N_profiles), solarAngle(N_profiles,2 )
349
- INTEGER , INTENT (IN ) :: year(n_profiles), month(n_profiles), day(n_profiles)
349
+ INTEGER , INTENT (IN ) :: year(n_profiles), month(n_profiles), day(n_profiles)
350
350
REAL (KIND= 8 ), INTENT (IN ) :: pressureLevels(N_profiles, N_Layers+1 )
351
351
REAL (KIND= 8 ), INTENT (IN ) :: pressureLayers(N_profiles, N_layers), temperatureLayers(N_profiles, N_layers)
352
352
REAL (KIND= 8 ), INTENT (IN ) :: traceConcLayers(N_profiles, N_layers, N_trace)
353
- INTEGER , INTENT (IN ) :: trace_IDs(N_trace)
354
- INTEGER , INTENT (IN ) :: climatology(N_profiles)
353
+ INTEGER , INTENT (IN ) :: trace_IDs(N_trace)
354
+ INTEGER , INTENT (IN ) :: climatology(N_profiles)
355
355
REAL (KIND= 8 ), INTENT (IN ) :: surfaceTemperatures(N_profiles,4 ), surfaceFractions(N_profiles,4 ), LAI(N_profiles)
356
356
REAL (KIND= 8 ), INTENT (IN ) :: salinity(N_profiles), windSpeed10m(N_profiles), windDirection10m(N_profiles)
357
- INTEGER , INTENT (IN ) :: landType(N_profiles), soilType(N_profiles), vegType(N_profiles), waterType(N_profiles)
358
- INTEGER , INTENT (IN ) :: snowType(N_profiles), iceType(N_profiles)
357
+ INTEGER , INTENT (IN ) :: landType(N_profiles), soilType(N_profiles), vegType(N_profiles), waterType(N_profiles)
358
+ INTEGER , INTENT (IN ) :: snowType(N_profiles), iceType(N_profiles)
359
359
REAL (KIND= 8 ), INTENT (OUT ) :: outTb(N_profiles,nChan)
360
360
REAL (KIND= 8 ), INTENT (OUT ) :: skinK(N_profiles,nChan,4 ), emisK(N_profiles,nChan), reflK(N_profiles,nChan)
361
361
REAL (KIND= 8 ), INTENT (OUT ) :: windSpeedK(N_profiles,nChan), windDirectionK(N_profiles,nChan)
362
362
REAL (KIND= 8 ), INTENT (OUT ) :: temperatureJacobian(N_profiles, nChan, N_LAYERS)
363
363
REAL (KIND= 8 ), INTENT (OUT ) :: traceJacobian(N_profiles, nChan, N_LAYERS, N_trace)
364
- INTEGER , INTENT (IN ) :: nthreads
364
+ INTEGER , INTENT (IN ) :: nthreads
365
365
366
366
CHARACTER (len= 256 ) :: sensor_id(1 )
367
367
! ============================================================================
@@ -675,30 +675,6 @@ SUBROUTINE check_and_allocate_globals(output_transmission_flag, N_Profiles, nCha
675
675
END IF
676
676
end SUBROUTINE check_and_allocate_globals
677
677
678
- SUBROUTINE applyAvg ( Ref_LnPressure , User_LnPressure , Nref , Nuser , Xin , Xout )
679
- USE ODPS_CoordinateMapping
680
- INTEGER , INTENT (IN ) :: Nref, Nuser
681
- REAL (KIND= 8 ), INTENT (IN ) :: Ref_LnPressure(Nref)
682
- REAL (KIND= 8 ), INTENT (IN ) :: User_LnPressure(Nuser)
683
- REAL (KIND= 8 ), INTENT (IN ) :: Xin(Nuser)
684
- REAL (KIND= 8 ), INTENT (OUT ) :: Xout(Nref)
685
- ! locals
686
- INTEGER :: k, interp_index(2 ,Nref)
687
- REAL (KIND= 8 ) :: Acc_Weighting(Nuser,Nref)
688
-
689
- ! CALL LayerAvg( Ref_LnPressure , &
690
- ! User_LnPressure , &
691
- ! Acc_Weighting , &
692
- ! interp_index)
693
-
694
-
695
-
696
- DO k = 1 , Nref
697
- Xout(k) = SUM (Acc_Weighting(interp_index(1 ,k):interp_index(2 ,k), k) &
698
- * Xin(interp_index(1 ,k):interp_index(2 ,k)) )
699
- END DO
700
- END SUBROUTINE applyAvg
701
-
702
678
SUBROUTINE aerosols_and_clouds_on (N_aerosols_crtm , N_clouds_crtm , aerosolsOn , cloudsOn )
703
679
704
680
INTEGER , INTENT (OUT ) :: N_AEROSOLS_crtm, N_CLOUDS_crtm
0 commit comments