diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2c3635fbe62de3869cf2c40b00756cd950e87b1e..3a617b0a7e6f3c3cd0ceb5e2b01c85af8eab2931 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,11 +3,21 @@ image: gitlab.ssec.wisc.edu:5555/cphillips/netcdf_hdf_docker build: stage: build script: - - build_ci.sh + - bash build_ci.sh |& tee build.log + artifacts: + paths: + - build.log + - clavrx_bin/clavrxorb + # run tests using the binary built before test: stage: test script: - - ./runmytests.sh + - yum install -y python3 python3-pip + - pip3 install pyyaml pytest + - bash test.sh |& tee test.log + artifacts: + paths: + - test.log diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 0000000000000000000000000000000000000000..c4981187daa23392265f276f5ff506f4af02b807 --- /dev/null +++ b/CHANGES.md @@ -0,0 +1,28 @@ +# Changelog +All notable changes to this project will be documented in this file + +## [Unreleased] + +## [v1.0.0] + +- UMD surface emission option fixed +- Shadow mask disabled +- Greatly increased processing speed +- Added support for GOES-18 +- Added RTTOV support for GOES-8 +- Set up continuous integration (CI) +- ECM2 bug fixes: stddev precision and bin fix +- Catch SIGINT / SIGTERM and clean-up tmpdirs before exiting +- Better repeatibility (initialize memory) +- Added ISCCP-NG L1g support +- GEO subsets are cropped to latitude and longitude +- Improved time (changes solar geometry and reflectance) +- Updated cloud type algorithm for "Mixed" type +- Changes to ACHA quality flag +- Clip ACHA beta between 1 and 2 +- Uncertainty in tau added to ACHA estimation +- Updated cloud phase / type post-ECM2 filtering +- Misc bug fixes +- Added support for FY3D + + diff --git a/README.md b/README.md index 8259c4079a5ec45d6598b0418dd4de5b0f9d7851..d8789e11305ad30ee839ddde9ae4ef617882b4fb 100644 --- a/README.md +++ b/README.md @@ -22,3 +22,11 @@ file_list_example: an example file list file needed by clavrxorb +## Testing + +Requres py.test + +`test.sh` simply runs `py.test` in the `test/` directory. + +Sample output from select tests are saved for each release at `/ships19/cloud/archive/clavrx_test_data/version_granules` + diff --git a/acha/acha_clavrx_bridge_module.f90 b/acha/acha_clavrx_bridge_module.f90 index aae8609aae9bd17c295360c435931c1e866ec67d..53b3ac694aa5e999f386ada1b5511d7f376a97b3 100644 --- a/acha/acha_clavrx_bridge_module.f90 +++ b/acha/acha_clavrx_bridge_module.f90 @@ -143,20 +143,20 @@ module ACHA_CLAVRX_BRIDGE !--- Call to Geometrical Shadow Algorithm !----------------------------------------------------------------------- - call CLOUD_SHADOW_RETR ( & - ACHA%Zc & - , Geo%Solaz & - , Geo%Solzen & - , Nav%Lat & - , Nav%Lon & - , Nav%Lat_Pc & - , Nav%Lon_Pc & - , CLDMASK%Shadow_Mask ) + !call CLOUD_SHADOW_RETR ( & + ! ACHA%Zc & + ! , Geo%Solaz & + ! , Geo%Solzen & + ! , Nav%Lat & + ! , Nav%Lon & + ! , Nav%Lat_Pc & + ! , Nav%Lon_Pc & + ! , CLDMASK%Shadow_Mask ) - !---- copy shadow result into cloud mask test bits - where (CLDMASK%Shadow_Mask == 1 .and. CLDMASK%Cld_Mask == 0 ) - CLDMASK%Cld_Test_Vector_Packed ( 2 , :, : ) = ibset (CLDMASK%Cld_Test_Vector_Packed ( 2 , :, : ) , 6 ) - end where + !!---- copy shadow result into cloud mask test bits + !where (CLDMASK%Shadow_Mask == 1 .and. CLDMASK%Cld_Mask == 0 ) + ! CLDMASK%Cld_Test_Vector_Packed ( 2 , :, : ) = ibset (CLDMASK%Cld_Test_Vector_Packed ( 2 , :, : ) , 6 ) + !end where !----------------------------------------------------------------------- !--- Null pointers after algorithm is finished diff --git a/acha/acha_module.f90 b/acha/acha_module.f90 index 48daa5740902ecfb2d4bbffbbeb4f1e17fa7494b..dbe146e8fe4731321915f185f9731b636ce3f425 100644 --- a/acha/acha_module.f90 +++ b/acha/acha_module.f90 @@ -139,7 +139,6 @@ module AWG_CLOUD_HEIGHT real, private, PARAMETER:: MISSING_VALUE_REAL4 = -999.0 integer(kind=int1), private, PARAMETER:: MISSING_VALUE_integer1 = -128_int1 - !integer(kind=int1), private, PARAMETER:: MISSING_VALUE_integer1 = -128 integer(kind=int4), private, PARAMETER:: MISSING_VALUE_integer4 = -999 type(ACHA_SYMBOL_STRUCT), private :: Symbol @@ -200,29 +199,6 @@ module AWG_CLOUD_HEIGHT -5.2, -5.4, -5.4, -5.5, -5.6, -6.8, -7.8, & -4.6, -4.9, -4.9, -5.0, -5.1, -6.2, -7.1/), (/nts,ntcs/)) -!----- old 5/2016 -! real, private, dimension(nts,ntcs), parameter:: ocean_lapse_rate_table = reshape ((/ & -! -7.3, -7.2, -7.3, -7.4, -7.4, -6.8, -6.2, & -! -7.4, -7.3, -7.3, -7.4, -7.4, -7.0, -6.3, & -! -7.5, -7.3, -7.3, -7.5, -7.6, -7.1, -6.5, & -! -7.2, -7.1, -7.3, -7.5, -7.6, -7.2, -6.6, & -! -6.9, -6.8, -7.1, -7.4, -7.5, -7.3, -7.0, & -! -6.6, -6.6, -6.8, -7.0, -7.3, -7.4, -7.4, & -! -6.7, -6.4, -6.4, -6.6, -7.0, -7.3, -7.6, & -! -6.2, -5.8, -5.6, -5.8, -6.3, -6.8, -7.3, & -! -5.8, -5.3, -5.0, -5.2, -5.9, -6.3, -6.8/), (/nts,ntcs/)) -! -! real, private, dimension(nts,ntcs), parameter:: land_lapse_rate_table = reshape ((/ & -! -5.2, -5.8, -6.2, -6.2, -6.4, -7.0, -7.7, & -! -5.3, -5.8, -6.2, -6.3, -6.4, -7.1, -7.7, & -! -5.2, -5.7, -6.0, -6.1, -6.4, -7.1, -7.7, & -! -5.0, -5.4, -5.8, -5.9, -6.2, -6.9, -7.7, & -! -5.0, -5.2, -5.5, -5.5, -5.8, -6.8, -7.8, & -! -4.9, -5.0, -5.2, -4.9, -5.2, -6.2, -7.6, & -! -4.7, -4.7, -4.8, -4.5, -4.8, -6.0, -7.5, & -! -3.9, -4.0, -4.2, -3.9, -3.9, -5.3, -7.3, & -! -3.3, -3.4, -3.7, -3.6, -3.5, -5.0, -7.3/), (/nts,ntcs/)) - contains !------------------------------------------------------------------------------ @@ -526,6 +502,7 @@ module AWG_CLOUD_HEIGHT !--- allocate array for cirrus temperature allocate(Fail_Flag(Input%Number_of_Elements,Input%Number_of_Lines)) + Fail_Flag(:,:) = Symbol%YES allocate(Converged_Flag(Input%Number_of_Elements,Input%Number_of_Lines)) allocate(Temperature_Cirrus(Input%Number_of_Elements,Input%Number_of_Lines)) @@ -1010,9 +987,6 @@ module AWG_CLOUD_HEIGHT cycle endif -! if (Pass_Idx == Pass_Idx_Max) then -! Diag%Array_1(Elem_Idx,Line_Idx) = Tc_Ap -! endif !------------------------------------------------------------------------ ! modify Tc_Ap and Tc_Uncer for LRC, CIRRUS and SOUNDER options !------------------------------------------------------------------------ @@ -1021,13 +995,6 @@ module AWG_CLOUD_HEIGHT Elem_Idx,Line_Idx,Dump_Diag, Lun_Iter_Dump,Temperature_Cirrus, & Tc_Ap,Tc_Ap_Uncer) -! if (Pass_Idx == Pass_Idx_Max) then -! Diag%Array_2(Elem_Idx,Line_Idx) = Temperature_Cirrus(Elem_Idx,Line_Idx) -! if (ilrc > 0 .and. jlrc > 0) then -! Diag%Array_3(Elem_Idx,Line_Idx) = Output%Tc(ilrc,jlrc) -! endif -! endif - !------------------------------------------------------------------------ ! lower cloud (surface) a prior values !------------------------------------------------------------------------ @@ -1203,10 +1170,8 @@ if (FULL_RETRIEVAL) then else - !--- x_Ap_Simple = x_Ap(1:3) Sa_Simple = Sa(1:3,1:3) - !Sa_Inv_Simple = Sa_Inv(1:3,1:3) !???? Singular_Flag = INVERT_MATRIX(Sa_Simple, Sa_Inv_Simple, Num_Param_Simple) if (Singular_Flag == 1) print *, "Cloud Height warning ==> Singular Sa Simple in ACHA", Sa(1,1),Sa(2,2),Sa(3,3) @@ -1292,9 +1257,6 @@ if (FULL_RETRIEVAL) then call SAVE_X_2_OUTPUT(Elem_Idx,Line_Idx,Symbol,Cloud_Type,Fail_Flag(Elem_Idx,Line_Idx), & x,x_ap,Sa,Sx,AKM,Meta_Data_Flags,Output) - !--- null profile pointers each time - call NULL_PIX_POINTERS(Input, ACHA_RTM_NWP) - !--- set output packed quality flags call SET_OUTPUT_PACKED_QF(Output,Elem_Idx,Line_Idx) @@ -1420,8 +1382,6 @@ subroutine COMPUTE_APRIORI_BASED_ON_TYPE( & !--- calipso values (not multiplier on uncer values) call COMPUTE_CIRRUS_APRIORI(Ttropo, Latitude, Tc_Ap_Cirrus, Tc_Ap_Uncer_Cirrus) - !Tc_Ap_Uncer_Cirrus = Tc_Ap_Uncer_Cirrus_Default - !--- initialize with the opaque cloud temperature Tc_Ap_Opaque = T110um @@ -1611,10 +1571,6 @@ subroutine COMPUTE_APRIORI_BASED_ON_PHASE_ETROPO( & Tc_Ap_Uncer = Emiss_Weight2*Tc_Ap_Uncer_Opaque + & (1.0-Emiss_Weight2)*Tc_Ap_Uncer_Cirrus - ! ignore weighting - !Tc_Ap = Tc_Ap_Cirrus - !Tc_Ap_Uncer = Tc_Ap_Uncer_Cirrus - !---- for very thick clouds, we want to ignore the LRC to !--- to maintain spatial structure like overshooting columns if (Emiss_110um_Tropo > 0.95 .and. Tc_Opaque /= MISSING_VALUE_REAL4) then @@ -2316,71 +2272,45 @@ subroutine NULL_PIX_POINTERS(Input, ACHA_RTM_NWP) ACHA_RTM_NWP%Z_Prof => NULL() - if (Input%Chan_On_038um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_038um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_038um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_038um => NULL() - endif - if (Input%Chan_On_062um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_062um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_062um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_062um => NULL() - endif - if (Input%Chan_On_067um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_067um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_067um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_067um => NULL() - endif - if (Input%Chan_On_073um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_073um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_073um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_073um => NULL() - endif - if (Input%Chan_On_085um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_085um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_085um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_085um => NULL() - endif - if (Input%Chan_On_097um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_097um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_097um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_097um => NULL() - endif - if (Input%Chan_On_104um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_104um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_104um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_104um => NULL() - endif - if (Input%Chan_On_110um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_110um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_110um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_110um => NULL() - endif - if (Input%Chan_On_120um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_120um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_120um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_120um => NULL() - endif - if (Input%Chan_On_133um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_133um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_133um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_133um => NULL() - endif - if (Input%Chan_On_136um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_136um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_136um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_136um => NULL() - endif - if (Input%Chan_On_139um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_139um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_139um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_139um => NULL() - endif - if (Input%Chan_On_142um == Symbol%YES) then ACHA_RTM_NWP%Atm_Rad_Prof_142um => NULL() ACHA_RTM_NWP%Atm_Trans_Prof_142um => NULL() ACHA_RTM_NWP%Black_Body_Rad_Prof_142um => NULL() - endif end subroutine NULL_PIX_POINTERS !==================================================================== @@ -2388,7 +2318,7 @@ end subroutine NULL_PIX_POINTERS !==================================================================== subroutine SET_ACHA_VERSION(Acha_Version) character(len=*):: Acha_Version - Acha_Version = "$Id: acha_module.f90 4105 2021-03-12 13:56:43Z heidinger $" + Acha_Version = "v1.0" end subroutine SET_ACHA_VERSION !==================================================================== ! @@ -2448,31 +2378,6 @@ subroutine COMPUTE_TEMPERATURE_CIRRUS(Cld_Type, & allocate(Mask1(Num_Elements,Num_Lines)) allocate(Mask2(Num_Elements,Num_Lines)) -! !---- make source mask -! Mask1 = 0_int1 -! where( (Cld_Type == Symbol%CIRRUS_TYPE .or. & -! Cld_Type == Symbol%OPAQUE_ICE_TYPE .or. & -! Cld_Type == Symbol%OVERSHOOTING_TYPE .or. & -! Cld_Type == Symbol%OVERLAP_TYPE .or. & -! Temperature_Cloud < 250.0) .and. & -! Temperature_Cloud /= Missing .and. & -! Cld_Type /= MISSING_VALUE_integer1 .and. & -! Emissivity_Cloud >= Emissivity_Thresh) -! Mask1 = 1_int1 -! end where - -! !---- make target mask -! Mask2 = 0_int1 -! where( (Cld_Type == Symbol%CIRRUS_TYPE .or. & -! Cld_Type == Symbol%OVERLAP_TYPE .or. & -! Temperature_Cloud < 250.0) .and. & -! Temperature_Cloud /= Missing .and. & -! Cld_Type /= MISSING_VALUE_integer1 .and. & -! Emissivity_Cloud < Emissivity_Thresh) -! Mask2 = 1_int1 -! end where - - !--- andy change 10/2020 !---- make source mask Mask1 = 0_int1 where( (Cld_Type == Symbol%CIRRUS_TYPE .or. & @@ -2481,14 +2386,16 @@ subroutine COMPUTE_TEMPERATURE_CIRRUS(Cld_Type, & Cld_Type == Symbol%OVERLAP_TYPE) .and. & Temperature_Cloud < 250.0 .and. & Temperature_Cloud /= Missing .and. & + Lat /= Missing .and. Lon /= Missing .and. & Emissivity_Cloud >= Emissivity_Thresh) Mask1 = 1_int1 end where !---- make target mask Mask2 = 0_int1 - where( Cld_Type == Symbol%CIRRUS_TYPE .or. & - Cld_Type == Symbol%OVERLAP_TYPE) + where((Cld_Type == Symbol%CIRRUS_TYPE .or. & + Cld_Type == Symbol%OVERLAP_TYPE) .and. & + Lat /= Missing .and. Lon /= Missing) Mask2 = 1_int1 end where @@ -2588,6 +2495,7 @@ subroutine COMPUTE_TEMPERATURE_CIRRUS_LRC(Cld_Type, & Jlrc > 0 .and. & Temperature_Cloud < 250.0 .and. & Temperature_Cloud /= Missing .and. & + Lat /= Missing .and. Lon /= Missing .and. & (Emissivity_Cloud >= 0.8 .or. & Ec_LRC >= Emissivity_Thresh)) Mask1 = 1_int1 @@ -2595,8 +2503,9 @@ subroutine COMPUTE_TEMPERATURE_CIRRUS_LRC(Cld_Type, & !---- make target mask Mask2 = 0_int1 - where( Cld_Type == Symbol%CIRRUS_TYPE .or. & - Cld_Type == Symbol%OVERLAP_TYPE) + where((Cld_Type == Symbol%CIRRUS_TYPE .or. & + Cld_Type == Symbol%OVERLAP_TYPE) .and. & + Lat /= Missing .and. Lon /= Missing) Mask2 = 1_int1 end where @@ -2663,13 +2572,11 @@ subroutine COMPUTE_LOWER_CLOUD_TEMPERATURE(Cld_Type, & !---- make output mask allocate(Mask2(Num_Elements,Num_Lines)) Mask2 = 0_int1 -! where(Cld_Type == Symbol%OVERLAP_TYPE) -! Mask2 = 1_int1 -! end where - where(Cld_Type == Symbol%CIRRUS_TYPE .or. & + where((Cld_Type == Symbol%CIRRUS_TYPE .or. & Cld_Type == Symbol%OPAQUE_ICE_TYPE .or. & - Cld_Type == Symbol%OVERLAP_TYPE) + Cld_Type == Symbol%OVERLAP_TYPE) .and. & + Lat /= Missing .and. Lon /= Missing) Mask2 = 1_int1 end where @@ -2689,6 +2596,7 @@ subroutine COMPUTE_LOWER_CLOUD_TEMPERATURE(Cld_Type, & Mask1 = 0_int1 where( (Cld_Type == Symbol%FOG_TYPE .or. & Cld_Type == Symbol%WATER_TYPE) .and. & + Lat /= Missing .and. Lon /= Missing .and. & Cloud_Temperature /= Missing) Mask1 = 1_int1 end where @@ -3339,7 +3247,6 @@ subroutine QUALITY_CONTROL_OUTPUT(Tc, Pc, Zc, Ec, Beta, Surface_Elevation, Surfa if (Zc /= MISSING_VALUE_REAL4) then Zc_Floor_Temp = ZC_FLOOR if (Surface_Elevation >= 0.0) then -! if (Surface_Elevation /= MISSING_VALUE_REAL4) then Zc_Floor_Temp = Surface_Elevation + Zc_Roundoff_Offset endif if (Zc < Zc_Floor_Temp .or. Zc > ZC_CEILING) then @@ -3887,7 +3794,6 @@ subroutine MODIFY_TC_AP(Input,Output,Symbol,Pass_Idx,Pass_Idx_Max,USE_LRC_FLAG,i (Output%Ec(ilrc,jlrc) <= 1.0)) then !-- use lrc value but weight uncertainty Tc_Ap = Output%Tc(ilrc,jlrc) - !Tc_Ap_Uncer = 5.0 + (1.0-Output%Ec(ilrc,jlrc))*Tc_Ap_Uncer endif endif diff --git a/acha/acha_num_mod.f90 b/acha/acha_num_mod.f90 index b5d05ba35be2699007db879a183a79a586f87197..557cd254398b71bd33802fb864140f20a383773e 100644 --- a/acha/acha_num_mod.f90 +++ b/acha/acha_num_mod.f90 @@ -921,6 +921,8 @@ subroutine KD_TREE_INTERP_2pred(Mask_In,Mask_Out,pred_var1,pred_var2,Num_Element ! perform tree search for each query index do i = 1,n_query + !!! fix because index sometimes gets = 0 or above limit Denis B. 2022-05-18 !!! + !if (ind_query(i) .le. 0 .or. ind_query(i) .gt. 2750000) cycle query_vec(1) = predictor_1(ind_query(i)) query_vec(2) = predictor_2(ind_query(i)) diff --git a/acha/acha_rtm_mod.f90 b/acha/acha_rtm_mod.f90 index 4ae0963d7aaaa996f991bce70684a0081179c4d9..2137440562bda116d740fe903c1dd3e4cd9f265a 100644 --- a/acha/acha_rtm_mod.f90 +++ b/acha/acha_rtm_mod.f90 @@ -1368,19 +1368,19 @@ subroutine COMPUTE_CLEAR_SKY_TERMS(Acha_Mode_Flag, Zc, Zs, Ts, Hght_Prof, & integer, intent(in):: Chan_Idx_038um, Chan_Idx_062um, Chan_Idx_067um, Chan_Idx_073um, & Chan_Idx_085um, Chan_Idx_097um, Chan_Idx_104um, Chan_Idx_110um, Chan_Idx_120um, & Chan_Idx_133um, Chan_Idx_136um, Chan_Idx_139um, Chan_Idx_142um - real, intent(in), dimension(:):: Atm_Rad_Prof_038um, Atm_Trans_Prof_038um - real, intent(in), dimension(:):: Atm_Rad_Prof_062um, Atm_Trans_Prof_062um - real, intent(in), dimension(:):: Atm_Rad_Prof_067um, Atm_Trans_Prof_067um - real, intent(in), dimension(:):: Atm_Rad_Prof_073um, Atm_Trans_Prof_073um - real, intent(in), dimension(:):: Atm_Rad_Prof_085um, Atm_Trans_Prof_085um - real, intent(in), dimension(:):: Atm_Rad_Prof_097um, Atm_Trans_Prof_097um - real, intent(in), dimension(:):: Atm_Rad_Prof_104um, Atm_Trans_Prof_104um - real, intent(in), dimension(:):: Atm_Rad_Prof_110um, Atm_Trans_Prof_110um - real, intent(in), dimension(:):: Atm_Rad_Prof_120um, Atm_Trans_Prof_120um - real, intent(in), dimension(:):: Atm_Rad_Prof_133um, Atm_Trans_Prof_133um - real, intent(in), dimension(:):: Atm_Rad_Prof_136um, Atm_Trans_Prof_136um - real, intent(in), dimension(:):: Atm_Rad_Prof_139um, Atm_Trans_Prof_139um - real, intent(in), dimension(:):: Atm_Rad_Prof_142um, Atm_Trans_Prof_142um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_038um, Atm_Trans_Prof_038um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_062um, Atm_Trans_Prof_062um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_067um, Atm_Trans_Prof_067um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_073um, Atm_Trans_Prof_073um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_085um, Atm_Trans_Prof_085um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_097um, Atm_Trans_Prof_097um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_104um, Atm_Trans_Prof_104um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_110um, Atm_Trans_Prof_110um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_120um, Atm_Trans_Prof_120um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_133um, Atm_Trans_Prof_133um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_136um, Atm_Trans_Prof_136um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_139um, Atm_Trans_Prof_139um + real, intent(in), pointer, dimension(:):: Atm_Rad_Prof_142um, Atm_Trans_Prof_142um real, intent(in):: Emiss_Sfc_038um, Emiss_Sfc_062um, Emiss_Sfc_067um, & Emiss_Sfc_073um, Emiss_Sfc_085um, Emiss_Sfc_097um, Emiss_Sfc_104um, & Emiss_Sfc_110um, Emiss_Sfc_120um, Emiss_Sfc_133um, & diff --git a/acha/acha_shadow_module.f90 b/acha/acha_shadow_module.f90 index 3189d53ca8c0be9cc41c05c73142468fe82202a7..2866afa2f13b834ad7213e38200e278a7c7bd575 100644 --- a/acha/acha_shadow_module.f90 +++ b/acha/acha_shadow_module.f90 @@ -98,8 +98,6 @@ subroutine CLOUD_SHADOW_RETR ( & Delta_Lon = -1.0 * sin(Solar_Azi(i,j) * DTOR ) * Distance_km(i,j) * Lon_Spacing_Per_m(i,j) Delta_Lat = -1.0 * cos(Solar_Azi(i,j) * DTOR ) * Distance_km(i,j) * Lat_Spacing_Per_m - ! Cloud_Shadow = 0 - ! print*,'delta_lon,delta_lat: ',delta_lon,delta_lat, Distance_km(i,j), cloud_height(i,j) call SHADOW_IND ( Lat_Pc(i,j) + Delta_Lat, Lon_Pc(i,j) + Delta_Lon, Lat, Lon, i, j, Cloud_Shadow) end do @@ -162,19 +160,8 @@ subroutine CLOUD_SHADOW_RETR ( & diff_Lat = Lat1 - Lat(i,j) diff_Lon = lon1 - Lon(i,j) - ! print*, delta_Lat_ii - ! print*, delta_lon_ii - ! print*, delta_Lat_jj - ! print*, delta_lon_jj - - - ! print*, Lat(i,j) , Lat(i-1,j) -!print*, Lon(i,j) , Lon(i-1,j) -!print*, Lat(i,j) , Lat(i,j-1) -!print*, Lon(i,j) , Lon(i,j-1) if ( Lat(i,j) .eq. Lat(i-1,j) .and. Lat(i,j) .eq. Lat(i,j-1) ) return if ( Lon(i,j) .eq. Lon(i-1,j) .and. Lon(i,j) .eq. Lon(i,j-1) ) return - ! print*,lat(i-1:i+1,j-1:j+1) ! use of these equations: ! diff_Lon = ii * delta_lon_ii + jj * delta_lon_jj @@ -191,16 +178,6 @@ subroutine CLOUD_SHADOW_RETR ( & long_idx = maxval (ABS([ii,jj])) short_idx = minval (ABS([ii,jj])) - !print* , ABS([ii,jj]) - - ! print*,'SHORT IDX: ',short_idx,(short_idx .lt. 1) - ! print*,'LONG IDX: ',long_idx , (long_idx .LT. 1) - - - ! print*, diff_Lat,diff_lon, delta_lon_jj,delta_lon_ii, delta_Lat_jj,delta_Lat_ii - ! print *,'ii jj: ',ii,jj - - if ((long_idx .LT. 0) .or. (short_idx .lt. 0)) then print*,'REACHED' if ( .not. already_bad_message) then diff --git a/acha/include/acha_parameters.inc b/acha/include/acha_parameters.inc index 1db9ed8c842337158319afd1cd48e2c345856ff0..0697f632da7d590558a13180539b52a1691da67c 100644 --- a/acha/include/acha_parameters.inc +++ b/acha/include/acha_parameters.inc @@ -53,19 +53,6 @@ logical, private, parameter :: CONSTRAIN_ICE_PROB= .false. !whether or not to allow acha to modify ice_prob_ap logical, private, parameter :: BINARY_ICE_PROB= .false. !whether to use 0/1 ice_prob_ap - !---- GOES-R BASELINE-ish - !logical, private, parameter:: FULL_RETRIEVAL = .false. - !logical, private, parameter:: USE_LINEAR_IN_OPD_EMISSION = .false. - !integer(kind=int4), parameter, private:: MULTI_LAYER_LOGIC_Flag = 0 - !logical, private, parameter :: USE_CIRRUS_FLAG = .false. - !logical, private, parameter :: USE_LAPSE_RATE_FLAG = .true. - !logical, private, parameter :: USE_LOWER_INTERP_FLAG = .true. - !logical, private, parameter :: USE_LRC_FLAG = .true. - !integer, parameter, private:: Cloud_Type_Forced = -1 ! -1 = not used, 0-10 use this type - !logical, private, parameter :: USE_SOUNDER_VALUES = .false. - !integer, private, parameter :: USE_TYPE_FLAG = 0 - !real, private, parameter:: ICE_EXTINCTION_TUNING_FACTOR = 1.0 - !------------------------------------------------------------ ! ACHA parameters !------------------------------------------------------------ @@ -169,8 +156,6 @@ real(kind=real4), parameter, private:: Tc_Ap_Uncer_Cirrus_Default = 30.0 !! real(kind=real4), parameter, private:: Tau_Ap_Overlap_Type = 0.9 !2.0 !apriori estimate of tau for multilayer cloud type !--- specify calibration errors -!--> real(kind=real4), parameter, private:: T110um_120um_Cal_Uncer = 1.0 !BASELINE V5 -!--> real(kind=real4), parameter, private:: T110um_133um_Cal_Uncer = 2.0 !BASELINE V5 real(kind=real4), parameter, private:: T110um_Cal_Uncer = 1.0 real(kind=real4), parameter, private:: T110um_038um_Cal_Uncer = 1.0 real(kind=real4), parameter, private:: T110um_062um_Cal_Uncer = 1.0 @@ -204,18 +189,6 @@ real(kind=real4), parameter, private:: Tc_Ap_Uncer_Cirrus_Default = 30.0 !! !---- computed in 10 deg lat bands. First bin is -90 to -80 integer, parameter, private:: num_lat_cirrus_ap = 18 -!--- old -!real(kind=real4), dimension(num_lat_cirrus_ap), private, parameter:: & -! TC_CIRRUS_MEAN_LAT_VECTOR = (/ & -! 17.1184, 16.8644, 14.4241, 15.7231, 14.6659, 17.5565, & -! 27.6142, 17.9770, 13.5127, 16.2466, 22.4699, 24.6992, & -! 18.7324, 18.3266, 15.2087, 14.8122, 18.0353, 19.9059/) -!real(kind=real4), dimension(num_lat_cirrus_ap), private, parameter:: & -! TC_CIRRUS_STDDEV_LAT_VECTOR = (/ & -! 9.58205, 10.7957, 9.96308, 9.75967, 9.11487, 11.3290, & -! 18.0040, 16.2742, 14.0061, 15.0945, 13.7971, 14.6018, & -! 15.5322, 14.5822, 11.3727, 9.90263, 11.5416, 11.9146/) - !--- akh 10/2020 real(kind=real4), dimension(num_lat_cirrus_ap), private, parameter:: & TC_CIRRUS_MEAN_LAT_VECTOR = (/ & diff --git a/build/Makefile.local b/build/Makefile.local index 6bda5cce79019e10fe2f3867df3fee4ec92e7d16..d7309db8eee31c2068423633063b93b2d0353af4 100644 --- a/build/Makefile.local +++ b/build/Makefile.local @@ -6,7 +6,7 @@ # Include all required macros on the following lines: -ifeq ($(ARCH),$(filter $(ARCH), gfortran gfortran-strict gfortran-debug gfortran-debug-andy)) +ifeq ($(ARCH),$(filter $(ARCH), gfortran gfortran-strict gfortran-debug gfortran-debug-andy gfortran10)) export CX_DATA_IO=/fjord/jgs/patmosx/Ancil_Data/clavrx_ancil_data/libs/cx_sds_io/Release_gfortran/ export DNCOMP=/fjord/jgs/patmosx/Ancil_Data/clavrx_ancil_data/libs/cx_dncomp/Release_gfortran/ export HDF4_PATH = ${SSEC_HDF4_LIB}/../ diff --git a/build/arch/gfortran b/build/arch/gfortran index 6045654ec13f3fab40bd0f33d0e2bdb98a1401f6..b6fcd8a6e6923439318b57f9325bee0c67e0f9af 100644 --- a/build/arch/gfortran +++ b/build/arch/gfortran @@ -1,8 +1,19 @@ fc=gfortran FC77=gfortran -fflags = -O2 -ffast-math -funroll-loops -fno-range-check -ffree-line-length-200 -fflags_pfast = -O2 -ffast-math -funroll-loops -ffixed-form -fno-automatic +fflags = -O2 -ffast-math -funroll-loops -fno-range-check -ffree-line-length-200 +fflags_pfast = -O2 -ffast-math -funroll-loops -ffixed-form -fno-automatic +GF_VERSION := $(shell gfortran -dumpversion) +GF_VERSION_MAJ = $(firstword $(subst ., ,$(GF_VERSION))) +VERSION := 9 + +ifeq ($(shell test $(GF_VERSION_MAJ) -gt $(VERSION); echo $$?),0) +fflags += -fallow-argument-mismatch -fallow-invalid-boz +fflags_pfast += -fallow-invalid-boz +endif + + + fflags_sasrab_f77 = -O2 -ffast-math -funroll-loops -ffixed-form -fno-automatic fflags_sasrab_f90 = -O2 -ffast-math -funroll-loops -fno-automatic ldflags = -O2 diff --git a/build/arch/gfortran10 b/build/arch/gfortran10 new file mode 100644 index 0000000000000000000000000000000000000000..9ede8738bb9efa283ed7fe3f9ddf9e103933effa --- /dev/null +++ b/build/arch/gfortran10 @@ -0,0 +1,37 @@ +fc=gfortran +FC77=gfortran + +fflags = -O2 -ffast-math -funroll-loops -fno-range-check -ffree-line-length-200 -fallow-argument-mismatch -fallow-invalid-boz +fflags_pfast = -O2 -ffast-math -funroll-loops -ffixed-form -fno-automatic -fallow-invalid-boz +fflags_sasrab_f77 = -O2 -ffast-math -funroll-loops -ffixed-form -fno-automatic +fflags_sasrab_f90 = -O2 -ffast-math -funroll-loops -fno-automatic +ldflags = -O2 +cpp = -cpp +cppflags = +beconv = -fconvert=big-endian +hdflibs = -L$(HDF4_PATH)/lib/ -I$(HDF4_PATH)/include/ -lmfhdf -ldf -ljpeg -lz +hdfincs = -I$(HDF4_PATH)/include/ +netcdflibs = -L${NETCDF_PATH}/lib/ -I${NETCDF_PATH}/include/ -lnetcdf -lnetcdff +hdf5libs = -I$(HDF5_PATH)/include/ -L$(HDF5_PATH)/lib/ +hdf5links = -lhdf5_fortran -lhdf5 -lz + +HOST=$(shell hostname) +ifeq ($(HOST),orchid-submit.ssec.wisc.edu) +hdflibs += -lsz -ltirpc +endif + +ifeq ($(HOST),incus.ssec.wisc.edu) +hdflibs += -lsz -ltirpc +endif + +ifeq ($(HOST),vor.ssec.wisc.edu) +hdflibs += -lsz -ltirpc +endif + +ifeq ($(HOST),tiki.ssec.wisc.edu) +hdflibs += -lsz -ltirpc +endif + +ifeq ($(HOST),solar2.ssec.wisc.edu) +hdflibs += -lsz -ltirpc +endif diff --git a/build_ci.sh b/build_ci.sh new file mode 100755 index 0000000000000000000000000000000000000000..0d01abb92db523650734af76b13e48a6cec83591 --- /dev/null +++ b/build_ci.sh @@ -0,0 +1,23 @@ +#!/bin/bash +export PATH=/usr/local/gcc-8.3.0/bin/:$PATH +export LD_LIBRARY_PATH=/usr/local/gcc-8.3.0/lib64/ +export SSEC_HDF4_LIB=/root/hdf4/lib/ +export SSEC_HDF5_LIB=/root/hdf5/lib/ +export SSEC_NETCDF4_DIR=/root/netcdf +export SSEC_NETCDF4_LIB=/root/netcdf/lib +export SSEC_NETCDF4_INC=/root/netcdf/include +#export LIBHIM_PATH=/host/out/himawari +#export RTTOV_PATH=/root/rttov/ +export FC=gfortran +export FFLAGS=-g +export fflags=-g + +export ARCH=gfortran +#./configure -LIBHIM_GCC=$LIBHIM_PATH --rttov_path=/host/out/rttov +./configure +cd main_src +export FFLAGS=-g +export fflags=-g +make all_plus +#bash /host/relink.sh +#cp /root/clavrx_trunk/clavrx_bin/clavrxorb /host/out/ diff --git a/clavrx_options_example b/clavrx_options_example index 108e8b0fca17a20bdab3fc5e734fc8bf889446d9..c651f10c5889fc865dedbf5ea5af70b63bb7e2dc 100644 --- a/clavrx_options_example +++ b/clavrx_options_example @@ -22,7 +22,7 @@ default !E1 ALG ACHA (off, default or select combinations like 110_120_133) 1 !E2 OUT output compression flag (0=no,1=gzip) 2 !E2 MASK read auxilary cloud mask 1b (0 = don't read, 1 = read from 1b and use, 2 = read and save as aux, 3 = read modawg/mvcm, but compute ecm2 type/phase) default -1 !E3 SFC seebor emiss option (0=UMD, 1=RTTOV 2=SEEBOR (3=CRTM not yet installed)) +1 !E3 SFC seebor emiss option (0=UMD, 1=RTTOV 2=SEEBOR) 1 !E3 SFC sea emiss flag (0=no, 1=yes) 0 !E3 SFC read hires sfc type flag (0=no-8km, 1 = yes-1km) 1 !E3 SFC read land mask flag (0=no, 1=yes) (goge2_0ll.hdf) diff --git a/cloud_base/cloud_base_module.f90 b/cloud_base/cloud_base_module.f90 index b7f9ad3e2b189d475fb8b12bef4207308a16f369..37356a389e9bf51db181605ee54ee9c0a7ef0836 100644 --- a/cloud_base/cloud_base_module.f90 +++ b/cloud_base/cloud_base_module.f90 @@ -1,511 +1,512 @@ -! $Id: cloud_base_module.f90 4062 2021-01-12 04:02:19Z yli $ -module CLOUD_BASE -!--------------------------------------------------------------------- -! This module houses the routines associated with... -! -! Author: -! -! Reference: -! -!---------------------------------------------------------------------- - use CLOUD_BASE_SERVICES - - implicit none - - public:: CLOUD_BASE_ALGORITHM - - private:: INTERPOLATE_PROFILE_LOCAL - private:: NULL_PIX_POINTERS - private:: KNOWING_Z_COMPUTE_T_P - - !--- include the non-system specific variables - include 'cloud_base_parameters.inc' - - !--- interpoLated profiles - real, private, dimension(Num_Levels_RTM_Prof) :: Temp_Prof_RTM - real, private, dimension(Num_Levels_RTM_Prof) :: Press_Prof_RTM - real, private, dimension(Num_Levels_RTM_Prof) :: Hght_Prof_RTM - integer, private:: Sfc_Level_RTM - integer, private:: Tropo_Level_RTM - - real, private, PARAMETER:: MISSING_VALUE_REAL = -999.0 - integer, private, PARAMETER:: MISSING_VALUE_INTEGER = -999 - - contains - -!------------------------------------------------------------------------------ -! Cloud BaseE Height Algorithm -! -! Author: Andrew Heidinger, NOAA -! -! Assumptions -! -! Limitations -! -! NOTE. This algorithm use the same input and output structures as -! the AWG_CLOUD_HEIGHT_ALGORITHM. -! Do not overwrite elements of the Output structure expect those -! generated here. -! -! Output%Tau -! Output%Ec -! Output%Reff -! Output%Zc_Base -! Output%Pc_Base -!ynoh (cira/csu) for ccl mode 3 -! Output%Pc_Lower_Base -! -!---------------------------------------------------------------------- -! modification history -! -!------------------------------------------------------------------------------ - subroutine CLOUD_BASE_ALGORITHM(Input, Symbol, Output, Diag) - - !=============================================================================== - ! Argument Declaration - !============================================================================== - - type(symbol_acha), intent(inout) :: Symbol - type(acha_input_struct), intent(inout) :: Input - type(acha_output_struct), intent(inout) :: Output - type(acha_diag_struct), intent(inout), optional :: Diag - integer, save:: Diag_Warning_Flag = 0 - - - !=============================================================================== - ! Pixel level RTM structure - !=============================================================================== - - type(acha_rtm_nwp_struct) :: RTM_NWP - - !=============================================================================== - ! Local Variable Declaration - !=============================================================================== - - integer:: Elem_Idx - integer:: Line_Idx - real:: Inwp_Weight - real:: Jnwp_Weight - - integer:: Cloud_Type - - !--- scalar local variables - real (kind=real4):: Cloud_Extinction - real (kind=real4):: Cloud_Geometrical_Thickness - real (kind=real4):: Cloud_Geometrical_Thickness_Top_Offset - real (kind=real4):: Cloud_Geometrical_Thickness_eff - real (kind=real4):: Zc_Top_Max - real (kind=real4):: Zc_Base_Min - real (kind=real4):: R4_Dummy - - integer (kind=int4):: Itemp - integer (kind=int4):: Ilev - -!----------------------------------------------------------------------- -! BEGIN EXECUTABLE CODE -!----------------------------------------------------------------------- - - !------------------------------------------------------------------------- - ! Initialization - !------------------------------------------------------------------------- - Output%Zc_Base = MISSING_VALUE_REAL - Output%Pc_Base = MISSING_VALUE_REAL - -!ynoh (cira/csu) for ccl mode 3 - Output%Pc_Lower_Base = MISSING_VALUE_REAL - - !--- initialize diagnostic output - if (present(Diag) .and. Diag_Warning_Flag == 0) then - print *, "CLAVR-x / Cloud Base ===> Diagnostic Output Turned On" - Diag_Warning_Flag = 1 - endif - if (present(Diag)) Diag%Array_1 = Missing_Value_Real4 - if (present(Diag)) Diag%Array_2 = Missing_Value_Real4 - if (present(Diag)) Diag%Array_3 = Missing_Value_Real4 - - !-------------------------------------------------------------------------- - ! loop over pixels in scanlines - !-------------------------------------------------------------------------- - Line_loop: do Line_Idx = Line_Idx_min,Input%Number_of_Lines + Line_Idx_min - 1 - - Element_Loop: do Elem_Idx = 1, Input%Number_of_Elements - - if (Input%Invalid_Data_Mask(Elem_Idx,Line_Idx) == symbol%YES) cycle - if ((Input%Elem_Idx_Nwp(Elem_Idx,Line_Idx) <= 0) .or. & - (Input%Line_Idx_Nwp(Elem_Idx,Line_Idx) <= 0)) then - cycle - endif - - !---- null profile pointers each time - WCS3 - call NULL_PIX_POINTERS(Input, RTM_NWP) - - !--- for convenience, save nwp indices to local variables - Inwp_Weight = Input%Longitude_Interp_Weight_NWP(Elem_Idx,Line_Idx) - Jnwp_Weight = Input%Latitude_Interp_Weight_NWP(Elem_Idx,Line_Idx) - Cloud_Type = Input%Cloud_Type(Elem_Idx,Line_Idx) - - !----------------------------------------------------------------------- - ! include code to setup local profiles correctly - !----------------------------------------------------------------------- - - !Call Services module - call FETCH_PIXEL_RTM_NWP(Input, Symbol, & - Elem_Idx,Line_Idx, RTM_NWP) - - Sfc_Level_RTM = RTM_NWP%Sfc_Level - Tropo_Level_RTM = RTM_NWP%Tropo_Level - - Press_Prof_RTM = RTM_NWP%P_Prof - - !do smoothing routines here - WCS3 - if (RTM_NWP%Smooth_Nwp_Fields_Flag_Temp == symbol%YES) then - - !--- height profile - Hght_Prof_RTM = INTERPOLATE_PROFILE_LOCAL( RTM_NWP%Z_Prof, & - RTM_NWP%Z_Prof_1, & - RTM_NWP%Z_Prof_2, & - RTM_NWP%Z_Prof_3, & - Inwp_Weight,Jnwp_Weight) - - !--- temperature profile - Temp_Prof_RTM = INTERPOLATE_PROFILE_LOCAL( RTM_NWP%T_Prof, & - RTM_NWP%T_Prof_1, & - RTM_NWP%T_Prof_2, & - RTM_NWP%T_Prof_3, & - Inwp_Weight,Jnwp_Weight) - - - else - - Hght_Prof_RTM = RTM_NWP%Z_Prof - Temp_Prof_RTM = RTM_NWP%T_Prof - - endif - - !----------------------------------------------------------------------------- - !--- Cloud Base and Top - !--- - !--- Note 1. Extinction values are in km^(-1) - !--- Note 2. All heights and thickness are converted to meters - !----------------------------------------------------------------------------- - if (Input%Zc(Elem_Idx,Line_Idx) /= MISSING_VALUE_REAL .and. & - Input%Tau(Elem_Idx,Line_Idx) /= MISSING_VALUE_REAL) then - - Cloud_Extinction = WATER_EXTINCTION - - if (Cloud_Type == symbol%OPAQUE_ICE_TYPE .or. & - Cloud_Type == symbol%OVERSHOOTING_TYPE) then - Itemp = int(Input%Tc(Elem_Idx,Line_Idx)) - select case (Itemp) - case (:199) ; Cloud_Extinction = ICE_EXTINCTION1 - case (200:219) ; Cloud_Extinction = ICE_EXTINCTION2 - case (220:239) ; Cloud_Extinction = ICE_EXTINCTION3 - case (240:259) ; Cloud_Extinction = ICE_EXTINCTION4 - case (260:) ; Cloud_Extinction = ICE_EXTINCTION5 - end select - endif - - if (Cloud_Type == symbol%CIRRUS_TYPE .or. & - Cloud_Type == symbol%OVERLAP_TYPE) then - Itemp = int(Input%Tc(Elem_Idx,Line_Idx)) - select case (Itemp) - case (:199) ; Cloud_Extinction = CIRRUS_EXTINCTION1 - case (200:219) ; Cloud_Extinction = CIRRUS_EXTINCTION2 - case (220:239) ; Cloud_Extinction = CIRRUS_EXTINCTION3 - case (240:259) ; Cloud_Extinction = CIRRUS_EXTINCTION4 - case (260:) ; Cloud_Extinction = CIRRUS_EXTINCTION5 - end select - endif - - Cloud_Geometrical_Thickness = Input%Tau(Elem_Idx,Line_Idx) / Cloud_Extinction !(km) - Cloud_Geometrical_Thickness = Cloud_Geometrical_Thickness * 1000.0 !(m) - - Output%Geo_Thickness(Elem_Idx,Line_Idx) = Cloud_Geometrical_Thickness - - if (Input%Tau(Elem_Idx,Line_Idx) < 2.0) then - Cloud_Geometrical_Thickness_Top_Offset = Cloud_Geometrical_Thickness/2.0 !(m) - else - Cloud_Geometrical_Thickness_Top_Offset = 1000.0 / Cloud_Extinction !(m) - endif - - Zc_Top_Max = Hght_Prof_RTM(Tropo_Level_RTM) - Zc_Base_Min = Hght_Prof_RTM(Sfc_Level_RTM) - -!------------- -! Compute cloud base -! Updated CldBaseQF (by ynoh, cira/csu, 24 July 2018) -! CldBaseQF = 0 (Valid CBH from the statistical method by CIRA) -! 1 (Invalid due to invalid upstream input or clear) -! 2 (Out of range, CBH lower than terrain) -! 3 (Out of range, CBH < 0 km or CBH > 20 km ) -! 4 (Invalid CBH > CTH) -! 5 (Valid CBH from the extinction method) -! 6 (Valid CBH from CWP_NWP for deep convection) -! Start with Qf = 1 (Invalid due to invalid upstream input or clear) - - Output%Zc_Base_Qf(Elem_Idx,Line_Idx) = 1 - -! if (Cloud_Type == symbol%CIRRUS_TYPE .and. Input%Tau(Elem_Idx,Line_Idx) < 1.0) then -! - Output%Zc_Base(Elem_Idx,Line_Idx) = min(Input%Zc(Elem_Idx,Line_Idx), & - max(Zc_Base_Min, & - Input%Zc(Elem_Idx,Line_Idx) - Cloud_Geometrical_Thickness)) - Output%Zc_Base_Qf(Elem_Idx,Line_Idx) = 5 - if (Input%Zc(Elem_Idx,Line_Idx) - Cloud_Geometrical_Thickness < Zc_Base_Min) Output%Zc_Base_Qf(Elem_Idx,Line_Idx) = 2 - if (Input%Zc(Elem_Idx,Line_Idx) - Cloud_Geometrical_Thickness >= Input%Zc(Elem_Idx,Line_Idx)) then - Output%Zc_Base_Qf(Elem_Idx,Line_Idx) = 4 - Output%Zc_Base(Elem_Idx,Line_Idx) = MISSING_VALUE_REAL - endif -! else - -!------------- - if (Input%Tau(Elem_Idx,Line_Idx) > 1.0 .and. (Input%CWP(Elem_Idx,Line_Idx) > 0 .or. Input%CWP_nwp(Elem_Idx,Line_Idx) > 0)) then - call CIRA_base_hgt(Input%Zc(Elem_Idx,Line_Idx),Input%CWP(Elem_Idx,Line_Idx), Input%CWP_NWP(Elem_Idx,Line_Idx) ,& - Input%LCL(Elem_Idx,Line_Idx),Input%CCL(Elem_Idx,Line_Idx),Input%Surface_Elevation(Elem_Idx,Line_Idx), & - Cloud_Geometrical_Thickness_eff,Output%Zc_Base(Elem_Idx,Line_Idx),Output%Zc_Base_Qf(Elem_Idx,Line_Idx)) - endif -!------------- - -! endif - - ! compute Pc_Base from Zc_Base - call KNOWING_Z_COMPUTE_T_P(Output%Pc_Base(Elem_Idx,Line_Idx),Output%Tc_Base(Elem_Idx,Line_Idx),Output%Zc_Base(Elem_Idx,Line_Idx),Ilev) - -!ynoh (cira/csu) for ccl mode 3 - call KNOWING_Z_COMPUTE_T_P(Output%Pc_Lower_Base(Elem_Idx,Line_Idx),R4_Dummy, & - max(Input%Surface_Elevation(Elem_Idx,Line_Idx),min(Output%Zc_Base(Elem_Idx,Line_Idx),(Input%LCL(Elem_Idx,Line_Idx)+Input%CCL(Elem_Idx,Line_Idx))*0.5)),Ilev) - -!( - - endif - - - !---- null profile pointers each time - REALLY? - CALL NULL_PIX_POINTERS(Input, RTM_NWP) - - end do Element_Loop - -end do Line_Loop - -!Diag%Array_1 = Output%Pc_Base -!Diag%Array_2 = Output%Zc_Base - -end subroutine CLOUD_BASE_ALGORITHM - -!---------------------------------------------------------------------------- -! Function INTERPOLATE_PROFILE_LOCAL -! -! general interpoLation routine for profiles -! -! input: -! lonx - longitude weighting factor -! Latx = Latitude weighting factor -! z1 = data(ilon, iLat) -! z2 = data(ilonx,iLat) -! z3 = data(ilon,iLatx) -! z4 = data(ilonx,iLatx) -! -! output: -! z = interpoLated profile -! -! -!--------------------------------------------------------------------------- - function INTERPOLATE_PROFILE_LOCAL(z1,z2,z3,z4,lonx,Latx) result(z) - - real, dimension(:), intent(in):: z1 - real, dimension(:), intent(in):: z2 - real, dimension(:), intent(in):: z3 - real, dimension(:), intent(in):: z4 - real, intent(in):: lonx - real, intent(in):: Latx - real, dimension(size(z1)):: z - - !--- linear inteprpoLation scheme - z = (1.0-lonx) * ((1.0-Latx) * z1 + (Latx)* z3) + & - (lonx) * ((1.0-Latx) * z2 + (Latx)* z4) - - end function INTERPOLATE_PROFILE_LOCAL - - -!------------------------------------------------------------------------------ -! Null Pixel Level Pointers -!------------------------------------------------------------------------------ -subroutine NULL_PIX_POINTERS(Input, RTM_NWP) - - type(acha_input_struct), intent(inout) :: Input - type(acha_rtm_nwp_struct), intent(inout) :: RTM_NWP - - RTM_NWP%T_Prof => null() - RTM_NWP%T_Prof_1 => null() - RTM_NWP%T_Prof_2 => null() - RTM_NWP%T_Prof_3 => null() - - RTM_NWP%Z_Prof => null() - RTM_NWP%Z_Prof_1 => null() - RTM_NWP%Z_Prof_2 => null() - RTM_NWP%Z_Prof_3 => null() - - if (Input%Chan_On_67um == sym%YES) then - RTM_NWP%Atm_Rad_Prof_67um => null() - RTM_NWP%Atm_Trans_Prof_67um => null() - RTM_NWP%Black_Body_Rad_Prof_67um => null() - endif - if (Input%Chan_On_85um == sym%YES) then - RTM_NWP%Atm_Rad_Prof_85um => null() - RTM_NWP%Atm_Trans_Prof_85um => null() - endif - if (Input%Chan_On_11um == sym%YES) then - RTM_NWP%Atm_Rad_Prof_11um => null() - RTM_NWP%Atm_Trans_Prof_11um => null() - RTM_NWP%Black_Body_Rad_Prof_11um => null() - endif - if (Input%Chan_On_12um == sym%YES) then - RTM_NWP%Atm_Rad_Prof_12um => null() - RTM_NWP%Atm_Trans_Prof_12um => null() - endif - if (Input%Chan_On_133um == sym%YES) then - RTM_NWP%Atm_Rad_Prof_133um => null() - RTM_NWP%Atm_Trans_Prof_133um => null() - endif - -end subroutine NULL_PIX_POINTERS - -!----------------------------------------------------------------- -! InterpoLate within profiles knowing Z to determine T and P -!----------------------------------------------------------------- - subroutine KNOWING_Z_COMPUTE_T_P(P,T,Z,Ilev) - - real, intent(in):: Z - real, intent(out):: T - real, intent(out):: P - integer, intent(out):: Ilev - real:: dp - real:: dt - real:: dz - - !--- interpoLate pressure profile - call LOCATE(Hght_Prof_RTM,Num_Levels_RTM_Prof,Z,Ilev) - Ilev = max(1,min(Num_Levels_RTM_Prof-1,Ilev)) - - dp = Press_Prof_RTM(Ilev+1) - Press_Prof_RTM(Ilev) - dt = Temp_Prof_RTM(Ilev+1) - Temp_Prof_RTM(Ilev) - dz = Hght_Prof_RTM(Ilev+1) - Hght_Prof_RTM(Ilev) - - !--- perform interpoLation - if (dz /= 0.0) then - T = Temp_Prof_RTM(Ilev) + dt/dz * (Z - Hght_Prof_RTM(Ilev)) - P = Press_Prof_RTM(Ilev) + dp/dz * (Z - Hght_Prof_RTM(Ilev)) - else - T = Temp_Prof_RTM(Ilev) - P = Press_Prof_RTM(Ilev) - endif - - end subroutine KNOWING_Z_COMPUTE_T_P - -!----------------------------------------------------------------- -! CIRA's base code, interpret from IDL codes -!----------------------------------------------------------------- -!ynoh (cira/csu) -subroutine CIRA_base_hgt(Zc,Cwp,Cwp_nwp,LCL,CCL,Surf_Elev,Cloud_Geometrical_Thickness,Zc_base,cbh_qf) - - real(kind=real4), intent(in) :: Zc,Cwp,Cwp_nwp,LCL,CCL,Surf_Elev - - real(kind=real4), intent(out) :: Cloud_Geometrical_Thickness,Zc_base - integer(kind=int1),intent(out) :: cbh_qf - -! local variables - real(kind=real4) :: Zc_local, Cwp_local,Cwp_nwp_local - integer :: ibin - integer :: ibin_max - integer :: icwp - real :: zdelta - real :: slope - real :: yint - integer, parameter :: nbin = 9, npara = 6, ncwp = 2 - real,dimension(nbin,npara,ncwp) :: regr_coeff - real,parameter :: mincbh = 0.0, maxcbh = 20.0*1000 - -! min cth ;slope y-int r2 n median CWP - regr_coeff(1,:,1) = [0.00000, 2.25812, 0.405590, 0.0236532, 5921., 0.0710000] - regr_coeff(1,:,2) = [0.00000, 0.997031, 0.516989, 0.0900793, 5881., 0.0710000] - regr_coeff(2,:,1) = [2.00000, 6.10980, 0.664818, 0.0664282, 3624., 0.114000] - regr_coeff(2,:,2) = [2.00000, 0.913021, 1.35698, 0.0735795, 3621., 0.114000] - regr_coeff(3,:,1) = [4.00000, 11.5574, 1.22527, 0.0519277, 2340., 0.110000] - regr_coeff(3,:,2) = [4.00000, 1.37922, 2.58661, 0.0695758, 2329., 0.110000] - regr_coeff(4,:,1) = [6.00000, 14.5382, 1.70570, 0.0568334, 2535., 0.123000] - regr_coeff(4,:,2) = [6.00000, 1.68711, 3.62280, 0.0501604, 2511., 0.123000] - regr_coeff(5,:,1) = [8.00000, 9.09855, 2.14247, 0.0218789, 3588., 0.131000] - regr_coeff(5,:,2) = [8.00000, 2.45953, 3.86957, 0.0727178, 3579., 0.131000] - regr_coeff(6,:,1) = [10.0000, 13.5772, 1.86554, 0.0497041, 4249., 0.127000] - regr_coeff(6,:,2) = [10.0000, 4.83087, 3.53141, 0.160008, 4218., 0.127000] - regr_coeff(7,:,1) = [12.0000, 16.0793, 1.64965, 0.0695903, 3154., 0.115000] - regr_coeff(7,:,2) = [12.0000, 5.05173, 3.98610, 0.180965, 3121., 0.115000] - regr_coeff(8,:,1) = [14.0000, 14.6030, 2.00010, 0.0429476, 2744., 0.116000] - regr_coeff(8,:,2) = [14.0000, 6.06439, 4.03301, 0.239837, 2717., 0.116000] - regr_coeff(9,:,1) = [16.0000, 9.26580, 2.29640, 0.0113376, 1455., 0.0990000] - regr_coeff(9,:,2) = [16.0000, 6.60431, 3.26442, 0.227116, 1449., 0.0990000] - -! start retrieval - Zc_local = Zc/1000. - CWP_local = CWP/1000. - Cwp_nwp_local = Cwp_nwp/1000. - -! force large cwp to cap at 1.2 kg/m2 - if (Zc_local > 20.0) Zc_local = 20.0 - if (CWP_local > 1.2) CWP_local = 1.2 - if (Cwp_nwp_local > 1.2) Cwp_nwp_local = 1.2 - if (Cwp_local < 0 .and. Cwp_nwp_local > 0) Cwp_local = Cwp_nwp_local - - zdelta = 2.0 - ibin = floor(Zc_local)/floor(zdelta)+1 - ibin_max = 9 - - if (Zc_local > 18.0 .or. ibin > ibin_max) ibin = ibin_max - - icwp = 1 - if (CWP_local > regr_coeff(ibin,6,1)) icwp = 2 - - slope = regr_coeff(ibin,2,icwp) - yint = regr_coeff(ibin,3,icwp) - Cloud_Geometrical_Thickness = slope*CWP_local+yint - Cloud_Geometrical_Thickness = Cloud_Geometrical_Thickness*1000. - - Zc_Base = Zc_local*1000-Cloud_Geometrical_Thickness - - cbh_qf = 0 -!-------- -!ynoh (cira/csu) -! An adjustment for large cwp greater than 1.0 kg/m2 (no cloud type involved) -! updated for a smooth transition (20170109) -! updated for (LCL+CCL)*0.5 (20171227) - if ( (LCL+CCL)*0.5 > Surf_Elev .and. (LCL+CCL)*0.5 < Zc_Base ) then - if ( Cwp_local >= 1.2 ) Zc_Base = (LCL+CCL)*0.5 - if ( Cwp_local >= 1.0 .and. Cwp_local < 1.2 ) & - Zc_Base = Zc_Base + ((LCL+CCL)*0.5-Zc_Base)*((Cwp_local-1.0)/(1.2-1.0) ) - cbh_qf = 6 - endif -!-------- - -! apply quality flag - if (Zc_Base < Surf_Elev) then - Zc_Base = Surf_Elev - cbh_qf = 2 - endif - - if (Zc_Base < mincbh .or. Zc_Base > maxcbh) then - Zc_Base = MISSING_VALUE_REAL - cbh_qf = 3 - endif - - if (Zc_Base >= Zc_local*1000) then - Zc_Base = MISSING_VALUE_REAL - cbh_qf = 4 - endif - -end subroutine CIRA_base_hgt - -!---------------------------------------------------------------------- -! End of Module -!---------------------------------------------------------------------- - -end module CLOUD_BASE +! $Id: cloud_base_module.f90 4062 2021-01-12 04:02:19Z yli $ +module CLOUD_BASE +!--------------------------------------------------------------------- +! This module houses the routines associated with... +! +! Author: +! +! Reference: +! +!---------------------------------------------------------------------- + use CLOUD_BASE_SERVICES + + implicit none + + public:: CLOUD_BASE_ALGORITHM + + private:: INTERPOLATE_PROFILE_LOCAL + private:: NULL_PIX_POINTERS + private:: KNOWING_Z_COMPUTE_T_P + + !--- include the non-system specific variables + include 'cloud_base_parameters.inc' + + !--- interpoLated profiles + real, private, dimension(Num_Levels_RTM_Prof) :: Temp_Prof_RTM + real, private, dimension(Num_Levels_RTM_Prof) :: Press_Prof_RTM + real, private, dimension(Num_Levels_RTM_Prof) :: Hght_Prof_RTM + integer, private:: Sfc_Level_RTM + integer, private:: Tropo_Level_RTM + + real, private, PARAMETER:: MISSING_VALUE_REAL = -999.0 + integer, private, PARAMETER:: MISSING_VALUE_INTEGER = -999 + + contains + +!------------------------------------------------------------------------------ +! Cloud BaseE Height Algorithm +! +! Author: Andrew Heidinger, NOAA +! +! Assumptions +! +! Limitations +! +! NOTE. This algorithm use the same input and output structures as +! the AWG_CLOUD_HEIGHT_ALGORITHM. +! Do not overwrite elements of the Output structure expect those +! generated here. +! +! Output%Tau +! Output%Ec +! Output%Reff +! Output%Zc_Base +! Output%Pc_Base +!ynoh (cira/csu) for ccl mode 3 +! Output%Pc_Lower_Base +! +!---------------------------------------------------------------------- +! modification history +! +!------------------------------------------------------------------------------ + subroutine CLOUD_BASE_ALGORITHM(Input, Symbol, Output, Diag) + + !=============================================================================== + ! Argument Declaration + !============================================================================== + + type(symbol_acha), intent(inout) :: Symbol + type(acha_input_struct), intent(inout) :: Input + type(acha_output_struct), intent(inout) :: Output + type(acha_diag_struct), intent(inout), optional :: Diag + integer, save:: Diag_Warning_Flag = 0 + + + !=============================================================================== + ! Pixel level RTM structure + !=============================================================================== + + type(acha_rtm_nwp_struct) :: RTM_NWP + + !=============================================================================== + ! Local Variable Declaration + !=============================================================================== + + integer:: Elem_Idx + integer:: Line_Idx + real:: Inwp_Weight + real:: Jnwp_Weight + + integer:: Cloud_Type + + !--- scalar local variables + real (kind=real4):: Cloud_Extinction + real (kind=real4):: Cloud_Geometrical_Thickness + real (kind=real4):: Cloud_Geometrical_Thickness_Top_Offset + real (kind=real4):: Cloud_Geometrical_Thickness_eff + real (kind=real4):: Zc_Top_Max + real (kind=real4):: Zc_Base_Min + real (kind=real4):: R4_Dummy + + integer (kind=int4):: Itemp + integer (kind=int4):: Ilev + +!----------------------------------------------------------------------- +! BEGIN EXECUTABLE CODE +!----------------------------------------------------------------------- + + !------------------------------------------------------------------------- + ! Initialization + !------------------------------------------------------------------------- + Output%Zc_Base = MISSING_VALUE_REAL + Output%Pc_Base = MISSING_VALUE_REAL + +!ynoh (cira/csu) for ccl mode 3 + Output%Pc_Lower_Base = MISSING_VALUE_REAL + + !--- initialize diagnostic output + if (present(Diag) .and. Diag_Warning_Flag == 0) then + print *, "CLAVR-x / Cloud Base ===> Diagnostic Output Turned On" + Diag_Warning_Flag = 1 + endif + if (present(Diag)) Diag%Array_1 = Missing_Value_Real4 + if (present(Diag)) Diag%Array_2 = Missing_Value_Real4 + if (present(Diag)) Diag%Array_3 = Missing_Value_Real4 + + !-------------------------------------------------------------------------- + ! loop over pixels in scanlines + !-------------------------------------------------------------------------- + Line_loop: do Line_Idx = Line_Idx_min,Input%Number_of_Lines + Line_Idx_min - 1 + + Element_Loop: do Elem_Idx = 1, Input%Number_of_Elements + + if (Input%Invalid_Data_Mask(Elem_Idx,Line_Idx) == symbol%YES) cycle + if ((Input%Elem_Idx_Nwp(Elem_Idx,Line_Idx) <= 0) .or. & + (Input%Line_Idx_Nwp(Elem_Idx,Line_Idx) <= 0)) then + cycle + endif + + !---- null profile pointers each time - WCS3 + call NULL_PIX_POINTERS(Input, RTM_NWP) + + !--- for convenience, save nwp indices to local variables + Inwp_Weight = Input%Longitude_Interp_Weight_NWP(Elem_Idx,Line_Idx) + Jnwp_Weight = Input%Latitude_Interp_Weight_NWP(Elem_Idx,Line_Idx) + Cloud_Type = Input%Cloud_Type(Elem_Idx,Line_Idx) + + !----------------------------------------------------------------------- + ! include code to setup local profiles correctly + !----------------------------------------------------------------------- + + !Call Services module + call FETCH_PIXEL_RTM_NWP(Input, Symbol, & + Elem_Idx,Line_Idx, RTM_NWP) + + Sfc_Level_RTM = RTM_NWP%Sfc_Level + Tropo_Level_RTM = RTM_NWP%Tropo_Level + + Press_Prof_RTM = RTM_NWP%P_Prof + + !do smoothing routines here - WCS3 + if (RTM_NWP%Smooth_Nwp_Fields_Flag_Temp == symbol%YES) then + + !--- height profile + Hght_Prof_RTM = INTERPOLATE_PROFILE_LOCAL( RTM_NWP%Z_Prof, & + RTM_NWP%Z_Prof_1, & + RTM_NWP%Z_Prof_2, & + RTM_NWP%Z_Prof_3, & + Inwp_Weight,Jnwp_Weight) + + !--- temperature profile + Temp_Prof_RTM = INTERPOLATE_PROFILE_LOCAL( RTM_NWP%T_Prof, & + RTM_NWP%T_Prof_1, & + RTM_NWP%T_Prof_2, & + RTM_NWP%T_Prof_3, & + Inwp_Weight,Jnwp_Weight) + + + else + + Hght_Prof_RTM = RTM_NWP%Z_Prof + Temp_Prof_RTM = RTM_NWP%T_Prof + + endif + + !----------------------------------------------------------------------------- + !--- Cloud Base and Top + !--- + !--- Note 1. Extinction values are in km^(-1) + !--- Note 2. All heights and thickness are converted to meters + !----------------------------------------------------------------------------- + if (Input%Zc(Elem_Idx,Line_Idx) /= MISSING_VALUE_REAL .and. & + Input%Tau(Elem_Idx,Line_Idx) /= MISSING_VALUE_REAL) then + + Cloud_Extinction = WATER_EXTINCTION + + if (Cloud_Type == symbol%OPAQUE_ICE_TYPE .or. & + Cloud_Type == symbol%OVERSHOOTING_TYPE) then + Itemp = int(Input%Tc(Elem_Idx,Line_Idx)) + select case (Itemp) + case (:199) ; Cloud_Extinction = ICE_EXTINCTION1 + case (200:219) ; Cloud_Extinction = ICE_EXTINCTION2 + case (220:239) ; Cloud_Extinction = ICE_EXTINCTION3 + case (240:259) ; Cloud_Extinction = ICE_EXTINCTION4 + case (260:) ; Cloud_Extinction = ICE_EXTINCTION5 + end select + endif + + if (Cloud_Type == symbol%CIRRUS_TYPE .or. & + Cloud_Type == symbol%OVERLAP_TYPE) then + Itemp = int(Input%Tc(Elem_Idx,Line_Idx)) + select case (Itemp) + case (:199) ; Cloud_Extinction = CIRRUS_EXTINCTION1 + case (200:219) ; Cloud_Extinction = CIRRUS_EXTINCTION2 + case (220:239) ; Cloud_Extinction = CIRRUS_EXTINCTION3 + case (240:259) ; Cloud_Extinction = CIRRUS_EXTINCTION4 + case (260:) ; Cloud_Extinction = CIRRUS_EXTINCTION5 + end select + endif + + Cloud_Geometrical_Thickness = Input%Tau(Elem_Idx,Line_Idx) / Cloud_Extinction !(km) + Cloud_Geometrical_Thickness = Cloud_Geometrical_Thickness * 1000.0 !(m) + + Output%Geo_Thickness(Elem_Idx,Line_Idx) = Cloud_Geometrical_Thickness + + if (Input%Tau(Elem_Idx,Line_Idx) < 2.0) then + Cloud_Geometrical_Thickness_Top_Offset = Cloud_Geometrical_Thickness/2.0 !(m) + else + Cloud_Geometrical_Thickness_Top_Offset = 1000.0 / Cloud_Extinction !(m) + endif + + Zc_Top_Max = Hght_Prof_RTM(Tropo_Level_RTM) + Zc_Base_Min = Hght_Prof_RTM(Sfc_Level_RTM) + +!------------- +! Compute cloud base +! Updated CldBaseQF (by ynoh, cira/csu, 24 July 2018) +! CldBaseQF = 0 (Valid CBH from the statistical method by CIRA) +! 1 (Invalid due to invalid upstream input or clear) +! 2 (Out of range, CBH lower than terrain) +! 3 (Out of range, CBH < 0 km or CBH > 20 km ) +! 4 (Invalid CBH > CTH) +! 5 (Valid CBH from the extinction method) +! 6 (Valid CBH from CWP_NWP for deep convection) +! Start with Qf = 1 (Invalid due to invalid upstream input or clear) + + Output%Zc_Base_Qf(Elem_Idx,Line_Idx) = 1 + +! if (Cloud_Type == symbol%CIRRUS_TYPE .and. Input%Tau(Elem_Idx,Line_Idx) < 1.0) then +! + Output%Zc_Base(Elem_Idx,Line_Idx) = min(Input%Zc(Elem_Idx,Line_Idx), & + max(Zc_Base_Min, & + Input%Zc(Elem_Idx,Line_Idx) - Cloud_Geometrical_Thickness)) + Output%Zc_Base_Qf(Elem_Idx,Line_Idx) = 5 + if (Input%Zc(Elem_Idx,Line_Idx) - Cloud_Geometrical_Thickness < Zc_Base_Min) Output%Zc_Base_Qf(Elem_Idx,Line_Idx) = 2 + if (Input%Zc(Elem_Idx,Line_Idx) - Cloud_Geometrical_Thickness >= Input%Zc(Elem_Idx,Line_Idx)) then + Output%Zc_Base_Qf(Elem_Idx,Line_Idx) = 4 + Output%Zc_Base(Elem_Idx,Line_Idx) = MISSING_VALUE_REAL + endif +! else + +!------------- + if (Input%Tau(Elem_Idx,Line_Idx) > 1.0 .and. (Input%CWP(Elem_Idx,Line_Idx) > 0 .or. Input%CWP_nwp(Elem_Idx,Line_Idx) > 0)) then + call CIRA_base_hgt(Input%Zc(Elem_Idx,Line_Idx),Input%CWP(Elem_Idx,Line_Idx), Input%CWP_NWP(Elem_Idx,Line_Idx) ,& + Input%LCL(Elem_Idx,Line_Idx),Input%CCL(Elem_Idx,Line_Idx),Input%Surface_Elevation(Elem_Idx,Line_Idx), & + Cloud_Geometrical_Thickness_eff,Output%Zc_Base(Elem_Idx,Line_Idx),Output%Zc_Base_Qf(Elem_Idx,Line_Idx)) + endif +!------------- + +! endif + + ! compute Pc_Base from Zc_Base + call KNOWING_Z_COMPUTE_T_P(Output%Pc_Base(Elem_Idx,Line_Idx),Output%Tc_Base(Elem_Idx,Line_Idx),Output%Zc_Base(Elem_Idx,Line_Idx),Ilev) + +!ynoh (cira/csu) for ccl mode 3 + call KNOWING_Z_COMPUTE_T_P(Output%Pc_Lower_Base(Elem_Idx,Line_Idx),R4_Dummy, & + max(Input%Surface_Elevation(Elem_Idx,Line_Idx),min(Output%Zc_Base(Elem_Idx,Line_Idx),(Input%LCL(Elem_Idx,Line_Idx)+Input%CCL(Elem_Idx,Line_Idx))*0.5)),Ilev) + +!( + + endif + + + !---- null profile pointers each time - REALLY? + CALL NULL_PIX_POINTERS(Input, RTM_NWP) + + end do Element_Loop + +end do Line_Loop + +!Diag%Array_1 = Output%Pc_Base +!Diag%Array_2 = Output%Zc_Base + +end subroutine CLOUD_BASE_ALGORITHM + +!---------------------------------------------------------------------------- +! Function INTERPOLATE_PROFILE_LOCAL +! +! general interpoLation routine for profiles +! +! input: +! lonx - longitude weighting factor +! Latx = Latitude weighting factor +! z1 = data(ilon, iLat) +! z2 = data(ilonx,iLat) +! z3 = data(ilon,iLatx) +! z4 = data(ilonx,iLatx) +! +! output: +! z = interpoLated profile +! +! +!--------------------------------------------------------------------------- + function INTERPOLATE_PROFILE_LOCAL(z1,z2,z3,z4,lonx,Latx) result(z) + + real, dimension(:), intent(in):: z1 + real, dimension(:), intent(in):: z2 + real, dimension(:), intent(in):: z3 + real, dimension(:), intent(in):: z4 + real, intent(in):: lonx + real, intent(in):: Latx + real, dimension(size(z1)):: z + + !--- linear inteprpoLation scheme + z = (1.0-lonx) * ((1.0-Latx) * z1 + (Latx)* z3) + & + (lonx) * ((1.0-Latx) * z2 + (Latx)* z4) + + end function INTERPOLATE_PROFILE_LOCAL + + +!------------------------------------------------------------------------------ +! Null Pixel Level Pointers +!------------------------------------------------------------------------------ +subroutine NULL_PIX_POINTERS(Input, RTM_NWP) + + type(acha_input_struct), intent(inout) :: Input + type(acha_rtm_nwp_struct), intent(inout) :: RTM_NWP + + RTM_NWP%T_Prof => null() + RTM_NWP%T_Prof_1 => null() + RTM_NWP%T_Prof_2 => null() + RTM_NWP%T_Prof_3 => null() + + RTM_NWP%Z_Prof => null() + RTM_NWP%Z_Prof_1 => null() + RTM_NWP%Z_Prof_2 => null() + RTM_NWP%Z_Prof_3 => null() + + if (Input%Chan_On_67um == sym%YES) then + RTM_NWP%Atm_Rad_Prof_67um => null() + RTM_NWP%Atm_Trans_Prof_67um => null() + RTM_NWP%Black_Body_Rad_Prof_67um => null() + endif + if (Input%Chan_On_85um == sym%YES) then + RTM_NWP%Atm_Rad_Prof_85um => null() + RTM_NWP%Atm_Trans_Prof_85um => null() + endif + if (Input%Chan_On_11um == sym%YES) then + RTM_NWP%Atm_Rad_Prof_11um => null() + RTM_NWP%Atm_Trans_Prof_11um => null() + RTM_NWP%Black_Body_Rad_Prof_11um => null() + endif + if (Input%Chan_On_12um == sym%YES) then + RTM_NWP%Atm_Rad_Prof_12um => null() + RTM_NWP%Atm_Trans_Prof_12um => null() + endif + if (Input%Chan_On_133um == sym%YES) then + RTM_NWP%Atm_Rad_Prof_133um => null() + RTM_NWP%Atm_Trans_Prof_133um => null() + endif + +end subroutine NULL_PIX_POINTERS + +!----------------------------------------------------------------- +! InterpoLate within profiles knowing Z to determine T and P +!----------------------------------------------------------------- + subroutine KNOWING_Z_COMPUTE_T_P(P,T,Z,Ilev) + + real, intent(in):: Z + real, intent(out):: T + real, intent(out):: P + integer, intent(out):: Ilev + real:: dp + real:: dt + real:: dz + + !--- interpoLate pressure profile + call LOCATE(Hght_Prof_RTM,Num_Levels_RTM_Prof,Z,Ilev) + Ilev = max(1,min(Num_Levels_RTM_Prof-1,Ilev)) + + dp = Press_Prof_RTM(Ilev+1) - Press_Prof_RTM(Ilev) + dt = Temp_Prof_RTM(Ilev+1) - Temp_Prof_RTM(Ilev) + dz = Hght_Prof_RTM(Ilev+1) - Hght_Prof_RTM(Ilev) + + !--- perform interpoLation + if (dz /= 0.0) then + T = Temp_Prof_RTM(Ilev) + dt/dz * (Z - Hght_Prof_RTM(Ilev)) + P = Press_Prof_RTM(Ilev) + dp/dz * (Z - Hght_Prof_RTM(Ilev)) + else + T = Temp_Prof_RTM(Ilev) + P = Press_Prof_RTM(Ilev) + endif + + end subroutine KNOWING_Z_COMPUTE_T_P + +!----------------------------------------------------------------- +! CIRA's base code, interpret from IDL codes +!----------------------------------------------------------------- +!ynoh (cira/csu) +subroutine CIRA_base_hgt(Zc,Cwp,Cwp_nwp,LCL,CCL,Surf_Elev,Cloud_Geometrical_Thickness,Zc_base,cbh_qf) + + real(kind=real4), intent(in) :: Zc,Cwp,Cwp_nwp,LCL,CCL,Surf_Elev + + real(kind=real4), intent(out) :: Cloud_Geometrical_Thickness,Zc_base + integer(kind=int1),intent(out) :: cbh_qf + +! local variables + real(kind=real4) :: Zc_local, Cwp_local,Cwp_nwp_local + integer :: ibin + integer :: ibin_max + integer :: icwp + real :: zdelta + real :: slope + real :: yint + integer, parameter :: nbin = 9, npara = 6, ncwp = 2 + real,dimension(nbin,npara,ncwp) :: regr_coeff + real,parameter :: mincbh = 0.0, maxcbh = 20.0*1000 + +! min cth ;slope y-int r2 n median CWP + regr_coeff(1,:,1) = [0.00000, 2.25812, 0.405590, 0.0236532, 5921., 0.0710000] + regr_coeff(1,:,2) = [0.00000, 0.997031, 0.516989, 0.0900793, 5881., 0.0710000] + regr_coeff(2,:,1) = [2.00000, 6.10980, 0.664818, 0.0664282, 3624., 0.114000] + regr_coeff(2,:,2) = [2.00000, 0.913021, 1.35698, 0.0735795, 3621., 0.114000] + regr_coeff(3,:,1) = [4.00000, 11.5574, 1.22527, 0.0519277, 2340., 0.110000] + regr_coeff(3,:,2) = [4.00000, 1.37922, 2.58661, 0.0695758, 2329., 0.110000] + regr_coeff(4,:,1) = [6.00000, 14.5382, 1.70570, 0.0568334, 2535., 0.123000] + regr_coeff(4,:,2) = [6.00000, 1.68711, 3.62280, 0.0501604, 2511., 0.123000] + regr_coeff(5,:,1) = [8.00000, 9.09855, 2.14247, 0.0218789, 3588., 0.131000] + regr_coeff(5,:,2) = [8.00000, 2.45953, 3.86957, 0.0727178, 3579., 0.131000] + regr_coeff(6,:,1) = [10.0000, 13.5772, 1.86554, 0.0497041, 4249., 0.127000] + regr_coeff(6,:,2) = [10.0000, 4.83087, 3.53141, 0.160008, 4218., 0.127000] + regr_coeff(7,:,1) = [12.0000, 16.0793, 1.64965, 0.0695903, 3154., 0.115000] + regr_coeff(7,:,2) = [12.0000, 5.05173, 3.98610, 0.180965, 3121., 0.115000] + regr_coeff(8,:,1) = [14.0000, 14.6030, 2.00010, 0.0429476, 2744., 0.116000] + regr_coeff(8,:,2) = [14.0000, 6.06439, 4.03301, 0.239837, 2717., 0.116000] + regr_coeff(9,:,1) = [16.0000, 9.26580, 2.29640, 0.0113376, 1455., 0.0990000] + regr_coeff(9,:,2) = [16.0000, 6.60431, 3.26442, 0.227116, 1449., 0.0990000] + +! start retrieval + Zc_local = Zc/1000. + CWP_local = CWP/1000. + Cwp_nwp_local = Cwp_nwp/1000. + +! force large cwp to cap at 1.2 kg/m2 + if (Zc_local > 20.0) Zc_local = 20.0 + if (CWP_local > 1.2) CWP_local = 1.2 + if (Cwp_nwp_local > 1.2) Cwp_nwp_local = 1.2 + if (Cwp_local < 0 .and. Cwp_nwp_local > 0) Cwp_local = Cwp_nwp_local + + zdelta = 2.0 + ibin = floor(Zc_local)/floor(zdelta)+1 + ibin_max = 9 + + if (Zc_local > 18.0 .or. ibin > ibin_max) ibin = ibin_max + if (ibin < 1) ibin = 1 + + icwp = 1 + if (CWP_local > regr_coeff(ibin,6,1)) icwp = 2 + + slope = regr_coeff(ibin,2,icwp) + yint = regr_coeff(ibin,3,icwp) + Cloud_Geometrical_Thickness = slope*CWP_local+yint + Cloud_Geometrical_Thickness = Cloud_Geometrical_Thickness*1000. + + Zc_Base = Zc_local*1000-Cloud_Geometrical_Thickness + + cbh_qf = 0 +!-------- +!ynoh (cira/csu) +! An adjustment for large cwp greater than 1.0 kg/m2 (no cloud type involved) +! updated for a smooth transition (20170109) +! updated for (LCL+CCL)*0.5 (20171227) + if ( (LCL+CCL)*0.5 > Surf_Elev .and. (LCL+CCL)*0.5 < Zc_Base ) then + if ( Cwp_local >= 1.2 ) Zc_Base = (LCL+CCL)*0.5 + if ( Cwp_local >= 1.0 .and. Cwp_local < 1.2 ) & + Zc_Base = Zc_Base + ((LCL+CCL)*0.5-Zc_Base)*((Cwp_local-1.0)/(1.2-1.0) ) + cbh_qf = 6 + endif +!-------- + +! apply quality flag + if (Zc_Base < Surf_Elev) then + Zc_Base = Surf_Elev + cbh_qf = 2 + endif + + if (Zc_Base < mincbh .or. Zc_Base > maxcbh) then + Zc_Base = MISSING_VALUE_REAL + cbh_qf = 3 + endif + + if (Zc_Base >= Zc_local*1000) then + Zc_Base = MISSING_VALUE_REAL + cbh_qf = 4 + endif + +end subroutine CIRA_base_hgt + +!---------------------------------------------------------------------- +! End of Module +!---------------------------------------------------------------------- + +end module CLOUD_BASE diff --git a/cloud_mask/ECM2/nbm_cloud_mask_clavrx_bridge_module.f90 b/cloud_mask/ECM2/nbm_cloud_mask_clavrx_bridge_module.f90 index 0cce2b3098efb14c7d9dc1e6c05fee1e6a4a3892..ff6f6241c733a6e0715d72e5bf45c351fca4d212 100644 --- a/cloud_mask/ECM2/nbm_cloud_mask_clavrx_bridge_module.f90 +++ b/cloud_mask/ECM2/nbm_cloud_mask_clavrx_bridge_module.f90 @@ -115,7 +115,9 @@ module ECM2_CLOUD_MASK_CLAVRX_BRIDGE private :: BETA_11_133_OVERLAP_TEST private :: WATER_EDGE_FILTER private :: MODIS_AQUA_SBAF + private :: ABI_GOES16_SBAF private :: SBAF_QUAD + private :: APPLY_SBAF !--- define these structure as module wide type(mask_input), private :: Input @@ -140,6 +142,9 @@ module ECM2_CLOUD_MASK_CLAVRX_BRIDGE !Use_104um_Flag logical, private:: Use_104um_Flag + !SBAF coeffs + real, dimension(Nchan_Clavrx), private, save:: a, b, c + contains !---------------------------------------------------------------------- @@ -245,6 +250,17 @@ contains call MESG( "ERROR: Catastrophic LHP Event, exiting" , level = verb_lev % DEFAULT) return endif + + !--------------------------------------------------------------------- + ! compute SBAF + !--------------------------------------------------------------------- + if (index(Bayesian_Cloud_Mask_Name,"src-modis") > 0) then + call MODIS_AQUA_SBAF(Sensor%WMO_Id) + endif + if (index(Bayesian_Cloud_Mask_Name,"src-abhi") > 0) then + print *, "GOES16 SBAF Called" + call ABI_GOES16_SBAF(Sensor%WMO_Id) + endif !--------------------------------------------------------------------- ! loop over pixels @@ -256,9 +272,9 @@ contains call SET_INPUT(i,j) !--- perform spectral band correction if needed - !if (index(Bayesian_Cloud_Mask_Name,"isccp") > 0) then - ! call MODIS_AQUA_SBAF(Sensor%WMO_Id) - !endif + if (index(Bayesian_Cloud_Mask_Name,"src-") > 0) then + call APPLY_SBAF() + endif ! --- check if pixel is valid if (Input%Invalid_Data_Mask == 1) cycle @@ -1323,6 +1339,61 @@ end subroutine LHP_CHN_CHECK end subroutine COMPUTE_TYPE_FROM_PHASE + !------------------------------------------------------------------------------- + ! + !------------------------------------------------------------------------------- + subroutine APPLY_SBAF() + ! print *, "before", Input%Ref_063um, Input%Bt_375um, Input%Bt_67um, Input%Bt_11um, Input%Bt_133um + if (Input%Ref_041um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(8),b(8),c(8),Input%Ref_041um) + if (Input%Ref_063um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(1),b(1),c(1),Input%Ref_063um) + if (Input%Ref_086um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(2),b(2),c(2),Input%Ref_086um) + if (Input%Ref_138um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(26),b(26),c(26),Input%Ref_086um) + if (Input%Ref_160um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(6),b(6),c(6),Input%Ref_160um) + if (Input%Ref_213um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(7),b(7),c(7),Input%Ref_213um) + if (Input%Bt_375um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(20),b(20),c(20),Input%Bt_375um) + !if (Input%Bt_62um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(37),b(37),c(37),Input%Bt_62um) + if (Input%Bt_67um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(27),b(27),c(27),Input%Bt_67um) + if (Input%Bt_73um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(28),b(28),c(28),Input%Bt_73um) + if (Input%Bt_85um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(29),b(29),c(29),Input%Bt_85um) + if (Input%Bt_10um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(38),b(38),c(38),Input%Bt_10um) + if (Input%Bt_11um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(31),b(31),c(31),Input%Bt_11um) + if (Input%Bt_12um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(32),b(32),c(32),Input%Bt_12um) + if (Input%Bt_133um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(33),b(33),c(33),Input%Bt_133um) + ! print *, "after", Input%Ref_063um, Input%Bt_375um, Input%Bt_67um, Input%Bt_11um, Input%Bt_133um + end subroutine APPLY_SBAF + + !------------------------------------------------------------------------------- + ! use spectral band adjustments to make input refs and bt look like GOES-16 ABI + !------------------------------------------------------------------------------- + subroutine ABI_GOES16_SBAF(WMO_Id) + integer, intent(in):: WMO_Id + + a = 0.0 + b = 1.0 + c = 0.0 + + select case(WMO_Id) + + case(255) ! GOES-11 + a(1) = -6.8063e-03; b(1) = 1.02490e+00; c(1) = -5.3926e-04 + a(20) = 1.5405e+01 ; b(20) = 8.8843e-01 ; c(20) = 2.0221e-04 + a(27) = -1.8107e+02 ; b(27) = 2.4466e00 ; c(27) = -2.7885e-03 + a(31) = 1.5814e+01 ; b(31) = 8.6256e-01 ; c(31) = 2.7981e-04 + a(32) = -3.6017e-01 ; b(32) = 1.0102e+00 ; c(32) = -4.4293e-05 + + case(257) ! GOES-13 + a(1) = -2.7527e-03; b(1) = 1.0368e+00; c(1) = -4.5434e-02 + a(20) = 2.5828e+01 ; b(20) = 8.0108e-01 ; c(20) = 3.7754e-04 + a(27) = -8.3942e+01 ; b(27) = 1.6039e+00 ; c(27) = -1.0530e-03 + a(31) = 2.0139e+01 ; b(31) = 8.3048e-01 ; c(31) = 3.3938e-04 + a(33) = -2.1292e+01 ; b(33) = 1.1238e+00 ; c(33) = -1.1957e-04 + + case default + + end select + + end subroutine ABI_GOES16_SBAF + !------------------------------------------------------------------------------- ! use spectral band adjustments to make input refs and bt look like MODIS Aqua !------------------------------------------------------------------------------- @@ -1363,44 +1434,6 @@ end subroutine LHP_CHN_CHECK case default end select - if (Input%Ref_041um /= MISSING_VALUE_REAL4) call SBAF_QUAD(a(8),b(8),c(8),Input%Ref_041um) - -! if (Input%Ref_041um /= MISSING_VALUE_REAL4) Input%Ref_041um = a_sbaf(8) + b_sbaf(8)*Input%Ref_041um -! if (Input%Ref_063um /= MISSING_VALUE_REAL4) Input%Ref_063um = a_sbaf(1) + b_sbaf(1)*Input%Ref_063um -! if (Input%Ref_086um /= MISSING_VALUE_REAL4) Input%Ref_086um = a_sbaf(2) + b_sbaf(2)*Input%Ref_086um -! if (Input%Ref_138um /= MISSING_VALUE_REAL4) Input%Ref_138um = a_sbaf(26) + b_sbaf(26)*Input%Ref_138um -! if (Input%Ref_160um /= MISSING_VALUE_REAL4) Input%Ref_160um = a_sbaf(6) + b_sbaf(6)*Input%Ref_160um -! if (Input%Ref_213um /= MISSING_VALUE_REAL4) Input%Ref_213um = a_sbaf(7) + b_sbaf(7)*Input%Ref_213um -! if (Input%Bt_375um /= MISSING_VALUE_REAL4) Input%Bt_375um = a_sbaf(20) + b_sbaf(20)*Input%Bt_375um -! if (Input%Bt_67um /= MISSING_VALUE_REAL4) Input%Bt_67um = a_sbaf(27) + b_sbaf(27)*Input%Bt_67um -! if (Input%Bt_73um /= MISSING_VALUE_REAL4) Input%Bt_73um = a_sbaf(28) + b_sbaf(28)*Input%Bt_73um -! if (Input%Bt_85um /= MISSING_VALUE_REAL4) Input%Bt_85um = a_sbaf(29) + b_sbaf(29)*Input%Bt_85um -! if (Input%Bt_10um /= MISSING_VALUE_REAL4) Input%Bt_10um = a_sbaf(38) + b_sbaf(38)*Input%Bt_10um -! if (Input%Bt_11um /= MISSING_VALUE_REAL4) Input%Bt_11um = a_sbaf(31) + b_sbaf(31)*Input%Bt_11um -! if (Input%Bt_12um /= MISSING_VALUE_REAL4) Input%Bt_12um = a_sbaf(32) + b_sbaf(32)*Input%Bt_12um -! if (Input%Bt_133um /= MISSING_VALUE_REAL4) Input%Bt_133um = a_sbaf(33) + b_sbaf(33)*Input%Bt_133um - -! Input%Chan_On_041um = Sensor%Chan_On_Flag_Default(8) -! Input%Chan_On_063um = Sensor%Chan_On_Flag_Default(1) -! Input%Chan_On_086um = Sensor%Chan_On_Flag_Default(2) -! Input%Chan_On_138um = Sensor%Chan_On_Flag_Default(26) -! Input%Chan_On_160um = Sensor%Chan_On_Flag_Default(6) -! Input%Chan_On_213um = Sensor%Chan_On_Flag_Default(7) -! Input%Chan_On_375um = Sensor%Chan_On_Flag_Default(20) -! Input%Chan_On_62um = Sensor%Chan_On_Flag_Default(37) -! Input%Chan_On_67um = Sensor%Chan_On_Flag_Default(27) -! Input%Chan_On_73um = Sensor%Chan_On_Flag_Default(28) -! Input%Chan_On_85um = Sensor%Chan_On_Flag_Default(29) -! Input%Chan_On_97um = Sensor%Chan_On_Flag_Default(30) -! Input%Chan_On_10um = Sensor%Chan_On_Flag_Default(38) -! Input%Chan_On_11um = Sensor%Chan_On_Flag_Default(31) -! Input%Chan_On_12um = Sensor%Chan_On_Flag_Default(32) -! Input%Chan_On_133um = Sensor%Chan_On_Flag_Default(33) -! Input%Chan_On_I1_064um = Sensor%Chan_On_Flag_Default(39) -! Input%Chan_On_I4_374um = Sensor%Chan_On_Flag_Default(42) -! Input%Chan_On_I5_114um = Sensor%Chan_On_Flag_Default(43) -! Input%Chan_On_DNB = Sensor%Chan_On_Flag_Default(44) - end subroutine MODIS_AQUA_SBAF !------------------------------------------------------------------------------- diff --git a/cloud_mask/ECM2/nbm_cloud_mask_lut_module.f90 b/cloud_mask/ECM2/nbm_cloud_mask_lut_module.f90 index 0492dc81531767f4fa8290c650cb6b35d18162a2..28302b2ec6e89db0060ea92be4cfac9426cf2078 100644 --- a/cloud_mask/ECM2/nbm_cloud_mask_lut_module.f90 +++ b/cloud_mask/ECM2/nbm_cloud_mask_lut_module.f90 @@ -3,7 +3,7 @@ ! MODULE name: NBM_CLOUD_MASK_LUT_MODULE ! ! Routines for the naive Bayesian cloud mask LUT reading -! Version 2.0 +! Version 2.1 ! ! Authors: Andrew Heidinger, NOAA/NESDIS ! Andi Walther, CIMSS diff --git a/cloud_mask/ECM2/nbm_cloud_mask_module.f90 b/cloud_mask/ECM2/nbm_cloud_mask_module.f90 index ba0aa8e1c45197232efa950c7669d4ddfd36f30c..489a0991601e6ad11f619a6c9ab64f92c2369489 100644 --- a/cloud_mask/ECM2/nbm_cloud_mask_module.f90 +++ b/cloud_mask/ECM2/nbm_cloud_mask_module.f90 @@ -3,7 +3,7 @@ ! MODULE name: NBM_CLOUD_MASK ! ! Routines for the determination of the naive Bayesian cloud mask -! Version 2.0 +! Version 2.1 ! ! Authors: Andrew Heidinger, NOAA/NESDIS ! Andi Walther, CIMSS @@ -66,7 +66,7 @@ MODULE ECM2_CLOUD_MASK_MODULE INCLUDE 'nbm_cloud_mask.inc' !--- string to control on-screen prompts - CHARACTER(*), PARAMETER, PRIVATE :: EXE_PROMPT_CM = "Naive Bayesian Cloud Mask Version 2.0 >> " + CHARACTER(*), PARAMETER, PRIVATE :: EXE_PROMPT_CM = "Naive Bayesian Cloud Mask Version 2.1 >> " CONTAINS @@ -78,7 +78,7 @@ MODULE ECM2_CLOUD_MASK_MODULE !==================================================================== SUBROUTINE SET_ECM2_CLOUD_MASK_VERSION(Cloud_Mask_Version) CHARACTER(len=*), INTENT(OUT):: Cloud_Mask_Version - Cloud_Mask_Version = "$Id: nbm_cloud_mask_MODULE.f90 3030 2019-09-31 23:02:31Z heidinger $" + Cloud_Mask_Version = "v2.1" END SUBROUTINE SET_ECM2_CLOUD_MASK_VERSION @@ -355,6 +355,8 @@ MODULE ECM2_CLOUD_MASK_MODULE SELECT CASE(trim(Dim_Name)) CASE('tsfc') Value_Dim = Input%Sfc_Temp + CASE('tpw') + Value_Dim = Input%Path_Tpw CASE('dtsfcbt11') Value_Dim = Input%Sfc_Temp - Input%Bt_11um CASE('etropo10') @@ -365,11 +367,22 @@ MODULE ECM2_CLOUD_MASK_MODULE Value_Dim = Input%Topa CASE('zopa') Value_Dim = Input%Zopa + CASE('dzopasfc') + Value_Dim = Input%Zopa - Input%Zsfc CASE('dtsfcopa') Value_Dim = Input%Sfc_Temp - Input%Topa CASE('logzopa') if (Input%Zopa > 0.0) Value_Dim = alog10(Input%Zopa) if (Input%Zopa < 0.0 .and. Input%Zopa /= MISSING_VALUE_REAL4) Value_Dim = 1.0 + CASE('logrefl065') + if (Input%Ref_063um > 0.0) Value_Dim = alog10(Input%Ref_063um) + if (Input%Ref_063um < 0.0 .and. Input%Ref_063um /= MISSING_VALUE_REAL4) Value_Dim = -2.0 + CASE('logrefl138') + if (Input%Ref_138um > 0.0) Value_Dim = alog10(Input%Ref_138um) + if (Input%Ref_138um < 0.0 .and. Input%Ref_138um /= MISSING_VALUE_REAL4) Value_Dim = -2.0 + CASE('logrefl160') + if (Input%Ref_160um > 0.0) Value_Dim = alog10(Input%Ref_160um) + if (Input%Ref_160um < 0.0 .and. Input%Ref_160um /= MISSING_VALUE_REAL4) Value_Dim = -2.0 CASE('bt10') Value_Dim = Input%Bt_10um if (Input%Chan_On_10um == 0) Value_Dim = MISSING_VALUE_REAL4 @@ -727,10 +740,6 @@ IF (Input%Solzen < Lut(1)%Rut_Solzen_Thresh .and. Input%Ref_063um .ne. MISSING_V Mask_Thresh%Rut_Clear_Prob_Clear_Thresh(Output%Sfc_Idx)) ENDIF -!--- apply uniformity -!IF (Output%Cld_Mask_Bayes == symbol%CLEAR .and. (Output%TUT == 1 .or. Output%RUT == 1)) & -! Output%Cld_Mask_Bayes = symbol%PROB_CLEAR - !---------------------------------------------------------------------------------- !--- set some flags to control processing - Lets move this to a subroutine diff --git a/configure b/configure index d126ed6edc69822343059a7148967bbfe1894355..0700236cb8d64a36b782f3628b8d8fa69a91082f 100755 --- a/configure +++ b/configure @@ -154,7 +154,7 @@ open (CONFIG, '>> ',@outfile) or die "Could not open file '@outfile' $!)\n"; `uname -a`; print CONFIG "# Include all required macros on the following lines:\n\n"; - print CONFIG "ifeq (\$(ARCH),\$(filter \$(ARCH), gfortran gfortran-profile gfortran-strict gfortran-debug))\n"; + print CONFIG "ifeq (\$(ARCH),\$(filter \$(ARCH), gfortran gfortran-profile gfortran-strict gfortran-debug gfortran10))\n"; print CONFIG "export CX_DATA_IO=$opt{cx_sds_io_gcc}\n"; print CONFIG "export DNCOMP=$opt{dncomp_gcc}\n"; print CONFIG "export MURI=$opt{muri_gcc}\n"; diff --git a/cx_dncomp/src/dcomp_array_loop_sub.f90 b/cx_dncomp/src/dcomp_array_loop_sub.f90 index a0d4654471aead0c39a1a55717be43f6aa5d6189..321bd8ba00457c870b2a570f7658c999ff4fa069 100644 --- a/cx_dncomp/src/dcomp_array_loop_sub.f90 +++ b/cx_dncomp/src/dcomp_array_loop_sub.f90 @@ -61,6 +61,7 @@ subroutine dcomp_array_loop ( input, output , debug_mode_user) real( kind = real4 ), parameter :: OZONE_COEFF_CHN1 (3) = [ -0.000606266 , 9.77984e-05,-1.67962e-08 ] real( kind = real4 ) :: ozone_coeff (3) + real( kind = real4 ) :: gas_coeff (3) ! -- nwp variables real( kind = real4 ) :: ozone_dobson @@ -164,6 +165,7 @@ subroutine dcomp_array_loop ( input, output , debug_mode_user) CHN_NIR_DEFAULT = 20 obs_array = obs_array .and. input % chn(20) % rad >=0. case default + CHN_NIR_DEFAULT = 0 end select @@ -238,6 +240,10 @@ subroutine dcomp_array_loop ( input, output , debug_mode_user) if ( .not. input % is_channel_on (chn_idx)) cycle loop_chn ozone_coeff(:) = 0. if (chn_idx == 1) ozone_coeff = OZONE_COEFF_CHN1 + gas_coeff(:) = 0. + if (input % gas_coeff(chn_idx) % is_set) then + gas_coeff = input % gas_coeff ( chn_idx) % d + endif call trans_atm_above_cloud ( & input % tpw_ac (elem_idx,line_idx) & @@ -245,7 +251,7 @@ subroutine dcomp_array_loop ( input, output , debug_mode_user) , input % press_sfc (elem_idx,line_idx) & , cld_press & , air_mass_array(elem_idx,line_idx) & - , input % gas_coeff ( chn_idx) % d , ozone_coeff, 0.044 & + , gas_coeff, ozone_coeff, 0.044 & , trans_total(chn_idx) & , trans_unc_total(chn_idx) & ) diff --git a/cx_dncomp/src/dcomp_lut_mod.f90 b/cx_dncomp/src/dcomp_lut_mod.f90 index 09776fccb95ccd5ebf4ccb124407abfca1b15dd2..d78c6e1310bf292bb887e967fc32e22de23d82e5 100644 --- a/cx_dncomp/src/dcomp_lut_mod.f90 +++ b/cx_dncomp/src/dcomp_lut_mod.f90 @@ -1,13 +1,13 @@ ! $Id: dcomp_lut_mod.f90 189 2018-03-09 18:49:39Z awalther $ ! -! HISTORY: 06/05/2014: change of filename +! HISTORY: 06/05/2014: change of filename ! module dcomp_lut_mod - + use dcomp_math_tools_mod, only:& dcomp_interpolation_weight & , interpolate_2d - + use file_tools, only: & file_test use dcomp_lut_sds_mod, only: & @@ -16,18 +16,18 @@ module dcomp_lut_mod , read_hdf_dcomp_dims implicit none - + private - + integer, parameter :: NUM_PHASE = 2 integer, parameter :: NUM_CHN = 45 - + integer , parameter :: NUM_SOL = 45 integer , parameter :: NUM_SAT = 45 integer , parameter :: NUM_AZI = 45 integer , parameter :: NUM_COD = 29 integer , parameter :: NUM_REF = 9 - + type lut_data_type logical :: is_set logical :: has_sol = .false. @@ -40,19 +40,19 @@ module dcomp_lut_mod real, allocatable :: cld_refl( : , : , : , : , : ) real, allocatable :: cld_ems ( : , : , : ) real, allocatable :: cld_trn_ems ( : , : , : ) - + contains procedure :: read_hdf => lut_data__read_hdf procedure :: alloc => lut_data__alloc procedure :: dealloc => lut_data__dealloc - + end type lut_data_type - + type lut_chn_type logical :: is_set type ( lut_data_type ) , allocatable :: phase(:) end type lut_chn_type - + type lut_dim_type logical :: is_set real, allocatable :: sat_zen ( : ) @@ -66,9 +66,9 @@ module dcomp_lut_mod integer :: n_cod integer :: n_cps - + end type lut_dim_type - + type , public :: lut_type logical :: is_set type ( lut_chn_type ) , allocatable :: channel (:) @@ -76,7 +76,7 @@ module dcomp_lut_mod character ( len = 1020) :: lut_path character ( len = 20 ) :: sensor = 'not_set' integer :: pos_sat, pos_sol, pos_azi - + contains procedure :: initialize => lut__initialize procedure :: set_angles => lut__set_angles @@ -87,15 +87,15 @@ module dcomp_lut_mod procedure , private :: set_filename => lut__set_filename procedure :: clear_lut_memory => lut__clear_lut_memory procedure :: populate_all_at_once => lut__populate_all_at_once - + end type lut_type - + ! - only one channel can be stored type ( lut_type ) , public ,save , target :: lut_obj - - + + type , public :: lut_output - + real :: refl real :: trn_sol real :: trn_sat @@ -103,7 +103,7 @@ module dcomp_lut_mod real :: alb real :: ems real :: trn_ems - + real :: dRefl_dcps , dRefl_dcod real :: dtrans_sol_dcps , dtrans_sol_dcod real :: dTrans_sat_dcod , dTrans_sat_dcps @@ -111,22 +111,22 @@ module dcomp_lut_mod real :: dalb_dcod , dalb_dcps real :: dEms_dcps , dEms_dcod real :: dtrnEms_dcps , dtrnEms_dcod - - + + end type lut_output - - + + real, save :: sat_m real, save :: sol_m real, save :: azi_m - + contains ! ------------------------------------------------------------ ! This is to populate the tables outside dcomp if wished. ! ------------------------------------------------------------ - + subroutine lut__populate_all_at_once (self , sensor , ancil_path) implicit none class ( lut_type ) , target :: self @@ -134,27 +134,27 @@ contains character ( len = * ) , intent(in) :: ancil_path integer :: idx_chn, idx_phase type (lut_data_type), pointer :: data_loc => null() - - + + call self % initialize ( trim(sensor), trim(ancil_path)) - + do idx_chn = 1 , NUM_CHN do idx_phase = 1, 2 data_loc => self % channel ( idx_chn ) % phase ( idx_phase) if ( .not. data_loc % is_set ) then - + call data_loc % read_hdf data_loc % is_set = .true. end if end do end do - + self % sensor = trim(sensor) - + end subroutine lut__populate_all_at_once - - + + ! ---------------------------------------------------------------- ! ! ---------------------------------------------------------------- @@ -163,16 +163,15 @@ contains character ( len = 3 ) , dimension(30) :: chan_string ='no' logical , dimension ( NUM_CHN ) :: has_ems_table = .false. logical , dimension ( NUM_CHN ) :: has_sol_table = .false. - + integer :: i_chn , i_phase character ( len = 3 ) , dimension(2) :: phase_string = [ 'wat', 'ice' ] integer :: n_channels = 45 character ( len =1020) :: sensor_identifier - + ! mapping sensor channel emis yes/no - + sensor_identifier = trim ( self % sensor ) - !print*,'==> ', self % sensor sensor_block: select case ( trim(self % sensor)) case ('Meteosat-8','Meteosat-9','Meteosat-10','Meteosat-11') sensor_block has_sol_table(1) = .true. @@ -184,7 +183,7 @@ contains chan_string(2) = '2' chan_string(6) = '3' chan_string(20) = '4' - + case ('TIROS-N','NOAA-05','NOAA-06','NOAA-07','NOAA-08','NOAA-09', 'NOAA-10','NOAA-11', & 'NOAA-12', 'NOAA-14') sensor_block has_sol_table(1) = .true. @@ -192,7 +191,7 @@ contains has_ems_table(20) = .true. chan_string(1) = '1' chan_string(20) = '3b' - + case ('NOAA-15','NOAA-16', 'NOAA-17','NOAA-18','NOAA-19','METOP-A','METOP-B','METOP-C') sensor_block has_sol_table(1) = .true. has_sol_table(6) = .true. @@ -201,7 +200,7 @@ contains chan_string(1) = '1' chan_string(6) = '3a' chan_string(20) = '3b' - + case ('GOES-08','GOES-09','GOES-10', 'GOES-11' , 'GOES-12' , 'GOES-13', 'GOES-14', & 'GOES-15','COMS-1' ) sensor_block has_sol_table(1) = .true. @@ -209,7 +208,7 @@ contains has_ems_table(20) = .true. chan_string(1) = '1' chan_string(20) = '2' - + case ('MODIS-AQUA', 'MODIS-TERRA') sensor_block has_sol_table(1) = .true. has_sol_table(2) = .false. @@ -217,15 +216,13 @@ contains has_sol_table(20) = .true. has_ems_table(20) = .true. chan_string(1) = '1' - !chan_string(2) = '2' chan_string(5) = '5' chan_string(6) = '6' chan_string(7) = '7' chan_string(20) = '20' - !--->sensor_identifier = trim(self % lut_path) //'MODIS' sensor_identifier = 'MODIS' - - case('GOES-16','GOES-17') sensor_block + + case('GOES-16','GOES-17','GOES-18') sensor_block has_sol_table(1) = .true. has_sol_table(6) = .true. has_sol_table(7) = .true. @@ -235,7 +232,7 @@ contains chan_string(6) = '5' chan_string(7) = '6' chan_string(20) = '7' - + case('ABI') sensor_block has_sol_table(1) = .true. has_sol_table(6) = .true. @@ -244,7 +241,7 @@ contains chan_string(1) = '2' chan_string(6) = '5' chan_string(20) = '7' - + case('AHI') sensor_block has_sol_table(1) = .true. has_sol_table(6) = .true. @@ -255,8 +252,8 @@ contains chan_string(6) = '5' chan_string(7) = '6' chan_string(20) = '7' - - + + case ('AATSR') sensor_block has_sol_table(1) = .true. has_sol_table(6) = .true. @@ -265,10 +262,10 @@ contains chan_string(1) = '1' chan_string(6) = '6' chan_string(20) = '20' - - - - + + + + case ('VIIRS','NOAA-20') sensor_block has_sol_table(1) = .true. has_sol_table(5) = .true. @@ -281,7 +278,7 @@ contains chan_string(6) = '10' chan_string(7) = '11' chan_string(20) ='12' - + case ('MTSAT-1R') sensor_block has_sol_table(1) = .true. has_sol_table(20) = .true. @@ -289,7 +286,7 @@ contains chan_string(1) = '1' chan_string(20) = '5' case ('FY4A') sensor_block - + has_sol_table(1) = .true. has_sol_table(5) = .false. has_sol_table(6) = .true. @@ -302,14 +299,13 @@ contains chan_string(7) = '6' chan_string(20) ='7' - + case ('MTSAT-2') sensor_block has_sol_table(1) = .true. has_sol_table(20) = .true. has_ems_table(20) = .true. chan_string(1) = '1' chan_string(20) = '5' - !--> sensor_identifier = trim(self % lut_path) //'MTSAT' sensor_identifier = 'MTSAT' case ('FY3D') sensor_block @@ -322,7 +318,7 @@ contains chan_string(6) = '6' chan_string(7) = '7' chan_string(20) = '20' - + case ('METIMAGE') sensor_block has_sol_table(1) = .true. !0.64um has_sol_table(6) = .true. !1.6um @@ -332,9 +328,9 @@ contains chan_string(1) = '03' chan_string(6) = '10' chan_string(7) = '11' - chan_string(20) = '12' + chan_string(20) = '12' sensor_identifier = 'eps' - + case ('Met_Image') sensor_block has_sol_table(1) = .true. !0.64um has_sol_table(6) = .true. !1.6um @@ -344,50 +340,50 @@ contains chan_string(1) = '03' chan_string(6) = '10' chan_string(7) = '11' - chan_string(20) = '12' + chan_string(20) = '12' sensor_identifier = 'eps' case default print*,' Sensor is ', trim(self%sensor) stop 'add sensor in dcomp_lut_mod.f90 routine populate...' - + end select sensor_block sensor_identifier = trim(self % lut_path) & - & // trim(sensor_identifier) - - + & // trim(sensor_identifier) + + loop_channel : do i_chn = 1 , n_channels if ( .not. has_sol_table ( i_chn ) ) cycle loop_phase: do i_phase = 1 , 2 - - + + self%channel(i_chn)%phase(i_phase)%file = trim(sensor_identifier) & - + & // '_ch'//trim ( chan_string ( i_chn ) ) & & //'_ref_lut_'//phase_string(i_phase)//'_cld.hdf' - - + + if ( has_ems_table(i_chn) ) then - + self%channel(i_chn)%phase(i_phase)%file_ems = trim(sensor_identifier) & - + & // '_ch'//trim ( chan_string ( i_chn ) ) & & //'_ems_lut_'//phase_string(i_phase)//'_cld.hdf' self % channel(i_chn) % phase(i_phase) % has_ems = .true. end if - - + + self % channel(i_chn) % phase(i_phase) % has_sol = .true. - + end do loop_phase end do loop_channel - - - + + + end subroutine lut__set_filename - - + + ! ---------------------------------------------------------------- ! ! ---------------------------------------------------------------- @@ -397,38 +393,38 @@ contains character ( len = * ) , intent(in), optional :: ancil_path character ( len =20) :: host integer :: i_chn - + ! - check if sensor is already initialized if ( self % sensor == sensor ) then return end if - + call getenv("HOST",host) - + ! - some lut paths self % lut_path = '/Users/awalther/DATA/Ancil_Data/clavrx_ancil_data/static/luts/cld/' if ( host(1:4) == 'saga' ) self % lut_path = '/data/Ancil_Data/clavrx_ancil_data/static/luts/cld/' if ( present(ancil_path)) self % lut_path = trim(ancil_path) self % sensor = trim(sensor) - + if (.not. allocated (self % channel ) ) allocate ( self % channel (NUM_CHN)) - + do i_chn = 1 , NUM_CHN if (.not. allocated (self % channel (i_chn) % phase ) ) allocate ( self % channel (i_chn) % phase (NUM_PHASE) ) - + end do - + ! - set filenames call self % set_filename - + ! - clear memory for new sensor call self % clear_lut_memory - + call self % init_dims( ) - + end subroutine lut__initialize - + ! ---------------------------------------------------------------- ! ! ---------------------------------------------------------------- @@ -438,11 +434,11 @@ contains real , intent(in) , optional :: sat real , intent(in) , optional :: sol real , intent(in) , optional :: azi - + if ( present(sat) ) sat_m = sat if ( present(sol) ) sol_m = sol if ( present(azi) ) azi_m = azi - + ! - compute pos and weights call dcomp_interpolation_weight(self%dims%n_sat_zen , sat , self%dims%sat_zen & @@ -454,9 +450,9 @@ contains call dcomp_interpolation_weight(self%dims%n_rel_azi , azi , self%dims%rel_azi & &, near_index = self % pos_azi ) - + end subroutine lut__set_angles - + ! -------------------------------------------------------------------------- ! ! clears memory of LUT_data object @@ -466,20 +462,20 @@ contains class ( lut_type ) , target :: self integer :: idx_phase , idx_chn type (lut_data_type), pointer :: data_loc => null() - - + + do idx_phase =1, NUM_PHASE do idx_chn =1, NUM_CHN data_loc => self % channel ( idx_chn ) % phase ( idx_phase) call data_loc % dealloc() - + end do end do - - - + + + end subroutine lut__clear_lut_memory - + ! -------------------------------------------------------------------------- ! PURPOSE : return data from LUT ! input: channel, phase, cod (log10 ), cps(log10) @@ -494,20 +490,20 @@ contains ! ------------------------------------------------------------------------- subroutine lut__get_data ( self, idx_chn , idx_phase , cod_log10, cps_log10 & & , out ) - + class ( lut_type ) , target :: self integer , intent(in) :: idx_chn integer , intent(in) :: idx_phase real, intent(in) :: cod_log10 real, intent(in) :: cps_log10 - + type ( lut_output ) :: out - + integer :: pos_cod,pos_cps real :: wgt_cod, wgt_cps real , save :: cod_log10_saved - - + + real :: rfl_cld_2x2 (2,2) real :: trn_sol_cld_2x2 (2,2) real :: trn_sat_cld_2x2 (2,2) @@ -516,9 +512,9 @@ contains real :: trn_ems_cld_2x2 ( 2,2) real :: alb_cld_2x2 ( 2,2) real :: ref_diff , cod_diff - + type (lut_data_type), pointer :: data_loc => null() - + out % ems = -999. data_loc => self % channel ( idx_chn ) % phase ( idx_phase) @@ -555,16 +551,16 @@ contains & , out % dsph_alb_dcod , out % dSph_alb_dcps) call interpolate_2d ( alb_cld_2x2 , wgt_cps , wgt_cod , ref_diff , cod_diff , out % alb & & , out % dalb_dcod , out % dalb_dcps) - + if ( data_loc % has_ems ) then ems_cld_2x2 = data_loc%cld_ems (pos_cps:pos_cps+1,pos_cod:pos_cod+1,self%pos_sat) call interpolate_2d ( ems_cld_2x2, wgt_cps , wgt_cod , ref_diff , cod_diff & , out % ems, out % dEms_dcps , out % dEms_dcod ) - + trn_ems_cld_2x2 = data_loc%cld_trn_ems (pos_cps:pos_cps+1,pos_cod:pos_cod+1,self%pos_sat) call interpolate_2d ( trn_ems_cld_2x2, wgt_cps , wgt_cod , ref_diff , cod_diff & , out % trn_ems, out % dtrnEms_dcps, out % dtrnEms_dcod ) - + end if cod_log10_saved = cod_log10 @@ -576,35 +572,35 @@ contains class ( lut_type ) , target :: self integer , intent(in) :: idx_chn integer , intent(in) :: idx_phase - + real, intent(out) :: rfl(9) real, intent(out) :: ems(9) - + type (lut_data_type), pointer :: data_loc => null() - + data_loc => self % channel ( idx_chn ) % phase ( idx_phase) - - + + rfl = data_loc%cld_refl( :,29,self%pos_sol,self%pos_sat,self%pos_azi) - + if ( data_loc % has_ems ) then ems = data_loc%cld_ems (:,29,self%pos_sat) end if - - + + end subroutine lut_data__thick_cloud_rfl - + ! ---------------------------------------------------------------- ! ! ---------------------------------------------------------------- subroutine lut_data__read_hdf ( self ) - + class ( lut_data_type ) :: self - + if ( self % has_sol .or. self % has_ems ) then call self % alloc end if - + if ( self % has_sol ) then if ( .not. file_test ( self % file )) then print*, 'file not here : ', self % file @@ -617,7 +613,7 @@ contains , self % cld_sph_alb & , self % cld_refl ) end if - + if ( self % has_ems ) then if ( .not. file_test ( self % file_ems )) then print*, 'file ems not available channel ', self % file_ems @@ -628,23 +624,23 @@ contains , self % cld_ems & ! - output , self % cld_trn_ems) end if - + end subroutine lut_data__read_hdf - + ! ---------------------------------------------------------------- ! ! ---------------------------------------------------------------- subroutine lut__init_dims( self) class ( lut_type ) :: self character ( len = 1020 ) :: hdf_file - + hdf_file = trim(self % channel ( 1) % phase (1 ) % file) - + if ( .not. file_test(hdf_file) ) then print*,'lut file not existing! ---- ==> ', trim(hdf_file) stop 'lut file not existing! ==> ' end if - + ! this should be read from file, but this is also possible self % dims% n_sat_zen = 45 @@ -652,7 +648,7 @@ contains self % dims% n_rel_azi = 45 self % dims% n_cod = 29 self % dims% n_cps = 9 - + call read_hdf_dcomp_dims ( hdf_file & @@ -661,18 +657,18 @@ contains , self % dims% rel_azi & , self % dims% cod & , self % dims% cps ) - - + + end subroutine lut__init_dims - + ! ---------------------------------------------------------------- ! ! ---------------------------------------------------------------- subroutine lut_data__alloc ( self) class ( lut_data_type ) :: self - + allocate ( self % cld_alb (9,29,45)) allocate ( self % cld_trn (9,29,45)) allocate ( self % cld_sph_alb (9,29)) @@ -680,25 +676,25 @@ contains allocate ( self % cld_ems (9,29,45)) allocate ( self % cld_trn_ems (9,29,45)) end subroutine lut_data__alloc - + ! ---------------------------------------------------------------- ! ! ---------------------------------------------------------------- subroutine lut_data__dealloc ( self) class ( lut_data_type ) :: self - + if ( allocated (self % cld_alb) ) deallocate ( self % cld_alb ) if ( allocated (self % cld_trn) ) deallocate ( self % cld_trn ) if ( allocated (self % cld_sph_alb) ) deallocate ( self % cld_sph_alb ) if ( allocated (self % cld_refl) ) deallocate ( self % cld_refl ) if ( allocated (self % cld_ems) ) deallocate ( self % cld_ems ) if ( allocated (self % cld_trn_ems) ) deallocate ( self % cld_trn_ems ) - + self % is_set = .false. - + end subroutine lut_data__dealloc - + ! ---------------------------------------------------------------- ! ! ---------------------------------------------------------------- @@ -708,13 +704,13 @@ contains real , intent(out) , optional :: sol real , intent(out) , optional :: azi character(10), intent(out), optional :: sensor - + if ( present(sensor)) sensor = trim(self % sensor) if ( present(sat) ) sat = self % dims % sat_zen ( self % pos_sat ) if ( present(sol) ) sol = self % dims % sat_zen ( self % pos_sol ) if ( present(azi) ) azi = self % dims % sat_zen ( self % pos_azi ) - + end subroutine lut__getProperty - + end module dcomp_lut_mod diff --git a/cx_dncomp/src/dcomp_retrieval_mod.f90 b/cx_dncomp/src/dcomp_retrieval_mod.f90 index c5c748a6fae87d3326dbb8a73284ed7a077bed82..210956203f90cc6e7b7eae9eea0c4a49a89537f2 100644 --- a/cx_dncomp/src/dcomp_retrieval_mod.f90 +++ b/cx_dncomp/src/dcomp_retrieval_mod.f90 @@ -169,8 +169,6 @@ contains sfc_albedo(1) = alb_sfc(1) ! White sky sfc_albedo(2) = alb_sfc(2) - ! - sfc_albedo(1) = alb_sfc(3) ! DS - debug_mode = 4 if ( present ( debug_in )) debug_mode = debug_in diff --git a/cx_dncomp/src/dcomp_science_tools_mod.f90 b/cx_dncomp/src/dcomp_science_tools_mod.f90 index 6ccf69f483924e93793b9c605a79ca868d5458d7..e95feb70825e57808e5df43f247019e80e9bb009 100644 --- a/cx_dncomp/src/dcomp_science_tools_mod.f90 +++ b/cx_dncomp/src/dcomp_science_tools_mod.f90 @@ -12,17 +12,17 @@ contains implicit none character (len = * ) :: sensor real, intent ( in ) :: sol_zen - + real :: sun_earth_distance real, parameter :: PI = 3.14159265 real, parameter :: DTOR = PI / 180. real :: rad_to_refl real :: solar, ew , solar_rad_20 integer :: start_day - + start_day = 100 !dd - + !- these are all sensor specifiv values and van be removed an computed in dcomp box! sun_earth_distance = 1.0 - 0.016729 * cos ( 0.9856 * ( start_day - 4.0) * DTOR ) @@ -113,7 +113,7 @@ contains ew = 253.16404 case('METOP-C') solar = 3.9731433 - ew = 253.16404 + ew = 253.16404 case ('Meteosat-8') solar = 5.3444818 ew = 365.59826 @@ -131,7 +131,10 @@ contains ew = 116.413 case('GOES-17') ! faked from goes-16 AW 28 Aug 2018 solar = 1.709 - ew = 116.413 + ew = 116.413 + case('GOES-18') ! faked from goes-16 AW 16 Aug 2022 + solar = 1.709 + ew = 116.413 case('COMS-1') solar = 4.8461549 ew = 306.29122 @@ -146,16 +149,16 @@ contains ew = 305.69 case('METIMAGE') solar = 2.03 - ew = 128.72 + ew = 128.72 case('Met_Image') solar = 2.03 - ew = 128.72 + ew = 128.72 case default - + stop 'missing sensor calibration; add in get_rad_refl_factor.f90' end select - - + + solar_rad_20 = 1000.* solar / ew rad_to_refl = PI / cos (sol_zen * DTOR )/ solar_rad_20 / sun_earth_distance ** 2 @@ -167,20 +170,20 @@ contains real, intent ( in) :: tmp character (len = * ) :: sensor !real, intent ( out), optional :: db_dt - - - + + + character(len = 20 ) ,save :: sensor_saved real :: rad - + real :: db_dt_tmp integer, parameter:: nplanck = 161 real, dimension(nplanck), save :: B20 - real, parameter :: T_planck_min = 180.0 + real, parameter :: T_planck_min = 180.0 real, parameter :: delta_T_planck = 1.0 real, dimension(nplanck) , save :: T_planck integer :: l , i - + real :: nu_20 , a1_20 , a2_20 real , parameter :: c1 = 1.191062e-5 real , parameter :: c2 = 1.4387863 @@ -188,7 +191,7 @@ contains real :: c2_times_nu_20 if ( sensor /= sensor_saved ) then - + select case ( sensor ) case ('GOES-08') nu_20 = 2559.8724 @@ -329,7 +332,11 @@ contains case ('GOES-17') ! faked initially from GOES-16 on 28 Aug 2018 AW nu_20 = 2570.97 a1_20 = -0.45401969 - a2_20 = 1.0004997 + a2_20 = 1.0004997 + case ('GOES-18') ! faked initially from GOES-16 on 16 Aug 2022 AW + nu_20 = 2570.97 + a1_20 = -0.45401969 + a2_20 = 1.0004997 case('COMS-1') nu_20 = 2675.0265 a1_20 = -2.2829416 @@ -349,32 +356,32 @@ contains case('METIMAGE') nu_20 = 2667.55436180 a1_20 = -1.52502606 - a2_20 = 1.00389872 + a2_20 = 1.00389872 case default print*,'missing sensor calibration for sensor ', sensor - + stop ' stop; add to get_planck_radiance_39um' end select - + c1_times_nu_20__3 = c1 * nu_20 ** 3 c2_times_nu_20 = c2 * nu_20 - + do i = 1 , nplanck t_planck(i) = T_planck_min + ( i - 1 ) * delta_T_planck B20(i) = c1_times_nu_20__3 / ( exp ( ( c2_times_nu_20 ) / & (( T_planck(i) - a1_20 ) / a2_20 ) ) - 1.0) end do - + sensor_saved = sensor - + end if l = NINT(( tmp - T_planck_min ) / delta_T_planck) l = max (1, min ( nplanck - 1 , l ) ) dB_dT_tmp = (B20(l+1)-B20(l))/(T_planck(l+1)-T_planck(l)) rad = B20(l) + (tmp - T_planck(l)) * (dB_dT_tmp) - - + + end function get_planck_radiance_39um diff --git a/cx_dncomp/src/dncomp_trans_atmos_mod.f90 b/cx_dncomp/src/dncomp_trans_atmos_mod.f90 index c1d09708fa637ae42a4e4fa219e81e8ac308521e..a7bb38576485d007d65bb75edb2c067ef700851e 100644 --- a/cx_dncomp/src/dncomp_trans_atmos_mod.f90 +++ b/cx_dncomp/src/dncomp_trans_atmos_mod.f90 @@ -40,9 +40,9 @@ contains real, intent(in) :: press_sfc real, intent(in) :: press_cld real, intent(in) :: air_mass - real :: gas_coeff_inp(3) - real :: ozone_coeff_inp(3) - real :: rayleigh_coeff_inp + real, intent(in) :: gas_coeff_inp(3) + real, intent(in) :: ozone_coeff_inp(3) + real, intent(in) :: rayleigh_coeff_inp real, intent(out) :: trans real, intent(out) :: trans_uncert @@ -84,9 +84,9 @@ contains real, intent(in) :: press_sfc(:,:) real, intent(in) :: press_cld(:,:) real, intent(in) :: air_mass(:,:) - real :: gas_coeff_inp(3) - real :: ozone_coeff_inp(3) - real :: rayleigh_coeff_inp + real, intent(in) :: gas_coeff_inp(3) + real, intent(in) :: ozone_coeff_inp(3) + real, intent(in) :: rayleigh_coeff_inp real, intent(out) :: trans(:,:) real, intent(out) :: trans_uncert(:,:) @@ -126,9 +126,9 @@ contains real, intent(in) :: press_sfc(:) real, intent(in) :: press_cld(:) real, intent(in) :: air_mass(:) - real :: gas_coeff_inp(3) - real :: ozone_coeff_inp(3) - real :: rayleigh_coeff_inp + real, intent(in) :: gas_coeff_inp(3) + real, intent(in) :: ozone_coeff_inp(3) + real, intent(in) :: rayleigh_coeff_inp real, intent(out) :: trans(:) real, intent(out) :: trans_uncert(:) @@ -149,9 +149,9 @@ contains ! ! subroutine set_coeffs ( gas_coeff_inp, ozone_coeff_inp, rayleigh_coeff_inp) - real :: gas_coeff_inp(3) - real :: ozone_coeff_inp(3) - real :: rayleigh_coeff_inp + real, intent(in) :: gas_coeff_inp(3) + real, intent(in) :: ozone_coeff_inp(3) + real, intent(in) :: rayleigh_coeff_inp gas_coeff = gas_coeff_inp ozone_coeff = ozone_coeff_inp diff --git a/cx_dncomp/src/sensorname_from_wmoid.f90 b/cx_dncomp/src/sensorname_from_wmoid.f90 index 9e4a633bba440f4e9173694f50b4a899b2cee460..45ec184d89dd2f330b23c8280764a3d51bb3bde2 100644 --- a/cx_dncomp/src/sensorname_from_wmoid.f90 +++ b/cx_dncomp/src/sensorname_from_wmoid.f90 @@ -12,25 +12,25 @@ function sensorname_from_wmoid (id) result(sensor_name) case(4) sensor_name = 'METOP-A' case(5) - sensor_name = 'METOP-C' + sensor_name = 'METOP-C' case(55) - sensor_name = 'Meteosat-8' + sensor_name = 'Meteosat-8' case(56) - sensor_name = 'Meteosat-9' + sensor_name = 'Meteosat-9' case(57) - sensor_name = 'Meteosat-10' + sensor_name = 'Meteosat-10' case(70) - sensor_name = 'Meteosat-11' + sensor_name = 'Meteosat-11' case(171) sensor_name = 'MTSAT-1R' case (172) sensor_name = 'MTSAT-2' case (173) - sensor_name = 'AHI' + sensor_name = 'AHI' case (174) - sensor_name = 'AHI' + sensor_name = 'AHI' case (200:204) - write(sensor_name, "('NOAA-',i2.2)") id - 192 + write(sensor_name, "('NOAA-',i2.2)") id - 192 case (205:209) write(sensor_name, "('NOAA-',i2.2)") id - 191 case(223) @@ -38,7 +38,7 @@ function sensorname_from_wmoid (id) result(sensor_name) case(224) sensor_name = 'VIIRS' case(225) - sensor_name = 'NOAA-20' + sensor_name = 'NOAA-20' case(252) sensor_name = 'GOES-08' case(253) @@ -56,34 +56,36 @@ function sensorname_from_wmoid (id) result(sensor_name) case(259) sensor_name = 'GOES-15' case(384) - sensor_name = 'METIMAGE' + sensor_name = 'METIMAGE' case(523) sensor_name = 'FY3D' case(530) sensor_name = 'FY4A' case(270) - sensor_name = 'GOES-16' + sensor_name = 'GOES-16' case(271) - sensor_name = 'GOES-17' + sensor_name = 'GOES-17' + case(272) + sensor_name = 'GOES-18' case(705) - sensor_name = 'NOAA-05' + sensor_name = 'NOAA-05' case(706) - sensor_name = 'NOAA-06' + sensor_name = 'NOAA-06' case(707) sensor_name = 'NOAA-07' case(708) - sensor_name = 'TIROS-N' + sensor_name = 'TIROS-N' case(783) sensor_name = 'MODIS-TERRA' case(784) sensor_name = 'MODIS-AQUA' case(810) - sensor_name = 'COMS-1' + sensor_name = 'COMS-1' case default - print*,'sensor wmo id: ', id + print*,'sensor wmo id: ', id stop 'please inform andi.walther@ssec.wisc.edu wmo id: ' end select - - + + end function sensorname_from_wmoid diff --git a/cx_sds_io/Release_gfortran/makefile b/cx_sds_io/Release_gfortran/makefile index ae03375753e2a72e03f738e980c30070a10fb51d..f17c8186e0bde265510bf1fed3a61fe0932cee7a 100644 --- a/cx_sds_io/Release_gfortran/makefile +++ b/cx_sds_io/Release_gfortran/makefile @@ -6,6 +6,21 @@ RM := rm -rf +GF_VERSION := $(shell gfortran -dumpversion) +VERSION := 9. +fflags1= -O2 + +GF_VERSION_MAJ = $(firstword $(subst ., ,$(GF_VERSION))) + + +ifeq ($(shell test $(GF_VERSION_MAJ) -gt 9; echo $$?),0) +fflags1 += -fallow-argument-mismatch +endif + +#ifeq ($(VERSION),$(firstword $(sort $(GF_VERSION) $(VERSION)))) +#fflags1 += -fallow-argument-mismatch +#endif + # All of the sources participating in the build are defined here -include sources.mk -include src/subdir.mk @@ -35,14 +50,22 @@ endif # Add inputs and outputs from these tool invocations to the build variables + + + + # All Target all: cx_sds_io + + + # Tool invocations cx_sds_io: $(OBJS) $(USER_OBJS) + @echo 'Building target: $@' @echo 'Invoking: MacOS X Fortran Linker' - gfortran -g -O0 -L"${HDF5_PATH}/lib/" -L"${HDF4_PATH}/lib" -L"${NETCDF_PATH}/lib/" -o "cx_sds_io" $(OBJS) $(USER_OBJS) $(LIBS) + gfortran $(fflags1) -L"${HDF5_PATH}/lib/" -L"${HDF4_PATH}/lib" -L"${NETCDF_PATH}/lib/" -o "cx_sds_io" $(OBJS) $(USER_OBJS) $(LIBS) @echo 'Finished building target: $@' @echo ' ' $(MAKE) --no-print-directory post-build diff --git a/cx_sds_io/Release_gfortran/src/subdir.mk b/cx_sds_io/Release_gfortran/src/subdir.mk index 8ba428a61071a6ed27e95e37c4bd240ad673f786..1371986b2accaa62768b1c41a2e8ac64ef6fc6a8 100644 --- a/cx_sds_io/Release_gfortran/src/subdir.mk +++ b/cx_sds_io/Release_gfortran/src/subdir.mk @@ -29,11 +29,13 @@ OBJS += \ # Each subdirectory must supply rules for building sources it contributes src/%.o: ../src/%.f90 @echo 'Building file: $<' + @echo $(sort $(GF_VERSION) $(VERSION)) @echo 'Invoking: GNU Fortran Compiler' - gfortran -I"${HDF4_PATH}/include" -I"${HDF5_PATH}/include/" -I"${NETCDF_PATH}//include/" -O2 -c -o "$@" "$<" + gfortran $(fflags1) -I"${HDF4_PATH}/include" -I"${HDF5_PATH}/include/" -I"${NETCDF_PATH}//include/" -O2 -c -o "$@" "$<" @echo 'Finished building: $<' @echo ' ' + src/cx_h5_read_mod.o: ../src/cx_h5_read_mod.f90 src/cx_sds_type_definitions_mod.o src/readh5dataset.o src/cx_hdf_read_mod.o: ../src/cx_hdf_read_mod.f90 src/cx_sds_type_definitions_mod.o diff --git a/docs/release/RELEASE.md b/docs/release/RELEASE.md new file mode 100644 index 0000000000000000000000000000000000000000..d9ed8b69b13b13493a43fef2cdd65694632080c2 --- /dev/null +++ b/docs/release/RELEASE.md @@ -0,0 +1,22 @@ + +Release v1.0.0 +================== + +Checklist +---------- + +- remove commented and unreachable code +- remove redundant files +- grep all TODO +- disable incomplete features +- review -Wall compile warnings +- debug compile and run full testing suite +- update code version in version.inc and acha module +- check module documentation +- code formatting +- Update README, CHANGES.md +- make release summary commit +- rebase and reword/fixup commit messages + + + diff --git a/docs/release/annotated_log.txt b/docs/release/annotated_log.txt new file mode 100644 index 0000000000000000000000000000000000000000..ca0c3c81fd0caa89d6e2258ce0d271160e6a05d8 --- /dev/null +++ b/docs/release/annotated_log.txt @@ -0,0 +1,4505 @@ +commit 31d6cd903b1ecddf34f055f0b67628828f9a8479 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Wed Aug 17 19:35:59 2022 +0000 + + Change g16 conus test to daytime + + No 31d6cd9 data for comparison +commit 106e4ced78888cb2bc1a48ada42b0eb88f75131b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Aug 15 18:14:24 2022 +0000 + + Put cld_cwp_nwp back in level2 + + Missing parent test data, using ancestor e7124ae + ==================== nwp ==================== + cld_cwp_nwp differs in "test_g16_conus_day" + + Compared: 106e4ce e7124ae + +commit 5b3967c7b0bfc087ef2b0aa929bdf3edbd89fd9a +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Aug 15 18:07:00 2022 +0000 + + Add more changes to changelog + + No 5b3967c data for comparison +commit b3285a45ab9e1dedbab4501074384630b5ee8b13 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Aug 8 15:46:20 2022 +0000 + + More annotations + + No b3285a4 data for comparison +commit e7b4119566a7d36ebbca563d32c08f3c1e79ec11 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Aug 8 15:26:53 2022 +0000 + + Add annotated commit log in release docs + + No e7b4119 data for comparison +commit bf0cc18bf2aa0fb3cbfda02b660e57a929f161b8 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri Aug 5 20:57:54 2022 +0000 + + Completely remove top-down opaque cloud height + + No bf0cc18 data for comparison +commit 997b94e07aae30cca0eb5f2df40869488bd12d48 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Wed Aug 10 17:49:54 2022 -0500 + + removed unused module linking + + No 997b94e data for comparison +commit be36772d034d836707daef45c33ccc48ade00579 +Author: Mike Foster <mfoster@incus.ssec.wisc.edu> +Date: Fri Feb 11 20:45:36 2022 +0000 + + Remove VZA correction since bug has been fixed + + No be36772 data for comparison +commit e7124aee81f52b1b32f9178be063de751cdce5f8 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri Aug 5 15:26:46 2022 +0000 + + Remove unused code + +commit fde7f4a4358e4741d78467e1fc45d2f92ea550ca +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri Jul 29 18:17:03 2022 +0000 + + Add gdb to testing modes + +commit 6d64b525ee152f426342f5196925cefd3f14fa26 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri Jul 29 15:07:21 2022 +0000 + + Fix missing values in refl_sfc_white_sky_ + +commit 16c64767c62953495a6a533daa0cad005b81822b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri Jul 29 14:43:24 2022 +0000 + + Initialize array + +commit 29aab4a569d09243261693be5e7b05fa8a8aeb3c +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Jul 28 21:55:51 2022 +0000 + + Fix data type in refl_sfc_white_sky_ + +commit 7ea6dd24ac3f0514af7f72f6ebcc651155521ff6 +Merge: 8badfec 8cd04c6 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Jul 28 20:03:34 2022 +0000 + + Merge branch 'master' into develop + + NOTE: merge with master branch, which diverged from develop in Feb 2022. + The extra commits in master had no effect on output + These are all the changes that have happened in develop since then + + ==================== l1b ==================== + cld_temp_opaque differs in "test_g16_conus_day" + + ==================== ancil ==================== + ndvi_sfc differs in "test_g16_conus_day" + + ==================== nwp ==================== + cld_height_opaque differs in "test_g16_conus_day" + cld_press_opaque differs in "test_g16_conus_day" + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== rtm ==================== + refl_0_65um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_65um_nom_clear_sky differs in "test_g16_conus_day" + refl_0_86um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_86um_nom_clear_sky differs in "test_g16_conus_day" + refl_1_60um_nom_atmos_corr differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + cld_press_lower_acha missing from 8cd04c6/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + refl_1_60um_nom_clear_sky differs in "test_g16_conus_day" + + Compared: 7ea6dd2 8cd04c6 + +commit 8badfec98d70e068d2ec309b375766063433bc1a +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri Jul 15 17:56:49 2022 +0000 + + Test updates + +commit 18d757fb69c32ee0bd869b30d254d3ee20142b8e +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Jun 30 18:31:19 2022 +0000 + + Add perf and valgrind testing modes + +commit aef67a184c008e65afa829d031267c009b62014e +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Tue Jun 14 14:04:26 2022 +0000 + + Update testing documentation and add archive script + +commit 35d97430ef7ac06e93e8be9ae022edff3473a703 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Wed Jun 8 18:55:48 2022 +0000 + + Initialize pointers + +commit dec29253c3cbacc818962130cf11d02543138d2f +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon May 23 16:32:00 2022 +0000 + + Remove commented code and fix some formatting + +commit 8863992108c07ffff7588bf78ea2b8e5958d222b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon May 23 15:38:33 2022 +0000 + + Fix more uninitialized memory reads + + NOTE: cloud_type_acha changes because of uninitialized memory. Fixed in 8863992 (this commit) + + ==================== acha ==================== + cloud_type_acha differs in "test_g16_conus_day" + + Compared: 8863992 ae2cb9f + +commit ae2cb9fa308e2ef9880c17dbbc58275fd6604662 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Tue May 17 21:37:24 2022 +0000 + + Update changelog + +commit fd9d4ab6a931c1995ab46662105818dd30cd6784 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Tue May 17 21:23:46 2022 +0000 + + Update version numbers + +commit e3660702cabc0f45c1e82732a7f90e5308a54dcd +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 20:46:36 2022 +0000 + + fix cloud transmission long_name in level 2 + +commit 1d58aa5c0e94cd184f00a26a8b11f1c9a6736ca6 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 19:56:09 2022 +0000 + + Remove commented code + +commit 39e1606f49f918cf4d57cc170f89ad81b118ebd0 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 19:55:16 2022 +0000 + + Stop using uninitialized data in cloud_height_routines + +commit 61708bdfde67e2d3db52f160231efb3e21cdf89c +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 19:34:29 2022 +0000 + + Always initialize pointers in acha_module + +commit 7b10e0e035ae3429c78c638ca3f0f535a14099a9 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 19:28:40 2022 +0000 + + Stop using uninitialized data within dncomp + +commit 17cc15a0dfcd99e6c62d2827ae2bde095ae9b748 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 16:30:01 2022 +0000 + + Fix implicit usage of uninitialized data due to function signature in acha_rtm_mod.f90 + +commit 45690af03ba017d0baa842c6c2fc5c2b41151b54 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 14:01:10 2022 +0000 + + If-statement uses uninitialized memory in sensor_mod + +commit 14a9dfc2f45dabf61326d7f3c44c57ce99b0cdbc +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu May 12 18:15:28 2022 +0000 + + Move docs + +commit 02db9ccb07e861f526d5c40d52b28d4b0e84f736 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu May 12 15:18:26 2022 +0000 + + Partially remove commented code + +commit f3774db2fad2476471b96579216a9feba7169b59 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu May 12 14:51:27 2022 +0000 + + Add release checklist + +commit ea9266079e408077241e0b9c7c8320471425e3e3 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Jul 28 02:25:16 2022 +0000 + + bug fix identified by Coda + + NOTE: opaque cloud temp also changed back to bottom-up (was top-down since bca2d98) + AMV applications prefer top-down + + ==================== l1b ==================== + cld_temp_opaque differs in "test_g16_conus_day" + + ==================== ancil ==================== + ndvi_sfc differs in "test_g16_conus_day" + + ==================== nwp ==================== + cld_height_opaque differs in "test_g16_conus_day" + cld_press_opaque differs in "test_g16_conus_day" + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== rtm ==================== + refl_0_65um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_65um_nom_clear_sky differs in "test_g16_conus_day" + refl_0_86um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_86um_nom_clear_sky differs in "test_g16_conus_day" + refl_1_60um_nom_atmos_corr differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + refl_1_60um_nom_clear_sky differs in "test_g16_conus_day" + + Compared: ea92660 307f005 + +commit 307f0050fa2204690e249f317cdfec8b91b54cf1 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 20:37:42 2022 +0200 + + change for higher gfortrans + +commit aeb85dc01df9488e3568bb704b8a0fa7936cd4f4 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 18:19:43 2022 +0200 + + change for higher gfortrans + +commit eee559d921815768f92a7a20a61872d21413439b +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 17:40:11 2022 +0200 + + change for higher gfortrans + + Missing parent test data, using ancestor 52c305f +commit 4925f01070cb69e8acc818a28dd4e3d63c0dec3e +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 17:22:12 2022 +0200 + + change for higher gfortrans + + No 4925f01 data for comparison +commit a9c283370869712620138e1079fd91ac2d76ec22 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 17:13:08 2022 +0200 + + int instead of old style long + + No a9c2833 data for comparison +commit 2ab73ab9068248b2928796e5aa7a5b7fb75be536 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 17:12:24 2022 +0200 + + change for higher gfortrans + + No 2ab73ab data for comparison +commit 68736a7fe03a36eec224d3fc4114895d848529e0 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 17:11:27 2022 +0200 + + change for higher gfortrans + + No 68736a7 data for comparison +commit 52c305fb0005a4bab76d6d47d3db9913a915334d +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 16:26:08 2022 +0200 + + add gfortran10 + +commit 71034c612e59bff00a4761d3933c81398cbc1e1a +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Wed Jun 29 19:03:40 2022 +0200 + + add gfortran versions above gcc10 + + Missing parent test data, using ancestor 25aed62 +commit b84c558a11d9bca0e9cf9a063d2f75d2a554e8e1 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Wed Jun 29 19:00:46 2022 +0200 + + add gfortran versions above gcc10 + + No b84c558 data for comparison +commit c18823407711514350a3893b5f0058cdcebc2e75 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Wed Jun 29 17:33:24 2022 +0200 + + add keywords for newer compilers + + No c188234 data for comparison +commit 25aed6296fa3f65ae6be255073415ed2a40b2372 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jun 24 15:18:51 2022 +0200 + + UMD fix + + NOTE: Before, land emissivity was missing if sfc_emiss_option==0 (UMD) + This commit fixes that (bug predates git repo), so surface emissivity is no longer missing + The change in surface emissivity affects many products. + refl_sfc_white_sky_0_65um_nom differs in Himawari-8 AHI and GOES-16, and GOES-17 ABI + This is due to uninitialzed data outside cropped region, these vars are garbage until 6d64b52 anyway. + + ==================== l1b ==================== + + ==================== geo ==================== + glint_mask differs in multiple tests + + ==================== ancil ==================== + refl_sfc_white_sky_0_65um_nom differs in multiple tests + refl_sfc_white_sky_0_86um_nom differs in multiple tests + refl_sfc_white_sky_1_60um_nom differs in multiple tests + refl_sfc_white_sky_2_10um_nom differs in multiple tests + ndvi_sfc_white_sky_nwp differs in multiple tests + + ==================== nwp ==================== + + ==================== rtm ==================== + temp_11_0um_nom_clear_sky differs in multiple tests + temp_12_0um_nom_clear_sky differs in multiple tests + temp_3_75um_nom_clear_sky differs in multiple tests + temp_8_5um_nom_clear_sky differs in multiple tests + + ==================== ecm2 ==================== + cloud_fraction differs in multiple tests + cloud_fraction_uncertainty differs in multiple tests + cloud_mask differs in multiple tests + cloud_mask_binary differs in multiple tests + cloud_mask_test_packed_results differs in multiple tests + cloud_phase differs in multiple tests + cloud_probability differs in multiple tests + cloud_probability_uncertainty differs in multiple tests + cloud_type differs in multiple tests + conv_cloud_probability differs in multiple tests + ice_cloud_probability differs in multiple tests + smoke_mask differs in multiple tests + water_cloud_probability differs in multiple tests + + ==================== acha ==================== + acha_info differs in multiple tests + acha_inversion_flag differs in multiple tests + acha_quality differs in multiple tests + cld_altitude_acha differs in multiple tests + cld_beta_acha differs in multiple tests + cld_emiss_acha differs in multiple tests + cld_emiss_acha_uncer differs in multiple tests + cld_height_acha differs in multiple tests + cld_height_base_acha differs in multiple tests + cld_height_eff_acha differs in multiple tests + cld_height_uncer_acha differs in multiple tests + cld_opd_acha differs in multiple tests + cld_opd_uncer_acha differs in multiple tests + cld_press_acha differs in multiple tests + cld_press_eff_acha differs in multiple tests + cld_press_uncer_acha differs in multiple tests + cld_reff_acha differs in multiple tests + cld_temp_acha differs in multiple tests + cld_temp_eff_acha differs in multiple tests + cld_temp_lower_acha differs in multiple tests + cld_temp_prior_acha differs in multiple tests + cld_temp_uncer_acha differs in multiple tests + cloud_type_acha differs in multiple tests + cost_acha differs in multiple tests + goodness_acha differs in multiple tests + ice_prob_acha differs in multiple tests + ice_prob_uncer_acha differs in multiple tests + latitude_pc differs in multiple tests + longitude_pc differs in multiple tests + lower_cld_temp_prior_acha differs in multiple tests + supercooled_prob_acha differs in multiple tests + wind_direction_cloud_top_nwp differs in multiple tests + wind_speed_cloud_top_nwp differs in multiple tests + + ==================== acba ==================== + cld_base_altitude differs in multiple tests + cld_geo_thick differs in multiple tests + cld_height_base differs in multiple tests + cld_temp_base differs in multiple tests + lower_cld_base_altitude differs in multiple tests + + ==================== dcomp ==================== + cdnc_dcomp differs in multiple tests + cld_cwp_dcomp differs in multiple tests + cld_opd_dcomp differs in multiple tests + cld_opd_dcomp_3 differs in multiple tests + cld_opd_dcomp_unc differs in multiple tests + cld_reff_dcomp differs in multiple tests + cld_reff_dcomp_3 differs in multiple tests + cld_reff_dcomp_fit differs in multiple tests + cld_reff_dcomp_unc differs in multiple tests + cloud_albedo_0_65um_nom differs in multiple tests + cloud_transmission_0_65um_nom differs in multiple tests + dcomp_info differs in multiple tests + dcomp_quality differs in multiple tests + hcld_dcomp differs in multiple tests + insolation_dcomp differs in multiple tests + insolation_diffuse_dcomp differs in multiple tests + iwc_dcomp differs in multiple tests + lwc_dcomp differs in multiple tests + rain_rate differs in multiple tests + refl_0_65um_nom_asym_dcomp differs in multiple tests + + ==================== sst ==================== + + ==================== ccl ==================== + ccl_1 differs in multiple tests + ccl_2 differs in multiple tests + ccl_3 differs in multiple tests + ccl_4 differs in multiple tests + ccl_5 differs in multiple tests + ccl_layer_flag differs in multiple tests + conv_ccl_1 differs in multiple tests + conv_ccl_2 differs in multiple tests + conv_ccl_3 differs in multiple tests + conv_ccl_4 differs in multiple tests + conv_ccl_5 differs in multiple tests + conv_ccl_layer_flag differs in multiple tests + conv_cloud_fraction differs in multiple tests + supercooled_ccl_2 differs in multiple tests + supercooled_ccl_3 differs in multiple tests + supercooled_ccl_4 differs in multiple tests + supercooled_ccl_5 differs in multiple tests + supercooled_ccl_layer_flag differs in multiple tests + supercooled_cloud_fraction differs in multiple tests + + ==================== misc ==================== + adj_pix_cld_mask differs in multiple tests + beta_11um_12um_tropopause differs in multiple tests + beta_11um_85um_tropopause differs in multiple tests + cld_emiss_splitwin differs in multiple tests + cld_press_splitwin differs in multiple tests + cloud_phase_ir differs in multiple tests + cloud_phase_uncertainty differs in multiple tests + cloud_type_ir differs in multiple tests + csbt_mask_11_0um_nom differs in multiple tests + csbt_mask_12_0um_nom differs in multiple tests + csbt_mask_8_5um_nom differs in multiple tests + emiss_3_75um_nom_clear differs in multiple tests + emiss_sfc_11_0um_nom differs in multiple tests + emiss_sfc_3_75um_nom differs in multiple tests + emiss_sfc_8_5um_nom differs in multiple tests + emiss_tropo_11_0um_nom differs in multiple tests + emiss_tropo_12_0um_nom differs in multiple tests + emiss_tropo_3_75um_nom differs in multiple tests + emiss_tropo_8_5um_nom differs in multiple tests + refl_3_75um_nom_clear_sky differs in multiple tests + surface_temperature_retrieved differs in multiple tests + + + +commit 1ffce1d4f13098e6fa69a5454dee7c77ffda1907 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Jun 20 15:22:57 2022 +0000 + + isnan doesn't work if you compile with -ffast-math + so disable finite-only math flag in modules that use isnan + +commit 4ad19e289ca1e2d3677794c04a5f7b68224da76b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Jun 2 15:57:14 2022 +0000 + + cleanup tmpdirs when no l1b + +commit 59bb6c92f4a44b76e767891a04d48762d3f6a811 +Author: Yue Li <yli@selene.ssec.wisc.edu> +Date: Wed Jun 1 19:55:59 2022 +0000 + + add filter to KDtree input due to unexpected AHI cloud type when lat/lon are missing + +commit bb47ed8d7a368406785643cc61d4995869d0034c +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Thu May 19 15:33:14 2022 +0000 + + a fix to make sure kd-tree calculation is not out of bounds + +commit eabc6ce1b604fa275abc7ada0f6a0e0fb39ddf49 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Mon May 16 21:32:45 2022 +0000 + + added mvcm to goes16/17 + +commit 9f9ee77c56bc6cd2d522c789385e94f80978d1a5 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Tue May 10 21:10:18 2022 +0000 + + Fix bug in DCOMP insolation + +commit 6ed8e6686b7a4e55d7547d7ac76fe2bc92762545 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed May 4 13:32:19 2022 +0000 + + sbaf work + +commit b3aa0419acadfce2957dcda28694183bcb57d55c +Merge: a252649 b57e59b +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed May 4 13:30:44 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + +commit a252649d8b93cfcd047b624475e09b419f977eed +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed May 4 13:28:20 2022 +0000 + + moded for isccp + +commit b57e59be123107e50eaa9b844e4f5daca436bbb6 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed May 4 14:38:24 2022 +0200 + + signal handling + + Missing parent test data, using ancestor 9d9c547 +commit 8a15928354c49eb20eb6750b0658040e18c80a8b +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed May 4 14:13:09 2022 +0200 + + changed signal SIUGTERM from 12 to 15 which seemed to work on all machines + + No 8a15928 data for comparison +commit 8cd04c6586e1e7288fa5731b9a15246c0bd8197e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Apr 18 17:04:20 2022 +0000 + + Revert "excluded high res files from normal VIIRS resolution to avoid stops" + + this was done in master by accident + + This reverts commit 1003948593921790a88517aaed7bba015858c8e0. + +commit 1003948593921790a88517aaed7bba015858c8e0 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Apr 18 16:49:26 2022 +0000 + + excluded high res files from normal VIIRS resolution to avoid stops + +commit 9d9c547c12bc03c01a71fd96aba7060b9f4e6ff2 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Apr 14 20:42:39 2022 +0000 + + Make test work with old python + +commit 0fc95167ef4ab2f8b7f11b323ba1d95424d1f2bd +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Apr 14 19:54:34 2022 +0000 + + Add test for the SIGNAL bugfix + +commit b801989be2c812a7d7427c1bd07b7fafd4821c9b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Apr 14 17:57:32 2022 +0000 + + Handle fortran SIGNAL() return status correctly + +commit 71728f522fdde4b95d67ec93f0187f5141ff3572 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Apr 14 09:37:00 2022 -0500 + + removed confusing and wrong comment in example option line + +commit 10d2123e45c05157002aa78f5fd17e79d65ea4ae +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Tue Apr 5 21:38:39 2022 +0000 + + added mvcm read for him08 + +commit d3a8b263247c5632e19bd4f670d8e826dc53e662 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Apr 4 21:22:24 2022 +0000 + + Make temp_files suffix actually unique and put the dummy files inside the temp_files + +commit 80b21faa61fd471ee947febe2c1aa8e0271e3b8f +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Apr 4 21:05:35 2022 +0000 + + Handle SIGINT and SIGTERM to clean up the temp_files_ directory before exiting + +commit 8b4278f0d09ae5a090d1fef75278c4dbebcacd0b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Tue Apr 5 03:33:14 2022 +0000 + + No new files in cwd + +commit 0b750f7bedc87f410f2044098e2c8c9b5e57a36c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Apr 4 19:13:59 2022 +0200 + + messaging + +commit dd89d94dd29d8b891df1d730cf77a88c7b3838da +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Apr 4 19:13:54 2022 +0200 + + messaging + +commit fc2a483b06bf6876a47dbf184f07f12e774552f9 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Apr 4 19:13:48 2022 +0200 + + messaging + +commit 4241df6ac24cfd5f754806d177025da23f6e7027 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sun Apr 3 15:02:58 2022 +0200 + + fixed messages + +commit 9e13a5ed86f0b29d11cc32297389025b1b4fa26c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sun Apr 3 15:02:40 2022 +0200 + + fixed messages + +commit b9fbd6509dd8b217ebc02d599575a292c20ed7c8 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Apr 1 01:43:43 2022 +0200 + + add catch for all bad-pixels segments for RTM + + NOTE: cloud_type_acha changes because of uninitialized memory. Fixed in 8863992 + + ==================== ccl ==================== + supercooled_ccl_2 differs in "test_g16_conus_day" + + Compared: b9fbd65 280f486 + +commit 280f4865bb7abf9a340559aa49e83a194a575080 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Mar 30 00:52:22 2022 +0200 + + add older GOES to RTTOV + +commit c1d1a64e464a0b9532fb8115e9658c3a21720d12 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Tue Mar 29 20:04:19 2022 +0000 + + set obs to missing, leave only path data + +commit bd16ef7827044c5911b8ee24aec807420590c8b4 +Merge: 7911ca1 71ec9c6 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Mar 28 18:46:14 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + +commit 7911ca1a3ec25f6466d83ea3a396b61f37d2a673 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Mar 28 18:45:54 2022 +0000 + + default acha settings + +commit 71ec9c6ec4c390a23d3ad6991256f06c6951b2f6 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Mar 28 18:44:41 2022 +0000 + + Add changelog + +commit e995d862fc0e0866081327099974c09aab7891bb +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Mar 28 18:41:20 2022 +0000 + + amv parameters called out + +commit 4183499e70f02b64b544fc69659361f8f0dd515d +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Mon Mar 21 23:32:52 2022 +0000 + + turned off temporary shadow + + NOTE: only difference in cloud_mask_test_packed_results is "shadow_detected" bit + + ==================== ecm2 ==================== + shadow_mask differs in "test_g16_conus_day" + + Compared: 4183499 c111e02 + +commit c111e023ad2684df3d6ce0bbd22b52d6228415c3 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Tue Mar 15 21:24:54 2022 +0000 + + fix for caliop matchups missing /= -999 + +commit eb72985f6b43bb56b4815a0fa594d9c5c03ac4b3 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Mar 15 15:17:46 2022 +0000 + + removed commented lines + +commit 9004a1fae86a0391e1a172d7d38bd387016b242c +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Mar 15 15:17:26 2022 +0000 + + removed commented lines + +commit eb7526bb311efe9c0c128aa93e396640b958670e +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Mar 15 15:16:53 2022 +0000 + + removed commented lines + +commit 92f044b3586c0b4fb54e377dd25d4f413f45a860 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Mar 15 15:16:13 2022 +0000 + + removed commented lines + + NOTE: "added cld_press_lower_acha to level2" is a more accurate commit message + + ==================== acha ==================== + cld_press_lower_acha missing from 40054b1/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + ==================== ccl ==================== + supercooled_ccl_2 differs in "test_g16_conus_day" + + Compared: 92f044b 40054b1 + +commit 40054b19e8c29a623da9d40803449c2c85de0770 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Mar 15 15:15:45 2022 +0000 + + removed commented lines + +commit fb704b8d59735c6eb06183f945cde25c775e6dba +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Mar 8 20:55:45 2022 +0000 + + added new metrics + +commit cb05a1f2e717cf86e5c3f0cc5c54c5301927961b +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Thu Mar 3 13:30:25 2022 +0000 + + All modules modified for GOES-18 support + +commit 5afc1589939ef7ee386e223fff75f3a28252e1f7 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Wed Feb 16 18:41:31 2022 +0000 + + Make clavrx fail gracefully when encountering an empty l1b + +commit f4c6d2c82630d90a25770138798e3ddf1cbf6774 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Tue Feb 15 16:02:22 2022 +0000 + + Fix segfault when running avhrr with process_cloud=off + +commit 213bc72b8e909f1ed7ee868b5414b80cd1a70d68 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Feb 15 10:00:13 2022 +0100 + + removed magic numbers + +commit bd6e2e080b9bc6787f02d4f6bc37ac99b31e70ff +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Feb 15 09:43:49 2022 +0100 + + removed useless gamma factor adjustment for solar cjhannels + +commit 3800185c37a87a97e39d615014b2129f281d4587 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Feb 12 11:14:09 2022 +0100 + + early goes rttov + +commit 756c9f9dc90de4a8cf23204b65e2448521060346 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Feb 10 19:25:48 2022 +0000 + + Add bounds check because array oob was causing segfault + +commit 495d7bf0869aa60f07e4292a3fc3655010f168fd +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Feb 10 19:23:47 2022 +0000 + + Convert file to unix line endings + +commit c6dc085b7acf8698007ef28b8a397c2cc47fd05d +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Feb 10 16:14:36 2022 +0000 + + Add AVHRR test + +commit 8050d8455ddc425b54685edf5b1137d1a35e881b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Feb 10 14:48:11 2022 +0000 + + Show clavrx logs during tests + +commit acf0525ac8fd51a578d93be7feca15ad4c2f21ea +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Wed Feb 2 21:18:45 2022 +0000 + + Add VIIRS and FUSION smoke tests + +commit 088c1578c77b9f25e3a84d7bb6ba200f9d0d1f3d +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Jan 31 21:52:41 2022 +0000 + + start setting up CI build + +commit 57c3d111e17b32044bdc530c51dc2c31721a91f8 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Feb 1 16:58:56 2022 +0100 + + reoved useless function in dcomp + +commit 58af54670bcf38543327f7d5c9a6f7e0dd2dd675 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Feb 1 12:37:57 2022 +0100 + + delete file + +commit 705660c8a8265b1269315a050423d1ccbe46973e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Feb 1 12:30:13 2022 +0100 + + removed unused variables and tools + +commit a268952884fc08ae32ea9fd6e1cee2df31ba4634 +Author: Coda Phillips <coda.phillips@ssec.wisc.edu> +Date: Mon Jan 31 17:32:28 2022 +0000 + + Update .gitlab-ci.yml file + +commit 072d2b24c2f465618d9085b548f7ca2fd096cb80 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jan 31 15:13:42 2022 +0100 + + level2 mod fix to avoid endless loop + +commit 73579c1bd955c6b9123bb57a7e5b69ef143fff75 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jan 31 13:22:38 2022 +0100 + + fixed hits metop + +commit eb702d338977e3b537f7f352b6d4d91ac5e63f11 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 26 12:59:07 2022 +0100 + + add some ignore files + +commit a5fd44df07209eb68c27f902d6f9402723ba8edf +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Tue Jan 25 23:33:45 2022 +0000 + + added 2 cases yyyymmdd and hhmm + +commit d0dfe12ebb5e7879380915444ba5c50c19a6a7b8 +Merge: 42b78c7 2c6342f +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Tue Jan 25 20:21:44 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + +commit 42b78c708aa22989fcf999fde307b4295b39130c +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Tue Jan 25 20:21:05 2022 +0000 + + nwp_common_mod.f90 - adjust trop indexing for INDOEX processing issue + +commit 2c6342fba0d07bd006c2a94067f0354b04a7ee9d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jan 20 14:13:15 2022 +0100 + + shadow work + +commit 8240cc70aea2d1582e24a3b0dfc4fe663371768b +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 19 22:00:08 2022 +0000 + + fixed azimuth for l1g + +commit 44b9aa6daabed0d7c63b002be55650d12d902565 +Merge: 6538ba1 381c0b4 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 19 16:04:22 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + +commit 6538ba134dcd86780003c671b6bd1e8b54f2f700 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 19 16:03:56 2022 +0000 + + added radiances to isccp-ng + +commit 381c0b41c21c83dd5205798e3309ce3d9c8d0f5c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 16:07:35 2022 +0100 + + SPACE in caliop + +commit 4df1ed4a825fe4803fd7dc01237d63e5792ae59e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 16:04:51 2022 +0100 + + space mask + + No ancestor data for comparison +commit 0e4d75c577934f857ae4b2635b7f6067ff8560dd +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 15:57:52 2022 +0100 + + stop in space + + No 0e4d75c data for comparison +commit b37025b32df66a5db45164bf6464115c80cea171 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 15:50:16 2022 +0100 + + shadow avoid endless loop + + No b37025b data for comparison +commit 4a3d50080958c92db3ca35fb92794e3f6fe567d0 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 15:49:05 2022 +0100 + + removed stop + + No 4a3d500 data for comparison +commit 1a1277f094616cd8826999f82996bf72f55c5088 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 15:51:38 2022 +0100 + + stop in space + + No 1a1277f data for comparison +commit 7913e701a9f4f9bf8f2444f5cd7e07fb859bb6b7 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 15:45:33 2022 +0100 + + fix + + No 7913e70 data for comparison +commit 7325bb2e87555da5deb069f2684a799eb5b830dd +Merge: b8c04d7 f1d15e2 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 19 14:34:36 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + No 7325bb2 data for comparison +commit b8c04d77749478c1b0222d1ca70df04832a208ba +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 19 14:34:33 2022 +0000 + + small tweaks for l1g + +commit 9354a51e047388ed14a18e3e195f97bb52ee330b +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 19 14:32:54 2022 +0000 + + small tweaks for l1g + + NOTE: cld_height_acha changed because of changes to netcdf type/scale/offset + + ==================== acha ==================== + cld_height_acha differs in "test_g16_conus_day" + + ==================== ccl ==================== + supercooled_ccl_2 differs in "test_g16_conus_day" + + ==================== misc ==================== + wmo_id_l1g differs in "test_g16_conus_day" + + Compared: 9354a51 6567cff + +commit f1d15e26e3cf99155c61604bb1ebd1a05ab11a2a +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 13:56:36 2022 +0100 + + made space to a logical + + No f1d15e2 data for comparison +commit 6567cffdc8d179de37e8f79b90ba5bd3fbd4e6aa +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jan 18 17:44:57 2022 +0100 + + some code style changes + +commit 1628625acdf04e428fbd28b68e2af308fabd7b89 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jan 18 16:30:35 2022 +0100 + + add small comment + +commit 7ef0d51dae23ceaf4a0560708852e76185bb99b0 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Jan 18 15:40:54 2022 +0000 + + added isccpnp wmo line + +commit 7bbb71d6aa04d1f7b4a6ac9290eb63608ccca136 +Merge: 08d0538 27a269c +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Jan 18 15:20:00 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + ==================== misc ==================== + wmo_id_l1g differs in "test_g16_conus_day" + + Compared: 7bbb71d 27a269c + +commit 08d05386eb039b58218e717fc2758bed42c05c30 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Jan 18 15:19:37 2022 +0000 + + mistake in isccp-ng + + ==================== misc ==================== + wmo_id_l1g differs in "test_g16_conus_day" + + Compared: 08d0538 6093ea8 + +commit 27a269c5007a633b209e06a7be9db11114221fdc +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jan 17 18:03:02 2022 +0100 + + many time duplicates + + Missing parent test data, using ancestor 4e4d0a4 +commit 2015dab937732d66b5bed5c871a786c631ea61b3 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jan 17 18:02:32 2022 +0100 + + many time duplicates + + No 2015dab data for comparison +commit 4e4d0a44152b047e4f55dfb5845526e5736b4ad6 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jan 17 16:04:49 2022 +0100 + + small time chance + +commit 9f5588564266f725fbcf27f152473a5afdd11da8 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 18:49:15 2022 +0100 + + several time things + +commit a003e361982c742893cb87b87931b4f3b53ddc9b +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 18:48:36 2022 +0100 + + several time things + +commit 9daf982229de21ed7cd5465cf4e45b38291f3cab +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 17:46:50 2022 +0100 + + some use only calls + +commit 1ce32f432098dbade4b82fa2d83faafddff73b5c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 17:30:12 2022 +0100 + + time object terms + +commit 4cda9e069c0d7d4b83dfbcffa78927f0697f74b3 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 16:17:12 2022 +0100 + + modie time obj extension + + Missing parent test data, using ancestor 4a12234 +commit 78e2ed9167d008f758095dc0ca359589626ef110 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 16:15:10 2022 +0100 + + modie time obj extension + + No 78e2ed9 data for comparison +commit 4a1223438102daae126ea7d03839dd237df108e2 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 16:09:54 2022 +0100 + + fix + + Missing parent test data, using ancestor e1bd2a9 +commit 4e59489bfa43a0bc404dc456c7772f054b96673b +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 15:34:37 2022 +0100 + + start changing to time obj + + No 4e59489 data for comparison +commit e1bd2a9a11d2a9181249cc1f13a0520b0b0af731 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 15:34:03 2022 +0100 + + start changing to time obj + +commit f3294f16cbb1ac56ab1aa5dc09350f83f03a5bc0 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 16:02:30 2022 +0100 + + time obj + +commit c14e81a7647b9fb3b1cf479421410a3231faba3d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 15:52:07 2022 +0100 + + enables doy/msec for time object + + Missing parent test data, using ancestor 6093ea8 +commit a11f83ca67f7af43281786d40cf9c903d271620a +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 15:47:19 2022 +0100 + + time obj + + No a11f83c data for comparison +commit 6093ea847bb2343918dfd769a017d8d20662aa82 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Fri Jan 14 20:20:52 2022 +0000 + + fixed avhrr exclusion in do loop + +commit c5334e0e7af30619aa7eab6b56ee1d60be64c6b6 +Author: Yue Li <yli@selene.ssec.wisc.edu> +Date: Fri Jan 14 15:35:37 2022 +0000 + + fix sensor not found error + +commit c8eb9dab42f9f4d52f5b027e20bf7d4f7795717d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jan 14 13:14:49 2022 +0100 + + test files + +commit ad60ec4be0266fc059af31eeadfc4564fa2a6564 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jan 14 13:14:22 2022 +0100 + + hres viirs work + +commit 671a92b21cc521c70b525a39ebfc96e94e93cf76 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jan 14 13:13:25 2022 +0100 + + library cx_sds_io netcdf enables groups + +commit 6683f967c6ae6172bbfe51e1b12132ebe65f526c +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Jan 13 15:56:08 2022 +0000 + + added isccp met8 and met11 support + +commit 6b21b6201d8bae49fb9db23599285c8bad8be4c0 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Jan 13 04:31:06 2022 +0000 + + removed dead code + +commit 63625f7c2365f603c7790bbd76f4b58fa8249202 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Jan 13 04:13:50 2022 +0000 + + first draft of isccp l1g + +commit 48627d769813610c2d7f7f7de72de5015006dba9 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 12 16:59:30 2022 +0000 + + isccp-ng + + NOTE: a difference in cropping introducted by this commit caused many changes + + ==================== l1b ==================== + cld_temp_opaque differs in "test_g16_conus_day" + refl_0_65um_nom differs in "test_g16_conus_day" + refl_0_65um_nom_max_3x3 differs in "test_g16_conus_day" + refl_0_65um_nom_max_sub differs in "test_g16_conus_day" + refl_0_65um_nom_min_3x3 differs in "test_g16_conus_day" + refl_0_65um_nom_min_sub differs in "test_g16_conus_day" + refl_0_65um_nom_stddev_3x3 differs in "test_g16_conus_day" + refl_0_86um_nom differs in "test_g16_conus_day" + refl_0_86um_nom_max_sub differs in "test_g16_conus_day" + refl_0_86um_nom_min_sub differs in "test_g16_conus_day" + refl_1_60um_nom differs in "test_g16_conus_day" + refl_1_60um_nom_max_sub differs in "test_g16_conus_day" + refl_1_60um_nom_min_sub differs in "test_g16_conus_day" + refl_3_75um_nom differs in "test_g16_conus_day" + temp_11_0um_nom_max_3x3 differs in "test_g16_conus_day" + temp_11_0um_nom_min_3x3 differs in "test_g16_conus_day" + temp_11_0um_nom_stddev_3x3 differs in "test_g16_conus_day" + temp_11um_vs_67um_covar_5x5 differs in "test_g16_conus_day" + temp_3_75um_nom_median_5x5 differs in "test_g16_conus_day" + temp_3_75um_nom_stddev_3x3 differs in "test_g16_conus_day" + + ==================== geo ==================== + glint_mask differs in "test_g16_conus_day" + + ==================== ancil ==================== + coast_mask differs in "test_g16_conus_day" + land_class differs in "test_g16_conus_day" + land_mask differs in "test_g16_conus_day" + ndvi_sfc differs in "test_g16_conus_day" + surface_elevation differs in "test_g16_conus_day" + surface_elevation_max_3x3 differs in "test_g16_conus_day" + surface_elevation_std_3x3 differs in "test_g16_conus_day" + surface_elevation_stddev_3x3 differs in "test_g16_conus_day" + surface_type differs in "test_g16_conus_day" + + ==================== nwp ==================== + cld_height_opaque differs in "test_g16_conus_day" + cld_iwp_nwp differs in "test_g16_conus_day" + cld_lwp_nwp differs in "test_g16_conus_day" + cld_press_nwp differs in "test_g16_conus_day" + cld_press_opaque differs in "test_g16_conus_day" + cld_temp_nwp differs in "test_g16_conus_day" + cloud_fraction_nwp differs in "test_g16_conus_day" + div_200_nwp differs in "test_g16_conus_day" + div_sfc_nwp differs in "test_g16_conus_day" + oisst differs in "test_g16_conus_day" + opaque_height_11_0um_nom differs in "test_g16_conus_day" + opaque_height_12_0um_nom differs in "test_g16_conus_day" + opaque_height_13_3um_nom differs in "test_g16_conus_day" + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + opaque_height_9_7um_nom differs in "test_g16_conus_day" + rh300_nwp differs in "test_g16_conus_day" + snow_class differs in "test_g16_conus_day" + snow_class_nwp differs in "test_g16_conus_day" + surface_temperature_nwp differs in "test_g16_conus_day" + uth_nwp differs in "test_g16_conus_day" + + ==================== rtm ==================== + ndvi_toa differs in "test_g16_conus_day" + refl_0_65um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_65um_nom_clear_sky differs in "test_g16_conus_day" + refl_0_86um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_86um_nom_clear_sky differs in "test_g16_conus_day" + refl_1_60um_nom_atmos_corr differs in "test_g16_conus_day" + temp_11_0um_nom_clear_sky differs in "test_g16_conus_day" + temp_12_0um_nom_clear_sky differs in "test_g16_conus_day" + temp_13_3um_nom_clear_sky differs in "test_g16_conus_day" + temp_3_75um_nom_clear_sky differs in "test_g16_conus_day" + temp_6_7um_nom_clear_sky differs in "test_g16_conus_day" + temp_7_3um_nom_clear_sky differs in "test_g16_conus_day" + temp_9_7um_nom_clear_sky differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + bayes_mask_sfc_type differs in "test_g16_conus_day" + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_qf differs in "test_g16_conus_day" + cloud_mask_rut differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_mask_tut differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + smoke_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + bad_pixel_mask differs in "test_g16_conus_day" + beta_11um_12um_tropopause differs in "test_g16_conus_day" + beta_11um_133um_tropopause differs in "test_g16_conus_day" + beta_11um_67um_tropopause differs in "test_g16_conus_day" + cld_emiss_co2irw differs in "test_g16_conus_day" + cld_emiss_h2o differs in "test_g16_conus_day" + cld_emiss_splitwin differs in "test_g16_conus_day" + cld_height_co2irw differs in "test_g16_conus_day" + cld_height_h2o differs in "test_g16_conus_day" + cld_opd_mask_0_65um_nom differs in "test_g16_conus_day" + cld_opd_mask_1_60um_nom differs in "test_g16_conus_day" + cld_press_co2irw differs in "test_g16_conus_day" + cld_press_h2o differs in "test_g16_conus_day" + cld_press_splitwin differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + emiss_3_75um_nom differs in "test_g16_conus_day" + emiss_3_75um_nom_clear differs in "test_g16_conus_day" + emiss_3_75um_nom_median_3x3 differs in "test_g16_conus_day" + emiss_sfc_11_0um_nom differs in "test_g16_conus_day" + emiss_sfc_3_75um_nom differs in "test_g16_conus_day" + emiss_tropo_11_0um_nom differs in "test_g16_conus_day" + emiss_tropo_12_0um_nom differs in "test_g16_conus_day" + emiss_tropo_13_3um_nom differs in "test_g16_conus_day" + emiss_tropo_3_75um_nom differs in "test_g16_conus_day" + emiss_tropo_6_7um_nom differs in "test_g16_conus_day" + fire_mask differs in "test_g16_conus_day" + freezing_altitude differs in "test_g16_conus_day" + homogenous_freezing_altitude differs in "test_g16_conus_day" + nddi_toa differs in "test_g16_conus_day" + ndsi_toa differs in "test_g16_conus_day" + refl_1_60um_nom_clear_sky differs in "test_g16_conus_day" + refl_3_75um_nom_clear_sky differs in "test_g16_conus_day" + sst_background_uni_3x3 differs in "test_g16_conus_day" + surface_temperature_retrieved differs in "test_g16_conus_day" + trans_atm_11_0um_nom differs in "test_g16_conus_day" + layer_l1g missing from 41094ad/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + sample_mode_l1g missing from 41094ad/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + wmo_id_l1g missing from 41094ad/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + Compared: 48627d7 41094ad + +commit 41094ad5acc93cede078de7660d717915cf90a00 +Merge: 8e6b668 71356f8 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 12 16:12:51 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + NOTE: this merge combines two attempts at the ECM2 bin fix. you can mostly ignore 8e6b668 + thus these changes are mostly 071f172 + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 41094ad 8e6b668 + +commit 8e6b668a07dad0100a3e236f1ecf7f695337f0c8 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 12 15:56:23 2022 +0000 + + fixed spelling errors + + NOTE: the ECM2 bin calculation was also altered + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 8e6b668 eb8cf66 + +commit eb8cf66a803e20a7322c15bb3ec18a5e1914be15 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 12 15:53:14 2022 +0000 + + cx_isccp_mod.f90 + +commit 71356f87ca91f6f9ac6b827f19ea06607548ef3f +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jan 11 14:41:01 2022 +0100 + + rttov hirs for early NOAAS bug fix + +commit fad69c3587dff0054538d60a091943316a170829 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jan 7 14:43:13 2022 +0100 + + add file for tesing cx_sds_io + +commit c2feb0b55c6f2c4437960b7d49db48ac9d460f9d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jan 7 14:30:00 2022 +0100 + + small thing with makefile + +commit ff327b71648833b77f5c2f2372caf2fac6cbc3fd +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jan 6 21:02:39 2022 +0100 + + memory leak + +commit 01154618e6afa94094e094d39dceff01f1252e65 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Jan 6 17:00:16 2022 +0000 + + Confirm lut bin-index change + +commit 071f17287832d5051936571454642b1b2d49fd92 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Tue Jan 4 23:47:36 2022 +0000 + + fix index to calculate correct bin + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 071f172 4affba4 + +commit 4affba4a0bf5969d512d7352e211be417a141264 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jan 3 18:47:22 2022 +0100 + + add sseconds + + NOTE: the change to time affected solar geometry. This cascaded through many outputs including refl. + + ==================== l1b ==================== + cld_temp_opaque differs in "test_g16_conus_day" + + ==================== ancil ==================== + ndvi_sfc differs in "test_g16_conus_day" + + ==================== nwp ==================== + cld_height_opaque differs in "test_g16_conus_day" + cld_iwp_nwp differs in "test_g16_conus_day" + cld_lwp_nwp differs in "test_g16_conus_day" + cld_press_opaque differs in "test_g16_conus_day" + cld_temp_nwp differs in "test_g16_conus_day" + cloud_fraction_nwp differs in "test_g16_conus_day" + div_200_nwp differs in "test_g16_conus_day" + div_sfc_nwp differs in "test_g16_conus_day" + el_nwp differs in "test_g16_conus_day" + k_index_nwp differs in "test_g16_conus_day" + lcl_nwp differs in "test_g16_conus_day" + lfc_nwp differs in "test_g16_conus_day" + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + rh300_nwp differs in "test_g16_conus_day" + snow_class_nwp differs in "test_g16_conus_day" + surface_air_temperature_nwp differs in "test_g16_conus_day" + surface_pressure_nwp differs in "test_g16_conus_day" + surface_relative_humidity_nwp differs in "test_g16_conus_day" + surface_temperature_nwp differs in "test_g16_conus_day" + total_column_ozone_nwp differs in "test_g16_conus_day" + total_precipitable_water_nwp differs in "test_g16_conus_day" + tropopause_pressure_nwp differs in "test_g16_conus_day" + tropopause_temperature_nwp differs in "test_g16_conus_day" + uth_nwp differs in "test_g16_conus_day" + + ==================== rtm ==================== + refl_0_65um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_65um_nom_clear_sky differs in "test_g16_conus_day" + refl_0_86um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_86um_nom_clear_sky differs in "test_g16_conus_day" + refl_1_60um_nom_atmos_corr differs in "test_g16_conus_day" + temp_11_0um_nom_clear_sky differs in "test_g16_conus_day" + temp_12_0um_nom_clear_sky differs in "test_g16_conus_day" + temp_13_3um_nom_clear_sky differs in "test_g16_conus_day" + temp_3_75um_nom_clear_sky differs in "test_g16_conus_day" + temp_6_7um_nom_clear_sky differs in "test_g16_conus_day" + temp_7_3um_nom_clear_sky differs in "test_g16_conus_day" + temp_9_7um_nom_clear_sky differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + ccl_nwp differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + beta_11um_12um_tropopause differs in "test_g16_conus_day" + beta_11um_133um_tropopause differs in "test_g16_conus_day" + beta_11um_67um_tropopause differs in "test_g16_conus_day" + cld_emiss_co2irw differs in "test_g16_conus_day" + cld_emiss_h2o differs in "test_g16_conus_day" + cld_emiss_splitwin differs in "test_g16_conus_day" + cld_height_co2irw differs in "test_g16_conus_day" + cld_height_h2o differs in "test_g16_conus_day" + cld_press_co2irw differs in "test_g16_conus_day" + cld_press_h2o differs in "test_g16_conus_day" + cld_press_splitwin differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + emiss_3_75um_nom_clear differs in "test_g16_conus_day" + emiss_sfc_11_0um_nom differs in "test_g16_conus_day" + emiss_sfc_3_75um_nom differs in "test_g16_conus_day" + emiss_tropo_11_0um_nom differs in "test_g16_conus_day" + emiss_tropo_12_0um_nom differs in "test_g16_conus_day" + emiss_tropo_13_3um_nom differs in "test_g16_conus_day" + emiss_tropo_3_75um_nom differs in "test_g16_conus_day" + emiss_tropo_6_7um_nom differs in "test_g16_conus_day" + freezing_altitude differs in "test_g16_conus_day" + refl_1_60um_nom_clear_sky differs in "test_g16_conus_day" + refl_3_75um_nom_clear_sky differs in "test_g16_conus_day" + surface_temperature_retrieved differs in "test_g16_conus_day" + trans_atm_11_0um_nom differs in "test_g16_conus_day" + + Compared: 4affba4 bd57254 + +commit bd572549b85598075e75703cdf8b75666fc60646 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Dec 21 19:14:14 2021 +0000 + + july 2021 beta constraint and undetected_cloud fix + +commit 3d989fe0a0fcb7b0781ae941eb549a4d518f1677 +Merge: 3fa8648 b9c662b +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Dec 20 20:56:20 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + NOTE: complex merge. + + ==================== l1b ==================== + refl_0_65um_nom_stddev_3x3 differs in "test_g16_conus_day" + temp_11_0um_nom_stddev_3x3 differs in "test_g16_conus_day" + temp_3_75um_nom_stddev_3x3 differs in "test_g16_conus_day" + + ==================== ancil ==================== + surface_elevation_std_3x3 differs in "test_g16_conus_day" + surface_elevation_stddev_3x3 differs in "test_g16_conus_day" + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_mask_tut differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 3d989fe 3fa8648 + + ==================== nwp ==================== + cld_cwp_nwp differs in "test_g16_conus_day" + cld_iwp_nwp missing from b9c662b/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cld_lwp_nwp missing from b9c662b/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + ==================== ecm2 ==================== + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 3d989fe b9c662b + +commit 3fa8648e19cadb3240971a9912a44cebfdf89aca +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Dec 20 20:55:49 2021 +0000 + + ECM2 from NBM + + NOTE: cloud_mask_test_packed_results only differs in "shadow_detected" bit + Change in cloud_type. Before Uncertain Water -> Mixed. Now Uncertain Supercooled -> Mixed. + SBAF code added. + ECM2 Classifiers bt11ratio, dtsfcbt11, tsfc added. + I'm not sure why acha changes even when controlling for cloud type, or why shadow_mask changes. + + ==================== ecm2 ==================== + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 3fa8648 d376d51 + +commit b9c662b79b0abde882e742600824991e79032cc3 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Dec 20 16:44:32 2021 +0000 + + Initialization during declaration implies a static variable in fortran. Make explicit + +commit 5280f9d63c8196bed535139e1e26717cc6c0a646 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Dec 16 22:06:14 2021 +0000 + + Don't add add_offset or scale_factor attributes to unscaled variables + +commit 8723af7ea90878c2fa6bb3944881207d05d2bdf9 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Dec 16 22:04:05 2021 +0000 + + Fix precision bug in 3x3 standard deviation + + NOTE: opaque height changed because...? + + ==================== l1b ==================== + refl_0_65um_nom_stddev_3x3 differs in "test_g16_conus_day" + temp_11_0um_nom_stddev_3x3 differs in "test_g16_conus_day" + temp_3_75um_nom_stddev_3x3 differs in "test_g16_conus_day" + + ==================== ancil ==================== + surface_elevation_std_3x3 differs in "test_g16_conus_day" + surface_elevation_stddev_3x3 differs in "test_g16_conus_day" + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_mask_tut differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 8723af7 618d717 + +commit 618d71791ac935802a7aadb29a02212e45fc08ba +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Wed Dec 15 17:24:01 2021 +0000 + + initialize undetected_cloud + +commit ba511b698754966a9db4a0e2a2c8eb6fca51513e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Dec 8 13:04:13 2021 +0100 + + update reader + +commit af1870dc7fcf2068c26fd5cd3922e528bf9ed6d5 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Dec 3 09:35:03 2021 +0100 + + code cleaning + +commit cab05db66842b5d5721737dd41f76500cb6d8097 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Dec 3 09:22:52 2021 +0100 + + file exist test to viirs nasa read + +commit d376d51f3bae2d7b42798603c53771d1326a5784 +Merge: 5ac893b b3470cd +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Sun Nov 28 03:17:30 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + ==================== nwp ==================== + cld_cwp_nwp differs in "test_g16_conus_day" + cld_iwp_nwp missing from b3470cd/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cld_lwp_nwp missing from b3470cd/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + Compared: d376d51 b3470cd + +commit 5ac893b40f1894976793abb1d3ad93a420a93634 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Sun Nov 28 03:16:22 2021 +0000 + + added var to level2 + + NOTE: cld_cwp_nwp was made empty, without removing it from level 2 + + ==================== nwp ==================== + cld_cwp_nwp differs in "test_g16_conus_day" + cld_iwp_nwp missing from 73760ae/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cld_lwp_nwp missing from 73760ae/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + Compared: 5ac893b 73760ae + +commit b3470cd8cd860b62f253be38d73b842090152c8d +Author: Denis Botambekov <dbotambekov@selene.ssec.wisc.edu> +Date: Wed Nov 24 17:54:24 2021 +0000 + + fixed running -caliop with rttov seg fault + +commit 91a0926b5d41a68236f94465ba3cf9ba9eda1672 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Nov 18 11:36:53 2021 +0100 + + viirs hres number of lines issue + +commit 09842c86514a0fa89f7cad399973b380c3d6c244 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Nov 18 10:44:52 2021 +0000 + + files with h5 are often h5 files for variables + +commit 73760aef8882c28c2543d5ba20e0983986f26a6c +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Nov 17 17:05:44 2021 +0000 + + fixed for highres + +commit 80ce9d56ff75aabb503debcf21815ae873209712 +Merge: 585f1c5 b8f71df +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Nov 17 16:54:02 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + +commit 585f1c57b142edab01b8ab7310a9824f2a5e1bae +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Nov 17 16:53:58 2021 +0000 + + fixed for highres + +commit d1ba4f95c7738c28984c87d1276ccaecb62db6cd +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Nov 17 16:52:01 2021 +0000 + + added exit for skip_l1b_flag + +commit b8f71df345d260f9d35206cf27030acf21e88d5e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Nov 16 15:07:45 2021 +0100 + + small changes + +commit 32a6ec5240faf7dd7a7556be52a35b5060b635b1 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Nov 11 16:25:36 2021 +0100 + + rttov test work + +commit 791091ab265204830e488ee1a49349a8610fd97b +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Nov 11 16:25:21 2021 +0100 + + rttov test work + +commit a246a7a2b584d5b9b23c37579435618d345b9fba +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Nov 11 16:25:02 2021 +0100 + + rttov test work + +commit d955bd389cc11b53919e4eee916ccfe137699e0e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Nov 11 16:23:50 2021 +0100 + + checkd hres ABI + +commit 2ebeb17cc4773d09b6e675c08a347e7dde1fcddc +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Nov 4 21:43:57 2021 +0000 + + added wanzong mode with 062um + + NOTE: acha_quality was all 0 before. Now it accurately reflects the rest of ACHA output + + ==================== acha ==================== + acha_quality differs in "test_g16_conus_day" + + Compared: 2ebeb17 b228f66 + +commit b228f667064362feecc8e7a881447cc8a0571faf +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Nov 4 21:41:51 2021 +0000 + + added 062um in acha mode check + +commit 180ad6fc6adc3d6f7ece68563876845aaaa5a688 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Nov 2 14:01:47 2021 +0100 + + rttov ozone + +commit b08f52d05d134bae833f58cb2e9d400ff1fb3287 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Nov 1 13:20:25 2021 +0000 + + fixed a little issue + +M acha/acha_rtm_mod.f90 + + NOTE: clip beta into range [1,2] + + ==================== ecm2 ==================== + cloud_mask_test_packed_results differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + + ==================== acha ==================== + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + Compared: b08f52d bca2d98 + +commit bca2d98b7a384b53ed0cdb8ec8f904c2a6182790 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Oct 27 15:59:54 2021 +0000 + + add var to pixel common + + NOTE: this commit message doesn't look like it was for this commit + Looks more like a switch from bottom-up to top-down in opaque cloud height calculation + this gets switched back in ea92660 + cld_temp_aux, cld_beta_prior_acha, and cld_emiss_prior_acha were also added to l2 output + + ==================== l1b ==================== + cld_temp_opaque differs in "test_g16_conus_day" + + ==================== ancil ==================== + ndvi_sfc differs in "test_g16_conus_day" + + ==================== nwp ==================== + cld_height_opaque differs in "test_g16_conus_day" + cld_press_opaque differs in "test_g16_conus_day" + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== rtm ==================== + refl_0_65um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_65um_nom_clear_sky differs in "test_g16_conus_day" + refl_0_86um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_86um_nom_clear_sky differs in "test_g16_conus_day" + refl_1_60um_nom_atmos_corr differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + cld_beta_prior_acha missing from bca0ad9/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cld_emiss_prior_acha missing from bca0ad9/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + refl_1_60um_nom_clear_sky differs in "test_g16_conus_day" + cld_temp_aux missing from bca0ad9/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + Compared: bca2d98 bca0ad9 + +commit bca0ad950e57056b08419319ee06e24440f24b35 +Merge: 7b6300c f227bc2 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Oct 27 15:59:08 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + Missing data for f227bc2 +commit 7b6300c483b3d30635ffe09af66c1d93e49c75a0 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Oct 27 15:58:16 2021 +0000 + + added new vars + + No ancestor data for comparison +commit f227bc20235d9590574be48f3f4dab8734c54cfc +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 27 17:40:43 2021 +0200 + + code cleaning + + No f227bc2 data for comparison +commit bad2c7838da8104ca7a69ad9f55677ab3be99700 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 27 17:40:16 2021 +0200 + + code cleaning + + No bad2c78 data for comparison +commit 8a0a10b0ade54800669791c10371216bfadf3c24 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 27 17:40:02 2021 +0200 + + code cleaning + + No 8a0a10b data for comparison +commit 58d97d097d9074b6142c22e545d4252bdcd331ad +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 27 17:39:16 2021 +0200 + + back + + No 58d97d0 data for comparison +commit 4cebda0f6e2d9ff6bb145b8011a2e6e523f4fd47 +Merge: 0345563 07820f2 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Oct 26 20:19:02 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + No 4cebda0 data for comparison +commit 03455632001376752bc9746d4e6f8c703e2a9439 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Oct 26 20:18:58 2021 +0000 + + added 1km + + No 0345563 data for comparison +commit f3352a2290e37406e95a59000e077b0cc42119e6 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Oct 26 20:10:47 2021 +0000 + + fixed for missing + +commit 07820f27c26a4332421c38db2b57db6644f4721d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Oct 26 16:57:19 2021 +0200 + + cosmetic changes + +commit 8c6fd51369c49b44d8b80a69077496afd1744635 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Oct 25 18:38:42 2021 +0200 + + fixed rttov noaa-5 + +commit 6447d21cbbe59ef95c12271f8ba1150442428145 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Oct 25 18:27:26 2021 +0200 + + fixed rttov noaa-5 + +commit 797c7cb87ecb5a45389284e6ffb02b761183c450 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Oct 25 17:52:00 2021 +0200 + + fixed FY3d RTTOV + +commit 3b6ab49a0a4bf76915d71203d6527864d5f450fc +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Oct 18 14:17:53 2021 +0200 + + added sensors FY3-D and older GOES to RTTOV + +commit 80ced7c730f5ecddef359aef1a251a029aaa1b12 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Oct 14 15:25:05 2021 +0200 + + fix hres nasa viirs + +commit 2da2be5308610d59e1d54279d09d9fded087cbbf +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Oct 14 11:09:49 2021 +0200 + + add info call to level2 structures + +commit 7c2b96efda2a829aebb3b6f36615e249528d0103 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Oct 14 08:53:00 2021 +0200 + + muri back + +commit 635baed5ee3df6eed597f6aac10c7b7b1b7a7b15 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 13 13:54:01 2021 +0200 + + fixed hres + +commit b3057676536c2b3e3440ec8450010d6bb1d1a69d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 13 13:53:21 2021 +0200 + + fixed hres + +commit 3efe0b71bc6f6cc468721fe7d1aa3092f2b5210d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 13 10:08:52 2021 +0200 + + switched off VIIRS Dual LST + +commit 9057bb3f6e80d03b28c7a6a3eb4e0a915ad8f793 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Oct 12 17:37:45 2021 +0200 + + fix + + Missing parent test data, using ancestor 37bc133 +commit 69300e7df5252374477bd556951b38a52e99275a +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Oct 12 13:04:26 2021 +0200 + + cleaned code + + No 69300e7 data for comparison +commit 8bb37faa9a32a4bbbd0f7ab4afe15911116bf0ef +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Oct 12 12:59:46 2021 +0200 + + cleaned code + + No 8bb37fa data for comparison +commit 37bc1339eb073f701763e543e14afedf252fabfb +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Oct 7 22:47:45 2021 +0200 + + add dual channel lst + +commit ee4a78044ebd4f10a61ef442d55f9aa72e4aaf43 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Oct 7 16:59:41 2021 +0200 + + viirs nasa hres files for night + +commit f590602583bb7fd46ebfccc487ffbd99b639397f +Merge: 42ab3ef 6a009b5 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 6 13:01:49 2021 +0000 + + fixing merge conflict + +commit 42ab3efb6d30bc4c50374709b1cc82761116b618 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 6 12:52:45 2021 +0000 + + add warning + +commit 1141d2efc54564fa536e0b2d8c8f9bcf2c906109 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 6 12:42:30 2021 +0000 + + add a stop + +commit 6a009b5c6755fe4b49847a4429663b2936c5909c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 6 13:10:33 2021 +0200 + + small changes + +commit 1a928267e78dc6fe23a174d75b50f4a972fd687d +Merge: 78c6ee8 bc46415 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Wed Sep 22 14:06:31 2021 +0000 + + Merge branch 'muri' into 'develop' + + Muri + + See merge request clavrx/clavrx-dev!2 + +commit bc46415d7161867c48d88c45990b93bb4a9a00a8 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Sep 22 12:55:43 2021 +0000 + + implement new muri code + +commit 0a8b36d11c27e1131832a80e24b217386264a621 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Sep 22 12:55:32 2021 +0000 + + implement new muri code + +commit 2824169077c3954e210d22c7c0ab8a027020d8fd +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Sep 21 16:58:54 2021 +0000 + + remove unused use of module + + Missing parent test data, using ancestor db24861 +commit fca71dcc77d00358b6ed2e5a4590f36bef977a38 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Sep 21 16:55:51 2021 +0000 + + remove unused use of module + + No fca71dc data for comparison +commit db2486121a854a2697b3e1c8c7fcce8319b7f9a3 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Sep 20 23:53:11 2021 +0200 + + add check if file exists + +commit c373d8ddf54161e71569edaa0f782c71e124a268 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Sep 20 22:28:22 2021 +0200 + + bring Mins developments in + +commit 78c6ee831814ac80722e09b3af2a248ae0ec37ef +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sun Sep 19 13:56:36 2021 +0200 + + rttov adjustments + +commit eb77f285d017397980d79bede8327d2e2dc5ed71 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Sep 8 16:15:36 2021 +0200 + + fixed muri issue + +commit b0ad81d480a3a9c54dd775c854313fd8e5135cd0 +Merge: 9e71c6b 00aee44 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Sep 7 15:13:35 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + ==================== misc ==================== + cld_emiss_aux missing from 00aee44/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + Compared: b0ad81d 00aee44 + +commit 9e71c6be456fa938fe09c3ce1d34954fb31d96de +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Sep 7 14:51:43 2021 +0000 + + added myd061km support + + No ancestor data for comparison +commit 00aee4466db40f6b6aede500be7ae8ba3ef24db4 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Sep 7 14:41:21 2021 +0200 + + ignore file + +commit ae573484461266e7215a5dc50ddc4f1e0949bbd9 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Sep 2 17:33:49 2021 +0200 + + rttov metop fix + +commit d23b6a056efffcbbc21245b7b6d6e9211e0857d4 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Aug 31 20:05:25 2021 +0200 + + add VIIRS HRES Bow-tie + +commit 751ef874beb1f4a385eeb64d0606f6d5c40e7b78 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Aug 31 19:18:03 2021 +0200 + + add VIIRS HRES Bow-tie + +commit 1b1ad181df5688df653d27ed92938dacb66e18ea +Author: dbotambekov <denis.botambekov@ssec.wisc.edu> +Date: Wed Aug 25 18:56:29 2021 +0000 + + fixed modis channel numbering in the notes + +commit fe366161d6a2b8dac07682f0aef4d066c6409c86 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Thu Aug 12 20:50:47 2021 +0000 + + added coeff to adjust nasa viirs dnb lunar refl to noaa + +commit 05970ed337f6fa446c8a72f2317361e4124619f0 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Wed Aug 11 19:49:47 2021 +0000 + + removed stuff that forgot to delete + +commit aea16b339f6678cf01f01739a7cfeceb9b1729c5 +Author: dbotambekov <denis.botambekov@ssec.wisc.edu> +Date: Wed Aug 11 15:48:59 2021 +0000 + + fixed noaa-20 dnb mapping + +commit a428bc3f00510eb89cb79c39908178b01a43e9f4 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Aug 2 17:00:05 2021 +0200 + + removed merge lines in process_clavrx + + No ancestor data for comparison +commit f4dd28c310daa0d6f01178791f84297a5be44bb7 +Merge: 28934ed c9d632a +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Fri Jul 30 22:59:31 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + No f4dd28c data for comparison +commit 28934ed45985cb9eaf636739c6d37686b36c6de6 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Fri Jul 30 22:59:01 2021 +0000 + + added limit on missing attr warnings + +commit c9d632a3e0aa537c792ce26a634728f2f1938c4f +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Fri Jul 30 21:33:04 2021 +0000 + + changed max limit for moon illum frac from 1 to 100 + + No c9d632a data for comparison +commit 4afad42e28ba7b33be6c811f41d719cd794eb1c6 +Merge: 1d9b698 e74419a +Author: swanzong <stevew@orchid-submit.ssec.wisc.edu> +Date: Wed Jul 28 21:29:20 2021 +0000 + + Fixed endif bug + + No 4afad42 data for comparison +commit 1d9b698e5f79700e5805119255b92357f5f73f81 +Author: swanzong <stevew@orchid-submit.ssec.wisc.edu> +Date: Wed Jul 28 21:26:56 2021 +0000 + + Fixed endif bug + + No ancestor data for comparison +commit e74419ae5c841589a4177d0b4d1f09d320177068 +Merge: c5e251a 1519f2c +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:45:06 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + Missing data for 1519f2c +commit c5e251a522dcea445df6e35f2375fd9b5712f2f1 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:44:47 2021 +0000 + + simple bug + + No ancestor data for comparison +commit 1519f2c2524a54b6d2b93d2ba4287dd7c11c70d8 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:42:40 2021 +0000 + + Delete ccl_parameters.inc + + No 1519f2c data for comparison +commit 504060b66fd9fe40218b25e4852dc56ec67189e3 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:42:24 2021 +0000 + + Delete awg_cld_hght_include_1.inc + + No 504060b data for comparison +commit a3a102b719b9c68412e283648192850a1c2d6d0f +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:42:18 2021 +0000 + + Delete acha_water_cloud_microphysical_model.inc + + No a3a102b data for comparison +commit 8ca524233290cd41e521426d96427b2fb162b3b6 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:42:11 2021 +0000 + + Delete acha_parameters.inc + + No 8ca5242 data for comparison +commit b8d7799681da7cb2c916fb0db519a995be081196 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:42:05 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_viirs_110um.inc + + No b8d7799 data for comparison +commit 112ffe865061780ee5d8de4b18d7857ce85825cf +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:59 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_viirs_104um.inc + + No 112ffe8 data for comparison +commit 52e892587bce33c02e4cc3a64be6769216761a43 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:54 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_noaa19.inc + + No 52e8925 data for comparison +commit c57e76b1c4d33eaa7018104ef00aa4e922c94b44 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:48 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_modis_110um.inc + + No c57e76b data for comparison +commit 8f8aab683def25d8118e15d0efd10c942f01feb8 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:40 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_modis_104um.inc + + No 8f8aab6 data for comparison +commit c22b0c2fae4f6cd3a66882674f90327bded4fbaa +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:33 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_goes_110um.inc + + No c22b0c2 data for comparison +commit f503c1ef3cfe464616f955b93017f97a03e0ecbb +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:26 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_goes_104um.inc + + No f503c1e data for comparison +commit d9f3382d3393ed9169c90e7feb7227fa481a5a18 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:20 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_goes15.inc + + No d9f3382 data for comparison +commit 514e77d43c8e0f2796580ac12c06ebc072b054fb +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:13 2021 +0000 + + Delete acha_clear_sky_covariances.inc + + No 514e77d data for comparison +commit bb6fcb1e874616ec1a52b7f244a61e7e88faef60 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:02 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_avhrr_110um.inc + + No bb6fcb1 data for comparison +commit 2d2ed1029f4397cfe5daf7ef2b5426233e6c64af +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:40:53 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_avhrr_104um.inc + + No 2d2ed10 data for comparison +commit 35ead2c651700509aa057737315143fc0f1ac2bc +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:40:47 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_ahi_110um.inc + + No 35ead2c data for comparison +commit f5df2507ad5d922323711bf4cbacb1101757d254 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:40:38 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_ahi_104um.inc + + No f5df250 data for comparison +commit 0da0e20f335eb8b9d6ce9e2b2573ac0d1b518000 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:40:29 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_abi_110um.inc + + No 0da0e20 data for comparison +commit ede8d1873c2634824e599d29b3fd9807ced5d618 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:39:47 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_abi_104um.inc + + No ede8d18 data for comparison +commit 237bd852dd8e6f76ea498bf0c43b84beca5fc325 +Merge: 2191cb9 67bdc98 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:36:59 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + No 237bd85 data for comparison +commit 2191cb9dcc717f8230c9f20f62b872d3de02c38d +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:36:36 2021 +0000 + + removed hardcoding + + No 2191cb9 data for comparison +commit ed71d671e229804fbde21895d1f23a4d36479133 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:36:00 2021 +0000 + + fixed attr read and missing init + + No ed71d67 data for comparison +commit 331c5e62eb367705d5282b2024b6f9149fae1508 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:34:54 2021 +0000 + + prelim dnb correction - not used + + No 331c5e6 data for comparison +commit 427cfce93b493a7a6f9c5b26acebce889b67e592 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:34:12 2021 +0000 + + include path + + Missing parent test data, using ancestor 8d7bcf7 +commit 67bdc98b6cf75468846376fdfd135d2f7e90d2c6 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Wed Jul 28 16:39:57 2021 +0000 + + removed print and stop + + No 67bdc98 data for comparison +commit bab532884823db9664bf338afb28a6a53ba55de2 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Jul 26 20:28:47 2021 +0000 + + added acha include path + + No bab5328 data for comparison +commit 5dbfb3e508f86a4acdad383de38839a1639c44a0 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Jul 26 20:28:35 2021 +0000 + + added acha include path + + No 5dbfb3e data for comparison +commit 8d7bcf7e9198e60d62048ba8791efc10b9629f0d +Author: dbotambekov <denis.botambekov@ssec.wisc.edu> +Date: Fri Jul 23 22:24:20 2021 +0000 + + fixed acha default for vgac + +commit 16541ba6427b3c6201465fd15a847d078e66d409 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jul 23 15:41:37 2021 +0200 + + fixed thick cloud issue nlcomp + +commit 5ec41becdd72f15767db63900457dbd0ac21cef7 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Jul 22 21:12:59 2021 +0000 + + Update Makefile + + Missing parent test data, using ancestor 1896e0e +commit 8a3be657aeb6512ba9676905f2f0fc3594ee0c70 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Wed Jul 21 22:56:18 2021 +0000 + + Fix vgac reader + + No 8a3be65 data for comparison +commit 1896e0e914d040760e5d816e9da99758feae29bc +Author: dbotambekov <denis.botambekov@ssec.wisc.edu> +Date: Tue Jul 20 16:36:55 2021 +0000 + + changed back nasa viirs moon illum, fixed noaa viirs moon illum, way around moon illum filter in get prob mask until new viirs lut + +commit 155527d2745159c8f9a3abd861c06a08f6a1196c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jul 17 17:05:52 2021 +0200 + + fixed nlcomp issue + +commit 520433ba664025b314d6429069f637b742d658e4 +Author: Denis Botambekov <dbotambekov@patmosx.ssec.wisc.edu> +Date: Thu Jul 15 19:53:14 2021 +0000 + + converted moon illumination from percent to fraction 0-1 + +commit a0526702a7949d783d20263b5c2ac4fbb51b383f +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Tue Jul 13 15:44:46 2021 +0000 + + fixed a thing in readhdf5 for read2integer2d.. can be risky for memory + + Missing parent test data, using ancestor e0322b4 +commit 2b550bb47c49cd014774b062e3b95b612cbf908d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 8 12:31:28 2021 +0200 + + small fix for viirs hres + + No 2b550bb data for comparison +commit 52712992c7da01053cfe09e919cbed479307d96d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 8 12:22:26 2021 +0200 + + moved file + + No 5271299 data for comparison +commit 2cae212a234313d94e60424d6938e5b4bd6f12d8 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 8 12:04:54 2021 +0200 + + fixed last segment issue and time + + No 2cae212 data for comparison +commit 09ed370798c7cb104254ac21471b259e312c14ce +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 8 09:40:16 2021 +0200 + + makefile change + + No 09ed370 data for comparison +commit 37d506cfdc1bd79ffe4597ab3bf0bbc270eaa7fd +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jul 7 19:48:47 2021 +0200 + + viirs hres is ready + + No 37d506c data for comparison +commit 60c3482bd0d1875084c08b8f3f7e90f874cd8bfa +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jul 7 18:18:08 2021 +0200 + + progress viirs hres + + No 60c3482 data for comparison +commit 3a8e1346373e410d3d02063d9a27afb08656b236 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jul 7 18:17:52 2021 +0200 + + removed bug in hdf5 + + No 3a8e134 data for comparison +commit e94bf3a12fda410667ed77d84d5dafad507b12b8 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jul 7 14:18:41 2021 +0200 + + removed some comments + + No e94bf3a data for comparison +commit eb0dabf7b07a89bd361f9a15070f44927e54f517 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jul 6 16:09:31 2021 +0200 + + add scan line time + + No eb0dabf data for comparison +commit e0322b40d81370e29222f8965b03e575649e1355 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jul 6 15:11:17 2021 +0200 + + major progress hres + + Missing parent test data, using ancestor 5a43c52 +commit ecbdd6fe334464af2c366002e19bcde994fca6ab +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jul 5 13:03:06 2021 +0200 + + read geo data for hres data + + No ecbdd6f data for comparison +commit d38d30218ce5238b5a20dfb99ce99d5b6cc6e374 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jul 5 13:02:34 2021 +0200 + + main_src/Compare_Float_Numbers.f90 + + No d38d302 data for comparison +commit 5eb4f95136b2c175695886655960e1cacd37ae61 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jul 5 13:02:27 2021 +0200 + + cx_sds_io/src/cx_h5_read_mod.f90 + + No 5eb4f95 data for comparison +commit 93ca86089375acaeeaeaee08ce26acf132ee6f0c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 1 15:34:47 2021 +0200 + + add viirs HRES + + No 93ca860 data for comparison +commit b8c01b42299726487b8916ef7ac0796d6f7884db +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 1 15:34:30 2021 +0200 + + add viirs HRES + + No b8c01b4 data for comparison +commit 5a43c520876d1c37c84b8c7faf28e778a1f9e1ac +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 1 15:27:31 2021 +0200 + + finished hdf5 read routines + +commit 7b1fbec14758338f09c950632560a01c034810f4 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 1 15:25:44 2021 +0200 + + finished hdf5 read routines + +commit 14fdfb8abdc63a8ec9e3ca11f5acd5bc0bf3e2b5 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jun 30 18:47:08 2021 +0200 + + hdf5 work + +commit 36826488ddd5232089d0084a427cd9afe7786027 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jun 30 18:47:01 2021 +0200 + + hdf5 work + +commit 5679b7091747ad261d4442557284bef1c95446d1 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jun 30 18:46:38 2021 +0200 + + cx_sds_io/src/cx_h5_read_mod.f90 + +commit 63c9b59016a8dda228a48f38436f3a3fd5592b34 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jun 29 13:57:19 2021 +0200 + + hdf5 work + +commit aae2a144c63ba6a76c9aad582f65e632180bb4fd +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jun 29 13:57:13 2021 +0200 + + hdf5 work + +commit ad1d4d789aec5f53c426d65240ddfe80bc709b41 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jun 29 13:57:05 2021 +0200 + + hdf5 work + +commit 980759b5cc7144ef171477f75122e81662851e86 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sun Jun 27 21:46:56 2021 +0200 + + hdf5 issue + +commit 5314bcb25e4feeb447ef7d6137f39c20564d9d67 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 24 16:12:53 2021 +0200 + + added new files + +commit 6449ef414f8d0293f60071fdda1efdd78cd2b54f +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 24 15:12:40 2021 +0200 + + initial start iof reading viirs nasa hres + +commit eea099fb2dc95d4d7f8034eb93d4fc5808e1164e +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jun 23 03:28:00 2021 +0000 + + updated metop + +commit ef3225e4f1acc10bf2ed947e70740a8d7164d674 +Merge: 5dc194b fef5bfe +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Tue Jun 22 20:30:00 2021 +0000 + + Merge branch 'develop' of https://gitlab.ssec.wisc.edu/clavrx/clavrx-dev into develop + + ==================== acha ==================== + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha missing from 5dc194b/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + + Compared: ef3225e 5dc194b + + Missing data for fef5bfe +commit 5dc194b89453a1fb20fa411d7003fe6126cff46e +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Tue Jun 22 20:29:33 2021 +0000 + + Fixed seviri mapping + +commit fef5bfed9eb5a6a5d50cec76546baebe54551f2c +Merge: 28a77e3 11be2f2 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Jun 22 18:21:53 2021 +0000 + + Merge branch 'develop' of https://gitlab.ssec.wisc.edu/clavrx/clavrx-dev into develop + + No fef5bfe data for comparison +commit 28a77e3e47305c56f0f257f0aa573b1ab3b799ea +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Jun 22 18:20:48 2021 +0000 + + fixed time + +commit 11be2f2fe00b1d0d156a117eb9b1795384d0c001 +Merge: 2cff6fd a167d9d +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Mon Jun 21 17:26:29 2021 +0000 + + Merge branch 'develop' of https://gitlab.ssec.wisc.edu/clavrx/clavrx-dev into develop + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + Compared: 11be2f2 2cff6fd + + Missing data for a167d9d +commit 2cff6fdc0335526f11e9f317a53660b9035b71c2 +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Mon Jun 21 17:24:31 2021 +0000 + + Modifications for OCA aux reads + + ==================== misc ==================== + cld_press_l2_aux missing from 2aee913/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cld_press_uncer1_aux missing from 2aee913/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cld_press_uncer2_aux missing from 2aee913/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cost_aux missing from 2aee913/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + Compared: 2cff6fd 2aee913 + +commit a167d9db81a4329316a1a44bb9f4ef56bbb0a103 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 17 21:14:48 2021 +0200 + + rttov is free of hard-coded paths + + No a167d9d data for comparison +commit 8e319838cb30253813fb363b8160c17874401b83 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 17 19:32:53 2021 +0200 + + fixed stop when files from different months for RTTOV EMIS + + No 8e31983 data for comparison +commit b3365c42060e4cb55aab4a29719872c24067b50e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 17 12:48:04 2021 +0200 + + add something to ignore + + No b3365c4 data for comparison +commit 37920a1c80cd007e022a3f7665ce97c459d42407 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jun 15 11:52:10 2021 +0200 + + add addition al comment + + No 37920a1 data for comparison +commit df3e179bfac5d3eb24bc15e605d0c304823a20aa +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jun 14 23:01:27 2021 +0200 + + exclude too high value for zenith: + + No df3e179 data for comparison +commit ed27b6d9143255f94bcdb5738a2801df3213b393 +Merge: 8615683 312887e +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Jun 10 12:17:29 2021 +0000 + + Merge branch 'develop' of https://gitlab.ssec.wisc.edu/clavrx/clavrx-dev into develop + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + Compared: ed27b6d 8615683 + + Missing data for 312887e +commit 86156830394801ed7aa345a0971a5a1741cf3207 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Jun 10 12:15:58 2021 +0000 + + added acha tau uncer + + ==================== acha ==================== + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha missing from 420bdf2/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + + ==================== dcomp ==================== + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + + Compared: 8615683 420bdf2 + +commit 312887ebf7ff2f42b72e4b0435e3bd01fdf793b3 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jun 7 20:26:01 2021 +0200 + + added ACHA COD a-priori to DCOMP + + No 312887e data for comparison +commit 2aee9134fddc3e4216eeb0c651f8afe3d9d9ec2d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jun 4 14:57:54 2021 +0200 + + fixed rttov issues with uncoupled make and noaa-20 files + +commit 7d4093aae18d81522661cbf6795e8400a681a377 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 3 21:19:26 2021 +0200 + + changed to camel clim + +commit 420bdf255db316cc0c38365a80878bbdb1cf9f2a +Merge: 967eb27 f8ddab8 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jun 2 17:33:49 2021 +0000 + + Merge branch 'develop' of https://gitlab.ssec.wisc.edu/clavrx/clavrx-dev into develop + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 420bdf2 967eb27 + + Missing data for f8ddab8 +commit 967eb2785d8a83f596437cf864d08267ee55013e +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jun 2 17:32:40 2021 +0000 + + warm edge filter and pc_median + + NOTE: only difference in cloud_mask_test_packed_results is the "shadow_mask" bit + + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 967eb27 203f0d9 + +commit f8ddab8e3a04718045e7b68bb1e05aa2e8bff499 +Merge: 85e7392 5f1680e +Author: Mike Foster <mfoster@orchid-submit.ssec.wisc.edu> +Date: Wed May 26 15:17:56 2021 +0000 + + Merge branch 'develop' of https://gitlab.ssec.wisc.edu/clavrx/clavrx-dev into develop + + No f8ddab8 data for comparison +commit 5f1680ec8c762b3e5e4b2828bc037ff2cb741391 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed May 26 12:12:37 2021 +0200 + + removed unused declarations + + No 5f1680e data for comparison +commit bc165f0ce5d65ae2e97b916d3322b0cf04a7e6d2 +Author: Denis Botambekov <dbotambekov@patmosx.ssec.wisc.edu> +Date: Tue May 25 20:56:18 2021 +0000 + + added filter for frozen lake coast to the science code + + No bc165f0 data for comparison +commit 6f6fc0c6ba9758683dc5470c9f5f682aa9763af8 +Author: Denis Botambekov <dbotambekov@patmosx.ssec.wisc.edu> +Date: Tue May 25 20:18:00 2021 +0000 + + search pattern for vgac caliop collocation + + No 6f6fc0c data for comparison +commit 203f0d96f3517c14e4619beb8005c914ea9a1454 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue May 25 15:37:16 2021 +0200 + + more tests + +commit f589b794a4dd906bd80227dea8f7c801494bbe64 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue May 25 15:10:04 2021 +0200 + + dd test for cx_sds_io + +commit 85e73921fb6fa822d00fd9f7c7dc926fe4091834 +Author: Mike Foster <mfoster@orchid-submit.ssec.wisc.edu> +Date: Mon May 24 22:33:35 2021 +0000 + + added function to reset replaced 3.75 bt to missing for output fields + + No 85e7392 data for comparison +commit 6cd49e37622f4ca62c3fade7e39d7f28e00f8b6f +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Mon May 24 17:00:18 2021 +0000 + + fixed month for time calculation + +commit b1f582ab2252d7735e2e24a00440b1b827c4bf0c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sun May 23 16:38:25 2021 +0200 + + add some file types to ignore + +commit ba9bf658e4a29d0555821a5eecb039f3ee9f4c11 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon May 10 18:35:47 2021 +0000 + + Remove commented code + +commit bf82be258924316a5ee428bc7f0f8006294830ff +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 7 19:24:21 2021 +0000 + + Add runtime checks for rttov options when not compiled with rttov + +commit ce66d6c5fc714cd74b62c09cac25a73e7b73e0e6 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 7 15:05:57 2021 +0000 + + Move RTTOV coeffs to ancil dir + +commit 6b0f10cb398a472a48c35e6cd9aaa65484420a7a +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu May 6 20:56:39 2021 +0000 + + Switch from hdf4 seebor to netcdf seebor emissivity ancil + +commit 5e67c8438132d242326308d4486c98c0e66eb211 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri May 7 11:39:48 2021 +0200 + + make hostname universial + +commit 70576f0847b5ca0822372ae68e0c6416865fb1aa +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu May 6 14:52:54 2021 +0200 + + fixed RTTOV AVHRR/2 and AVHRR/3 issue + +commit 704ce65194d4148dfa895d5a63e1e2114e83b2c8 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Apr 29 19:56:37 2021 +0000 + + Add gitignore + +commit 73f77bdfb3fbc804d3f1a50799943c845b841850 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Apr 29 19:45:50 2021 +0000 + + Fix bug in Makefile.inc that prevents build + diff --git a/docs/release/version_log.txt b/docs/release/version_log.txt new file mode 100644 index 0000000000000000000000000000000000000000..92e496944ec4f7d78d14526e07807f92a5fa4eff --- /dev/null +++ b/docs/release/version_log.txt @@ -0,0 +1,4300 @@ +commit 31d6cd903b1ecddf34f055f0b67628828f9a8479 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Wed Aug 17 19:35:59 2022 +0000 + + Change g16 conus test to daytime + + No 31d6cd9 data for comparison +commit 106e4ced78888cb2bc1a48ada42b0eb88f75131b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Aug 15 18:14:24 2022 +0000 + + Put cld_cwp_nwp back in level2 + + Missing parent test data, using ancestor e7124ae + ==================== nwp ==================== + cld_cwp_nwp differs in "test_g16_conus_day" + + Compared: 106e4ce e7124ae + +commit 5b3967c7b0bfc087ef2b0aa929bdf3edbd89fd9a +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Aug 15 18:07:00 2022 +0000 + + Add more changes to changelog + + No 5b3967c data for comparison +commit b3285a45ab9e1dedbab4501074384630b5ee8b13 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Aug 8 15:46:20 2022 +0000 + + More annotations + + No b3285a4 data for comparison +commit e7b4119566a7d36ebbca563d32c08f3c1e79ec11 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Aug 8 15:26:53 2022 +0000 + + Add annotated commit log in release docs + + No e7b4119 data for comparison +commit bf0cc18bf2aa0fb3cbfda02b660e57a929f161b8 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri Aug 5 20:57:54 2022 +0000 + + Completely remove top-down opaque cloud height + + No bf0cc18 data for comparison +commit 997b94e07aae30cca0eb5f2df40869488bd12d48 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Wed Aug 10 17:49:54 2022 -0500 + + removed unused module linking + + No 997b94e data for comparison +commit be36772d034d836707daef45c33ccc48ade00579 +Author: Mike Foster <mfoster@incus.ssec.wisc.edu> +Date: Fri Feb 11 20:45:36 2022 +0000 + + Remove VZA correction since bug has been fixed + + No be36772 data for comparison +commit e7124aee81f52b1b32f9178be063de751cdce5f8 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri Aug 5 15:26:46 2022 +0000 + + Remove unused code + +commit fde7f4a4358e4741d78467e1fc45d2f92ea550ca +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri Jul 29 18:17:03 2022 +0000 + + Add gdb to testing modes + +commit 6d64b525ee152f426342f5196925cefd3f14fa26 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri Jul 29 15:07:21 2022 +0000 + + Fix missing values in refl_sfc_white_sky_ + +commit 16c64767c62953495a6a533daa0cad005b81822b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri Jul 29 14:43:24 2022 +0000 + + Initialize array + +commit 29aab4a569d09243261693be5e7b05fa8a8aeb3c +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Jul 28 21:55:51 2022 +0000 + + Fix data type in refl_sfc_white_sky_ + +commit 7ea6dd24ac3f0514af7f72f6ebcc651155521ff6 +Merge: 8badfec 8cd04c6 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Jul 28 20:03:34 2022 +0000 + + Merge branch 'master' into develop + + ==================== l1b ==================== + cld_temp_opaque differs in "test_g16_conus_day" + + ==================== ancil ==================== + ndvi_sfc differs in "test_g16_conus_day" + + ==================== nwp ==================== + cld_height_opaque differs in "test_g16_conus_day" + cld_press_opaque differs in "test_g16_conus_day" + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== rtm ==================== + refl_0_65um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_65um_nom_clear_sky differs in "test_g16_conus_day" + refl_0_86um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_86um_nom_clear_sky differs in "test_g16_conus_day" + refl_1_60um_nom_atmos_corr differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + cld_press_lower_acha missing from 8cd04c6/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + refl_1_60um_nom_clear_sky differs in "test_g16_conus_day" + + Compared: 7ea6dd2 8cd04c6 + +commit 8badfec98d70e068d2ec309b375766063433bc1a +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri Jul 15 17:56:49 2022 +0000 + + Test updates + +commit 18d757fb69c32ee0bd869b30d254d3ee20142b8e +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Jun 30 18:31:19 2022 +0000 + + Add perf and valgrind testing modes + +commit aef67a184c008e65afa829d031267c009b62014e +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Tue Jun 14 14:04:26 2022 +0000 + + Update testing documentation and add archive script + +commit 35d97430ef7ac06e93e8be9ae022edff3473a703 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Wed Jun 8 18:55:48 2022 +0000 + + Initialize pointers + +commit dec29253c3cbacc818962130cf11d02543138d2f +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon May 23 16:32:00 2022 +0000 + + Remove commented code and fix some formatting + +commit 8863992108c07ffff7588bf78ea2b8e5958d222b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon May 23 15:38:33 2022 +0000 + + Fix more uninitialized memory reads + + ==================== acha ==================== + cloud_type_acha differs in "test_g16_conus_day" + + Compared: 8863992 ae2cb9f + +commit ae2cb9fa308e2ef9880c17dbbc58275fd6604662 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Tue May 17 21:37:24 2022 +0000 + + Update changelog + +commit fd9d4ab6a931c1995ab46662105818dd30cd6784 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Tue May 17 21:23:46 2022 +0000 + + Update version numbers + +commit e3660702cabc0f45c1e82732a7f90e5308a54dcd +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 20:46:36 2022 +0000 + + fix cloud transmission long_name in level 2 + +commit 1d58aa5c0e94cd184f00a26a8b11f1c9a6736ca6 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 19:56:09 2022 +0000 + + Remove commented code + +commit 39e1606f49f918cf4d57cc170f89ad81b118ebd0 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 19:55:16 2022 +0000 + + Stop using uninitialized data in cloud_height_routines + +commit 61708bdfde67e2d3db52f160231efb3e21cdf89c +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 19:34:29 2022 +0000 + + Always initialize pointers in acha_module + +commit 7b10e0e035ae3429c78c638ca3f0f535a14099a9 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 19:28:40 2022 +0000 + + Stop using uninitialized data within dncomp + +commit 17cc15a0dfcd99e6c62d2827ae2bde095ae9b748 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 16:30:01 2022 +0000 + + Fix implicit usage of uninitialized data due to function signature in acha_rtm_mod.f90 + +commit 45690af03ba017d0baa842c6c2fc5c2b41151b54 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 13 14:01:10 2022 +0000 + + If-statement uses uninitialized memory in sensor_mod + +commit 14a9dfc2f45dabf61326d7f3c44c57ce99b0cdbc +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu May 12 18:15:28 2022 +0000 + + Move docs + +commit 02db9ccb07e861f526d5c40d52b28d4b0e84f736 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu May 12 15:18:26 2022 +0000 + + Partially remove commented code + +commit f3774db2fad2476471b96579216a9feba7169b59 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu May 12 14:51:27 2022 +0000 + + Add release checklist + +commit ea9266079e408077241e0b9c7c8320471425e3e3 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Jul 28 02:25:16 2022 +0000 + + bug fix identified by Coda + + ==================== l1b ==================== + cld_temp_opaque differs in "test_g16_conus_day" + + ==================== ancil ==================== + ndvi_sfc differs in "test_g16_conus_day" + + ==================== nwp ==================== + cld_height_opaque differs in "test_g16_conus_day" + cld_press_opaque differs in "test_g16_conus_day" + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== rtm ==================== + refl_0_65um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_65um_nom_clear_sky differs in "test_g16_conus_day" + refl_0_86um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_86um_nom_clear_sky differs in "test_g16_conus_day" + refl_1_60um_nom_atmos_corr differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + refl_1_60um_nom_clear_sky differs in "test_g16_conus_day" + + Compared: ea92660 307f005 + +commit 307f0050fa2204690e249f317cdfec8b91b54cf1 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 20:37:42 2022 +0200 + + change for higher gfortrans + +commit aeb85dc01df9488e3568bb704b8a0fa7936cd4f4 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 18:19:43 2022 +0200 + + change for higher gfortrans + +commit eee559d921815768f92a7a20a61872d21413439b +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 17:40:11 2022 +0200 + + change for higher gfortrans + + Missing parent test data, using ancestor 52c305f +commit 4925f01070cb69e8acc818a28dd4e3d63c0dec3e +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 17:22:12 2022 +0200 + + change for higher gfortrans + + No 4925f01 data for comparison +commit a9c283370869712620138e1079fd91ac2d76ec22 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 17:13:08 2022 +0200 + + int instead of old style long + + No a9c2833 data for comparison +commit 2ab73ab9068248b2928796e5aa7a5b7fb75be536 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 17:12:24 2022 +0200 + + change for higher gfortrans + + No 2ab73ab data for comparison +commit 68736a7fe03a36eec224d3fc4114895d848529e0 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 17:11:27 2022 +0200 + + change for higher gfortrans + + No 68736a7 data for comparison +commit 52c305fb0005a4bab76d6d47d3db9913a915334d +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 30 16:26:08 2022 +0200 + + add gfortran10 + +commit 71034c612e59bff00a4761d3933c81398cbc1e1a +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Wed Jun 29 19:03:40 2022 +0200 + + add gfortran versions above gcc10 + + Missing parent test data, using ancestor 25aed62 +commit b84c558a11d9bca0e9cf9a063d2f75d2a554e8e1 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Wed Jun 29 19:00:46 2022 +0200 + + add gfortran versions above gcc10 + + No b84c558 data for comparison +commit c18823407711514350a3893b5f0058cdcebc2e75 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Wed Jun 29 17:33:24 2022 +0200 + + add keywords for newer compilers + + No c188234 data for comparison +commit 25aed6296fa3f65ae6be255073415ed2a40b2372 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jun 24 15:18:51 2022 +0200 + + UMD fix + +commit 1ffce1d4f13098e6fa69a5454dee7c77ffda1907 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Jun 20 15:22:57 2022 +0000 + + isnan doesn't work if you compile with -ffast-math + so disable finite-only math flag in modules that use isnan + +commit 4ad19e289ca1e2d3677794c04a5f7b68224da76b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Jun 2 15:57:14 2022 +0000 + + cleanup tmpdirs when no l1b + +commit 59bb6c92f4a44b76e767891a04d48762d3f6a811 +Author: Yue Li <yli@selene.ssec.wisc.edu> +Date: Wed Jun 1 19:55:59 2022 +0000 + + add filter to KDtree input due to unexpected AHI cloud type when lat/lon are missing + +commit bb47ed8d7a368406785643cc61d4995869d0034c +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Thu May 19 15:33:14 2022 +0000 + + a fix to make sure kd-tree calculation is not out of bounds + +commit eabc6ce1b604fa275abc7ada0f6a0e0fb39ddf49 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Mon May 16 21:32:45 2022 +0000 + + added mvcm to goes16/17 + +commit 9f9ee77c56bc6cd2d522c789385e94f80978d1a5 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Tue May 10 21:10:18 2022 +0000 + + Fix bug in DCOMP insolation + +commit 6ed8e6686b7a4e55d7547d7ac76fe2bc92762545 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed May 4 13:32:19 2022 +0000 + + sbaf work + +commit b3aa0419acadfce2957dcda28694183bcb57d55c +Merge: a252649 b57e59b +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed May 4 13:30:44 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + +commit a252649d8b93cfcd047b624475e09b419f977eed +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed May 4 13:28:20 2022 +0000 + + moded for isccp + +commit b57e59be123107e50eaa9b844e4f5daca436bbb6 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed May 4 14:38:24 2022 +0200 + + signal handling + + Missing parent test data, using ancestor 9d9c547 +commit 8a15928354c49eb20eb6750b0658040e18c80a8b +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed May 4 14:13:09 2022 +0200 + + changed signal SIUGTERM from 12 to 15 which seemed to work on all machines + + No 8a15928 data for comparison +commit 8cd04c6586e1e7288fa5731b9a15246c0bd8197e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Apr 18 17:04:20 2022 +0000 + + Revert "excluded high res files from normal VIIRS resolution to avoid stops" + + this was done in master by accident + + This reverts commit 1003948593921790a88517aaed7bba015858c8e0. + +commit 1003948593921790a88517aaed7bba015858c8e0 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Apr 18 16:49:26 2022 +0000 + + excluded high res files from normal VIIRS resolution to avoid stops + +commit 9d9c547c12bc03c01a71fd96aba7060b9f4e6ff2 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Apr 14 20:42:39 2022 +0000 + + Make test work with old python + +commit 0fc95167ef4ab2f8b7f11b323ba1d95424d1f2bd +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Apr 14 19:54:34 2022 +0000 + + Add test for the SIGNAL bugfix + +commit b801989be2c812a7d7427c1bd07b7fafd4821c9b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Apr 14 17:57:32 2022 +0000 + + Handle fortran SIGNAL() return status correctly + +commit 71728f522fdde4b95d67ec93f0187f5141ff3572 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Thu Apr 14 09:37:00 2022 -0500 + + removed confusing and wrong comment in example option line + +commit 10d2123e45c05157002aa78f5fd17e79d65ea4ae +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Tue Apr 5 21:38:39 2022 +0000 + + added mvcm read for him08 + +commit d3a8b263247c5632e19bd4f670d8e826dc53e662 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Apr 4 21:22:24 2022 +0000 + + Make temp_files suffix actually unique and put the dummy files inside the temp_files + +commit 80b21faa61fd471ee947febe2c1aa8e0271e3b8f +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Apr 4 21:05:35 2022 +0000 + + Handle SIGINT and SIGTERM to clean up the temp_files_ directory before exiting + +commit 8b4278f0d09ae5a090d1fef75278c4dbebcacd0b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Tue Apr 5 03:33:14 2022 +0000 + + No new files in cwd + +commit 0b750f7bedc87f410f2044098e2c8c9b5e57a36c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Apr 4 19:13:59 2022 +0200 + + messaging + +commit dd89d94dd29d8b891df1d730cf77a88c7b3838da +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Apr 4 19:13:54 2022 +0200 + + messaging + +commit fc2a483b06bf6876a47dbf184f07f12e774552f9 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Apr 4 19:13:48 2022 +0200 + + messaging + +commit 4241df6ac24cfd5f754806d177025da23f6e7027 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sun Apr 3 15:02:58 2022 +0200 + + fixed messages + +commit 9e13a5ed86f0b29d11cc32297389025b1b4fa26c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sun Apr 3 15:02:40 2022 +0200 + + fixed messages + +commit b9fbd6509dd8b217ebc02d599575a292c20ed7c8 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Apr 1 01:43:43 2022 +0200 + + add catch for all bad-pixels segments for RTM + + ==================== ccl ==================== + supercooled_ccl_2 differs in "test_g16_conus_day" + + Compared: b9fbd65 280f486 + +commit 280f4865bb7abf9a340559aa49e83a194a575080 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Mar 30 00:52:22 2022 +0200 + + add older GOES to RTTOV + +commit c1d1a64e464a0b9532fb8115e9658c3a21720d12 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Tue Mar 29 20:04:19 2022 +0000 + + set obs to missing, leave only path data + +commit bd16ef7827044c5911b8ee24aec807420590c8b4 +Merge: 7911ca1 71ec9c6 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Mar 28 18:46:14 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + +commit 7911ca1a3ec25f6466d83ea3a396b61f37d2a673 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Mar 28 18:45:54 2022 +0000 + + default acha settings + +commit 71ec9c6ec4c390a23d3ad6991256f06c6951b2f6 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Mar 28 18:44:41 2022 +0000 + + Add changelog + +commit e995d862fc0e0866081327099974c09aab7891bb +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Mar 28 18:41:20 2022 +0000 + + amv parameters called out + +commit 4183499e70f02b64b544fc69659361f8f0dd515d +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Mon Mar 21 23:32:52 2022 +0000 + + turned off temporary shadow + + ==================== ecm2 ==================== + shadow_mask differs in "test_g16_conus_day" + + Compared: 4183499 c111e02 + +commit c111e023ad2684df3d6ce0bbd22b52d6228415c3 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Tue Mar 15 21:24:54 2022 +0000 + + fix for caliop matchups missing /= -999 + +commit eb72985f6b43bb56b4815a0fa594d9c5c03ac4b3 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Mar 15 15:17:46 2022 +0000 + + removed commented lines + +commit 9004a1fae86a0391e1a172d7d38bd387016b242c +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Mar 15 15:17:26 2022 +0000 + + removed commented lines + +commit eb7526bb311efe9c0c128aa93e396640b958670e +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Mar 15 15:16:53 2022 +0000 + + removed commented lines + +commit 92f044b3586c0b4fb54e377dd25d4f413f45a860 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Mar 15 15:16:13 2022 +0000 + + removed commented lines + + ==================== acha ==================== + cld_press_lower_acha missing from 40054b1/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + ==================== ccl ==================== + supercooled_ccl_2 differs in "test_g16_conus_day" + + Compared: 92f044b 40054b1 + +commit 40054b19e8c29a623da9d40803449c2c85de0770 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Mar 15 15:15:45 2022 +0000 + + removed commented lines + +commit fb704b8d59735c6eb06183f945cde25c775e6dba +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Mar 8 20:55:45 2022 +0000 + + added new metrics + +commit cb05a1f2e717cf86e5c3f0cc5c54c5301927961b +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Thu Mar 3 13:30:25 2022 +0000 + + All modules modified for GOES-18 support + +commit 5afc1589939ef7ee386e223fff75f3a28252e1f7 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Wed Feb 16 18:41:31 2022 +0000 + + Make clavrx fail gracefully when encountering an empty l1b + +commit f4c6d2c82630d90a25770138798e3ddf1cbf6774 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Tue Feb 15 16:02:22 2022 +0000 + + Fix segfault when running avhrr with process_cloud=off + +commit 213bc72b8e909f1ed7ee868b5414b80cd1a70d68 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Feb 15 10:00:13 2022 +0100 + + removed magic numbers + +commit bd6e2e080b9bc6787f02d4f6bc37ac99b31e70ff +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Feb 15 09:43:49 2022 +0100 + + removed useless gamma factor adjustment for solar cjhannels + +commit 3800185c37a87a97e39d615014b2129f281d4587 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Feb 12 11:14:09 2022 +0100 + + early goes rttov + +commit 756c9f9dc90de4a8cf23204b65e2448521060346 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Feb 10 19:25:48 2022 +0000 + + Add bounds check because array oob was causing segfault + +commit 495d7bf0869aa60f07e4292a3fc3655010f168fd +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Feb 10 19:23:47 2022 +0000 + + Convert file to unix line endings + +commit c6dc085b7acf8698007ef28b8a397c2cc47fd05d +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Feb 10 16:14:36 2022 +0000 + + Add AVHRR test + +commit 8050d8455ddc425b54685edf5b1137d1a35e881b +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Feb 10 14:48:11 2022 +0000 + + Show clavrx logs during tests + +commit acf0525ac8fd51a578d93be7feca15ad4c2f21ea +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Wed Feb 2 21:18:45 2022 +0000 + + Add VIIRS and FUSION smoke tests + +commit 088c1578c77b9f25e3a84d7bb6ba200f9d0d1f3d +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Jan 31 21:52:41 2022 +0000 + + start setting up CI build + +commit 57c3d111e17b32044bdc530c51dc2c31721a91f8 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Feb 1 16:58:56 2022 +0100 + + reoved useless function in dcomp + +commit 58af54670bcf38543327f7d5c9a6f7e0dd2dd675 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Feb 1 12:37:57 2022 +0100 + + delete file + +commit 705660c8a8265b1269315a050423d1ccbe46973e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Feb 1 12:30:13 2022 +0100 + + removed unused variables and tools + +commit a268952884fc08ae32ea9fd6e1cee2df31ba4634 +Author: Coda Phillips <coda.phillips@ssec.wisc.edu> +Date: Mon Jan 31 17:32:28 2022 +0000 + + Update .gitlab-ci.yml file + +commit 072d2b24c2f465618d9085b548f7ca2fd096cb80 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jan 31 15:13:42 2022 +0100 + + level2 mod fix to avoid endless loop + +commit 73579c1bd955c6b9123bb57a7e5b69ef143fff75 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jan 31 13:22:38 2022 +0100 + + fixed hits metop + +commit eb702d338977e3b537f7f352b6d4d91ac5e63f11 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 26 12:59:07 2022 +0100 + + add some ignore files + +commit a5fd44df07209eb68c27f902d6f9402723ba8edf +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Tue Jan 25 23:33:45 2022 +0000 + + added 2 cases yyyymmdd and hhmm + +commit d0dfe12ebb5e7879380915444ba5c50c19a6a7b8 +Merge: 42b78c7 2c6342f +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Tue Jan 25 20:21:44 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + +commit 42b78c708aa22989fcf999fde307b4295b39130c +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Tue Jan 25 20:21:05 2022 +0000 + + nwp_common_mod.f90 - adjust trop indexing for INDOEX processing issue + +commit 2c6342fba0d07bd006c2a94067f0354b04a7ee9d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jan 20 14:13:15 2022 +0100 + + shadow work + +commit 8240cc70aea2d1582e24a3b0dfc4fe663371768b +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 19 22:00:08 2022 +0000 + + fixed azimuth for l1g + +commit 44b9aa6daabed0d7c63b002be55650d12d902565 +Merge: 6538ba1 381c0b4 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 19 16:04:22 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + +commit 6538ba134dcd86780003c671b6bd1e8b54f2f700 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 19 16:03:56 2022 +0000 + + added radiances to isccp-ng + +commit 381c0b41c21c83dd5205798e3309ce3d9c8d0f5c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 16:07:35 2022 +0100 + + SPACE in caliop + +commit 4df1ed4a825fe4803fd7dc01237d63e5792ae59e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 16:04:51 2022 +0100 + + space mask + + No ancestor data for comparison +commit 0e4d75c577934f857ae4b2635b7f6067ff8560dd +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 15:57:52 2022 +0100 + + stop in space + + No 0e4d75c data for comparison +commit b37025b32df66a5db45164bf6464115c80cea171 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 15:50:16 2022 +0100 + + shadow avoid endless loop + + No b37025b data for comparison +commit 4a3d50080958c92db3ca35fb92794e3f6fe567d0 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 15:49:05 2022 +0100 + + removed stop + + No 4a3d500 data for comparison +commit 1a1277f094616cd8826999f82996bf72f55c5088 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 15:51:38 2022 +0100 + + stop in space + + No 1a1277f data for comparison +commit 7913e701a9f4f9bf8f2444f5cd7e07fb859bb6b7 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 15:45:33 2022 +0100 + + fix + + No 7913e70 data for comparison +commit 7325bb2e87555da5deb069f2684a799eb5b830dd +Merge: b8c04d7 f1d15e2 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 19 14:34:36 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + No 7325bb2 data for comparison +commit b8c04d77749478c1b0222d1ca70df04832a208ba +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 19 14:34:33 2022 +0000 + + small tweaks for l1g + +commit 9354a51e047388ed14a18e3e195f97bb52ee330b +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 19 14:32:54 2022 +0000 + + small tweaks for l1g + + ==================== acha ==================== + cld_height_acha differs in "test_g16_conus_day" + + ==================== ccl ==================== + supercooled_ccl_2 differs in "test_g16_conus_day" + + ==================== misc ==================== + wmo_id_l1g differs in "test_g16_conus_day" + + Compared: 9354a51 6567cff + +commit f1d15e26e3cf99155c61604bb1ebd1a05ab11a2a +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jan 19 13:56:36 2022 +0100 + + made space to a logical + + No f1d15e2 data for comparison +commit 6567cffdc8d179de37e8f79b90ba5bd3fbd4e6aa +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jan 18 17:44:57 2022 +0100 + + some code style changes + +commit 1628625acdf04e428fbd28b68e2af308fabd7b89 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jan 18 16:30:35 2022 +0100 + + add small comment + +commit 7ef0d51dae23ceaf4a0560708852e76185bb99b0 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Jan 18 15:40:54 2022 +0000 + + added isccpnp wmo line + +commit 7bbb71d6aa04d1f7b4a6ac9290eb63608ccca136 +Merge: 08d0538 27a269c +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Jan 18 15:20:00 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + ==================== misc ==================== + wmo_id_l1g differs in "test_g16_conus_day" + + Compared: 7bbb71d 27a269c + +commit 08d05386eb039b58218e717fc2758bed42c05c30 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Jan 18 15:19:37 2022 +0000 + + mistake in isccp-ng + + ==================== misc ==================== + wmo_id_l1g differs in "test_g16_conus_day" + + Compared: 08d0538 6093ea8 + +commit 27a269c5007a633b209e06a7be9db11114221fdc +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jan 17 18:03:02 2022 +0100 + + many time duplicates + + Missing parent test data, using ancestor 4e4d0a4 +commit 2015dab937732d66b5bed5c871a786c631ea61b3 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jan 17 18:02:32 2022 +0100 + + many time duplicates + + No 2015dab data for comparison +commit 4e4d0a44152b047e4f55dfb5845526e5736b4ad6 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jan 17 16:04:49 2022 +0100 + + small time chance + +commit 9f5588564266f725fbcf27f152473a5afdd11da8 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 18:49:15 2022 +0100 + + several time things + +commit a003e361982c742893cb87b87931b4f3b53ddc9b +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 18:48:36 2022 +0100 + + several time things + +commit 9daf982229de21ed7cd5465cf4e45b38291f3cab +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 17:46:50 2022 +0100 + + some use only calls + +commit 1ce32f432098dbade4b82fa2d83faafddff73b5c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 17:30:12 2022 +0100 + + time object terms + +commit 4cda9e069c0d7d4b83dfbcffa78927f0697f74b3 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 16:17:12 2022 +0100 + + modie time obj extension + + Missing parent test data, using ancestor 4a12234 +commit 78e2ed9167d008f758095dc0ca359589626ef110 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 16:15:10 2022 +0100 + + modie time obj extension + + No 78e2ed9 data for comparison +commit 4a1223438102daae126ea7d03839dd237df108e2 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 16:09:54 2022 +0100 + + fix + + Missing parent test data, using ancestor e1bd2a9 +commit 4e59489bfa43a0bc404dc456c7772f054b96673b +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 15:34:37 2022 +0100 + + start changing to time obj + + No 4e59489 data for comparison +commit e1bd2a9a11d2a9181249cc1f13a0520b0b0af731 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 15:34:03 2022 +0100 + + start changing to time obj + +commit f3294f16cbb1ac56ab1aa5dc09350f83f03a5bc0 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 16:02:30 2022 +0100 + + time obj + +commit c14e81a7647b9fb3b1cf479421410a3231faba3d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 15:52:07 2022 +0100 + + enables doy/msec for time object + + Missing parent test data, using ancestor 6093ea8 +commit a11f83ca67f7af43281786d40cf9c903d271620a +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jan 15 15:47:19 2022 +0100 + + time obj + + No a11f83c data for comparison +commit 6093ea847bb2343918dfd769a017d8d20662aa82 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Fri Jan 14 20:20:52 2022 +0000 + + fixed avhrr exclusion in do loop + +commit c5334e0e7af30619aa7eab6b56ee1d60be64c6b6 +Author: Yue Li <yli@selene.ssec.wisc.edu> +Date: Fri Jan 14 15:35:37 2022 +0000 + + fix sensor not found error + +commit c8eb9dab42f9f4d52f5b027e20bf7d4f7795717d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jan 14 13:14:49 2022 +0100 + + test files + +commit ad60ec4be0266fc059af31eeadfc4564fa2a6564 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jan 14 13:14:22 2022 +0100 + + hres viirs work + +commit 671a92b21cc521c70b525a39ebfc96e94e93cf76 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jan 14 13:13:25 2022 +0100 + + library cx_sds_io netcdf enables groups + +commit 6683f967c6ae6172bbfe51e1b12132ebe65f526c +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Jan 13 15:56:08 2022 +0000 + + added isccp met8 and met11 support + +commit 6b21b6201d8bae49fb9db23599285c8bad8be4c0 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Jan 13 04:31:06 2022 +0000 + + removed dead code + +commit 63625f7c2365f603c7790bbd76f4b58fa8249202 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Jan 13 04:13:50 2022 +0000 + + first draft of isccp l1g + +commit 48627d769813610c2d7f7f7de72de5015006dba9 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 12 16:59:30 2022 +0000 + + isccp-ng + + ==================== l1b ==================== + cld_temp_opaque differs in "test_g16_conus_day" + refl_0_65um_nom differs in "test_g16_conus_day" + refl_0_65um_nom_max_3x3 differs in "test_g16_conus_day" + refl_0_65um_nom_max_sub differs in "test_g16_conus_day" + refl_0_65um_nom_min_3x3 differs in "test_g16_conus_day" + refl_0_65um_nom_min_sub differs in "test_g16_conus_day" + refl_0_65um_nom_stddev_3x3 differs in "test_g16_conus_day" + refl_0_86um_nom differs in "test_g16_conus_day" + refl_0_86um_nom_max_sub differs in "test_g16_conus_day" + refl_0_86um_nom_min_sub differs in "test_g16_conus_day" + refl_1_60um_nom differs in "test_g16_conus_day" + refl_1_60um_nom_max_sub differs in "test_g16_conus_day" + refl_1_60um_nom_min_sub differs in "test_g16_conus_day" + refl_3_75um_nom differs in "test_g16_conus_day" + temp_11_0um_nom_max_3x3 differs in "test_g16_conus_day" + temp_11_0um_nom_min_3x3 differs in "test_g16_conus_day" + temp_11_0um_nom_stddev_3x3 differs in "test_g16_conus_day" + temp_11um_vs_67um_covar_5x5 differs in "test_g16_conus_day" + temp_3_75um_nom_median_5x5 differs in "test_g16_conus_day" + temp_3_75um_nom_stddev_3x3 differs in "test_g16_conus_day" + + ==================== geo ==================== + glint_mask differs in "test_g16_conus_day" + + ==================== ancil ==================== + coast_mask differs in "test_g16_conus_day" + land_class differs in "test_g16_conus_day" + land_mask differs in "test_g16_conus_day" + ndvi_sfc differs in "test_g16_conus_day" + surface_elevation differs in "test_g16_conus_day" + surface_elevation_max_3x3 differs in "test_g16_conus_day" + surface_elevation_std_3x3 differs in "test_g16_conus_day" + surface_elevation_stddev_3x3 differs in "test_g16_conus_day" + surface_type differs in "test_g16_conus_day" + + ==================== nwp ==================== + cld_height_opaque differs in "test_g16_conus_day" + cld_iwp_nwp differs in "test_g16_conus_day" + cld_lwp_nwp differs in "test_g16_conus_day" + cld_press_nwp differs in "test_g16_conus_day" + cld_press_opaque differs in "test_g16_conus_day" + cld_temp_nwp differs in "test_g16_conus_day" + cloud_fraction_nwp differs in "test_g16_conus_day" + div_200_nwp differs in "test_g16_conus_day" + div_sfc_nwp differs in "test_g16_conus_day" + oisst differs in "test_g16_conus_day" + opaque_height_11_0um_nom differs in "test_g16_conus_day" + opaque_height_12_0um_nom differs in "test_g16_conus_day" + opaque_height_13_3um_nom differs in "test_g16_conus_day" + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + opaque_height_9_7um_nom differs in "test_g16_conus_day" + rh300_nwp differs in "test_g16_conus_day" + snow_class differs in "test_g16_conus_day" + snow_class_nwp differs in "test_g16_conus_day" + surface_temperature_nwp differs in "test_g16_conus_day" + uth_nwp differs in "test_g16_conus_day" + + ==================== rtm ==================== + ndvi_toa differs in "test_g16_conus_day" + refl_0_65um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_65um_nom_clear_sky differs in "test_g16_conus_day" + refl_0_86um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_86um_nom_clear_sky differs in "test_g16_conus_day" + refl_1_60um_nom_atmos_corr differs in "test_g16_conus_day" + temp_11_0um_nom_clear_sky differs in "test_g16_conus_day" + temp_12_0um_nom_clear_sky differs in "test_g16_conus_day" + temp_13_3um_nom_clear_sky differs in "test_g16_conus_day" + temp_3_75um_nom_clear_sky differs in "test_g16_conus_day" + temp_6_7um_nom_clear_sky differs in "test_g16_conus_day" + temp_7_3um_nom_clear_sky differs in "test_g16_conus_day" + temp_9_7um_nom_clear_sky differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + bayes_mask_sfc_type differs in "test_g16_conus_day" + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_qf differs in "test_g16_conus_day" + cloud_mask_rut differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_mask_tut differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + smoke_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + bad_pixel_mask differs in "test_g16_conus_day" + beta_11um_12um_tropopause differs in "test_g16_conus_day" + beta_11um_133um_tropopause differs in "test_g16_conus_day" + beta_11um_67um_tropopause differs in "test_g16_conus_day" + cld_emiss_co2irw differs in "test_g16_conus_day" + cld_emiss_h2o differs in "test_g16_conus_day" + cld_emiss_splitwin differs in "test_g16_conus_day" + cld_height_co2irw differs in "test_g16_conus_day" + cld_height_h2o differs in "test_g16_conus_day" + cld_opd_mask_0_65um_nom differs in "test_g16_conus_day" + cld_opd_mask_1_60um_nom differs in "test_g16_conus_day" + cld_press_co2irw differs in "test_g16_conus_day" + cld_press_h2o differs in "test_g16_conus_day" + cld_press_splitwin differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + emiss_3_75um_nom differs in "test_g16_conus_day" + emiss_3_75um_nom_clear differs in "test_g16_conus_day" + emiss_3_75um_nom_median_3x3 differs in "test_g16_conus_day" + emiss_sfc_11_0um_nom differs in "test_g16_conus_day" + emiss_sfc_3_75um_nom differs in "test_g16_conus_day" + emiss_tropo_11_0um_nom differs in "test_g16_conus_day" + emiss_tropo_12_0um_nom differs in "test_g16_conus_day" + emiss_tropo_13_3um_nom differs in "test_g16_conus_day" + emiss_tropo_3_75um_nom differs in "test_g16_conus_day" + emiss_tropo_6_7um_nom differs in "test_g16_conus_day" + fire_mask differs in "test_g16_conus_day" + freezing_altitude differs in "test_g16_conus_day" + homogenous_freezing_altitude differs in "test_g16_conus_day" + nddi_toa differs in "test_g16_conus_day" + ndsi_toa differs in "test_g16_conus_day" + refl_1_60um_nom_clear_sky differs in "test_g16_conus_day" + refl_3_75um_nom_clear_sky differs in "test_g16_conus_day" + sst_background_uni_3x3 differs in "test_g16_conus_day" + surface_temperature_retrieved differs in "test_g16_conus_day" + trans_atm_11_0um_nom differs in "test_g16_conus_day" + layer_l1g missing from 41094ad/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + sample_mode_l1g missing from 41094ad/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + wmo_id_l1g missing from 41094ad/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + Compared: 48627d7 41094ad + +commit 41094ad5acc93cede078de7660d717915cf90a00 +Merge: 8e6b668 71356f8 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 12 16:12:51 2022 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 41094ad 8e6b668 + +commit 8e6b668a07dad0100a3e236f1ecf7f695337f0c8 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 12 15:56:23 2022 +0000 + + fixed spelling errors + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 8e6b668 eb8cf66 + +commit eb8cf66a803e20a7322c15bb3ec18a5e1914be15 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jan 12 15:53:14 2022 +0000 + + cx_isccp_mod.f90 + +commit 71356f87ca91f6f9ac6b827f19ea06607548ef3f +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jan 11 14:41:01 2022 +0100 + + rttov hirs for early NOAAS bug fix + +commit fad69c3587dff0054538d60a091943316a170829 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jan 7 14:43:13 2022 +0100 + + add file for tesing cx_sds_io + +commit c2feb0b55c6f2c4437960b7d49db48ac9d460f9d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jan 7 14:30:00 2022 +0100 + + small thing with makefile + +commit ff327b71648833b77f5c2f2372caf2fac6cbc3fd +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jan 6 21:02:39 2022 +0100 + + memory leak + +commit 01154618e6afa94094e094d39dceff01f1252e65 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Jan 6 17:00:16 2022 +0000 + + Confirm lut bin-index change + +commit 071f17287832d5051936571454642b1b2d49fd92 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Tue Jan 4 23:47:36 2022 +0000 + + fix index to calculate correct bin + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 071f172 4affba4 + +commit 4affba4a0bf5969d512d7352e211be417a141264 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jan 3 18:47:22 2022 +0100 + + add sseconds + + ==================== l1b ==================== + cld_temp_opaque differs in "test_g16_conus_day" + + ==================== ancil ==================== + ndvi_sfc differs in "test_g16_conus_day" + + ==================== nwp ==================== + cld_height_opaque differs in "test_g16_conus_day" + cld_iwp_nwp differs in "test_g16_conus_day" + cld_lwp_nwp differs in "test_g16_conus_day" + cld_press_opaque differs in "test_g16_conus_day" + cld_temp_nwp differs in "test_g16_conus_day" + cloud_fraction_nwp differs in "test_g16_conus_day" + div_200_nwp differs in "test_g16_conus_day" + div_sfc_nwp differs in "test_g16_conus_day" + el_nwp differs in "test_g16_conus_day" + k_index_nwp differs in "test_g16_conus_day" + lcl_nwp differs in "test_g16_conus_day" + lfc_nwp differs in "test_g16_conus_day" + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + rh300_nwp differs in "test_g16_conus_day" + snow_class_nwp differs in "test_g16_conus_day" + surface_air_temperature_nwp differs in "test_g16_conus_day" + surface_pressure_nwp differs in "test_g16_conus_day" + surface_relative_humidity_nwp differs in "test_g16_conus_day" + surface_temperature_nwp differs in "test_g16_conus_day" + total_column_ozone_nwp differs in "test_g16_conus_day" + total_precipitable_water_nwp differs in "test_g16_conus_day" + tropopause_pressure_nwp differs in "test_g16_conus_day" + tropopause_temperature_nwp differs in "test_g16_conus_day" + uth_nwp differs in "test_g16_conus_day" + + ==================== rtm ==================== + refl_0_65um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_65um_nom_clear_sky differs in "test_g16_conus_day" + refl_0_86um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_86um_nom_clear_sky differs in "test_g16_conus_day" + refl_1_60um_nom_atmos_corr differs in "test_g16_conus_day" + temp_11_0um_nom_clear_sky differs in "test_g16_conus_day" + temp_12_0um_nom_clear_sky differs in "test_g16_conus_day" + temp_13_3um_nom_clear_sky differs in "test_g16_conus_day" + temp_3_75um_nom_clear_sky differs in "test_g16_conus_day" + temp_6_7um_nom_clear_sky differs in "test_g16_conus_day" + temp_7_3um_nom_clear_sky differs in "test_g16_conus_day" + temp_9_7um_nom_clear_sky differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + ccl_nwp differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + beta_11um_12um_tropopause differs in "test_g16_conus_day" + beta_11um_133um_tropopause differs in "test_g16_conus_day" + beta_11um_67um_tropopause differs in "test_g16_conus_day" + cld_emiss_co2irw differs in "test_g16_conus_day" + cld_emiss_h2o differs in "test_g16_conus_day" + cld_emiss_splitwin differs in "test_g16_conus_day" + cld_height_co2irw differs in "test_g16_conus_day" + cld_height_h2o differs in "test_g16_conus_day" + cld_press_co2irw differs in "test_g16_conus_day" + cld_press_h2o differs in "test_g16_conus_day" + cld_press_splitwin differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + emiss_3_75um_nom_clear differs in "test_g16_conus_day" + emiss_sfc_11_0um_nom differs in "test_g16_conus_day" + emiss_sfc_3_75um_nom differs in "test_g16_conus_day" + emiss_tropo_11_0um_nom differs in "test_g16_conus_day" + emiss_tropo_12_0um_nom differs in "test_g16_conus_day" + emiss_tropo_13_3um_nom differs in "test_g16_conus_day" + emiss_tropo_3_75um_nom differs in "test_g16_conus_day" + emiss_tropo_6_7um_nom differs in "test_g16_conus_day" + freezing_altitude differs in "test_g16_conus_day" + refl_1_60um_nom_clear_sky differs in "test_g16_conus_day" + refl_3_75um_nom_clear_sky differs in "test_g16_conus_day" + surface_temperature_retrieved differs in "test_g16_conus_day" + trans_atm_11_0um_nom differs in "test_g16_conus_day" + + Compared: 4affba4 bd57254 + +commit bd572549b85598075e75703cdf8b75666fc60646 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Dec 21 19:14:14 2021 +0000 + + july 2021 beta constraint and undetected_cloud fix + +commit 3d989fe0a0fcb7b0781ae941eb549a4d518f1677 +Merge: 3fa8648 b9c662b +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Dec 20 20:56:20 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + ==================== l1b ==================== + refl_0_65um_nom_stddev_3x3 differs in "test_g16_conus_day" + temp_11_0um_nom_stddev_3x3 differs in "test_g16_conus_day" + temp_3_75um_nom_stddev_3x3 differs in "test_g16_conus_day" + + ==================== ancil ==================== + surface_elevation_std_3x3 differs in "test_g16_conus_day" + surface_elevation_stddev_3x3 differs in "test_g16_conus_day" + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_mask_tut differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 3d989fe 3fa8648 + + ==================== nwp ==================== + cld_cwp_nwp differs in "test_g16_conus_day" + cld_iwp_nwp missing from b9c662b/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cld_lwp_nwp missing from b9c662b/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + ==================== ecm2 ==================== + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 3d989fe b9c662b + +commit 3fa8648e19cadb3240971a9912a44cebfdf89aca +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Dec 20 20:55:49 2021 +0000 + + ECM2 from NBM + + ==================== ecm2 ==================== + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 3fa8648 d376d51 + +commit b9c662b79b0abde882e742600824991e79032cc3 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon Dec 20 16:44:32 2021 +0000 + + Initialization during declaration implies a static variable in fortran. Make explicit + +commit 5280f9d63c8196bed535139e1e26717cc6c0a646 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Dec 16 22:06:14 2021 +0000 + + Don't add add_offset or scale_factor attributes to unscaled variables + +commit 8723af7ea90878c2fa6bb3944881207d05d2bdf9 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Dec 16 22:04:05 2021 +0000 + + Fix precision bug in 3x3 standard deviation + + ==================== l1b ==================== + refl_0_65um_nom_stddev_3x3 differs in "test_g16_conus_day" + temp_11_0um_nom_stddev_3x3 differs in "test_g16_conus_day" + temp_3_75um_nom_stddev_3x3 differs in "test_g16_conus_day" + + ==================== ancil ==================== + surface_elevation_std_3x3 differs in "test_g16_conus_day" + surface_elevation_stddev_3x3 differs in "test_g16_conus_day" + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_mask_tut differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + acha_quality differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 8723af7 618d717 + +commit 618d71791ac935802a7aadb29a02212e45fc08ba +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Wed Dec 15 17:24:01 2021 +0000 + + initialize undetected_cloud + +commit ba511b698754966a9db4a0e2a2c8eb6fca51513e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Dec 8 13:04:13 2021 +0100 + + update reader + +commit af1870dc7fcf2068c26fd5cd3922e528bf9ed6d5 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Dec 3 09:35:03 2021 +0100 + + code cleaning + +commit cab05db66842b5d5721737dd41f76500cb6d8097 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Dec 3 09:22:52 2021 +0100 + + file exist test to viirs nasa read + +commit d376d51f3bae2d7b42798603c53771d1326a5784 +Merge: 5ac893b b3470cd +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Sun Nov 28 03:17:30 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + ==================== nwp ==================== + cld_cwp_nwp differs in "test_g16_conus_day" + cld_iwp_nwp missing from b3470cd/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cld_lwp_nwp missing from b3470cd/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + Compared: d376d51 b3470cd + +commit 5ac893b40f1894976793abb1d3ad93a420a93634 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Sun Nov 28 03:16:22 2021 +0000 + + added var to level2 + + ==================== nwp ==================== + cld_cwp_nwp differs in "test_g16_conus_day" + cld_iwp_nwp missing from 73760ae/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cld_lwp_nwp missing from 73760ae/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + Compared: 5ac893b 73760ae + +commit b3470cd8cd860b62f253be38d73b842090152c8d +Author: Denis Botambekov <dbotambekov@selene.ssec.wisc.edu> +Date: Wed Nov 24 17:54:24 2021 +0000 + + fixed running -caliop with rttov seg fault + +commit 91a0926b5d41a68236f94465ba3cf9ba9eda1672 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Nov 18 11:36:53 2021 +0100 + + viirs hres number of lines issue + +commit 09842c86514a0fa89f7cad399973b380c3d6c244 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Nov 18 10:44:52 2021 +0000 + + files with h5 are often h5 files for variables + +commit 73760aef8882c28c2543d5ba20e0983986f26a6c +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Nov 17 17:05:44 2021 +0000 + + fixed for highres + +commit 80ce9d56ff75aabb503debcf21815ae873209712 +Merge: 585f1c5 b8f71df +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Nov 17 16:54:02 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + +commit 585f1c57b142edab01b8ab7310a9824f2a5e1bae +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Nov 17 16:53:58 2021 +0000 + + fixed for highres + +commit d1ba4f95c7738c28984c87d1276ccaecb62db6cd +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Nov 17 16:52:01 2021 +0000 + + added exit for skip_l1b_flag + +commit b8f71df345d260f9d35206cf27030acf21e88d5e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Nov 16 15:07:45 2021 +0100 + + small changes + +commit 32a6ec5240faf7dd7a7556be52a35b5060b635b1 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Nov 11 16:25:36 2021 +0100 + + rttov test work + +commit 791091ab265204830e488ee1a49349a8610fd97b +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Nov 11 16:25:21 2021 +0100 + + rttov test work + +commit a246a7a2b584d5b9b23c37579435618d345b9fba +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Nov 11 16:25:02 2021 +0100 + + rttov test work + +commit d955bd389cc11b53919e4eee916ccfe137699e0e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Nov 11 16:23:50 2021 +0100 + + checkd hres ABI + +commit 2ebeb17cc4773d09b6e675c08a347e7dde1fcddc +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Nov 4 21:43:57 2021 +0000 + + added wanzong mode with 062um + + ==================== acha ==================== + acha_quality differs in "test_g16_conus_day" + + Compared: 2ebeb17 b228f66 + +commit b228f667064362feecc8e7a881447cc8a0571faf +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Nov 4 21:41:51 2021 +0000 + + added 062um in acha mode check + +commit 180ad6fc6adc3d6f7ece68563876845aaaa5a688 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Nov 2 14:01:47 2021 +0100 + + rttov ozone + +commit b08f52d05d134bae833f58cb2e9d400ff1fb3287 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Nov 1 13:20:25 2021 +0000 + + fixed a little issue + + ==================== ecm2 ==================== + cloud_mask_test_packed_results differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + + ==================== acha ==================== + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + Compared: b08f52d bca2d98 + +commit bca2d98b7a384b53ed0cdb8ec8f904c2a6182790 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Oct 27 15:59:54 2021 +0000 + + add var to pixel common + + ==================== l1b ==================== + cld_temp_opaque differs in "test_g16_conus_day" + + ==================== ancil ==================== + ndvi_sfc differs in "test_g16_conus_day" + + ==================== nwp ==================== + cld_height_opaque differs in "test_g16_conus_day" + cld_press_opaque differs in "test_g16_conus_day" + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== rtm ==================== + refl_0_65um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_65um_nom_clear_sky differs in "test_g16_conus_day" + refl_0_86um_nom_atmos_corr differs in "test_g16_conus_day" + refl_0_86um_nom_clear_sky differs in "test_g16_conus_day" + refl_1_60um_nom_atmos_corr differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + cld_beta_prior_acha missing from bca0ad9/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cld_emiss_prior_acha missing from bca0ad9/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + refl_1_60um_nom_clear_sky differs in "test_g16_conus_day" + cld_temp_aux missing from bca0ad9/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + Compared: bca2d98 bca0ad9 + +commit bca0ad950e57056b08419319ee06e24440f24b35 +Merge: 7b6300c f227bc2 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Oct 27 15:59:08 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + Missing data for f227bc2 +commit 7b6300c483b3d30635ffe09af66c1d93e49c75a0 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Oct 27 15:58:16 2021 +0000 + + added new vars + + No ancestor data for comparison +commit f227bc20235d9590574be48f3f4dab8734c54cfc +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 27 17:40:43 2021 +0200 + + code cleaning + + No f227bc2 data for comparison +commit bad2c7838da8104ca7a69ad9f55677ab3be99700 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 27 17:40:16 2021 +0200 + + code cleaning + + No bad2c78 data for comparison +commit 8a0a10b0ade54800669791c10371216bfadf3c24 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 27 17:40:02 2021 +0200 + + code cleaning + + No 8a0a10b data for comparison +commit 58d97d097d9074b6142c22e545d4252bdcd331ad +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 27 17:39:16 2021 +0200 + + back + + No 58d97d0 data for comparison +commit 4cebda0f6e2d9ff6bb145b8011a2e6e523f4fd47 +Merge: 0345563 07820f2 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Oct 26 20:19:02 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + No 4cebda0 data for comparison +commit 03455632001376752bc9746d4e6f8c703e2a9439 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Oct 26 20:18:58 2021 +0000 + + added 1km + + No 0345563 data for comparison +commit f3352a2290e37406e95a59000e077b0cc42119e6 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Oct 26 20:10:47 2021 +0000 + + fixed for missing + +commit 07820f27c26a4332421c38db2b57db6644f4721d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Oct 26 16:57:19 2021 +0200 + + cosmetic changes + +commit 8c6fd51369c49b44d8b80a69077496afd1744635 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Oct 25 18:38:42 2021 +0200 + + fixed rttov noaa-5 + +commit 6447d21cbbe59ef95c12271f8ba1150442428145 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Oct 25 18:27:26 2021 +0200 + + fixed rttov noaa-5 + +commit 797c7cb87ecb5a45389284e6ffb02b761183c450 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Oct 25 17:52:00 2021 +0200 + + fixed FY3d RTTOV + +commit 3b6ab49a0a4bf76915d71203d6527864d5f450fc +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Oct 18 14:17:53 2021 +0200 + + added sensors FY3-D and older GOES to RTTOV + +commit 80ced7c730f5ecddef359aef1a251a029aaa1b12 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Oct 14 15:25:05 2021 +0200 + + fix hres nasa viirs + +commit 2da2be5308610d59e1d54279d09d9fded087cbbf +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Oct 14 11:09:49 2021 +0200 + + add info call to level2 structures + +commit 7c2b96efda2a829aebb3b6f36615e249528d0103 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Oct 14 08:53:00 2021 +0200 + + muri back + +commit 635baed5ee3df6eed597f6aac10c7b7b1b7a7b15 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 13 13:54:01 2021 +0200 + + fixed hres + +commit b3057676536c2b3e3440ec8450010d6bb1d1a69d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 13 13:53:21 2021 +0200 + + fixed hres + +commit 3efe0b71bc6f6cc468721fe7d1aa3092f2b5210d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 13 10:08:52 2021 +0200 + + switched off VIIRS Dual LST + +commit 9057bb3f6e80d03b28c7a6a3eb4e0a915ad8f793 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Oct 12 17:37:45 2021 +0200 + + fix + + Missing parent test data, using ancestor 37bc133 +commit 69300e7df5252374477bd556951b38a52e99275a +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Oct 12 13:04:26 2021 +0200 + + cleaned code + + No 69300e7 data for comparison +commit 8bb37faa9a32a4bbbd0f7ab4afe15911116bf0ef +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Oct 12 12:59:46 2021 +0200 + + cleaned code + + No 8bb37fa data for comparison +commit 37bc1339eb073f701763e543e14afedf252fabfb +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Oct 7 22:47:45 2021 +0200 + + add dual channel lst + +commit ee4a78044ebd4f10a61ef442d55f9aa72e4aaf43 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Oct 7 16:59:41 2021 +0200 + + viirs nasa hres files for night + +commit f590602583bb7fd46ebfccc487ffbd99b639397f +Merge: 42ab3ef 6a009b5 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 6 13:01:49 2021 +0000 + + fixing merge conflict + +commit 42ab3efb6d30bc4c50374709b1cc82761116b618 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 6 12:52:45 2021 +0000 + + add warning + +commit 1141d2efc54564fa536e0b2d8c8f9bcf2c906109 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 6 12:42:30 2021 +0000 + + add a stop + +commit 6a009b5c6755fe4b49847a4429663b2936c5909c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Oct 6 13:10:33 2021 +0200 + + small changes + +commit 1a928267e78dc6fe23a174d75b50f4a972fd687d +Merge: 78c6ee8 bc46415 +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Wed Sep 22 14:06:31 2021 +0000 + + Merge branch 'muri' into 'develop' + + Muri + + See merge request clavrx/clavrx-dev!2 + +commit bc46415d7161867c48d88c45990b93bb4a9a00a8 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Sep 22 12:55:43 2021 +0000 + + implement new muri code + +commit 0a8b36d11c27e1131832a80e24b217386264a621 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Sep 22 12:55:32 2021 +0000 + + implement new muri code + +commit 2824169077c3954e210d22c7c0ab8a027020d8fd +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Sep 21 16:58:54 2021 +0000 + + remove unused use of module + + Missing parent test data, using ancestor db24861 +commit fca71dcc77d00358b6ed2e5a4590f36bef977a38 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Sep 21 16:55:51 2021 +0000 + + remove unused use of module + + No fca71dc data for comparison +commit db2486121a854a2697b3e1c8c7fcce8319b7f9a3 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Sep 20 23:53:11 2021 +0200 + + add check if file exists + +commit c373d8ddf54161e71569edaa0f782c71e124a268 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Sep 20 22:28:22 2021 +0200 + + bring Mins developments in + +commit 78c6ee831814ac80722e09b3af2a248ae0ec37ef +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sun Sep 19 13:56:36 2021 +0200 + + rttov adjustments + +commit eb77f285d017397980d79bede8327d2e2dc5ed71 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Sep 8 16:15:36 2021 +0200 + + fixed muri issue + +commit b0ad81d480a3a9c54dd775c854313fd8e5135cd0 +Merge: 9e71c6b 00aee44 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Sep 7 15:13:35 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + ==================== misc ==================== + cld_emiss_aux missing from 00aee44/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + Compared: b0ad81d 00aee44 + +commit 9e71c6be456fa938fe09c3ce1d34954fb31d96de +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Sep 7 14:51:43 2021 +0000 + + added myd061km support + + No ancestor data for comparison +commit 00aee4466db40f6b6aede500be7ae8ba3ef24db4 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Sep 7 14:41:21 2021 +0200 + + ignore file + +commit ae573484461266e7215a5dc50ddc4f1e0949bbd9 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Sep 2 17:33:49 2021 +0200 + + rttov metop fix + +commit d23b6a056efffcbbc21245b7b6d6e9211e0857d4 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Aug 31 20:05:25 2021 +0200 + + add VIIRS HRES Bow-tie + +commit 751ef874beb1f4a385eeb64d0606f6d5c40e7b78 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Aug 31 19:18:03 2021 +0200 + + add VIIRS HRES Bow-tie + +commit 1b1ad181df5688df653d27ed92938dacb66e18ea +Author: dbotambekov <denis.botambekov@ssec.wisc.edu> +Date: Wed Aug 25 18:56:29 2021 +0000 + + fixed modis channel numbering in the notes + +commit fe366161d6a2b8dac07682f0aef4d066c6409c86 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Thu Aug 12 20:50:47 2021 +0000 + + added coeff to adjust nasa viirs dnb lunar refl to noaa + +commit 05970ed337f6fa446c8a72f2317361e4124619f0 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Wed Aug 11 19:49:47 2021 +0000 + + removed stuff that forgot to delete + +commit aea16b339f6678cf01f01739a7cfeceb9b1729c5 +Author: dbotambekov <denis.botambekov@ssec.wisc.edu> +Date: Wed Aug 11 15:48:59 2021 +0000 + + fixed noaa-20 dnb mapping + +commit a428bc3f00510eb89cb79c39908178b01a43e9f4 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Aug 2 17:00:05 2021 +0200 + + removed merge lines in process_clavrx + + No ancestor data for comparison +commit f4dd28c310daa0d6f01178791f84297a5be44bb7 +Merge: 28934ed c9d632a +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Fri Jul 30 22:59:31 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + No f4dd28c data for comparison +commit 28934ed45985cb9eaf636739c6d37686b36c6de6 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Fri Jul 30 22:59:01 2021 +0000 + + added limit on missing attr warnings + +commit c9d632a3e0aa537c792ce26a634728f2f1938c4f +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Fri Jul 30 21:33:04 2021 +0000 + + changed max limit for moon illum frac from 1 to 100 + + No c9d632a data for comparison +commit 4afad42e28ba7b33be6c811f41d719cd794eb1c6 +Merge: 1d9b698 e74419a +Author: swanzong <stevew@orchid-submit.ssec.wisc.edu> +Date: Wed Jul 28 21:29:20 2021 +0000 + + Fixed endif bug + + No 4afad42 data for comparison +commit 1d9b698e5f79700e5805119255b92357f5f73f81 +Author: swanzong <stevew@orchid-submit.ssec.wisc.edu> +Date: Wed Jul 28 21:26:56 2021 +0000 + + Fixed endif bug + + No ancestor data for comparison +commit e74419ae5c841589a4177d0b4d1f09d320177068 +Merge: c5e251a 1519f2c +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:45:06 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + Missing data for 1519f2c +commit c5e251a522dcea445df6e35f2375fd9b5712f2f1 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:44:47 2021 +0000 + + simple bug + + No ancestor data for comparison +commit 1519f2c2524a54b6d2b93d2ba4287dd7c11c70d8 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:42:40 2021 +0000 + + Delete ccl_parameters.inc + + No 1519f2c data for comparison +commit 504060b66fd9fe40218b25e4852dc56ec67189e3 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:42:24 2021 +0000 + + Delete awg_cld_hght_include_1.inc + + No 504060b data for comparison +commit a3a102b719b9c68412e283648192850a1c2d6d0f +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:42:18 2021 +0000 + + Delete acha_water_cloud_microphysical_model.inc + + No a3a102b data for comparison +commit 8ca524233290cd41e521426d96427b2fb162b3b6 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:42:11 2021 +0000 + + Delete acha_parameters.inc + + No 8ca5242 data for comparison +commit b8d7799681da7cb2c916fb0db519a995be081196 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:42:05 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_viirs_110um.inc + + No b8d7799 data for comparison +commit 112ffe865061780ee5d8de4b18d7857ce85825cf +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:59 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_viirs_104um.inc + + No 112ffe8 data for comparison +commit 52e892587bce33c02e4cc3a64be6769216761a43 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:54 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_noaa19.inc + + No 52e8925 data for comparison +commit c57e76b1c4d33eaa7018104ef00aa4e922c94b44 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:48 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_modis_110um.inc + + No c57e76b data for comparison +commit 8f8aab683def25d8118e15d0efd10c942f01feb8 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:40 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_modis_104um.inc + + No 8f8aab6 data for comparison +commit c22b0c2fae4f6cd3a66882674f90327bded4fbaa +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:33 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_goes_110um.inc + + No c22b0c2 data for comparison +commit f503c1ef3cfe464616f955b93017f97a03e0ecbb +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:26 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_goes_104um.inc + + No f503c1e data for comparison +commit d9f3382d3393ed9169c90e7feb7227fa481a5a18 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:20 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_goes15.inc + + No d9f3382 data for comparison +commit 514e77d43c8e0f2796580ac12c06ebc072b054fb +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:13 2021 +0000 + + Delete acha_clear_sky_covariances.inc + + No 514e77d data for comparison +commit bb6fcb1e874616ec1a52b7f244a61e7e88faef60 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:41:02 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_avhrr_110um.inc + + No bb6fcb1 data for comparison +commit 2d2ed1029f4397cfe5daf7ef2b5426233e6c64af +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:40:53 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_avhrr_104um.inc + + No 2d2ed10 data for comparison +commit 35ead2c651700509aa057737315143fc0f1ac2bc +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:40:47 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_ahi_110um.inc + + No 35ead2c data for comparison +commit f5df2507ad5d922323711bf4cbacb1101757d254 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:40:38 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_ahi_104um.inc + + No f5df250 data for comparison +commit 0da0e20f335eb8b9d6ce9e2b2573ac0d1b518000 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:40:29 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_abi_110um.inc + + No 0da0e20 data for comparison +commit ede8d1873c2634824e599d29b3fd9807ced5d618 +Author: Magnus <andrew.heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:39:47 2021 +0000 + + Delete acha_ice_cloud_microphysical_model_abi_104um.inc + + No ede8d18 data for comparison +commit 237bd852dd8e6f76ea498bf0c43b84beca5fc325 +Merge: 2191cb9 67bdc98 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:36:59 2021 +0000 + + Merge branch 'develop' of gitlab.ssec.wisc.edu:clavrx/clavrx-dev into develop + + No 237bd85 data for comparison +commit 2191cb9dcc717f8230c9f20f62b872d3de02c38d +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:36:36 2021 +0000 + + removed hardcoding + + No 2191cb9 data for comparison +commit ed71d671e229804fbde21895d1f23a4d36479133 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:36:00 2021 +0000 + + fixed attr read and missing init + + No ed71d67 data for comparison +commit 331c5e62eb367705d5282b2024b6f9149fae1508 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:34:54 2021 +0000 + + prelim dnb correction - not used + + No 331c5e6 data for comparison +commit 427cfce93b493a7a6f9c5b26acebce889b67e592 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jul 28 20:34:12 2021 +0000 + + include path + + Missing parent test data, using ancestor 8d7bcf7 +commit 67bdc98b6cf75468846376fdfd135d2f7e90d2c6 +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Wed Jul 28 16:39:57 2021 +0000 + + removed print and stop + + No 67bdc98 data for comparison +commit bab532884823db9664bf338afb28a6a53ba55de2 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Jul 26 20:28:47 2021 +0000 + + added acha include path + + No bab5328 data for comparison +commit 5dbfb3e508f86a4acdad383de38839a1639c44a0 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Mon Jul 26 20:28:35 2021 +0000 + + added acha include path + + No 5dbfb3e data for comparison +commit 8d7bcf7e9198e60d62048ba8791efc10b9629f0d +Author: dbotambekov <denis.botambekov@ssec.wisc.edu> +Date: Fri Jul 23 22:24:20 2021 +0000 + + fixed acha default for vgac + +commit 16541ba6427b3c6201465fd15a847d078e66d409 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jul 23 15:41:37 2021 +0200 + + fixed thick cloud issue nlcomp + +commit 5ec41becdd72f15767db63900457dbd0ac21cef7 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Jul 22 21:12:59 2021 +0000 + + Update Makefile + + Missing parent test data, using ancestor 1896e0e +commit 8a3be657aeb6512ba9676905f2f0fc3594ee0c70 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Wed Jul 21 22:56:18 2021 +0000 + + Fix vgac reader + + No 8a3be65 data for comparison +commit 1896e0e914d040760e5d816e9da99758feae29bc +Author: dbotambekov <denis.botambekov@ssec.wisc.edu> +Date: Tue Jul 20 16:36:55 2021 +0000 + + changed back nasa viirs moon illum, fixed noaa viirs moon illum, way around moon illum filter in get prob mask until new viirs lut + +commit 155527d2745159c8f9a3abd861c06a08f6a1196c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sat Jul 17 17:05:52 2021 +0200 + + fixed nlcomp issue + +commit 520433ba664025b314d6429069f637b742d658e4 +Author: Denis Botambekov <dbotambekov@patmosx.ssec.wisc.edu> +Date: Thu Jul 15 19:53:14 2021 +0000 + + converted moon illumination from percent to fraction 0-1 + +commit a0526702a7949d783d20263b5c2ac4fbb51b383f +Author: Andi Walther <andi.walther@ssec.wisc.edu> +Date: Tue Jul 13 15:44:46 2021 +0000 + + fixed a thing in readhdf5 for read2integer2d.. can be risky for memory + + Missing parent test data, using ancestor e0322b4 +commit 2b550bb47c49cd014774b062e3b95b612cbf908d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 8 12:31:28 2021 +0200 + + small fix for viirs hres + + No 2b550bb data for comparison +commit 52712992c7da01053cfe09e919cbed479307d96d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 8 12:22:26 2021 +0200 + + moved file + + No 5271299 data for comparison +commit 2cae212a234313d94e60424d6938e5b4bd6f12d8 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 8 12:04:54 2021 +0200 + + fixed last segment issue and time + + No 2cae212 data for comparison +commit 09ed370798c7cb104254ac21471b259e312c14ce +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 8 09:40:16 2021 +0200 + + makefile change + + No 09ed370 data for comparison +commit 37d506cfdc1bd79ffe4597ab3bf0bbc270eaa7fd +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jul 7 19:48:47 2021 +0200 + + viirs hres is ready + + No 37d506c data for comparison +commit 60c3482bd0d1875084c08b8f3f7e90f874cd8bfa +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jul 7 18:18:08 2021 +0200 + + progress viirs hres + + No 60c3482 data for comparison +commit 3a8e1346373e410d3d02063d9a27afb08656b236 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jul 7 18:17:52 2021 +0200 + + removed bug in hdf5 + + No 3a8e134 data for comparison +commit e94bf3a12fda410667ed77d84d5dafad507b12b8 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jul 7 14:18:41 2021 +0200 + + removed some comments + + No e94bf3a data for comparison +commit eb0dabf7b07a89bd361f9a15070f44927e54f517 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jul 6 16:09:31 2021 +0200 + + add scan line time + + No eb0dabf data for comparison +commit e0322b40d81370e29222f8965b03e575649e1355 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jul 6 15:11:17 2021 +0200 + + major progress hres + + Missing parent test data, using ancestor 5a43c52 +commit ecbdd6fe334464af2c366002e19bcde994fca6ab +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jul 5 13:03:06 2021 +0200 + + read geo data for hres data + + No ecbdd6f data for comparison +commit d38d30218ce5238b5a20dfb99ce99d5b6cc6e374 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jul 5 13:02:34 2021 +0200 + + main_src/Compare_Float_Numbers.f90 + + No d38d302 data for comparison +commit 5eb4f95136b2c175695886655960e1cacd37ae61 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jul 5 13:02:27 2021 +0200 + + cx_sds_io/src/cx_h5_read_mod.f90 + + No 5eb4f95 data for comparison +commit 93ca86089375acaeeaeaee08ce26acf132ee6f0c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 1 15:34:47 2021 +0200 + + add viirs HRES + + No 93ca860 data for comparison +commit b8c01b42299726487b8916ef7ac0796d6f7884db +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 1 15:34:30 2021 +0200 + + add viirs HRES + + No b8c01b4 data for comparison +commit 5a43c520876d1c37c84b8c7faf28e778a1f9e1ac +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 1 15:27:31 2021 +0200 + + finished hdf5 read routines + +commit 7b1fbec14758338f09c950632560a01c034810f4 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jul 1 15:25:44 2021 +0200 + + finished hdf5 read routines + +commit 14fdfb8abdc63a8ec9e3ca11f5acd5bc0bf3e2b5 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jun 30 18:47:08 2021 +0200 + + hdf5 work + +commit 36826488ddd5232089d0084a427cd9afe7786027 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jun 30 18:47:01 2021 +0200 + + hdf5 work + +commit 5679b7091747ad261d4442557284bef1c95446d1 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed Jun 30 18:46:38 2021 +0200 + + cx_sds_io/src/cx_h5_read_mod.f90 + +commit 63c9b59016a8dda228a48f38436f3a3fd5592b34 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jun 29 13:57:19 2021 +0200 + + hdf5 work + +commit aae2a144c63ba6a76c9aad582f65e632180bb4fd +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jun 29 13:57:13 2021 +0200 + + hdf5 work + +commit ad1d4d789aec5f53c426d65240ddfe80bc709b41 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jun 29 13:57:05 2021 +0200 + + hdf5 work + +commit 980759b5cc7144ef171477f75122e81662851e86 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sun Jun 27 21:46:56 2021 +0200 + + hdf5 issue + +commit 5314bcb25e4feeb447ef7d6137f39c20564d9d67 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 24 16:12:53 2021 +0200 + + added new files + +commit 6449ef414f8d0293f60071fdda1efdd78cd2b54f +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 24 15:12:40 2021 +0200 + + initial start iof reading viirs nasa hres + +commit eea099fb2dc95d4d7f8034eb93d4fc5808e1164e +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jun 23 03:28:00 2021 +0000 + + updated metop + +commit ef3225e4f1acc10bf2ed947e70740a8d7164d674 +Merge: 5dc194b fef5bfe +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Tue Jun 22 20:30:00 2021 +0000 + + Merge branch 'develop' of https://gitlab.ssec.wisc.edu/clavrx/clavrx-dev into develop + + ==================== acha ==================== + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha missing from 5dc194b/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + + Compared: ef3225e 5dc194b + + Missing data for fef5bfe +commit 5dc194b89453a1fb20fa411d7003fe6126cff46e +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Tue Jun 22 20:29:33 2021 +0000 + + Fixed seviri mapping + +commit fef5bfed9eb5a6a5d50cec76546baebe54551f2c +Merge: 28a77e3 11be2f2 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Jun 22 18:21:53 2021 +0000 + + Merge branch 'develop' of https://gitlab.ssec.wisc.edu/clavrx/clavrx-dev into develop + + No fef5bfe data for comparison +commit 28a77e3e47305c56f0f257f0aa573b1ab3b799ea +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Tue Jun 22 18:20:48 2021 +0000 + + fixed time + +commit 11be2f2fe00b1d0d156a117eb9b1795384d0c001 +Merge: 2cff6fd a167d9d +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Mon Jun 21 17:26:29 2021 +0000 + + Merge branch 'develop' of https://gitlab.ssec.wisc.edu/clavrx/clavrx-dev into develop + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + Compared: 11be2f2 2cff6fd + + Missing data for a167d9d +commit 2cff6fdc0335526f11e9f317a53660b9035b71c2 +Author: Steve Wanzong <steve.wanzong@ssec.wisc.edu> +Date: Mon Jun 21 17:24:31 2021 +0000 + + Modifications for OCA aux reads + + ==================== misc ==================== + cld_press_l2_aux missing from 2aee913/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cld_press_uncer1_aux missing from 2aee913/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cld_press_uncer2_aux missing from 2aee913/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + cost_aux missing from 2aee913/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + Compared: 2cff6fd 2aee913 + +commit a167d9db81a4329316a1a44bb9f4ef56bbb0a103 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 17 21:14:48 2021 +0200 + + rttov is free of hard-coded paths + + No a167d9d data for comparison +commit 8e319838cb30253813fb363b8160c17874401b83 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 17 19:32:53 2021 +0200 + + fixed stop when files from different months for RTTOV EMIS + + No 8e31983 data for comparison +commit b3365c42060e4cb55aab4a29719872c24067b50e +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 17 12:48:04 2021 +0200 + + add something to ignore + + No b3365c4 data for comparison +commit 37920a1c80cd007e022a3f7665ce97c459d42407 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue Jun 15 11:52:10 2021 +0200 + + add addition al comment + + No 37920a1 data for comparison +commit df3e179bfac5d3eb24bc15e605d0c304823a20aa +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jun 14 23:01:27 2021 +0200 + + exclude too high value for zenith: + + No df3e179 data for comparison +commit ed27b6d9143255f94bcdb5738a2801df3213b393 +Merge: 8615683 312887e +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Jun 10 12:17:29 2021 +0000 + + Merge branch 'develop' of https://gitlab.ssec.wisc.edu/clavrx/clavrx-dev into develop + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + Compared: ed27b6d 8615683 + + Missing data for 312887e +commit 86156830394801ed7aa345a0971a5a1741cf3207 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Thu Jun 10 12:15:58 2021 +0000 + + added acha tau uncer + + ==================== acha ==================== + cld_opd_acha differs in "test_g16_conus_day" + cld_opd_uncer_acha missing from 420bdf2/test_g16_conus_day/clavrx_OR_ABI-L1b-RadC-M6C01_G16_s20201232001115_SUB.level2.nc + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + + ==================== dcomp ==================== + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + + Compared: 8615683 420bdf2 + +commit 312887ebf7ff2f42b72e4b0435e3bd01fdf793b3 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Mon Jun 7 20:26:01 2021 +0200 + + added ACHA COD a-priori to DCOMP + + No 312887e data for comparison +commit 2aee9134fddc3e4216eeb0c651f8afe3d9d9ec2d +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri Jun 4 14:57:54 2021 +0200 + + fixed rttov issues with uncoupled make and noaa-20 files + +commit 7d4093aae18d81522661cbf6795e8400a681a377 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu Jun 3 21:19:26 2021 +0200 + + changed to camel clim + +commit 420bdf255db316cc0c38365a80878bbdb1cf9f2a +Merge: 967eb27 f8ddab8 +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jun 2 17:33:49 2021 +0000 + + Merge branch 'develop' of https://gitlab.ssec.wisc.edu/clavrx/clavrx-dev into develop + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_fraction differs in "test_g16_conus_day" + cloud_fraction_uncertainty differs in "test_g16_conus_day" + cloud_mask differs in "test_g16_conus_day" + cloud_mask_binary differs in "test_g16_conus_day" + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_probability differs in "test_g16_conus_day" + cloud_probability_uncertainty differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + ice_cloud_probability differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + water_cloud_probability differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_5 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + conv_cloud_fraction differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + adj_pix_cld_mask differs in "test_g16_conus_day" + cloud_phase_uncertainty differs in "test_g16_conus_day" + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 420bdf2 967eb27 + + Missing data for f8ddab8 +commit 967eb2785d8a83f596437cf864d08267ee55013e +Author: heidinger <heidinger@ssec.wisc.edu> +Date: Wed Jun 2 17:32:40 2021 +0000 + + warm edge filter and pc_median + + ==================== nwp ==================== + opaque_height_6_7um_nom differs in "test_g16_conus_day" + opaque_height_7_3um_nom differs in "test_g16_conus_day" + + ==================== ecm2 ==================== + cloud_mask_test_packed_results differs in "test_g16_conus_day" + cloud_phase differs in "test_g16_conus_day" + cloud_type differs in "test_g16_conus_day" + shadow_mask differs in "test_g16_conus_day" + + ==================== acha ==================== + acha_info differs in "test_g16_conus_day" + acha_inversion_flag differs in "test_g16_conus_day" + cld_altitude_acha differs in "test_g16_conus_day" + cld_beta_acha differs in "test_g16_conus_day" + cld_emiss_acha differs in "test_g16_conus_day" + cld_emiss_acha_uncer differs in "test_g16_conus_day" + cld_height_acha differs in "test_g16_conus_day" + cld_height_base_acha differs in "test_g16_conus_day" + cld_height_eff_acha differs in "test_g16_conus_day" + cld_height_uncer_acha differs in "test_g16_conus_day" + cld_opd_acha differs in "test_g16_conus_day" + cld_press_acha differs in "test_g16_conus_day" + cld_press_eff_acha differs in "test_g16_conus_day" + cld_press_uncer_acha differs in "test_g16_conus_day" + cld_reff_acha differs in "test_g16_conus_day" + cld_temp_acha differs in "test_g16_conus_day" + cld_temp_eff_acha differs in "test_g16_conus_day" + cld_temp_lower_acha differs in "test_g16_conus_day" + cld_temp_prior_acha differs in "test_g16_conus_day" + cld_temp_uncer_acha differs in "test_g16_conus_day" + cloud_type_acha differs in "test_g16_conus_day" + cost_acha differs in "test_g16_conus_day" + goodness_acha differs in "test_g16_conus_day" + ice_prob_acha differs in "test_g16_conus_day" + ice_prob_uncer_acha differs in "test_g16_conus_day" + latitude_pc differs in "test_g16_conus_day" + longitude_pc differs in "test_g16_conus_day" + lower_cld_temp_prior_acha differs in "test_g16_conus_day" + supercooled_prob_acha differs in "test_g16_conus_day" + wind_direction_cloud_top_nwp differs in "test_g16_conus_day" + wind_speed_cloud_top_nwp differs in "test_g16_conus_day" + + ==================== acba ==================== + cld_base_altitude differs in "test_g16_conus_day" + cld_geo_thick differs in "test_g16_conus_day" + cld_height_base differs in "test_g16_conus_day" + cld_temp_base differs in "test_g16_conus_day" + lower_cld_base_altitude differs in "test_g16_conus_day" + + ==================== dcomp ==================== + cdnc_dcomp differs in "test_g16_conus_day" + cld_cwp_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp differs in "test_g16_conus_day" + cld_opd_dcomp_3 differs in "test_g16_conus_day" + cld_opd_dcomp_unc differs in "test_g16_conus_day" + cld_reff_dcomp differs in "test_g16_conus_day" + cld_reff_dcomp_3 differs in "test_g16_conus_day" + cld_reff_dcomp_fit differs in "test_g16_conus_day" + cld_reff_dcomp_unc differs in "test_g16_conus_day" + cloud_albedo_0_65um_nom differs in "test_g16_conus_day" + cloud_transmission_0_65um_nom differs in "test_g16_conus_day" + dcomp_info differs in "test_g16_conus_day" + dcomp_quality differs in "test_g16_conus_day" + hcld_dcomp differs in "test_g16_conus_day" + insolation_dcomp differs in "test_g16_conus_day" + insolation_diffuse_dcomp differs in "test_g16_conus_day" + iwc_dcomp differs in "test_g16_conus_day" + lwc_dcomp differs in "test_g16_conus_day" + rain_rate differs in "test_g16_conus_day" + refl_0_65um_nom_asym_dcomp differs in "test_g16_conus_day" + + ==================== ccl ==================== + ccl_1 differs in "test_g16_conus_day" + ccl_2 differs in "test_g16_conus_day" + ccl_3 differs in "test_g16_conus_day" + ccl_4 differs in "test_g16_conus_day" + ccl_5 differs in "test_g16_conus_day" + ccl_layer_flag differs in "test_g16_conus_day" + conv_ccl_1 differs in "test_g16_conus_day" + conv_ccl_2 differs in "test_g16_conus_day" + conv_ccl_3 differs in "test_g16_conus_day" + conv_ccl_4 differs in "test_g16_conus_day" + conv_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_ccl_1 differs in "test_g16_conus_day" + supercooled_ccl_2 differs in "test_g16_conus_day" + supercooled_ccl_3 differs in "test_g16_conus_day" + supercooled_ccl_4 differs in "test_g16_conus_day" + supercooled_ccl_5 differs in "test_g16_conus_day" + supercooled_ccl_layer_flag differs in "test_g16_conus_day" + supercooled_cloud_fraction differs in "test_g16_conus_day" + + ==================== misc ==================== + csbt_mask_11_0um_nom differs in "test_g16_conus_day" + csbt_mask_12_0um_nom differs in "test_g16_conus_day" + csbt_mask_13_3um_nom differs in "test_g16_conus_day" + csbt_mask_6_7um_nom differs in "test_g16_conus_day" + csbt_mask_7_3um_nom differs in "test_g16_conus_day" + csbt_mask_9_7um_nom differs in "test_g16_conus_day" + + Compared: 967eb27 203f0d9 + +commit f8ddab8e3a04718045e7b68bb1e05aa2e8bff499 +Merge: 85e7392 5f1680e +Author: Mike Foster <mfoster@orchid-submit.ssec.wisc.edu> +Date: Wed May 26 15:17:56 2021 +0000 + + Merge branch 'develop' of https://gitlab.ssec.wisc.edu/clavrx/clavrx-dev into develop + + No f8ddab8 data for comparison +commit 5f1680ec8c762b3e5e4b2828bc037ff2cb741391 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Wed May 26 12:12:37 2021 +0200 + + removed unused declarations + + No 5f1680e data for comparison +commit bc165f0ce5d65ae2e97b916d3322b0cf04a7e6d2 +Author: Denis Botambekov <dbotambekov@patmosx.ssec.wisc.edu> +Date: Tue May 25 20:56:18 2021 +0000 + + added filter for frozen lake coast to the science code + + No bc165f0 data for comparison +commit 6f6fc0c6ba9758683dc5470c9f5f682aa9763af8 +Author: Denis Botambekov <dbotambekov@patmosx.ssec.wisc.edu> +Date: Tue May 25 20:18:00 2021 +0000 + + search pattern for vgac caliop collocation + + No 6f6fc0c data for comparison +commit 203f0d96f3517c14e4619beb8005c914ea9a1454 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue May 25 15:37:16 2021 +0200 + + more tests + +commit f589b794a4dd906bd80227dea8f7c801494bbe64 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Tue May 25 15:10:04 2021 +0200 + + dd test for cx_sds_io + +commit 85e73921fb6fa822d00fd9f7c7dc926fe4091834 +Author: Mike Foster <mfoster@orchid-submit.ssec.wisc.edu> +Date: Mon May 24 22:33:35 2021 +0000 + + added function to reset replaced 3.75 bt to missing for output fields + + No 85e7392 data for comparison +commit 6cd49e37622f4ca62c3fade7e39d7f28e00f8b6f +Author: Denis Botambekov <denis.botambekov@ssec.wisc.edu> +Date: Mon May 24 17:00:18 2021 +0000 + + fixed month for time calculation + +commit b1f582ab2252d7735e2e24a00440b1b827c4bf0c +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Sun May 23 16:38:25 2021 +0200 + + add some file types to ignore + +commit ba9bf658e4a29d0555821a5eecb039f3ee9f4c11 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Mon May 10 18:35:47 2021 +0000 + + Remove commented code + +commit bf82be258924316a5ee428bc7f0f8006294830ff +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 7 19:24:21 2021 +0000 + + Add runtime checks for rttov options when not compiled with rttov + +commit ce66d6c5fc714cd74b62c09cac25a73e7b73e0e6 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Fri May 7 15:05:57 2021 +0000 + + Move RTTOV coeffs to ancil dir + +commit 6b0f10cb398a472a48c35e6cd9aaa65484420a7a +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu May 6 20:56:39 2021 +0000 + + Switch from hdf4 seebor to netcdf seebor emissivity ancil + +commit 5e67c8438132d242326308d4486c98c0e66eb211 +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Fri May 7 11:39:48 2021 +0200 + + make hostname universial + +commit 70576f0847b5ca0822372ae68e0c6416865fb1aa +Author: awalther <andi.walther@ssec.wisc.edu> +Date: Thu May 6 14:52:54 2021 +0200 + + fixed RTTOV AVHRR/2 and AVHRR/3 issue + +commit 704ce65194d4148dfa895d5a63e1e2114e83b2c8 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Apr 29 19:56:37 2021 +0000 + + Add gitignore + +commit 73f77bdfb3fbc804d3f1a50799943c845b841850 +Author: Coda Phillips <coda.phillips@wisc.edu> +Date: Thu Apr 29 19:45:50 2021 +0000 + + Fix bug in Makefile.inc that prevents build + diff --git a/main_src/Makefile b/main_src/Makefile index 6e2aafb2003fa4e3f279c14e3a47cc226cdfe7cc..a3a79dd12bed8894c55f4ef63520c0ce41f38208 100644 --- a/main_src/Makefile +++ b/main_src/Makefile @@ -50,7 +50,7 @@ ARCH=gfortran COMP=gfortran -ifneq ($(ARCH), $(filter $(ARCH), ifort ifort-debug ifort-profile gfortran gfortran-debug gfortran-debug-andy gfortran-strict ifort-trace gfortran-profile gfortran-cspp)) +ifneq ($(ARCH), $(filter $(ARCH), ifort ifort-debug ifort-profile gfortran gfortran-debug gfortran-debug-andy gfortran-strict ifort-trace gfortran-profile gfortran-cspp gfortran10)) $(error ARCH $(ARCH) not a existing build in ../build/arch) endif ifeq ($(ARCH), $(filter $(ARCH), ifort ifort-debug ifort-profile ifort-trace)) @@ -295,7 +295,8 @@ clavrxorb_objs = process_clavrx.o \ cx_nwp_rtm_mod.o \ cx_sfc_emissivity_mod.o \ cx_rtm_mod.o \ - viirs_nasa_hres_read_mod.o + viirs_nasa_hres_read_mod.o \ + cleanup.o #Level2b routines comp_asc_des_level2b_objs = comp_asc_des_level2b.o \ @@ -307,7 +308,8 @@ comp_asc_des_level2b_objs = comp_asc_des_level2b.o \ cx_date_time_tools_mod.o \ cx_real_boolean_mod.o \ class_time_date.o \ - constants_mod.o + constants_mod.o \ + pixel_common_mod.o #Level2b subsetting routines drive_subset_level2b_objs = drive_subset_level2b.o \ @@ -318,7 +320,8 @@ drive_subset_level2b_objs = drive_subset_level2b.o \ level2b_mod.o \ numerical_routines_mod.o \ cx_real_boolean_mod.o \ - constants_mod.o + constants_mod.o \ + pixel_common_mod.o CLAVRX_OBJ_FILES = $(clavrxorb_objs) @@ -461,7 +464,8 @@ user_options.o: user_options.f90 constants_mod.o pixel_common_mod.o clavrx_messa pixel_common_mod.o: pixel_common_mod.f90 constants_mod.o class_time_date.o caliop_collocation_mod.o: caliop_collocation_mod.f90 pixel_common_mod.o file_tools.o clavrx_message_mod.o cx_hdf4_mod.o cx_spatial_metrics_mod.o: cx_spatial_metrics_mod.f90 constants_mod.o numerical_routines_mod.o pixel_common_mod.o cx_real_boolean_mod.o numerical_routines_mod.o acha_clavrx_bridge_module.o -pixel_routines_mod.o: pixel_routines_mod.f90 constants_mod.o numerical_routines_mod.o pixel_common_mod.o nwp_common_mod.o planck_mod.o algorithm_constants_mod.o land_sfc_properties_mod.o surface_properties_mod.o calibration_constants_mod.o viewing_geometry_mod.o caliop_collocation_mod.o nbm_cloud_mask_clavrx_bridge_module.o +pixel_routines_mod.o: pixel_routines_mod.f90 constants_mod.o numerical_routines_mod.o pixel_common_mod.o nwp_common_mod.o planck_mod.o algorithm_constants_mod.o land_sfc_properties_mod.o surface_properties_mod.o calibration_constants_mod.o viewing_geometry_mod.o caliop_collocation_mod.o nbm_cloud_mask_clavrx_bridge_module.o clavrx_message_mod.o + $(fc) -c $(fflags) $(cppflags) $(cpp) -fno-finite-math-only pixel_routines_mod.f90 clavrx_olr_mod.o: clavrx_olr_mod.f90 constants_mod.o pixel_common_mod.o algorithm_constants_mod.o clavrx_sst_mod.o: clavrx_sst_mod.f90 constants_mod.o pixel_common_mod.o calibration_constants_mod.o: calibration_constants_mod.f90 constants_mod.o @@ -488,14 +492,14 @@ clavrx_static_nav_module.o: clavrx_static_nav_module.f90 constants_mod.o cx_date endif ifdef rttov_libs -cx_sfc_emissivity_mod.o:cx_sfc_emissivity_mod.f90 cx_rttov_sfc_emiss.o +cx_sfc_emissivity_mod.o:cx_sfc_emissivity_mod.f90 cx_rttov_sfc_emiss.o clavrx_message_mod.o $(fc) -c $(fflags) $(cppflags) $(cpp) $(fflags_clavr) -I$(RTTOV_DIR) $(LIB_RTTOV_FLAG) cx_sfc_emissivity_mod.f90 -cx_rtm_mod.o:cx_rtm_mod.f90 nwp_common_mod.o cx_rttov_bridge_mod.o +cx_rtm_mod.o:cx_rtm_mod.f90 nwp_common_mod.o cx_rttov_bridge_mod.o clavrx_message_mod.o $(fc) -c $(fflags) $(cppflags) $(cpp) -I$(RTTOV_DIR) $(LIB_RTTOV_FLAG) cx_rtm_mod.f90 else -cx_sfc_emissivity_mod.o:cx_sfc_emissivity_mod.f90 +cx_sfc_emissivity_mod.o:cx_sfc_emissivity_mod.f90 clavrx_message_mod.o cx_rtm_mod.o:cx_rtm_mod.f90 nwp_common_mod.o $(fc) -c $(fflags) $(cppflags) $(cpp) cx_rtm_mod.f90 @@ -537,11 +541,11 @@ dnb_retrievals_mod.o:dnb_retrievals_mod.f90 file_tools.o cloud_height_routines.o: cloud_height_routines.f90 constants_mod.o planck_mod.o rtm_common_mod.o numerical_routines_mod.o cx_science_tools_mod.o cx_real_boolean_mod.o clavrx_message_mod.o: clavrx_message_mod.f90 file_tools.o foul.o pixel_common_mod.o cx_hdf4_mod.o: version.inc cx_hdf4_mod.f90 hdf.o constants_mod.o level2_structures_mod.o cx_real_boolean_mod.o -comp_asc_des_level2b.o: comp_asc_des_level2b.f90 constants_mod.o cx_hdf4_mod.o hdf.o level2b_mod.o level2_structures_mod.o cx_real_boolean_mod.o file_tools.o +comp_asc_des_level2b.o: comp_asc_des_level2b.f90 constants_mod.o cx_hdf4_mod.o hdf.o level2b_mod.o level2_structures_mod.o cx_real_boolean_mod.o file_tools.o pixel_common_mod.o drive_subset_level2b.o: drive_subset_level2b.f90 constants_mod.o cx_hdf4_mod.o hdf.o level2b_mod.o -file_tools.o: file_tools.f90 +file_tools.o: file_tools.f90 pixel_common_mod.o foul.o: foul.f90 -goes_mod.o: goes_mod.f90 pixel_common_mod.o viewing_geometry_mod.o cx_date_time_tools_mod.o avhrr_mod.o file_tools.o cx_spatial_metrics_mod.o +goes_mod.o: goes_mod.f90 pixel_common_mod.o viewing_geometry_mod.o cx_date_time_tools_mod.o avhrr_mod.o file_tools.o cx_spatial_metrics_mod.o clavrx_message_mod.o abi_mod.o: abi_mod.f90 pixel_common_mod.o goes_mod.o file_tools.o viewing_geometry_mod.o cx_real_boolean_mod.o Compare_Float_Numbers.o: Compare_Float_Numbers.f90 constants_mod.o gfs_hdf_mod.o: gfs_hdf_mod.f90 constants_mod.o cx_science_tools_mod.o nwp_common_mod.o hdf.o clavrx_message_mod.o cx_hdf4_mod.o @@ -583,7 +587,7 @@ sapf_read_mod.o: sapf_read_mod.f90 hdf.o constants_mod.o pixel_common_mod.o file $(fc) -c $(fflags) $(cppflags) $(cpp) $(CLAVRX_ID_FLAG) $(netcdflibs) sapf_read_mod.f90 planck_mod.o: planck_mod.f90 constants_mod.o calibration_constants_mod.o pixel_common_mod.o avhrr_reposition_mod.o: avhrr_reposition_mod.f90 constants_mod.o cx_date_time_tools_mod.o pixel_common_mod.o reposnx.o -seviri_mod.o: seviri_mod.f90 pixel_common_mod.o constants_mod.o numerical_routines_mod.o goes_mod.o viewing_geometry_mod.o +seviri_mod.o: seviri_mod.f90 pixel_common_mod.o constants_mod.o numerical_routines_mod.o goes_mod.o viewing_geometry_mod.o clavrx_message_mod.o oca_mod.o: oca_mod.f90 hdf.o constants_mod.o pixel_common_mod.o file_tools.o sfc_emiss.o: sfc_emiss.f90 constants_mod.o numerical_routines_mod.o $(fc) -c $(fflags) $(cppflags) $(cpp) $(CLAVRX_ID_FLAG) $(netcdflibs) sfc_emiss.f90 @@ -682,7 +686,8 @@ sub_routine = constants_mod.o pixel_common_mod.o pixel_routines_mod.o clavrx_sst seviri_mod.o mvcm_read_mod.o sapf_read_mod.o oca_mod.o mtsat_mod.o hirs_fusion_mod.o \ simple_cod_065um_mod.o simple_cod_138um_mod.o simple_cod_lunar_mod.o simple_cod_160um_mod.o \ coms_mod.o level2b_mod.o dcomp_rtm_module.o dcomp_derived_products_mod.o cx_date_time_tools_mod.o \ - cx_real_boolean_mod.o cx_abi_lhp_mod.o cx_spatial_metrics_mod.o cx_atmospheric_correction_vis_mod.o cx_nwp_rtm_mod.o + cx_real_boolean_mod.o cx_abi_lhp_mod.o cx_spatial_metrics_mod.o cx_atmospheric_correction_vis_mod.o cx_nwp_rtm_mod.o\ + cx_nwp_rtm_mod.o cleanup.o ifdef rttov_libs1 sub_routine += cx_rttov_sfc_emiss.o cx_rttov_bridge_mod.o @@ -771,7 +776,7 @@ geos_transform_pix.o: geos_transform_pix.c ################################ Misc. Targets ################################# all_plus: -ifeq ($(ARCH),$(filter $(ARCH), gfortran gfortran-strict gfortran-debug gfortran-profile )) +ifeq ($(ARCH),$(filter $(ARCH), gfortran gfortran-strict gfortran-debug gfortran-profile gfortran10 )) all_plus: dcomp_gfortran muri_gfortran all else all_plus: dcomp_ifort muri_ifort all diff --git a/main_src/abi_mod.f90 b/main_src/abi_mod.f90 index aba214980075ae728005c5fcb7ce331963e6e933..fefe4112999656e39f09d625d22727e971468f8e 100644 --- a/main_src/abi_mod.f90 +++ b/main_src/abi_mod.f90 @@ -150,7 +150,7 @@ CONTAINS erstat = 0 if (ios0 /= 0) then erstat = 19 - call MESG( "ABI instrument constants open failed",level = verb_lev % ERROR) + call MESG( "ABI instrument constants open failed "//trim(Instr_Const_file),level = verb_lev % ERROR) stop 19 end if read(unit=Instr_Const_lun,fmt="(a7)") sat_name diff --git a/main_src/abi_solar_terms.inc b/main_src/abi_solar_terms.inc index 1d127d9a39211146201c0ce2dd1c18fdcc0353b7..597ba8a52f83186952c44564f2d27508ad141507 100644 --- a/main_src/abi_solar_terms.inc +++ b/main_src/abi_solar_terms.inc @@ -1,99 +1,199 @@ case(270) -!SRF = tigr_tpw_trans_ch1_resp_g16.dat -Solar_Rtm%Tau_H2O_Coef( 3,:) = (/ 3.6998e-06, 5.0675e-05, -3.3499e-07/) -Solar_Rtm%Tau_Ray( 3) = 2.0100e-01 +!SRF = tigr_tpw_trans_rtcoef_goes_16_abi_srf_ch01.txt +Solar_Rtm%Tau_H2O_Coef( 3,:) = (/ 4.0976e-06, 5.1192e-05, -4.5276e-07/) +Solar_Rtm%Tau_Ray( 3) = 2.0117e-01 Solar_Rtm%Tau_O3( 3) = 0.0000e+00 Solar_Rtm%Tau_CO2( 3) = 0.0000e+00 Solar_Rtm%Tau_CH4( 3) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch2_resp_g16.dat -Solar_Rtm%Tau_H2O_Coef( 1,:) = (/ 6.2750e-05, 3.0561e-03, -8.3073e-05/) -Solar_Rtm%Tau_Ray( 1) = 5.8569e-02 -Solar_Rtm%Tau_O3( 1) = 4.7051e-05 + +!SRF = tigr_tpw_trans_rtcoef_goes_16_abi_srf_ch02.txt +Solar_Rtm%Tau_H2O_Coef( 1,:) = (/ 1.0781e-04, 3.0131e-03, -7.5446e-05/) +Solar_Rtm%Tau_Ray( 1) = 5.8779e-02 +Solar_Rtm%Tau_O3( 1) = 4.5443e-05 Solar_Rtm%Tau_CO2( 1) = 0.0000e+00 Solar_Rtm%Tau_CH4( 1) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch3_resp_g16.dat -Solar_Rtm%Tau_H2O_Coef( 2,:) = (/ -4.1299e-05, 1.5030e-03, -2.9715e-05/) -Solar_Rtm%Tau_Ray( 2) = 1.7029e-02 + +!SRF = tigr_tpw_trans_rtcoef_goes_16_abi_srf_ch03.txt +Solar_Rtm%Tau_H2O_Coef( 2,:) = (/ 4.5128e-06, 1.5223e-03, -3.2667e-05/) +Solar_Rtm%Tau_Ray( 2) = 1.6950e-02 Solar_Rtm%Tau_O3( 2) = 0.0000e+00 Solar_Rtm%Tau_CO2( 2) = 0.0000e+00 Solar_Rtm%Tau_CH4( 2) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch4_resp_g16.dat -Solar_Rtm%Tau_H2O_Coef(26,:) = (/ 1.2738e+00, 1.8398e+00, -1.0312e-01/) -Solar_Rtm%Tau_Ray(26) = 2.5810e-03 + +!SRF = tigr_tpw_trans_rtcoef_goes_16_abi_srf_ch04.txt +Solar_Rtm%Tau_H2O_Coef(26,:) = (/ 1.2994e+00, 1.8412e+00, -1.0906e-01/) +Solar_Rtm%Tau_Ray(26) = 2.6229e-03 Solar_Rtm%Tau_O3(26) = 0.0000e+00 -Solar_Rtm%Tau_CO2(26) = 2.6543e-05 +Solar_Rtm%Tau_CO2(26) = 4.7467e-05 Solar_Rtm%Tau_CH4(26) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch5_resp_g16.dat -Solar_Rtm%Tau_H2O_Coef( 6,:) = (/ -1.7666e-05, 1.0591e-03, -9.8830e-06/) -Solar_Rtm%Tau_Ray( 6) = 1.4007e-03 + +!SRF = tigr_tpw_trans_rtcoef_goes_16_abi_srf_ch05.txt +Solar_Rtm%Tau_H2O_Coef( 6,:) = (/ 2.8819e-05, 9.5829e-04, 6.5462e-06/) +Solar_Rtm%Tau_Ray( 6) = 1.3928e-03 Solar_Rtm%Tau_O3( 6) = 0.0000e+00 -Solar_Rtm%Tau_CO2( 6) = 2.3108e-02 +Solar_Rtm%Tau_CO2( 6) = 2.2580e-02 Solar_Rtm%Tau_CH4( 6) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch6_resp_g16.dat -Solar_Rtm%Tau_H2O_Coef( 7,:) = (/ -1.9361e-04, 3.0409e-03, -1.1826e-04/) -Solar_Rtm%Tau_Ray( 7) = 3.6633e-04 + +!SRF = tigr_tpw_trans_rtcoef_goes_16_abi_srf_ch06.txt +Solar_Rtm%Tau_H2O_Coef( 7,:) = (/ -1.8007e-04, 2.9631e-03, -1.1315e-04/) +Solar_Rtm%Tau_Ray( 7) = 3.6684e-04 Solar_Rtm%Tau_O3( 7) = 0.0000e+00 -Solar_Rtm%Tau_CO2( 7) = 2.9395e-06 +Solar_Rtm%Tau_CO2( 7) = 3.1249e-06 Solar_Rtm%Tau_CH4( 7) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch7_resp_g16.dat -Solar_Rtm%Tau_H2O_Coef(20,:) = (/ 3.9973e-04, 2.0678e-02, -9.5447e-04/) -Solar_Rtm%Tau_Ray(20) = 2.1935e-05 + +!SRF = tigr_tpw_trans_rtcoef_goes_16_abi_srf_ch07.txt +Solar_Rtm%Tau_H2O_Coef(20,:) = (/ 4.4318e-04, 2.3993e-02, -1.1494e-03/) +Solar_Rtm%Tau_Ray(20) = 2.2932e-05 Solar_Rtm%Tau_O3(20) = 0.0000e+00 -Solar_Rtm%Tau_CO2(20) = 3.3747e-03 +Solar_Rtm%Tau_CO2(20) = 3.0228e-03 Solar_Rtm%Tau_CH4(20) = 0.0000e+00 case(271) -!SRF = tigr_tpw_trans_ch1_resp_g17.dat -Solar_Rtm%Tau_H2O_Coef( 3,:) = (/ 3.8492e-06, 5.1239e-05, -3.9976e-07/) -Solar_Rtm%Tau_Ray( 3) = 2.0021e-01 +!SRF = tigr_tpw_trans_rtcoef_goes_17_abi_srf_ch01.txt +Solar_Rtm%Tau_H2O_Coef( 3,:) = (/ 4.9039e-06, 4.9691e-05, 5.8542e-08/) +Solar_Rtm%Tau_Ray( 3) = 2.0122e-01 Solar_Rtm%Tau_O3( 3) = 0.0000e+00 Solar_Rtm%Tau_CO2( 3) = 0.0000e+00 Solar_Rtm%Tau_CH4( 3) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch2_resp_g17.dat -Solar_Rtm%Tau_H2O_Coef( 1,:) = (/ 7.8288e-05, 3.0282e-03, -7.4102e-05/) -Solar_Rtm%Tau_Ray( 1) = 5.8814e-02 -Solar_Rtm%Tau_O3( 1) = 4.7445e-05 + +!SRF = tigr_tpw_trans_rtcoef_goes_17_abi_srf_ch02.txt +Solar_Rtm%Tau_H2O_Coef( 1,:) = (/ 4.4817e-05, 3.1352e-03, -9.5973e-05/) +Solar_Rtm%Tau_Ray( 1) = 5.9081e-02 +Solar_Rtm%Tau_O3( 1) = 4.7786e-05 Solar_Rtm%Tau_CO2( 1) = 0.0000e+00 Solar_Rtm%Tau_CH4( 1) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch3_resp_g17.dat -Solar_Rtm%Tau_H2O_Coef( 2,:) = (/ -1.3455e-05, 1.4371e-03, -2.3229e-05/) -Solar_Rtm%Tau_Ray( 2) = 1.6993e-02 + +!SRF = tigr_tpw_trans_rtcoef_goes_17_abi_srf_ch03.txt +Solar_Rtm%Tau_H2O_Coef( 2,:) = (/ 1.1352e-05, 1.5409e-03, -3.1745e-05/) +Solar_Rtm%Tau_Ray( 2) = 1.6952e-02 Solar_Rtm%Tau_O3( 2) = 0.0000e+00 Solar_Rtm%Tau_CO2( 2) = 0.0000e+00 Solar_Rtm%Tau_CH4( 2) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch4_resp_g17.dat -Solar_Rtm%Tau_H2O_Coef(26,:) = (/ 1.3328e+00, 1.8217e+00, -1.0038e-01/) -Solar_Rtm%Tau_Ray(26) = 2.6204e-03 + +!SRF = tigr_tpw_trans_rtcoef_goes_17_abi_srf_ch04.txt +Solar_Rtm%Tau_H2O_Coef(26,:) = (/ 1.3288e+00, 1.8344e+00, -1.0356e-01/) +Solar_Rtm%Tau_Ray(26) = 2.6365e-03 Solar_Rtm%Tau_O3(26) = 0.0000e+00 -Solar_Rtm%Tau_CO2(26) = 4.7726e-05 +Solar_Rtm%Tau_CO2(26) = 4.7890e-05 Solar_Rtm%Tau_CH4(26) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch5_resp_g17.dat -Solar_Rtm%Tau_H2O_Coef( 6,:) = (/ -2.8946e-05, 1.0648e-03, -1.1633e-05/) -Solar_Rtm%Tau_Ray( 6) = 1.4002e-03 + +!SRF = tigr_tpw_trans_rtcoef_goes_17_abi_srf_ch05.txt +Solar_Rtm%Tau_H2O_Coef( 6,:) = (/ -2.1605e-05, 1.0483e-03, -1.0218e-05/) +Solar_Rtm%Tau_Ray( 6) = 1.3874e-03 Solar_Rtm%Tau_O3( 6) = 0.0000e+00 -Solar_Rtm%Tau_CO2( 6) = 2.2943e-02 - -!SRF = tigr_tpw_trans_ch6_resp_g17.dat -Solar_Rtm%Tau_H2O_Coef( 7,:) = (/ -1.6756e-04, 3.1410e-03, -1.2049e-04/) -Solar_Rtm%Tau_Ray( 7) = 3.6915e-04 +Solar_Rtm%Tau_CO2( 6) = 2.2793e-02 +Solar_Rtm%Tau_CH4( 6) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_17_abi_srf_ch06.txt +Solar_Rtm%Tau_H2O_Coef( 7,:) = (/ -2.0707e-04, 3.2254e-03, -1.3040e-04/) +Solar_Rtm%Tau_Ray( 7) = 3.6919e-04 Solar_Rtm%Tau_O3( 7) = 0.0000e+00 -Solar_Rtm%Tau_CO2( 7) = 3.2330e-06 +Solar_Rtm%Tau_CO2( 7) = 3.1235e-06 Solar_Rtm%Tau_CH4( 7) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_17_abi_srf_ch07.txt +Solar_Rtm%Tau_H2O_Coef(20,:) = (/ 7.4725e-04, 2.6163e-02, -1.3225e-03/) +Solar_Rtm%Tau_Ray(20) = 2.7009e-05 +Solar_Rtm%Tau_O3(20) = 0.0000e+00 +Solar_Rtm%Tau_CO2(20) = 2.9669e-03 +Solar_Rtm%Tau_CH4(20) = 0.0000e+00 -!SRF = tigr_tpw_trans_ch7_resp_g17.dat -Solar_Rtm%Tau_H2O_Coef(20,:) = (/ 8.3411e-04, 2.5816e-02, -1.2675e-03/) -Solar_Rtm%Tau_Ray(20) = 2.3326e-05 +case(272) +!SRF = tigr_tpw_trans_rtcoef_goes_18_abi_srf_ch01.txt +Solar_Rtm%Tau_H2O_Coef( 3,:) = (/ 4.2635e-06, 5.0733e-05, -1.3529e-07/) +Solar_Rtm%Tau_Ray( 3) = 2.0120e-01 +Solar_Rtm%Tau_O3( 3) = 0.0000e+00 +Solar_Rtm%Tau_CO2( 3) = 0.0000e+00 +Solar_Rtm%Tau_CH4( 3) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_18_abi_srf_ch02.txt +Solar_Rtm%Tau_H2O_Coef( 1,:) = (/ 6.6423e-05, 3.0724e-03, -8.2564e-05/) +Solar_Rtm%Tau_Ray( 1) = 5.8652e-02 +Solar_Rtm%Tau_O3( 1) = 4.6303e-05 +Solar_Rtm%Tau_CO2( 1) = 0.0000e+00 +Solar_Rtm%Tau_CH4( 1) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_18_abi_srf_ch03.txt +Solar_Rtm%Tau_H2O_Coef( 2,:) = (/ 3.0346e-06, 1.5707e-03, -3.0033e-05/) +Solar_Rtm%Tau_Ray( 2) = 1.7086e-02 +Solar_Rtm%Tau_O3( 2) = 0.0000e+00 +Solar_Rtm%Tau_CO2( 2) = 0.0000e+00 +Solar_Rtm%Tau_CH4( 2) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_18_abi_srf_ch04.txt +Solar_Rtm%Tau_H2O_Coef(26,:) = (/ 1.2826e+00, 1.8800e+00, -1.1201e-01/) +Solar_Rtm%Tau_Ray(26) = 2.6293e-03 +Solar_Rtm%Tau_O3(26) = 0.0000e+00 +Solar_Rtm%Tau_CO2(26) = 4.7638e-05 +Solar_Rtm%Tau_CH4(26) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_18_abi_srf_ch05.txt +Solar_Rtm%Tau_H2O_Coef( 6,:) = (/ -2.1946e-05, 1.0642e-03, -7.0704e-06/) +Solar_Rtm%Tau_Ray( 6) = 1.4094e-03 +Solar_Rtm%Tau_O3( 6) = 0.0000e+00 +Solar_Rtm%Tau_CO2( 6) = 2.3207e-02 +Solar_Rtm%Tau_CH4( 6) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_18_abi_srf_ch06.txt +Solar_Rtm%Tau_H2O_Coef( 7,:) = (/ -2.0529e-04, 3.3254e-03, -1.3542e-04/) +Solar_Rtm%Tau_Ray( 7) = 3.6788e-04 +Solar_Rtm%Tau_O3( 7) = 0.0000e+00 +Solar_Rtm%Tau_CO2( 7) = 3.0239e-06 +Solar_Rtm%Tau_CH4( 7) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_18_abi_srf_ch07.txt +Solar_Rtm%Tau_H2O_Coef(20,:) = (/ 2.5196e-04, 2.0707e-02, -9.7187e-04/) +Solar_Rtm%Tau_Ray(20) = 2.4081e-05 Solar_Rtm%Tau_O3(20) = 0.0000e+00 -Solar_Rtm%Tau_CO2(20) = 2.9383e-03 +Solar_Rtm%Tau_CO2(20) = 3.2571e-03 Solar_Rtm%Tau_CH4(20) = 0.0000e+00 + +case(273) +!SRF = tigr_tpw_trans_rtcoef_goes_19_abi_srf_ch01.txt +Solar_Rtm%Tau_H2O_Coef( 3,:) = (/ 4.8546e-06, 4.8301e-05, 1.5331e-07/) +Solar_Rtm%Tau_Ray( 3) = 2.0059e-01 +Solar_Rtm%Tau_O3( 3) = 0.0000e+00 +Solar_Rtm%Tau_CO2( 3) = 0.0000e+00 +Solar_Rtm%Tau_CH4( 3) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_19_abi_srf_ch02.txt +Solar_Rtm%Tau_H2O_Coef( 1,:) = (/ 5.2577e-05, 3.0791e-03, -8.8140e-05/) +Solar_Rtm%Tau_Ray( 1) = 5.8537e-02 +Solar_Rtm%Tau_O3( 1) = 4.6463e-05 +Solar_Rtm%Tau_CO2( 1) = 0.0000e+00 +Solar_Rtm%Tau_CH4( 1) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_19_abi_srf_ch03.txt +Solar_Rtm%Tau_H2O_Coef( 2,:) = (/ 1.8070e-05, 1.6085e-03, -3.8330e-05/) +Solar_Rtm%Tau_Ray( 2) = 1.7001e-02 +Solar_Rtm%Tau_O3( 2) = 0.0000e+00 +Solar_Rtm%Tau_CO2( 2) = 0.0000e+00 +Solar_Rtm%Tau_CH4( 2) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_19_abi_srf_ch04.txt +Solar_Rtm%Tau_H2O_Coef(26,:) = (/ 1.2263e+00, 1.8795e+00, -1.1002e-01/) +Solar_Rtm%Tau_Ray(26) = 2.5880e-03 +Solar_Rtm%Tau_O3(26) = 0.0000e+00 +Solar_Rtm%Tau_CO2(26) = 2.6536e-05 +Solar_Rtm%Tau_CH4(26) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_19_abi_srf_ch05.txt +Solar_Rtm%Tau_H2O_Coef( 6,:) = (/ -6.5102e-07, 1.0285e-03, -4.0765e-06/) +Solar_Rtm%Tau_Ray( 6) = 1.3983e-03 +Solar_Rtm%Tau_O3( 6) = 0.0000e+00 +Solar_Rtm%Tau_CO2( 6) = 2.3048e-02 Solar_Rtm%Tau_CH4( 6) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_19_abi_srf_ch06.txt +Solar_Rtm%Tau_H2O_Coef( 7,:) = (/ -1.5833e-04, 3.0262e-03, -1.1109e-04/) +Solar_Rtm%Tau_Ray( 7) = 3.6557e-04 +Solar_Rtm%Tau_O3( 7) = 0.0000e+00 +Solar_Rtm%Tau_CO2( 7) = 2.9704e-06 +Solar_Rtm%Tau_CH4( 7) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_goes_19_abi_srf_ch07.txt +Solar_Rtm%Tau_H2O_Coef(20,:) = (/ 1.6102e-04, 2.1149e-02, -1.0334e-03/) +Solar_Rtm%Tau_Ray(20) = 2.2799e-05 +Solar_Rtm%Tau_O3(20) = 0.0000e+00 +Solar_Rtm%Tau_CO2(20) = 3.3852e-03 +Solar_Rtm%Tau_CH4(20) = 0.0000e+00 diff --git a/main_src/ahi_solar_terms.inc b/main_src/ahi_solar_terms.inc index 92ff3216be0d0fa81c0f078280e9874ee4ecf91f..cb3698c570caa3682e58d156b327f84523a04b7e 100644 --- a/main_src/ahi_solar_terms.inc +++ b/main_src/ahi_solar_terms.inc @@ -1,49 +1,98 @@ case(173) -!SRF = tigr_tpw_trans_ch1_resp_ahi.dat -Solar_Rtm%Tau_H2O_Coef( 3,:) = (/ 4.5112e-06, 5.1395e-05, -1.9105e-07/) -Solar_Rtm%Tau_Ray( 3) = 2.0146e-01 +!SRF = tigr_tpw_trans_rtcoef_himawari_8_ahi_srf_ch01.txt +Solar_Rtm%Tau_H2O_Coef( 3,:) = (/ 3.9164e-06, 5.2060e-05, -2.9382e-07/) +Solar_Rtm%Tau_Ray( 3) = 2.0096e-01 Solar_Rtm%Tau_O3( 3) = 0.0000e+00 Solar_Rtm%Tau_CO2( 3) = 0.0000e+00 Solar_Rtm%Tau_CH4( 3) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch2_resp_ahi.dat -Solar_Rtm%Tau_H2O_Coef( 4,:) = (/ 3.5560e-05, 6.7475e-04, -2.1035e-06/) -Solar_Rtm%Tau_Ray( 4) = 1.4393e-01 -Solar_Rtm%Tau_O3( 4) = 3.8917e-06 + +!SRF = tigr_tpw_trans_rtcoef_himawari_8_ahi_srf_ch02.txt +Solar_Rtm%Tau_H2O_Coef( 4,:) = (/ 2.5954e-05, 7.0107e-04, -8.5257e-06/) +Solar_Rtm%Tau_Ray( 4) = 1.4516e-01 +Solar_Rtm%Tau_O3( 4) = 4.8710e-06 Solar_Rtm%Tau_CO2( 4) = 0.0000e+00 Solar_Rtm%Tau_CH4( 4) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch3_resp_ahi.dat -Solar_Rtm%Tau_H2O_Coef( 1,:) = (/ 8.7089e-05, 2.9454e-03, -7.7288e-05/) -Solar_Rtm%Tau_Ray( 1) = 5.8655e-02 -Solar_Rtm%Tau_O3( 1) = 4.6808e-05 + +!SRF = tigr_tpw_trans_rtcoef_himawari_8_ahi_srf_ch03.txt +Solar_Rtm%Tau_H2O_Coef( 1,:) = (/ 8.8065e-05, 2.9251e-03, -6.6689e-05/) +Solar_Rtm%Tau_Ray( 1) = 5.9083e-02 +Solar_Rtm%Tau_O3( 1) = 4.7543e-05 Solar_Rtm%Tau_CO2( 1) = 0.0000e+00 Solar_Rtm%Tau_CH4( 1) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch4_resp_ahi.dat -Solar_Rtm%Tau_H2O_Coef( 2,:) = (/ 1.0741e-04, 3.6017e-03, -1.0748e-04/) -Solar_Rtm%Tau_Ray( 2) = 1.7662e-02 + +!SRF = tigr_tpw_trans_rtcoef_himawari_8_ahi_srf_ch04.txt +Solar_Rtm%Tau_H2O_Coef( 2,:) = (/ 7.1923e-05, 3.6581e-03, -1.1450e-04/) +Solar_Rtm%Tau_Ray( 2) = 1.7664e-02 Solar_Rtm%Tau_O3( 2) = 0.0000e+00 Solar_Rtm%Tau_CO2( 2) = 0.0000e+00 Solar_Rtm%Tau_CH4( 2) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch5_resp_ahi.dat -Solar_Rtm%Tau_H2O_Coef( 6,:) = (/ 4.5871e-06, 1.0012e-03, 3.0030e-06/) -Solar_Rtm%Tau_Ray( 6) = 1.4074e-03 + +!SRF = tigr_tpw_trans_rtcoef_himawari_8_ahi_srf_ch05.txt +Solar_Rtm%Tau_H2O_Coef( 6,:) = (/ -2.5383e-06, 1.0109e-03, -3.1218e-06/) +Solar_Rtm%Tau_Ray( 6) = 1.3871e-03 Solar_Rtm%Tau_O3( 6) = 0.0000e+00 -Solar_Rtm%Tau_CO2( 6) = 2.2504e-02 +Solar_Rtm%Tau_CO2( 6) = 2.2322e-02 Solar_Rtm%Tau_CH4( 6) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch6_resp_ahi.dat -Solar_Rtm%Tau_H2O_Coef( 7,:) = (/ -1.3006e-04, 1.3990e-03, -4.6335e-05/) -Solar_Rtm%Tau_Ray( 7) = 3.5377e-04 + +!SRF = tigr_tpw_trans_rtcoef_himawari_8_ahi_srf_ch06.txt +Solar_Rtm%Tau_H2O_Coef( 7,:) = (/ -1.3023e-04, 1.4114e-03, -4.5980e-05/) +Solar_Rtm%Tau_Ray( 7) = 3.5438e-04 Solar_Rtm%Tau_O3( 7) = 0.0000e+00 -Solar_Rtm%Tau_CO2( 7) = 3.3139e-06 +Solar_Rtm%Tau_CO2( 7) = 3.3471e-06 Solar_Rtm%Tau_CH4( 7) = 0.0000e+00 - -!SRF = tigr_tpw_trans_ch7_resp_ahi.dat -Solar_Rtm%Tau_H2O_Coef(20,:) = (/ 1.2103e-03, 2.6850e-02, -1.3311e-03/) -Solar_Rtm%Tau_Ray(20) = 2.5785e-05 + +!SRF = tigr_tpw_trans_rtcoef_himawari_8_ahi_srf_ch07.txt +Solar_Rtm%Tau_H2O_Coef(20,:) = (/ 1.2857e-03, 2.6675e-02, -1.2884e-03/) +Solar_Rtm%Tau_Ray(20) = 2.4455e-05 Solar_Rtm%Tau_O3(20) = 0.0000e+00 -Solar_Rtm%Tau_CO2(20) = 2.9989e-03 +Solar_Rtm%Tau_CO2(20) = 2.9857e-03 +Solar_Rtm%Tau_CH4(20) = 0.0000e+00 +case(174) +!SRF = tigr_tpw_trans_rtcoef_himawari_9_ahi_srf_ch01.txt +Solar_Rtm%Tau_H2O_Coef( 3,:) = (/ 5.7958e-06, 4.9444e-05, 1.8629e-07/) +Solar_Rtm%Tau_Ray( 3) = 2.0186e-01 +Solar_Rtm%Tau_O3( 3) = 1.3824e-10 +Solar_Rtm%Tau_CO2( 3) = 0.0000e+00 +Solar_Rtm%Tau_CH4( 3) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_himawari_9_ahi_srf_ch02.txt +Solar_Rtm%Tau_H2O_Coef( 4,:) = (/ 1.6854e-05, 7.1086e-04, -8.9678e-06/) +Solar_Rtm%Tau_Ray( 4) = 1.4473e-01 +Solar_Rtm%Tau_O3( 4) = 4.4056e-06 +Solar_Rtm%Tau_CO2( 4) = 0.0000e+00 +Solar_Rtm%Tau_CH4( 4) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_himawari_9_ahi_srf_ch03.txt +Solar_Rtm%Tau_H2O_Coef( 1,:) = (/ 7.3591e-05, 2.9281e-03, -8.3073e-05/) +Solar_Rtm%Tau_Ray( 1) = 5.8449e-02 +Solar_Rtm%Tau_O3( 1) = 4.6652e-05 +Solar_Rtm%Tau_CO2( 1) = 0.0000e+00 +Solar_Rtm%Tau_CH4( 1) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_himawari_9_ahi_srf_ch04.txt +Solar_Rtm%Tau_H2O_Coef( 2,:) = (/ 8.0813e-05, 3.6850e-03, -1.2360e-04/) +Solar_Rtm%Tau_Ray( 2) = 1.7617e-02 +Solar_Rtm%Tau_O3( 2) = 0.0000e+00 +Solar_Rtm%Tau_CO2( 2) = 0.0000e+00 +Solar_Rtm%Tau_CH4( 2) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_himawari_9_ahi_srf_ch05.txt +Solar_Rtm%Tau_H2O_Coef( 6,:) = (/ -4.6404e-05, 1.1087e-03, -1.4572e-05/) +Solar_Rtm%Tau_Ray( 6) = 1.4081e-03 +Solar_Rtm%Tau_O3( 6) = 0.0000e+00 +Solar_Rtm%Tau_CO2( 6) = 2.3149e-02 +Solar_Rtm%Tau_CH4( 6) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_himawari_9_ahi_srf_ch06.txt +Solar_Rtm%Tau_H2O_Coef( 7,:) = (/ -1.3080e-04, 1.3853e-03, -4.3671e-05/) +Solar_Rtm%Tau_Ray( 7) = 3.5310e-04 +Solar_Rtm%Tau_O3( 7) = 0.0000e+00 +Solar_Rtm%Tau_CO2( 7) = 3.1960e-06 +Solar_Rtm%Tau_CH4( 7) = 0.0000e+00 + +!SRF = tigr_tpw_trans_rtcoef_himawari_9_ahi_srf_ch07.txt +Solar_Rtm%Tau_H2O_Coef(20,:) = (/ 4.0006e-03, 4.4322e-02, -2.4431e-03/) +Solar_Rtm%Tau_Ray(20) = 2.8213e-05 +Solar_Rtm%Tau_O3(20) = 0.0000e+00 +Solar_Rtm%Tau_CO2(20) = 2.1382e-03 Solar_Rtm%Tau_CH4(20) = 0.0000e+00 diff --git a/main_src/avhrr_mod.f90 b/main_src/avhrr_mod.f90 index 7ba7afc692b4aefb76b3229f6a1458c364603cea..38d8dca60373d70fb8c5c3a4cfe18aeec295ad0d 100644 --- a/main_src/avhrr_mod.f90 +++ b/main_src/avhrr_mod.f90 @@ -84,7 +84,8 @@ module AVHRR_MOD , cldmask & , Cloud_Mask_Aux_Read_Flag & , num_loc & - , Ch1_Counts, Ch2_Counts, Ch6_Counts + , Ch1_Counts, Ch2_Counts, Ch6_Counts & + , Cld_Flag use CALIBRATION_CONSTANTS_MOD, only: & sat_name & @@ -2932,23 +2933,25 @@ subroutine UNPACK_AVHRR_HEADER_RECORD_KLM(Sc_Id_AVHRR,AVHRR_Data_Type,Start_Year Start_word = word_clavr_start + 8 End_word = Start_word + Num_clavr_bytes - do iword = Start_word, End_word - onebyte = Buffer_AVHRR(iword) - Pix_Idx = 1 - Start_Pixel = (iword - Start_word)*4 + 1 - End_Pixel = min(Image%Number_Of_Elements, Start_Pixel+3_int2) + if(Cld_Flag == sym%YES) then + do iword = Start_word, End_word + onebyte = Buffer_AVHRR(iword) + Pix_Idx = 1 + Start_Pixel = (iword - Start_word)*4 + 1 + End_Pixel = min(Image%Number_Of_Elements, Start_Pixel+3_int2) - do Pix_Idx = Start_Pixel, End_Pixel - if (Pix_Idx > Image%Number_Of_Elements) then - exit - endif - i = (Pix_Idx - Start_Pixel) + 1 - CLDMASK%Cld_Mask_Aux(Pix_Idx,Line_Idx) = ishft(ishft(onebyte,2*(i-1)),-6) - enddo - enddo + do Pix_Idx = Start_Pixel, End_Pixel + if (Pix_Idx > Image%Number_Of_Elements) then + exit + endif + i = (Pix_Idx - Start_Pixel) + 1 + CLDMASK%Cld_Mask_Aux(Pix_Idx,Line_Idx) = ishft(ishft(onebyte,2*(i-1)),-6) + enddo + enddo - !--- set flag to communicate that mask was read in - Cloud_Mask_Aux_Read_Flag = sym%YES + !--- set flag to communicate that mask was read in + Cloud_Mask_Aux_Read_Flag = sym%YES + endif end subroutine UNPACK_AVHRR_DATA_RECORD_KLM diff --git a/main_src/caliop_collocation_mod.f90 b/main_src/caliop_collocation_mod.f90 index 1f21b158089c714fb70cf2171e7d52b9eec7a55d..b8fa9d07d97f9cbee2ff543d05280c363438d265 100644 --- a/main_src/caliop_collocation_mod.f90 +++ b/main_src/caliop_collocation_mod.f90 @@ -29,6 +29,8 @@ module CALIOP_COLLOCATION_MOD , Skip_L1b_File_Flag & , Geo & , Image & + , Ch & + , Sensor & , Caliop_Num_Cld_Layers & , Caliop_Cod & , Caliop_Cld_Height @@ -36,6 +38,10 @@ module CALIOP_COLLOCATION_MOD use CONSTANTS_MOD, only: & int4 & , real4 & + , Nchan_Clavrx & + , SOLAR_OBS_TYPE & + , THERMAL_OBS_TYPE & + , MIXED_OBS_TYPE & , Sym implicit none @@ -52,19 +58,11 @@ subroutine CALIOP_COLLOCATION(Seg_Idx) integer, intent(in):: Seg_Idx character(len=1020) :: File_Name_Search character(len=1020) :: Caliop_File - !character(len=4) :: Year_String - !character(len=3) :: Doy_String - !character(len=2) :: Month_String - !character(len=2) :: Day_of_Month_String - !character(len=4) :: Time_String - !character(len=2) :: Hour_String - !character(len=2) :: Minute_String character(len=1020), dimension(:), pointer:: Files integer(kind=int4) :: Num_Files integer(kind=int4) :: Status integer(kind=int4) :: Sd_Id - integer(kind=int4) :: i - !integer(kind=int4) :: Hour, Minute + integer(kind=int4) :: i, Chan_I integer(kind=int4) :: Left_Limit, Right_Limit integer(kind=int4), parameter :: N = 20 integer(kind=int4), dimension (1) :: Start_1d, Stride_1d, Edge_1d @@ -74,62 +72,31 @@ subroutine CALIOP_COLLOCATION(Seg_Idx) real(kind=real4), dimension (:), allocatable :: Caliop_Cld_Height_1D real(kind=real4),parameter :: Missing = -999.0 - !clavrx_viirs_nasa_2018_113_0000.calipso.hdf - !VNP03MOD.A2017085.2142.001.2017305105432.uwssec.calipso.hdf - !clavrx_IFF_npp_viirs_svm_d20150820_t133328_e134126_c20161208044316.calipso.hdf - - ! --- calculate hours and minutes - !Hour = Image%Start_Time/1000/60/60 - !Minute = Image%Start_Time/1000/60 - Hour * 60 - ! --- create string to search caliop file - !write(Year_String,fmt="(I4.4)") Image%Start_Year - !write(Doy_String,fmt="(I3.3)") Image%Start_Doy - !write(Hour_String,fmt="(I2.2)") Hour - !write(Month_String,fmt="(I2.2)") Month - !write(Day_of_Month_String,fmt="(I2.2)") Day_of_Month - !write(Minute_String,fmt="(I2.2)") Minute - !Time_String = Hour_String//Minute_String - - !-20220115AW File_Name_Search = '*'//Year_String//'_'//Doy_String//'_'//Time_String//'*.calipso.hdf' - file_name_search = '*'//image % time_start % date_string('yyyy_doy_hhmm')//'*.calipso.hdf' -! print *, "In CALIOP FIND" -! print *, trim(Caliop_Dir) -! print *, trim(File_Name_Search) ! --- search file Files => FILE_SEARCH(trim(Caliop_Dir)//'/',trim(File_Name_Search),count=Num_Files) -! print *, trim(File_Name_Search)," Num_Files = ", Num_Files if (Num_Files == 0) then - - !File_Name_Search = '*A'//Year_String//Doy_String//'.'//Time_String//'*.calipso.hdf' File_Name_Search = '*A'//image % time_start % date_string('yyyy_doy.hhmm')//'*.calipso.hdf' Files => FILE_SEARCH(trim(Caliop_Dir)//'/',trim(File_Name_Search),count=Num_Files) -! print *, trim(File_Name_Search)," Num_Files = ", Num_Files endif if (Num_Files == 0) then - !File_Name_Search = '*A'//Year_String//Doy_String//'_'//Time_String//'*.calipso.hdf' File_Name_Search = '*A'//image % time_start % date_string('yyyy_doy_hhmm')//'*.calipso.hdf' Files => FILE_SEARCH(trim(Caliop_Dir)//'/',trim(File_Name_Search),count=Num_Files) -! print *, trim(File_Name_Search)," Num_Files = ", Num_Files endif if (Num_Files == 0) then - !File_Name_Search = '*d'//Year_String//Month_String//Day_of_Month_String//'_t'//Time_String//'*.calipso.hdf' File_Name_Search = '*d'//image % time_start % date_string('yyyymmdd')//'_t' & //image % time_start % date_string('hhmm')//'*.calipso.hdf' Files => FILE_SEARCH(trim(Caliop_Dir)//'/',trim(File_Name_Search),count=Num_Files) -! print *, trim(File_Name_Search)," Num_Files = ", Num_Files endif if (Num_Files == 0) then - !File_Name_Search = '*s'//Year_String//Doy_String//Time_String//'*.calipso.hdf' File_Name_Search = '*s'//image % time_start % date_string('yyyydoyhhmm')//'*.calipso.hdf' Files => FILE_SEARCH(trim(Caliop_Dir)//'/',trim(File_Name_Search),count=Num_Files) -! print *, trim(File_Name_Search)," Num_Files = ", Num_Files endif ! --- if not found or more than 1 exit @@ -181,8 +148,23 @@ subroutine CALIOP_COLLOCATION(Seg_Idx) do i = 1, Edge_1d(1) ! --- set all to SPACE if Missing value - if (Pixel_Element_Idx(i) == Missing) then + if (Pixel_Element_Idx(i) == Missing .or. Pixel_Element_Idx(i) .lt. 0) then Geo%Space_Mask(1:Image%Number_Of_Elements,i) = .true. + ! - loop through the channels and set them to missing + do Chan_I = 1, Nchan_Clavrx + if (Sensor%Chan_On_Flag_Default(Chan_I) .eq. sym%YES) then + ! - Ref + if (ch(Chan_I)%Obs_Type == SOLAR_OBS_TYPE) then + ch(Chan_I)%Ref_Toa(:,i) = Missing + endif + ! - BT + if (ch(Chan_I)%Obs_Type == THERMAL_OBS_TYPE .or. & + ch(Chan_I)%Obs_Type == MIXED_OBS_TYPE) then + ch(Chan_I)%Rad_Toa(:,i) = Missing + ch(Chan_I)%Bt_Toa(:,i) = Missing + endif + endif + enddo cycle endif @@ -192,6 +174,25 @@ subroutine CALIOP_COLLOCATION(Seg_Idx) Geo%Space_Mask(1:Left_Limit,i) = .TRUE. Geo%Space_Mask(Right_Limit:Image%Number_Of_Elements,i) = .TRUE. + ! - loop through the channels and set them to missing + do Chan_I = 1, Nchan_Clavrx + if (Sensor%Chan_On_Flag_Default(Chan_I) .eq. sym%YES) then + ! - Ref + if (ch(Chan_I)%Obs_Type == SOLAR_OBS_TYPE) then + ch(Chan_I)%Ref_Toa(1:Left_Limit,i) = Missing + ch(Chan_I)%Ref_Toa(Right_Limit:Image%Number_Of_Elements,i) = Missing + endif + ! - BT + if (ch(Chan_I)%Obs_Type == THERMAL_OBS_TYPE .or. & + ch(Chan_I)%Obs_Type == MIXED_OBS_TYPE) then + ch(Chan_I)%Rad_Toa(1:Left_Limit,i) = Missing + ch(Chan_I)%Rad_Toa(Right_Limit:Image%Number_Of_Elements,i) = Missing + ch(Chan_I)%Bt_Toa(1:Left_Limit,i) = Missing + ch(Chan_I)%Bt_Toa(Right_Limit:Image%Number_Of_Elements,i) = Missing + endif + endif + enddo + ! --- save caliop data to global variables Caliop_Num_Cld_Layers(int(Pixel_Element_Idx(i)+1),i) = Caliop_Num_Cld_Layers_1D(i) Caliop_Cod(int(Pixel_Element_Idx(i)+1),i) = Caliop_Cod_1D(i) diff --git a/main_src/clavrx_olr_mod.f90 b/main_src/clavrx_olr_mod.f90 index d50f2e58e6da9506e1eb8eff7cfddbbf04427d69..164b83f659758edafe9a31fd60a631e2a3bbc36a 100644 --- a/main_src/clavrx_olr_mod.f90 +++ b/main_src/clavrx_olr_mod.f90 @@ -202,6 +202,10 @@ select case (Sensor%WMO_Id) olr_type = 'goes' olr_coef(1:5) = (/17.8305,0.553769,0.340907,0.00937766,0.00653376/) + case(272) !GOES-18 TODO FAKE NUMBER ADJUST WHEN KNOWN + olr_type = 'goes' + olr_coef(1:5) = (/17.8305,0.553769,0.340907,0.00937766,0.00653376/) + case(384) !EPS-SG TODO FAKE NUMBER ADJUST WHEN KNOWN olr_type = 'none' diff --git a/main_src/clavrx_sst_mod.f90 b/main_src/clavrx_sst_mod.f90 index ec16790a430d2cd74f1b10647aa6f59e63da8492..07902ba0d2603a7b5280379bdd5bd90b0c7d16c7 100644 --- a/main_src/clavrx_sst_mod.f90 +++ b/main_src/clavrx_sst_mod.f90 @@ -147,6 +147,9 @@ select case (Sensor%WMO_Id) case(271) !GOES-17 acspo_coef = (/74.574503,0.751711,2.81401,0.2970021,1.3209088,0.014818,0.108972,0.153607/) + case(272) !GOES-18 TODO FAKE NUMBER ADJUST WHEN KNOWN + acspo_coef = (/74.574503,0.751711,2.81401,0.2970021,1.3209088,0.014818,0.108972,0.153607/) + case(384) !EPS-SG TODO FAKE NUMBER ADJUST WHEN KNOWN case(706) !NOAA-6 diff --git a/main_src/clavrx_static_nav_module.f90 b/main_src/clavrx_static_nav_module.f90 index d4daca182eefed0f62dee63228d310410377fcb8..5f5b003b47712f890c8e77f217bf2044d9673bac 100644 --- a/main_src/clavrx_static_nav_module.f90 +++ b/main_src/clavrx_static_nav_module.f90 @@ -162,7 +162,7 @@ module CLAVRX_STATIC_NAV_MODULE case (173:174) !-- ahi Num_Chan_Sensor = 16 - case(270:271) !-- abi + case(270:273) !-- abi Num_Chan_Sensor = 16 case default @@ -201,7 +201,7 @@ module CLAVRX_STATIC_NAV_MODULE Chan_Stride = (/1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1/) endif - case(270:271) !-- abi + case(270:273) !-- abi CLAVRx_Chan_Map = (/3,1,2,26,6,7,20,37,27,28,29,30,38,31,32,33/) Chan_Stride = (/2,4,2,1,2,1,1,1,1,1,1,1,1,1,1,1/) @@ -328,7 +328,7 @@ module CLAVRX_STATIC_NAV_MODULE !--- determine if this static nav file is consistent with level1b by looking !--- at center of projections. - if (Sensor%WMO_Id == 270 .or. Sensor%WMO_Id == 271) then + if (Sensor%WMO_Id == 270 .or. Sensor%WMO_Id == 271 .or. Sensor%WMO_Id == 272) then call READ_NETCDF_GLOBAL_ATTRIBUTE(Static_Nav_Full_File, "geospatial_lat_center", Geospatial_Lat_Center_Sn) call READ_NETCDF_GLOBAL_ATTRIBUTE(Static_Nav_Full_File, "geospatial_lon_center", Geospatial_Lon_Center_Sn) do Chan_Idx = 1, Num_Chan_Sensor @@ -476,7 +476,7 @@ module CLAVRX_STATIC_NAV_MODULE !--- set SOURCE Flag if ABI Fusion used for any channel ch(Clavrx_Chan_Map(Chan_Idx))%Source = 0 !note source of this channel is from imager - if (Sensor%WMO_Id == 270 .or. Sensor%WMO_Id == 271) then + if (Sensor%WMO_Id == 270 .or. Sensor%WMO_Id == 271 .or. Sensor%WMO_Id == 272) then if (index(Level1b_File(Chan_Idx),'FR_') > 0) then ch(Clavrx_Chan_Map(Chan_Idx))%Source = 1 !note source of this channel is from sounder endif @@ -529,7 +529,7 @@ module CLAVRX_STATIC_NAV_MODULE if (ch(Chan_Clavrx_Idx)%Obs_Type == SOLAR_OBS_TYPE) then !--- For ABI, use kappa0 factor from the NetCDF file. - if (Sensor%WMO_Id == 270 .or. Sensor%WMO_Id == 271) then + if (Sensor%WMO_Id == 270 .or. Sensor%WMO_Id == 271 .or. Sensor%WMO_Id == 272) then Factor = 1.0 @@ -939,7 +939,7 @@ subroutine READ_SEGMENT_LEVEL1B_VER2(Ncid,Chan_Name,Segment_Number, Number_Of_Li call READ_AND_UNSCALE_NETCDF_2d(Ncid, Start_2d, Stride_2d, Count_2d, Chan_Name, Native_Output_Seg) !--- read native resolution dqf (only for GOES-R series - not AHI)) - if (Sensor%WMO_ID == 270 .or. Sensor%WMO_ID == 271) then + if (Sensor%WMO_ID == 270 .or. Sensor%WMO_ID == 271 .or. Sensor%WMO_ID == 272) then call READ_NETCDF(Ncid, Start_2d, Stride_2d, Count_2d, 'DQF', Native_DQF_Seg) endif @@ -1004,7 +1004,7 @@ subroutine READ_SEGMENT_LEVEL1B_VER2(Ncid,Chan_Name,Segment_Number, Number_Of_Li endif - case(270:271) !-- abi(s) + case(270:273) !-- abi(s) call READ_ABI_TIME (Ncid, Line_Start_Segment, j2, & Line_End_File, Y_Stride, Image%Scan_Time_Ms(j1:j2), Read_Time) @@ -1074,7 +1074,7 @@ subroutine READ_SEGMENT_STATIC_NAV(Ncid_Static) Geo%Sataz(:,1:Image%Number_Of_Lines_Read_This_Segment) = Data_Segment !---- read x and y (ignored for ahi) - if (Sensor%WMO_Id == 270 .or. Sensor%WMO_Id == 271) then + if (Sensor%WMO_Id == 270 .or. Sensor%WMO_Id == 271 .or. Sensor%WMO_Id == 272) then call READ_NETCDF(Ncid_Static, (/Elem_Start_Segment/), & (/Image%X_Stride/), & (/Elem_Count_Segment/), "x_fd",Data_Segment_1D_I4_X) @@ -1281,7 +1281,7 @@ subroutine FIND_DARK_COMPOSITE() case(270) Dark_Comp_Data_Dir = trim(Ancil_Data_Dir)//'/static/dark_comp/goes_east/' Dark_Composite_Name = "goes_east_fulldisk_"//trim(image % time_start % Monthname)//"_"//image % time_start % hh //"Z_refl065_dark_composite_2km.nc" - case(271) + case(271:272) Dark_Comp_Data_Dir = trim(Ancil_Data_Dir)//'/static/dark_comp/goes_west/' Dark_Composite_Name = "goes_west_fulldisk_"//trim(image % time_start % Monthname)//"_"//image % time_start % hh//"Z_refl065_dark_composite_2km.nc" case default diff --git a/main_src/cleanup.f90 b/main_src/cleanup.f90 new file mode 100644 index 0000000000000000000000000000000000000000..19beeb754852576e3a29e0ecb684b5136962e913 --- /dev/null +++ b/main_src/cleanup.f90 @@ -0,0 +1,42 @@ +!-------------------------------------------------------------------------------------- +! Clouds from AVHRR Extended (CLAVR-x) 1b PROCESSING SOFTWARE +! +! NAME: cleanup.f90 (src) +! +! PURPOSE: Handle signals before exiting +! +! +! AUTHORS: +! Coda Phillips, coda.phillips@wisc.edu +! +! COPYRIGHT +! THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC +! DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. THEY ARE +! FURNISHED "AS IS." THE AUTHORS, THE UNITED STATES GOVERNMENT, ITS +! INSTRUMENTALITIES, OFFICERS, EMPLOYEES, AND AGENTS MAKE NO WARRANTY, +! EXPRESS OR IMPLIED, AS TO THE USEFULNESS OF THE SOFTWARE AND +! DOCUMENTATION FOR ANY PURPOSE. THEY ASSUME NO RESPONSIBILITY (1) FOR +! THE USE OF THE SOFTWARE AND DOCUMENTATION; OR (2) TO PROVIDE TECHNICAL +! SUPPORT TO USERS. +! +! REVISON HISTORY: +! Creation Date Apr 2022 +!-------------------------------------------------------------------------------------- + +module cleanup + use pixel_common_mod, only: Temporary_Data_Dir + + contains + subroutine cleanup_tempdir() + integer(4) :: ret + !--- remove directory for temporary files + print*, 'Cleaning up' + call system("rmdir "//trim(Temporary_Data_Dir), ret) + if(ret .ne. 0) then + print*, 'rmdir error' + else + print*, 'removed ',trim(Temporary_Data_Dir) + endif + stop 1 + end subroutine +end module cleanup diff --git a/main_src/cloud_height_routines.f90 b/main_src/cloud_height_routines.f90 index dc351aaf521f5f7f17f54cd04774255e16fab8cb..4928df5d8063cce92dd80645849ac508600c29cc 100644 --- a/main_src/cloud_height_routines.f90 +++ b/main_src/cloud_height_routines.f90 @@ -665,7 +665,8 @@ subroutine OPAQUE_CLOUD_HEIGHT(ABI_Use_104um_Flag) Sfc_Level_Idx = rtm(Nwp_Lon_Idx,Nwp_Lat_Idx)%Sfc_Level !--- restrict levels to consider - Level_Idx_Start = Tropo_Level_Idx + ! Level_Idx_Start = Tropo_Level_Idx + Level_Idx_Start = 1 Level_Idx_End = Sfc_Level_Idx call GET_INTERP_PROFILES(ABI_Use_104um_Flag, Nwp_Lon_Idx,Nwp_Lat_Idx, & @@ -693,55 +694,38 @@ subroutine OPAQUE_CLOUD_HEIGHT(ABI_Use_104um_Flag) cycle endif - !--- loop through levels -! Pc_Opaque_Cloud(Elem_Idx,Line_Idx) = Psfc -! Zc_Opaque_Cloud(Elem_Idx,Line_Idx) = Zsfc -! Tc_Opaque_Cloud(Elem_Idx,Line_Idx) = Tsfc - Solution_Found = .false. -!--- top down - level_loop: do Level_Idx = Level_Idx_Start, Level_Idx_End - if (Rad_BB_Cloud_Profile(Level_Idx) > Rad_Toa) then - Pc_Opaque_Cloud(Elem_Idx,Line_Idx) = P_Std_Rtm(Level_Idx - 1) - Zc_Opaque_Cloud(Elem_Idx,Line_Idx) = Z_Prof(Level_Idx - 1) - Tc_Opaque_Cloud(Elem_Idx,Line_Idx) = T_Prof(Level_Idx - 1) - Solution_Found = .true. + !--- bottom up + level_loop: do Level_Idx = Level_Idx_End, Level_Idx_Start+1, -1 + + if ((Rad_BB_Cloud_Profile(Level_Idx-1) > Rad_Toa) .and. & + (Rad_BB_Cloud_Profile(Level_Idx) < Rad_Toa)) then + Solution_Found = .true. + endif + if ((Rad_BB_Cloud_Profile(Level_Idx-1) < Rad_Toa) .and. & + (Rad_BB_Cloud_Profile(Level_Idx) > Rad_Toa)) then + Solution_Found = .true. + endif + + if (Solution_Found) then + dRad = Rad_BB_Cloud_Profile(Level_Idx) - Rad_BB_Cloud_Profile(Level_Idx-1) + if (dRad .ner. 0.00) then + Slope = (P_Std_Rtm(Level_Idx) - P_Std_Rtm(Level_Idx-1)) / dRad + Pc_Opaque_Cloud(Elem_Idx,Line_Idx) = P_Std_Rtm(Level_Idx-1) + Slope * (Rad_Toa - Rad_BB_Cloud_Profile(Level_Idx-1)) + Slope = (Z_Prof(Level_Idx) - Z_Prof(Level_Idx-1)) / dRad + Zc_Opaque_Cloud(Elem_Idx,Line_Idx) = Z_Prof(Level_Idx-1) + Slope * (Rad_Toa - Rad_BB_Cloud_Profile(Level_Idx-1)) + Slope = (T_Prof(Level_Idx) - T_Prof(Level_Idx-1)) / dRad + Tc_Opaque_Cloud(Elem_Idx,Line_Idx) = T_Prof(Level_Idx-1) + Slope * (Rad_Toa - Rad_BB_Cloud_Profile(Level_Idx-1)) + else + Pc_Opaque_Cloud(Elem_Idx,Line_Idx) = P_Std_Rtm(Level_Idx-1) + Zc_Opaque_Cloud(Elem_Idx,Line_Idx) = Z_Prof(Level_Idx-1) + Tc_Opaque_Cloud(Elem_Idx,Line_Idx) = T_Prof(Level_Idx-1) + endif exit endif - enddo Level_Loop -!--- bottom up -! level_loop: do Level_Idx = Level_Idx_End, Level_Idx_Start+1, -1 - -! print *, "looking ", Level_Idx, Rad_BB_Cloud_Profile(Level_Idx), Rad_BB_Cloud_Profile(Level_Idx+1) -! if ((Rad_BB_Cloud_Profile(Level_Idx-1) > Rad_Toa) .and. & -! (Rad_BB_Cloud_Profile(Level_Idx) < Rad_Toa)) then -! Solution_Found = .true. -! endif -! if ((Rad_BB_Cloud_Profile(Level_Idx-1) < Rad_Toa) .and. & -! (Rad_BB_Cloud_Profile(Level_Idx) > Rad_Toa)) then -! Solution_Found = .true. -! endif - -! if (Solution_Found) then -! dRad = Rad_BB_Cloud_Profile(Level_Idx) - Rad_BB_Cloud_Profile(Level_Idx-1) -! if (dRad .ner. 0.00) then -! Slope = (P_Std_Rtm(Level_Idx) - P_Std_Rtm(Level_Idx-1)) / dRad -! Pc_Opaque_Cloud(Elem_Idx,Line_Idx) = P_Std_Rtm(Level_Idx-1) + Slope * (Rad_Toa - Rad_BB_Cloud_Profile(Level_Idx-1)) -! Slope = (Z_Prof(Level_Idx) - Z_Prof(Level_Idx-1)) / dRad -! Zc_Opaque_Cloud(Elem_Idx,Line_Idx) = Z_Prof(Level_Idx-1) + Slope * (Rad_Toa - Rad_BB_Cloud_Profile(Level_Idx-1)) -! Slope = (T_Prof(Level_Idx) - T_Prof(Level_Idx-1)) / dRad -! Tc_Opaque_Cloud(Elem_Idx,Line_Idx) = T_Prof(Level_Idx-1) + Slope * (Rad_Toa - Rad_BB_Cloud_Profile(Level_Idx-1)) -! else -! Pc_Opaque_Cloud(Elem_Idx,Line_Idx) = P_Std_Rtm(Level_Idx-1) -! Zc_Opaque_Cloud(Elem_Idx,Line_Idx) = Z_Prof(Level_Idx-1) -! Tc_Opaque_Cloud(Elem_Idx,Line_Idx) = T_Prof(Level_Idx-1) -! endif -! exit -! endif - -! enddo Level_Loop + enddo Level_Loop if (.not. Solution_Found) then @@ -802,6 +786,19 @@ subroutine GET_INTERP_PROFILES(ABI_Use_104um_Flag, Nwp_Lon_Idx,Nwp_Lat_Idx, & Tsfc = Missing_Value_Real4 Zsfc = Missing_Value_Real4 + Rad_BB_Cloud_Profile_1 => null() + Rad_BB_Cloud_Profile_2 => null() + Rad_BB_Cloud_Profile_3 => null() + Rad_BB_Cloud_Profile_4 => null() + Z_Prof_1 => null() + Z_Prof_2 => null() + Z_Prof_3 => null() + Z_Prof_4 => null() + T_Prof_1 => null() + T_Prof_2 => null() + T_Prof_3 => null() + T_Prof_4 => null() + !--- check that needed rtm is populated if ((.not. rtm(Nwp_Lon_Idx_x,Nwp_Lat_Idx)%is_set ) .or. & (.not. rtm(Nwp_Lon_Idx,Nwp_Lat_Idx_x)%is_set ) .or. & @@ -830,7 +827,7 @@ subroutine GET_INTERP_PROFILES(ABI_Use_104um_Flag, Nwp_Lon_Idx,Nwp_Lat_Idx, & Sfc_Level_Idx_1 = Sfc_Level_Idx Sfc_Level_Idx_2 = rtm(Nwp_Lon_Idx_x,Nwp_Lat_Idx)%Sfc_Level Sfc_Level_Idx_3 = rtm(Nwp_Lon_Idx,Nwp_Lat_Idx_x)%Sfc_Level - Sfc_Level_Idx_4 =rtm(Nwp_Lon_Idx_x,Nwp_Lat_Idx_x)%Sfc_Level + Sfc_Level_Idx_4 = rtm(Nwp_Lon_Idx_x,Nwp_Lat_Idx_x)%Sfc_Level if (ABI_Use_104um_Flag) then Rad_BB_Cloud_Profile_1 => rtm(Nwp_Lon_Idx,Nwp_Lat_Idx)%d(Vza_Rtm_Idx_1)%ch(31)%Rad_BB_Cloud_Profile(:) @@ -845,21 +842,36 @@ subroutine GET_INTERP_PROFILES(ABI_Use_104um_Flag, Nwp_Lon_Idx,Nwp_Lat_Idx, & endif !--- check validity of pointers - if ((size(Rad_BB_Cloud_Profile_1) /= Nlevels_Rtm) .or. & - (size(Rad_BB_Cloud_Profile_2) /= Nlevels_Rtm) .or. & - (size(Rad_BB_Cloud_Profile_3) /= Nlevels_Rtm) .or. & - (size(Rad_BB_Cloud_Profile_4) /= Nlevels_Rtm) .or. & - (size(Z_Prof_1) /= Nlevels_Rtm) .or. & - (size(Z_Prof_2) /= Nlevels_Rtm) .or. & - (size(Z_Prof_3) /= Nlevels_Rtm) .or. & - (size(Z_Prof_4) /= Nlevels_Rtm) .or. & - (size(T_Prof_1) /= Nlevels_Rtm) .or. & - (size(T_Prof_2) /= Nlevels_Rtm) .or. & - (size(T_Prof_3) /= Nlevels_Rtm) .or. & - (size(T_Prof_4) /= Nlevels_Rtm)) then - - Interp_Flag = .false. - endif + if (associated(Rad_BB_Cloud_Profile_1) .and. & + associated(Rad_BB_Cloud_Profile_2) .and. & + associated(Rad_BB_Cloud_Profile_3) .and. & + associated(Rad_BB_Cloud_Profile_4) .and. & + associated(Z_Prof_1) .and. & + associated(Z_Prof_2) .and. & + associated(Z_Prof_3) .and. & + associated(Z_Prof_4) .and. & + associated(T_Prof_1) .and. & + associated(T_Prof_2) .and. & + associated(T_Prof_3) .and. & + associated(T_Prof_4)) then + if ((size(Rad_BB_Cloud_Profile_1) /= Nlevels_Rtm) .or. & + (size(Rad_BB_Cloud_Profile_2) /= Nlevels_Rtm) .or. & + (size(Rad_BB_Cloud_Profile_3) /= Nlevels_Rtm) .or. & + (size(Rad_BB_Cloud_Profile_4) /= Nlevels_Rtm) .or. & + (size(Z_Prof_1) /= Nlevels_Rtm) .or. & + (size(Z_Prof_2) /= Nlevels_Rtm) .or. & + (size(Z_Prof_3) /= Nlevels_Rtm) .or. & + (size(Z_Prof_4) /= Nlevels_Rtm) .or. & + (size(T_Prof_1) /= Nlevels_Rtm) .or. & + (size(T_Prof_2) /= Nlevels_Rtm) .or. & + (size(T_Prof_3) /= Nlevels_Rtm) .or. & + (size(T_Prof_4) /= Nlevels_Rtm)) then + + Interp_Flag = .false. + endif + else + Interp_Flag = .false. + endif endif @@ -870,11 +882,11 @@ subroutine GET_INTERP_PROFILES(ABI_Use_104um_Flag, Nwp_Lon_Idx,Nwp_Lat_Idx, & call INTERPOLATE_PROFILE(Z_Prof_1,Z_Prof_2,Z_Prof_3,Z_Prof_4,NWP_Lon_Fac,NWP_Lat_Fac,Z_Prof) call INTERPOLATE_PROFILE(T_Prof_1,T_Prof_2,T_Prof_3,T_Prof_4,NWP_Lon_Fac,NWP_Lat_Fac,T_Prof) Tsfc = INTERPOLATE_NWP(T_Prof_1(Sfc_Level_Idx_1),T_Prof_2(Sfc_Level_Idx_2),T_Prof_3(Sfc_Level_Idx_3),& - T_Prof_4(Sfc_Level_Idx_3),NWP_Lon_Fac,NWP_Lat_Fac) + T_Prof_4(Sfc_Level_Idx_4),NWP_Lon_Fac,NWP_Lat_Fac) Zsfc = INTERPOLATE_NWP(Z_Prof_1(Sfc_Level_Idx_1),Z_Prof_2(Sfc_Level_Idx_2),Z_Prof_3(Sfc_Level_Idx_3),& - Z_Prof_4(Sfc_Level_Idx_3),NWP_Lon_Fac,NWP_Lat_Fac) + Z_Prof_4(Sfc_Level_Idx_4),NWP_Lon_Fac,NWP_Lat_Fac) Psfc = INTERPOLATE_NWP(P_Std_Rtm(Sfc_Level_Idx_1),P_Std_Rtm(Sfc_Level_Idx_2),P_Std_Rtm(Sfc_Level_Idx_3),& - P_Std_Rtm(Sfc_Level_Idx_3),NWP_Lon_Fac,NWP_Lat_Fac) + P_Std_Rtm(Sfc_Level_Idx_4),NWP_Lon_Fac,NWP_Lat_Fac) else !if not, use the nearest nwp grid cell if (ABI_Use_104um_Flag) then diff --git a/main_src/cloud_shadow_mod.f90 b/main_src/cloud_shadow_mod.f90 deleted file mode 100644 index 987b1e1460502a03980e02e3f959d99fb5f858c3..0000000000000000000000000000000000000000 --- a/main_src/cloud_shadow_mod.f90 +++ /dev/null @@ -1,181 +0,0 @@ -! $Header: https://svn.ssec.wisc.edu/repos/cloud_team_clavrx/trunk/main_src/cloud_shadow_mod.f90 2667 2018-04-25 11:27:03Z awalther $ -! -! -! -module cloud_shadow_mod -implicit none -private - -contains - - subroutine cloud_shadow_retr ( & - cloud_height & - , solar_azi & - , solar_zenith & - , lat & - , lon & - , lat_pc & - , lon_pc & - , cloud_shadow ) - - implicit none - real, intent(in) :: cloud_height (:,:) - real, intent(in) :: solar_azi (:,:) - real, intent(in) :: solar_zenith (:,:) - real, intent(in) :: lat (:,:) - real, intent(in) :: lon (:,:) - real, intent(in) :: lat_pc (:,:) - real, intent(in) :: lon_pc (:,:) - - logical, intent(out) :: cloud_shadow (:,:) - - - real, parameter :: PI = 3.1415926535897 - real, parameter :: DTOR = PI/180. - real, allocatable :: distance_km (:,:) - real, allocatable :: Lon_Spacing_Per_m (:,:) - real,parameter:: LAT_SPACING_PER_M = 8.9932e-06 ! ( = 1.0/111000.0 m ) - - integer :: i,j - real :: delta_lon, delta_lat - integer :: i_dim, j_dim - - - - cloud_shadow = .false. - allocate ( distance_km, source = cloud_height) - allocate ( Lon_Spacing_Per_m, source = cloud_height) - - distance_km = cloud_height * tan (solar_zenith * DTOR ) - - Lon_Spacing_Per_m = LAT_SPACING_PER_M / cos ( Lat_pc * DTOR ) - - i_dim = size ( cloud_height, dim=1) - j_dim = size ( cloud_height, dim=2) - - do i = 2 , i_dim - 1 - do j = 2 ,j_dim - 1 - if ( solar_zenith (i,j) > 85. ) cycle - if ( cloud_height (i,j) <= 0. ) cycle - - - - ! are there clear pixels around at all? - if ( count ( cloud_height (i-1:i+1,j-1:j+1) > 0. ) == 9 ) cycle - - Delta_Lon = -1.* sin(Solar_azi(i,j) * DTOR ) * distance_km(i,j) * Lon_Spacing_Per_m (i,j) - Delta_Lat = -1. * cos(Solar_azi(i,j) * DTOR ) * distance_km(i,j) * Lat_Spacing_Per_m - - - call shadow_ind ( lat_pc(i,j) + delta_lat, lon_pc(i,j) + delta_lon , lat, lon , i,j, cloud_shadow) - - end do - end do - - deallocate ( distance_km) - deallocate ( lon_spacing_per_m) - - - end subroutine cloud_shadow_retr - - ! - ! input: - ! lat1,lon1 : the lon/lat values of maximal shadow - ! - ! lat , lon : lon/lat coordinate array - ! - ! i , j : the cloud pixel for lat/lon array - ! - ! output : - ! shad_arr: logical array with same size as lat, lon - ! - ! - subroutine shadow_ind ( lat1,lon1, lat , lon , i, j, shad_arr ) - real, intent(in) :: lat1 - real, intent(in) :: lon1 - real, intent(in) :: lat(:,:) - real, intent(in) :: lon(:,:) - - logical , intent(inout) ::shad_arr (:,:) - integer , intent(in) :: i - integer , intent(in) :: j - - real :: pixel_size_lat (2) - real :: pixel_size_lon (2) - integer :: ii,jj - real :: diff_lat , diff_lon - real :: delta_lat_ii , delta_lat_jj - real :: delta_lon_ii , delta_lon_jj - real :: long_idx,short_idx - integer :: short_idx_arr - - integer :: dim_1 , dim_2 - integer :: idx_1 , idx_2 - - dim_1 = size ( shad_arr, 1 ) - dim_2 = size ( shad_arr, 2 ) - - delta_lat_ii = lat(i,j) - lat(i-1,j) - delta_lon_ii = lon(i,j) - lon(i-1,j) - delta_lat_jj = lat(i,j) - lat(i,j-1) - delta_lon_jj = lon(i,j) - lon(i,j-1) - - diff_lat = lat1 - lat(i,j) - diff_lon = lon1 - lon(i,j) - - - ! use of these equations: - ! diff_lon = ii * delta_lon_ii + jj * delta_lon_jj - ! diff_lat = ii * delta_lat_ii + jj * delta_lat_jj - ! solve for ii => - - - - - ii = ( diff_lat * delta_lon_jj - diff_lon * delta_lat_jj) / & - (delta_lat_ii * delta_lon_jj - delta_lon_ii * delta_lat_jj) - - - jj = ( diff_lat - ii * delta_lat_ii) / delta_lat_jj - - ! - find longer dim - ! - long_idx = maxval (ABS([ii,jj])) - short_idx = minval (ABS([ii,jj])) - - ! - this fills all pixel from lat1 to lat(i,j)/lon(i,j) - do k = 1 , long_idx - if (abs(ii) == long_idx ) then - idx_1 = i + sign(k,ii) - if (idx_1 < 1 .or. idx_1 > dim_1 ) cycle - - short_idx_arr = CEILING ( short_idx * sign(k,jj) / long_idx ) - - idx_2 = j + short_idx_arr - if ( idx_2 > 0 .and. idx_2 <= dim_2 ) shad_arr( idx_1 , idx_2 ) = .true. - idx_2 = j + short_idx_arr - 1 - if ( idx_2 > 0 .and. idx_2 <= dim_2 ) shad_arr( idx_1 , j + short_idx_arr-1) = .true. - else - idx_2 = j + sign(k,jj) - - if (idx_2 < 1 .or. idx_2 > dim_2 ) cycle - short_idx_arr = CEILING ( short_idx * sign(k,ii) / long_idx ) - - idx_1 = i + short_idx_arr - - - if ( idx_1 > 0 .and. idx_1 <= dim_1 ) shad_arr(i+short_idx_arr,idx_2 ) = .true. - idx_1 = i + short_idx_arr - 1 - if ( idx_1 > 0 .and. idx_1 <= dim_1 ) shad_arr(i+short_idx_arr-1, idx_2) = .true. - endif - end do - - - - end subroutine shadow_ind - - -end module cloud_shadow_mod - - - diff --git a/main_src/cx_eps_sg_mod.f90 b/main_src/cx_eps_sg_mod.f90 index c4b4cc5698a577dea6f5862b82c1b8baebe5e3fd..99a5f065876953994008dc4ba9021bdd483750fb 100644 --- a/main_src/cx_eps_sg_mod.f90 +++ b/main_src/cx_eps_sg_mod.f90 @@ -417,7 +417,7 @@ subroutine READ_EPS_SG_DATA(Segment_Number, Error_Status) Sds_Data_1d = Sds_Data_1d - MSEC_PER_DAY end where - Time_Msec_Day = (mod(long(Sds_Data_1d), Microsec_Per_Day)) * 1000 + Time_Msec_Day = (mod(int(Sds_Data_1d), Microsec_Per_Day)) * 1000 Image%Scan_Time_Ms(1:Sds_Count_2d(2)) = (/(Time_Msec_Day((k - 1) /24 + 1), k=1, Sds_Count_2d(2))/) !--- special case last segment diff --git a/main_src/cx_isccpng_mod.f90 b/main_src/cx_isccpng_mod.f90 index 59d1dd66b7d128cbb980e8d5c577da1bd5f5b5a3..c9fcbed90f4459fc620cd300322a0fd56934b4a3 100644 --- a/main_src/cx_isccpng_mod.f90 +++ b/main_src/cx_isccpng_mod.f90 @@ -239,24 +239,22 @@ subroutine READ_ISCCPNG_DATA(Segment_Number, Error_Status) end where !--- convert azimuths from L1g to CLAVR-x convention - ! L1g is clockwise from East ! CLAVR-x is clockwise from North - ! l1g = (clavrx + 90)%360. + ! (old) L1g is clockwise from East + ! (old) l1g = (clavrx + 90)%360. -! where(Geo%Sataz /= MISSING_VALUE_REAL4) -! Geo%Sataz = mod(Geo%Sataz - 90.0,360.0) + !--- transform not needed for demo 03/23 +! where(Geo%Sataz > 180.0) +! Geo%Sataz = Geo%Sataz - 360.0 ! end where - where(Geo%Sataz > 180.0) - Geo%Sataz = Geo%Sataz - 360.0 - end where - where(Geo%Solaz /= MISSING_VALUE_REAL4) - Geo%Solaz = mod(Geo%Solaz - 90.0,360.0) - end where - where(Geo%Solaz > 180.0) - Geo%Solaz = Geo%Solaz - 360.0 - end where +! where(Geo%Solaz /= MISSING_VALUE_REAL4) +! Geo%Solaz = mod(Geo%Solaz - 90.0,360.0) +! end where +! where(Geo%Solaz > 180.0) +! Geo%Solaz = Geo%Solaz - 360.0 +! end where !--- make Relaz and Glint and Scattering angles here Geo%Relaz = RELATIVE_AZIMUTH (Geo%Solaz, Geo%Sataz) @@ -317,7 +315,7 @@ subroutine READ_ISCCPNG_DATA(Segment_Number, Error_Status) call COMPUTE_RAD_ARRAY( Ch(28)%Bt_Toa,Ch(28)%Rad_Toa,28,MISSING_VALUE_REAL4) end if if (Sensor%Chan_On_Flag_Default(29) == sym%Yes) then - call READ_LAYERED_L1G(File_Prefix, File_Suffix, 'temp_08_50um', Segment_Number, WMO_L1g, Ch(29)%Bt_Toa) + call READ_LAYERED_L1G(File_Prefix, File_Suffix, 'temp_08_60um', Segment_Number, WMO_L1g, Ch(29)%Bt_Toa) call COMPUTE_RAD_ARRAY( Ch(29)%Bt_Toa,Ch(29)%Rad_Toa,29,MISSING_VALUE_REAL4) end if if (Sensor%Chan_On_Flag_Default(30) == sym%Yes) then diff --git a/main_src/cx_netcdf4_mod.f90 b/main_src/cx_netcdf4_mod.f90 index 55735fd30483e058d2b01b1bc37a2bc6994a0ac4..7d404f6c6c9850fc65791495799edec88f59e3a5 100644 --- a/main_src/cx_netcdf4_mod.f90 +++ b/main_src/cx_netcdf4_mod.f90 @@ -127,6 +127,7 @@ module CX_NETCDF4_MOD if (status /= nf90_noerr) then print *, EXE_PROMPT_NAV , 'ERROR: Failed Open on NetCdf File' print*, EXE_PROMPT_NAV ,' filename is: ', nc_file + ncid = -1 return endif end subroutine open_netcdf diff --git a/main_src/cx_rtm_mod.f90 b/main_src/cx_rtm_mod.f90 index 4b0b31bb966a6bf785e2f0311b510b305120a49b..942d42999fc3879efcb2889137e3a0c12513aea4 100644 --- a/main_src/cx_rtm_mod.f90 +++ b/main_src/cx_rtm_mod.f90 @@ -42,7 +42,9 @@ module CX_RTM_MOD use CX_PFAAST_MOD, only: & COMPUTE_TRANSMISSION_PFAAST - + + use CLAVRX_MESSAGE_MOD, only: MESG + type cx_rtm_input character (len=1024) :: ancil_path real ,dimension(:,:),allocatable :: p_std @@ -69,7 +71,7 @@ contains trans_prof_rtm = -999. if ( inp % which_rtm == 2 ) then - if (first_run) print*,'Clear Sky Transmission with RTTOV' + if (first_run) call MESG('Clear Sky Transmission with RTTOV') #ifdef LIBRTTOV call COMPUTE_TRANSMISSION_RTTOV ( & trim(inp % Ancil_path) & diff --git a/main_src/cx_sfc_emissivity_mod.f90 b/main_src/cx_sfc_emissivity_mod.f90 index 5f42442fe09166eea33144672d98784ffbf29f1f..31e026e6852559ed37fc76e8c7355673f31f98c5 100644 --- a/main_src/cx_sfc_emissivity_mod.f90 +++ b/main_src/cx_sfc_emissivity_mod.f90 @@ -23,6 +23,8 @@ module cx_sfc_emissivity_mod use CX_SEA_IR_EMISS_MOD, only: GET_SEGMENT_SEA_IR_EMISS + use CLAVRX_MESSAGE_MOD, only: MESG, VERB_LEV + implicit none private public:: cx_sfc_emiss_populate_ch @@ -61,10 +63,10 @@ contains select case(sfc_emiss_option) case(ETsfc_emiss_use_option_UMD) - if (first_run) print*,ETsfc_emiss_use_option_UMD,'SFC EMISS UMD' + if (first_run) call MESG('SFC EMISS UMD', level = verb_lev % DEFAULT) case(ETsfc_emiss_use_option_RTTOV) - if (first_run) print*,ETsfc_emiss_use_option_RTTOV,'SFC EMISS RTTOV' + if (first_run) call MESG('SFC EMISS RTTOV', level = verb_lev % DEFAULT) #ifdef LIBRTTOV rttov_path = trim(Ancil_Data_Dir) // "static/rttov/" call GET_RTTOV_EMISS(Nav%Lat, Nav%Lon, Geo%Space_Mask, rttov_path) @@ -73,7 +75,7 @@ contains stop #endif case(ETsfc_emiss_use_option_SEEBOR) - if (first_run) print*,ETsfc_emiss_use_option_SEEBOR, 'SFC EMISS SEEBOR' + if (first_run) call MESG('SFC EMISS SEEBOR', level = verb_lev % DEFAULT) path_sfc = trim(Ancil_Data_Dir)//"static/sfc_data" do Chan_Idx = 20, Nchan_Clavrx @@ -91,11 +93,8 @@ contains stop 'CRTM is not yet installed' case default - print*,' Surface emissivity option is wrongly set' + call MESG(' Surface emissivity option is wrongly set', level = verb_lev % DEFAULT) end select - - ! print*,allocated(Ch(20)%Sfc_Emiss),maxval(Ch(31)%Sfc_Emiss) - ! print*,allocated(Ch(31)%Sfc_Emiss) first_run = .false. @@ -107,8 +106,6 @@ contains subroutine cx_sfc_emiss_correct_for_sfctype integer :: Line_Idx_Min_Segment - !if ( sfc_emiss_option .NE. ETsfc_emiss_use_option_RTTOV) then - ! now file all non-land pixels Line_Idx_Min_Segment = 1 call GET_PIXEL_SFC_EMISS_FROM_SFC_TYPE(Line_Idx_Min_Segment,Image%Number_Of_Lines_Read_This_Segment) diff --git a/main_src/cx_vgac_mod.f90 b/main_src/cx_vgac_mod.f90 index 3f112ade189cb360f7ea7e80784541cd2087d33d..de7467ec34bc40a9fa3b0a7eaf3a090151c71c42 100644 --- a/main_src/cx_vgac_mod.f90 +++ b/main_src/cx_vgac_mod.f90 @@ -294,9 +294,9 @@ subroutine READ_VGAC_DATA(Segment_Number, Error_Status) endif !--- fix vza - do Elem_Idx = 1, Sds_Count(1) - Geo%Satzen(Elem_Idx,:) = 70.0*abs(Elem_Idx - 401) / 800.0 - enddo + !do Elem_Idx = 1, Sds_Count(1) + ! Geo%Satzen(Elem_Idx,:) = 70.0*abs(Elem_Idx - 401) / 800.0 + !enddo !--- read scanline time call READ_NETCDF(Ncid_Vgac, [Sds_Start(2)], [Sds_Stride(2)], [Sds_Count(2)], "time", Sds_Data_1d) diff --git a/main_src/dcomp_derived_products_mod.f90 b/main_src/dcomp_derived_products_mod.f90 index dadd481da6024a7b884b5c968d65eef4f30394c2..e599b1712050b09f5119efdebc89165b2bb5840d 100644 --- a/main_src/dcomp_derived_products_mod.f90 +++ b/main_src/dcomp_derived_products_mod.f90 @@ -896,14 +896,14 @@ subroutine COMPUTE_DCOMP_INSOLATION(Line_Idx_Min,Num_Lines,Sun_Earth_Distance) line_loop: DO Line_Idx = Line_Idx_Min, Line_Idx_Max element_loop: DO Elem_Idx = Elem_Idx_Min, Elem_Idx_Max - !--- skip data that can not be processed - if (Bad_Pixel_Mask(Elem_Idx,Line_Idx) == sym%YES) cycle - if (Solar_Zenith_Angle > 70.0) cycle - Cloud_Optical_Depth = Tau_Dcomp(Elem_Idx,Line_Idx) Solar_Zenith_Angle = Geo%Solzen(Elem_Idx,Line_Idx) Land_Class = Sfc%Land(Elem_Idx,Line_Idx) + !--- skip data that can not be processed + if (Bad_Pixel_Mask(Elem_Idx,Line_Idx) == sym%YES) cycle + if (Solar_Zenith_Angle > 70.0) cycle + !--- skip if no nwp if (NWP_Pix%Ozone(Elem_Idx,Line_Idx) .eqr. Missing_Value_Real4) cycle if (NWP_Pix%Psfc(Elem_Idx,Line_Idx) .eqr. Missing_Value_Real4) cycle @@ -917,10 +917,6 @@ subroutine COMPUTE_DCOMP_INSOLATION(Line_Idx_Min,Num_Lines,Sun_Earth_Distance) !--- adjust gases for slant path Cosine_Solar_Zenith_Angle = cos(Geo%Solzen(Elem_Idx,Line_Idx)*DTOR) - !--- skip data that can not be processed - if (Bad_Pixel_Mask(Elem_Idx,Line_Idx) == sym%YES) cycle - if (Solar_Zenith_Angle > 70.0) cycle - !--- determine surface albedo if (Land_Class == sym%LAND) then Surface_Albedo_Diffuse = ch(1)%Sfc_Ref_White_Sky(Elem_Idx,Line_Idx) / 100.0 diff --git a/main_src/dncomp_clavrx_bridge_mod.f90 b/main_src/dncomp_clavrx_bridge_mod.f90 index 4ffc4366c8e065869fc03615e65ede3fcd2bb5d4..4b2deb0988536e5a01af6dc0b46c792d308e4b03 100644 --- a/main_src/dncomp_clavrx_bridge_mod.f90 +++ b/main_src/dncomp_clavrx_bridge_mod.f90 @@ -28,6 +28,9 @@ ! REVISION HISTORY: ! 02/10.2013 : first version ! 10/21/2013 : bridge to array instead to pixel-based +! +! +! !-------------------------------------------------------------------------------------- module dncomp_clavrx_bridge_mod @@ -100,11 +103,10 @@ module dncomp_clavrx_bridge_mod private logical :: first_call = .true. - - public :: set_dcomp_version + public :: awg_cloud_dncomp_algorithm - character(len = 200) :: DCOMP_RELEASE_VERSION = 'DCOMP version 2_0_0' + character(len = 120) :: DCOMP_RELEASE_VERSION = 'DCOMP version 2_0_0' contains @@ -113,7 +115,7 @@ contains ! AWG_CLOUD_DCOMP_ALGORITHM ! This is the DCOMP bridge from CLAVR-x !---------------------------------------------------------------------- - subroutine awg_cloud_dncomp_algorithm ( iseg_in , nlcomp_mode, algorithm_started ) + subroutine awg_cloud_dncomp_algorithm ( iseg_in , nlcomp_mode, algorithm_started, version ) implicit none @@ -123,6 +125,7 @@ contains ! - output logical , intent(out) :: algorithm_started + character(len = 120), intent(out), optional :: version type(dcomp_rtm_type), target :: dcomp_rtm type(dncomp_in_type) :: dcomp_input @@ -175,6 +178,7 @@ contains ! ----- executable --------------------------------------------------- ! run_nlcomp = .false. if (present(nlcomp_mode)) run_nlcomp = nlcomp_mode + if ( present ( version) ) version = DCOMP_RELEASE_VERSION algorithm_started = .false. @@ -226,13 +230,15 @@ contains ! - wmo sensor id dcomp_input % sensor_wmo_id = sensor % wmo_id dcomp_input % sun_earth_dist = sun_earth_distance - + + dcomp_input % gas_coeff(:) % is_set = .false. ! - all reflectance channels do i = 1, 19 if ( dcomp_input % is_channel_on (i)) then dcomp_input % chn(i) % refl => ch(i)%ref_toa dcomp_input % chn(i) % alb_sfc => ch(i) % sfc_ref_white_sky dcomp_input % gas_coeff(i) % d = solar_rtm % tau_h2o_coef(i,:) + dcomp_input % gas_coeff(i) % is_set = .true. end if end do @@ -336,7 +342,7 @@ contains call dcomp_input % check_input (debug_mode) call mesg ('DCOMP starts in Bridge',level = 9) - + call dcomp_array_loop ( dcomp_input , dncomp_output , debug_mode_user = debug_mode) call mesg ('DCOMP ends in Bridge',level = 9) @@ -407,13 +413,6 @@ contains end subroutine awg_cloud_dncomp_algorithm - - !--------------------------------------------------------------------------- - ! routine to set the cvs version in a global variable to write to hdf file - !--------------------------------------------------------------------------- - subroutine set_dcomp_version() - dcomp_version = DCOMP_RELEASE_VERSION - end subroutine set_dcomp_version end module dncomp_clavrx_bridge_mod diff --git a/main_src/file_tools.f90 b/main_src/file_tools.f90 index 6d010f7214699b7f061a9618f9e4c97654dde919..891b60517f41aa0f2a72718e6eb4940ed2d99436 100644 --- a/main_src/file_tools.f90 +++ b/main_src/file_tools.f90 @@ -17,8 +17,11 @@ !----------------------------------------------------------------------------------------------------------------------- module file_tools + use pixel_common_mod, only: Temporary_Data_Dir + implicit none + private public :: file_basename @@ -29,6 +32,7 @@ module file_tools public :: get_lun public :: file_nr_lines public :: uncompress_file + contains @@ -164,10 +168,10 @@ contains integer :: lun character(len=8) :: date character(len=20) :: time - character(len=200) :: unique_dummy_file + character(len=2048) :: unique_dummy_file call date_and_time(date = date, time=time) - unique_dummy_file = 'fort.file_search_dummy_'//trim(time) + unique_dummy_file = trim(Temporary_Data_Dir)//'/fort.file_search_dummy_'//trim(time) call system ( 'rm -f '//trim(unique_dummy_file)) lun = getlun() diff --git a/main_src/fy3d_read_module.f90 b/main_src/fy3d_read_module.f90 index bcace88e5d58573f6759a85b3b3786d3714aff8a..7c0ef57626127dffb35ca3c93e7cda1f7ab09c65 100644 --- a/main_src/fy3d_read_module.f90 +++ b/main_src/fy3d_read_module.f90 @@ -161,6 +161,7 @@ subroutine READ_FY3D_DATA (Segment_Number, GEO1K_File, Error_Out) integer (HSIZE_T), dimension(2) :: dims_geo2 integer (HID_T) :: file_id ! file id integer (HID_T) :: sds_id_var ! sds id all variables + real, parameter :: Missing_Local = 999.9 !real(kind=4) :: H5T_NATIVE_REAL Error_Out = 0 @@ -187,17 +188,20 @@ subroutine READ_FY3D_DATA (Segment_Number, GEO1K_File, Error_Out) else call H5READDATASET (trim(Image%Level1b_Path)//trim(GEO1K_File), & trim(Setname_Geo_List(I_Geo)), Offset_band, Dim_Seg, R2d_Buffer) - if (Scaled_Geo(I_Geo) .eq. 1) then + ! if (Scaled_Geo(I_Geo) .eq. 1) then call H5READATTRIBUTE (trim(Image%Level1b_Path)//trim(GEO1K_File), & trim(Setname_Geo_List(I_Geo)//'/Slope'), Scale_Factor) call H5READATTRIBUTE (trim(Image%Level1b_Path)//trim(GEO1K_File), & trim(Setname_Geo_List(I_Geo)//'/Intercept'), Add_Offset) call H5READATTRIBUTE (trim(Image%Level1b_Path)//trim(GEO1K_File), & trim(Setname_Geo_List(I_Geo)//'/FillValue'), Fill_Value) - where ( R2d_Buffer .ne. Fill_Value) + where ( R2d_Buffer .ne. Fill_Value .and. R2d_Buffer .ne. Missing_Local) R2d_Buffer = (R2d_Buffer * Scale_Factor) + Add_Offset endwhere - endif + where ( R2d_Buffer .eq. Fill_Value .or. R2d_Buffer .eq. Missing_Local) + R2d_Buffer = Missing_Value_Real4 + endwhere + ! endif endif ! save read data to output in correct format diff --git a/main_src/goes_mod.f90 b/main_src/goes_mod.f90 index 556197376cdfc6393370c98dc21e192edb07f65b..40724839f6f814d7d5c8f98f35f772cb499acfac 100644 --- a/main_src/goes_mod.f90 +++ b/main_src/goes_mod.f90 @@ -89,6 +89,9 @@ use CALIBRATION_CONSTANTS_MOD, only: & , glint_angle & , scattering_angle & , possol + + use CLAVRX_MESSAGE_MOD, only: mesg, verb_lev + implicit none private @@ -107,7 +110,7 @@ use CALIBRATION_CONSTANTS_MOD, only: & DARK_COMPOSITE_CLOUD_MASK - integer(kind=int4), public, parameter:: Goes_Xstride = 1 ! goes is oversampled by 50% in x + integer(kind=int4), public, parameter:: Goes_Xstride = 2 ! goes is oversampled by 50% in x integer(kind=int4), public, parameter:: Goes_Sndr_Xstride = 1 integer(kind=int4), private, parameter:: Num_4km_Scans_Goes_Fd = 2704 integer(kind=int4), private, parameter:: Num_4km_Elem_Goes_Fd = 5200 @@ -1390,11 +1393,9 @@ end subroutine READ_GOES_SNDR open(unit=1,file=trim(filename),form="unformatted",access="direct",recl=4,status="old",action="read") - read (unit=1, rec = 1) AREAstr%area_Status - read (unit=1, rec = 2) AREAstr%Version_Num + read (unit=1, rec = 1, err=404) AREAstr%area_Status + read (unit=1, rec = 2, err=404) AREAstr%Version_Num if (AREAstr%Version_Num .ne. 4) then -! print *, "Area file cannot be read" ! byte swapping may cause this -! AREAstr%swap_bytes = 1 return endif read (unit=1, rec = 3) AREAstr%Sat_Id_Num @@ -1550,14 +1551,19 @@ end subroutine READ_GOES_SNDR enddo - close(unit=1) - !--- compute scan rate for future use Num_Elements_This_image = int(AREAstr%Num_Elem / Goes_Xstride) + 1 num_Scans_This_image = AREAstr%Num_Line Scan_rate = real((Num_Elements_This_image)/ real(Num_4km_Elem_Goes_Fd/Goes_Xstride)) * & real((num_Scans_This_image) / real(Num_4km_Scans_Goes_Fd)) * & real(time_for_fd_Scan_goes) / real(num_Scans_This_image) + close(unit=1) + return + +404 close(unit=1) + print *, "Error reading GOES Headers. File is probably empty" + stop 4 + ! print *, "elements = ", Num_Elements_This_image, Num_4km_Elem_Goes_Fd/Goes_Xstride ! print *, "lines = ", num_Scans_This_image, Num_4km_Scans_Goes_Fd @@ -3497,7 +3503,7 @@ subroutine READ_DARK_COMPOSITE_COUNTS(Segment_Number,Xstride,Dark_Composite_File !--- check to see if a dark composite file exists for this image if (trim(Dark_Composite_Filename) == "no_file" .and. Segment_Number == 1) then - print *, "No Dark Composite Available for this Image" + call MESG( "No Dark Composite Available for this Image",level=verb_lev % DEFAULT ) return endif diff --git a/main_src/land_sfc_properties_mod.f90 b/main_src/land_sfc_properties_mod.f90 index 3825f7a7ed0d7824da83604aa218cc7892c27764..e293cbfd4d62a1a75b52e038eba66bf67de6cf5d 100644 --- a/main_src/land_sfc_properties_mod.f90 +++ b/main_src/land_sfc_properties_mod.f90 @@ -225,9 +225,11 @@ module LAND_SFC_PROPERTIES_MOD INTEGER:: Istatus + where(space_mask) + land = missing_value_int1 + endwhere if (ALL(space_mask)) then - land = missing_value_int1 return end if @@ -384,9 +386,11 @@ module LAND_SFC_PROPERTIES_MOD INTEGER:: Istatus ! - executable + where(space_mask) + land = missing_value_int2 + endwhere if ( ALL( space_mask)) then - land = missing_value_int2 return end if diff --git a/main_src/level2_mod.f90 b/main_src/level2_mod.f90 index 80634013eca8c0f7efe613d27aff989597459955..5ed94f3c49ec66ac9406cf7179cfc062432c6744 100644 --- a/main_src/level2_mod.f90 +++ b/main_src/level2_mod.f90 @@ -188,6 +188,15 @@ subroutine SETUP_LEVEL2_SDS_INFO() Sds_Info(Var_Idx)%Add_Offset = 1.0 Sds_Info(Var_Idx)%Actual_Range = [0,0] + Sds_Info(Var_Idx)%Sds_Data_1d_I1 => null() + Sds_Info(Var_Idx)%Sds_Data_1d_I4 => null() + Sds_Info(Var_Idx)%Sds_Data_1d_R4 => null() + Sds_Info(Var_Idx)%Sds_Data_2d_I1 => null() + Sds_Info(Var_Idx)%Sds_Data_2d_I2 => null() + Sds_Info(Var_Idx)%Sds_Data_2d_I4 => null() + Sds_Info(Var_Idx)%Sds_Data_2d_R4 => null() + Sds_Info(Var_Idx)%Sds_Data_3d_I1 => null() + select case (trim(Sds_Info(Var_Idx)%Sds_Name)) !---------------------------------------------------------------------------------------------------- @@ -1656,6 +1665,12 @@ subroutine SETUP_LEVEL2_SDS_INFO() Sds_Info(Var_Idx)%Long_Name = "Effective Cloud Top Pressure from ACHA" Sds_Info(Var_Idx)%Units = "hPa" if (allocated(ACHA%Pc_Eff)) Sds_Info(Var_Idx)%Sds_Data_2d_R4 => ACHA%Pc_Eff + case("cld_press_lower_acha") + Sds_Info(Var_Idx)%Standard_Name = "air_pressure_at_effective_cloud_top_lower_layer" + Sds_Info(Var_Idx)%Actual_Range = [50.0,1100.0] + Sds_Info(Var_Idx)%Long_Name = "Effective Cloud Top Pressure for lower layer from ACHA" + Sds_Info(Var_Idx)%Units = "hPa" + if (allocated(ACHA%Lower_Pc)) Sds_Info(Var_Idx)%Sds_Data_2d_R4 => ACHA%Lower_Pc case("cld_press_uncer_acha") Sds_Info(Var_Idx)%Standard_Name = "cld_press_uncer_acha" Sds_Info(Var_Idx)%Actual_Range = [0.0,1000.0] @@ -2394,7 +2409,7 @@ subroutine SETUP_LEVEL2_SDS_INFO() case("cloud_transmission_0_65um_nom") Sds_Info(Var_Idx)%Standard_Name = "cloud_transmission_0_65um_nom" Sds_Info(Var_Idx)%Actual_Range = [0.0,1.0] - Sds_Info(Var_Idx)%Long_Name = "cloud albedo at 0.65 microns nominal from DCOMP" + Sds_Info(Var_Idx)%Long_Name = "cloud transmission at 0.65 microns nominal from DCOMP" Sds_Info(Var_Idx)%Units = "none" if (allocated(Cloud_063um_Transmission_Solar)) Sds_Info(Var_Idx)%Sds_Data_2d_R4 => Cloud_063um_Transmission_Solar @@ -2651,6 +2666,7 @@ subroutine SETUP_LEVEL2_SDS_INFO() Sds_Info(Var_Idx)%Actual_Range = [0.0,1200.0] Sds_Info(Var_Idx)%Long_Name = "Cloud Water Path from NWP Ancillary Data" Sds_Info(Var_Idx)%Units = "g m-2" + if (allocated(NWP_PIX%Cwp)) Sds_Info(Var_Idx)%Sds_Data_2d_R4 => NWP_PIX%Cwp case("cld_iwp_nwp") Sds_Info(Var_Idx)%Standard_Name = "cld_iwp_nwp" Sds_Info(Var_Idx)%Actual_Range = [0.0,1200.0] @@ -3026,7 +3042,7 @@ subroutine SETUP_LEVEL2_SDS_INFO() case default - print *, "Unknown Level2 Variable ==> ", trim(Sds_Info(Var_Idx)%Sds_Name) + call MESG ( "Unknown Level2 Variable ==> "//trim(Sds_Info(Var_Idx)%Sds_Name), level=verb_lev % ERROR ) end select enddo @@ -4918,7 +4934,7 @@ end subroutine WRITE_SDS_NETCDF if (index(Sds_Info(Var_Idx)%Sds_Name, 'refl_sfc_white_sky_') == 1 .and. & index(Sds_Info(Var_Idx)%Sds_Name, '_nom') >0) then Sds_Info(Var_Idx)%Actual_Range = [-20.0,100.0] - Sds_Info(Var_Idx)%Level2_Data_Type_HDF = DFNT_INT8 + Sds_Info(Var_Idx)%Level2_Data_Type_HDF = DFNT_INT16 Sds_Info(Var_Idx)%Units = "%" Sds_Info(Var_Idx)%Standard_Name = "white_sky_surface_reflectance" Sds_Info(Var_Idx)%Long_Name = "surface reflectance for white skies at nominal wavelength of" diff --git a/main_src/modis_mod.f90 b/main_src/modis_mod.f90 index 4c7f33c6b0bd8fd9af7767f9ef37124fe68a02f9..e28c906fc732f63383daa1892851c820f1024fbc 100644 --- a/main_src/modis_mod.f90 +++ b/main_src/modis_mod.f90 @@ -71,13 +71,9 @@ module MODIS_MOD use cx_date_time_tools_mod,only: julian - use PLANCK_MOD , only: & - convert_radiance & - , compute_bt_array + use PLANCK_MOD , only: CONVERT_RADIANCE, COMPUTE_BT_ARRAY - use VIEWING_GEOMETRY_MOD, only: & - glint_angle & - , scattering_angle + use VIEWING_GEOMETRY_MOD, only: GLINT_ANGLE, SCATTERING_ANGLE use FILE_TOOLS, only: & file_search diff --git a/main_src/mvcm_read_mod.f90 b/main_src/mvcm_read_mod.f90 index 5ddab5a8a5935de21d421fc7ac1149c4c3cd6c00..b396deb878f4418cd9e5ebde8b1eda7538ed4900 100644 --- a/main_src/mvcm_read_mod.f90 +++ b/main_src/mvcm_read_mod.f90 @@ -209,7 +209,52 @@ module MVCM_READ_MOD endif - !--- SIPS IFF MODIS Level1b + !--- SIPS AHI GEO + if (index(Image%Level1b_Name,'HS_H08') == 1) then + !0 1 2 3 4 + !12345678901234567890123456789012345678901234567890 + !HS_H08_20160502_0200_B01_FLDK_R10_S0110.DAT + !MVCMGEO.HIM08.20160502.0200_ahi_v1_0_3_REFERENCE_FD.nc + Search_String = 'MVCMGEO.HIM08.'//Image%Level1b_Name(8:15)//'.'//Image%Level1b_Name(17:20)//'*.nc' + + Files => FILE_SEARCH(trim(Image%Level1b_Path),trim(Search_String),count=Num_Files) + + if (Num_Files == 0 .or. Num_Files > 1) then + print *, EXE_PROMPT, MVCM_PROMPT, "MVCM File Not Found, " + return + endif + + Image%Auxiliary_Cloud_Mask_File_Name = Files(1) + + if (Seg_Idx == 1) & + print *, EXE_PROMPT, MVCM_PROMPT, "SIPS HIM08 MVCM File Found, ", & + trim(Image%Auxiliary_Cloud_Mask_File_Name) + + endif + + !--- SIPS ABI GEO + if (index(Image%Level1b_Name,'OR_ABI') == 1) then + !0 1 2 3 4 + !12345678901234567890123456789012345678901234567890 + !OR_ABI-L1b-RadF-M6C01_G16_s20213651900205_e20213651909513_c20213651909561.nc + !MVCMGEO.G16ABI.2021365.1900_abi_v1_0_0_REFERENCE_FD.nc + Search_String = 'MVCMGEO.G*'//Image%Level1b_Name(28:34)//'.'//Image%Level1b_Name(35:38)//'*.nc' + + Files => FILE_SEARCH(trim(Image%Level1b_Path),trim(Search_String),count=Num_Files) + + if (Num_Files == 0 .or. Num_Files > 1) then + print *, EXE_PROMPT, MVCM_PROMPT, "MVCM File Not Found, " + return + endif + + Image%Auxiliary_Cloud_Mask_File_Name = Files(1) + + if (Seg_Idx == 1) & + print *, EXE_PROMPT, MVCM_PROMPT, "SIPS ABI MVCM File Found, ", & + trim(Image%Auxiliary_Cloud_Mask_File_Name) + + endif + Files => null() diff --git a/main_src/pixel_common_mod.f90 b/main_src/pixel_common_mod.f90 index fff35e155bfd43ca379a26badef852b24f80dc04..17aed73a154fd77491caa096433694e5374812a3 100644 --- a/main_src/pixel_common_mod.f90 +++ b/main_src/pixel_common_mod.f90 @@ -146,9 +146,6 @@ module PIXEL_COMMON_MOD use CLASS_TIME_DATE, only: & date_type - -!-- can not use this module due to Makefile precedence issues -! use CLAVRX_MESSAGE_MOD, only: MESG, VERB_LEV implicit none private @@ -280,7 +277,6 @@ module PIXEL_COMMON_MOD real (kind=real4), dimension(:,:), allocatable:: Lunaz real (kind=real4), dimension(:,:), allocatable:: LunRelaz real (kind=real4), dimension(:,:), allocatable:: LunFrac - !integer (kind=int1), dimension(:,:), allocatable:: Space_Mask logical, dimension(:,:), allocatable:: Space_Mask double precision:: Moon_Phase_Angle real (kind=real4):: Moon_Illum_Frac @@ -922,12 +918,6 @@ module PIXEL_COMMON_MOD !--- pixel level cloud props !--- direct heights -! real (kind=real4), dimension(:,:), allocatable, public, save, target:: Pc_EM -! real (kind=real4), dimension(:,:), allocatable, public, save, target:: Tc_EM -! real (kind=real4), dimension(:,:), allocatable, public, save, target:: Zc_EM -! real (kind=real4), dimension(:,:), allocatable, public, save, target:: Ec_EM -! real (kind=real4), dimension(:,:), allocatable, public, save, target:: N_EM -! real (kind=real4), dimension(:,:), allocatable, public, save, target:: Res_EM real (kind=real4), dimension(:,:), allocatable, public, save, target:: Pc_H2O real (kind=real4), dimension(:,:), allocatable, public, save, target:: Tc_H2O real (kind=real4), dimension(:,:), allocatable, public, save, target:: Zc_H2O @@ -1233,10 +1223,7 @@ subroutine CREATE_PIXEL_ARRAYS() case default - print *, "CLAVR-x: Arrays not allocated for unknown channel = ",idx - -!--- can not use clavrx_message_mod in this routine -! call MESG ("Arrays not allocated for unknown channel = ",idx) + print *, "CLAVR-x: Arrays not allocated for unknown channel = ",idx end select @@ -1335,7 +1322,6 @@ subroutine CREATE_PIXEL_ARRAYS() call CREATE_REF_CHANNEL_ARRAYS(dim1, dim2) call CREATE_THERM_CHANNEL_ARRAYS(dim1, dim2) call CREATE_EXTRA_CHANNEL_ARRAYS(dim1, dim2) -! call CREATE_LUNAR_ARRAYS(dim1, dim2) call CREATE_BTD_ARRAYS(dim1, dim2) call CREATE_ACHA_ARRAYS(dim1, dim2) call CREATE_BASE_ARRAYS(dim1, dim2) @@ -1483,7 +1469,6 @@ subroutine DESTROY_PIXEL_ARRAYS() call DESTROY_REF_CHANNEL_ARRAYS() call DESTROY_THERM_CHANNEL_ARRAYS() call DESTROY_EXTRA_CHANNEL_ARRAYS() -! call DESTROY_LUNAR_ARRAYS() call DESTROY_BTD_ARRAYS() call DESTROY_ACHA_ARRAYS() call DESTROY_BASE_ARRAYS() @@ -1502,7 +1487,7 @@ subroutine DESTROY_PIXEL_ARRAYS() call DESTROY_NUCAPS_ARRAYS() call DESTROY_CALIOP_ARRAYS() call DESTROY_L1G_ARRAYS() - + deallocate(Sst_Anal) deallocate(Sst_Anal_Err) deallocate(Sst_Anal_Cice) @@ -1510,7 +1495,6 @@ subroutine DESTROY_PIXEL_ARRAYS() deallocate(Solar_Contamination_Mask) - !--- nwp and rtm indices if (allocated(Zen_Idx_Rtm)) deallocate(Zen_Idx_Rtm) @@ -3312,12 +3296,6 @@ subroutine CREATE_CLOUD_PROD_ARRAYS(dim1,dim2) allocate(Zc_Opaque_Cloud(dim1,dim2)) allocate(Tc_Opaque_Cloud(dim1,dim2)) if (Cld_Flag == sym%YES) then -! allocate(Pc_EM(dim1,dim2)) -! allocate(Tc_EM(dim1,dim2)) -! allocate(Zc_EM(dim1,dim2)) -! allocate(Ec_EM(dim1,dim2)) -! allocate(N_EM(dim1,dim2)) -! allocate(Res_EM(dim1,dim2)) allocate(Pc_H2O(dim1,dim2)) allocate(Tc_H2O(dim1,dim2)) allocate(Zc_H2O(dim1,dim2)) @@ -3345,12 +3323,6 @@ subroutine RESET_CLOUD_PROD_ARRAYS() Zc_Opaque_Cloud = Missing_Value_Real4 Tc_Opaque_Cloud = Missing_Value_Real4 if (Cld_Flag == sym%YES) then -! Pc_EM = Missing_Value_Real4 -! Tc_EM = Missing_Value_Real4 -! Zc_EM = Missing_Value_Real4 -! Ec_EM = Missing_Value_Real4 -! N_EM = Missing_Value_Real4 -! Res_EM = Missing_Value_Real4 Pc_H2O = Missing_Value_Real4 Tc_H2O = Missing_Value_Real4 Zc_H2O = Missing_Value_Real4 @@ -3378,12 +3350,6 @@ subroutine DESTROY_CLOUD_PROD_ARRAYS() deallocate(Zc_Opaque_Cloud) deallocate(Tc_Opaque_Cloud) if (Cld_Flag == sym%YES) then -! deallocate(Pc_EM) -! deallocate(Tc_EM) -! deallocate(Zc_EM) -! deallocate(Ec_EM) -! deallocate(N_EM) -! deallocate(Res_EM) deallocate(Pc_H2O) deallocate(Tc_H2O) deallocate(Zc_H2O) diff --git a/main_src/pixel_routines_mod.f90 b/main_src/pixel_routines_mod.f90 index 3341fb21c31c95aaa42999d0b5b1309e79d62264..fef2964ffc714b56cc8984f2615e72ddd12036f9 100644 --- a/main_src/pixel_routines_mod.f90 +++ b/main_src/pixel_routines_mod.f90 @@ -40,7 +40,7 @@ module PIXEL_ROUTINES_MOD use CONSTANTS_MOD, only: & missing_value_real4 & , sym , int1, int2, exe_prompt & - , real4, missing_value_int1, int4, mixed_obs_type, NChan_Clavrx, SOLAR_OBS_TYPE & + , real4, missing_value_int1, missing_value_int2, int4, mixed_obs_type, NChan_Clavrx, SOLAR_OBS_TYPE & , THERMAL_OBS_TYPE, PI, terminator_reflectance_sol_zen_thresh, DTOR use ALGORITHM_CONSTANTS_MOD,only: glint_zen_thresh, Ref_Sfc_White_Sky_Water @@ -99,6 +99,8 @@ module PIXEL_ROUTINES_MOD use ECM2_CLOUD_MASK_CLAVRX_BRIDGE, only: COMPUTE_TYPE_FROM_PHASE + use CLAVRX_MESSAGE_MOD, only: MESG, verb_lev + !use RT_UTILITIES_MOD, only: COMPUTE_CLEAR_SKY_SCATTER implicit none @@ -745,8 +747,10 @@ end subroutine QUALITY_CONTROL_ANCILLARY_DATA tsfc_onechannel = .false. end if - if ( first_segment) write(*,*) 'tsfc_onechannel = ', tsfc_onechannel - + if ( first_segment) then + if (tsfc_onechannel) call MESG ('tsfc_onechannel TRUE', level = verb_lev %DEFAULT) + if ( .not. tsfc_onechannel) call MESG ('tsfc_onechannel FALSE', level = verb_lev %DEFAULT) + end if !--- initialize Tsfc_Retrieved = Missing_Value_Real4 Trad_Retrieved = Missing_Value_Real4 @@ -759,7 +763,7 @@ end subroutine QUALITY_CONTROL_ANCILLARY_DATA end if else if (tsfc_onechannel) then - if ( first_segment) print*, 'LST Retrieval with single channel method ' + if ( first_segment) call MESG ('LST Retrieval with single channel method ', level = verb_lev %DEFAULT) !--- if no ch31, abort if (Sensor%Chan_On_Flag_Default(31) == sym%NO) then return @@ -1397,7 +1401,9 @@ subroutine READ_MODIS_WHITE_SKY_ALBEDO(modis_alb_id,modis_alb_str,Ref_Sfc_White_ CALL READ_LAND_SFC_HDF(modis_alb_id, modis_alb_str, Nav%Lat, & Nav%Lon, Geo%Space_Mask, raw) - Ref_Sfc_White_Sky = 0.1* raw + where(raw /= Missing_Value_Int2) + Ref_Sfc_White_Sky = 0.1* raw + endwhere !----> Ref_Sfc_White_Sky = 1.10*Ref_Sfc_White_Sky !EMPIRICAL ADJUSTMENT @@ -1503,6 +1509,7 @@ subroutine MODIFY_LAND_CLASS_WITH_NDVI(Line_Idx_Min,Num_Lines) if (Sensor%WMO_ID == 174) return if (Sensor%WMO_ID == 270) return if (Sensor%WMO_ID == 271) return + if (Sensor%WMO_ID == 272) return if (Sensor%WMO_ID == 530) return Elem_Idx_Min = 1 diff --git a/main_src/process_clavrx.f90 b/main_src/process_clavrx.f90 index b8ef377369616668dae98d687f2ba739b44355c0..f763b38c1cb5ba271f271403960f44e272fa6efe 100644 --- a/main_src/process_clavrx.f90 +++ b/main_src/process_clavrx.f90 @@ -165,13 +165,7 @@ use CX_REAL_BOOLEAN_MOD - use CONSTANTS_MOD !, only: & - ! int4, real4 & - ! , int1, int2 & - ! , missing_value_int4 & - ! , sym, DTOR & - ! , MODIS_ALB_0_86_SDS_NAME & - ! , MODIS_ALB_0_66_SDS_NAME + use CONSTANTS_MOD use CX_DATE_TIME_TOOLS_MOD, only: & LEAP_YEAR_FCT & @@ -211,8 +205,7 @@ COMPUTE_LUNAR_REFLECTANCE use DNCOMP_CLAVRX_BRIDGE_MOD, only: & - AWG_CLOUD_DNCOMP_ALGORITHM & - , set_dcomp_version + AWG_CLOUD_DNCOMP_ALGORITHM use FILE_TOOLS, only: FILE_TEST, GETLUN @@ -296,9 +289,6 @@ , NUCAPS & , CLDMASK & , NWP_PIX & - !, Diag_Pix_Array_1 & - !, Diag_Pix_Array_2 & - !, Diag_Pix_Array_3 & ! - routines , Destroy_Pixel_Arrays & , Create_Pixel_Arrays & @@ -515,6 +505,8 @@ SET_ABI_USE_104um_FLAG use CX_VGAC_MOD, only: + + use cleanup, only: cleanup_tempdir implicit none @@ -612,8 +604,8 @@ integer :: narg,cptArg character(len=30) :: arg_name - !real, parameter, dimension(3):: Dnb_Coef = [-0.373685,0.977945,-0.000261637] real, parameter, dimension(3):: Dnb_Coef = [-0.118767,0.962452,-0.000144502] + integer*8, parameter :: SIG_ERR = -1 !*********************************************************************** @@ -638,7 +630,7 @@ end do end if - + call MESG( '<---------- Start of CLAVRXORB ----------> $Id: process_clavrx.f90 4129 2021-04-19 19:30:41Z heidinger $' & , level = verb_lev % DEFAULT , color = 4 ) write(string,*)"Compiled on ",__DATE__//' '//__TIME__ @@ -670,6 +662,21 @@ !--- make directory for temporary files created during this run call system("mkdir "//trim(Temporary_Data_Dir)) + ! SIGTERM + + CALL SIGNAL(15, cleanup_tempdir, ierror) + if(ierror .ne. 0) then + print*, 'Error setting up SIGTERM handler' + stop 124 + endif + ! SIGINT + CALL SIGNAL(2, cleanup_tempdir, ierror) + if(ierror .eq. SIG_ERR) then + print*, 'Error setting up SIGINT handler' + stop 125 + endif + + !************************************************************************* ! Marker: Open high spatial resolution ancillary data files @@ -737,12 +744,14 @@ Erstat = 8 call MESG( "ERROR: Problem reading orbit names from control file" & , level = verb_lev % QUIET , color = 1 ) + call cleanup_tempdir() stop 8 else !-- end of orbits if (File_Number == 1) then call MESG( "ERROR: No orbits to process, stopping" , level = verb_lev % QUIET , color = 1 ) - stop + call cleanup_tempdir() + stop 404 endif exit endif @@ -896,12 +905,6 @@ ! Marker: READ IN SENSOR-SPECIFIC CONSTANTS !************************************************************************* - !if (Sensor%Wmo_Id == 271) call SET_ABI_USE_104um_FLAG(ABI_Use_104um_Flag, File_Number) - - !--- DEBUG ONLY - !ABI_Use_104um_Flag = .true. - !--- DEBUG ONLY - !************************************************************************* ! Marker: Open non-static high spatial resolution ancillary data !************************************************************************* @@ -1574,7 +1577,7 @@ !--- Dust Mask if (Use_ABI_Dust == sym%YES) then - if (Sensor%WMO_Id == 270 .or. Sensor%WMO_Id == 271) then + if (Sensor%WMO_Id == 270 .or. Sensor%WMO_Id == 271 .or. Sensor%WMO_Id == 272) then CLDMASK%Dust_Mask = sym%NO call GET_SEGMENT_ABI_DUST_PROB() endif @@ -1746,8 +1749,8 @@ if (DCOMP_Mode > 0) then - call AWG_CLOUD_DNCOMP_ALGORITHM( Iseg_In = Segment_Number , algorithm_started = dcomp_run) - call SET_DCOMP_VERSION() + call AWG_CLOUD_DNCOMP_ALGORITHM( Iseg_In = Segment_Number , algorithm_started = dcomp_run, version = dcomp_version ) + !call COMPUTE_SUBPIXEL_MAX_MIN_COD() @@ -1924,7 +1927,6 @@ call MESG ( "Finished Processing All Orbital Segments") call MESG ( " ") - !************************************************************************* ! Marker: Close output pixel-level files !************************************************************************* @@ -1945,6 +1947,7 @@ call MESG("DESTROY RTTOV_EMIS ") endif #endif + !************************************************************************* !Marker: Deallocate remaining arrays !************************************************************************* diff --git a/main_src/rt_utilities_mod.f90 b/main_src/rt_utilities_mod.f90 index e84831cf5d45eff8031da36804d2bcf2216c3567..8e699f1f01b0be186a5cb750516f3ed8cd77e5ea 100644 --- a/main_src/rt_utilities_mod.f90 +++ b/main_src/rt_utilities_mod.f90 @@ -128,7 +128,7 @@ module RT_UTILITIES_MOD SOLAR_CH20_NU use RTM_COMMON_MOD, only: & - Nlevels_Rtm & + NLEVELS_RTM & , Rtm & , P_Std_Rtm & , T_Std_Rtm & @@ -162,7 +162,7 @@ module RT_UTILITIES_MOD public:: GET_PIXEL_NWP_RTM - integer, parameter, public:: Rtm_Nvzen = 50 + integer, parameter, public:: RTM_NVZEN = 50 integer, parameter :: Chan_Idx_Min = 1 integer, parameter :: Chan_Idx_Max = 44 @@ -217,8 +217,8 @@ contains real:: Opd_Layer real:: Trans_Layer real:: Trans_Total - real :: trans_local (101) - real :: t_prof_local(101) + real :: trans_local (NLEVELS_RTM) + real :: t_prof_local(NLEVELS_RTM) !--- upwelling profiles @@ -307,6 +307,8 @@ contains ! Called in process_clavrx ! CHANGED to RTTOV Sep 2020 ! + ! This is called in + ! ! !==================================================================== subroutine GET_PIXEL_NWP_RTM(Line_Idx_Min,Num_Lines) @@ -333,7 +335,7 @@ contains integer :: n_val_pixels integer :: ii_pixel real :: geo_2way_term - integer :: cnt + real, dimension(NLevels_Rtm) :: & T_Prof_Rtm, & @@ -342,8 +344,29 @@ contains Ozmr_Prof_Rtm, & Tpw_Prof_Rtm - - cnt = 0 + + + logical, allocatable :: is_valid_pixel(:,:) + + + ! =================== EXECUTABLE START ====================================== + + allocate ( is_valid_pixel (1:Image%Number_Of_Elements,Line_Idx_Min: (Num_Lines + Line_Idx_Min - 1))) + ! make a check if we have at least one pixel which is not bad or space + is_valid_pixel = Bad_Pixel_Mask .NE. sym%YES .and. .not. Geo%Space_Mask + + + + if ( .not. ANY ( is_valid_pixel)) then + + !call MESG('only bad pixels at RTM entree point ...',level = verb_lev %DEFAULT) + return + + end if + + + + ! - find RTM pixels from NWP and allocate rtm (lon,lat) % d (zen) ) ! these pixels are the used for RTTOV !--- loop over pixels in segment @@ -352,7 +375,7 @@ contains if (Bad_Pixel_Mask(Elem_Idx,Line_Idx) == sym%YES) cycle if (Geo%Space_Mask(Elem_Idx,Line_Idx) ) cycle - + !--- compute viewing zenith bin for Rtm calculation Zen_Idx_Rtm(Elem_Idx,Line_Idx) = & max(1,min(Rtm_Nvzen,ceiling(Geo%Coszen(Elem_Idx,Line_Idx)/Rtm_Vza_Binsize))) @@ -448,24 +471,36 @@ contains rtm_inp % ancil_path = trim(Ancil_Data_Dir) n_val_pixels = 0 ! counter nwp_size_arr = shape(rtm) + do x_nwp = 1, nwp_size_arr(1) do y_nwp =1, nwp_size_arr(2) if ( rtm(x_nwp,y_nwp) % is_allocated ) then - - do z_nwp =1,50 + + do z_nwp =1,RTM_NVZEN if ( rtm(x_nwp,y_nwp) % d(z_nwp) % is_allocated ) n_val_pixels = n_val_pixels + 1 end do + end if end do end do ! print*,'Number of needed RTTOV/PFAAST Clear-Sky Transmission calculations: ',n_val_pixels + ! - useless in n_val_pixels is 0 + + if ( n_val_pixels .eq. 0) then + print*, 'Number of needed RTM pixels is ZERO ...' + print*, ' check file and line ', __FILE__, __LINE__ + print*, ' this is an error this should not appear' + print*,'please inform andi.walther@ssec.wisc.edu' + stop - allocate (rtm_inp % p_std( 101,n_val_pixels)) - allocate (rtm_inp % t_prof( 101,n_val_pixels)) - allocate (rtm_inp % w_prof( 101,n_val_pixels)) - allocate (rtm_inp % o_prof( 101,n_val_pixels)) - allocate (rtm_inp % tpw_prof( 101,n_val_pixels)) + end if + + allocate (rtm_inp % p_std( NLEVELS_RTM,n_val_pixels)) + allocate (rtm_inp % t_prof( NLEVELS_RTM,n_val_pixels)) + allocate (rtm_inp % w_prof( NLEVELS_RTM,n_val_pixels)) + allocate (rtm_inp % o_prof( NLEVELS_RTM,n_val_pixels)) + allocate (rtm_inp % tpw_prof( NLEVELS_RTM,n_val_pixels)) allocate (rtm_inp % sat_bin( n_val_pixels)) ! - populate RTTOV input @@ -473,7 +508,7 @@ contains do x_nwp = 1, nwp_size_arr(1) do y_nwp =1, nwp_size_arr(2) if ( rtm(x_nwp,y_nwp) % is_allocated ) then - do z_nwp =1,50 + do z_nwp =1,RTM_NVZEN if ( rtm(x_nwp,y_nwp) % d(z_nwp) % is_allocated ) then n_val_pixels = n_val_pixels + 1 @@ -497,12 +532,12 @@ contains select case ( ch(Chan_Idx)%Obs_Type ) case ( SOLAR_OBS_TYPE) - allocate ( trans_prof_rtm_chn (101,n_val_pixels) ) + allocate ( trans_prof_rtm_chn (NLEVELS_RTM,n_val_pixels) ) do ii_pixel = 1, n_val_pixels call SOLAR_TRANS(rtm_inp % tpw_prof(:, ii_pixel),chan_idx,rtm_inp % sat_bin( ii_pixel),trans_profile, error_status) - trans_prof_rtm_chn (:,ii_pixel) = Trans_profile ** Gamma_Factor(Chan_Idx) + trans_prof_rtm_chn (:,ii_pixel) = Trans_profile end do @@ -529,7 +564,7 @@ contains do x_nwp = 1, nwp_size_arr(1) do y_nwp =1,nwp_size_arr(2) if ( rtm(x_nwp,y_nwp) % is_allocated ) then - do z_nwp =1,50 + do z_nwp =1,RTM_NVZEN if ( rtm(x_nwp,y_nwp) % d(z_nwp) % is_allocated ) then ii_pixel = ii_pixel + 1 rtm(x_nwp,y_nwp) % d(z_nwp) % ch(chan_idx) % Trans_Atm_Profile & @@ -933,6 +968,9 @@ contains case(271) !GOES-17 Sensor_Name_Rtm = 'GOES-17' + case(272) !GOES-18 + Sensor_Name_Rtm = 'GOES-18' + case(706) !NOAA-6 Sensor_Name_Rtm = 'AVHRR-NOAA06' @@ -1531,9 +1569,6 @@ contains ch(Chan_Idx)%Rad_Toa_Clear(Elem_Idx,Line_Idx), & Rtm(Lon_Idx,Lat_Idx)%d(Zen_Idx)%ch(Chan_Idx)%Rad_BB_Cloud_Profile(Lev_Bnd)) - !if (isnan(ch(Chan_Idx)%Emiss_Tropo(Elem_Idx,Line_Idx))) then - ! print *, "Nan in emiss_tropo ", chan_idx, ch(Chan_Idx)%Rad_Toa_Clear(Elem_Idx,Line_Idx) - !endif end if end select end do diff --git a/main_src/sensor_mod.f90 b/main_src/sensor_mod.f90 index e063421ec3f0120ad9083f561bd46682b453281d..e9d0de51bf44ac3e8fa4e6ed150672f0765e4e5c 100644 --- a/main_src/sensor_mod.f90 +++ b/main_src/sensor_mod.f90 @@ -7,7 +7,7 @@ ! ! PURPOSE: This module houses routines that apply to multiple sensors ! -! DESCRIPTION: +! DESCRIPTION: ! ! AUTHORS: ! Andrew Heidinger, Andrew.Heidinger@noaa.gov @@ -23,7 +23,7 @@ ! SUPPORT TO USERS. ! ! NOTES: -! +! ! Routines in this module and their purpose: ! ! the routines are called from process_clavrx.f90 in this order @@ -34,7 +34,7 @@ ! READ_INSTR_CONSTANTS() ! READ_LEVEL1B_DATA() ! ... -! ... +! ... ! end loop !-------------------------------------------------------------------------------------- module SENSOR_MOD @@ -67,8 +67,8 @@ module SENSOR_MOD , cloud_mask_aux_read_flag & , WMO_Id_ISCCPNG - - use CALIBRATION_CONSTANTS_MOD,only: & + + use CALIBRATION_CONSTANTS_MOD,only: & planck_a1,planck_a2 & , goes_input_time & , goes_epoch_time & @@ -77,9 +77,9 @@ module SENSOR_MOD , ew_ch20 & , solar_ch20_nu & , planck_nu - + use ALGORITHM_CONSTANTS_MOD,only: - + use CONSTANTS_MOD,only: & real4 & , int1 & @@ -92,9 +92,6 @@ module SENSOR_MOD , DTOR & , EXE_PROMPT - use FILE_TOOLS,only: & - get_lun - use AVHRR_MOD,only: & assign_avhrr_sat_id_num_internal & , define_1b_data & @@ -102,7 +99,7 @@ module SENSOR_MOD , read_avhrr_instr_constants & , read_avhrr_level1b_data & , read_avhrr_level1b_header - + use GOES_MOD, only: & area_struct & , gvar_nav & @@ -116,7 +113,7 @@ module SENSOR_MOD , read_goes_instr_constants & , read_goes_sndr & , read_goes_sndr_instr_constants - + use MODIS_MOD, only : & DETERMINE_MODIS_CLOUD_MASK_FILE & , DETERMINE_MODIS_CLOUD_PRODUCT_FILE & @@ -132,7 +129,7 @@ module SENSOR_MOD use FY4_MOD, only: & READ_FY4_INSTR_CONSTANTS & - , READ_FY4_DATE_TIME & + , READ_FY4_DATE_TIME & , READ_FY4_LEVEL1B_DATA use ABI_MOD, only: & @@ -144,53 +141,53 @@ module SENSOR_MOD read_coms & , read_coms_instr_constants & , read_navigation_block_coms - + use HIRS_FUSION_MOD,only: READ_FUSION_HIRS_INSTR_CONSTANTS, & READ_HIRS_DATA, & REPLACE_AVHRR_WITH_HIRS - + use IFF_CLAVRX_BRIDGE , only : & READ_IFF_DATA & , READ_IFF_VIIRS_INSTR_CONSTANTS & , READ_IFF_AVHRR_INSTR_CONSTANTS & , READ_IFF_DATE_TIME & , GET_IFF_DIMS_BRIDGE - + use MTSAT_MOD, only: & mtsat_xstride & , calibrate_mtsat_dark_composite & , read_mtsat & , read_mtsat_instr_constants & , read_navigation_block_mtsat_fy - + use SEVIRI_MOD, only: & seviri_xstride & , calibrate_seviri_dark_composite & , read_msg_instr_constants & , read_navigation_block_seviri & , read_seviri - + use VIIRS_CLAVRX_BRIDGE , only : & READ_VIIRS_DATE_TIME & , READ_VIIRS_DATA & , GET_NUMBER_OF_SCANS_FROM_VIIRS_BRIDGE & , READ_VIIRS_INSTR_CONSTANTS - + use AHI_CLAVRX_BRIDGE, only: & read_ahi_data - + use VIIRS_NASA_READ_MODULE, only : & READ_VIIRS_NASA_DATE_TIME & , READ_VIIRS_NASA_DATA & , READ_NUMBER_OF_SCANS_VIIRS_NASA & , CHECK_IF_FUSION & , READ_FUSION_INSTR_CONSTANTS - + use VIIRS_NASA_HRES_READ_MOD, only : & READ_VIIRS_NASA_HRES_DATA & , viirs_nasa_hres_config_type - + use FY3D_READ_MODULE, only : & READ_FY3D_DATA & , READ_FY3D_DATE_TIME & @@ -200,12 +197,12 @@ module SENSOR_MOD use CLAVRX_MESSAGE_MOD,only: & mesg & , verb_lev - + use MVCM_READ_MOD, only: & determine_mvcm_name & ,read_mvcm_data - - use SAPF_READ_MOD, only: DETERMINE_SAPF_NAME, READ_SAPF_DATA + + use SAPF_READ_MOD, only: DETERMINE_SAPF_NAME, READ_SAPF_DATA use AHI_MOD @@ -233,30 +230,30 @@ module SENSOR_MOD use CX_NETCDF4_MOD, only: & READ_NETCDF_GLOBAL_ATTRIBUTE & , READ_NETCDF_DIMENSION - + use iso_fortran_env - + implicit none private - public :: SET_DATA_DATE_AND_TIME + public :: SET_DATA_DATE_AND_TIME public :: READ_INSTR_CONSTANTS public :: DETECT_SENSOR_FROM_FILE public :: SET_FILE_DIMENSIONS - public :: READ_LEVEL1B_DATA + public :: READ_LEVEL1B_DATA public :: OUTPUT_SENSOR_TO_SCREEN public :: OUTPUT_IMAGE_TO_SCREEN public :: OUTPUT_PROCESSING_LIMITS_TO_SCREEN public :: SET_SENSOR_CHANNEL_MAPPING private :: COMPUTE_GOES_RU_STATIC_NAV_FILE_NAME - + character(24), parameter, private :: MODULE_PROMPT = " SENSOR_MODULE: " character(38) :: Orbit_Identifier - + character (len = 3), private :: string_3 - + character (len = 6), private :: string_6 character (len = 7), private :: string_7 character (len = 30), private :: string_30 @@ -269,13 +266,13 @@ module SENSOR_MOD subroutine SET_DATA_DATE_AND_TIME(AREAstr) use class_time_date, only: date_type - + use CX_READ_AHI_MOD, only: & ahi_time_from_filename, & ahi_hcast_time_from_filename - + type ( date_type ) :: time0_obj, time1_obj - + ! - this is only needed/used for AVHRR type (AREA_STRUCT), intent(in) :: AREAstr @@ -323,12 +320,12 @@ module SENSOR_MOD integer(kind=int4):: End_Min_Tmp integer(kind=int4):: End_Sec_Tmp integer(kind=int4):: End_Msec_Tmp - + type(date_type) :: time_obj_nasa_hres(2) character(len=15) :: time_identifier integer :: yyyy,doy1,hour1,minu - sensor_search: do + sensor_search: do !---------------------------------------------- ! --- ISCCP-NG L1g files @@ -342,14 +339,14 @@ module SENSOR_MOD Image%End_Doy = End_Day_Tmp Image%Start_Time = Start_Time_Tmp Image%End_Time = End_Time_Tmp - - + + call image % time_start % set_date_with_doy_msec ( Start_Year_Tmp, Start_Day_Tmp & , msec_of_day = Start_Time_Tmp) call image % time_end % set_date_with_doy_msec ( End_Year_Tmp, End_Day_Tmp & , msec_of_day = End_Time_Tmp) - - + + exit endif @@ -368,20 +365,20 @@ module SENSOR_MOD call READ_MODIS_DATE_TIME(trim(Image%Level1b_Path), trim(Image%Level1b_Name), & Start_Year_Tmp, Start_Day_Tmp, Start_Time_Tmp, & End_Year_Tmp, End_Day_Tmp, End_Time_Tmp) - + Image%Start_Year = Start_Year_Tmp Image%End_Year = End_Year_Tmp Image%Start_Doy = Start_Day_Tmp Image%End_Doy = End_Day_Tmp Image%Start_Time = Start_Time_Tmp Image%End_Time = End_Time_Tmp - - + + call image % time_start % set_date_with_doy_msec ( Start_Year_Tmp, Start_Day_Tmp & , msec_of_day = Start_Time_Tmp) call image % time_end % set_date_with_doy_msec ( End_Year_Tmp, End_Day_Tmp & - , msec_of_day = End_Time_Tmp) - + , msec_of_day = End_Time_Tmp) + exit endif @@ -399,12 +396,12 @@ module SENSOR_MOD Image%Start_Doy = Start_Day_Tmp Image%End_Doy = End_Day_Tmp Image%Orbit_Number = Orbit_Number_Tmp - + Image%Start_Time = Start_Time_Tmp Image%End_Time = End_Time_Tmp - + call image % time_start % set_date_with_doy_msec ( Start_Year_Tmp, Start_Day_Tmp & , msec_of_day = Start_Time_Tmp) call image % time_end % set_date_with_doy_msec ( End_Year_Tmp, End_Day_Tmp & @@ -413,21 +410,21 @@ module SENSOR_MOD exit - end if - + end if + if (trim(Sensor%Sensor_Name) == 'VIIRS-NASA-HRES') then - + time_identifier = Image%Level1b_Name(9:23) - + read(time_identifier(3:6),'(i4)') yyyy read(time_identifier(7:9),'(i3)') doy1 read(time_identifier(11:12),'(i2)') hour1 read(time_identifier(13:14),'(i2)') minu - + call time_obj_nasa_hres(1) % set_date_with_doy(yyyy,doy1,hour1,minu) time_obj_nasa_hres(2) = time_obj_nasa_hres(1) call time_obj_nasa_hres(2) % add_time(minute=6) - + Image%Start_Year = time_obj_nasa_hres(1) % year Image%End_Year = time_obj_nasa_hres(2) % year Image%Start_Doy = time_obj_nasa_hres(1) % dayOfYear @@ -436,15 +433,15 @@ module SENSOR_MOD Image%Start_Time = time_obj_nasa_hres(1) % msec_of_day Image%End_Time = time_obj_nasa_hres(2) % msec_of_day - + image % time_start = time_obj_nasa_hres(1) image % time_end = time_obj_nasa_hres(2) - + exit - - end if - + + end if + !---------------------------------------------- ! read VIIRS-NASA time from VGEOM !---------------------------------------------- @@ -461,53 +458,53 @@ module SENSOR_MOD Image%Start_Time = Start_Time_Tmp Image%End_Time = End_Time_Tmp - - + + call image % time_start % set_date_with_doy_msec ( Start_Year_Tmp, Start_Day_Tmp & , msec_of_day = Start_Time_Tmp) call image % time_end % set_date_with_doy_msec ( End_Year_Tmp, End_Day_Tmp & , msec_of_day = End_Time_Tmp) - + exit endif !---------------------------------------------- - ! + ! !---------------------------------------------- !if (index(Sensor%Sensor_Name,'AHI') > 0 .OR. index(Sensor%Sensor_Name,'AHI9') > 0) then if (index(Sensor%Sensor_Name,'AHI') > 0) then - - + + ! Needed since HCAST native is not named the same - WCS3 - IF ((Image%DB_Flag) .AND. (Image%Nc_Format_Flag .EQV. .false.)) THEN + IF ((Image%DB_Flag) .AND. (Image%Nc_Format_Flag .EQV. .false.)) THEN call ahi_hcast_time_from_filename( trim(Image%Level1b_Name) , & time0_obj, time1_obj ) else - + call ahi_time_from_filename ( trim(Image%Level1b_Name) , & time0_obj, time1_obj ) endif - + call time0_obj % get_date ( year = year & , doy = doy & , msec_of_day = Image%Start_Time ) - - call time1_obj % get_date ( msec_of_day = Image%End_Time ) + + call time1_obj % get_date ( msec_of_day = Image%End_Time ) Image%Start_Year = year - Image%Start_Doy = doy + Image%Start_Doy = doy Image%End_Year = year - Image%End_Doy = doy - + Image%End_Doy = doy + image % time_start = time0_obj image % time_end = time1_obj exit endif - + !---------------------------------------------- ! --- VIIRS Subsampled files !---------------------------------------------- @@ -520,12 +517,12 @@ module SENSOR_MOD Image%End_Doy = End_Day_Tmp Image%Start_Time = Start_Time_Tmp Image%End_Time = End_Time_Tmp - + call image % time_start % set_date_with_doy_msec ( Start_Year_Tmp, Start_Day_Tmp & , msec_of_day = Start_Time_Tmp) call image % time_end % set_date_with_doy_msec ( End_Year_Tmp, End_Day_Tmp & , msec_of_day = End_Time_Tmp) - + exit endif @@ -542,13 +539,13 @@ module SENSOR_MOD Image%End_Doy = End_Day_Tmp Image%Start_Time = Start_Time_Tmp Image%End_Time = End_Time_Tmp - + call image % time_start % set_date_with_doy_msec ( Start_Year_Tmp, Start_Day_Tmp & , msec_of_day = Start_Time_Tmp) call image % time_end % set_date_with_doy_msec ( End_Year_Tmp, End_Day_Tmp & , msec_of_day = End_Time_Tmp) - - + + exit endif @@ -565,13 +562,13 @@ module SENSOR_MOD Image%End_Doy = End_Day_Tmp Image%Start_Time = Start_Time_Tmp Image%End_Time = End_Time_Tmp - - + + call image % time_start % set_date_with_doy_msec ( Start_Year_Tmp, Start_Day_Tmp & , msec_of_day = Start_Time_Tmp) call image % time_end % set_date_with_doy_msec ( End_Year_Tmp, End_Day_Tmp & , msec_of_day = End_Time_Tmp) - + exit endif @@ -591,8 +588,8 @@ module SENSOR_MOD Image%Start_Time = Start_Time_Tmp Image%End_Time = End_Time_Tmp - - + + call image % time_start % set_date_with_doy_msec ( Start_Year_Tmp, Start_Day_Tmp & , msec_of_day = Start_Time_Tmp) call image % time_end % set_date_with_doy_msec ( End_Year_Tmp, End_Day_Tmp & @@ -616,13 +613,13 @@ module SENSOR_MOD Image%End_Doy = End_Day_Tmp Image%Start_Time = Start_Time_Tmp Image%End_Time = End_Time_Tmp - - + + call image % time_start % set_date_with_doy_msec ( Start_Year_Tmp, Start_Day_Tmp & , msec_of_day = Start_Time_Tmp) call image % time_end % set_date_with_doy_msec ( End_Year_Tmp, End_Day_Tmp & , msec_of_day = End_Time_Tmp) - + exit endif @@ -645,25 +642,25 @@ module SENSOR_MOD Image%End_Year = Image%Start_Year Image%Start_Doy = AREAstr%img_Date - (Image%Start_Year - 1900) * 1000 Image%End_Doy = Image%Start_Doy - hour = AREAstr%img_Time / 10000 + hour = AREAstr%img_Time / 10000 minute = (AREAstr%img_Time - hour * 10000) / 100 second = (AREAstr%img_Time - hour * 10000 - minute * 100) / 100 Image%Start_Time = ((hour * 60 + minute) * 60 + second) * 1000 !millisec Image%End_Time = Image%Start_Time - - + + call image % time_start % set_date_with_doy ( 1900 + int(AREAstr%img_Date / 1000), AREAstr%img_Date - (Image%Start_Year - 1900) * 1000 & , hour = hour, minute = minute, second = second ) call image % time_end % set_date_with_doy ( 1900 + int(AREAstr%img_Date / 1000), AREAstr%img_Date - (Image%Start_Year - 1900) * 1000 & , hour = hour, minute = minute, second = second ) - + endif if (.not. Image%Area_Format_Flag) then Image%Mixed_Resolution_Flag = .true. - Image%Static_Nav_Flag = .true. + Image%Static_Nav_Flag = .true. !--- check if GOES ABI static navigation. !--- 2018-05-14T18:30:40.5Z @@ -714,7 +711,7 @@ module SENSOR_MOD endif exit - + end if print *, "Sensor not found in time, stopping" @@ -752,7 +749,7 @@ module SENSOR_MOD call mesg ( "Satellite = "//trim(Sensor%Platform_Name), level = verb_lev % DEFAULT) call mesg ( "Sensor = "//trim(Sensor%Sensor_Name), level = verb_lev % DEFAULT) - write(string_3,'(i3)' ) Sensor%WMO_ID + write(string_3,'(i3)' ) Sensor%WMO_ID call mesg ( "Spacecraft WMO number = "//trim(string_3) , level = verb_lev % DEFAULT) write ( string_6,'(i6)') Sensor%Spatial_Resolution_Meters @@ -778,7 +775,7 @@ module SENSOR_MOD write ( string_3,'(i3)') AVHRR_AAPP_FLAG call mesg ( "AVHRR AAPP Flag = "//string_3, level = verb_lev % DEFAULT) - + end if end subroutine OUTPUT_SENSOR_TO_SCREEN @@ -949,7 +946,7 @@ module SENSOR_MOD call READ_FUSION_HIRS_INSTR_CONSTANTS(trim(Ancil_Data_Dir)//"static/clavrx_constant_files/"//trim('hirs_18_instr.dat')) endif if (index(trim(Sensor%Instr_Const_File),'avhrr_19_instr.dat') > 0) then - call READ_FUSION_HIRS_INSTR_CONSTANTS(trim(Ancil_Data_Dir)//"static/clavrx_constant_files/"//trim('hirs_19_instr.dat')) + call READ_FUSION_HIRS_INSTR_CONSTANTS(trim(Ancil_Data_Dir)//"static/clavrx_constant_files/"//trim('hirs_19_instr.dat')) endif if (index(trim(Sensor%Instr_Const_File),'avhrr_2_instr.dat') > 0) then call READ_FUSION_HIRS_INSTR_CONSTANTS(trim(Ancil_Data_Dir)//"static/clavrx_constant_files/"//trim('hirs_2_instr.dat')) @@ -967,11 +964,11 @@ module SENSOR_MOD ! output is sesnorname and platform name ! ! - ! AVHRR + ! AVHRR ! sensors: AVHRR-1, AVHRR-2, AVHRR-3 ! platforms: NOAA-5 - NOAA-19, METOP-A - METOP-C ! spatial_resolution: 1.1, 4 - ! + ! ! GOES ! sensors: GOES-IL-IMAGER, GOES-MP-IMAGER, GOES-IP-SOUNDER ! platforms: GOES-8 - GOES-15 @@ -981,7 +978,7 @@ module SENSOR_MOD ! sensors: SEVIRI ! platform: Meteosat-8 - Meteosat-11 ! spatial_resolution: 3 - ! + ! ! MTSAT ! sensors: MTSAT-IMAGER ! platform: MTSAT-1R, MTSAT-2 @@ -1001,7 +998,7 @@ module SENSOR_MOD ! sensors: VIIRS, VIIRS-NASA, VIIRS-IFF ! platform: SNPP ! spatial_resolution: 0.75 - ! + ! ! ! Output: The sensor structure which is global does not appear as an argument !-------------------------------------------------------------------------------------------------- @@ -1037,6 +1034,11 @@ module SENSOR_MOD Image%Static_Nav_Flag = .false. Image%DB_Flag = .false. + !------------------------------------------------------------------------- + !-- Initialize AREAstr Structure + !------------------------------------------------------------------------- + AREAstr%Version_Num = 1 + !------------------------------------------------------------------------- !-- Loop through tests for each file type, if not found assume avhrr !------------------------------------------------------------------------- @@ -1044,7 +1046,7 @@ module SENSOR_MOD ifound = sym%NO test_loop: do while (ifound == sym%NO) - + !--- HIMAWARI-8 AHI Test if (index(Image%Level1b_Name, 'HS_H08') > 0) then @@ -1058,21 +1060,21 @@ module SENSOR_MOD Static_Nav_File = 'himawari_central_ahi_fulldisk_static_nav.nc' Image%Area_Format_Flag = .false. Image%Nc_Format_Flag = .false. - + !Done for netCDF files - WCS3 if (index(Image%Level1b_Name, '.nc') > 1) then Image%Nc_Format_Flag = .true. call READ_NETCDF_DIMENSION(trim(Image%Level1b_Full_Name), 'x', Image%Number_Of_Elements) call READ_NETCDF_DIMENSION(trim(Image%Level1b_Full_Name), 'y', Image%Number_Of_Lines) endif - + !Done for HSD files - WCS3 if (index(Image%Level1b_Name, '.nc') < 1) then #ifdef LIBHIM Image%Nc_Format_Flag = .false. - !For HSD, we will always do static nav. Because of that, we don't need - ! Image%Number_Of_Elements and Image%Number_Of_Lines. These are determined - ! in DETERMINE_BOUNDS_STATIC_NAV for a given segment of data + !For HSD, we will always do static nav. Because of that, we don't need + ! Image%Number_Of_Elements and Image%Number_Of_Lines. These are determined + ! in DETERMINE_BOUNDS_STATIC_NAV for a given segment of data #else call MESG( "LibHimawari not installed. Cannot process HSD. Stopping", level = verb_lev % ERROR , color = 4 ) stop @@ -1083,7 +1085,7 @@ module SENSOR_MOD Image%Mixed_Resolution_Flag = .true. Image%Static_Nav_Flag = .true. - + exit test_loop endif @@ -1100,21 +1102,21 @@ module SENSOR_MOD Static_Nav_File = 'himawari_central_ahi_fulldisk_static_nav.nc' Image%Area_Format_Flag = .false. Image%Nc_Format_Flag = .false. - + !Done for netCDF files - WCS3 if (index(Image%Level1b_Name, '.nc') > 1) then Image%Nc_Format_Flag = .true. call READ_NETCDF_DIMENSION(trim(Image%Level1b_Full_Name), 'x', Image%Number_Of_Elements) call READ_NETCDF_DIMENSION(trim(Image%Level1b_Full_Name), 'y', Image%Number_Of_Lines) endif - + !Done for HSD files - WCS3 if (index(Image%Level1b_Name, '.nc') < 1) then #ifdef LIBHIM Image%Nc_Format_Flag = .false. - !For HSD, we will always do static nav. Because of that, we don't need - ! Image%Number_Of_Elements and Image%Number_Of_Lines. These are determined - ! in DETERMINE_BOUNDS_STATIC_NAV for a given segment of data + !For HSD, we will always do static nav. Because of that, we don't need + ! Image%Number_Of_Elements and Image%Number_Of_Lines. These are determined + ! in DETERMINE_BOUNDS_STATIC_NAV for a given segment of data #else call MESG( "LibHimawari not installed. Cannot process HSD. Stopping", level = verb_lev % ERROR , color = 4 ) stop @@ -1122,10 +1124,10 @@ module SENSOR_MOD endif !END - WCS3 - + Image%Mixed_Resolution_Flag = .true. Image%Static_Nav_Flag = .true. - + exit test_loop endif @@ -1172,9 +1174,9 @@ module SENSOR_MOD Image%Static_Nav_Flag = .true. Image%Nc_Format_Flag = .false. call MESG( "HCAST DATA", level = verb_lev % ERROR , color = 4 ) - !For HSD, we will always do static nav. Because of that, we don't need - ! Image%Number_Of_Elements and Image%Number_Of_Lines. These are determined - ! in DETERMINE_BOUNDS_STATIC_NAV for a given segment of data + !For HSD, we will always do static nav. Because of that, we don't need + ! Image%Number_Of_Elements and Image%Number_Of_Lines. These are determined + ! in DETERMINE_BOUNDS_STATIC_NAV for a given segment of data #else call MESG( "LibHimawari not installed. Cannot process HSD. Stopping", level = verb_lev % ERROR , color = 4 ) stop @@ -1204,9 +1206,9 @@ module SENSOR_MOD ABI_Use_104um_Flag = .false. exit test_loop endif - - - + + + !--- GOES-16 ABI Static Nav Test FD HIGH RES processing if (index(Image%Level1b_Name, 'OR_ABI-L1b-RadC') > 0 .AND. INDEX(trim(Image%Level1b_Name), 'G16') > 0 & .AND. INDEX(trim(Image%Level1b_Name) , '_HIGH_RES_') > 0 ) then @@ -1221,11 +1223,11 @@ module SENSOR_MOD Image%Static_Nav_Flag = .true. Image%Mixed_Resolution_Flag = .true. Image%Area_Format_Flag = .false. - Image%Nc_Format_Flag = .true. + Image%Nc_Format_Flag = .true. exit test_loop endif - - + + !--- GOES-16 ABI Static Nav Test FD HIGH RES processing if (index(Image%Level1b_Name, 'OR_ABI-L1b-RadF') > 0 .AND. INDEX(trim(Image%Level1b_Name), 'G16') > 0 & .AND. INDEX(trim(Image%Level1b_Name) , '_HIGH_RES_') > 0 ) then @@ -1240,16 +1242,16 @@ module SENSOR_MOD Image%Static_Nav_Flag = .true. Image%Mixed_Resolution_Flag = .true. Image%Area_Format_Flag = .false. - Image%Nc_Format_Flag = .true. + Image%Nc_Format_Flag = .true. Image%Number_Of_Lines = 21696 Image%Number_Of_Elements = 21696 exit test_loop endif - + !--- GOES-17 ABI Static Nav Test if (index(Image%Level1b_Name, 'OR_ABI') > 0 .and. INDEX(trim(Image%Level1b_Name), 'G17') > 0 & - .AND. .NOT. INDEX(trim(Image%Level1b_Name) , '_HIGH_RES_') > 0 ) then + .AND. .NOT. INDEX(trim(Image%Level1b_Name) , '_HIGH_RES_') > 0 ) then Sensor%Sensor_Name = 'GOES-RU-IMAGER' Sensor%Platform_Name = 'GOES-17' Sensor%Spatial_Resolution_Meters = 2000 @@ -1265,7 +1267,7 @@ module SENSOR_MOD ABI_Use_104um_Flag = .false. exit test_loop endif - + !--- GOES-17 ABI Static Nav Test if (index(Image%Level1b_Name, 'OR_ABI') > 0 .and. INDEX(trim(Image%Level1b_Name), 'G17') > 0 & .AND. INDEX(trim(Image%Level1b_Name) , '_HIGH_RES_') > 0 ) then @@ -1285,6 +1287,24 @@ module SENSOR_MOD exit test_loop endif + !--- GOES-18 ABI Static Nav Test + if (index(Image%Level1b_Name, 'OR_ABI') > 0 .and. INDEX(trim(Image%Level1b_Name), 'G18') > 0 & + .AND. .NOT. INDEX(trim(Image%Level1b_Name) , '_HIGH_RES_') > 0 ) then + Sensor%Sensor_Name = 'GOES-RU-IMAGER' + Sensor%Platform_Name = 'GOES-18' + Sensor%Spatial_Resolution_Meters = 2000 + Sensor%WMO_Id = 272 + Sensor%Instr_Const_File = 'goes_18_instr.dat' + Sensor%Geo_Sub_Satellite_Longitude = -137.2 ! -137.2 - not projection sub-point + Sensor%Geo_Sub_Satellite_Latitude = 0.0 + call COMPUTE_GOES_RU_STATIC_NAV_FILE_NAME() + Image%Static_Nav_Flag = .true. + Image%Mixed_Resolution_Flag = .true. + Image%Area_Format_Flag = .false. + Image%Nc_Format_Flag = .true. !added in to make sure that static nav will run due to HSD test - WCS3 + ABI_Use_104um_Flag = .false. + exit test_loop + endif !--- FY-4a AGRI Test if (index(Image%Level1b_Name, 'FY4A') > 0) then @@ -1296,14 +1316,14 @@ module SENSOR_MOD Sensor%Geo_Sub_Satellite_Longitude = 105.0 Sensor%Geo_Sub_Satellite_Latitude = 0.0 Static_Nav_File = 'fy4_static_nav_fulldisk.nc' - call READ_NETCDF_GLOBAL_ATTRIBUTE(trim(Image%Level1b_Full_Name),'RegWidth', Image%Number_Of_Elements) - call READ_NETCDF_GLOBAL_ATTRIBUTE(trim(Image%Level1b_Full_Name),'RegLength', Image%Number_Of_Lines) + call READ_NETCDF_GLOBAL_ATTRIBUTE(trim(Image%Level1b_Full_Name),'RegWidth', Image%Number_Of_Elements) + call READ_NETCDF_GLOBAL_ATTRIBUTE(trim(Image%Level1b_Full_Name),'RegLength', Image%Number_Of_Lines) Image%Area_Format_Flag = .false. Image%Mixed_Resolution_Flag = .false. Image%Static_Nav_Flag = .true. exit test_loop endif - + !--- MODIS Test if (index(Image%Level1b_Name, 'MYD021KM') > 0) then Sensor%Sensor_Name = 'MODIS' @@ -1391,12 +1411,12 @@ module SENSOR_MOD !--- based on McIdas Id, set sensor struc parameters select case(AREAstr%Sat_Id_Num) - + !test for SEVIRI case (51:53,354) Sensor%Sensor_Name = 'SEVIRI' Sensor%Spatial_Resolution_Meters = 3000 - + if (AREAstr%Sat_Id_Num == 51) then Sensor%Platform_Name = 'Meteosat-8' Sensor%WMO_Id = 55 @@ -1607,7 +1627,7 @@ module SENSOR_MOD endif !--- VIIRS SNPP - if (index(Image%Level1b_Name, 'GMTCO_npp') > 0) then + if (index(Image%Level1b_Name, 'GMTCO_npp') > 0) then Sensor%Sensor_Name = 'VIIRS' Sensor%Spatial_Resolution_Meters = 750 Sensor%Platform_Name = 'SNPP' @@ -1616,7 +1636,7 @@ module SENSOR_MOD exit test_loop endif - !--- NPP/JPSS IFF + !--- NPP/JPSS IFF if (index(Image%Level1b_Name, 'IFFSDR_npp') > 0 .or. & index(Image%Level1b_Name, 'IFFSVM_npp') > 0 .or. & index(Image%Level1b_Name, 'IFF_npp') > 0) then @@ -1645,8 +1665,8 @@ module SENSOR_MOD Sensor%Instr_Const_File = 'viirs_npp_instr.dat' exit test_loop endif - - + + !--- VIIRS-NASA SNPP HIGH RES if (index(Image%Level1b_Name, 'VNP02MOD') > 0 .and. & index(Image%Level1b_Name, 'highres') > 0) then @@ -1656,11 +1676,11 @@ module SENSOR_MOD Sensor%WMO_Id = 224 ! - check if it is FUSION Sensor%Fusion_Flag = .false. - + Sensor%Instr_Const_File = 'viirs_npp_instr.dat' exit test_loop endif - + !--- VIIRS NOAA-20 (JPSS-1) if (index(Image%Level1b_Name, 'GMTCO_j01') > 0) then Sensor%Sensor_Name = 'VIIRS' @@ -1689,7 +1709,7 @@ module SENSOR_MOD endif !--- VGAC NOAA-20 - if (index(Image%Level1b_Name, 'VGAC_VJ1') > 0) then + if (index(Image%Level1b_Name, 'VGAC_VJ1') > 0) then Sensor%Sensor_Name = 'VGAC' Sensor%Spatial_Resolution_Meters = 3900 Sensor%Platform_Name = 'NOAA-20' @@ -1935,7 +1955,7 @@ module SENSOR_MOD endif - + !------------------------------------------------------------------------------- !---if sensor not detected, assume AVHRR !------------------------------------------------------------------------------- @@ -1953,16 +1973,16 @@ module SENSOR_MOD else Sensor%Spatial_Resolution_Meters = 1000 endif - + if ( AVHRR_Fusion_Flag) then sensor % sensor_name = 'AVHRR-FUSION' - end if - + end if + ifound = sym%YES ! force exit need to develop logic for setting Ierror enddo test_loop - + !--------------------------------------------------------------------------------- ! Set sub-satellite point for geostationary satellites that are Areafiles !--------------------------------------------------------------------------------- @@ -2024,22 +2044,22 @@ module SENSOR_MOD if (AREAstr%Version_Num == 4) then !begin valid Areafile test select case(AREAstr%Sat_Id_Num) - + !test for SEVIRI case (51:53,354) ! Read the satellite sub longitude point from the AREA file. call READ_NAVIGATION_BLOCK_SEVIRI(trim(Level1b_Full_Name), AREAstr, NAVstr) - Sensor%Geo_Sub_Satellite_Latitude = NAVstr%sublat + Sensor%Geo_Sub_Satellite_Latitude = NAVstr%sublat Sensor%Geo_Sub_Satellite_Longitude = NAVstr%sublon ! Override the above for the operational sub satellite longitudes. ! Longitude of actual Sub-Satellite Point for Met-8 when it was operational. For Met-8 Indian ! Ocean service, the subpoint from the AREA file is used. - if (AREAstr%Sat_Id_Num == 51 .AND. Year_temp < 2016 ) Sensor%Geo_Sub_Satellite_Longitude = -3.477996 + if (AREAstr%Sat_Id_Num == 51 .AND. Year_temp < 2016 ) Sensor%Geo_Sub_Satellite_Longitude = -3.477996 if (AREAstr%Sat_Id_Num == 52 ) Sensor%Geo_Sub_Satellite_Longitude = -0.159799 ! Longitude of actual Sub-Satellite Point for Met-9 if (AREAstr%Sat_Id_Num == 53 ) Sensor%Geo_Sub_Satellite_Longitude = 0.06 ! Longitude of actual Sub-Satellite Point for Met-10 if (AREAstr%Sat_Id_Num == 354 ) Sensor%Geo_Sub_Satellite_Longitude = 0.26 ! Longitude of actual Sub-Satellite Point for Met-11 AREAstr%Cal_Offset = AREAstr%reserved(3) - + !test for MTSAT case (84,85) !This is needed to determine type of navigation @@ -2047,7 +2067,7 @@ module SENSOR_MOD call READ_NAVIGATION_BLOCK_MTSAT_FY(trim(Level1b_Full_Name), AREAstr, NAVstr) Sensor%Geo_Sub_Satellite_Latitude = NAVstr%sublat Sensor%Geo_Sub_Satellite_Longitude = NAVstr%sublon - + !WCS3 - FY2-D AREA files have the subsat lat/lon flipped. Fix here ! Fix with McIDAS-X is fixed. case (36, 37) @@ -2055,21 +2075,21 @@ module SENSOR_MOD !as Nav coefficents specific to FY2D/E. They are stored in ! the same manner as MTSAT, hence using the same routine call READ_NAVIGATION_BLOCK_MTSAT_FY(trim(Level1b_Full_Name), AREAstr, NAVstr) - + !Some data from BOM has subpoints flipped, so need to fix that IF (NAVstr%sublat .GT. 10.0) THEN - Lat_temp = NAVstr%sublon + Lat_temp = NAVstr%sublon Lon_temp = NAVstr%sublat - + NAVstr%sublon = Lon_temp NAVstr%sublat = Lat_temp - + endif - - + + Sensor%Geo_Sub_Satellite_Latitude = NAVstr%sublat Sensor%Geo_Sub_Satellite_Longitude = NAVstr%sublon - + !test for COMS case (250) !This is needed to determine type of navigation @@ -2090,7 +2110,7 @@ module SENSOR_MOD !--- There will need to be hard coded values for AREA file !--- sub_lon calculations. Currently, the AREA file contains - !--- -75.0. It should be -75.2. + !--- -75.0. It should be -75.2. if ((NAVstr%sublon <= -75.) .AND. (NAVstr%sublon > -80.)) then Sensor%Geo_Sub_Satellite_Latitude = NAVstr%sublat @@ -2100,7 +2120,7 @@ module SENSOR_MOD Sensor%Geo_Sub_Satellite_Latitude = NAVstr%sublat Sensor%Geo_Sub_Satellite_Longitude = NAVstr%sublon endif - + !test for GOES Imagers or Sounders case (70:79,180:185) @@ -2122,10 +2142,10 @@ module SENSOR_MOD endif end subroutine DETERMINE_GEO_SUB_SATELLITE_POSITION - + !--------------------------------------------------------------------------------------------- ! Determine the number of elements (Image%Number_Of_Elements) and Number of Scans (Image%Number_Of_Lines) - ! expected. Also, + ! expected. Also, ! ! the output will be written in global Image structure !--------------------------------------------------------------------------------------------- @@ -2133,8 +2153,8 @@ module SENSOR_MOD use CX_READ_AHI_MOD, only : AHI_SEGMENT_INFORMATION_REGION, AHI_CONFIG_TYPE use file_tools - - + + character(len=*), intent(in) :: Level1b_Full_Name type (AREA_STRUCT), intent(in) :: AREAstr ! AVHRR only integer(kind=int4), intent(out) :: Nrec_Avhrr_Header ! AVHRR only @@ -2144,17 +2164,17 @@ module SENSOR_MOD integer(kind=int4) :: Nword_Clavr_Start integer(kind=int4) :: Ierror_Nscans CHARACTER(len=1020) :: Dir_File - + type ( Ahi_Config_Type ) :: Ahi_Config integer :: Offset(2), count(2) integer :: cc logical :: rel_path = .TRUE. character(len=1024), dimension(1) :: file_v03img character(len=15) :: time_identifier - + Ierror = sym%NO - do + do if (index(Image%Level1b_Name,'ISCCP-NG') > 0) then call READ_NUMBER_OF_SCANS_ISCCPNG(Image%Number_Of_Lines, Image%Number_Of_Elements, Ierror) @@ -2165,15 +2185,15 @@ module SENSOR_MOD call READ_MODIS_SIZE_ATTR(trim(Level1b_Full_Name),Image%Number_Of_Elements,Image%Number_Of_Lines) exit endif - + if (trim(Sensor%Sensor_Name) == 'MODIS-MAC') then Image%Number_Of_Elements = 11 Image%Number_Of_Lines = 2030 exit endif - + if ( trim(Sensor%Sensor_Name) == 'AHI') then - + if (Image%Static_Nav_Flag) then call SETUP_READ_LEVEL1B_FIXED_GRID_STATIC_NAV() else @@ -2182,7 +2202,7 @@ module SENSOR_MOD ahi_config % lon_range =[Nav%Lon_West_Limit,Nav%Lon_East_Limit] ahi_config % lat_range =[Nav%Lat_South_Limit,Nav%Lat_North_Limit] call ahi_segment_information_region ( ahi_config , offset, count ) - + Image%Number_Of_Elements = count(1) Image%Number_Of_Lines = count(2) endif @@ -2190,7 +2210,7 @@ module SENSOR_MOD exit end if - + if (trim(Sensor%Sensor_Name) == 'VIIRS') then Image%Number_Of_Elements = 3200 Dir_File = trim(Image%Level1b_Path) // trim(Image%Level1b_Name) @@ -2216,15 +2236,15 @@ module SENSOR_MOD exit end if - + if (trim(Sensor%Sensor_Name) == 'VIIRS-NASA-HRES') then - + Image%Number_Of_Elements = 6400 - - + + time_identifier = trim(Image%Level1b_Name(9:23)) file_v03img = file_search( trim(Image%Level1b_Path),'VNP03IMG'//trim(time_identifier)//'*.nc',cc,rel_path) - + if ( cc .eq. 0) then print*,'we need V03IMG file ..' return ! skip file @@ -2232,19 +2252,19 @@ module SENSOR_MOD call READ_NUMBER_OF_SCANS_VIIRS_NASA (trim(file_v03img(1)),Image%Number_Of_Lines,Ierror_Nscans) Image%Number_Of_Lines = Image%Number_Of_Lines * 2 - + ! If error reading, then go to next file if (Ierror_Nscans /= 0) then Ierror = sym%YES return ! skips file endif - + exit - + end if if (trim(Sensor%Sensor_Name) == 'VIIRS-NASA') then - + Image%Number_Of_Elements = 3200 Dir_File = trim(Image%Level1b_Path) // trim(Image%Level1b_Name) @@ -2257,7 +2277,7 @@ module SENSOR_MOD endif exit - + endif if (trim(Sensor%Sensor_Name) == 'VGAC') then @@ -2300,32 +2320,32 @@ module SENSOR_MOD endif exit endif - + !--- if an IFF, call routine to determine dimensions from latitude sds if (index(Sensor%Sensor_Name,'IFF') > 0) then call GET_IFF_DIMS_BRIDGE(trim(Image%Level1b_Path)//trim(Image%Level1b_Name),Image%Number_Of_Elements,Image%Number_Of_Lines) exit end if - + !--- AVHRR if (trim(Sensor%Sensor_Name) == 'AVHRR-1' .or. & trim(Sensor%Sensor_Name) == 'AVHRR-2' .or. & trim(Sensor%Sensor_Name) == 'AVHRR-3' .or. & trim(Sensor%Sensor_Name) == 'AVHRR-FUSION') then - + !------------------------------------------------------- ! Determine the type of level 1b file !------------------------------------------------------- call DETERMINE_AVHRR_FILE_TYPE(trim(Level1b_Full_Name),AVHRR_GAC_FLAG,AVHRR_KLM_Flag,AVHRR_AAPP_Flag, & AVHRR_Ver_1b,AVHRR_Data_Type,Byte_Swap_1b,AVHRR_1_Flag) - + !------------------------------------------------------------------- !-- based on file type (AVHRR_KLM_Flag and Gac), determine parameters needed !-- to read in header and data records for this orbit - !------------------------------------------------------------------- + !------------------------------------------------------------------- call DEFINE_1B_DATA(AVHRR_GAC_Flag,AVHRR_KLM_Flag,AVHRR_AAPP_Flag,Nrec_Avhrr_Header, & Nword_Clavr_Start,Nword_Clavr) - + !------------------------------------------------------------------- !-- read in header !------------------------------------------------------------------- @@ -2354,9 +2374,9 @@ module SENSOR_MOD Image%Number_Of_Lines = AREAstr%Num_Line else if (Image%Static_Nav_Flag) then - + call SETUP_READ_LEVEL1B_FIXED_GRID_STATIC_NAV() - + else print *, "ERROR, unknown GOES-RU data" stop @@ -2391,7 +2411,7 @@ module SENSOR_MOD stop - end do !end of send + end do !end of send end subroutine SET_FILE_DIMENSIONS @@ -2415,8 +2435,8 @@ module SENSOR_MOD integer, intent(out):: Ierror_Level1b TYPE(viirs_nasa_hres_config_type) :: nasa_hres_config integer :: i_line - - + + Ierror_Level1b = 0 Cloud_Mask_Aux_Read_Flag = sym%NO @@ -2440,7 +2460,7 @@ module SENSOR_MOD if (Sensor%Chan_On_Flag_Default(1)==sym%YES) then call READ_DARK_COMPOSITE_COUNTS(Segment_Number, Goes_Xstride, & - Dark_Composite_Name,AREAstr,Two_Byte_Temp) + Dark_Composite_Name,AREAstr,Two_Byte_Temp) call CALIBRATE_GOES_DARK_COMPOSITE(Two_Byte_Temp,Time_Since_Launch,Ref_Ch1_Dark_Composite) end if @@ -2462,11 +2482,20 @@ module SENSOR_MOD !--- read auxillary cloud mask and cloud type if (Use_Aux_Flag /= sym%NO_AUX) then - call DETERMINE_SAPF_NAME(Segment_Number) - call READ_SAPF_DATA(Segment_Number) + if (Use_Aux_Flag == sym%USE_AUX_MODAWG ) then + !--- read MVCM cloud mask + call DETERMINE_MVCM_NAME(Segment_Number) + call READ_MVCM_DATA(Segment_Number) + else + call DETERMINE_SAPF_NAME(Segment_Number) + call READ_SAPF_DATA(Segment_Number) + endif end if - else + + + + else print*,'read abi is to installed stopping' stop end if @@ -2477,7 +2506,7 @@ module SENSOR_MOD Image%Start_Doy, Image%Start_Time, & AREAstr) call READ_DARK_COMPOSITE_COUNTS(Segment_Number,Seviri_Xstride, & - Dark_Composite_Name,AREAstr,Two_Byte_Temp) + Dark_Composite_Name,AREAstr,Two_Byte_Temp) call CALIBRATE_SEVIRI_DARK_COMPOSITE(Two_Byte_Temp,Ref_Ch1_Dark_Composite) case('MTSAT-IMAGER') @@ -2486,7 +2515,7 @@ module SENSOR_MOD Time_Since_Launch, & AREAstr,NAVstr) call READ_DARK_COMPOSITE_COUNTS(Segment_Number,Mtsat_Xstride, & - Dark_Composite_Name,AREAstr,Two_Byte_Temp) + Dark_Composite_Name,AREAstr,Two_Byte_Temp) call CALIBRATE_MTSAT_DARK_COMPOSITE(Two_Byte_Temp,Ref_Ch1_Dark_Composite) case('FY2-IMAGER') @@ -2496,7 +2525,7 @@ module SENSOR_MOD case('AGRI') ! FY4 call READ_FY4_LEVEL1B_DATA(Segment_Number, trim(Image%Level1b_Name), Ierror_Level1b) - + case('COMS-IMAGER') call READ_COMS(Segment_Number,Image%Level1b_Name, & Image%Start_Doy, Image%Start_Time, & @@ -2513,11 +2542,11 @@ module SENSOR_MOD Time_Since_Launch,Nrec_Avhrr_Header,Segment_Number) call READ_HIRS_DATA(Segment_Number) call REPLACE_AVHRR_WITH_HIRS() - + case('VIIRS') call READ_VIIRS_DATA (Segment_Number, trim(Image%Level1b_Name), Ierror_Level1b) - + ! If error reading, then go to next file if (Ierror_Level1b /= 0) return @@ -2526,27 +2555,27 @@ module SENSOR_MOD call DETERMINE_SAPF_NAME(Segment_Number) call READ_SAPF_DATA(Segment_Number) end if - - + + case('VIIRS-NASA-HRES') - + nasa_hres_config % channel_on_modis(1:45) = Sensor%Chan_On_Flag_Default(1:45) == sym%YES - + nasa_hres_config % sensor = 'npp' nasa_hres_config % filename = trim(Image%Level1b_Name) nasa_hres_config % path = trim(Image%Level1b_Path) nasa_hres_config % ny_start = (Segment_Number - 1) * Image%Number_Of_Lines_Per_Segment + 1 nasa_hres_config % ny_end = min(Image%Number_Of_Lines, nasa_hres_config % ny_start + Image%Number_of_Lines_Per_Segment - 1) call READ_VIIRS_NASA_HRES_DATA(nasa_hres_config) - - - + + + Image%Number_Of_Lines_Read_This_Segment = nasa_hres_config % ny_end - nasa_hres_config % ny_start + 1 - + do i_line = 1, Image%Number_Of_Lines_Per_Segment Image%Scan_Number(i_line) =nasa_hres_config % ny_start + i_line - 1 end do - + case('VIIRS-NASA') call READ_VIIRS_NASA_DATA (Segment_Number, trim(Image%Level1b_Name), Ierror_Level1b) @@ -2555,7 +2584,7 @@ module SENSOR_MOD if (Ierror_Level1b /= 0) return !--- read auxillary cloud mask - if (Use_Aux_Flag /= sym%NO_AUX) then + if (Use_Aux_Flag /= sym%NO_AUX) then call DETERMINE_MVCM_NAME(Segment_Number) call READ_MVCM_DATA(Segment_Number) endif @@ -2569,22 +2598,28 @@ module SENSOR_MOD case('AHI') if (Image%Static_Nav_Flag) then - IF (Image%Nc_Format_Flag) then + IF (Image%Nc_Format_Flag) then call READ_LEVEL1B_FIXED_GRID_STATIC_NAV() else #ifdef LIBHIM - call READ_HSD_FIXED_GRID_STATIC_NAV() + call READ_HSD_FIXED_GRID_STATIC_NAV() #else call MESG( "LibHimawari not installed. Cannot process HSD. Stopping", level = verb_lev % ERROR , color = 4 ) stop #endif - + end if - + else call READ_AHI_DATA (Segment_Number, trim(Image%Level1b_Name), Ierror_Level1b) end if + !--- read auxillary cloud mask + if (Use_Aux_Flag /= sym%NO_AUX) then + call DETERMINE_MVCM_NAME(Segment_Number) + call READ_MVCM_DATA(Segment_Number) + endif + end select !--- IFF data (all sensors same format) @@ -2603,7 +2638,7 @@ module SENSOR_MOD end if - !--- VIIRS GAC data + !--- VIIRS GAC data if (index(Sensor%Sensor_Name,'VGAC') > 0) then call READ_VGAC_DATA(Segment_Number, Ierror_Level1b) ! If error reading, then go to next file @@ -2619,7 +2654,7 @@ module SENSOR_MOD end if - + end subroutine READ_LEVEL1B_DATA !------------------------------------------------------------------- @@ -2630,7 +2665,7 @@ module SENSOR_MOD call READ_NETCDF_GLOBAL_ATTRIBUTE(Image%Level1b_Full_Name, 'orbital_slot', Orbital_Slot) call READ_NETCDF_GLOBAL_ATTRIBUTE(Image%Level1b_Full_Name, 'scene_id', Scene_Id) - + if (trim(Orbital_Slot)=="GOES-East") then if (trim(Scene_Id)=="Full Disk") then Static_Nav_File = "goes_east_abi_fulldisk_static_nav.nc" @@ -2678,7 +2713,7 @@ module SENSOR_MOD Sensor%Num_Chan_Sensor = 11 if (.not. allocated(Sensor%CLAVRx_Chan_Map)) allocate(Sensor%Clavrx_Chan_Map(Sensor%Num_Chan_Sensor)) Sensor%CLAVRx_Chan_Map = [1,2,6,20,27,28,29,30,31,32,33] - + case(171:172,810,514:515) !MTSAT,COMS,Fy2D,Fy2E Sensor%Num_Chan_Sensor = 5 if (.not. allocated(Sensor%CLAVRx_Chan_Map)) allocate(Sensor%Clavrx_Chan_Map(Sensor%Num_Chan_Sensor)) @@ -2691,7 +2726,7 @@ module SENSOR_MOD Sensor%Num_Chan_Sensor = 16 if (.not. allocated(Sensor%CLAVRx_Chan_Map)) allocate(Sensor%Clavrx_Chan_Map(Sensor%Num_Chan_Sensor)) Sensor%CLAVRx_Chan_Map = (/3,4,1,2,6,7,20,37,27,28,29,30,38,31,32,33/) - case(270:271) !-- abi + case(270:273) !-- abi Sensor%Num_Chan_Sensor = 16 if (.not. allocated(Sensor%CLAVRx_Chan_Map)) allocate(Sensor%Clavrx_Chan_Map(Sensor%Num_Chan_Sensor)) Sensor%CLAVRx_Chan_Map = (/3,1,2,26,6,7,20,37,27,28,29,30,38,31,32,33/) @@ -2707,7 +2742,7 @@ module SENSOR_MOD Sensor%Num_Chan_Sensor = 14 if (.not. allocated(Sensor%CLAVRx_Chan_Map)) allocate(Sensor%Clavrx_Chan_Map(Sensor%Num_Chan_Sensor)) Sensor%CLAVRx_Chan_Map = (/3,1,2,26,6,7,21,20,27,28,29,31,32,33/) - case(783,784) !MODIS + case(783,784) !MODIS Sensor%Num_Chan_Sensor = 36 if (.not. allocated(Sensor%CLAVRx_Chan_Map)) allocate(Sensor%Clavrx_Chan_Map(Sensor%Num_Chan_Sensor)) Sensor%CLAVRx_Chan_Map = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19, & @@ -2721,7 +2756,7 @@ module SENSOR_MOD print*,'sensor for WMO number not found in SET_SENSOR_CHANNEL_MAPPING for ', Sensor%WMO_ID print*,'stopping ... Please fix this in sensor_mod.F90' print*,' better tell andi.walther@ssec.wisc.edu' - stop + stop end select end subroutine SET_SENSOR_CHANNEL_MAPPING diff --git a/main_src/seviri_mod.f90 b/main_src/seviri_mod.f90 index 3aea2c5a0924caecc8abc4b52b359880e33f6849..81f9b4fb4a4dffd29727a154c2f1ec7a2f29a7b9 100644 --- a/main_src/seviri_mod.f90 +++ b/main_src/seviri_mod.f90 @@ -62,6 +62,8 @@ module SEVIRI_MOD use FILE_TOOLS,only:getlun use VIEWING_GEOMETRY_MOD,only: possol + + use CLAVRX_MESSAGE_MOD, only: mesg, verb_lev implicit none private @@ -89,8 +91,8 @@ module SEVIRI_MOD integer(kind=int4), public, parameter:: Seviri_Xstride = 1 integer(kind=int4), private, parameter:: Num_3km_Scans_Fd = 3712 integer(kind=int4), private, parameter:: Num_3km_Elem_fd = 3712 - integer(kind=int4), private, parameter:: TIME_FOR_FD_SCAN = 900000 !milliseconds (15min) - real, private, save:: Scan_rate !scan rate in millsec / line + integer(kind=int4), private, parameter:: TIME_FOR_FD_SCAN = 900000 !milliseconds (15min) !CHECK THIS + real, private, save:: Scan_Rate !scan rate in millsec / line integer(kind=int4), private, parameter:: Seviri_Byte_Shift = 0 integer, dimension(11), parameter, private:: Chan_Idx=[1,2,6,20,27,28,29,30,31,32,33] @@ -149,7 +151,7 @@ contains open(unit=Instr_Const_lun,file=trim(Instr_Const_file),status="old",position="rewind",action="read",iostat=ios0) - print *, "opening ", trim(Instr_Const_file) + call MESG ( "Error opening MSG constants file "//trim(Instr_Const_file), level=Verb_Lev%WARNING) erstat = 0 if (ios0 /= 0) then erstat = 19 @@ -509,22 +511,21 @@ contains ! convert from eumetsat coordinate space if necessary if (AREAstr%north_bound == 1) line = AREAstr%Num_Line - line + 1 - do i=1, xsize + do i= 1, xsize elem = (i - 1)*(xstride) + xstart ! convert to eumetsat coordinate space if necessary if (AREAstr%west_vis_pixel == 1) elem = AREAstr%Num_Elem - elem + 1 - CALL fgf_to_earth(FGF_TYPE, & - DBLE(elem), & - DBLE(line), & - DBLE(CFAC_MSG), & - DBLE(COFF_MSG), & - DBLE(LFAC_MSG), & - DBLE(LOFF_MSG), & - SUB_LON_MSG, & - dlon, & - dlat) + DBLE(elem), & + DBLE(line), & + DBLE(CFAC_MSG), & + DBLE(COFF_MSG), & + DBLE(LFAC_MSG), & + DBLE(LOFF_MSG), & + SUB_LON_MSG, & + dlon, & + dlat) if (dlat == -999.0) then ! -999.0 is MSG nav missing value Nav%Lat_1b(i,j) = Missing_Value_Real4 diff --git a/main_src/surface_properties_mod.f90 b/main_src/surface_properties_mod.f90 index 6fbcc7094bc86156136d7dcf26bb5df27d37d562..6fcbd1ab9950241b4b38e475f76a328a0fccb99d 100644 --- a/main_src/surface_properties_mod.f90 +++ b/main_src/surface_properties_mod.f90 @@ -414,10 +414,11 @@ subroutine GET_PIXEL_SFC_EMISS_FROM_SFC_TYPE(j1,j2) if (Bad_Pixel_Mask(i,j) == sym%YES) then cycle endif - + !--- based on surface type, assign surface emissivities if seebor not used !--- if the Sfc_Type is missing, treat pixel as bad - if (sfc_emiss_option == 4) then + if (sfc_emiss_option == 0) then + if (Sfc%Sfc_Type(i,j) >= 0 .and. Sfc%Sfc_Type(i,j) < 15) then !limits depend on Sfc_Type if (Sensor%Chan_On_Flag_Default(20)==sym%YES) Ch(20)%Sfc_Emiss(i,j) = Ch20_Sfc_Emiss_Umd(Sfc%Sfc_Type(i,j)) if (Sensor%Chan_On_Flag_Default(21)==sym%YES) Ch(21)%Sfc_Emiss(i,j) = Ch20_Sfc_Emiss_Umd(Sfc%Sfc_Type(i,j)) diff --git a/main_src/user_options.f90 b/main_src/user_options.f90 index e7310fcae30a81fb2d9c1c09414bee4f9d4c0462..77b0805b660827ec1867cbbbe8242fe6cb1612d8 100644 --- a/main_src/user_options.f90 +++ b/main_src/user_options.f90 @@ -303,9 +303,10 @@ contains integer::ios0 integer::erstat integer:: Default_Lun - real:: Rand_Number - character(len=7):: Rand_String + integer:: PID + character(len=7):: Pid_String character(len=1020):: Temporary_Data_Dir_Root + character(len=1020):: hostname integer:: String_Length character(len=1):: Last_Char @@ -330,7 +331,7 @@ contains read(unit=Default_Lun,fmt="(a)") Temporary_Data_Dir_Root read(unit=Default_Lun,fmt=*) Expert_Mode - !--- add a random number suffix to Temporary_Data_Dir + !--- add the PID to Temporary_Data_Dir string_length = len_trim(Temporary_Data_Dir_Root) last_char = Temporary_Data_Dir_Root(string_length:string_length) @@ -338,10 +339,10 @@ contains Temporary_Data_Dir_Root = Temporary_Data_Dir_Root(1:string_length-1) endif - call INIT_RANDOM_SEED() - call random_number(Rand_Number) - write(Rand_String,'(I7.7)' ) int(10.0e06 * Rand_Number) - Temporary_Data_Dir = trim(Temporary_Data_Dir_Root) // '_' // trim(Rand_String) // '/' + call HOSTNM(hostname) + PID = getpid() + write(Pid_String,'(I7.7)' ) pid + Temporary_Data_Dir = trim(Temporary_Data_Dir_Root) // '_' // trim(hostname) // '_' // trim(Pid_String) // '/' !--- check expert mode, if 0 return if ( Expert_Mode == 0 ) then @@ -960,8 +961,6 @@ contains !--- for expert modes < 6, turn on channels on sensor call CHANNEL_SWITCH_ON (SensorName) -!---> print *, "AFTER CHANNEL_SWITCH_ON ==> ", Sensor%Chan_On_Flag_Default - !--- sub pixel channel set call SUB_PIXEL_CHANNEL_ON_SET() @@ -1148,7 +1147,7 @@ contains case ('GOES-RU-IMAGER') filename = 'ecm2_lut_abhi_default.nc' - case ('MODIS','METIMAGE') + case ('MODIS','METIMAGE','MERSI-2') filename = 'ecm2_lut_modis_default.nc' case ('VIIRS','VIIRS-NASA','VIIRS-NASA-HRES','VIIRS-IFF','VGAC') filename = 'ecm2_lut_viirs_default.nc' @@ -1158,6 +1157,12 @@ contains filename = 'ecm2_lut_avhrr_default.nc' case ( 'MTSAT-IMAGER') filename = 'ecm2_lut_mtsat2_default.nc' + case ( 'SEVIRI') + filename = 'ecm2_lut_seviri_default.nc' + case ( 'GOES-MP-IMAGER') + filename = 'ecm2_lut_goesmp_src-abhi_default.nc' + case ( 'GOES-IL-IMAGER') + filename = 'ecm2_lut_goesil_src-abhi_default.nc' case default call MESG("sensor "//TRIM(SensorName)//" does not have ECM2 LUT: Inform andrew.heidinger@noaa.gov") stop @@ -1373,8 +1378,8 @@ contains endif enddo - if ((Sensor%WMO_Id == 270 .or. Sensor%WMO_Id == 271) .and. ACHA%Mode == 'baseline') then - call MESG( "Running Baseline Cloud Height for GOES-16/17 ",level = verb_lev % DEFAULT) + if (ACHA%Mode == 'baseline') then + call MESG( "Running AWG Baseline Cloud Height ",level = verb_lev % DEFAULT) Mode_Idx = -1 endif @@ -1582,8 +1587,6 @@ contains Sensor%Chan_On_Flag_Default(i) = 0_int1 end do -!---> print *, "CHECK_USER_CHANNEL_CHOICES ==> ", Sensor%Chan_On_Flag_Default - end subroutine CHECK_USER_CHANNEL_CHOICES ! -------------------------------------------------------------------- ! every incosistency between channel settings and algorithm mode diff --git a/pfaast/cx_pfaast_coef_mod.f90 b/pfaast/cx_pfaast_coef_mod.f90 index 325e5212ad7cd1f0aa60a5f29a0149c3d8d2b695..3d9fc11b70503fa9c726bea0f318dd7ef9f76b3e 100644 --- a/pfaast/cx_pfaast_coef_mod.f90 +++ b/pfaast/cx_pfaast_coef_mod.f90 @@ -118,7 +118,7 @@ contains case ( 'SEVIRI','MTSAT','VIIRS','FY2','GOES') ! - GOES-16-19 is ABI if ( trim(device) .EQ. 'GOES' .and. & - (satellite .EQ. '16' .OR. satellite .EQ. '17')) then + (satellite .EQ. '16' .OR. satellite .EQ. '17' .OR. satellite .EQ. '18')) then call this % read_ahi_abi(device, satellite) else call this % read_general ( device, satellite ) @@ -201,8 +201,10 @@ contains !--- Will need more logic when goes-18/19 are online. if (sat_num .eq. '16') then cfile = 'abixxx101.dat' - else + else if (sat_num .eq. '17') then cfile = 'abi7xxx101.dat' + else + cfile = 'abi8xxx101.dat' endif case('AHI9') cfile = 'ahi9xxx101.dat' @@ -218,6 +220,8 @@ contains call open_files ( cfile, 5, lun_s ) else if (sat .eq. 'GOES' .and. sat_num .eq. '17') then call open_files ( cfile, 5, lun_s ) + else if (sat .eq. 'GOES' .and. sat_num .eq. '18') then + call open_files ( cfile, 5, lun_s ) else call open_files ( cfile, 4, lun_s ) endif diff --git a/rttov/cx_rttov_bridge_mod.f90 b/rttov/cx_rttov_bridge_mod.f90 index 146e649d50300e48578cc63bf56a2a5fadb1a6a8..6c8fa471661c2ffd3a99424c5cb1865d99f00b5d 100644 --- a/rttov/cx_rttov_bridge_mod.f90 +++ b/rttov/cx_rttov_bridge_mod.f90 @@ -122,6 +122,7 @@ subroutine compute_transmission_rttov ( & real, intent(out) :: taut (:,:) integer :: lll real, parameter :: Q_MIXRATIO_TO_PPMV = 1.60771704e+6 + real :: max_satzen opts % rt_ir % addsolar = .FALSE. @@ -147,9 +148,9 @@ subroutine compute_transmission_rttov ( & opts % config % verbose = .FALSE. ! Enable printing of warnings - lll = channel_map (sensor,ancil_data_path, kban_in , coef_filename,cld_coef_filename) + lll = channel_map (sensor,ancil_data_path, kban_in , coef_filename,cld_coef_filename,max_satzen) - + nprof = size(temp(1,:)) nlevels = size(temp(:,1)) @@ -232,6 +233,8 @@ subroutine compute_transmission_rttov ( & chanprof(nch)%prof = j chanprof(nch)%chan = channel_list(jch) + + ENDDO ENDDO @@ -270,7 +273,7 @@ subroutine compute_transmission_rttov ( & profiles(iprof) % s2m % v = 0. profiles(iprof) % s2m % wfetc = 1000000. profiles(iprof) % skin % t = temp(96,iprof) + 5. - profiles(iprof) % zenangle = min(theta(iprof),85.29) + profiles(iprof) % zenangle = min(theta(iprof),max_satzen) profiles(iprof) % azangle = 0. profiles(iprof) % latitude = 45. profiles(iprof) % longitude = 19. diff --git a/rttov/cx_rttov_mapping_mod.f90 b/rttov/cx_rttov_mapping_mod.f90 index af1569365883a2b4b9c34069542b93540f59dc2c..358222b16234389544806cbde44fd0274a82a3ef 100644 --- a/rttov/cx_rttov_mapping_mod.f90 +++ b/rttov/cx_rttov_mapping_mod.f90 @@ -4,7 +4,7 @@ contains ! ! ! - function channel_map (sensor,ancil_data_path, chn,coef_filename,cld_coef_filename) result (list) + function channel_map (sensor,ancil_data_path, chn,coef_filename,cld_coef_filename,max_satzen) result (list) #define STRINGIFY(x) x @@ -24,6 +24,7 @@ contains character (len = 1) :: metop_nr integer :: avhrr_num integer :: nr_hirs + real :: max_satzen #ifndef RTTOVPATH print*,'RTTOV PATH not set ..stop' @@ -34,6 +35,7 @@ contains path = trim(ancil_data_path) // "static/rttov/" rttov_version_string = '9' + max_satzen = 85. ! -- ! the mapping translates one channel infot ! RTTOV channel number @@ -43,7 +45,7 @@ contains allocate(chn_list(45)) chn_list = -1 - + list = -1 ! metop @@ -101,6 +103,47 @@ contains chn_list(20:38) = [7,-1,-1,-1,-1,-1,-1,9,10,11,12,14,15,16,-1,-1,-1,8,13] list = chn_list(chn) sensor_string = 'himawari_9_ahi' + + case ('GOES-8','GOES-9') + + + chn_list(20) = 1 + chn_list(27) = 2 + chn_list(31) = 3 + chn_list(32) = 4 + list = chn_list(chn) + sensor_string = 'goes_'//sensor(6:6)//'_imager' + rttov_version_string = '7' + max_satzen = 75. + + + case ('GOES-10','GOES-11') + + + chn_list(20) = 1 + chn_list(27) = 2 + chn_list(31) = 3 + chn_list(32) = 4 + list = chn_list(chn) + sensor_string = 'goes_'//sensor(6:7)//'_imager' + rttov_version_string = '8' + max_satzen = 75. + + + case ('GOES-12','GOES-13','GOES-14','GOES-15') + + + chn_list(20) = 1 + chn_list(27) = 2 + chn_list(31) = 3 + chn_list(33) = 4 + + list = chn_list(chn) + sensor_string = 'goes_'//sensor(6:7)//'_imager' + rttov_version_string = '8' + max_satzen = 75. + + case ('GOES-16') chn_list = [2,3,1,-1,-1,5,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,7,-1,-1,-1,4,9,10,11,12,14,15,16,-1,-1,-1,8,13,-1,-1,-1,-1,-1,-1,-1] @@ -111,6 +154,11 @@ contains chn_list = [2,3,1,-1,-1,5,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,7,-1,-1,-1,4,9,10,11,12,14,15,16,-1,-1,-1,8,13,-1,-1,-1,-1,-1,-1,-1] list = chn_list(chn) sensor_string = 'goes_17_abi' + + case ('GOES-18') + chn_list = [2,3,1,-1,-1,5,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,7,-1,-1,-1,4,9,10,11,12,14,15,16,-1,-1,-1,8,13,-1,-1,-1,-1,-1,-1,-1] + list = chn_list(chn) + sensor_string = 'goes_18_abi' case ( 'SEVIRI-MSG08') !---stw chn_list(20:33) = [1,-1,-1,-1,-1,-1,-1,2,3,4,5,6,7,8] @@ -250,13 +298,13 @@ contains coef_filename = trim(path)//'/rtcoef_rttov12/rttov'//rttov_version_string//'pred54L/rtcoef_'//trim(sensor_string)//'.dat' cld_coef_filename = trim(path)//'cldaer_ir/sccldcoef_'//trim(sensor_string)//'.dat' - + if ( list .eq. 0) list = -1 !print*,'Sensor rttov mapping: ',sensor,chn,list deallocate(chn_list) - - + if (rttov_version_string .eq. '7') max_satzen = 75. + if (rttov_version_string .eq. '8') max_satzen = 75. end function channel_map diff --git a/rttov/cx_rttov_sfc_emiss.f90 b/rttov/cx_rttov_sfc_emiss.f90 index 4ec06d80ecf947a89e3e88bccf1fd924d295047b..2133f9394df41813b18142a2a1ab9afd11ed8f96 100644 --- a/rttov/cx_rttov_sfc_emiss.f90 +++ b/rttov/cx_rttov_sfc_emiss.f90 @@ -84,7 +84,6 @@ module cx_rttov_sfc_emiss integer(kind=jpim), parameter :: nchan_modis = 16 ! Number of channels per profile integer(kind=jpim), parameter :: nchan_viirs = 2 ! Number of channels per profile integer(kind=jpim), parameter :: nchan_abi = 2 ! Number of channels per profile - !integer(kind=jpim), parameter :: nchan_clavrx = 48 ! Number of channels per profile for claverx integer(kind=jpim), parameter :: chn_list_modis(nchan_modis) = & (/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16/) @@ -108,7 +107,6 @@ module cx_rttov_sfc_emiss TYPE(rttov_chanprof), POINTER :: chanprof_viirs(:) => NULL() ! Input channel/profile list TYPE(rttov_chanprof), POINTER :: chanprof_abi(:) => NULL() ! Input channel/profile list - !real(kind=jprb), allocatable :: emiss(:,:,:) real*4, allocatable :: emiss(:,:,:) type(rttov_emis_atlas_data) :: atlas @@ -149,8 +147,6 @@ CONTAINS #include "rttov_setup_emis_atlas.interface" !----------------------------------------------------------------------------------- -!----------------------------------------------------------------------------------- - ! set input !----------------------------------------------------------------------------------- atlas_path=trim(rttov_path)//'emis_data/' @@ -179,20 +175,14 @@ CONTAINS nprof=dim1*dim2 - !write(*,*) 'init dimesions: ',Image%Number_Of_Elements, Image%Number_Of_Lines_Per_Segment , nprof - print*,'ATLAS TYPE IR For emis RTTOV: ',atlas_type_ir - - call rttov_setup_emis_atlas( & err, & opts, & imonth, & atlas_type_ir, & ! IR atlas atlas, & - atlas_id = atlasid, & ! To select CAMEL climatology atlas + atlas_id = atlasid,& ! To select CAMEL climatology atlas path = atlas_path) - !ir_atlas_read_std = .TRUE., & - !ir_atlas_ang_corr = do_angcorr) IF (err /= errorstatus_success) THEN WRITE(*,*) 'error initialising emissivity atlas' CALL rttov_exit(err) @@ -285,7 +275,6 @@ CONTAINS REAL(kind=real4), dimension(:,:), intent(in) :: lats, lons logical, dimension(:,:), intent(in) :: space_mask character(len=*), intent(in) :: rttov_path ! Path to rttov emis atlas data - !REAL(kind=real4), dimension(:,:,:), intent(out) :: Emiss1 integer(kind=jpim), parameter :: ioout = 51 ! Output file unit @@ -296,19 +285,10 @@ CONTAINS logical(kind=jplm) :: do_angcorr, single_instrument - !real(kind=jprb), allocatable :: emiss(:,:,:) - !integer(kind=jpim), allocatable :: snf(:) - !integer(kind=jpim), allocatable :: sfct(:) - #include "rttov_skipcommentline.interface" #include "rttov_get_emis.interface" !----------------------------------------------------------------------------------- - !----------------------------------------------------------------------------------- - - ! Open file for output - ! open(ioout, file='output_camel_clim_atlas.ascii', form='formatted', status='replace', action='write') - ! set input !----------------------------------------------------------------------------------- @@ -343,11 +323,11 @@ CONTAINS if (ALL(Space_mask)) then emiss1 = missing_value_real4 - deallocate (emiss1) + deallocate (emiss1) deallocate(emissivity_modis) - deallocate(emissivity_viirs) - deallocate(emissivity_abi) - deallocate(profiles) + deallocate(emissivity_viirs) + deallocate(emissivity_abi) + deallocate(profiles) return end if @@ -355,35 +335,21 @@ CONTAINS do Elem_Idx = 1, Image%Number_Of_Elements do Line_Idx = 1, Image%Number_Of_Lines_Per_Segment k=k+1 - !if (Bad_Pixel_Mask(Elem_Idx,Line_Idx) == sym%YES) cycle profiles(k)%latitude=dble(lats(Elem_Idx,Line_Idx)) profiles(k)%longitude=dble(lons(Elem_Idx,Line_Idx)) - profiles(k)%skin%surftype =0 ! land + profiles(k)%skin%surftype =0 ! land profiles(k)%skin%snow_fraction = 0. - - ! if (Sfc%Land(Elem_Idx,Line_Idx) /= sym%Land ) profiles(k)%skin%surftype =1 - if (Sfc%Snow(Elem_Idx,Line_Idx) == sym%SNOW) profiles(k)%skin%snow_fraction = 1. - - if (Sfc%Sfc_Type(Elem_Idx,Line_Idx) == 0 ) then - !profiles(k)%skin%surftype =1 ! sea - - end if - end do + + if (Sfc%Snow(Elem_Idx,Line_Idx) == sym%SNOW) profiles(k)%skin%snow_fraction = 1. + + end do end do ! initialize output matrix emiss1=0. - - !k = 3100 - - !print*, profiles(k)%latitude - !print*, profiles(k)%longitude - !print*,profiles(k)%skin%surftype - !print*,profiles(k)%skin%snow_fraction - ! !---------------------------- ! Retrieve values from atlas for MODIS @@ -396,9 +362,6 @@ CONTAINS coefs_modis, & atlas, & emissivity_modis(:)) - !emis_std = emis_std_modis) - !emis_flag_modis) - if (err /= errorstatus_success) then @@ -412,17 +375,15 @@ CONTAINS call rttov_get_emis( & err, & opts, & - chanprof_viirs, & + chanprof_viirs, & profiles, & coefs_viirs, & atlas, & emissivity_viirs(:)) - !emis_std =emis_std_viirs) - !emis_flag_viirs) IF (err /= errorstatus_success) THEN WRITE(*,*) 'error reading viirs emissivity atlas' CALL rttov_exit(err) - END IF + END IF !---------------------------- ! Retrieve values from atlas for ABI @@ -435,76 +396,42 @@ CONTAINS coefs_abi, & atlas, & emissivity_abi(:)) - !emis_std = emis_std_abi) - !emis_flag_abi) IF (err /= errorstatus_success) THEN WRITE(*,*) 'error reading abi emissivity atlas' CALL rttov_exit(err) - ENDIF - - -! Write out emissivity data - !write(ioout,'(a,l1)') 'Init for angular correction? ', do_angcorr - !write(ioout,'(a,l1)') 'Init for single inst? ', single_instrument - !do k =1, nprof - ! write(ioout,'(a,i8)') 'Profile ',k - ! write(ioout,'(a)') ' Chan Emissivity Standard Dev Flag' - ! do Chan_Idx = 1, nchan_modis - ! lo = (k-1)*nchan_modis - ! write(ioout,'(i5,f11.4)') chn_list_modis(Chan_Idx), emissivity_modis(lo+Chan_Idx) - ! enddo - ! do Chan_Idx = 1, nchan_abi - ! lo = (k-1)*nchan_abi - ! write(ioout,'(i5,f11.4)') chn_list_abi(Chan_Idx), emissivity_abi(lo+Chan_Idx) - ! enddo - ! do Chan_Idx = 1, nchan_viirs - ! lo = (k-1)*nchan_viirs - ! write(ioout,'(i5,f11.4)') chn_list_viirs(Chan_Idx), emissivity_viirs(lo+Chan_Idx) - ! enddo - !enddo + ENDIF + + ! creating claverx emissivity !-------------------------------- - ! print* k=0 do Elem_Idx = 1, Image%Number_Of_Elements do Line_Idx = 1, Image%Number_Of_Lines_Per_Segment - !print* - !print*,'=================== =======' + k=k+1 - ! print*, profiles(k)%latitude - ! print*, profiles(k)%longitude - ! print*,profiles(k)%skin%surftype - ! print*,profiles(k)%skin%snow_fraction do Chan_Idx = 1, 6 lo = (k-1)*nchan_modis - !write(*,*) Elem_Idx,Line_Idx,k, Chan_Idx, lo - !emiss(k,1,Chan_Idx+19)=(emissivity_modis(lo+Chan_Idx)) emiss1(Elem_Idx,Line_Idx,Chan_Idx+19)=(emissivity_modis(lo+Chan_Idx)) end do do Chan_Idx = 7, nchan_modis lo = (k-1)*nchan_modis - !emiss(k,1,Chan_Idx+20)=(emissivity_modis(lo+Chan_Idx)) emiss1(Elem_Idx,Line_Idx,Chan_Idx+20)=(emissivity_modis(lo+Chan_Idx)) end do do Chan_Idx = 1, nchan_abi lo = (k-1)*nchan_abi - !emiss(k,1,Chan_Idx+36)=emissivity_abi(lo+Chan_Idx) emiss1(Elem_Idx,Line_Idx,Chan_Idx+36)=emissivity_abi(lo+Chan_Idx) end do do Chan_Idx = 1, nchan_viirs lo = (k-1)*nchan_viirs - !emiss(k,1,Chan_Idx+41)=emissivity_viirs(lo+Chan_Idx) emiss1(Elem_Idx,Line_Idx,Chan_Idx+41)=emissivity_viirs(lo+Chan_Idx) end do - ! print*,k - ! print*,emiss1(Elem_Idx,Line_Idx,:) end do end do @@ -514,30 +441,18 @@ CONTAINS Ch(Chan_Idx)%Obs_Type /= THERMAL_OBS_TYPE) cycle if (Sensor%Chan_On_Flag_Default(Chan_Idx) == sym%YES) then - Ch(Chan_Idx)%Sfc_Emiss=emiss1(:,:,Chan_Idx) + where(emiss1(:,:,Chan_Idx) .ge. 0) + Ch(Chan_Idx)%Sfc_Emiss=emiss1(:,:,Chan_Idx) + end where end if end do - - ! do Elem_Idx = 1, Image%Number_Of_Elements - ! do Line_Idx = 1, Image%Number_Of_Lines_Per_Segment - ! do Chan_Idx = 1, nchan_clavrx - !write(ioout,*) Elem_Idx,Line_Idx,Chan_Idx,Ch(Chan_Idx)%Sfc_Emiss(Elem_Idx,Line_Idx) - ! enddo - ! enddo - ! enddo - -! Close the output file -! close(ioout) - deallocate (emiss1) deallocate(emissivity_modis) deallocate(emissivity_viirs) deallocate(emissivity_abi) deallocate(profiles) - - end subroutine get_rttov_emiss diff --git a/test.sh b/test.sh new file mode 100755 index 0000000000000000000000000000000000000000..783742e15443b2e710a3fee19eca4b78cb7e72e4 --- /dev/null +++ b/test.sh @@ -0,0 +1,3 @@ +#!/bin/bash +cd test +py.test -s test.py diff --git a/test/clavrx.py b/test/clavrx.py new file mode 100644 index 0000000000000000000000000000000000000000..9a30cc459858f3d571cf50a38c3a339b14242e19 --- /dev/null +++ b/test/clavrx.py @@ -0,0 +1,263 @@ +from subprocess import run +from tempfile import TemporaryDirectory +import os +from pathlib import Path +import yaml +from parse_options import write_options +import io +from copy import deepcopy +import shutil +from uuid import uuid4 +import re + + +print_orig = print + +def print(*args, flush=True, **kwargs): + return print_orig(*args, flush=True, **kwargs) + +ROOT = Path(__file__).resolve().absolute().parent + +CLAVRX_COMMIT = None + +if False: + DEFAULT_CLAVRX = (ROOT / 'clavrx_bin/clavrxorb.no_phase_f8').absolute() +else: + DEFAULT_CLAVRX = (ROOT / 'clavrx_bin/clavrxorb.acha_tau_uncer').absolute() + +DEFAULT_L2_LIST = ROOT / 'level2_lists/level2_list' + + +def run_clavrx(clavrx, file_list_content, options_file_content, level2_list_content, debug=False, log=True, scratch=None): + print(f'Using {clavrx}') + clavrx = Path(clavrx).absolute() + assert clavrx.exists(), str(clavrx) + clavrx = str(clavrx) + if scratch is None: + if Path('/scratch').is_dir(): + scratch = Path('/scratch/jobs') / os.environ['USER'] + scratch.mkdir(exist_ok=True, parents=True) + with TemporaryDirectory(prefix='clavrx_tmp_', dir=scratch) as tmpdir: + tmpdir = Path(tmpdir) + print(f'Logs temporarily in {tmpdir}') + def crash(): + print('Copying logs to ./ ') + shutil.copytree(tmpdir, tmpdir.name) + try: + file_list = tmpdir / 'file_list' + with open(file_list, 'w') as fp: + fp.write(file_list_content) + options_file = tmpdir / 'clavrx_options' + with open(options_file,'w') as fp: + fp.write(options_file_content) + level2_list = tmpdir / 'level2_list' + with open(level2_list,'w') as fp: + fp.write(level2_list_content) + if log: + with open(tmpdir / 'clavrx.log','wb') as stdout: + with open(tmpdir / 'clavrx.err','wb') as stderr: + tmpdir.chmod(0o555) + p = run([clavrx], cwd=tmpdir, stdout=stdout, stderr=stderr) + tmpdir.chmod(0o755) + else: + tmpdir.chmod(0o555) + p = run([clavrx], cwd=tmpdir) + tmpdir.chmod(0o755) + p.check_returncode() + except Exception: + crash() + raise + if debug: + crash() + + +def build_file_list(out, files): + fp = io.StringIO() + out = Path(out) + files = [Path(f) for f in files] + for part in zip(*[f.absolute().parts[:-1] for f in files]): + for i in part: + assert i == part[0], 'Not all files in same directory' + dir = files[0].absolute().parent + print(dir) + fp.write(str(dir)+'/\n') + fp.write(str(out.absolute())+'/\n') + for f in files: + fp.write(f.name+'\n') + fp.seek(0) + file_list_content = fp.read() + return file_list_content + + +def build_options_file(config): + fp = io.StringIO() + write_options(fp, x) + fp.seek(0) + options_file_content = fp.read() + return options_file_content + + +def build_options_file(config): + fp = io.StringIO() + write_options(fp, config) + fp.seek(0) + options_file_content = fp.read() + return options_file_content + + +def default_level2_list_content(override_list=None): + if override_list is None: + l = DEFAULT_L2_LIST + else: + l = Path(override_list) + l = l.absolute() + return get_level2_list_content(l) + +def get_level2_list_content(file): + print(f'Level2 List {file}') + with open(file) as fp: + level2_list_content = fp.read() + return level2_list_content + + +def test_run_clavrx(): + clavrx = DEFAULT_CLAVRX + config = get_config() + options_file_content = build_options_file(config) + + files = [ + '/arcdata/polar/noaa/noaa16/2001/2001_04_01_091/avhrr/NSS.GHRR.NL.D01091.S0019.E0212.B0270203.WI', + '/arcdata/polar/noaa/noaa16/2001/2001_04_01_091/avhrr/NSS.GHRR.NL.D01091.S0207.E0401.B0270304.WI' + ] + file_list_content = build_file_list('/tmp/', files) + level2_list_content = default_level2_list_content() + run_clavrx(clavrx, file_list_content, options_file_content, level2_list_content) + + +def update_config(default, override): + config = deepcopy(default) + for k,v in override.items(): + if isinstance(v, dict): + for k2,v2 in v.items(): + if isinstance(v2,dict): + config[k][k2].update(v2) + else: + config[k][k2] = v2 + else: + config[k] = v + return config + + +def get_config(override_yml=None): + with open(ROOT / 'options/default_options.yml') as fp: + default = yaml.load(fp, Loader=yaml.FullLoader) + if override_yml is not None: + with open(override_yml) as fp: + override = yaml.load(fp, Loader=yaml.FullLoader) + config = update_config(default, override) + else: + config = default + return config + + +def add_processing_attrs(f, clavrx, options_file_content=None, config=None): + + print('Adding processing attributes') + try: + clavrxorb_name = clavrx.resolve().name + clavrx_commit = None + if '.' in clavrxorb_name: + _,suffix = clavrxorb_name.split('.') + if re.match('^(dirty_)?[a-f0-9]{40}$', suffix): + clavrx_commit = suffix + + print('import') + import netCDF4 + import hashlib + import yaml + print('open') + nc = netCDF4.Dataset(f,'a') + nc.setncattr('clavrx_bin', clavrxorb_name) + print('clavrx md5') + # Get binary md5sum + with open(clavrx, 'rb') as fp: + clavrxorb_md5 = hashlib.md5(fp.read()).hexdigest() + print('set clavrxorb_md5') + nc.setncattr('clavrxorb_md5', clavrxorb_md5) + if clavrx_commit is not None: + print('set clavrxorb_md5') + nc.setncattr('clavrx_commit', clavrx_commit) + else: + print('no clavrx_commit') + if config is not None: + print('set config_yaml') + nc.setncattr('config_yaml', yaml.dump(config)) + else: + print('no config') + if options_file_content is not None: + print('set options_file_content') + nc.setncattr('clavrx_options', options_file_content) + else: + print('no options_file_content') + print('close') + nc.close() + print('done') + except Exception as e: + print('!!!!!! Could not add processing attrs') + print(e) + print('------ Could not add processing attrs') + + +def main(l1b_files, out_dir, override_yml=None, override_list=None, clavrx=None, debug=False, log=True): + + if clavrx is None: + clavrx = DEFAULT_CLAVRX + elif isinstance(clavrx, str): + p1 = Path(clavrx) + p2 = DEFAULT_CLAVRX.parent / clavrx + if p1.exists(): + clavrx = p1 + elif p2.exists(): + # just the name + clavrx = p2 + + for f in l1b_files: + f = Path(f) + if not f.is_file(): + print(f'{f} is not a file') + print(f'Exiting') + return 1 + + out_dir = Path(out_dir) + out_dir.mkdir(exist_ok=True, parents=True) + config = get_config(override_yml) + print(config) + options_file_content = build_options_file(config) + + print(f'Processing {len(l1b_files)} files') + uuid = str(uuid4()) + tmp_out_dir = out_dir / f'processing_{uuid}' + tmp_out_dir.mkdir(exist_ok=True) + file_list_content = build_file_list(tmp_out_dir, l1b_files) + level2_list_content = default_level2_list_content(override_list) + run_clavrx(clavrx, file_list_content, options_file_content, level2_list_content, debug=debug, log=log) + for f in tmp_out_dir.glob('*'): + if f.name.endswith('.nc'): + add_processing_attrs(f, clavrx, options_file_content=options_file_content, config=config) + print('Move') + shutil.move(str(f), str(out_dir)) + tmp_out_dir.rmdir() + + +if __name__ == '__main__': + import argparse + parser = argparse.ArgumentParser() + parser.add_argument('-c',help='config', required=False, default=None) + parser.add_argument('-l',help='l2_list', required=False, default=None) + parser.add_argument('--debug',action='store_true') + parser.add_argument('--nolog',action='store_true') + parser.add_argument('--clavrx',required=False, default=None) + parser.add_argument('out_dir') + parser.add_argument('l1b_files',nargs='+') + args = parser.parse_args() + main(args.l1b_files, args.out_dir, override_yml=args.c, override_list=args.l, debug=args.debug, log=not args.nolog, clavrx=args.clavrx) diff --git a/test/options/default_options.yml b/test/options/default_options.yml new file mode 100644 index 0000000000000000000000000000000000000000..1d150a47a9cbdcb249374729cfadc7d380ad4c8a --- /dev/null +++ b/test/options/default_options.yml @@ -0,0 +1,193 @@ +lut: default +ancil_dir: /ships19/cloud/scratch/cphillips/clavrx_ancil_data +temp_dir: ./temp_files/ +verbosity: DEFAULT #E1 Messaging Control Flag (QUIET = 0,ERROR = 1,MINIMAL = 2,WARNING = 4,DEFAULT = 5,VERBOSE = 9) +cloud_mask: ECM2 #E1 ALG Mask mode bayesian cloud mask (0=Baseline CM, 1 = ECM1, 2 = ECM2) +dcomp_alg: 3 #E1 ALG DCOMP +acha_alg: default #E1 ALG ACHA (off, default or select combinations like 110_120_133) +ccl_mode: top + base #E1 ALG CCL Mode (0 =off,1=top only,2 = top + base,3 = top + base + lower) +ccl_type: NOAT #E1 ALG CCL Type = (0=NOAT, 1=ISSCP, 2=NCEP) +enable_asos: False #E1 ALG ASOS Mode (0=off, 1=on) +enable_nlcomp: False #E1 ALG NLCOMP (0=off, 1=on) +enable_aerosol: False #E1 ALG Aerosol (0=off, 1=on) +enable_output: True #E2 OUTPUT Level-2 file output flag (0= no, 1 = yes) +output_format: netcdf4 #E2 OUTPUT format flag (0= hdf4, 1 = netcdf4) +prc_cloud_flag: 1 #E2 PRC Cloud flag +scan_lines: 200 #E2 Num scan lines +enable_sasrab: False #E2 SASRAB switch on/off SASRAB parameters +nwp_model: cfsr #E2 NWP Nwp Model Option (0=off, 1=gfs,2=ncep reanalysis,3=cfsr,4= gdas, 5=merra,6=era,7=gfs ait,8=gfs fv3) +nwp_mode: minimal #E2 NWP Nwp Mode (0=minimal, 1=all) +rtm: pfast #E2 RTM rtm option (0=crtm,1=pfast, (2=rttov)) +nav_option: l1b #E2 NAV nav option (0 = Use level-1b,1 = external (future) 2 = Reposnx ( fred nagle): For non-AVHRR, use 0) +sfc_emiss: seebor #E3 0=UMD, 1=RTTOV 2=SEEBOR (3=CRTM not yet installed) +compress_output: True #E2 OUT output compression flag (0=no,1=gzip) +aux_cloud_mask: 2 #E2 MASK read auxilary cloud mask 1b (0 = don't read, 1 = read from 1b and use, 2 = read and save as aux, 3 = read modawg/mvcm, but compute ecm2 type/phase) +seebor_emiss: True #E3 SFC seebor emiss flag (0=no, 1=yes) +see_emiss: True #E3 SFC see emiss flag (0=no, 1=yes) +hires_sfc_type: False #E3 SFC read hires sfc type flag (0=no-8km, 1 = yes-1km) +land_mask: True #E3 SFC read land mask flag (0=no, 1=yes) (goge2_0ll.hdf) +coast_mask: True #E3 SFC read coast mask flag (0=no, 1=yes) (coast_mask_xkm.hdf, x = 1 or 8) +elevation: True #E3 SFC read surface elevation flag (0=no, 1=yes) (GLOBE_xkm_digelev.hdf, x = 1 or 8) +volcano: False #E3 SFC read volcano mask flag (0=no, 1=yes) (volcano_mask_1km.hdf) +snow_mask: ims #1 #E3 SFC read snow mask flag (0=no, 1 = ims, 2 = GlobSnow) +dark_composite: False #0 #E3 SFC read dark composite flag (0=no, 1 = yes) only GEO +avhrr: + ref_cal: default #0 #E4 AVHRR-ONLY specific ref_cal_1b flag (0 = use default level1b cal, 1 = recalibrate using PATMOS-x numbers (AVHRR-only)) + therm_cal: default #0 #E4 AVHRR-ONLY therm_cal_1b flag (0 = use default level1b cal, 1= recalibrate using PATMOS-x numbers (AVHRR-only)) +lrc: True #1 #E5 MASK lrc_flag (0=no,1=yes) +smooth_nwp: True #E5 NWP smooth nwp flag (0=no, 1=yes) +process_undetected: False #0 #E5 process_undetected_flag (0=no,1=yes) ( means process all pixels cloudy and cloud-free +bounds: + enable: False + lat_north: 15.0 + lat_south: 5.0 + lon_west: -100. + lon_east: -90. + zen_min: 0.0 + zen_max: 90.0 + solzen_min: 0.0 + solzen_max: 180.0 + name: WI +sample: + mode: average+stats + x_stride: 1 + y_stride: 1 + +channels: + MODIS: + 1: True + 2: True + 3: True + 4: True + 5: True + 6: True + 7: True + 8: True + 9: True + 10: True + 11: True + 12: True + 13: True + 14: True + 15: True + 16: True + 17: True + 18: True + 19: True + 20: True + 20: True + 21: True + 22: True + 23: True + 24: True + 25: True + 26: True + 27: True + 28: True + 29: True + 30: True + 31: True + 32: True + 33: True + 33: True + 34: True + 35: True + 36: True + AxI: + 37: True + 38: True + VIIRS: + I1: False + I2: False + I3: False + I4: False + I5: False + DNB: False + +new_channels: + sensor: clavrx + clavrx: + CLAVRX_1: True + CLAVRX_2: True + CLAVRX_3: True + CLAVRX_4: True + CLAVRX_5: True + CLAVRX_6: True + CLAVRX_7: True + CLAVRX_8: True + CLAVRX_9: True + CLAVRX_10: True + CLAVRX_11: True + CLAVRX_12: True + CLAVRX_13: True + CLAVRX_14: True + CLAVRX_15: True + CLAVRX_16: True + CLAVRX_17: True + CLAVRX_18: True + CLAVRX_19: True + CLAVRX_20: True + CLAVRX_21: True + CLAVRX_22: True + CLAVRX_23: True + CLAVRX_24: True + CLAVRX_25: True + CLAVRX_26: True + CLAVRX_27: True + CLAVRX_28: True + CLAVRX_29: True + CLAVRX_30: True + CLAVRX_31: True + CLAVRX_32: True + CLAVRX_33: True + CLAVRX_34: True + CLAVRX_35: True + CLAVRX_36: True + CLAVRX_37: True + CLAVRX_38: True + CLAVRX_39: True + CLAVRX_40: True + CLAVRX_41: True + CLAVRX_42: True + CLAVRX_43: True + CLAVRX_44: True + CLAVRX_45: True + CLAVRX_46: True + CLAVRX_47: True + CLAVRX_48: True + avhrr_hirs: + HIRS_4: True + HIRS_5: True + HIRS_6: True + HIRS_7: True + HIRS_9: True + HIRS_11: True + HIRS_12: True + HIRS_14: True + HIRS_15: True + HIRS_18: True + AVHRR_065: True + AVHRR_086: True + AVHRR_160: True + AVHRRHIRS_1100: True + AVHRRHIRS_1200: True + AVHRRHIRS_0375: True + + ahi: + AHI_1: True + AHI_2: True + AHI_3: True + AHI_4: True + AHI_5: True + AHI_6: True + AHI_7: True + AHI_8: True + AHI_9: True + AHI_10: True + AHI_11: True + AHI_12: True + AHI_13: True + AHI_14: True + AHI_15: True + AHI_16: True + diff --git a/test/parse_options.py b/test/parse_options.py new file mode 100644 index 0000000000000000000000000000000000000000..b392684448c6aad81edd7878649e64329213741a --- /dev/null +++ b/test/parse_options.py @@ -0,0 +1,269 @@ +import yaml + + +OLD_CONFIG = False +channel_map = None + +VIIRS_CHANNELS = {f'M{i}':c for i,c in enumerate([8,9,3,4,1,15,2,5,26,6,7,20,22,29,31,32],1)} +VIIRS_CHANNELS.update({f'I{i}':i+38 for i in range(1,6)}) +VIIRS_CHANNELS['DNB'] = 44 + +HIRS_CHANNELS = {'HIRS_4': 36, 'HIRS_5': 35, 'HIRS_6': 34, 'HIRS_7': 33, 'HIRS_9': 30, 'HIRS_11': 28, 'HIRS_12': 27, 'HIRS_14': 25, 'HIRS_15': 24, 'HIRS_18': 23} + +AVHRR_CHANNELS = { + 'AVHRR_065':1, + 'AVHRR_086':2, + 'AVHRR_160':6, +} + +FUSION_CHANNELS = {**HIRS_CHANNELS, **AVHRR_CHANNELS} +FUSION_CHANNELS['AVHRRHIRS_1100'] = 31 +FUSION_CHANNELS['AVHRRHIRS_1200'] = 32 +FUSION_CHANNELS['AVHRRHIRS_0375'] = 20 + +AHI_CHANNELS = { +'AHI_1':3, 'AHI_2':4, 'AHI_3':1, 'AHI_4':2, 'AHI_5':6, 'AHI_6':7, +'AHI_7':20, 'AHI_8':37, 'AHI_9':27, 'AHI_10':28, 'AHI_11':29, 'AHI_12':30, +'AHI_13':38, 'AHI_14':31, 'AHI_15':32, 'AHI_16':33 +} + +ALL_CHANNELS = {f'CLAVRX_{i}':i for i in range(1, 6*8+1)} + + +NEW_CHANNEL_MAP = { + 'viirs':VIIRS_CHANNELS, + 'avhrr_hirs':FUSION_CHANNELS, + 'ahi':AHI_CHANNELS, + 'clavrx':ALL_CHANNELS +} + + +VERBOSITY = { + 'QUIET':0, + 'ERROR':1, + 'MINIMAL':2, + 'WARNING':4, + 'DEFAULT':5, + 'VERBOSE':9 +} +CLOUD_MASK = { + 'Baseline':0, + 'ECM1':1, + 'ECM2':2 +} + +CCL_MODE = { + 'off':0, + 'top only':1, + 'top + base':2, + 'top + base + lower':3 +} + +CCL_TYPE = { + 'NOAT':0, + 'ISSCP':1, + 'NCEP':2 +} + +OUTPUT_FORMAT = { + 'hdf4':0, + 'netcdf4':1 +} + +NWP_MODEL = { + 'off':0, + 'gfs':1, + 'ncep':2, + 'cfsr':3, + 'gdas':4, + 'merra':5, + 'era':6, + 'gfs ait':7, + 'gfs fv3':8 +} + +NWP_MODE={ + 'minimal':0, + 'all':1 +} + +RTM = { + 'crtm':0, + 'pfast':1, + 'rttov':2 +} + +NAV_OPTION = { + 'l1b':0, + 'external':1, + 'Reposnx':2 +} + +SNOW_MASK = { + 'no':0, + 'ims':1, + 'GlobSnow':2 +} + +REF_CAL = { + 'default':0, + 'recalibrate':1 +} +THERM_CAL = { + 'default':0, + 'recalibrate':1 +} + +SFC_EMISS = { + 'umd':0, + 'rttov':1, + 'seebor':2, + 'crtm':3 +} + +MAPPING = { + 'verbosity':VERBOSITY, + 'cloud_mask':CLOUD_MASK, + 'ccl_mode':CCL_MODE, + 'ccl_type':CCL_TYPE, + 'output_format':OUTPUT_FORMAT, + 'nwp_model':NWP_MODEL, + 'nwp_mode':NWP_MODE, + 'rtm':RTM, + 'nav_option':NAV_OPTION, + 'snow_mask':SNOW_MASK, + 'therm_cal':THERM_CAL, + 'ref_cal':REF_CAL, + 'sfc_emiss':SFC_EMISS +} + + +def write_bounds(fp, options): + enable = int(options['enable']) + lat_north = options['lat_north'] + lat_south = options['lat_south'] + lon_west = options['lon_west'] + lon_east = options['lon_east'] + zen_min = options['zen_min'] + zen_max = options['zen_max'] + solzen_min = options['solzen_min'] + solzen_max = options['solzen_max'] + name = options['name'] + fp.write(f'{enable} {lat_south} {lat_north} {lon_west} {lon_east} {zen_min} {zen_max} {solzen_min} {solzen_max} {name}\n') + +SAMPLE_MODES = { + 'sample':0, + 'average':1, + 'average+stats':2 +} +def write_sample(fp, options): + mode = SAMPLE_MODES[options['mode']] + x_stride = options['x_stride'] + y_stride = options['y_stride'] + fp.write(f'{mode} {x_stride} {y_stride}\n') + +def write_channels(fp, options): + for r in [range(1,7), range(7,13), range(13,19), range(19,25), range(25,31), range(31,37)]: + fp.write(' '.join([str(int(options['MODIS'][i])) for i in r])+'\n') + fp.write(' '.join([str(int(i)) for i in [options['AxI'][37], options['AxI'][38], + *[options['VIIRS'][f'I{j}'] for j in range(1,5)] + ] + ])+'\n') + fp.write(' '.join([str(int(i)) for i in [options['VIIRS']['I5'], options['VIIRS']['DNB'], *[0,0,0,0]]])+'\n') + +def write_new_channels(fp, options): + for r in [range(1,7), range(7,13), range(13,19), range(19,25), range(25,31), range(31,37), range(37,43)]: + fp.write(' '.join([str(int(options[i])) for i in r])+'\n') + fp.write(' '.join([str(int(i)) for i in [options[43], options[44], *[0,0,0,0]]])+'\n') + +def write_options(fp, options): + def convert(k, v): + desc = '' + if k in MAPPING: + desc = ' ='+str(v) + v = MAPPING[k][v] + if isinstance(v, bool): + return f'{str(int(v)):20} ! {k}{desc}\n' + elif isinstance(v, int): + return f'{str(v):20} ! {k}{desc}\n' + else: + print(f'No converter: {k}={v}') + return f'{str(v):20} ! {k}{desc}\n' + order1 = [ + 'verbosity', + 'cloud_mask', + 'dcomp_alg', + 'acha_alg', + 'ccl_mode', + 'ccl_type', + 'enable_asos', + 'enable_nlcomp', + 'enable_aerosol', + 'enable_output', + 'output_format', + 'prc_cloud_flag', + 'scan_lines', + 'enable_sasrab', + 'nwp_model', + 'nwp_mode', + 'rtm', + 'nav_option', + 'compress_output', + 'aux_cloud_mask' + ] + order2 = ['sfc_emiss', + 'see_emiss', + 'hires_sfc_type', + 'land_mask', + 'coast_mask', + 'elevation', + 'volcano', + 'snow_mask', + 'dark_composite', + ] + if OLD_CONFIG: + order2[0] = 'seebor_emiss' + order3 = ['lrc', + 'smooth_nwp', + 'process_undetected', + ] + fp.write(options['ancil_dir'].rstrip('/')+'/\n') + fp.write(options['temp_dir'].rstrip('/')+'/\n') + fp.write('9 ! Expert mode\n') + for k in order1: + fp.write(convert(k, options[k])) + fp.write(options['lut']+'\n') + for k in order2: + fp.write(convert(k, options[k])) + fp.write(convert('ref_cal', options['avhrr']['ref_cal'])) + fp.write(convert('therm_cal', options['avhrr']['therm_cal'])) + for k in order3: + fp.write(convert(k, options[k])) + write_bounds(fp, options['bounds']) + write_sample(fp, options['sample']) + if 'new_channels' in options: + channels = new_channels(options['new_channels']) + write_new_channels(fp, channels) + else: + write_channels(fp, options['channels']) + + +def new_channels(channels): + # only look at this sensor + new = {i:False for i in range(1,45)} + sensor = channels['sensor'] + for c,b in channels[sensor].items(): + new[NEW_CHANNEL_MAP[sensor][c]] = b + return new + + +def main(): + with open('clavrx_options.yml') as fp: + x = yaml.load(fp, Loader=yaml.FullLoader) + with open('clavrx_options', 'w') as fp: + write_options(fp, x) + +if __name__ == '__main__': + main() + + diff --git a/test/save_record.py b/test/save_record.py new file mode 100644 index 0000000000000000000000000000000000000000..0d538835784748c183cfbe6ea6c35a06773fe2ea --- /dev/null +++ b/test/save_record.py @@ -0,0 +1,26 @@ +from pathlib import Path +import test + +RECORD_DIR = Path('/ships19/cloud/archive/clavrx_test_data/version_granules') + +def main(version): + version_dir = RECORD_DIR / version + for func in test.save_funcs: + name = func.__name__ + output_dir = version_dir / name + if output_dir.exists() and len(list(output_dir.glob('*')))>0: + print(output_dir, 'already exists') + else: + output_dir.mkdir(exist_ok=True,parents=True) + print(output_dir) + clavrx_options = func(out_dir=output_dir) + with open(output_dir / 'clavrx_options','w') as fp: + fp.write(clavrx_options) + +if __name__ == '__main__': + import argparse + parser = argparse.ArgumentParser() + parser.add_argument('version') + args = parser.parse_args() + main(args.version) + diff --git a/test/test.py b/test/test.py new file mode 100644 index 0000000000000000000000000000000000000000..7c34dc8a46a0a692be269c47be9238fe747c10c8 --- /dev/null +++ b/test/test.py @@ -0,0 +1,350 @@ +""" +test.py + +Test cases can be added by creating a function with "test" in the name + +A helper function "_run_it()" makes it easy to add a test. + +@save decorator marks tests that we'll permanently save the output from (see save_record.py) + +@extra decorator marks tests that won't be run unless we set TEST_EXTRA=True below) + +""" + +from clavrx import run_clavrx, get_config, build_options_file, build_file_list +from pathlib import Path +from tempfile import mkdtemp +from shutil import rmtree +import subprocess +import pytest +import signal +import os +import re + +CLAVRX = Path('../clavrx_bin/clavrxorb').absolute() +assert CLAVRX.exists(), str(CLAVRX)+' does not exist' + +HERE = Path(__file__).absolute().parent + +def get_all_l2_variables(): + l2_variables = set() + pattern = re.compile(r'.*case\([\'"](\w+)[\'"]\).*') + with open(HERE / '../main_src/level2_mod.f90') as fp: + for line in fp: + if 'case("' in line: + match = pattern.match(line) + if match is not None: + l2_variables.add(match.group(1)) + return sorted(l2_variables) + + +L2_LIST_CONTENT = '\n'.join(['testing',*get_all_l2_variables()]) + +TEST_EXTRA = False + +DEFAULT_MODE=None + +extra = pytest.mark.skipif(not TEST_EXTRA, reason="extra test") + +save_funcs = [] +def save(func): + save_funcs.append(func) + return func + + +def _run_it(main_l1b_file, aux_l1b_files=(), config_override=None, out_dir=None, mode=DEFAULT_MODE): + """ + Run clavrx case + + main_l1b_file :: the primary l1b granule + aux_l1b_files :: list of files that will get linked next to the primary file in a temp dir + config_override :: dict of clavrx options to override the defaults (see options/default_options.yml) + out_dir :: directory to persist output the l2 file (default is a temporary directory which is removed) + + returns a string containing the contents of the clavrx_options file + """ + main_l1b_file = Path(main_l1b_file) + tmpdir = Path(mkdtemp(dir=HERE)) + try: + if out_dir is None: + out_dir = tmpdir / 'out' + else: + out_dir = Path(out_dir) + out_dir.mkdir(exist_ok=True, parents=True) + l1b_links = [] + for f in aux_l1b_files: + f = Path(f) + assert f.exists() + newlink = tmpdir / f.name + newlink.symlink_to(f) + l1b_links.append(newlink) + + main_l1b_link = tmpdir / main_l1b_file.name + main_l1b_link.symlink_to(main_l1b_file) + + #print() + #args = ['ls','-l',str(tmpdir)] + #print(' '.join(args)) + #subprocess.run(args) + #print() + + config = get_config() + if config_override is not None: + for k,v in config_override.items(): + if isinstance(v,dict): + for k2,v2 in v.items(): + if isinstance(v2,dict): + config[k][k2].update(v2) + else: + config[k][k2] = v2 + else: + config[k] = v + config['temp_dir'] = str(tmpdir) #str(out_dir / 'temp_dir') + options_file_content = build_options_file(config) + file_list_content = build_file_list(out_dir, [main_l1b_link]) + level2_list_content = L2_LIST_CONTENT + options_file_path = tmpdir / 'clavrx_options' + with open(options_file_path,'w') as fp: + fp.write(options_file_content) + level2_list_content = L2_LIST_CONTENT + with open(tmpdir / 'level2_list', 'w') as fp: + fp.write(level2_list_content) + file_list_path = tmpdir / 'file_list' + with open(file_list_path, 'w') as fp: + fp.write(file_list_content) + if mode=='perf': + p = subprocess.run(['perf','record','-F99','-g',CLAVRX], cwd=tmpdir) + elif mode=='gdb': + p = subprocess.run(['gdb',CLAVRX], cwd=tmpdir) + elif mode=='valgrind': + p = subprocess.run(['valgrind','--suppressions='+str(Path('suppressions').absolute()), CLAVRX], cwd=tmpdir) + else: + p = subprocess.run([CLAVRX], cwd=tmpdir) + assert p.returncode == 0 + return options_file_content + finally: + rmtree(tmpdir) + +def test_pgroup_bug(): + main_l1b_file = Path('./dummy') + tmpdir = Path(mkdtemp(dir=HERE)) + out_dir = tmpdir / 'out' + out_dir.mkdir() + try: + config = get_config() + config['temp_dir'] = str(out_dir / 'temp_dir') + options_file_content = build_options_file(config) + file_list_content = build_file_list(out_dir, [main_l1b_file]) + options_file_path = tmpdir / 'clavrx_options' + with open(options_file_path,'w') as fp: + fp.write(options_file_content) + # Skip level2_list so the process ends early + # This test is for a bug that causes fast failures + #level2_list_content = L2_LIST_CONTENT + #with open(tmpdir / 'level2_list', 'w') as fp: + #fp.write(level2_list_content) + file_list_path = tmpdir / 'file_list' + with open(file_list_path, 'w') as fp: + fp.write(file_list_content) + # this returns immediately, and we need to keep the shell alive + if os.fork() == 0: + # child + # ignore SIGINT + signal.signal(2, signal.SIG_IGN) + os.chdir(tmpdir) + os.execv(str(CLAVRX),['clavrxorb']) + else: + pid,ws = os.wait() + rc = ws >> 8 + assert rc != 125 + finally: + rmtree(tmpdir) + + +@save +def test_noaa_viirs(out_dir=None): + #ROOT = Path('/apollo/cloud/archive/Satellite_Input/VIIRS-N20/global/2018/098/') + #VIIRS_L1_FNAME = 'GMTCO_j01_d20180407_t2358242_e2359487_b01995_c20190226192728879159_noac_ops.h5' + ROOT = Path('/ships19/cloud/archive/clavrx_test_data/viirs/noaa') + VIIRS_L1 = ROOT / 'GMTCO_npp_d20220221_t2356569_e0002373_b53481_c20220222005748538034_oebc_ops.h5' + aux = set(ROOT.glob('*npp_d20220221_t2356569_e0002373*')) + aux.remove(VIIRS_L1) + return _run_it(VIIRS_L1, aux, out_dir=out_dir) + +@save +def test_nasa_viirs(out_dir=None): + ROOT = Path('/ships19/cloud/archive/clavrx_test_data/viirs/nasa') + vnp03 = ROOT / 'VNP03MOD.A2019003.1700.002.2021102031552.nc' + extra = set(ROOT.glob('*A2019003.1700*')) + extra.remove(vnp03) + return _run_it(vnp03, extra, out_dir=out_dir) + +@extra +def test_nasa_viirs_rttov_slow(out_dir=None): + ROOT = Path('/ships19/cloud/archive/clavrx_test_data/viirs/nasa') + vnp03 = ROOT / 'VNP03MOD.A2019003.1700.002.2021102031552.nc' + extra = set(ROOT.glob('*A2019003.1700*')) + extra.remove(vnp03) + config_override = { + #'acha_alg':'off', + #'dcomp_alg':0, + #'prc_cloud_flag':0, + 'rtm':'rttov', + 'sfc_emiss':'rttov', + } + return _run_it(vnp03, extra, config_override=config_override, out_dir=out_dir) + + + +@save +def test_avhrr(out_dir=None): + AVHRR = Path('/arcdata/polar/noaa/noaa18/2020/2020_01_01_001/avhrr/NSS.GHRR.NN.D20001.S0000.E0143.B7532324.WI') + return _run_it(AVHRR, out_dir=out_dir) + +def test_avhrr_get_goes_header_bug(): + # This file is empty + AVHRR = Path('/arcdata/polar/noaa/noaa18/2022/2022_02_05_036/avhrr/NSS.GHRR.NN.D22036.S1847.E2013.B8614849.GC') + try: + return _run_it(AVHRR) + assert False, 'This file should cause a nonzero returncode' + except AssertionError as e: + pass + + +@save +def test_fusion(out_dir=None): + FUSION = Path('/ships19/cloud/archive/Satellite_Input/HIRS-FUSION/NN/2020/001/NSS.GHRR.NN.D20001.S0000.E0143.B7532324.WI.fusion.nc') + AVHRR = Path('/arcdata/polar/noaa/noaa18/2020/2020_01_01_001/avhrr/NSS.GHRR.NN.D20001.S0000.E0143.B7532324.WI') + override = {'lut':'ecm2_lut_avhrr123_hirs_common_chs.nc'} + return _run_it(FUSION, [AVHRR], config_override=override, out_dir=out_dir) + + +@save +def test_g16_fd(out_dir=None): + ROOT = Path('/arcdata/goes/grb/goes16/2020/2020_05_02_123/abi/L1b/RadF/') + files = [next(ROOT.glob(f'OR_ABI-L1b-RadF-M6C{i:02d}_G16_s202012322201*.nc')) for i in range(1,17)] + override = {'bounds':{ + 'enable':True, + 'lat_north': 20.0, + 'lat_south': 10.0, + 'lon_west': -90., + 'lon_east': -80., + 'zen_min': 0.0, + 'zen_max': 90.0, + 'solzen_min': 0.0, + 'solzen_max': 180.0, + 'name': 'SUB' + }} + + return _run_it(files[0], files[1:], config_override=override, out_dir=out_dir) + +@save +def test_g16_conus_day(out_dir=None): + ROOT = Path('/arcdata/goes/grb/goes16/2020/2020_05_02_123/abi/L1b/RadC/') + files = [next(ROOT.glob(f'OR_ABI-L1b-RadC-M6C{i:02d}_G16_s2020123200111*.nc')) for i in range(1,17)] + override = {'bounds':{ + 'enable':True, + 'lat_north': 50.0, + 'lat_south': 40.0, + 'lon_west': -90., + 'lon_east': -80., + 'zen_min': 0.0, + 'zen_max': 90.0, + 'solzen_min': 0.0, + 'solzen_max': 180.0, + 'name': 'SUB' + }} + + return _run_it(files[0], files[1:], config_override=override, out_dir=out_dir) + + +@extra +def test_process_cloud_off(): + # Use the avhrr template + AVHRR = Path('/arcdata/polar/noaa/noaa18/2020/2020_01_01_001/avhrr/NSS.GHRR.NN.D20001.S0000.E0143.B7532324.WI') + override = { 'prc_cloud_flag':0 } + return _run_it(AVHRR, config_override=override) + + +@save +def test_g17_fd(out_dir=None): + ROOT = Path('/arcdata/goes/grb/goes17/2020/2020_05_02_123/abi/L1b/RadF/') + files = [next(ROOT.glob(f'OR_ABI-L1b-RadF-M6C{i:02d}_G17_s2020123222031*.nc')) for i in range(1,17)] + override = {'bounds':{ + 'enable':True, + 'lat_north': 20.0, + 'lat_south': 10.0, + 'lon_west': -130., + 'lon_east': -120., + 'zen_min': 0.0, + 'zen_max': 90.0, + 'solzen_min': 0.0, + 'solzen_max': 180.0, + 'name': 'SUB' + }} + + return _run_it(files[0], files[1:], config_override=override, out_dir=out_dir) + + +def _g17_conus(out_dir=None, sfc_emiss='seebor', rtm='pfast', see_emiss=True): + ROOT = Path('/arcdata/goes/grb/goes17/2020/2020_05_02_123/abi/L1b/RadC/') + files = [next(ROOT.glob(f'OR_ABI-L1b-RadC-M6C{i:02d}_G17_s2020123222117*.nc')) for i in range(1,17)] + override = {'bounds':{ + 'enable':True, + 'lat_north': 40.0, + 'lat_south': 30.0, + 'lon_west': -130., + 'lon_east': -120., + 'zen_min': 0.0, + 'zen_max': 90.0, + 'solzen_min': 0.0, + 'solzen_max': 180.0, + 'name': 'SUB' + }, + 'sfc_emiss':sfc_emiss, + 'see_emiss':see_emiss, + 'rtm':rtm + } + + return _run_it(files[0], files[1:], config_override=override, out_dir=out_dir) + +for rtm in ['pfast','rttov']: + for sfc_emiss in ['umd','rttov','seebor']: + for see_emiss in [False, True]: + if see_emiss: + see_emiss_str = 'IRseaemis' + else: + see_emiss_str = 'noIRseaemis' + exec(f""" +@save +def test_g17_conus_{rtm}_{sfc_emiss}_{see_emiss_str}(out_dir=None): + return _g17_conus(out_dir=out_dir, rtm='{rtm}', sfc_emiss='{sfc_emiss}', see_emiss={see_emiss}) + """) + +@save +def test_h8_fd_dat(out_dir=None): + ROOT = Path('/arcdata/nongoes/japan/himawari08/2021_01/2021_01_01_001/2300/') + files = sorted(ROOT.glob('HS_H08_20210101_2300_B*_FLDK*')) + override = {'bounds':{ + 'enable':True, + 'lat_north': 20.0, + 'lat_south': 10.0, + 'lon_west': 130., + 'lon_east': 140., + 'zen_min': 0.0, + 'zen_max': 90.0, + 'solzen_min': 0.0, + 'solzen_max': 180.0, + 'name': 'SUB' + }} + + return _run_it(files[0], files[1:], config_override=override, out_dir=out_dir) + +def test_fy3d(out_dir=None): + ROOT = Path('/ships19/cloud/archive/clavrx_test_data/fy3d/') + L1B = next(ROOT.glob('tf2022234070952.FY3D-X_MERSI_GEO1K_L1B.HDF')) + aux = set(ROOT.glob('*')) + aux.remove(L1B) + override = {'lut':'ecm2_lut_abhi_default.nc'} + return _run_it(L1B, aux, config_override=override, out_dir=out_dir) +