From 8e26de14a007373188ee36b53370bd9a97264327 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 16:18:11 +0100 Subject: [PATCH 001/304] Add file to paths and namelist variables in test scripts --- .gitignore | 1 + exp/test_cases/MiMA/MiMA_test_case.py | 12 +++++++++++- .../socrates_test/socrates_aquaplanet.py | 15 +++++++++++++-- src/extra/model/isca/path_names | 1 + src/extra/model/socrates/path_names | 1 + 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 3ab2fcb09..48d028c01 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ src/extra/python/scripts/*.nc src/extra/python/scripts/archived/ mima_pz.txt *.sh.* +src/atmos_param/socrates/src/trunk/* diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 270596744..f21ba6404 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -73,7 +73,17 @@ 'do_simple': True, 'roughness_mom':3.21e-05, 'roughness_heat':3.21e-05, - 'roughness_moist':3.21e-05, + 'roughness_moist':3.21e-05, + 'do_cloud_simple': True, + }, + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3, + 'rhmsfc': 0.95, + 'rhm700': 0.7, + 'rhm200': 0.3, }, 'vert_turb_driver_nml': { diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index a288c0272..7b926d6b7 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -91,6 +91,17 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True, + }, + + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3, + 'rhmsfc': 0.95, + 'rhm700': 0.7, + 'rhm200': 0.3, }, 'vert_turb_driver_nml': { @@ -193,5 +204,5 @@ exp.namelist = namelist.copy() exp.run(1, use_restart=False, num_cores=NCORES) - for i in range(2,121): - exp.run(i, num_cores=NCORES) +# for i in range(2,121): +# exp.run(i, num_cores=NCORES) diff --git a/src/extra/model/isca/path_names b/src/extra/model/isca/path_names index ee73b2499..eebdfd2b0 100644 --- a/src/extra/model/isca/path_names +++ b/src/extra/model/isca/path_names @@ -11,6 +11,7 @@ atmos_param/sea_esf_rad/null/rad_utilities.F90 atmos_param/shallow_conv/shallow_conv.F90 atmos_param/stable_bl_turb/stable_bl_turb.F90 atmos_param/strat_cloud/null/strat_cloud.F90 +atmos_param/cloud_simple/cloud_simple.F90 atmos_param/two_stream_gray_rad/two_stream_gray_rad.F90 atmos_param/qflux/qflux.f90 atmos_param/monin_obukhov/monin_obukhov_interfaces.h diff --git a/src/extra/model/socrates/path_names b/src/extra/model/socrates/path_names index 6cb698ede..2f4dac9eb 100644 --- a/src/extra/model/socrates/path_names +++ b/src/extra/model/socrates/path_names @@ -11,6 +11,7 @@ atmos_param/sea_esf_rad/null/rad_utilities.F90 atmos_param/shallow_conv/shallow_conv.F90 atmos_param/stable_bl_turb/stable_bl_turb.F90 atmos_param/strat_cloud/null/strat_cloud.F90 +atmos_param/cloud_simple/cloud_simple.F90 atmos_param/two_stream_gray_rad/two_stream_gray_rad.F90 atmos_param/qflux/qflux.f90 atmos_param/monin_obukhov/monin_obukhov_interfaces.h From 0d134dd44cb5c243fb54769cafef0a31dc619e30 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 16:18:53 +0100 Subject: [PATCH 002/304] Additions to RRTM and ideal mosist phys to use the simple cloud scheme --- .../rrtm_radiation/rrtm_radiation.f90 | 51 ++++++++++++++----- .../driver/solo/idealized_moist_phys.F90 | 27 +++++++++- 2 files changed, 63 insertions(+), 15 deletions(-) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 59afc67cf..f342a04b6 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -522,7 +522,10 @@ subroutine interp_temp(z_full,z_half,t, Time) end subroutine interp_temp !***************************************************************************************** !***************************************************************************************** - subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt,coszen,flux_sw,flux_lw) + subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & + albedo,q,t,t_surf_rad,tdt, & + coszen,flux_sw,flux_lw,cfa_rad,reff_rad, & + do_cloud_simple) ! ! Driver for RRTMG radiation scheme. ! Prepares all inputs, calls SW and LW radiation schemes, @@ -568,6 +571,11 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, real(kind=rb),dimension(:,:),intent(out),optional :: flux_sw,flux_lw ! surface fluxes [W/m2] ! dimension (lat x lon) ! need to have both or none! + real(kind=rb), dimension(:,:,:), intent(in) :: cfa_rad,reff_rad !cloud properties + + logical, intent(in) :: do_cloud_simple + + !--------------------------------------------------------------------------------------------------------------- ! Local variables integer k,j,i,ij,j1,i1,ij1,kend,dyofyr,seconds,days @@ -575,7 +583,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: o3f real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: co2f,co2f_temp real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: pfull,tfull,fracday& - , hr,hrc, swhr, swhrc + , hr,hrc, swhr, swhrc, cldfr, reliq, reice real(kind=rb),dimension(size(tdt,1),size(tdt,2),size(tdt,3)) :: tdt_rrtm real(kind=rb),dimension(ncols_rrt,nlay_rrt+1) :: uflx, dflx, uflxc, dflxc& ,swuflx, swdflx, swuflxc, swdflxc @@ -589,11 +597,10 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: q_tmp, h2o_vmr real(kind=rb),dimension(size(q,1),size(q,2)) :: fracsun - integer :: year_in_s + integer :: year_in_s real :: r_seconds, r_days, r_total_seconds, frac_of_day, frac_of_year, gmt, time_since_ae, rrsun, dt_rad_radians, day_in_s, r_solday, r_dt_rad_avg - ! debug integer :: indx2(2),indx(3),ii,ji,ki logical :: used @@ -805,6 +812,20 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, ! anything lower than 0.01 (about 15min) is set to zero ! where(cosz_rr < 1.e-2)cosz_rr=0. + if (do_cloud_simple) then + inflglw = 2 !RRTM responsible for calculating optical properties of clouds + liqflglw = 1 !Sets liquid water radii to be used rather than being inactive (zero is inactive) + cldfr = reshape( cfa_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) + reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) + reice = zeros !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros + else + cldfr = zeros + reliq = 10*ones + reice = 10*ones + endif + + + if(include_secondary_gases)then call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & @@ -812,13 +833,14 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, h2o , o3 , co2 , ch4_val*ones , n2o_val*ones , o2_val*ones , & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & - inflglw , iceflglw , liqflglw , & + inflglw , iceflglw , liqflglw , & ! cloud parameters - zeros , taucld , sw_zro , sw_zro , sw_zro , & - zeros , zeros , 10*ones , 10*ones , & - tauaer , zro_sw , zro_sw , zro_sw , & + cldfr, & + taucld , sw_zro , sw_zro , sw_zro , & + zeros , zeros , reice , reliq , & + tauaer , zro_sw , zro_sw , zro_sw , & ! output - swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) + swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) else call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & @@ -826,10 +848,11 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, h2o , o3 , co2 , zeros , zeros, zeros, & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & - inflglw , iceflglw , liqflglw , & + inflglw , iceflglw , liqflglw , & ! cloud parameters - zeros , taucld , sw_zro , sw_zro , sw_zro , & - zeros , zeros , 10*ones , 10*ones , & + cldfr, & + taucld , sw_zro , sw_zro , sw_zro , & + zeros , zeros , reice , reliq , & tauaer , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) @@ -861,7 +884,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, ! emissivity and cloud composition emis , inflglw , iceflglw , liqflglw , & ! cloud parameters - zeros , taucld , zeros , zeros , 10*ones, 10*ones, & + cldfr , taucld , zeros , zeros , reice, reliq, & tauaer , & ! output uflx , dflx , hr , uflxc , dflxc , hrc) @@ -874,7 +897,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, ! emissivity and cloud composition emis , inflglw , iceflglw, liqflglw, & ! cloud parameters - zeros , taucld , zeros , zeros, 10*ones, 10*ones, & + cldfr , taucld , zeros , zeros, reice, reliq, & tauaer , & ! output uflx , dflx , hr , uflxc, dflxc , hrc) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 4cc45f26a..c20746b43 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -18,6 +18,8 @@ module idealized_moist_phys_mod use two_stream_gray_rad_mod, only: two_stream_gray_rad_init, two_stream_gray_rad_down, two_stream_gray_rad_up, two_stream_gray_rad_end +use cloud_simple_mod, only: cloud_simple_init, cloud_simple_end, cloud_simple + use mixed_layer_mod, only: mixed_layer_init, mixed_layer, mixed_layer_end, albedo_calc use lscale_cond_mod, only: lscale_cond_init, lscale_cond, lscale_cond_end @@ -107,6 +109,9 @@ module idealized_moist_phys_mod logical :: do_bm = .false. logical :: do_ras = .false. +! Cloud options +logical :: do_cloud_simple = .false. + !s Radiation options logical :: two_stream_gray = .true. logical :: do_rrtm_radiation = .false. @@ -142,6 +147,7 @@ module idealized_moist_phys_mod ! end RG Add bucket namelist / idealized_moist_phys_nml / turb, lwet_convection, do_bm, do_ras, roughness_heat, & + do_cloud_simple, & two_stream_gray, do_rrtm_radiation, do_damping,& mixed_layer_bc, do_simple, & roughness_moist, roughness_mom, do_virtual, & @@ -745,6 +751,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real :: delta_t real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv +! Simple cloud scheme variabilies to pass to radiation +real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cfa_rad, reff_rad real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot @@ -908,6 +916,20 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg endif +! Call the simple cloud scheme in line with SPOOKIE-2 requirements +! Using start of time step variables +! using soecific humidity NOT mixing ratios +if(do_cloud_simple) then + call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & + Time, & + tg(:,:,:,previous), & + grid_tracers(:,:,:,previous,nsphum), & + ! outs - + cfa_rad(:,:,:), reff_rad(:,:,:) & + ) + +endif + ! Begin the radiation calculation by computing downward fluxes. ! This part of the calculation does not depend on the surface temperature. @@ -1005,7 +1027,10 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg !need t at half grid tg_interp=tg(:,:,:,previous) call interp_temp(z_full(:,:,:,current),z_half(:,:,:,current),tg_interp, Time) - call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current),albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:),coszen,net_surf_sw_down(:,:),surf_lw_down(:,:)) + call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current), & + albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:), & + coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cfa_rad(:,:,:), reff_rad(:,:,:), & + do_cloud_simple ) endif #endif From e141924f791e6162773bbacd8d00f1ac0ebd1d8c Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 16:19:54 +0100 Subject: [PATCH 003/304] Fist drafted simple cloud scheme - need to check hooks to rrtm and work out approach for socrities --- src/atmos_param/cloud_simple/cloud_simple.F90 | 203 ++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 src/atmos_param/cloud_simple/cloud_simple.F90 diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 new file mode 100644 index 000000000..c9c09de75 --- /dev/null +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -0,0 +1,203 @@ +module cloud_simple_mod + +#ifdef INTERNAL_FILE_NML + use mpp_mod, only: input_nml_file +#else + use fms_mod, only: open_namelist_file, close_file +#endif + + use fms_mod, only: stdlog, FATAL, WARNING, error_mesg + use time_manager_mod, only: time_type + + implicit none + + logical :: do_init = .true. ! Do I still need to do init? + + real :: simple_cca = 0.0 + real :: rhcsfc = 0.95 + real :: rhc700 = 0.7 + real :: rhc200 = 0.3 + real :: rhmsfc = 0.95 + real :: rhm700 = 0.7 + real :: rhm200 = 0.3 + + namelist /cloud_simple_nml/ simple_cca, rhcsfc, rhc700, rhc200, & + rhmsfc, rhm700, rhm200 + real :: zerodegc = 273.15 + + + contains + + !----------------------------------------------- + + + subroutine cloud_simple_init () + + integer :: io ,stdlog_unit + +#ifdef INTERNAL_FILE_NML + read (input_nml_file, nml=cloud_simple_nml, iostat=io) +#else + if ( file_exist('input.nml') ) then + nml_unit = open_namelist_file() + read (nml_unit, cloud_simple_nml, iostat=io) + call close_file(nml_unit) + endif +#endif + stdlog_unit = stdlog() + write(stdlog_unit, cloud_simple_nml) + + do_init = .false. !initialisation completed + + end subroutine cloud_simple_init + + !----------------------------------------------- + + subroutine cloud_simple (p_half, p_full, Time, & + temp, q_hum, & + ! outs + cfa_rad, reff_rad ) + + real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half + type(time_type) , intent(in) :: Time + + real , intent(out), dimension(:,:,:) :: cfa_rad, reff_rad + + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, qcl_rad + real :: frac_liq, cf_rad, simple_rhcrit + + integer :: i, j, k, k_surf + + logical :: es_over_liq_and_ice=.true. + + !check initiation has been done - ie read in parameters + if (do_init) call error_mesg ('cloud_simple', & + 'cloud_simple_init has not been called.', FATAL) + + ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! + call compute_qs(temp, p_full, qs, es_over_liq_and_ice) !qs=qsat in um + + k_surf = size(temp, 3) + + do i=1, size(temp, 1) + do j=1, size(temp, 2) + do k=1, size(temp, 3) + + !caluclate the frac_liq + call calc_liq_frac(temp(i,j,k), frac_liq) + call calc_reff(frac_liq, reff_rad(i,j,k)) + call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit) + call calc_cf_rad(q_hum(i,j,k), qs(i,j,k), simple_rhcrit, cf_rad) + call calc_qcl_rad(p_full(i,j,k), cf_rad, qcl_rad(i,j,k) ) + end do + end do + end do + + !WHAT ARE THE UNITS + !add diagnostics + + end subroutine cloud_simple + + subroutine calc_liq_frac(temp, frac_liq) + ! All liquid if above zero and all ice below -40C + ! linearly interpolate between T=0 and -40C + + real, intent(in) :: temp + real, intent(out) :: frac_liq + + + if (temp > zerodegc) then + frac_liq = 1.0 + else if (temp < zerodegc-40.0) then + frac_liq = 0.0 + else + frac_liq = 1.0 - (zerodegc-temp) / 40.0 + end if + + + end subroutine calc_liq_frac + + subroutine calc_reff(frac_liq, reff_rad) + + real, intent(in) :: frac_liq + real, intent(out) :: reff_rad + + reff_rad = 1.0e-6 * ( 10.0 * frac_liq + 20.0 * (1.0 - frac_liq) ) + + end subroutine calc_reff + + subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - > p_layer_centres + + real, intent(in) :: p_full, p_surf + real, intent(out) :: simple_rhcrit + + ! Calculate RHcrit as function of pressure + if (p_full > 70000.0 ) then + + simple_rhcrit = rhcsfc - ( rhcsfc - rhc700 ) * & + ( p_surf - p_full ) / ( p_surf - 70000.0 ) + + else if ( p_full > 20000.0 ) then + + simple_rhcrit = rhc700 - ( rhc700 - rhc200 ) * & + ( 70000.0 - p_full) / 50000.0 + + else + simple_rhcrit = rhc200 + endif + + end subroutine calc_rhcrit + + subroutine calc_cf_rad (q_hum, qsat, simple_rhcrit, cf_rad) + ! Calculate LS (stratiform) cloud fraction + ! as a simple linear function of RH + + real, intent(in) :: q_hum, qsat, simple_rhcrit + real, intent(out) :: cf_rad + + real :: rh, cca + + rh = q_hum/qsat + cf_rad = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) + + ! include simple convective cloud fraction where present + + cca = 0.0 ! no convective cloud fraction is calculated + ! left in for fture use + + if (cca > 0.0) then + cf_rad = MAX( simple_cca, cf_rad ) + end if + + end subroutine calc_cf_rad + + subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) + ! calculate simple water content + + real , intent(in) :: p_full, cf_rad + real , intent(out) :: qcl_rad + + real :: in_cloud_qcl + + in_cloud_qcl = 3.0e-4 + & + (1.0-3.0e-4)*(p_full-20000.0)/80000.0 + + in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg + + qcl_rad = cf_rad * in_cloud_qcl + + end subroutine calc_qcl_rad + + + !----------------------------------------------- + + + subroutine cloud_simple_end () + + ! do we deallocate anything? + + end subroutine cloud_simple_end + + !----------------------------------------------- + +end module cloud_simple_mod From 1d1ed9dd41b81b0c5c47cca31e0edeae500e9c8a Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 17:30:24 +0100 Subject: [PATCH 004/304] Changes so code will now compile --- src/atmos_param/cloud_simple/cloud_simple.F90 | 9 +++++---- src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 5 +++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index c9c09de75..a04d92b5b 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -6,8 +6,9 @@ module cloud_simple_mod use fms_mod, only: open_namelist_file, close_file #endif - use fms_mod, only: stdlog, FATAL, WARNING, error_mesg - use time_manager_mod, only: time_type + use fms_mod, only: stdlog, FATAL, WARNING, error_mesg + use time_manager_mod, only: time_type + use sat_vapor_pres_mod, only: compute_qs implicit none @@ -68,14 +69,14 @@ subroutine cloud_simple (p_half, p_full, Time, & integer :: i, j, k, k_surf - logical :: es_over_liq_and_ice=.true. + logical :: es_over_liq_and_ice !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! - call compute_qs(temp, p_full, qs, es_over_liq_and_ice) !qs=qsat in um + call compute_qs(temp, p_full, qs, es_over_liq_and_ice=.true.) !qs=qsat in um k_surf = size(temp, 3) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index c20746b43..c8b921050 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -332,6 +332,10 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l d622 = rdgas/rvgas d378 = 1.-d622 +if(do_cloud_simple) then + call cloud_simple_init() +end if + !s need to make sure that gray radiation and rrtm radiation are not both called. if(two_stream_gray .and. do_rrtm_radiation) & call error_mesg('physics_driver_init','do_grey_radiation and do_rrtm_radiation cannot both be .true.',FATAL) @@ -920,6 +924,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! Using start of time step variables ! using soecific humidity NOT mixing ratios if(do_cloud_simple) then + call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & Time, & tg(:,:,:,previous), & From 1f373a9c2a275671136f856cd04357f0868981a3 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 17:31:07 +0100 Subject: [PATCH 005/304] Now building sat specific humidity tables and shorter run on more cores --- exp/test_cases/MiMA/MiMA_test_case.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index f21ba6404..61472cc25 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 4 +NCORES = 16 # a CodeBase can be a directory on the computer, # useful for iterative development @@ -131,7 +131,8 @@ }, 'sat_vapor_pres_nml': { - 'do_simple':True + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True }, 'damping_driver_nml': { @@ -185,5 +186,5 @@ #Lets do a run! if __name__=="__main__": exp.run(1, use_restart=False, num_cores=NCORES) - for i in range(2,121): + for i in range(2,25): exp.run(i, num_cores=NCORES) From 31702ca2becb2705fec204cfeeb91174a5569e57 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 12:24:50 +0100 Subject: [PATCH 006/304] exp/test_cases/MiMA/MiMA_test_case.py --- src/atmos_param/cloud_simple/cloud_simple.F90 | 91 ++++++++++++++++--- .../rrtm_radiation/rrtm_radiation.f90 | 20 ++-- .../driver/solo/idealized_moist_phys.F90 | 15 ++- 3 files changed, 99 insertions(+), 27 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index a04d92b5b..c35708ad3 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -10,9 +10,11 @@ module cloud_simple_mod use time_manager_mod, only: time_type use sat_vapor_pres_mod, only: compute_qs + use diag_manager_mod, only: register_diag_field, send_data + implicit none - logical :: do_init = .true. ! Do I still need to do init? + logical :: do_init = .true. ! Check if init needs to be run real :: simple_cca = 0.0 real :: rhcsfc = 0.95 @@ -26,16 +28,22 @@ module cloud_simple_mod rhmsfc, rhm700, rhm200 real :: zerodegc = 273.15 + integer :: id_cf_rad, id_reff_rad, id_frac_liq, id_qcl_rad + character(len=14), parameter :: mod_name_cld = "cloud_simple" contains !----------------------------------------------- - subroutine cloud_simple_init () + subroutine cloud_simple_init (axes, Time) + + type(time_type), intent(in) :: Time + integer, intent(in), dimension(4) :: axes integer :: io ,stdlog_unit + #ifdef INTERNAL_FILE_NML read (input_nml_file, nml=cloud_simple_nml, iostat=io) #else @@ -48,6 +56,26 @@ subroutine cloud_simple_init () stdlog_unit = stdlog() write(stdlog_unit, cloud_simple_nml) + !register diagnostics + id_cf_rad = & + register_diag_field ( mod_name_cld, 'cf_rad', axes(1:3), Time, & + 'Cloud fraction for the simple cloud scheme', 'unitless: values 0-1') + + id_frac_liq = & + register_diag_field ( mod_name_cld, 'frac_liq', axes(1:3), Time, & + 'Liquid cloud fraction (liquid, mixed-ice phase, ice)', & + 'unitless: values 0-1') + + id_reff_rad = & + register_diag_field ( mod_name_cld, 'reff_rad', axes(1:3), Time, & + 'Effective cloud particle radius', & + 'microns') + + id_qcl_rad = & + register_diag_field ( mod_name_cld, 'qcl_rad', axes(1:3), Time, & + 'Specific humidity of cloud liquid', & + 'kg/kg') + do_init = .false. !initialisation completed end subroutine cloud_simple_init @@ -57,20 +85,22 @@ end subroutine cloud_simple_init subroutine cloud_simple (p_half, p_full, Time, & temp, q_hum, & ! outs - cfa_rad, reff_rad ) + cf_rad, reff_rad, qcl_rad ) real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half type(time_type) , intent(in) :: Time - real , intent(out), dimension(:,:,:) :: cfa_rad, reff_rad + real , intent(out), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad - real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, qcl_rad - real :: frac_liq, cf_rad, simple_rhcrit + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq + real :: simple_rhcrit integer :: i, j, k, k_surf logical :: es_over_liq_and_ice + real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) @@ -85,17 +115,22 @@ subroutine cloud_simple (p_half, p_full, Time, & do k=1, size(temp, 3) !caluclate the frac_liq - call calc_liq_frac(temp(i,j,k), frac_liq) - call calc_reff(frac_liq, reff_rad(i,j,k)) + call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) + call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit) - call calc_cf_rad(q_hum(i,j,k), qs(i,j,k), simple_rhcrit, cf_rad) - call calc_qcl_rad(p_full(i,j,k), cf_rad, qcl_rad(i,j,k) ) + call calc_cf_rad(q_hum(i,j,k), qs(i,j,k), simple_rhcrit, cf_rad(i,j,k)) + call calc_qcl_rad(p_full(i,j,k), cf_rad(i,j,k), qcl_rad(i,j,k) ) end do end do end do - !WHAT ARE THE UNITS - !add diagnostics + !save some diagnotics + call output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time ) + +tmp2 = maxval(cf_rad) +tmp1 = maxval(reff_rad) +tmp2 = maxval(cf_rad) + end subroutine cloud_simple @@ -123,7 +158,7 @@ subroutine calc_reff(frac_liq, reff_rad) real, intent(in) :: frac_liq real, intent(out) :: reff_rad - reff_rad = 1.0e-6 * ( 10.0 * frac_liq + 20.0 * (1.0 - frac_liq) ) + reff_rad = 10.0 * frac_liq + 20.0 * (1.0 - frac_liq) !units in microns end subroutine calc_reff @@ -170,6 +205,8 @@ subroutine calc_cf_rad (q_hum, qsat, simple_rhcrit, cf_rad) cf_rad = MAX( simple_cca, cf_rad ) end if + + end subroutine calc_cf_rad subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) @@ -190,6 +227,34 @@ subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) end subroutine calc_qcl_rad + + subroutine output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time) + + real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, frac_liq, qcl_rad + + type(time_type) , intent(in) :: Time + + real :: used + + if ( id_cf_rad > 0 ) then + used = send_data ( id_cf_rad, cf_rad, Time) + endif + + if ( id_reff_rad > 0 ) then + used = send_data ( id_reff_rad, reff_rad, Time) + endif + + if ( id_frac_liq > 0 ) then + used = send_data ( id_frac_liq, frac_liq, Time) + endif + + if ( id_qcl_rad > 0 ) then + used = send_data ( id_qcl_rad, qcl_rad, Time) + endif + + + end subroutine output_cloud_diags + !----------------------------------------------- diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index f342a04b6..7aeb76ef1 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -524,7 +524,7 @@ end subroutine interp_temp !***************************************************************************************** subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & albedo,q,t,t_surf_rad,tdt, & - coszen,flux_sw,flux_lw,cfa_rad,reff_rad, & + coszen,flux_sw,flux_lw,cf_rad,reff_rad, & do_cloud_simple) ! ! Driver for RRTMG radiation scheme. @@ -571,7 +571,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & real(kind=rb),dimension(:,:),intent(out),optional :: flux_sw,flux_lw ! surface fluxes [W/m2] ! dimension (lat x lon) ! need to have both or none! - real(kind=rb), dimension(:,:,:), intent(in) :: cfa_rad,reff_rad !cloud properties + real(kind=rb), dimension(:,:,:), intent(in) :: cf_rad,reff_rad !cloud properties logical, intent(in) :: do_cloud_simple @@ -602,6 +602,8 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! debug + real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + integer :: indx2(2),indx(3),ii,ji,ki logical :: used !--------------------------------------------------------------------------------------------------------------- @@ -815,16 +817,16 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & if (do_cloud_simple) then inflglw = 2 !RRTM responsible for calculating optical properties of clouds liqflglw = 1 !Sets liquid water radii to be used rather than being inactive (zero is inactive) - cldfr = reshape( cfa_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) - reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) - reice = zeros !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros + cldfr = reshape( cf_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) + reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) !already in microns + reice = 10*ones !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros else cldfr = zeros - reliq = 10*ones - reice = 10*ones + reliq = 10*ones ! not requires to be 10 microns but assumed a valid number + reice = 10*ones ! needs to be 10 microns endif - - + tmp1 = maxval(reff_rad) + tmp2 = maxval(cf_rad) if(include_secondary_gases)then call rrtmg_sw & diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index c8b921050..6f63b36ac 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -333,7 +333,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l d378 = 1.-d622 if(do_cloud_simple) then - call cloud_simple_init() + call cloud_simple_init(get_axis_id(), Time) end if !s need to make sure that gray radiation and rrtm radiation are not both called. @@ -756,7 +756,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv ! Simple cloud scheme variabilies to pass to radiation -real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cfa_rad, reff_rad +real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot @@ -764,6 +764,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(1,1,1):: tracer, tracertnd integer :: nql, nqi, nqa ! tracer indices for stratiform clouds +real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + if(current == previous) then delta_t = dt_real else @@ -930,11 +932,14 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg tg(:,:,:,previous), & grid_tracers(:,:,:,previous,nsphum), & ! outs - - cfa_rad(:,:,:), reff_rad(:,:,:) & + cf_rad(:,:,:), reff_rad(:,:,:), & + qcl_rad(:,:,:) & ) - + endif +tmp1 = maxval(reff_rad) +tmp2 = maxval(cf_rad) ! Begin the radiation calculation by computing downward fluxes. ! This part of the calculation does not depend on the surface temperature. @@ -1034,7 +1039,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg call interp_temp(z_full(:,:,:,current),z_half(:,:,:,current),tg_interp, Time) call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current), & albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:), & - coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cfa_rad(:,:,:), reff_rad(:,:,:), & + coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cf_rad(:,:,:), reff_rad(:,:,:), & do_cloud_simple ) endif #endif From 9bb69768b536bda1671bf672855356c6c6a1153d Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 12:25:51 +0100 Subject: [PATCH 007/304] Previous commit did not have all files: attempting to debug why cloud fraction is not passed out of the simple cloud scheme --- exp/test_cases/MiMA/MiMA_test_case.py | 19 +- .../MiMA/MiMA_test_case_no_cloud.py | 191 ++++++++++++++++++ 2 files changed, 203 insertions(+), 7 deletions(-) create mode 100644 exp/test_cases/MiMA/MiMA_test_case_no_cloud.py diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 61472cc25..06ab56cf5 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 16 +NCORES = 1 # a CodeBase can be a directory on the computer, # useful for iterative development @@ -19,7 +19,7 @@ # is used to load the correct compilers. The env file is always loaded from # $GFDL_BASE and not the checked out git repo. -cb.compile() # compile the source code to working directory $GFDL_WORK/codebase +cb.compile(debug=True) # compile the source code to working directory $GFDL_WORK/codebase # create an Experiment object to handle the configuration of model parameters # and output diagnostics @@ -43,6 +43,11 @@ diag.add_field('dynamics', 'temp', time_avg=True) diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) +diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +diag.add_field('rrtm_radiation', 'olr', time_avg=True) exp.diag_table = diag @@ -138,7 +143,7 @@ 'damping_driver_nml': { 'do_rayleigh': True, 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 50., + 'sponge_pbottom': 150., 'do_conserve_energy': True, }, @@ -175,7 +180,7 @@ 'valid_range_t':[100.,800.], 'initial_sphum':[2.e-6], 'vert_coord_option':'uneven_sigma', - 'surf_res':0.5, + 'surf_res':0.2, 'scale_heights' : 11.0, 'exponent':7.0, 'robert_coeff':0.03 @@ -185,6 +190,6 @@ }) #Lets do a run! if __name__=="__main__": - exp.run(1, use_restart=False, num_cores=NCORES) - for i in range(2,25): - exp.run(i, num_cores=NCORES) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True, run_idb=True) + # for i in range(2,25): + # exp.run(i, num_cores=NCORES, overwrite_data=True) diff --git a/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py b/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py new file mode 100644 index 000000000..645a589ea --- /dev/null +++ b/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py @@ -0,0 +1,191 @@ +import os + +import numpy as np + +from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE + +NCORES = 16 + +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = IscaCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +cb.compile() # compile the source code to working directory $GFDL_WORK/codebase + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics +exp = Experiment('mima_test_experiment_no_cloud', codebase=cb) + +exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Tell model which diagnostics to write +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) +diag.add_field('rrtm_radiation', 'olr', time_avg=True) + +exp.diag_table = diag + + +#Empty the run directory ready to run +exp.clear_rundir() + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml': { + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + + 'idealized_moist_phys_nml': { + 'two_stream_gray': False, + 'do_rrtm_radiation': True, #Use RRTM radiation, not grey + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use the simple Betts Miller convection scheme + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'do_cloud_simple': False, + }, + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3, + 'rhmsfc': 0.95, + 'rhm700': 0.7, + 'rhm200': 0.3, + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'depth': 100, + 'albedo_value': 0.205, + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'do_qflux': True + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., + 'do_conserve_energy': True, + }, + + 'qflux_nml': { + 'qflux_amp': 30.0 + }, + + 'rrtm_radiation_nml': { + 'solr_cnst': 1360, #s set solar constant to 1360, rather than default of 1368.22 + 'dt_rad': 7200, #Use long RRTM timestep + 'do_read_ozone':True, + 'ozone_file':'ozone_1990' + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03 + } + + +}) +#Lets do a run! +if __name__=="__main__": + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True) + for i in range(2,25): + exp.run(i, num_cores=NCORES, overwrite_data=True) From de3a2503437d23e7f99b3490c6348df3792f3f8c Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 16:27:53 +0100 Subject: [PATCH 008/304] Swapped to using mcica sw routine and added required initialisation routine. Seems to run. Now swapping to lw mcica. --- exp/test_cases/MiMA/MiMA_test_case.py | 9 +- .../rrtm_radiation/rrtm_radiation.f90 | 98 +++++++++++++------ src/extra/model/isca/path_names | 2 +- 3 files changed, 74 insertions(+), 35 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 06ab56cf5..aef6b0ab6 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 1 +NCORES = 16 # a CodeBase can be a directory on the computer, # useful for iterative development @@ -19,7 +19,7 @@ # is used to load the correct compilers. The env file is always loaded from # $GFDL_BASE and not the checked out git repo. -cb.compile(debug=True) # compile the source code to working directory $GFDL_WORK/codebase +cb.compile()#debug=True) # compile the source code to working directory $GFDL_WORK/codebase # create an Experiment object to handle the configuration of model parameters # and output diagnostics @@ -155,7 +155,8 @@ 'solr_cnst': 1360, #s set solar constant to 1360, rather than default of 1368.22 'dt_rad': 7200, #Use long RRTM timestep 'do_read_ozone':True, - 'ozone_file':'ozone_1990' + 'ozone_file':'ozone_1990', + 'icld': 1 #cloud overlap method }, # FMS Framework configuration @@ -190,6 +191,6 @@ }) #Lets do a run! if __name__=="__main__": - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True, run_idb=True) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) # for i in range(2,25): # exp.run(i, num_cores=NCORES, overwrite_data=True) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 7aeb76ef1..799ba2fa2 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -54,9 +54,10 @@ module rrtm_vars ! dimension (ncols_rrt x nlay_rrt) real(kind=rb),allocatable,dimension(:,:) :: co2 ! CO2 [vmr] ! dimension (ncols_rrt x nlay_rrt) - real(kind=rb),allocatable,dimension(:,:) :: zeros ! place holder for any species set + real(kind=rb),allocatable,dimension(:,:,:) :: zeros ! place holder for any species set + ! to zero + real(kind=rb),allocatable,dimension(:,:,:) :: ones ! place holder for any species set ! to zero - real(kind=rb),allocatable,dimension(:,:) :: ones ! place holder for secondary species ! the following species are only set if use_secondary_gases=.true. real(kind=rb),allocatable,dimension(:,:) :: ch4 ! CH4 [vmr] ! dimension (ncols_rrt x nlay_rrt) @@ -102,7 +103,7 @@ module rrtm_vars ! some constants real(kind=rb) :: daypersec=1./86400.,deg2rad !RG: daypersec=1./86400. left in when conversion to non-specific day length made as this only converts heatrates from RRTM from K/day to K/sec ! no clouds in the radiative scheme - integer(kind=im) :: icld=0,idrv=0, & + integer(kind=im) :: idrv=0, & inflglw=0,iceflglw=0,liqflglw=0, & iaer=0 !--------------------------------------------------------------------------------------------------------------- @@ -179,6 +180,9 @@ module rrtm_vars ! day of the year = solday \in [0,days per year] real(kind=rb) :: equinox_day=0.75 ! fraction of the year defining NH autumn equinox \in [0,1] real(kind=rb) :: solr_cnst= 1368.22 ! solar constant [W/m2] + + integer(kind=im) :: icld=0 ! Cloud overlap method + !-------------------------------------------------s-------------------------------------------------------------- ! !-------------------- diagnostics fields ------------------------------- @@ -201,14 +205,17 @@ module rrtm_vars &lonstep, do_zm_tracers, do_zm_rad, & &do_precip_albedo, precip_albedo_mode, precip_albedo, precip_lat,& &do_read_co2, co2_file, co2_variable_name, use_dyofyr, solrad, & - &solday, equinox_day,solr_cnst + &solday, equinox_day,solr_cnst, icld end module rrtm_vars !***************************************************************************************** !***************************************************************************************** module rrtm_radiation - use parkind, only : im => kind_im, rb => kind_rb - use constants_mod, only: pi, wtmozone, wtmh2o, gas_constant, rdgas + use parkind, only : im => kind_im, rb => kind_rb + use constants_mod, only: pi, wtmozone, wtmh2o, gas_constant, rdgas + use parrrtm, only: nbndlw + use parrrsw, only: nbndsw, ngptsw + implicit none contains @@ -221,8 +228,6 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) ! Modules use rrtm_vars use astronomy_mod, only: astronomy_init - use parrrtm, only: nbndlw - use parrrsw, only: nbndsw use diag_manager_mod, only: register_diag_field, send_data use interpolator_mod, only: interpolate_type, interpolator_init, & &CONSTANT, ZERO,INTERP_WEIGHTED_P @@ -396,8 +401,8 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) if(.not. do_read_radiation .or. .not. do_read_sw_flux .and. .not. do_read_lw_flux)then allocate(h2o(ncols_rrt,nlay_rrt),o3(ncols_rrt,nlay_rrt), & co2(ncols_rrt,nlay_rrt)) - allocate(ones(ncols_rrt,nlay_rrt), & - zeros(ncols_rrt,nlay_rrt)) + allocate(ones(ngptsw,ncols_rrt,nlay_rrt), & + zeros(ngptsw,ncols_rrt,nlay_rrt)) allocate(emis(ncols_rrt,nbndlw)) allocate(taucld(nbndlw,ncols_rrt,nlay_rrt), & tauaer(ncols_rrt,nlay_rrt,nbndlw)) @@ -535,7 +540,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & use fms_mod, only: error_mesg, FATAL use mpp_mod, only: mpp_pe,mpp_root_pe use rrtmg_lw_rad, only: rrtmg_lw - use rrtmg_sw_rad, only: rrtmg_sw + use rrtmg_sw_rad, only: rrtmg_sw, mcica_subcol_sw use astronomy_mod, only: diurnal_solar use rrtm_vars use time_manager_mod,only: time_type,get_time,set_time, length_of_year, length_of_day @@ -582,8 +587,13 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & integer si,sj,sk,locmin(3) real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: o3f real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: co2f,co2f_temp + real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: pfull,tfull,fracday& , hr,hrc, swhr, swhrc, cldfr, reliq, reice + + + real(kind=rb),dimension(ngptsw,ncols_rrt,nlay_rrt) :: cldfr_pass + real(kind=rb),dimension(size(tdt,1),size(tdt,2),size(tdt,3)) :: tdt_rrtm real(kind=rb),dimension(ncols_rrt,nlay_rrt+1) :: uflx, dflx, uflxc, dflxc& ,swuflx, swdflx, swuflxc, swdflxc @@ -600,11 +610,16 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & integer :: year_in_s real :: r_seconds, r_days, r_total_seconds, frac_of_day, frac_of_year, gmt, time_since_ae, rrsun, dt_rad_radians, day_in_s, r_solday, r_dt_rad_avg + !mcica variables + integer :: permuteseed, irng + real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: reicmcl, relqmcl + + real(kind=rb),dimension(ngptsw, ncols_rrt,nlay_rrt) :: cldfmcl, ciwpmcl, clwpmcl, taucmcl, ssacmcl, asmcmcl, fsfcmcl ! debug real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging - integer :: indx2(2),indx(3),ii,ji,ki + integer :: indx2(2),indx(3),ii,ji,ki, pt1,pt2 logical :: used !--------------------------------------------------------------------------------------------------------------- @@ -815,31 +830,54 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! where(cosz_rr < 1.e-2)cosz_rr=0. if (do_cloud_simple) then + pt1 = 1 + pt2 = ngptsw inflglw = 2 !RRTM responsible for calculating optical properties of clouds liqflglw = 1 !Sets liquid water radii to be used rather than being inactive (zero is inactive) cldfr = reshape( cf_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) !already in microns - reice = 10*ones !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros + reice = 10*ones(pt1,:,:) !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros else - cldfr = zeros - reliq = 10*ones ! not requires to be 10 microns but assumed a valid number - reice = 10*ones ! needs to be 10 microns + pt1 = 1 + pt2 = 1 + cldfr = zeros(pt1,:,:) + reliq = 10*ones(pt1,:,:) ! not requires to be 10 microns but assumed a valid number + reice = 10*ones(pt1,:,:) ! needs to be 10 microns + cldfr_pass(pt1,:,:) = cldfr endif - tmp1 = maxval(reff_rad) - tmp2 = maxval(cf_rad) + + + if (do_cloud_simple) then + !need to run monty carlo independent column approcimation (mcica) + permuteseed = 1 + irng = 1 !use a random number gerator either 0 (Kissvec) or 1(Mersenne Twister) + + call mcica_subcol_sw(0, ncols_rrt, nlay_rrt, icld, permuteseed, irng, pfull, & + cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer, zro_sw, zro_sw, zro_sw , & + !outs + cldfmcl, ciwpmcl, clwpmcl, reicmcl, relqmcl, taucmcl, ssacmcl, asmcmcl, fsfcmcl) + + permuteseed = 2 + cldfr_pass = cldfmcl + reice = reicmcl + reliq = relqmcl + taucld = taucmcl + !other vars not needed + endif + if(include_secondary_gases)then call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & pfull , phalf , tfull , thalf , tsrf , & - h2o , o3 , co2 , ch4_val*ones , n2o_val*ones , o2_val*ones , & + h2o , o3 , co2 , ch4_val*ones(pt1,:,:) , n2o_val*ones(pt1,:,:) , o2_val*ones(pt1,:,:) , & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr, & + cldfr_pass(pt1:pt2,:,:), & taucld , sw_zro , sw_zro , sw_zro , & - zeros , zeros , reice , reliq , & + zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & tauaer , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) @@ -847,14 +885,14 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & pfull , phalf , tfull , thalf , tsrf , & - h2o , o3 , co2 , zeros , zeros, zeros, & + h2o , o3 , co2 , zeros(pt1,:,:) , zeros(pt1,:,:), zeros(pt1,:,:), & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr, & + cldfr_pass(pt1:pt2,:,:), & taucld , sw_zro , sw_zro , sw_zro , & - zeros , zeros , reice , reliq , & + zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & tauaer , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) @@ -881,12 +919,12 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & pfull , phalf , tfull , thalf, tsrf , & h2o , o3 , co2 , & ! secondary gases - ch4_val*ones , n2o_val*ones , o2_val*ones , & - cfc11_val*ones , cfc12_val*ones , cfc22_val*ones , ccl4_val*ones , & + ch4_val*ones(pt1,:,:) , n2o_val*ones(pt1,:,:) , o2_val*ones(pt1,:,:) , & + cfc11_val*ones(pt1,:,:) , cfc12_val*ones(pt1,:,:) , cfc22_val*ones(pt1,:,:) , ccl4_val*ones(pt1,:,:) , & ! emissivity and cloud composition emis , inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr , taucld , zeros , zeros , reice, reliq, & + cldfr_pass(pt1,:,:) , taucld , zeros(pt1,:,:) , zeros(pt1,:,:) , reice, reliq, & tauaer , & ! output uflx , dflx , hr , uflxc , dflxc , hrc) @@ -894,12 +932,12 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & call rrtmg_lw & (ncols_rrt, nlay_rrt, icld , idrv , & pfull , phalf , tfull , thalf, tsrf , & - h2o , o3 , co2 , zeros, zeros, zeros, & - zeros , zeros , zeros , zeros, & + h2o , o3 , co2 , zeros(pt1,:,:), zeros(pt1,:,:), zeros(pt1,:,:), & + zeros(pt1,:,:) , zeros(pt1,:,:) , zeros(pt1,:,:) , zeros(pt1,:,:), & ! emissivity and cloud composition emis , inflglw , iceflglw, liqflglw, & ! cloud parameters - cldfr , taucld , zeros , zeros, reice, reliq, & + cldfr_pass(pt1,:,:) , taucld , zeros(pt1,:,:) , zeros(pt1,:,:), reice, reliq, & tauaer , & ! output uflx , dflx , hr , uflxc, dflxc , hrc) diff --git a/src/extra/model/isca/path_names b/src/extra/model/isca/path_names index eebdfd2b0..3ffc0f449 100644 --- a/src/extra/model/isca/path_names +++ b/src/extra/model/isca/path_names @@ -83,7 +83,7 @@ atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/modules/rrsw_vsn.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/modules/rrsw_wvn.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/mcica_random_numbers.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/mcica_subcol_gen_sw.f90 -atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_rad.nomcica.f90 +atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_rad.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_cldprop.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_cldprmc.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_init.f90 From fa048a260ae89876575bdadf9d594d66f55f1cbe Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 17:03:52 +0100 Subject: [PATCH 009/304] Swapped to using mcica lw routine and added required initialisation routine. Seems to run. Testing needed --- exp/test_cases/MiMA/MiMA_test_case.py | 6 +- .../rrtm_radiation/rrtm_radiation.f90 | 70 ++++++++++++------- src/extra/model/isca/path_names | 2 +- 3 files changed, 49 insertions(+), 29 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index aef6b0ab6..27dc00243 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('mima_test_experiment', codebase=cb) +exp = Experiment('mima_test_experiment_with_mcica', codebase=cb) exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -192,5 +192,5 @@ #Lets do a run! if __name__=="__main__": exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) - # for i in range(2,25): - # exp.run(i, num_cores=NCORES, overwrite_data=True) + for i in range(2,25): + exp.run(i, num_cores=NCORES, overwrite_data=True) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 799ba2fa2..1113d0162 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -78,7 +78,7 @@ module rrtm_vars ! =1 for black body ! clouds stuff ! cloud & aerosol optical depths, cloud and aerosol specific parameters. Set to zero - real(kind=rb),allocatable,dimension(:,:,:) :: taucld,tauaer, sw_zro, zro_sw + real(kind=rb),allocatable,dimension(:,:,:) :: taucld_lw, taucld_sw, tauaer_lw, tauaer_sw, sw_zro, zro_sw ! heating rates and fluxes, zenith angle when in-between radiation time steps real(kind=rb),allocatable,dimension(:,:) :: sw_flux,lw_flux,zencos, olr, toa_sw! surface and TOA fluxes, cos(zenith angle) ! dimension (lon x lat) @@ -213,7 +213,7 @@ end module rrtm_vars module rrtm_radiation use parkind, only : im => kind_im, rb => kind_rb use constants_mod, only: pi, wtmozone, wtmh2o, gas_constant, rdgas - use parrrtm, only: nbndlw + use parrrtm, only: nbndlw, ngptlw use parrrsw, only: nbndsw, ngptsw implicit none @@ -404,8 +404,10 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) allocate(ones(ngptsw,ncols_rrt,nlay_rrt), & zeros(ngptsw,ncols_rrt,nlay_rrt)) allocate(emis(ncols_rrt,nbndlw)) - allocate(taucld(nbndlw,ncols_rrt,nlay_rrt), & - tauaer(ncols_rrt,nlay_rrt,nbndlw)) + allocate(taucld_lw(nbndlw,ncols_rrt,nlay_rrt), & + tauaer_lw(ncols_rrt,nlay_rrt,nbndlw)) + allocate(taucld_sw(nbndsw,ncols_rrt,nlay_rrt), & + tauaer_sw(ncols_rrt,nlay_rrt,nbndsw)) allocate(sw_zro(nbndsw,ncols_rrt,nlay_rrt), & zro_sw(ncols_rrt,nlay_rrt,nbndsw)) if(id_coszen > 0)allocate(zencos (size(lonb,1)-1,size(latb,2)-1)) @@ -420,8 +422,10 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) emis = 1. !black body: 1.0 ! absorption - taucld = 0. - tauaer = 0. + taucld_sw = 0. + tauaer_sw = 0. + taucld_lw = 0. + tauaer_lw = 0. ! clouds sw_zro = 0. zro_sw = 0. @@ -539,7 +543,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! Modules use fms_mod, only: error_mesg, FATAL use mpp_mod, only: mpp_pe,mpp_root_pe - use rrtmg_lw_rad, only: rrtmg_lw + use rrtmg_lw_rad, only: rrtmg_lw, mcica_subcol_lw use rrtmg_sw_rad, only: rrtmg_sw, mcica_subcol_sw use astronomy_mod, only: diurnal_solar use rrtm_vars @@ -592,7 +596,8 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & , hr,hrc, swhr, swhrc, cldfr, reliq, reice - real(kind=rb),dimension(ngptsw,ncols_rrt,nlay_rrt) :: cldfr_pass + real(kind=rb),dimension(ngptsw,ncols_rrt,nlay_rrt) :: cldfr_pass_sw + real(kind=rb),dimension(ngptlw,ncols_rrt,nlay_rrt) :: cldfr_pass_lw real(kind=rb),dimension(size(tdt,1),size(tdt,2),size(tdt,3)) :: tdt_rrtm real(kind=rb),dimension(ncols_rrt,nlay_rrt+1) :: uflx, dflx, uflxc, dflxc& @@ -614,7 +619,9 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & integer :: permuteseed, irng real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: reicmcl, relqmcl - real(kind=rb),dimension(ngptsw, ncols_rrt,nlay_rrt) :: cldfmcl, ciwpmcl, clwpmcl, taucmcl, ssacmcl, asmcmcl, fsfcmcl + real(kind=rb),dimension(ngptsw, ncols_rrt,nlay_rrt) :: cldfmcl_sw, ciwpmcl_sw, clwpmcl_sw, taucmcl_sw, ssacmcl, asmcmcl, fsfcmcl + + real(kind=rb),dimension(ngptlw, ncols_rrt,nlay_rrt) :: cldfmcl_lw, ciwpmcl_lw, clwpmcl_lw, taucmcl_lw ! debug real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging @@ -843,7 +850,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & cldfr = zeros(pt1,:,:) reliq = 10*ones(pt1,:,:) ! not requires to be 10 microns but assumed a valid number reice = 10*ones(pt1,:,:) ! needs to be 10 microns - cldfr_pass(pt1,:,:) = cldfr + cldfr_pass_sw(pt1,:,:) = cldfr endif @@ -853,15 +860,14 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & irng = 1 !use a random number gerator either 0 (Kissvec) or 1(Mersenne Twister) call mcica_subcol_sw(0, ncols_rrt, nlay_rrt, icld, permuteseed, irng, pfull, & - cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer, zro_sw, zro_sw, zro_sw , & + cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer_sw, zro_sw, zro_sw, zro_sw , & !outs - cldfmcl, ciwpmcl, clwpmcl, reicmcl, relqmcl, taucmcl, ssacmcl, asmcmcl, fsfcmcl) + cldfmcl_sw, ciwpmcl_sw, clwpmcl_sw, reicmcl, relqmcl, taucmcl_sw, ssacmcl, asmcmcl, fsfcmcl) - permuteseed = 2 - cldfr_pass = cldfmcl + cldfr_pass_sw = cldfmcl_sw reice = reicmcl reliq = relqmcl - taucld = taucmcl + taucld_sw = taucmcl_sw !other vars not needed endif @@ -875,10 +881,10 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass(pt1:pt2,:,:), & - taucld , sw_zro , sw_zro , sw_zro , & + cldfr_pass_sw(pt1:pt2,:,:), & + taucld_sw , sw_zro , sw_zro , sw_zro , & zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & - tauaer , zro_sw , zro_sw , zro_sw , & + tauaer_sw , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) else @@ -890,10 +896,10 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass(pt1:pt2,:,:), & - taucld , sw_zro , sw_zro , sw_zro , & + cldfr_pass_sw(pt1:pt2,:,:), & + taucld_sw , sw_zro , sw_zro , sw_zro , & zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & - tauaer , zro_sw , zro_sw , zro_sw , & + tauaer_sw , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) endif @@ -907,6 +913,20 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! swhr (:,i) = 0. ! endwhere ! enddo + + if(do_cloud_simple) then + + permuteseed = 2 + + call mcica_subcol_lw(0, ncols_rrt, nlay_rrt, icld, permuteseed, irng, pfull, & + cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer_lw, & + cldfmcl_lw, ciwpmcl_lw, clwpmcl_lw, reicmcl, relqmcl, taucmcl_lw) + cldfr_pass_lw = cldfmcl_lw + reice = reicmcl + reliq = relqmcl + taucld_lw = taucmcl_lw + endif + swijk = reshape(swhr(:,sk:1:-1),(/ si/lonstep,sj,sk /))*daypersec @@ -924,8 +944,8 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! emissivity and cloud composition emis , inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass(pt1,:,:) , taucld , zeros(pt1,:,:) , zeros(pt1,:,:) , reice, reliq, & - tauaer , & + cldfr_pass_lw(pt1:pt2,:,:) , taucld_lw , zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice, reliq, & + tauaer_lw , & ! output uflx , dflx , hr , uflxc , dflxc , hrc) else @@ -937,8 +957,8 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! emissivity and cloud composition emis , inflglw , iceflglw, liqflglw, & ! cloud parameters - cldfr_pass(pt1,:,:) , taucld , zeros(pt1,:,:) , zeros(pt1,:,:), reice, reliq, & - tauaer , & + cldfr_pass_lw(pt1:pt2,:,:) , taucld_lw , zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:), reice, reliq, & + tauaer_lw , & ! output uflx , dflx , hr , uflxc, dflxc , hrc) endif diff --git a/src/extra/model/isca/path_names b/src/extra/model/isca/path_names index 3ffc0f449..c147c0ba3 100644 --- a/src/extra/model/isca/path_names +++ b/src/extra/model/isca/path_names @@ -47,7 +47,7 @@ atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/modules/rrlw_wvn.f90 atmos_param/rrtm_radiation/rrtm_radiation.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/mcica_random_numbers.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_cldprop.f90 -atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rad.nomcica.f90 +atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rad.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rtrn.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_setcoef.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/mcica_subcol_gen_lw.f90 From 8de752fc2247fad1ff9220df6ed34e9d97189aef Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 11:39:35 +0100 Subject: [PATCH 010/304] New socrates set cld file downloaded from LFRic James Manners branch main/branches/dev/jamesmanners/um11.1_solar/src/interface_core/socrates_set_cld.F90 on 07-09-18. --- .../socrates/interface/socrates_set_cld.F90 | 485 ++++++++++++++++++ 1 file changed, 485 insertions(+) create mode 100644 src/atmos_param/socrates/interface/socrates_set_cld.F90 diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 new file mode 100644 index 000000000..25e47a340 --- /dev/null +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -0,0 +1,485 @@ +! *****************************COPYRIGHT******************************* +! (C) Crown copyright Met Office. All rights reserved. +! For further details please refer to the file COPYRIGHT.txt +! which you should have received as part of this distribution. +! *****************************COPYRIGHT******************************* +! +! Set the variables in the Socrates cloud type +! +!------------------------------------------------------------------------------ +module socrates_set_cld +implicit none +character(len=*), parameter, private :: ModuleName = 'SOCRATES_SET_CLD' +contains + +subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & + cloud_frac, conv_frac, & + liq_frac, ice_frac, liq_conv_frac, ice_conv_frac, & + liq_mmr, ice_mmr, liq_conv_mmr, ice_conv_mmr, & + liq_dim, ice_dim, liq_conv_dim, ice_conv_dim, & + dp_corr_strat, dp_corr_conv) + +use def_cld, only: StrCld, allocate_cld, allocate_cld_prsc +use def_control, only: StrCtrl +use def_dimen, only: StrDim +use def_spectrum, only: StrSpecData +use realtype_rd, only: RealK +use rad_pcf, only: & + ip_cloud_homogen, ip_cloud_ice_water, ip_cloud_conv_strat, ip_cloud_csiw, & + ip_clcmp_st_water, ip_clcmp_st_ice, ip_clcmp_cnv_water, ip_clcmp_cnv_ice, & + ip_phase_water, ip_phase_ice, ip_cloud_type_homogen, & + ip_cloud_type_water, ip_cloud_type_ice, & + ip_cloud_type_strat, ip_cloud_type_conv, & + ip_cloud_type_sw, ip_cloud_type_si, ip_cloud_type_cw, ip_cloud_type_ci, & + ip_drop_unparametrized, ip_ice_unparametrized, i_normal, i_err_fatal +use ereport_mod, only: ereport +use errormessagelength_mod, only: errormessagelength + +implicit none + + +! Cloud properties: +type(StrCld), intent(out) :: cld + +! Control options: +type(StrCtrl), intent(in) :: control + +! Dimensions: +type(StrDim), intent(in) :: dimen + +! Spectral data: +type(StrSpecData), intent(in) :: spectrum + +integer, intent(in) :: n_profile +integer, intent(in) :: n_layer + +real(RealK), intent(in), optional :: & + cloud_frac(:,:), conv_frac(:,:), & + liq_frac(:,:), ice_frac(:,:), liq_conv_frac(:,:), ice_conv_frac(:,:), & + liq_mmr(:,:), ice_mmr(:,:), liq_conv_mmr(:,:), ice_conv_mmr(:,:), & + liq_dim(:,:), ice_dim(:,:), liq_conv_dim(:,:), ice_conv_dim(:,:) +! Liquid and ice cloud fractions, gridbox mean mixing ratios, and +! effective dimensions + +real(RealK), intent(in), optional :: dp_corr_strat, dp_corr_conv +! Decorrelation pressure scales for cloud vertical overlap + + +! Local variables +integer :: i, j, k, l +! Loop variables +integer :: i_phase, i_param_type, n_cloud_parameter +! Working variables +integer :: i_cloud_type(dimen%nd_cloud_component) +! Types of cloud to which each component contributes + +real(RealK) :: condensed_min_dim +real(RealK) :: condensed_max_dim +! Minimum and maximum dimensions of each condensed component + +real(RealK) :: eps = EPSILON(1.0) +real(RealK) :: min_cloud_fraction = 0.0001 + +integer :: ierr = i_normal +character (len=*), parameter :: RoutineName = 'SET_CLD' +character (len=errormessagelength) :: cmessage + +! Functions called +integer, external :: set_n_cloud_parameter + + +! Allocate structure for the core radiation code interface +call allocate_cld(cld, dimen, spectrum) +call allocate_cld_prsc(cld, dimen, spectrum) + +if (.not.control%l_cloud) then + return +end if + +!------------------------------------------------------------------------------ +! Set properties of condensed components +!------------------------------------------------------------------------------ + +if (control%l_ice .and. control%l_drop) then + select case (control%i_cloud_representation) + case (ip_cloud_homogen, ip_cloud_ice_water) + cld%n_condensed = 2 + cld%type_condensed(1) = ip_clcmp_st_water + cld%type_condensed(2) = ip_clcmp_st_ice + case (ip_cloud_conv_strat, ip_cloud_csiw) + cld%n_condensed = 4 + cld%type_condensed(1) = ip_clcmp_st_water + cld%type_condensed(2) = ip_clcmp_st_ice + cld%type_condensed(3) = ip_clcmp_cnv_water + cld%type_condensed(4) = ip_clcmp_cnv_ice + end select +else if (control%l_ice .and. .not.control%l_drop) then + select case (control%i_cloud_representation) + case (ip_cloud_homogen, ip_cloud_ice_water) + cld%n_condensed = 1 + cld%type_condensed(1) = ip_clcmp_st_ice + case (ip_cloud_conv_strat, ip_cloud_csiw) + cld%n_condensed = 2 + cld%type_condensed(1) = ip_clcmp_st_ice + cld%type_condensed(2) = ip_clcmp_cnv_ice + end select +else if (.not.control%l_ice .and. control%l_drop) then + select case (control%i_cloud_representation) + case (ip_cloud_homogen, ip_cloud_ice_water) + cld%n_condensed = 1 + cld%type_condensed(1) = ip_clcmp_st_water + case (ip_cloud_conv_strat, ip_cloud_csiw) + cld%n_condensed = 2 + cld%type_condensed(1) = ip_clcmp_st_water + cld%type_condensed(2) = ip_clcmp_cnv_water + end select +else + cmessage = 'Cloud on, but no condensed components included.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) +end if + +do i=1, cld%n_condensed + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + i_phase = ip_phase_water + i_param_type = control%i_st_water + case (ip_clcmp_st_ice) + i_phase = ip_phase_ice + i_param_type = control%i_st_ice + case (ip_clcmp_cnv_water) + i_phase = ip_phase_water + i_param_type = control%i_cnv_water + case (ip_clcmp_cnv_ice) + i_phase = ip_phase_ice + i_param_type = control%i_cnv_ice + end select + + select case (i_phase) + case (ip_phase_water) + if (i_param_type <= 0) then + cld%i_condensed_param(i) = ip_drop_unparametrized + cmessage = 'Prescribed liquid cloud not yet implemented.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (i_param_type > spectrum%dim%nd_drop_type) then + cmessage = 'Liquid cloud type outside allowed range.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (spectrum%drop%l_drop_type(i_param_type)) then + ! Take parametrisation from spectral file + cld%i_condensed_param(i) = spectrum%drop%i_drop_parm(i_param_type) + cld%condensed_n_phf(i) = spectrum%drop%n_phf(i_param_type) + ! DEPENDS ON: set_n_cloud_parameter + n_cloud_parameter = set_n_cloud_parameter( cld%i_condensed_param(i), & + cld%type_condensed(i), cld%condensed_n_phf(i) ) + do j=1, spectrum%basic%n_band + do k=1, n_cloud_parameter + cld%condensed_param_list(k, i, j) & + = spectrum%drop%parm_list(k, j, i_param_type) + end do + end do + ! Assign droplet mass mixing ratio and effective radius + condensed_min_dim = spectrum%drop%parm_min_dim(i_param_type) + condensed_max_dim = spectrum%drop%parm_max_dim(i_param_type) + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + if (present(liq_mmr).and.present(liq_dim)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = liq_mmr(l, k) + cld%condensed_dim_char(l, k, i) = min( max( liq_dim(l, k), & + condensed_min_dim ), condensed_max_dim ) + end do + end do + else + cmessage = 'Liquid MMR and effective radius not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + case (ip_clcmp_cnv_water) + if (present(liq_conv_mmr).and.present(liq_conv_dim)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = liq_conv_mmr(l, k) + cld%condensed_dim_char(l, k, i) = min( max( liq_conv_dim(l, k), & + condensed_min_dim ), condensed_max_dim ) + end do + end do + else + cmessage = 'Convective liquid MMR and effective radius not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + end select + else + cmessage = 'Liquid cloud type not in spectral file.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + case (ip_phase_ice) + if (i_param_type <= 0) then + cld%i_condensed_param(i) = ip_ice_unparametrized + cmessage = 'Prescribed ice cloud not yet implemented.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (i_param_type > spectrum%dim%nd_ice_type) then + cmessage = 'Ice cloud type outside allowed range.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (spectrum%ice%l_ice_type(i_param_type)) then + ! Take parametrisation from spectral file + cld%i_condensed_param(i) = spectrum%ice%i_ice_parm(i_param_type) + cld%condensed_n_phf(i) = spectrum%ice%n_phf(i_param_type) + n_cloud_parameter = set_n_cloud_parameter( cld%i_condensed_param(i), & + cld%type_condensed(i), cld%condensed_n_phf(i) ) + do j=1, spectrum%basic%n_band + do k=1, n_cloud_parameter + cld%condensed_param_list(k, i, j) & + = spectrum%ice%parm_list(k, j, i_param_type) + end do + end do + ! Assign ice mass mixing ratio and effective dimension + condensed_min_dim = spectrum%ice%parm_min_dim(i_param_type) + condensed_max_dim = spectrum%ice%parm_max_dim(i_param_type) + select case (cld%type_condensed(i)) + case (ip_clcmp_st_ice) + if (present(ice_mmr).and.present(ice_dim)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = ice_mmr(l, k) + cld%condensed_dim_char(l, k, i) = min( max( ice_dim(l, k), & + condensed_min_dim ), condensed_max_dim ) + end do + end do + else + cmessage = 'Ice MMR and effective radius not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + case (ip_clcmp_cnv_ice) + if (present(ice_conv_mmr).and.present(ice_conv_dim)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = ice_conv_mmr(l, k) + cld%condensed_dim_char(l, k, i) = min( max( ice_conv_dim(l, k), & + condensed_min_dim ), condensed_max_dim ) + end do + end do + else + cmessage = 'Convective ice MMR and effective radius not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + end select + else + cmessage = 'Ice cloud type not in spectral file.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + end select +end do + +! Set the decorrelation scalings for cloud vertical overlap +if (present(dp_corr_strat)) then + cld%dp_corr_strat = dp_corr_strat +else + cld%dp_corr_strat = 0.0_RealK +end if +if (present(dp_corr_conv)) then + cld%dp_corr_conv = dp_corr_conv +else + cld%dp_corr_conv = 0.0_RealK +end if + + +!------------------------------------------------------------------------------ +! Set cloud amounts and convert mixing ratios to in-cloud values +!------------------------------------------------------------------------------ + +! Set cloud fractions +select case (control%i_cloud_representation) +case (ip_cloud_homogen) + cld%n_cloud_type = 1 + do i = 1, cld%n_condensed + i_cloud_type(i) = ip_cloud_type_homogen + end do + if (present(cloud_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_homogen) = cloud_frac(l, k) + end do + end do + else + cmessage = 'Cloud fraction not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if +case (ip_cloud_ice_water) + cld%n_cloud_type = 2 + do i = 1, cld%n_condensed + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + i_cloud_type(i) = ip_cloud_type_water + case (ip_clcmp_st_ice) + i_cloud_type(i) = ip_cloud_type_ice + end select + end do + if (present(liq_frac).and.present(ice_frac).and.present(cloud_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + if (liq_frac(l, k) + ice_frac(l, k) > eps) then + ! Split mixed phase fraction between ice and liquid + cld%frac_cloud(l, k, ip_cloud_type_water) = & + cloud_frac(l, k)*liq_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) + cld%frac_cloud(l, k, ip_cloud_type_ice) = & + cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) + else + cld%frac_cloud(l, k, ip_cloud_type_water) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_RealK + end if + end do + end do + else if (present(liq_frac).and.present(ice_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_water) = liq_frac(l, k) + cld%frac_cloud(l, k, ip_cloud_type_ice) = ice_frac(l, k) + end do + end do + else + cmessage = 'Liquid and ice cloud fractions not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if +case (ip_cloud_conv_strat) + cld%n_cloud_type = 2 + do i = 1, cld%n_condensed + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + i_cloud_type(i) = ip_cloud_type_strat + case (ip_clcmp_st_ice) + i_cloud_type(i) = ip_cloud_type_strat + case (ip_clcmp_cnv_water) + i_cloud_type(i) = ip_cloud_type_conv + case (ip_clcmp_cnv_ice) + i_cloud_type(i) = ip_cloud_type_conv + end select + end do + if (present(cloud_frac).and.present(conv_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_strat) = cloud_frac(l, k) + cld%frac_cloud(l, k, ip_cloud_type_conv) = conv_frac(l, k) + end do + end do + else + cmessage = 'Cloud fraction and convective cloud fraction not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if +case (ip_cloud_csiw) + cld%n_cloud_type = 4 + do i = 1, cld%n_condensed + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + i_cloud_type(i) = ip_cloud_type_sw + case (ip_clcmp_st_ice) + i_cloud_type(i) = ip_cloud_type_si + case (ip_clcmp_cnv_water) + i_cloud_type(i) = ip_cloud_type_cw + case (ip_clcmp_cnv_ice) + i_cloud_type(i) = ip_cloud_type_ci + end select + end do + if (present(liq_frac).and.present(ice_frac).and.present(cloud_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + if (liq_frac(l, k) + ice_frac(l, k) > eps) then + ! Split mixed phase fraction between ice and liquid + cld%frac_cloud(l, k, ip_cloud_type_sw) = & + cloud_frac(l, k)*liq_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) + cld%frac_cloud(l, k, ip_cloud_type_si) = & + cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) + else + cld%frac_cloud(l, k, ip_cloud_type_sw) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_si) = 0.0_RealK + end if + end do + end do + else if (present(liq_frac).and.present(ice_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_sw) = liq_frac(l, k) + cld%frac_cloud(l, k, ip_cloud_type_si) = ice_frac(l, k) + end do + end do + else + cmessage = 'Liquid and ice cloud fractions not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + if (present(liq_conv_frac).and.present(ice_conv_frac).and. & + present(conv_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + if (liq_conv_frac(l, k) + ice_conv_frac(l, k) > eps) then + ! Split mixed phase fraction between ice and liquid + cld%frac_cloud(l, k, ip_cloud_type_cw) = conv_frac(l, k) & + *liq_conv_frac(l, k) / (liq_conv_frac(l, k)+ice_conv_frac(l, k)) + cld%frac_cloud(l, k, ip_cloud_type_ci) = conv_frac(l, k) & + *ice_conv_frac(l, k) / (liq_conv_frac(l, k)+ice_conv_frac(l, k)) + else + cld%frac_cloud(l, k, ip_cloud_type_cw) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_ci) = 0.0_RealK + end if + end do + end do + else if (present(liq_conv_frac).and.present(ice_conv_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_cw) = liq_conv_frac(l, k) + cld%frac_cloud(l, k, ip_cloud_type_ci) = ice_conv_frac(l, k) + end do + end do + else + cmessage = 'Liquid and ice convective cloud fractions not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if +end select + +! Convert mass mixing ratios to in-cloud values +do i = 1, cld%n_condensed + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = cld%condensed_mix_ratio(l, k, i) & + / max(cld%frac_cloud(l, k, i_cloud_type(i)), eps) + end do + end do +end do + +! Normalise the cloud fractions +do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%w_cloud(l, k) = sum(cld%frac_cloud(l, k, 1:cld%n_cloud_type)) + if (cld%w_cloud(l, k) > min_cloud_fraction) then + do j=1, cld%n_cloud_type + cld%frac_cloud(l, k, j) = cld%frac_cloud(l, k, j) / cld%w_cloud(l, k) + end do + else + cld%w_cloud(l, k) = 0.0_RealK + cld%frac_cloud(l, k, 1:cld%n_cloud_type) = 0.0_RealK + end if + if (cld%w_cloud(l, k) > 1.0_RealK + min_cloud_fraction) then + cmessage = 'Cloud fraction greater than 1.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (cld%w_cloud(l, k) > 1.0_RealK) then + cld%w_cloud(l, k) = 1.0_RealK + end if + end do +end do + +end subroutine set_cld +end module socrates_set_cld From 0b6221e9bb6cec6a35215f7ca6e3df7e0db73e28 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 12:54:05 +0100 Subject: [PATCH 011/304] Changes to pass socrates clouds from simple cloud scheme. --- .../socrates/interface/read_control.F90 | 8 +- .../socrates/interface/socrates_calc.F90 | 33 ++++-- .../interface/socrates_config_mod.f90 | 6 +- .../socrates/interface/socrates_interface.F90 | 54 ++++++++-- .../socrates/interface/socrates_set_cld.F90 | 101 ++++++++++-------- .../driver/solo/idealized_moist_phys.F90 | 5 +- src/extra/model/socrates/path_names | 2 +- 7 files changed, 147 insertions(+), 62 deletions(-) diff --git a/src/atmos_param/socrates/interface/read_control.F90 b/src/atmos_param/socrates/interface/read_control.F90 index 5ed7fae81..92d5eeefb 100644 --- a/src/atmos_param/socrates/interface/read_control.F90 +++ b/src/atmos_param/socrates/interface/read_control.F90 @@ -15,7 +15,7 @@ SUBROUTINE read_control(control, spectrum) USE rad_pcf USE def_control, ONLY: StrCtrl, allocate_control USE def_spectrum, ONLY: StrSpecData -USE socrates_config_mod, ONLY: l_planet_grey_surface, inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a +USE socrates_config_mod, ONLY: l_planet_grey_surface, inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, account_for_clouds_in_socrates IMPLICIT NONE @@ -93,7 +93,11 @@ SUBROUTINE read_control(control, spectrum) control%i_gas_overlap = ip_overlap_k_eqv_scl ! Properties of clouds -control%i_cloud_representation = ip_cloud_off +if (account_for_clouds_in_socrates) then + control%i_cloud_representation = ip_cloud_ice_water +else + control%i_cloud_representation = ip_cloud_off +end if control%i_overlap = ip_max_rand control%i_inhom = ip_homogeneous diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index 6a07a8d3b..ab545635e 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -33,6 +33,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity, & layer_heat_capacity, & + cld_frac, reff_rad, mmr_cl_rad, & flux_direct, flux_down, flux_up, heating_rate, spectral_olr) use rad_pcf @@ -45,12 +46,12 @@ subroutine socrates_calc(Time_diag,control, spectrum, use def_aer, only: StrAer, deallocate_aer, deallocate_aer_prsc use def_out, only: StrOut, deallocate_out -use set_control_mod, only: set_control -use set_dimen_mod, only: set_dimen -use set_atm_mod, only: set_atm -use set_bound_mod, only: set_bound -use set_cld_mod, only: set_cld -use set_aer_mod, only: set_aer +use set_control_mod, only: set_control +use set_dimen_mod, only: set_dimen +use set_atm_mod, only: set_atm +use set_bound_mod, only: set_bound +use socrates_set_cld, only: set_cld +use set_aer_mod, only: set_aer use soc_constants_mod, only: i_def, r_def @@ -114,6 +115,15 @@ subroutine socrates_calc(Time_diag,control, spectrum, real(r_def), intent(in) :: layer_heat_capacity(n_profile, n_layer) ! Heat capacity of layer +real(r_def), intent(in) :: cld_frac(n_profile, n_layer) +! Cloud fraction at layer centres + +real(r_def), intent(in) :: reff_rad(n_profile, n_layer) +! Cloud liquid particle radius from simple cloud scheme + +real(r_def), intent(in) :: mmr_cl_rad(n_profile, n_layer) +! Cloud liquid mmr at layer centres + real(r_def), intent(out) :: flux_direct(n_profile, 0:n_layer) ! Direct (unscattered) downwards flux (Wm-2) real(r_def), intent(out) :: flux_down(n_profile, 0:n_layer) @@ -151,6 +161,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, !DIAG Diagnostic logical :: used +real(r_def) :: zeros_cld(n_profile, n_layer) call set_control(control) @@ -165,7 +176,15 @@ subroutine socrates_calc(Time_diag,control, spectrum, t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity) -call set_cld(control, dimen, spectrum, cld, n_profile) +! call set_cld(control, dimen, spectrum, cld, n_profile) + +call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & + liq_frac = cld_frac, & + ice_frac = zeros_cld, & + liq_mmr = mmr_cl_rad, & + ice_mmr = zeros_cld, & + liq_dim = reff_rad, & + ice_dim = zeros_cld ) call set_aer(control, dimen, spectrum, aer, n_profile) diff --git a/src/atmos_param/socrates/interface/socrates_config_mod.f90 b/src/atmos_param/socrates/interface/socrates_config_mod.f90 index 7829a2dc0..014227dbb 100644 --- a/src/atmos_param/socrates/interface/socrates_config_mod.f90 +++ b/src/atmos_param/socrates/interface/socrates_config_mod.f90 @@ -37,7 +37,9 @@ module socrates_config_mod logical :: input_co2_mmr=.false. !Socrates wants input concentrations as mmr not vmr, so need to make sure input data supplied is converted if necessary logical :: use_pressure_interp_for_half_levels = .False. !By default (.False.) does linear interpolation in height for half-level temperatures. True does linear interp using pressure. - + + logical :: account_for_clouds_in_socrates = .false. !Do we want to account for the radiative effects of clouds in socrates? + ! Incoming radiation options for namelist integer :: solday=0 ! if >0, do perpetual run corresponding to day of the year = solday \in [0,days per year] @@ -122,6 +124,6 @@ module socrates_config_mod hfc134a_mix_ratio, & inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, & inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, & - use_pressure_interp_for_half_levels + use_pressure_interp_for_half_levels, account_for_clouds_in_socrates end module socrates_config_mod diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index df3fdb547..6a4f5eaa4 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -403,6 +403,7 @@ end subroutine socrates_init ! ----------------------------------------------------------------------------- subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, fms_coszen, fms_rrsun, n_profile, n_layer, & + fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & output_heating_rate, output_flux_down, output_flux_up, output_soc_spectral_olr, output_flux_direct, t_half_level_out ) use realtype_rd @@ -441,7 +442,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), intent(in) :: rlat(:,:) real(r_def), intent(in) :: fms_z_full(:,:,:), fms_z_half(:,:,:) real(r_def), intent(in) :: fms_rrsun - + real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) ! Output arrays real(r_def), intent(out) :: output_heating_rate(:,:,:) @@ -462,7 +463,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & soc_heating_rate, input_o3_mixing_ratio, & input_co2_mixing_ratio,z_full_reshaped real, dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & - soc_flux_down, soc_flux_up, z_half_reshaped + soc_flux_down, soc_flux_up, z_half_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad real, dimension(n_profile) :: input_t_surf, input_cos_zenith_angle, input_solar_irrad, & input_orog_corr, input_planet_albedo @@ -502,7 +503,11 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_t = reshape(fms_temp(:,:,:),(/si*sj,sk /)) input_p = reshape(fms_p_full(:,:,:),(/si*sj,sk /)) input_p_level = reshape(fms_p_half(:,:,:),(/si*sj,sk+1 /)) - + + input_cld_frac = reshape(fms_cld_frac(:,:,:),(/si*sj,sk /)) + input_reff_rad = reshape(fms_reff_rad(:,:,:),(/si*sj,sk /)) + input_mmr_cl_rad = reshape(fms_mmr_cl_rad(:,:,:),(/si*sj,sk/)) + if (account_for_effect_of_water == .true.) then input_mixing_ratio = reshape(fms_spec_hum(:,:,:) / (1. - fms_spec_hum(:,:,:)),(/si*sj,sk /)) !Mass mixing ratio = q / (1-q) else @@ -623,6 +628,9 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_albedo(idx_chunk_start:idx_chunk_end), & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & + input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_reff_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & soc_flux_down(idx_chunk_start:idx_chunk_end,:), & soc_flux_up(idx_chunk_start:idx_chunk_end,:), & @@ -649,6 +657,9 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_albedo(idx_chunk_start:idx_chunk_end), & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & + input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_reff_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & soc_flux_down(idx_chunk_start:idx_chunk_end,:), & soc_flux_up(idx_chunk_start:idx_chunk_end,:), & @@ -674,7 +685,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & end subroutine socrates_interface subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf_in, p_full_in, p_half_in, z_full_in, z_half_in, albedo_in, & - temp_tend, net_surf_sw_down, surf_lw_down, delta_t) + temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple, cf_rad, reff_rad, qcl_rad) use astronomy_mod, only: diurnal_solar use constants_mod, only: pi, wtmco2, wtmozone, rdgas, gas_constant @@ -689,11 +700,13 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real, intent(inout), dimension(:,:,:) :: temp_tend real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down real, intent(in) :: delta_t + logical, intent(in) :: do_cloud_simple + real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad integer(i_def) :: n_profile, n_layer real(r_def), dimension(size(temp_in,1), size(temp_in,2)) :: t_surf_for_soc, rad_lat_soc, rad_lon_soc, albedo_soc - real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up, z_full_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up, z_full_soc, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, z_half_soc logical :: soc_lw_mode, used @@ -899,6 +912,33 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif + if(do_cloud_simple.and.account_for_clouds_in_socrates) then + cld_frac_soc = REAL(cf_rad, kind(r_def)) + reff_rad_soc = REAL(reff_rad, kind(r_def)) + + qcl_rad_soc = REAL(qcl_rad, kind(r_def)) + mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) + + elseif(do_cloud_simple.and..not.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) + + cld_frac_soc = 0. + reff_rad_soc = 0. + mmr_cl_rad_soc = 0. + + elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) + + cld_frac_soc = 0. + reff_rad_soc = 0. + mmr_cl_rad_soc = 0. + + endif + n_profile = INT(size(temp_in,2)*size(temp_in,1), kind(i_def)) n_layer = INT(size(temp_in,3), kind(i_def)) t_surf_for_soc = REAL(t_surf_in(:,:), kind(r_def)) @@ -921,7 +961,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) + output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer)) @@ -936,7 +976,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf soc_lw_mode = .FALSE. CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up) + output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc) tg_tmp_soc = tg_tmp_soc + output_heating_rate_sw*delta_t !Output heating rate in K/s, so is a temperature tendency net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer)-output_soc_flux_sw_up(:,:,n_layer) ) diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 index 25e47a340..d98b215a6 100644 --- a/src/atmos_param/socrates/interface/socrates_set_cld.F90 +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -23,7 +23,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & use def_control, only: StrCtrl use def_dimen, only: StrDim use def_spectrum, only: StrSpecData -use realtype_rd, only: RealK +use soc_constants_mod, only: i_def, r_def use rad_pcf, only: & ip_cloud_homogen, ip_cloud_ice_water, ip_cloud_conv_strat, ip_cloud_csiw, & ip_clcmp_st_water, ip_clcmp_st_ice, ip_clcmp_cnv_water, ip_clcmp_cnv_ice, & @@ -32,8 +32,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & ip_cloud_type_strat, ip_cloud_type_conv, & ip_cloud_type_sw, ip_cloud_type_si, ip_cloud_type_cw, ip_cloud_type_ci, & ip_drop_unparametrized, ip_ice_unparametrized, i_normal, i_err_fatal -use ereport_mod, only: ereport -use errormessagelength_mod, only: errormessagelength + +use fms_mod, only: error_mesg, FATAL implicit none @@ -50,10 +50,10 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & ! Spectral data: type(StrSpecData), intent(in) :: spectrum -integer, intent(in) :: n_profile -integer, intent(in) :: n_layer +integer(i_def), intent(in) :: n_profile +integer(i_def), intent(in) :: n_layer -real(RealK), intent(in), optional :: & +real(r_def), intent(in), optional :: & cloud_frac(:,:), conv_frac(:,:), & liq_frac(:,:), ice_frac(:,:), liq_conv_frac(:,:), ice_conv_frac(:,:), & liq_mmr(:,:), ice_mmr(:,:), liq_conv_mmr(:,:), ice_conv_mmr(:,:), & @@ -61,7 +61,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & ! Liquid and ice cloud fractions, gridbox mean mixing ratios, and ! effective dimensions -real(RealK), intent(in), optional :: dp_corr_strat, dp_corr_conv +real(r_def), intent(in), optional :: dp_corr_strat, dp_corr_conv ! Decorrelation pressure scales for cloud vertical overlap @@ -73,16 +73,16 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & integer :: i_cloud_type(dimen%nd_cloud_component) ! Types of cloud to which each component contributes -real(RealK) :: condensed_min_dim -real(RealK) :: condensed_max_dim +real(r_def) :: condensed_min_dim +real(r_def) :: condensed_max_dim ! Minimum and maximum dimensions of each condensed component -real(RealK) :: eps = EPSILON(1.0) -real(RealK) :: min_cloud_fraction = 0.0001 +real(r_def) :: eps = EPSILON(1.0) +real(r_def) :: min_cloud_fraction = 0.0001 integer :: ierr = i_normal character (len=*), parameter :: RoutineName = 'SET_CLD' -character (len=errormessagelength) :: cmessage +character (len=128) :: cmessage ! Functions called integer, external :: set_n_cloud_parameter @@ -136,7 +136,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Cloud on, but no condensed components included.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) +! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if do i=1, cld%n_condensed @@ -161,11 +162,13 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%i_condensed_param(i) = ip_drop_unparametrized cmessage = 'Prescribed liquid cloud not yet implemented.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) else if (i_param_type > spectrum%dim%nd_drop_type) then cmessage = 'Liquid cloud type outside allowed range.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) else if (spectrum%drop%l_drop_type(i_param_type)) then ! Take parametrisation from spectral file cld%i_condensed_param(i) = spectrum%drop%i_drop_parm(i_param_type) @@ -195,7 +198,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Liquid MMR and effective radius not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_clcmp_cnv_water) if (present(liq_conv_mmr).and.present(liq_conv_dim)) then @@ -209,24 +213,28 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Convective liquid MMR and effective radius not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if end select else cmessage = 'Liquid cloud type not in spectral file.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_phase_ice) if (i_param_type <= 0) then cld%i_condensed_param(i) = ip_ice_unparametrized cmessage = 'Prescribed ice cloud not yet implemented.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) else if (i_param_type > spectrum%dim%nd_ice_type) then cmessage = 'Ice cloud type outside allowed range.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) else if (spectrum%ice%l_ice_type(i_param_type)) then ! Take parametrisation from spectral file cld%i_condensed_param(i) = spectrum%ice%i_ice_parm(i_param_type) @@ -255,7 +263,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Ice MMR and effective radius not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_clcmp_cnv_ice) if (present(ice_conv_mmr).and.present(ice_conv_dim)) then @@ -269,13 +278,15 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Convective ice MMR and effective radius not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if end select else cmessage = 'Ice cloud type not in spectral file.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if end select end do @@ -284,12 +295,12 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & if (present(dp_corr_strat)) then cld%dp_corr_strat = dp_corr_strat else - cld%dp_corr_strat = 0.0_RealK + cld%dp_corr_strat = 0.0_r_def end if if (present(dp_corr_conv)) then cld%dp_corr_conv = dp_corr_conv else - cld%dp_corr_conv = 0.0_RealK + cld%dp_corr_conv = 0.0_r_def end if @@ -313,7 +324,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Cloud fraction not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_cloud_ice_water) cld%n_cloud_type = 2 @@ -335,8 +347,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%frac_cloud(l, k, ip_cloud_type_ice) = & cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) else - cld%frac_cloud(l, k, ip_cloud_type_water) = 0.0_RealK - cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_water) = 0.0_r_def + cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_r_def end if end do end do @@ -350,7 +362,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Liquid and ice cloud fractions not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_cloud_conv_strat) cld%n_cloud_type = 2 @@ -376,7 +389,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Cloud fraction and convective cloud fraction not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_cloud_csiw) cld%n_cloud_type = 4 @@ -402,8 +416,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%frac_cloud(l, k, ip_cloud_type_si) = & cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) else - cld%frac_cloud(l, k, ip_cloud_type_sw) = 0.0_RealK - cld%frac_cloud(l, k, ip_cloud_type_si) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_sw) = 0.0_r_def + cld%frac_cloud(l, k, ip_cloud_type_si) = 0.0_r_def end if end do end do @@ -417,7 +431,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Liquid and ice cloud fractions not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if if (present(liq_conv_frac).and.present(ice_conv_frac).and. & present(conv_frac)) then @@ -430,8 +445,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%frac_cloud(l, k, ip_cloud_type_ci) = conv_frac(l, k) & *ice_conv_frac(l, k) / (liq_conv_frac(l, k)+ice_conv_frac(l, k)) else - cld%frac_cloud(l, k, ip_cloud_type_cw) = 0.0_RealK - cld%frac_cloud(l, k, ip_cloud_type_ci) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_cw) = 0.0_r_def + cld%frac_cloud(l, k, ip_cloud_type_ci) = 0.0_r_def end if end do end do @@ -445,7 +460,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Liquid and ice convective cloud fractions not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if end select @@ -468,15 +484,16 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%frac_cloud(l, k, j) = cld%frac_cloud(l, k, j) / cld%w_cloud(l, k) end do else - cld%w_cloud(l, k) = 0.0_RealK - cld%frac_cloud(l, k, 1:cld%n_cloud_type) = 0.0_RealK + cld%w_cloud(l, k) = 0.0_r_def + cld%frac_cloud(l, k, 1:cld%n_cloud_type) = 0.0_r_def end if - if (cld%w_cloud(l, k) > 1.0_RealK + min_cloud_fraction) then + if (cld%w_cloud(l, k) > 1.0_r_def + min_cloud_fraction) then cmessage = 'Cloud fraction greater than 1.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) - else if (cld%w_cloud(l, k) > 1.0_RealK) then - cld%w_cloud(l, k) = 1.0_RealK + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) + else if (cld%w_cloud(l, k) > 1.0_r_def) then + cld%w_cloud(l, k) = 1.0_r_def end if end do end do diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 6f63b36ac..ed49dcf23 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -938,6 +938,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg endif +! write(6,*) minval(cf_rad), maxval(cf_rad), minval(reff_rad), maxval(reff_rad), minval(qcl_rad), maxval(qcl_rad) + tmp1 = maxval(reff_rad) tmp2 = maxval(cf_rad) @@ -1053,7 +1055,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! Socrates interface call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), t_surf(:,:), p_full(:,:,:,current), & - p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t) + p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), reff_rad(:,:,:), & + qcl_rad(:,:,:) ) endif #endif diff --git a/src/extra/model/socrates/path_names b/src/extra/model/socrates/path_names index 2f4dac9eb..7ec1ee810 100644 --- a/src/extra/model/socrates/path_names +++ b/src/extra/model/socrates/path_names @@ -583,7 +583,7 @@ atmos_param/socrates/src/trunk/src/general/calc_planck_tbl.f atmos_param/socrates/src/trunk/src/general/read_word.f atmos_param/socrates/interface/read_control.F90 atmos_param/socrates/interface/set_atm.F90 -atmos_param/socrates/interface/set_cld.F90 +atmos_param/socrates/interface/socrates_set_cld.F90 atmos_param/socrates/interface/set_dimen.F90 atmos_param/socrates/interface/socrates_config_mod.f90 atmos_param/socrates/interface/compress_spectrum.F90 From be650131e673e5e8232af3e3336f9f8587883e7a Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 13:02:38 +0100 Subject: [PATCH 012/304] Turned socrates clouds on for the first time, and hit error where cloud fraction is above one. Check this with Penny. --- .../socrates/interface/socrates_interface.F90 | 27 ++++++++++++------- .../driver/solo/idealized_moist_phys.F90 | 2 +- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 6a4f5eaa4..37fd7a59f 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -77,7 +77,7 @@ MODULE socrates_interface_mod CONTAINS - SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb, delta_t_atmos) + SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb, delta_t_atmos, do_cloud_simple) !! Initialises Socrates spectra, arrays, and constants USE astronomy_mod, only: astronomy_init @@ -91,6 +91,7 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb INTEGER, INTENT(in) :: is, ie, js, je, num_levels REAL, INTENT(in) , DIMENSION(:,:) :: lat REAL, INTENT(in) , DIMENSION(:,:) :: lonb, latb + LOGICAL, INTENT(IN) :: do_cloud_simple integer :: io, stdlog_unit integer :: res, time_step_seconds @@ -114,6 +115,18 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb !Initialise astronomy call astronomy_init + if(do_cloud_simple.and..not.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) + + elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) + + endif + !Initialise variables related to radiation timestep call get_time(delta_t_atmos,time_step_seconds) @@ -921,18 +934,12 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf elseif(do_cloud_simple.and..not.account_for_clouds_in_socrates) then - call error_mesg( 'run_socrates', & - 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) - cld_frac_soc = 0. reff_rad_soc = 0. mmr_cl_rad_soc = 0. elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then - call error_mesg( 'run_socrates', & - 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) - cld_frac_soc = 0. reff_rad_soc = 0. mmr_cl_rad_soc = 0. @@ -961,7 +968,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) + cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer)) @@ -976,7 +984,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf soc_lw_mode = .FALSE. CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc) + cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up) tg_tmp_soc = tg_tmp_soc + output_heating_rate_sw*delta_t !Output heating rate in K/s, so is a temperature tendency net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer)-output_soc_flux_sw_up(:,:,n_layer) ) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index ed49dcf23..0262dcde4 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -718,7 +718,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l endif #else if (do_socrates_radiation) then - call socrates_init(is, ie, js, je, num_levels, axes, Time, rad_lat, rad_lonb_2d, rad_latb_2d, Time_step_in) + call socrates_init(is, ie, js, je, num_levels, axes, Time, rad_lat, rad_lonb_2d, rad_latb_2d, Time_step_in, do_cloud_simple) endif #endif From 8bafc8c9d79073b2af23b58e54ee20b8d5eca16d Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 14:35:51 +0100 Subject: [PATCH 013/304] Initialised zeros array and getting seg-faults when ice fraction is not 1. --- src/atmos_param/socrates/interface/socrates_calc.F90 | 6 ++++-- src/atmos_param/socrates/interface/socrates_interface.F90 | 2 +- src/atmos_param/socrates/interface/socrates_set_cld.F90 | 1 + src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 6 +++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index ab545635e..b36e0ff7e 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -161,7 +161,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, !DIAG Diagnostic logical :: used -real(r_def) :: zeros_cld(n_profile, n_layer) +real(r_def) :: zeros_cld(n_profile, n_layer), ten_microns_cld(n_profile, n_layer) call set_control(control) @@ -178,9 +178,11 @@ subroutine socrates_calc(Time_diag,control, spectrum, ! call set_cld(control, dimen, spectrum, cld, n_profile) + zeros_cld = 0. + ten_microns_cld = 1. call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & liq_frac = cld_frac, & - ice_frac = zeros_cld, & + ice_frac = ten_microns_cld, & liq_mmr = mmr_cl_rad, & ice_mmr = zeros_cld, & liq_dim = reff_rad, & diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 37fd7a59f..0e870017c 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -930,7 +930,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf reff_rad_soc = REAL(reff_rad, kind(r_def)) qcl_rad_soc = REAL(qcl_rad, kind(r_def)) - mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) + mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) !check if qcl is indeed specific humidity and not mmr elseif(do_cloud_simple.and..not.account_for_clouds_in_socrates) then diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 index d98b215a6..99fd4a30e 100644 --- a/src/atmos_param/socrates/interface/socrates_set_cld.F90 +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -482,6 +482,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & if (cld%w_cloud(l, k) > min_cloud_fraction) then do j=1, cld%n_cloud_type cld%frac_cloud(l, k, j) = cld%frac_cloud(l, k, j) / cld%w_cloud(l, k) + ! write(6,*) cld%frac_cloud(l, k, j) / cld%w_cloud(l, k), cld%frac_cloud(l, k, j) , cld%w_cloud(l, k), 'div?', cld%n_cloud_type end do else cld%w_cloud(l, k) = 0.0_r_def diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 0262dcde4..fcddca274 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -1053,7 +1053,11 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg #else if (do_socrates_radiation) then ! Socrates interface - + + if(do_cloud_simple) then + reff_rad = 1.e-6 * reff_rad ! Simple cloud scheme outputs radii in microns. Socrates expects it in metres. + endif + call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), t_surf(:,:), p_full(:,:,:,current), & p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), reff_rad(:,:,:), & qcl_rad(:,:,:) ) From e22449c8a3ee1203bfea2f087838df843e90ddf2 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 11:15:32 +0100 Subject: [PATCH 014/304] Update debugging flag to get socrities to compile --- src/extra/python/isca/templates/mkmf.template.debug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extra/python/isca/templates/mkmf.template.debug b/src/extra/python/isca/templates/mkmf.template.debug index 15afb1696..45d7e20a3 100644 --- a/src/extra/python/isca/templates/mkmf.template.debug +++ b/src/extra/python/isca/templates/mkmf.template.debug @@ -19,7 +19,7 @@ NETCDF_LIBS = `nc-config --libs` # This suppresses the warning: `warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value.` of which # there are a lot of instances in the GFDL codebase. FFLAGS_DEBUG = -check -check noarg_temp_created -check nopointer -warn -warn noerrors -debug variable_locations -inline_debug_info -fpe0 -traceback -ftrapuv -FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -fpic $(FFLAGS_DEBUG) +FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -mcmodel large $(FFLAGS_DEBUG) FC = $(F90) LD = $(F90) $(NETCDF_LIBS) #CC = mpicc From 3bbb061c18cb2e39e2f99f0c1c2746343455190f Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 11:16:31 +0100 Subject: [PATCH 015/304] Minor changes to soc test case for debugging. --- .../socrates_test/socrates_aquaplanet.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 7b926d6b7..806cf174d 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 16 +NCORES = 1 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -78,6 +78,7 @@ 'dt_rad':3600, 'store_intermediate_rad':True, 'chunk_size': 16, + 'account_for_clouds_in_socrates': True, }, 'idealized_moist_phys_nml': { 'do_damping': True, @@ -98,10 +99,7 @@ 'simple_cca':0.0, 'rhcsfc': 0.95, 'rhc700': 0.7, - 'rhc200': 0.3, - 'rhmsfc': 0.95, - 'rhm700': 0.7, - 'rhm200': 0.3, + 'rhc200': 0.3 }, 'vert_turb_driver_nml': { @@ -148,8 +146,9 @@ }, 'sat_vapor_pres_nml': { - 'do_simple':True - }, + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, 'damping_driver_nml': { 'do_rayleigh': True, @@ -191,7 +190,7 @@ #Lets do a run! if __name__=="__main__": - cb.compile() + cb.compile(debug=True) #Set up the experiment object, with the first argument being the experiment name. #This will be the name of the folder that the data will appear in. @@ -203,6 +202,6 @@ exp.namelist = namelist.copy() - exp.run(1, use_restart=False, num_cores=NCORES) + exp.run(1, use_restart=False, num_cores=NCORES, run_idb=True, overwrite_data=True) # for i in range(2,121): # exp.run(i, num_cores=NCORES) From 7bf423ab45ce57b11b66211414ffb49014295974 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:42:36 +0100 Subject: [PATCH 016/304] Remove debug and account for clouds flag --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index d630867c1..f2092f0da 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 1 +NCORES = 16 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -84,7 +84,6 @@ 'dt_rad':3600, 'store_intermediate_rad':True, 'chunk_size': 16, - 'account_for_clouds_in_socrates': True, 'use_pressure_interp_for_half_levels':False, 'tidally_locked':False }, @@ -100,7 +99,7 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True, + 'do_cloud_simple': True }, 'cloud_simple_nml': { @@ -198,8 +197,8 @@ #Lets do a run! if __name__=="__main__": - cb.compile(debug=True) - exp.run(1, use_restart=False, num_cores=NCORES)#, run_idb=True, overwrite_data=True) + cb.compile(debug=False) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) # for i in range(2,121): # exp.run(i, num_cores=NCORES) From 84fcf829e10f258474352e1a0bd3da5707c45d6f Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:43:53 +0100 Subject: [PATCH 017/304] Socrates is not working properly with idb. Break points not behaving logically. Cant confirm the compile is working properly --- src/extra/python/isca/templates/mkmf.template.debug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extra/python/isca/templates/mkmf.template.debug b/src/extra/python/isca/templates/mkmf.template.debug index 45d7e20a3..15afb1696 100644 --- a/src/extra/python/isca/templates/mkmf.template.debug +++ b/src/extra/python/isca/templates/mkmf.template.debug @@ -19,7 +19,7 @@ NETCDF_LIBS = `nc-config --libs` # This suppresses the warning: `warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value.` of which # there are a lot of instances in the GFDL codebase. FFLAGS_DEBUG = -check -check noarg_temp_created -check nopointer -warn -warn noerrors -debug variable_locations -inline_debug_info -fpe0 -traceback -ftrapuv -FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -mcmodel large $(FFLAGS_DEBUG) +FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -fpic $(FFLAGS_DEBUG) FC = $(F90) LD = $(F90) $(NETCDF_LIBS) #CC = mpicc From 4a41f3a611967696d737e22b6034e25afaab97d2 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:44:27 +0100 Subject: [PATCH 018/304] Removed additional unused files in order to get code to compile for using simple clouds and soc --- src/extra/model/socrates/path_names | 91 ----------------------------- 1 file changed, 91 deletions(-) diff --git a/src/extra/model/socrates/path_names b/src/extra/model/socrates/path_names index 7ec1ee810..1a143cb31 100644 --- a/src/extra/model/socrates/path_names +++ b/src/extra/model/socrates/path_names @@ -329,89 +329,6 @@ atmos_param/socrates/src/trunk/src/radiance_core/monochromatic_radiance.F90 atmos_param/socrates/src/trunk/src/radiance_core/aggregate_cloud.F90 atmos_param/socrates/src/trunk/src/radiance_core/radiance_calc.F90 atmos_param/socrates/src/trunk/src/radiance_core/ir_source.F90 -atmos_param/socrates/src/trunk/src/scatter/conjugate_gradient_cloud_90.f90 -atmos_param/socrates/src/trunk/src/scatter/method_weight_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/select_weight_scatter_90.f90 -atmos_param/socrates/src/trunk/src/scatter/measure_particle_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/prec_integral_tcf.f90 -atmos_param/socrates/src/trunk/src/scatter/def_s_scat_prop.f90 -atmos_param/socrates/src/trunk/src/scatter/db_scatter_integral.f90 -atmos_param/socrates/src/trunk/src/scatter/weightings_90.f90 -atmos_param/socrates/src/trunk/src/scatter/def_db_ss_mono.f90 -atmos_param/socrates/src/trunk/src/scatter/cloud_fitting.f90 -atmos_param/socrates/src/trunk/src/scatter/shape_particle_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/number_particle_90.f90 -atmos_param/socrates/src/trunk/src/scatter/db_interp_ss_mono.f90 -atmos_param/socrates/src/trunk/src/scatter/db_read_single_wavelength.f90 -atmos_param/socrates/src/trunk/src/scatter/get_refract_index.f90 -atmos_param/socrates/src/trunk/src/scatter/read_scatter_block_90.f90 -atmos_param/socrates/src/trunk/src/scatter/proj_area_particle.f90 -atmos_param/socrates/src/trunk/src/scatter/line_search_cloud_90.f90 -atmos_param/socrates/src/trunk/src/scatter/volume_particle.f90 -atmos_param/socrates/src/trunk/src/scatter/distribution_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/size_integral_90.f90 -atmos_param/socrates/src/trunk/src/scatter/particle_size_90.f90 -atmos_param/socrates/src/trunk/src/scatter/max_size_acf.f90 -atmos_param/socrates/src/trunk/src/scatter/write_average_90.f90 -atmos_param/socrates/src/trunk/src/scatter/adt_mitchell96.f90 -atmos_param/socrates/src/trunk/src/scatter/get_db_wavelengths.f90 -atmos_param/socrates/src/trunk/src/scatter/decompose_phf_90.f90 -atmos_param/socrates/src/trunk/src/scatter/cloud_fit_parm_acf.f90 -atmos_param/socrates/src/trunk/src/scatter/cloud_fit_90.f90 -atmos_param/socrates/src/trunk/src/scatter/ice_db_read_geometry.f90 -atmos_param/socrates/src/trunk/src/scatter/def_sct_db.f90 -atmos_param/socrates/src/trunk/src/scatter/open_average_90.f90 -atmos_param/socrates/src/trunk/src/scatter/def_size_dist.f90 -atmos_param/socrates/src/trunk/src/scatter/parm_integ_acf.f90 -atmos_param/socrates/src/trunk/src/scatter/bna_factor_ccf.f90 -atmos_param/socrates/src/trunk/src/scatter/def_db_crystal_geometry.f90 -atmos_param/socrates/src/trunk/src/scatter/get_wavelengths.f90 -atmos_param/socrates/src/trunk/src/scatter/weightings_single_90.f90 -atmos_param/socrates/src/trunk/src/scatter/scatter_algorithm_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/db_type_ucf.f90 -atmos_param/socrates/src/trunk/src/scatter/scatter_integral_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/voigt_profile.f90 -atmos_param/socrates/src/trunk/src/correlated_k/adjust_path.f90 -atmos_param/socrates/src/trunk/src/correlated_k/func_scale_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/read_pt_line_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/set_condition_ck_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/caviar_continuum_v1_0.f90 -atmos_param/socrates/src/trunk/src/correlated_k/rad_weight_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/select_weight_ck_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/trans_k_dist.f90 -atmos_param/socrates/src/trunk/src/correlated_k/type_residual_pcf.f90 -atmos_param/socrates/src/trunk/src/correlated_k/map_shell.f90 -atmos_param/socrates/src/trunk/src/correlated_k/terminate_scale_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/ckd_continuum_v2_4.f90 -atmos_param/socrates/src/trunk/src/correlated_k/write_fit_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/ck_parm_acf.f90 -atmos_param/socrates/src/trunk/src/correlated_k/fit_parabola_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/func_scale_derivative_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/optimal_k.f90 -atmos_param/socrates/src/trunk/src/correlated_k/open_file_out_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/residual_gradient_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/scale_ck_fit_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/read_ref_pt_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/corr_k_single.f90 -atmos_param/socrates/src/trunk/src/correlated_k/planck_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/exponent_fit_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/conjugate_gradient_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/line_prof_corr_mod.f90 -atmos_param/socrates/src/trunk/src/correlated_k/set_extern_ckd_frn_data.f90 -atmos_param/socrates/src/trunk/src/correlated_k/set_g_point_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/bi_interp.f90 -atmos_param/socrates/src/trunk/src/correlated_k/residual_trans_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/set_extern_ckd_self_data.f90 -atmos_param/socrates/src/trunk/src/correlated_k/line_search_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/read_hitran.f90 -atmos_param/socrates/src/trunk/src/correlated_k/read_nc.f90 -atmos_param/socrates/src/trunk/src/correlated_k/ckd_extern_data.f90 -atmos_param/socrates/src/trunk/src/correlated_k/def_hitran_record.f90 -atmos_param/socrates/src/trunk/src/correlated_k/d_planck_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/scale_parameters_acf.f90 -atmos_param/socrates/src/trunk/src/correlated_k/offset_residual_trans_acf.f90 -atmos_param/socrates/src/trunk/src/correlated_k/hitran_cnst.f90 -atmos_param/socrates/src/trunk/src/correlated_k/ck_fit_pcf.f90 atmos_param/socrates/src/trunk/src/aux/qsat_wat.F90 atmos_param/socrates/src/trunk/src/aux/qsat_gill.F90 atmos_param/socrates/src/trunk/src/aux/write_cdf.f90 @@ -434,7 +351,6 @@ atmos_param/socrates/src/trunk/src/general/make_block_18.f90 atmos_param/socrates/src/trunk/src/general/remove_negative_gas_90.f90 atmos_param/socrates/src/trunk/src/general/make_block_17.f90 atmos_param/socrates/src/trunk/src/general/make_block_1.f90 -atmos_param/socrates/src/trunk/src/general/solar_intensity_90.f90 atmos_param/socrates/src/trunk/src/general/make_block_19.f90 atmos_param/socrates/src/trunk/src/general/make_block_0.f90 atmos_param/socrates/src/trunk/src/general/make_block_10.f90 @@ -484,8 +400,6 @@ atmos_param/socrates/src/trunk/src/radiation_control/set_moist_aerosol_propertie atmos_param/socrates/src/trunk/src/radiation_control/mcica_mod.F90 atmos_param/socrates/src/trunk/src/radiation_control/cld_generator_mod.F90 atmos_param/socrates/src/trunk/src/radiation_control/open_cloud_gen.F90 -atmos_param/socrates/src/trunk/src/um/out_nml.f90 -atmos_param/socrates/src/trunk/src/um/def_um_nml.f90 atmos_param/socrates/src/trunk/src/modules_core/errormessagelength_mod.F90 atmos_param/socrates/src/trunk/src/modules_core/dimensions_spec_ucf.F90 atmos_param/socrates/src/trunk/src/modules_core/rad_ccf.F90 @@ -497,11 +411,6 @@ atmos_param/socrates/src/trunk/src/modules_core/vectlib_mod.F90 atmos_param/socrates/src/trunk/src/modules_core/ereport_mod.F90 atmos_param/socrates/src/trunk/src/modules_core/realtype_rd.f90 atmos_param/socrates/src/trunk/src/modules_core/filenamelength_mod.F90 -atmos_param/socrates/src/trunk/src/scatter/grow_particles.f -atmos_param/socrates/src/trunk/src/scatter/mie_scatter.f -atmos_param/socrates/src/trunk/src/scatter/adt_integral.f -atmos_param/socrates/src/trunk/src/scatter/gamma_fnc.f -atmos_param/socrates/src/trunk/src/scatter/refractive_index.f atmos_param/socrates/src/trunk/src/aux/output_vert_cdl.f atmos_param/socrates/src/trunk/src/aux/assign_input_opt_cdf.f atmos_param/socrates/src/trunk/src/aux/assign_input_ss_cdl.f From b01ecaedb9e42d760a1e390552899b5523754b68 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:44:51 +0100 Subject: [PATCH 019/304] Initialise variables and cleaning debug statements --- .../driver/solo/idealized_moist_phys.F90 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index fcddca274..37061eb97 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -764,7 +764,6 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(1,1,1):: tracer, tracertnd integer :: nql, nqi, nqa ! tracer indices for stratiform clouds -real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging if(current == previous) then delta_t = dt_real @@ -925,6 +924,12 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! Call the simple cloud scheme in line with SPOOKIE-2 requirements ! Using start of time step variables ! using soecific humidity NOT mixing ratios + + !Set to zero regarles of if clouds are used in radiation code + cf_rad = 0. + reff_rad = 0. + qcl_rad = 0. + if(do_cloud_simple) then call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & @@ -938,11 +943,6 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg endif -! write(6,*) minval(cf_rad), maxval(cf_rad), minval(reff_rad), maxval(reff_rad), minval(qcl_rad), maxval(qcl_rad) - -tmp1 = maxval(reff_rad) -tmp2 = maxval(cf_rad) - ! Begin the radiation calculation by computing downward fluxes. ! This part of the calculation does not depend on the surface temperature. From 7b4289d4a1e42ce99b15dd39d7a74f19d37f6f2f Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:45:15 +0100 Subject: [PATCH 020/304] Remove account for cloud flag from namelist --- src/atmos_param/socrates/interface/read_control.F90 | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/atmos_param/socrates/interface/read_control.F90 b/src/atmos_param/socrates/interface/read_control.F90 index 92d5eeefb..755a10357 100644 --- a/src/atmos_param/socrates/interface/read_control.F90 +++ b/src/atmos_param/socrates/interface/read_control.F90 @@ -9,13 +9,15 @@ MODULE read_control_mod ! Subroutine to set input algorithmic options for the core radiation code !------------------------------------------------------------------------------ -SUBROUTINE read_control(control, spectrum) +SUBROUTINE read_control(control, spectrum, do_cloud_simple) USE rad_pcf USE def_control, ONLY: StrCtrl, allocate_control USE def_spectrum, ONLY: StrSpecData -USE socrates_config_mod, ONLY: l_planet_grey_surface, inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, account_for_clouds_in_socrates +USE socrates_config_mod, ONLY: l_planet_grey_surface, inc_h2o, inc_co2, inc_co, & + inc_o3, inc_n2o, inc_ch4, inc_o2, inc_so2, inc_cfc11, & + inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a IMPLICIT NONE @@ -26,6 +28,10 @@ SUBROUTINE read_control(control, spectrum) ! Spectral data: TYPE (StrSpecData), INTENT(IN) :: spectrum +LOGICAL, INTENT(IN), OPTIONAL :: do_cloud_simple + + + ! Local variables. INTEGER :: i ! Loop variable @@ -93,7 +99,7 @@ SUBROUTINE read_control(control, spectrum) control%i_gas_overlap = ip_overlap_k_eqv_scl ! Properties of clouds -if (account_for_clouds_in_socrates) then +if (do_cloud_simple) then control%i_cloud_representation = ip_cloud_ice_water else control%i_cloud_representation = ip_cloud_off From 178ee4feee7c9bdf339bbd3e32a67b714192ba5a Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:45:47 +0100 Subject: [PATCH 021/304] Was using 1 micron as a work around for debugging. Should be zero --- src/atmos_param/socrates/interface/socrates_calc.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index b36e0ff7e..0fd98b578 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -182,7 +182,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, ten_microns_cld = 1. call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & liq_frac = cld_frac, & - ice_frac = ten_microns_cld, & + ice_frac = zeros_cld, & liq_mmr = mmr_cl_rad, & ice_mmr = zeros_cld, & liq_dim = reff_rad, & From ca4c70ce33f67dd145c8c654f033343ebec367d2 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:47:19 +0100 Subject: [PATCH 022/304] File cleaning. Changes to fix seg fault which originated due to flipped pressure levels. Removed account for clouds. --- .../interface/socrates_config_mod.f90 | 4 +- .../socrates/interface/socrates_interface.F90 | 95 ++++++++++--------- 2 files changed, 50 insertions(+), 49 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_config_mod.f90 b/src/atmos_param/socrates/interface/socrates_config_mod.f90 index 014227dbb..fe348a155 100644 --- a/src/atmos_param/socrates/interface/socrates_config_mod.f90 +++ b/src/atmos_param/socrates/interface/socrates_config_mod.f90 @@ -38,8 +38,6 @@ module socrates_config_mod logical :: use_pressure_interp_for_half_levels = .False. !By default (.False.) does linear interpolation in height for half-level temperatures. True does linear interp using pressure. - logical :: account_for_clouds_in_socrates = .false. !Do we want to account for the radiative effects of clouds in socrates? - ! Incoming radiation options for namelist integer :: solday=0 ! if >0, do perpetual run corresponding to day of the year = solday \in [0,days per year] @@ -124,6 +122,6 @@ module socrates_config_mod hfc134a_mix_ratio, & inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, & inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, & - use_pressure_interp_for_half_levels, account_for_clouds_in_socrates + use_pressure_interp_for_half_levels end module socrates_config_mod diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 789d635ab..407d70646 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -115,18 +115,6 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb !Initialise astronomy call astronomy_init - if(do_cloud_simple.and..not.account_for_clouds_in_socrates) then - - call error_mesg( 'run_socrates', & - 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) - - elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then - - call error_mesg( 'run_socrates', & - 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) - - endif - !Initialise variables related to radiation timestep call get_time(delta_t_atmos,time_step_seconds) @@ -202,10 +190,10 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb CALL read_spectrum(control_sw_hires%spectral_file,spectrum_sw_hires) ! Set Socrates configuration - CALL read_control(control_lw,spectrum_lw) - CALL read_control(control_lw_hires,spectrum_lw_hires) - CALL read_control(control_sw,spectrum_sw) - CALL read_control(control_sw_hires,spectrum_sw_hires) + CALL read_control(control_lw,spectrum_lw, do_cloud_simple) + CALL read_control(control_lw_hires,spectrum_lw_hires, do_cloud_simple) + CALL read_control(control_sw,spectrum_sw, do_cloud_simple) + CALL read_control(control_sw_hires,spectrum_sw_hires, do_cloud_simple) ! Specify LW and SW setups control_sw%isolir=1 @@ -415,9 +403,15 @@ end subroutine socrates_init ! Set up the call to the Socrates radiation scheme ! ----------------------------------------------------------------------------- subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & - fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, fms_coszen, fms_rrsun, n_profile, n_layer, & - fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & - output_heating_rate, output_flux_down, output_flux_up, output_soc_spectral_olr, output_flux_direct, t_half_level_out ) + fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, & + fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, & + fms_coszen, fms_rrsun, n_profile, n_layer, & + fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & + output_heating_rate, output_flux_down, output_flux_up, & + do_cloud_simple, & + !optionals + output_soc_spectral_olr, output_flux_direct, & + t_half_level_out ) use realtype_rd use read_control_mod @@ -457,10 +451,14 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), intent(in) :: fms_rrsun real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) + logical, intent(in) :: do_cloud_simple + ! Output arrays real(r_def), intent(out) :: output_heating_rate(:,:,:) real(r_def), intent(out) :: output_flux_up(:,:,:) real(r_def), intent(out) :: output_flux_down(:,:,:) + + real(r_def), intent(out), optional :: output_flux_direct(:,:,:) real(r_def), intent(out), optional :: output_soc_spectral_olr(:,:,:) real(r_def), intent(out), optional :: t_half_level_out(size(fms_temp,1),size(fms_temp,2),size(fms_temp,3)+1) @@ -471,13 +469,15 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & REAL :: soc_spectral_olr(n_profile, size(outputted_soc_spectral_olr,3)) ! Arrays to send to Socrates - real, dimension(n_profile, n_layer) :: input_p, input_t, input_mixing_ratio, & + real(r_def), dimension(n_profile, n_layer) :: input_p, input_t, input_mixing_ratio, & input_d_mass, input_density, input_layer_heat_capacity, & soc_heating_rate, input_o3_mixing_ratio, & - input_co2_mixing_ratio,z_full_reshaped - real, dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & - soc_flux_down, soc_flux_up, z_half_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad - real, dimension(n_profile) :: input_t_surf, input_cos_zenith_angle, input_solar_irrad, & + input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad + + real(r_def), dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & + soc_flux_down, soc_flux_up, z_half_reshaped + + real(r_def), dimension(n_profile) :: input_t_surf, input_cos_zenith_angle, input_solar_irrad, & input_orog_corr, input_planet_albedo @@ -504,7 +504,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & !----------------------------i ! Set array sizes - input_n_cloud_layer = n_layer + input_n_cloud_layer = 1 input_n_aer_mode = n_layer input_cld_subcol_gen = n_layer input_cld_subcol_req = n_layer @@ -586,7 +586,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & ! Test if LW or SW mode if (soc_lw_mode == .TRUE.) then control_lw%isolir = 2 - CALL read_control(control_lw, spectrum_lw) + CALL read_control(control_lw, spectrum_lw, do_cloud_simple) if (socrates_hires_mode == .FALSE.) then control_calc = control_lw spectrum_calc = spectrum_lw @@ -597,7 +597,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & else control_sw%isolir = 1 - CALL read_control(control_sw, spectrum_sw) + CALL read_control(control_sw, spectrum_sw, do_cloud_simple) if(socrates_hires_mode == .FALSE.) then control_calc = control_sw spectrum_calc = spectrum_sw @@ -610,7 +610,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & ! Do calculation - CALL read_control(control_calc, spectrum_calc) + CALL read_control(control_calc, spectrum_calc, do_cloud_simple) n_chunk_loop = (si*sj)/chunk_size n_profile_chunk = n_profile / n_chunk_loop @@ -926,21 +926,14 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif - if(do_cloud_simple.and.account_for_clouds_in_socrates) then + if(do_cloud_simple) then cld_frac_soc = REAL(cf_rad, kind(r_def)) reff_rad_soc = REAL(reff_rad, kind(r_def)) qcl_rad_soc = REAL(qcl_rad, kind(r_def)) mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) !check if qcl is indeed specific humidity and not mmr - elseif(do_cloud_simple.and..not.account_for_clouds_in_socrates) then - - cld_frac_soc = 0. - reff_rad_soc = 0. - mmr_cl_rad_soc = 0. - - elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then - + else cld_frac_soc = 0. reff_rad_soc = 0. mmr_cl_rad_soc = 0. @@ -950,7 +943,6 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf n_profile = INT(size(temp_in,2)*size(temp_in,1), kind(i_def)) n_layer = INT(size(temp_in,3), kind(i_def)) t_surf_for_soc = REAL(t_surf_in(:,:), kind(r_def)) - ! LW calculation ! Retrieve output_heating_rate, and downward surface SW and LW fluxes soc_lw_mode = .TRUE. @@ -967,10 +959,17 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf z_full_soc = REAL(z_full_in, kind(r_def)) z_half_soc = REAL(z_half_in, kind(r_def)) - CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & - tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & - output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) + + CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & + tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & + p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & + n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, & + do_cloud_simple, & + !optional outs + output_soc_spectral_olr = outputted_soc_spectral_olr, & + t_half_level_out = t_half_out) + tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) @@ -980,13 +979,17 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf temp_tend(:,:,:) = temp_tend(:,:,:) + real(output_heating_rate_lw) + ! SW calculation ! Retrieve output_heating_rate, and downward surface SW and LW fluxes soc_lw_mode = .FALSE. - CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & - tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & - output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up) + CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & + tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & + p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & + n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, & + do_cloud_simple) + tg_tmp_soc = tg_tmp_soc + output_heating_rate_sw*delta_t !Output heating rate in K/s, so is a temperature tendency net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)-output_soc_flux_sw_up(:,:,n_layer+1) ) From 98de89662173e868e3dad2e7a13bfc4aa6b5ea72 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 17:56:16 +0100 Subject: [PATCH 023/304] Added a with and without cloud test case for soc --- .../socrates_test/socrates_aquaplanet.py | 19 +- .../socrates_aquaplanet_with_cloud.py | 209 ++++++++++++++++++ 2 files changed, 218 insertions(+), 10 deletions(-) create mode 100644 exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index f2092f0da..91c6c27d3 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet', codebase=cb) +exp = Experiment('soc_test_aquaplanet_without_clouds', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -52,6 +52,11 @@ diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) diag.add_field('socrates', 'soc_olr', time_avg=True) diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) + # additional output options commented out #diag.add_field('socrates', 'soc_flux_lw', time_avg=True) #diag.add_field('socrates', 'soc_flux_sw', time_avg=True) @@ -99,15 +104,9 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True + 'do_cloud_simple': False }, - 'cloud_simple_nml': { - 'simple_cca':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3 - }, 'vert_turb_driver_nml': { 'do_mellor_yamada': False, # default: True @@ -200,5 +199,5 @@ cb.compile(debug=False) exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) -# for i in range(2,121): -# exp.run(i, num_cores=NCORES) + for i in range(2,121): + exp.run(i, num_cores=NCORES) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py new file mode 100644 index 000000000..fa0d348fe --- /dev/null +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -0,0 +1,209 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('soc_test_aquaplanet_with_clouds', codebase=cb) +exp.clear_rundir() + +inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Tell model which diagnostics to write +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) + +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) + +# additional output options commented out +#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_co2', time_avg=True) +#diag.add_field('socrates', 'soc_ozone', time_avg=True) +#diag.add_field('socrates', 'soc_coszen', time_avg=True) +#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) + +exp.diag_table = diag +exp.inputfiles = inputfiles + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True + }, + + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3 + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 2.5, #Depth of mixed layer used + 'albedo_value': 0.38, #Albedo value used + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03 + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) + + for i in range(2,121): + exp.run(i, num_cores=NCORES) From 272ffac37fac99d76e57ddb2575f34c50c342523 Mon Sep 17 00:00:00 2001 From: sit23 Date: Thu, 6 Dec 2018 09:44:09 +0000 Subject: [PATCH 024/304] Small changes at James Manners suggestion. Changes results A LOT, so this needs to be checked closely. --- exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py | 2 +- src/atmos_param/socrates/interface/set_dimen.F90 | 3 ++- src/atmos_param/socrates/interface/socrates_interface.F90 | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index fa0d348fe..647ec0751 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet_with_clouds', codebase=cb) +exp = Experiment('soc_test_aquaplanet_with_clouds_post_jm_suggestions', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index 4f62eb3f9..6cf8eeac8 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -63,7 +63,8 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & dimen%id_cloud_top = dimen%nd_layer + 1 - n_cloud_layer IF (control%l_cloud) THEN - dimen%nd_layer_clr = dimen%id_cloud_top - 1 + dimen%nd_layer_clr = MAX(dimen%id_cloud_top - 1, dimen%nd_layer) + ! MAX(dimen%id_cloud_top - 1, 1) ELSE dimen%nd_layer_clr = dimen%nd_layer END IF diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 407d70646..0bb0d91f8 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -504,7 +504,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & !----------------------------i ! Set array sizes - input_n_cloud_layer = 1 + input_n_cloud_layer = n_layer input_n_aer_mode = n_layer input_cld_subcol_gen = n_layer input_cld_subcol_req = n_layer From 68c24b42677bdaecbbaf6255b4902d7cb13f1db1 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 11:22:17 +0000 Subject: [PATCH 025/304] Update suite to have more diagnostics --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 647ec0751..2803f3100 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -56,6 +56,9 @@ diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) + # additional output options commented out #diag.add_field('socrates', 'soc_flux_lw', time_avg=True) @@ -90,7 +93,8 @@ 'store_intermediate_rad':True, 'chunk_size': 16, 'use_pressure_interp_for_half_levels':False, - 'tidally_locked':False + 'tidally_locked':False, + 'sol_day':90 }, 'idealized_moist_phys_nml': { 'do_damping': True, From 96b74ec15a43ce19b1b79cb67196e35453bd3dad Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 11:23:24 +0000 Subject: [PATCH 026/304] Changes to simple clouds for more fields to be outputted --- src/atmos_param/cloud_simple/cloud_simple.F90 | 91 ++++++++++++------- 1 file changed, 56 insertions(+), 35 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index c35708ad3..ffcae1385 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -28,7 +28,9 @@ module cloud_simple_mod rhmsfc, rhm700, rhm200 real :: zerodegc = 273.15 - integer :: id_cf_rad, id_reff_rad, id_frac_liq, id_qcl_rad + integer :: id_cf, id_reff_rad, id_frac_liq, id_qcl_rad, id_rh_in_cf, id_simple_rhcrit + + character(len=14), parameter :: mod_name_cld = "cloud_simple" contains @@ -57,8 +59,8 @@ subroutine cloud_simple_init (axes, Time) write(stdlog_unit, cloud_simple_nml) !register diagnostics - id_cf_rad = & - register_diag_field ( mod_name_cld, 'cf_rad', axes(1:3), Time, & + id_cf = & + register_diag_field ( mod_name_cld, 'cf', axes(1:3), Time, & 'Cloud fraction for the simple cloud scheme', 'unitless: values 0-1') id_frac_liq = & @@ -76,30 +78,45 @@ subroutine cloud_simple_init (axes, Time) 'Specific humidity of cloud liquid', & 'kg/kg') + + id_rh_in_cf = & + register_diag_field ( mod_name_cld, 'rh_in_cf', axes(1:3), Time, & + 'RH as a percent', & + '%') + + id_simple_rhcrit = & + register_diag_field ( mod_name_cld, 'simple_rhcrit', axes(1:3), Time, & + 'RH as a percent', & + '%') + + + + + do_init = .false. !initialisation completed end subroutine cloud_simple_init !----------------------------------------------- - subroutine cloud_simple (p_half, p_full, Time, & - temp, q_hum, & + subroutine cloud_simple(p_half, p_full, Time, & + temp, q_hum, & ! outs - cf_rad, reff_rad, qcl_rad ) + cf, reff_rad, qcl_rad ) real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half type(time_type) , intent(in) :: Time - real , intent(out), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad + real , intent(out), dimension(:,:,:) :: cf, reff_rad, qcl_rad + + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq, rh_in_cf, simple_rhcrit - real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq - real :: simple_rhcrit integer :: i, j, k, k_surf logical :: es_over_liq_and_ice - real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & @@ -117,20 +134,15 @@ subroutine cloud_simple (p_half, p_full, Time, & !caluclate the frac_liq call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) - call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit) - call calc_cf_rad(q_hum(i,j,k), qs(i,j,k), simple_rhcrit, cf_rad(i,j,k)) - call calc_qcl_rad(p_full(i,j,k), cf_rad(i,j,k), qcl_rad(i,j,k) ) + call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) + call calc_cf(q_hum(i,j,k), qs(i,j,k), simple_rhcrit(i,j,k), cf(i,j,k),rh_in_cf(i,j,k)) + call calc_qcl_rad(p_full(i,j,k), cf(i,j,k), qcl_rad(i,j,k) ) end do end do end do !save some diagnotics - call output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time ) - -tmp2 = maxval(cf_rad) -tmp1 = maxval(reff_rad) -tmp2 = maxval(cf_rad) - + call output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time ) end subroutine cloud_simple @@ -184,17 +196,18 @@ subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - end subroutine calc_rhcrit - subroutine calc_cf_rad (q_hum, qsat, simple_rhcrit, cf_rad) + subroutine calc_cf (q_hum, qsat, simple_rhcrit, cf, rh) ! Calculate LS (stratiform) cloud fraction ! as a simple linear function of RH real, intent(in) :: q_hum, qsat, simple_rhcrit - real, intent(out) :: cf_rad + real, intent(out) :: cf, rh - real :: rh, cca + real :: cca rh = q_hum/qsat - cf_rad = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) + cf = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) + ! include simple convective cloud fraction where present @@ -202,17 +215,16 @@ subroutine calc_cf_rad (q_hum, qsat, simple_rhcrit, cf_rad) ! left in for fture use if (cca > 0.0) then - cf_rad = MAX( simple_cca, cf_rad ) + cf = MAX( simple_cca, cf ) end if + - - - end subroutine calc_cf_rad + end subroutine calc_cf - subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) - ! calculate simple water content + subroutine calc_qcl_rad(p_full, cf, qcl_rad) + ! calculate water content - real , intent(in) :: p_full, cf_rad + real , intent(in) :: p_full, cf real , intent(out) :: qcl_rad real :: in_cloud_qcl @@ -222,22 +234,22 @@ subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg - qcl_rad = cf_rad * in_cloud_qcl + qcl_rad = cf * in_cloud_qcl end subroutine calc_qcl_rad - subroutine output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time) + subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time) - real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, frac_liq, qcl_rad + real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit type(time_type) , intent(in) :: Time real :: used - if ( id_cf_rad > 0 ) then - used = send_data ( id_cf_rad, cf_rad, Time) + if ( id_cf > 0 ) then + used = send_data ( id_cf, cf, Time) endif if ( id_reff_rad > 0 ) then @@ -252,6 +264,15 @@ subroutine output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time) used = send_data ( id_qcl_rad, qcl_rad, Time) endif + if ( id_rh_in_cf > 0 ) then + used = send_data ( id_rh_in_cf, rh_in_cf*100., Time) + endif + + if ( id_simple_rhcrit > 0 ) then + used = send_data ( id_simple_rhcrit, simple_rhcrit*100.0, Time) + endif + + end subroutine output_cloud_diags From 874029c6667d99aed869d568f5b3aae476bd2322 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 11:24:16 +0000 Subject: [PATCH 027/304] Change to cloud layer will have no science impact but easier to understand logic --- src/atmos_param/socrates/interface/set_dimen.F90 | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index 6cf8eeac8..01d9aca75 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -61,10 +61,12 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & dimen%nd_subcol_gen = cld_subcol_gen dimen%nd_subcol_req = cld_subcol_req -dimen%id_cloud_top = dimen%nd_layer + 1 - n_cloud_layer +dimen%id_cloud_top = dimen%nd_layer + 1 - n_cloud_layer !ie TOA IF (control%l_cloud) THEN - dimen%nd_layer_clr = MAX(dimen%id_cloud_top - 1, dimen%nd_layer) - ! MAX(dimen%id_cloud_top - 1, 1) + ! this gives the allocate the full column for radiation + ! rather than the layers over which cloud is present + dimen%nd_layer_clr = dimen%nd_layer + ELSE dimen%nd_layer_clr = dimen%nd_layer END IF From 6394b914f5a48034edcc6f1e140560ffd7158b2d Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 12:04:20 +0000 Subject: [PATCH 028/304] qsat is causing very large RH values. Debugging --- exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py | 2 +- src/atmos_param/cloud_simple/cloud_simple.F90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 2803f3100..10afc714b 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -52,7 +52,7 @@ diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) diag.add_field('socrates', 'soc_olr', time_avg=True) diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'cf', time_avg=True) diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index ffcae1385..e1e57b04b 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -123,7 +123,7 @@ subroutine cloud_simple(p_half, p_full, Time, & 'cloud_simple_init has not been called.', FATAL) ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! - call compute_qs(temp, p_full, qs, es_over_liq_and_ice=.true.) !qs=qsat in um + call compute_qs(temp, p_full, qs) !qs=qsat in um k_surf = size(temp, 3) From 9af0ae6635c7678a0ddef0412de86995dcce83d1 Mon Sep 17 00:00:00 2001 From: sit23 Date: Thu, 6 Dec 2018 12:09:20 +0000 Subject: [PATCH 029/304] Updated experiment. --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 2803f3100..8b6a36f79 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -37,6 +37,7 @@ diag.add_field('dynamics', 'bk') diag.add_field('dynamics', 'pk') diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) @@ -52,7 +53,7 @@ diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) diag.add_field('socrates', 'soc_olr', time_avg=True) diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'cf', time_avg=True) diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) @@ -94,7 +95,7 @@ 'chunk_size': 16, 'use_pressure_interp_for_half_levels':False, 'tidally_locked':False, - 'sol_day':90 + 'solday':90 }, 'idealized_moist_phys_nml': { 'do_damping': True, @@ -207,7 +208,7 @@ if __name__=="__main__": cb.compile(debug=False) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) - for i in range(2,121): + for i in range(2,125): exp.run(i, num_cores=NCORES) From 51443eac96ad1e7e31d29d8d991566af5feb0edf Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 15:35:26 +0000 Subject: [PATCH 030/304] Adding comments. No science changes --- src/atmos_param/cloud_simple/cloud_simple.F90 | 27 +++++++------------ 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index e1e57b04b..b27ba5788 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -116,14 +116,12 @@ subroutine cloud_simple(p_half, p_full, Time, & logical :: es_over_liq_and_ice - real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging - !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! - call compute_qs(temp, p_full, qs) !qs=qsat in um + call compute_qs(temp, p_full, qs) k_surf = size(temp, 3) @@ -131,7 +129,9 @@ subroutine cloud_simple(p_half, p_full, Time, & do j=1, size(temp, 2) do k=1, size(temp, 3) - !caluclate the frac_liq + ! caluclate the liquid fraction, effective radius, critical RH for + ! the simple cloud scheme and cloud fraction. + ! rh_in_cf is an output diagnostic only for debugging call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) @@ -166,6 +166,7 @@ subroutine calc_liq_frac(temp, frac_liq) end subroutine calc_liq_frac subroutine calc_reff(frac_liq, reff_rad) + ! the effective cloud radius is bounded between 10 and 20 microns real, intent(in) :: frac_liq real, intent(out) :: reff_rad @@ -175,7 +176,7 @@ subroutine calc_reff(frac_liq, reff_rad) end subroutine calc_reff subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - > p_layer_centres - + !get the RH needed as a threshold for the cloud fraction calc. real, intent(in) :: p_full, p_surf real, intent(out) :: simple_rhcrit @@ -209,10 +210,9 @@ subroutine calc_cf (q_hum, qsat, simple_rhcrit, cf, rh) cf = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) - ! include simple convective cloud fraction where present - + ! include simple convective cloud fraction where present (not currenly used) cca = 0.0 ! no convective cloud fraction is calculated - ! left in for fture use + ! left in for future use if (cca > 0.0) then cf = MAX( simple_cca, cf ) @@ -222,7 +222,7 @@ subroutine calc_cf (q_hum, qsat, simple_rhcrit, cf, rh) end subroutine calc_cf subroutine calc_qcl_rad(p_full, cf, qcl_rad) - ! calculate water content + ! calculate cloud water content real , intent(in) :: p_full, cf real , intent(out) :: qcl_rad @@ -238,8 +238,6 @@ subroutine calc_qcl_rad(p_full, cf, qcl_rad) end subroutine calc_qcl_rad - - subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time) real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit @@ -272,16 +270,11 @@ subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_ used = send_data ( id_simple_rhcrit, simple_rhcrit*100.0, Time) endif - - end subroutine output_cloud_diags - !----------------------------------------------- - - subroutine cloud_simple_end () - ! do we deallocate anything? + ! If alloocated are added in init then deallocate them here. end subroutine cloud_simple_end From a4c0d02924e19ba792e1c75873b3d62e191bada0 Mon Sep 17 00:00:00 2001 From: sit23 Date: Thu, 6 Dec 2018 15:48:09 +0000 Subject: [PATCH 031/304] Made some changes to socrates cloud test experiment. --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 8b6a36f79..f4500f04e 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -62,8 +62,8 @@ # additional output options commented out -#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_flux_sw', time_avg=True) #diag.add_field('socrates', 'soc_co2', time_avg=True) #diag.add_field('socrates', 'soc_ozone', time_avg=True) #diag.add_field('socrates', 'soc_coszen', time_avg=True) @@ -148,7 +148,7 @@ 'prescribe_initial_dist':True, 'evaporation':True, 'depth': 2.5, #Depth of mixed layer used - 'albedo_value': 0.38, #Albedo value used + 'albedo_value': 0.2, #Albedo value used }, 'qe_moist_convection_nml': { @@ -210,5 +210,5 @@ cb.compile(debug=False) exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) - for i in range(2,125): + for i in range(2,171): exp.run(i, num_cores=NCORES) From 42ec5ebd9fd145d6a80c86a5a6eef90b98f76f91 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 14 Dec 2018 10:25:34 +0000 Subject: [PATCH 032/304] New test case with land and specified ssts. --- ...es_aquaplanet_with_cloud_amip_with_topo.py | 234 ++++++++++++++++++ .../scripts/run_plevel.py | 14 +- 2 files changed, 242 insertions(+), 6 deletions(-) create mode 100644 exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py new file mode 100644 index 000000000..0c88efd1d --- /dev/null +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py @@ -0,0 +1,234 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo_with_land', codebase=cb) +exp.clear_rundir() + +inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), + os.path.join(base_dir,'input/sst_clim_amip.nc'), os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Tell model which diagnostics to write +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf', time_avg=True) +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) + +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('cloud_simple', 'cf', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) +diag.add_field('mixed_layer', 'albedo', time_avg=True) + + +# additional output options commented out +diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_co2', time_avg=True) +#diag.add_field('socrates', 'soc_ozone', time_avg=True) +#diag.add_field('socrates', 'soc_coszen', time_avg=True) +#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) + +exp.diag_table = diag +exp.inputfiles = inputfiles + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False, + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True, + 'land_option' : 'input', + 'land_file_name' : 'INPUT/era_land_t42.nc', + 'land_roughness_prefactor' :10.0, + }, + + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3 + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 20.0, #Depth of mixed layer used + 'albedo_value': 0.2, #Albedo value used + 'land_option': 'input', #Tell mixed layer to get land mask from input file + 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. + 'albedo_value': 0.1, #Ocean albedo value + 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land + 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes + 'do_read_sst' : True, #Read in sst values from input file + 'do_sc_sst' : True, #Do specified ssts (need both to be true) + 'sst_file' : 'sst_clim_amip', #Set name of sst input file + 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03, + 'ocean_topog_smoothing': 0.8 + }, + + 'spectral_init_cond_nml':{ + 'topog_file_name': 'era_land_t42.nc', + 'topography_option': 'input' + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) + + for i in range(2,241): + exp.run(i, num_cores=NCORES) diff --git a/postprocessing/plevel_interpolation/scripts/run_plevel.py b/postprocessing/plevel_interpolation/scripts/run_plevel.py index 294ecb53a..5a04db3c1 100644 --- a/postprocessing/plevel_interpolation/scripts/run_plevel.py +++ b/postprocessing/plevel_interpolation/scripts/run_plevel.py @@ -7,11 +7,11 @@ import subprocess start_time=time.time() -base_dir='/scratch/sit204/Data_2013/' -exp_name_list = ['no_ice_flux_lhe_exps_q_flux_hadgem_anoms_3'] +base_dir='/scratch/sit204/data_isca/' +exp_name_list = ['soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo'] avg_or_daily_list=['monthly'] -start_file=287 -end_file=288 +start_file=96 +end_file=120 nfiles=(end_file-start_file)+1 do_extra_averaging=False #If true, then 6hourly data is averaged into daily data using cdo @@ -66,10 +66,12 @@ number_prefix='' - if n+start_file < 100: + if n+start_file < 1000: number_prefix='0' - if n+start_file < 10: + if n+start_file < 100: number_prefix='00' + if n+start_file < 10: + number_prefix='000' nc_file_in = base_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+'.nc' nc_file_out = out_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+file_suffix+'.nc' From f8bdfa7a07cdfeaed6687bf8b162e42ac8b85fc0 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 28 Mar 2019 09:27:12 +0000 Subject: [PATCH 033/304] Adding diagnostics for clear sky in order to do CRE calculation. --- .../socrates_aquaplanet_with_cloud.py | 31 +- .../socrates/interface/socrates_calc.F90 | 22 +- .../socrates/interface/socrates_interface.F90 | 281 ++++++++++++++++-- 3 files changed, 286 insertions(+), 48 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index f4500f04e..f3c189127 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 16 +NCORES = 8 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -46,13 +46,30 @@ diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) -diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +#temperature tendency - units are K/s +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates + +#net (up) and down surface fluxes diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) +#net (up) TOA and downard fluxes diag.add_field('socrates', 'soc_olr', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) + +#clear sky fluxes +diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_olr_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down_clear', time_avg=True) + diag.add_field('cloud_simple', 'cf', time_avg=True) diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) @@ -208,7 +225,7 @@ if __name__=="__main__": cb.compile(debug=False) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) - for i in range(2,171): - exp.run(i, num_cores=NCORES) +# for i in range(2,171): +# exp.run(i, num_cores=NCORES) diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index 0fd98b578..f50910a25 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -17,7 +17,7 @@ module socrates_calc_mod contains -! ================================================================================== +! ============================================================================== @@ -25,7 +25,7 @@ module socrates_calc_mod ! Set up the call to the Socrates radiation scheme ! ----------------------------------------------------------------------------- !DIAG Added Time -subroutine socrates_calc(Time_diag,control, spectrum, & +subroutine socrates_calc(Time_diag,control, spectrum, & n_profile, n_layer, n_cloud_layer, n_aer_mode, & cld_subcol_gen, cld_subcol_req, & p_layer, t_layer, t_layer_boundaries, d_mass, density, & @@ -34,7 +34,9 @@ subroutine socrates_calc(Time_diag,control, spectrum, l_planet_grey_surface, planet_albedo, planet_emissivity, & layer_heat_capacity, & cld_frac, reff_rad, mmr_cl_rad, & - flux_direct, flux_down, flux_up, heating_rate, spectral_olr) + flux_direct, flux_down, flux_up, & + flux_down_clear, flux_up_clear, & + heating_rate, spectral_olr) use rad_pcf use def_control, only: StrCtrl @@ -126,9 +128,11 @@ subroutine socrates_calc(Time_diag,control, spectrum, real(r_def), intent(out) :: flux_direct(n_profile, 0:n_layer) ! Direct (unscattered) downwards flux (Wm-2) -real(r_def), intent(out) :: flux_down(n_profile, 0:n_layer) +real(r_def), intent(out) :: flux_down(n_profile, 0:n_layer), & + flux_down_clear(n_profile, 0:n_layer) ! Downwards flux (Wm-2) -real(r_def), intent(out) :: flux_up(n_profile, 0:n_layer) +real(r_def), intent(out) :: flux_up(n_profile, 0:n_layer), & + flux_up_clear(n_profile, 0:n_layer) ! Upwards flux (Wm-2) real(r_def), intent(out) :: heating_rate(n_profile, n_layer) ! Heating rate (Ks-1) @@ -205,9 +209,11 @@ subroutine socrates_calc(Time_diag,control, spectrum, do l=1, n_profile do i=0, n_layer - flux_direct(l, i) = radout%flux_direct(l, i, 1) - flux_down(l, i) = radout%flux_down(l, i, 1) - flux_up(l, i) = radout%flux_up(l, i, 1) + flux_direct(l, i) = radout%flux_direct(l, i, 1) + flux_down(l, i) = radout%flux_down(l, i, 1) + flux_down_clear(l, i) = radout%flux_down_clear(l, i, 1) + flux_up(l, i) = radout%flux_up(l, i, 1) + flux_up_clear(l, i) = radout%flux_up_clear(l, i, 1) end do if (present(spectral_olr)) then spectral_olr(l,:) = radout%flux_up_clear_band(l,0,:) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 0bb0d91f8..3e525f866 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -55,8 +55,13 @@ MODULE socrates_interface_mod ! INTEGER :: id_soc_surf_spectrum_sw !not implemented yet INTEGER :: id_soc_tdt_sw, id_soc_tdt_lw, id_soc_tdt_rad INTEGER :: id_soc_surf_flux_lw, id_soc_surf_flux_sw + INTEGER :: id_soc_surf_flux_lw_clear, id_soc_surf_flux_sw_clear + INTEGER :: id_soc_surf_flux_lw_down, id_soc_surf_flux_sw_down + INTEGER :: id_soc_surf_flux_lw_down_clear, id_soc_surf_flux_sw_down_clear INTEGER :: id_soc_flux_lw, id_soc_flux_sw - INTEGER :: id_soc_olr, id_soc_toa_sw + INTEGER :: id_soc_olr, id_soc_toa_sw, id_soc_olr_clear, id_soc_toa_sw_clear + INTEGER :: id_soc_toa_sw_down, id_soc_toa_sw_down_clear + INTEGER :: id_soc_ozone, id_soc_co2, id_soc_coszen INTEGER :: n_soc_bands_lw, n_soc_bands_sw INTEGER :: n_soc_bands_lw_hires, n_soc_bands_sw_hires @@ -70,8 +75,12 @@ MODULE socrates_interface_mod REAL(r_def), allocatable, dimension(:,:,:) :: tdt_soc_sw_store, tdt_soc_lw_store REAL(r_def), allocatable, dimension(:,:,:) :: thd_sw_flux_net_store, thd_lw_flux_net_store REAL(r_def), allocatable, dimension(:,:,:) :: thd_co2_store, thd_ozone_store - REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_store, surf_lw_down_store, surf_lw_net_store, & - toa_sw_store, olr_store, coszen_store + REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_store, surf_sw_down_store, surf_lw_down_store, surf_lw_net_store, & + toa_sw_store, olr_store, coszen_store, & + toa_sw_down_store + REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_clear_store, surf_sw_down_clear_store, & + surf_lw_down_clear_store, surf_lw_net_clear_store, & + toa_sw_clear_store, olr_clear_store, toa_sw_down_clear_store REAL(r_def), allocatable, dimension(:,:,:) :: outputted_soc_spectral_olr, spectral_olr_store REAL(r_def), allocatable, dimension(:) :: soc_bins_lw, soc_bins_sw @@ -251,21 +260,71 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb 'socrates Net LW surface flux (up)', & 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_lw_clear = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_clear', axes(1:2), Time, & + 'socrates Net LW surface flux (up) clear sky', & + 'watts/m2', missing_value=missing_value ) + + id_soc_surf_flux_lw_down = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_down', axes(1:2), Time, & + 'socrates LW surface flux down', & + 'watts/m2', missing_value=missing_value ) + + id_soc_surf_flux_lw_down_clear = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_down_clear', axes(1:2), Time, & + 'socrates LW surface flux down clear sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_sw = & register_diag_field ( soc_mod_name, 'soc_surf_flux_sw', axes(1:2), Time, & 'socrates Net SW surface flux (down)', & 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_sw_clear = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_sw_clear', axes(1:2), Time, & + 'socrates Net SW surface flux (down) clear sky', & + 'watts/m2', missing_value=missing_value ) + + id_soc_surf_flux_sw_down = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_sw_down', axes(1:2), Time, & + 'socrates SW surface flux down', & + 'watts/m2', missing_value=missing_value ) + + id_soc_surf_flux_sw_down_clear = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_sw_down_clear', axes(1:2), Time, & + 'socrates SW surface flux down clear sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_olr = & register_diag_field ( soc_mod_name, 'soc_olr', axes(1:2), Time, & 'socrates TOA LW flux (up)', & 'watts/m2', missing_value=missing_value ) + id_soc_olr_clear = & + register_diag_field ( soc_mod_name, 'soc_olr_clear', axes(1:2), Time, & + 'socrates TOA LW flux (up) clear-sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_toa_sw = & register_diag_field ( soc_mod_name, 'soc_toa_sw', axes(1:2), Time, & 'socrates Net TOA SW flux (down)', & 'watts/m2', missing_value=missing_value ) + id_soc_toa_sw_clear = & + register_diag_field ( soc_mod_name, 'soc_toa_sw_clear', axes(1:2), Time, & + 'socrates Net TOA SW flux (down) clear', & + 'watts/m2', missing_value=missing_value ) + + id_soc_toa_sw_down = & + register_diag_field ( soc_mod_name, 'soc_toa_sw_down', axes(1:2), Time, & + 'socrates TOA SW flux down', & + 'watts/m2', missing_value=missing_value ) + + id_soc_toa_sw_down_clear = & + register_diag_field ( soc_mod_name, 'soc_toa_sw_down_clear', axes(1:2), Time, & + 'socrates TOA SW flux down clear sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_flux_lw = & register_diag_field ( soc_mod_name, 'soc_flux_lw', (/axes(1),axes(2),axes(4)/), Time, & 'socrates Net LW flux (up)', & @@ -328,10 +387,6 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb allocate(surf_lw_down_store(size(lonb,1)-1, size(latb,2)-1)) ! only required for output - if (id_soc_surf_flux_lw > 0) then - allocate(surf_lw_net_store(size(lonb,1)-1, size(latb,2)-1)) - endif - if (id_soc_flux_lw > 0) then allocate(thd_lw_flux_net_store(size(lonb,1)-1, size(latb,2)-1, num_levels+1)) endif @@ -340,13 +395,46 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb allocate(thd_sw_flux_net_store(size(lonb,1)-1, size(latb,2)-1, num_levels+1)) endif + if (id_soc_surf_flux_sw_clear > 0) then + allocate(net_surf_sw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif + if (id_soc_surf_flux_lw_down_clear > 0) then + allocate(surf_lw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif + + !surface + if (id_soc_surf_flux_lw > 0) then + allocate(surf_lw_net_store(size(lonb,1)-1, size(latb,2)-1)) + endif + if (id_soc_surf_flux_lw_clear > 0) then + allocate(surf_lw_net_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif + if (id_soc_surf_flux_sw_down > 0) then + allocate(surf_sw_down_store(size(lonb,1)-1, size(latb,2)-1)) + endif + if (id_soc_surf_flux_sw_down_clear > 0) then + allocate(surf_sw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif if (id_soc_olr > 0) then allocate(olr_store(size(lonb,1)-1, size(latb,2)-1)) endif + if (id_soc_olr_clear > 0) then + allocate(olr_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif if (id_soc_toa_sw > 0) then allocate(toa_sw_store(size(lonb,1)-1, size(latb,2)-1)) endif + if (id_soc_toa_sw_clear > 0) then + allocate(toa_sw_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif + if (id_soc_toa_sw_down > 0) then + allocate(toa_sw_down_store(size(lonb,1)-1, size(latb,2)-1)) + endif + if (id_soc_toa_sw_down_clear > 0) then + allocate(toa_sw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif + if (id_soc_coszen > 0) then allocate(coszen_store(size(lonb,1)-1, size(latb,2)-1)) @@ -408,6 +496,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & fms_coszen, fms_rrsun, n_profile, n_layer, & fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & output_heating_rate, output_flux_down, output_flux_up, & + output_flux_down_clear, output_flux_up_clear, & do_cloud_simple, & !optionals output_soc_spectral_olr, output_flux_direct, & @@ -455,8 +544,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & ! Output arrays real(r_def), intent(out) :: output_heating_rate(:,:,:) - real(r_def), intent(out) :: output_flux_up(:,:,:) - real(r_def), intent(out) :: output_flux_down(:,:,:) + real(r_def), intent(out) :: output_flux_up(:,:,:), output_flux_up_clear(:,:,:) + real(r_def), intent(out) :: output_flux_down(:,:,:), output_flux_down_clear(:,:,:) real(r_def), intent(out), optional :: output_flux_direct(:,:,:) @@ -475,7 +564,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad real(r_def), dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & - soc_flux_down, soc_flux_up, z_half_reshaped + soc_flux_down, soc_flux_up, z_half_reshaped, & + soc_flux_down_clear, soc_flux_up_clear real(r_def), dimension(n_profile) :: input_t_surf, input_cos_zenith_angle, input_solar_irrad, & input_orog_corr, input_planet_albedo @@ -643,11 +733,13 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & - input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & - soc_flux_down(idx_chunk_start:idx_chunk_end,:), & - soc_flux_up(idx_chunk_start:idx_chunk_end,:), & - soc_heating_rate(idx_chunk_start:idx_chunk_end,:), & + soc_flux_down(idx_chunk_start:idx_chunk_end,:), & + soc_flux_up(idx_chunk_start:idx_chunk_end,:), & + soc_flux_down_clear(idx_chunk_start:idx_chunk_end,:), & + soc_flux_up_clear(idx_chunk_start:idx_chunk_end,:), & + soc_heating_rate(idx_chunk_start:idx_chunk_end,:), & soc_spectral_olr(idx_chunk_start:idx_chunk_end,:)) else @@ -672,10 +764,12 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & - input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & - soc_flux_down(idx_chunk_start:idx_chunk_end,:), & - soc_flux_up(idx_chunk_start:idx_chunk_end,:), & + soc_flux_down(idx_chunk_start:idx_chunk_end,:), & + soc_flux_up(idx_chunk_start:idx_chunk_end,:), & + soc_flux_down_clear(idx_chunk_start:idx_chunk_end,:), & + soc_flux_up_clear(idx_chunk_start:idx_chunk_end,:), & soc_heating_rate(idx_chunk_start:idx_chunk_end,:)) endif @@ -685,6 +779,9 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & output_flux_up(:,:,:) = reshape(soc_flux_up(:,:),(/si,sj,sk+1 /)) output_flux_down(:,:,:) = reshape(soc_flux_down(:,:),(/si,sj,sk+1 /)) + output_flux_up_clear(:,:,:) = reshape(soc_flux_up_clear(:,:),(/si,sj,sk+1 /)) + output_flux_down_clear(:,:,:) = reshape(soc_flux_down_clear(:,:),(/si,sj,sk+1 /)) + if(present(output_flux_direct)) then output_flux_direct(:,:,:) = reshape(soc_flux_direct(:,:),(/si,sj,sk+1 /)) endif @@ -711,7 +808,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real, intent(in), dimension(:,:,:) :: temp_in, p_full_in, q_in, z_full_in real, intent(in), dimension(:,:,:) :: p_half_in, z_half_in real, intent(inout), dimension(:,:,:) :: temp_tend - real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down + real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down real, intent(in) :: delta_t logical, intent(in) :: do_cloud_simple real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad @@ -720,12 +817,19 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real(r_def), dimension(size(temp_in,1), size(temp_in,2)) :: t_surf_for_soc, rad_lat_soc, rad_lon_soc, albedo_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, z_full_soc, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc - real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, z_half_soc,output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, & + z_half_soc,output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up, & + output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear, output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear logical :: soc_lw_mode, used integer :: seconds, days, year_in_s real :: r_seconds, r_days, r_total_seconds, frac_of_day, frac_of_year, gmt, time_since_ae, rrsun, dt_rad_radians, day_in_s, r_solday, r_dt_rad_avg - real, dimension(size(temp_in,1), size(temp_in,2)) :: coszen, fracsun, surf_lw_net, olr, toa_sw + real, dimension(size(temp_in,1), size(temp_in,2)) :: coszen, fracsun, surf_lw_net, olr, toa_sw, toa_sw_down, surf_sw_down + + real, dimension(size(temp_in,1), size(temp_in,2)) :: olr_clear, toa_sw_clear, toa_sw_down_clear + real, dimension(size(temp_in,1), size(temp_in,2)) :: surf_lw_down_clear, surf_lw_net_clear, & + surf_sw_down_clear, net_surf_sw_down_clear + real, dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: ozone_in, co2_in real, dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: thd_sw_flux_net, thd_lw_flux_net type(time_type) :: Time_loc @@ -749,25 +853,59 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf surf_lw_down = real(surf_lw_down_store) !only required for output + if (id_soc_surf_flux_sw_clear > 0) then + net_surf_sw_down_clear = net_surf_sw_down_clear_store + endif + + if (id_soc_surf_flux_lw_down_clear > 0) then + surf_lw_down_clear = surf_lw_down_clear_store + endif + if (id_soc_surf_flux_lw > 0) then surf_lw_net = real(surf_lw_net_store) endif - + + if (id_soc_surf_flux_lw_clear > 0) then + surf_lw_net_clear = surf_lw_net_clear_store + endif + if (id_soc_flux_lw > 0) then thd_lw_flux_net = thd_lw_flux_net_store endif - if (id_soc_flux_sw > 0) then thd_sw_flux_net = thd_sw_flux_net_store endif + if (id_soc_surf_flux_sw_down > 0) then + surf_sw_down = surf_sw_down_store + endif + + if (id_soc_surf_flux_sw_down_clear > 0) then + surf_sw_down_clear = surf_sw_down_clear_store + endif + if (id_soc_olr > 0) then olr = olr_store endif + if (id_soc_olr_clear > 0) then + olr_clear = olr_clear_store + endif + if (id_soc_toa_sw > 0) then toa_sw = toa_sw_store endif + if (id_soc_toa_sw_clear > 0) then + toa_sw_clear = toa_sw_clear_store + endif + + if (id_soc_toa_sw_down > 0) then + toa_sw_down = toa_sw_down_store + endif + + if (id_soc_toa_sw_down_clear > 0) then + toa_sw_down_clear = toa_sw_down_clear_store + endif if (id_soc_coszen > 0) then coszen = coszen_store @@ -790,10 +928,14 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf thd_sw_flux_net = 0. thd_lw_flux_net = 0. net_surf_sw_down = 0. + surf_sw_down = 0. surf_lw_down = 0. surf_lw_net = 0. toa_sw = 0. + toa_sw_down = 0. olr = 0. + olr_clear = 0. + coszen = 0. ozone_in = 0. co2_in = 0. @@ -804,7 +946,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf output_heating_rate_total = output_heating_rate_sw +output_heating_rate_lw ! Send diagnostics - if(id_soc_tdt_lw > 0) then + if(id_soc_tdt_lw > 0) then !heating rate in (Ks-1) used = send_data ( id_soc_tdt_lw, output_heating_rate_lw, Time_diag) endif if(id_soc_tdt_sw > 0) then @@ -816,15 +958,45 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(id_soc_surf_flux_lw > 0) then used = send_data ( id_soc_surf_flux_lw, surf_lw_net, Time_diag) endif + if(id_soc_surf_flux_lw_clear > 0) then + used = send_data ( id_soc_surf_flux_lw_clear, surf_lw_net_clear, Time_diag) + endif + if(id_soc_surf_flux_lw_down > 0) then + used = send_data ( id_soc_surf_flux_lw_down, surf_lw_down, Time_diag) + endif + if(id_soc_surf_flux_lw_down_clear > 0) then + used = send_data ( id_soc_surf_flux_lw_down_clear, surf_lw_down_clear, Time_diag) + endif if(id_soc_surf_flux_sw > 0) then used = send_data ( id_soc_surf_flux_sw, net_surf_sw_down, Time_diag) endif + if(id_soc_surf_flux_sw_clear > 0) then + used = send_data ( id_soc_surf_flux_sw_clear, net_surf_sw_down_clear, Time_diag) + endif + if(id_soc_surf_flux_sw_down > 0) then + used = send_data ( id_soc_surf_flux_sw_down, surf_sw_down, Time_diag) + endif + if(id_soc_surf_flux_sw_down_clear > 0) then + used = send_data ( id_soc_surf_flux_sw_down_clear, surf_sw_down_clear, Time_diag) + endif if(id_soc_olr > 0) then used = send_data ( id_soc_olr, olr, Time_diag) endif + if(id_soc_olr_clear > 0) then + used = send_data ( id_soc_olr_clear, olr_clear, Time_diag) + endif if(id_soc_toa_sw > 0) then used = send_data ( id_soc_toa_sw, toa_sw, Time_diag) endif + if(id_soc_toa_sw_clear > 0) then + used = send_data ( id_soc_toa_sw_clear, toa_sw_clear, Time_diag) + endif + if(id_soc_toa_sw_down > 0) then + used = send_data ( id_soc_toa_sw_down, toa_sw_down, Time_diag) + endif + if(id_soc_toa_sw_down_clear > 0) then + used = send_data ( id_soc_toa_sw_down_clear, toa_sw_down_clear, Time_diag) + endif if(id_soc_flux_lw > 0) then used = send_data ( id_soc_flux_lw, thd_lw_flux_net, Time_diag) endif @@ -965,6 +1137,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, & + output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear, & do_cloud_simple, & !optional outs output_soc_spectral_olr = outputted_soc_spectral_olr, & @@ -973,9 +1146,16 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) - surf_lw_net(:,:) = REAL(output_soc_flux_lw_up(:,:,n_layer+1) - output_soc_flux_lw_down(:,:, n_layer+1)) - olr(:,:) = REAL(output_soc_flux_lw_up(:,:,1)) - thd_lw_flux_net = REAL(output_soc_flux_lw_up - output_soc_flux_lw_down) + surf_lw_down_clear(:,:) = REAL(output_soc_flux_lw_down_clear(:,:, n_layer+1)) + + surf_lw_net(:,:) = REAL(output_soc_flux_lw_up(:,:,n_layer+1) - & + output_soc_flux_lw_down(:,:, n_layer+1)) + surf_lw_net_clear(:,:) = REAL(output_soc_flux_lw_up_clear(:,:,n_layer+1) - & + output_soc_flux_lw_down_clear(:,:, n_layer+1)) + olr(:,:) = REAL(output_soc_flux_lw_up(:,:,1)) + olr_clear(:,:) = REAL(output_soc_flux_lw_up_clear(:,:,1)) + + thd_lw_flux_net = REAL(output_soc_flux_lw_up - output_soc_flux_lw_down) temp_tend(:,:,:) = temp_tend(:,:,:) + real(output_heating_rate_lw) @@ -988,14 +1168,28 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, & + output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear, & do_cloud_simple) tg_tmp_soc = tg_tmp_soc + output_heating_rate_sw*delta_t !Output heating rate in K/s, so is a temperature tendency - net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)-output_soc_flux_sw_up(:,:,n_layer+1) ) - toa_sw(:,:) = REAL(output_soc_flux_sw_down(:,:,1)-output_soc_flux_sw_up(:,:,1)) - thd_sw_flux_net = REAL(output_soc_flux_sw_up - output_soc_flux_sw_down) + net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1) - & + output_soc_flux_sw_up(:,:,n_layer+1) ) + net_surf_sw_down_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:, n_layer+1) - & + output_soc_flux_sw_up_clear(:,:,n_layer+1) ) + + toa_sw(:,:) = REAL(output_soc_flux_sw_down(:,:,1) - & + output_soc_flux_sw_up(:,:,1)) + toa_sw_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:,1) - & + output_soc_flux_sw_up_clear(:,:,1)) + + thd_sw_flux_net = REAL(output_soc_flux_sw_up - output_soc_flux_sw_down) !net sw all levels + + toa_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:,1)) + toa_sw_down_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:,1)) + surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)) + surf_sw_down_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:, n_layer+1)) temp_tend(:,:,:) = temp_tend(:,:,:) + real(output_heating_rate_sw) @@ -1009,10 +1203,6 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf surf_lw_down_store = real(surf_lw_down, kind(r_def)) ! required for output - if (id_soc_surf_flux_lw > 0) then - surf_lw_net_store = real(surf_lw_net, kind(r_def)) - endif - if (id_soc_flux_lw > 0) then thd_lw_flux_net_store = thd_lw_flux_net endif @@ -1021,10 +1211,26 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf thd_sw_flux_net_store = thd_sw_flux_net endif + if (id_soc_surf_flux_lw > 0) then + surf_lw_net_store = real(surf_lw_net, kind(r_def)) + endif + + if (id_soc_surf_flux_sw_down > 0) then + surf_sw_down_store = surf_sw_down + endif + + if (id_soc_toa_sw_down > 0) then + toa_sw_down_store = toa_sw_down + endif + if (id_soc_olr > 0) then olr_store = olr endif + if (id_soc_olr_clear > 0) then + olr_clear_store = olr_clear + endif + if (id_soc_toa_sw > 0) then toa_sw_store = toa_sw endif @@ -1060,12 +1266,21 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(id_soc_surf_flux_lw > 0) then used = send_data ( id_soc_surf_flux_lw, surf_lw_net, Time_diag) endif + if(id_soc_surf_flux_lw_down > 0) then + used = send_data ( id_soc_surf_flux_lw_down, surf_lw_down, Time_diag) + endif if(id_soc_surf_flux_sw > 0) then used = send_data ( id_soc_surf_flux_sw, net_surf_sw_down, Time_diag) endif + if(id_soc_surf_flux_sw_down > 0) then + used = send_data ( id_soc_surf_flux_sw_down, surf_sw_down, Time_diag) + endif if(id_soc_olr > 0) then used = send_data ( id_soc_olr, olr, Time_diag) endif + if(id_soc_olr_clear > 0) then + used = send_data ( id_soc_olr_clear, olr_clear, Time_diag) + endif if(id_soc_toa_sw > 0) then used = send_data ( id_soc_toa_sw, toa_sw, Time_diag) endif From 22af14ec777af990e890bebd6ee4ab0dd43b9ebc Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 28 Mar 2019 13:40:55 +0000 Subject: [PATCH 034/304] Implement protocol 2 for spookie-2 and debugging clear sky diagnostics --- .../socrates_aquaplanet_with_cloud.py | 10 +- src/atmos_param/cloud_simple/cloud_simple.F90 | 168 +++++++++++++----- .../socrates/interface/socrates_calc.F90 | 16 +- .../socrates/interface/socrates_interface.F90 | 71 +++++++- .../driver/solo/idealized_moist_phys.F90 | 8 +- 5 files changed, 203 insertions(+), 70 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index f3c189127..3e8e3813d 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 8 +NCORES = 16 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -74,13 +74,13 @@ diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) -diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +#diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_min', time_avg=True) diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) - # additional output options commented out -diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) #diag.add_field('socrates', 'soc_co2', time_avg=True) #diag.add_field('socrates', 'soc_ozone', time_avg=True) #diag.add_field('socrates', 'soc_coszen', time_avg=True) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index b27ba5788..b51cc84fe 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -17,19 +17,39 @@ module cloud_simple_mod logical :: do_init = .true. ! Check if init needs to be run real :: simple_cca = 0.0 - real :: rhcsfc = 0.95 - real :: rhc700 = 0.7 - real :: rhc200 = 0.3 + + ! Critical RH (fraction) values - spookie protocol 1 only + real :: rhc_sfc = 0.95 + real :: rhc_base = 0.7 + real :: rhc_top = 0.3 + ! real :: rhmsfc = 0.95 real :: rhm700 = 0.7 real :: rhm200 = 0.3 - namelist /cloud_simple_nml/ simple_cca, rhcsfc, rhc700, rhc200, & - rhmsfc, rhm700, rhm200 + ! Critical RH (fraction) values - spookie protocol 2 only + real :: rh_min_top = 0.9 + real :: rh_min_sfc = 1.0 + real :: rh_min_base = 0.8 + real :: rh_max_top = 1.0 + real :: rh_max_sfc = 1.0 + real :: rh_max_base = 1.0 + + ! Pressure (Pa.) at cloud bottom and top (very approx) + real :: p_base = 70000. + real :: p_top = 20000. + + integer :: spookie_protocol = 2 + + namelist /cloud_simple_nml/ simple_cca, rhc_sfc, rhc_base, rhc_top, & + rhmsfc, rhm700, rhm200, & + rh_min_top, rh_min_sfc, rh_min_base, & + rh_max_top, rh_max_sfc, rh_max_base + real :: zerodegc = 273.15 - integer :: id_cf, id_reff_rad, id_frac_liq, id_qcl_rad, id_rh_in_cf, id_simple_rhcrit - + integer :: id_cf, id_reff_rad, id_frac_liq, id_qcl_rad, id_rh_in_cf, & + id_simple_rhcrit, id_rh_min character(len=14), parameter :: mod_name_cld = "cloud_simple" @@ -86,11 +106,13 @@ subroutine cloud_simple_init (axes, Time) id_simple_rhcrit = & register_diag_field ( mod_name_cld, 'simple_rhcrit', axes(1:3), Time, & - 'RH as a percent', & + 'RH as a percent for spookie protocol 1', & '%') - - + id_rh_min = & + register_diag_field ( mod_name_cld, 'rh_min', axes(1:3), Time, & + 'RH as a percent for spookie protocol 2', & + '%') do_init = .false. !initialisation completed @@ -102,14 +124,14 @@ end subroutine cloud_simple_init subroutine cloud_simple(p_half, p_full, Time, & temp, q_hum, & ! outs - cf, reff_rad, qcl_rad ) + cf, cca, reff_rad, qcl_rad) real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half type(time_type) , intent(in) :: Time - real , intent(out), dimension(:,:,:) :: cf, reff_rad, qcl_rad + real , intent(out), dimension(:,:,:) :: cf, reff_rad, qcl_rad, cca - real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq, rh_in_cf, simple_rhcrit + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq, rh_in_cf, simple_rhcrit, rh_min, rh_max integer :: i, j, k, k_surf @@ -133,16 +155,26 @@ subroutine cloud_simple(p_half, p_full, Time, & ! the simple cloud scheme and cloud fraction. ! rh_in_cf is an output diagnostic only for debugging call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) + call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) - call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) - call calc_cf(q_hum(i,j,k), qs(i,j,k), simple_rhcrit(i,j,k), cf(i,j,k),rh_in_cf(i,j,k)) - call calc_qcl_rad(p_full(i,j,k), cf(i,j,k), qcl_rad(i,j,k) ) + + if (spookie_protocol .eq. 1) then + call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) + else + call calc_rh_min_max(p_full(i,j,k), p_full(i,j,k_surf),rh_min(i,j,k), rh_max(i,j,k)) + endif + + call calc_cf(q_hum(i,j,k), qs(i,j,k), cf(i,j,k), cca(i,j,k), rh_in_cf(i,j,k), & + simple_rhcrit = simple_rhcrit(i,j,k), & + rh_min = rh_min(i,j,k), rh_max = rh_max(i,j,k) ) + + call calc_qcl_rad(p_full(i,j,k), cf(i,j,k), temp(i,j,k), qcl_rad(i,j,k) ) end do end do end do !save some diagnotics - call output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time ) + call output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, rh_min, Time ) end subroutine cloud_simple @@ -176,71 +208,111 @@ subroutine calc_reff(frac_liq, reff_rad) end subroutine calc_reff subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - > p_layer_centres - !get the RH needed as a threshold for the cloud fraction calc. + ! get the RH needed as a threshold for the cloud fraction calc. + ! This is only requires for spookie_protocol=1 real, intent(in) :: p_full, p_surf real, intent(out) :: simple_rhcrit ! Calculate RHcrit as function of pressure - if (p_full > 70000.0 ) then + if (p_full > p_base ) then - simple_rhcrit = rhcsfc - ( rhcsfc - rhc700 ) * & - ( p_surf - p_full ) / ( p_surf - 70000.0 ) + simple_rhcrit = rhc_sfc - ( rhc_sfc - rhc_base ) * & + ( p_surf - p_full ) / ( p_surf - p_base ) - else if ( p_full > 20000.0 ) then + else if ( p_full > p_top ) then - simple_rhcrit = rhc700 - ( rhc700 - rhc200 ) * & - ( 70000.0 - p_full) / 50000.0 + simple_rhcrit = rhc_base - ( rhc_base - rhc_top ) * & + (p_base - p_full) / (p_base - p_top) else - simple_rhcrit = rhc200 + simple_rhcrit = rhc_top endif end subroutine calc_rhcrit - subroutine calc_cf (q_hum, qsat, simple_rhcrit, cf, rh) + subroutine calc_rh_min_max(p_full, p_surf, rh_min, rh_max) + + real, intent(in) :: p_full, p_surf + real, intent(out) :: rh_min, rh_max + + + if (p_full > p_base ) then !surface up to base + + rh_min = rh_min_sfc - ( rh_min_sfc - rh_min_base ) * ( p_surf - p_full ) / ( p_surf - p_base ) + rh_max = rh_max_sfc - ( rh_max_sfc - rh_max_base ) * ( p_surf - p_full ) / ( p_surf - p_base ) + + else if ( p_full > p_top ) then ! base up to top + + rh_min = rh_min_base - ( rh_min_base - rh_min_top ) * (p_base - p_full) / (p_base - p_top) + rh_max = rh_max_base - ( rh_max_base - rh_max_top ) * (p_base - p_full) / (p_base - p_top) + + else ! above top + + rh_min = rh_min_top + rh_max = rh_max_top + + endif + + + end subroutine calc_rh_min_max + + subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) ! Calculate LS (stratiform) cloud fraction ! as a simple linear function of RH - real, intent(in) :: q_hum, qsat, simple_rhcrit - real, intent(out) :: cf, rh - - real :: cca + real, intent(in) :: q_hum, qsat + real, intent(in), optional :: simple_rhcrit, rh_min, rh_max + + real, intent(out) :: cf, rh, cca rh = q_hum/qsat - cf = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) + if (spookie_protocol .eq. 1) then + cf = (rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) + cf = MAX( 0.0, MIN( 1.0, cf)) + + else + cf = (rh - rh_min ) / ( rh_max - rh_min ) + cf = MAX( 0.0, MIN( 1.0, cf)) + end if ! include simple convective cloud fraction where present (not currenly used) cca = 0.0 ! no convective cloud fraction is calculated - ! left in for future use + ! left in for future use if (cca > 0.0) then - cf = MAX( simple_cca, cf ) + cf = MAX( simple_cca, cf ) end if - + end subroutine calc_cf - subroutine calc_qcl_rad(p_full, cf, qcl_rad) + subroutine calc_qcl_rad(p_full, cf, temp, qcl_rad) ! calculate cloud water content - real , intent(in) :: p_full, cf - real , intent(out) :: qcl_rad + real , intent(in) :: p_full, cf, temp + real , intent(out) :: qcl_rad real :: in_cloud_qcl - - in_cloud_qcl = 3.0e-4 + & - (1.0-3.0e-4)*(p_full-20000.0)/80000.0 - - in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg - - qcl_rad = cf * in_cloud_qcl + + IF (spookie_protocol .eq. 1) THEN + ! pressure dependent in_cloud_qcl + in_cloud_qcl = 3.0e-4 + (1.0-3.0e-4)*(p_full-p_top)/80000.0 + in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg + qcl_rad = cf * in_cloud_qcl + ELSE + ! temperatue dependent in_cloud_qcl + in_cloud_qcl = MIN(0.2, 0.2 * ( temp - 220. ) / ( 280. -220. )) + in_cloud_qcl = MAX (3.0e-4, in_cloud_qcl/1000.0 ) ! convert to kg/kg + qcl_rad = cf * in_cloud_qcl + ENDIF end subroutine calc_qcl_rad - subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time) + subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, rh_min, Time) - real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit + real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf + real, intent(in), dimension(:,:,:), optional :: simple_rhcrit, rh_min type(time_type) , intent(in) :: Time @@ -270,6 +342,10 @@ subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_ used = send_data ( id_simple_rhcrit, simple_rhcrit*100.0, Time) endif + if ( id_rh_min > 0 ) then + used = send_data ( id_rh_min, rh_min*100.0, Time) + endif + end subroutine output_cloud_diags subroutine cloud_simple_end () diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index f50910a25..5474d0d5f 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -33,7 +33,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, & t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity, & layer_heat_capacity, & - cld_frac, reff_rad, mmr_cl_rad, & + cld_frac, cld_conv_frac, reff_rad, mmr_cl_rad, & flux_direct, flux_down, flux_up, & flux_down_clear, flux_up_clear, & heating_rate, spectral_olr) @@ -118,7 +118,10 @@ subroutine socrates_calc(Time_diag,control, spectrum, & ! Heat capacity of layer real(r_def), intent(in) :: cld_frac(n_profile, n_layer) -! Cloud fraction at layer centres +! Cloud fraction at layer centres for stratocumulus cloud + +real(r_def), intent(in) :: cld_conv_frac(n_profile, n_layer) +! Cloud fraction at layer centres for convective cloud real(r_def), intent(in) :: reff_rad(n_profile, n_layer) ! Cloud liquid particle radius from simple cloud scheme @@ -185,11 +188,12 @@ subroutine socrates_calc(Time_diag,control, spectrum, & zeros_cld = 0. ten_microns_cld = 1. call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & + conv_frac = cld_conv_frac,& liq_frac = cld_frac, & - ice_frac = zeros_cld, & - liq_mmr = mmr_cl_rad, & - ice_mmr = zeros_cld, & - liq_dim = reff_rad, & + ice_frac = zeros_cld, & + liq_mmr = mmr_cl_rad, & + ice_mmr = zeros_cld, & + liq_dim = reff_rad, & ice_dim = zeros_cld ) call set_aer(control, dimen, spectrum, aer, n_profile) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 3e525f866..d20d207a1 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -494,7 +494,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, & fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, & fms_coszen, fms_rrsun, n_profile, n_layer, & - fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & + fms_cld_frac, fms_cld_conv_frac, fms_reff_rad, fms_mmr_cl_rad,& output_heating_rate, output_flux_down, output_flux_up, & output_flux_down_clear, output_flux_up_clear, & do_cloud_simple, & @@ -539,6 +539,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), intent(in) :: fms_z_full(:,:,:), fms_z_half(:,:,:) real(r_def), intent(in) :: fms_rrsun real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) + real(r_def), intent(in) :: fms_cld_conv_frac(:,:,:) logical, intent(in) :: do_cloud_simple @@ -561,7 +562,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), dimension(n_profile, n_layer) :: input_p, input_t, input_mixing_ratio, & input_d_mass, input_density, input_layer_heat_capacity, & soc_heating_rate, input_o3_mixing_ratio, & - input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad + input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad, & + input_cld_conv_frac real(r_def), dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & soc_flux_down, soc_flux_up, z_half_reshaped, & @@ -608,6 +610,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_p_level = reshape(fms_p_half(:,:,:),(/si*sj,sk+1 /)) input_cld_frac = reshape(fms_cld_frac(:,:,:),(/si*sj,sk /)) + input_cld_conv_frac = reshape(fms_cld_conv_frac(:,:,:),(/si*sj,sk /)) + input_reff_rad = reshape(fms_reff_rad(:,:,:),(/si*sj,sk /)) input_mmr_cl_rad = reshape(fms_mmr_cl_rad(:,:,:),(/si*sj,sk/)) @@ -732,6 +736,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & @@ -763,6 +768,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & @@ -795,7 +801,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & end subroutine socrates_interface subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf_in, p_full_in, p_half_in, z_full_in, z_half_in, albedo_in, & - temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple, cf_rad, reff_rad, qcl_rad) + temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple, cf_rad, cca_rad, reff_rad, qcl_rad) use astronomy_mod, only: diurnal_solar use constants_mod, only: pi, wtmco2, wtmozone, rdgas, gas_constant @@ -811,12 +817,12 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down real, intent(in) :: delta_t logical, intent(in) :: do_cloud_simple - real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad + real, intent(in), dimension(:,:,:) :: cf_rad, cca_rad, reff_rad, qcl_rad integer(i_def) :: n_profile, n_layer real(r_def), dimension(size(temp_in,1), size(temp_in,2)) :: t_surf_for_soc, rad_lat_soc, rad_lon_soc, albedo_soc - real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, z_full_soc, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, z_full_soc, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc, cld_conv_frac_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, & z_half_soc,output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up, & output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear, output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear @@ -923,19 +929,36 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf outputted_soc_spectral_olr = spectral_olr_store endif else + !all sky heating rates. output_heating_rate_sw = 0. output_heating_rate_lw = 0. + + !all sky and clear sky fluxes. thd_sw_flux_net = 0. thd_lw_flux_net = 0. + net_surf_sw_down = 0. + net_surf_sw_down_clear = 0. + surf_sw_down = 0. + surf_sw_down_clear = 0. + surf_lw_down = 0. + surf_lw_down_clear = 0. + surf_lw_net = 0. + surf_lw_net_clear = 0. + toa_sw = 0. + toa_sw_clear = 0. + toa_sw_down = 0. + toa_sw_down_clear = 0. + olr = 0. olr_clear = 0. + !Others coszen = 0. ozone_in = 0. co2_in = 0. @@ -1100,6 +1123,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(do_cloud_simple) then cld_frac_soc = REAL(cf_rad, kind(r_def)) + cld_conv_frac_soc = REAL(cca_rad, kind(r_def)) + reff_rad_soc = REAL(reff_rad, kind(r_def)) qcl_rad_soc = REAL(qcl_rad, kind(r_def)) @@ -1107,6 +1132,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf else cld_frac_soc = 0. + cld_conv_frac_soc = 0. + reff_rad_soc = 0. mmr_cl_rad_soc = 0. @@ -1135,7 +1162,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & - n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + n_profile, n_layer, cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc,& output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, & output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear, & do_cloud_simple, & @@ -1145,7 +1172,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency - surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) + surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) surf_lw_down_clear(:,:) = REAL(output_soc_flux_lw_down_clear(:,:, n_layer+1)) surf_lw_net(:,:) = REAL(output_soc_flux_lw_up(:,:,n_layer+1) - & @@ -1166,7 +1193,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & - n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + n_profile, n_layer, cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, & output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear, & do_cloud_simple) @@ -1313,7 +1340,33 @@ subroutine run_socrates_end if(do_read_ozone) call interpolator_end(o3_interp) if(do_read_co2) call interpolator_end(co2_interp) - + + DEALLOCATE(soc_bins_lw) + DEALLOCATE(soc_bins_sw) + DEALLOCATE(outputted_soc_spectral_olr) + DEALLOCATE(tdt_soc_sw_store) + DEALLOCATE(tdt_soc_lw_store) + DEALLOCATE(net_surf_sw_down_store) + DEALLOCATE(surf_lw_down_store) + + if (id_soc_flux_lw > 0) DEALLOCATE(thd_lw_flux_net_store) + if (id_soc_flux_sw > 0) DEALLOCATE(thd_sw_flux_net_store) + if (id_soc_surf_flux_sw_clear > 0) DEALLOCATE(net_surf_sw_down_clear_store) + if (id_soc_surf_flux_lw_down_clear > 0) DEALLOCATE(surf_lw_down_clear_store) + if (id_soc_surf_flux_lw > 0) DEALLOCATE(surf_lw_net_store) + if (id_soc_surf_flux_lw_clear > 0) DEALLOCATE(surf_lw_net_clear_store) + if (id_soc_surf_flux_sw_down > 0) DEALLOCATE(surf_sw_down_store) + if (id_soc_surf_flux_sw_down_clear > 0) DEALLOCATE(surf_sw_down_clear_store) + if (id_soc_olr > 0) DEALLOCATE(olr_store) + if (id_soc_olr_clear > 0) DEALLOCATE(olr_clear_store) + if (id_soc_toa_sw > 0) DEALLOCATE(toa_sw_store) + if (id_soc_toa_sw_clear > 0) DEALLOCATE(toa_sw_clear_store) + if (id_soc_toa_sw_down > 0) DEALLOCATE(toa_sw_down_store) + if (id_soc_toa_sw_down_clear > 0) DEALLOCATE(toa_sw_down_clear_store) + if (id_soc_coszen > 0) DEALLOCATE(coszen_store) + if (id_soc_ozone > 0) DEALLOCATE(thd_ozone_store) + if (id_soc_co2 > 0 ) DEALLOCATE(thd_co2_store) + if (id_soc_spectral_olr > 0) DEALLOCATE(spectral_olr_store) end subroutine run_socrates_end diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 37061eb97..316b33460 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -756,7 +756,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv ! Simple cloud scheme variabilies to pass to radiation -real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad +real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad, cca_rad real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot @@ -937,8 +937,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg tg(:,:,:,previous), & grid_tracers(:,:,:,previous,nsphum), & ! outs - - cf_rad(:,:,:), reff_rad(:,:,:), & - qcl_rad(:,:,:) & + cf_rad(:,:,:), cca_rad(:,:,:), & + reff_rad(:,:,:), qcl_rad(:,:,:) & ) endif @@ -1059,7 +1059,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg endif call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), t_surf(:,:), p_full(:,:,:,current), & - p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), reff_rad(:,:,:), & + p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), cca_rad(:,:,:), reff_rad(:,:,:), & qcl_rad(:,:,:) ) endif From 6acfc2197f02228291c663097276d4aaab7bcae2 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 28 Mar 2019 14:27:50 +0000 Subject: [PATCH 035/304] Remove real conversions in soc_interface --- .../socrates_aquaplanet_with_cloud.py | 15 ++++----------- src/atmos_param/cloud_simple/cloud_simple.F90 | 3 +++ .../socrates/interface/socrates_interface.F90 | 4 ++-- .../socrates/interface/socrates_set_cld.F90 | 2 +- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 3e8e3813d..bc967d954 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -129,21 +129,14 @@ 'do_cloud_simple': True }, - 'cloud_simple_nml': { - 'simple_cca':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3 - }, - 'vert_turb_driver_nml': { 'do_mellor_yamada': False, # default: True 'do_diffusivity': True, # default: False 'do_simple': True, # default: False 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False + 'use_tau': False, }, - + 'diffusivity_nml': { 'do_entrain':False, 'do_simple': True, @@ -227,5 +220,5 @@ cb.compile(debug=False) exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) -# for i in range(2,171): -# exp.run(i, num_cores=NCORES) + for i in range(2,121): + exp.run(i, num_cores=NCORES) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index b51cc84fe..184923dc7 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -280,6 +280,9 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) cca = 0.0 ! no convective cloud fraction is calculated ! left in for future use + !cca can not be used in simple clouds as in read_control + ! control%i_cloud_representation = ip_cloud_ice_water + if (cca > 0.0) then cf = MAX( simple_cca, cf ) end if diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index d20d207a1..c26544050 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -868,7 +868,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif if (id_soc_surf_flux_lw > 0) then - surf_lw_net = real(surf_lw_net_store) + surf_lw_net = surf_lw_net_store endif if (id_soc_surf_flux_lw_clear > 0) then @@ -1239,7 +1239,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif if (id_soc_surf_flux_lw > 0) then - surf_lw_net_store = real(surf_lw_net, kind(r_def)) + surf_lw_net_store = surf_lw_net endif if (id_soc_surf_flux_sw_down > 0) then diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 index 99fd4a30e..3af8423b8 100644 --- a/src/atmos_param/socrates/interface/socrates_set_cld.F90 +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -348,7 +348,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) else cld%frac_cloud(l, k, ip_cloud_type_water) = 0.0_r_def - cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_r_def + cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_r_def end if end do end do From f9a5e93a404415cfed24e4a7db2a2895cb20520b Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 10 Apr 2019 10:44:23 +0100 Subject: [PATCH 036/304] Adding extra diagnostics to test case --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index bc967d954..389e0b898 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -39,6 +39,8 @@ diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) @@ -218,7 +220,9 @@ if __name__=="__main__": cb.compile(debug=False) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) + overwrite=False + + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) for i in range(2,121): - exp.run(i, num_cores=NCORES) + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From 4d2517d99d3c46cad93915ffd20b06a38a508f60 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 7 Apr 2020 13:52:29 +0100 Subject: [PATCH 037/304] Update to ignore for itcx_mip file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 4333c2fac..6393fe876 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ mima_pz.txt src/atmos_param/socrates/src/trunk* test/.cache test/results.xml +exp/itcz_mip_exp/itcz_mip_q_flux.nc From 328cf6ab483aa31cad6e8d4060c29f8282471065 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 16:18:11 +0100 Subject: [PATCH 038/304] Add file to paths and namelist variables in test scripts --- exp/test_cases/MiMA/MiMA_test_case.py | 12 +++++++++++- exp/test_cases/socrates_test/socrates_aquaplanet.py | 11 +++++++++++ src/extra/model/isca/path_names | 1 + src/extra/model/socrates/path_names | 1 + 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 270596744..f21ba6404 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -73,7 +73,17 @@ 'do_simple': True, 'roughness_mom':3.21e-05, 'roughness_heat':3.21e-05, - 'roughness_moist':3.21e-05, + 'roughness_moist':3.21e-05, + 'do_cloud_simple': True, + }, + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3, + 'rhmsfc': 0.95, + 'rhm700': 0.7, + 'rhm200': 0.3, }, 'vert_turb_driver_nml': { diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 2a4bc775f..41b77bc33 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -108,6 +108,17 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True, + }, + + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3, + 'rhmsfc': 0.95, + 'rhm700': 0.7, + 'rhm200': 0.3, }, 'vert_turb_driver_nml': { diff --git a/src/extra/model/isca/path_names b/src/extra/model/isca/path_names index ee73b2499..eebdfd2b0 100644 --- a/src/extra/model/isca/path_names +++ b/src/extra/model/isca/path_names @@ -11,6 +11,7 @@ atmos_param/sea_esf_rad/null/rad_utilities.F90 atmos_param/shallow_conv/shallow_conv.F90 atmos_param/stable_bl_turb/stable_bl_turb.F90 atmos_param/strat_cloud/null/strat_cloud.F90 +atmos_param/cloud_simple/cloud_simple.F90 atmos_param/two_stream_gray_rad/two_stream_gray_rad.F90 atmos_param/qflux/qflux.f90 atmos_param/monin_obukhov/monin_obukhov_interfaces.h diff --git a/src/extra/model/socrates/path_names b/src/extra/model/socrates/path_names index 6cb698ede..2f4dac9eb 100644 --- a/src/extra/model/socrates/path_names +++ b/src/extra/model/socrates/path_names @@ -11,6 +11,7 @@ atmos_param/sea_esf_rad/null/rad_utilities.F90 atmos_param/shallow_conv/shallow_conv.F90 atmos_param/stable_bl_turb/stable_bl_turb.F90 atmos_param/strat_cloud/null/strat_cloud.F90 +atmos_param/cloud_simple/cloud_simple.F90 atmos_param/two_stream_gray_rad/two_stream_gray_rad.F90 atmos_param/qflux/qflux.f90 atmos_param/monin_obukhov/monin_obukhov_interfaces.h From f4e8861db5ea11910667740b24837d1065ef6ce0 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 16:18:53 +0100 Subject: [PATCH 039/304] Additions to RRTM and ideal mosist phys to use the simple cloud scheme --- .../rrtm_radiation/rrtm_radiation.f90 | 51 ++++++++++++++----- .../driver/solo/idealized_moist_phys.F90 | 28 +++++++++- 2 files changed, 64 insertions(+), 15 deletions(-) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 3f498b402..3f7e6ec74 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -531,7 +531,10 @@ subroutine interp_temp(z_full,z_half,t, Time) end subroutine interp_temp !***************************************************************************************** !***************************************************************************************** - subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt,coszen,flux_sw,flux_lw) + subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & + albedo,q,t,t_surf_rad,tdt, & + coszen,flux_sw,flux_lw,cfa_rad,reff_rad, & + do_cloud_simple) ! ! Driver for RRTMG radiation scheme. ! Prepares all inputs, calls SW and LW radiation schemes, @@ -577,6 +580,11 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, real(kind=rb),dimension(:,:),intent(out),optional :: flux_sw,flux_lw ! surface fluxes [W/m2] ! dimension (lat x lon) ! need to have both or none! + real(kind=rb), dimension(:,:,:), intent(in) :: cfa_rad,reff_rad !cloud properties + + logical, intent(in) :: do_cloud_simple + + !--------------------------------------------------------------------------------------------------------------- ! Local variables integer k,j,i,ij,j1,i1,ij1,kend,dyofyr,seconds,days @@ -584,7 +592,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: o3f real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: co2f,co2f_temp real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: pfull,tfull,fracday& - , hr,hrc, swhr, swhrc + , hr,hrc, swhr, swhrc, cldfr, reliq, reice real(kind=rb),dimension(size(tdt,1),size(tdt,2),size(tdt,3)) :: tdt_rrtm real(kind=rb),dimension(ncols_rrt,nlay_rrt+1) :: uflx, dflx, uflxc, dflxc& ,swuflx, swdflx, swuflxc, swdflxc @@ -599,11 +607,10 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, real(kind=rb),dimension(size(q,1),size(q,2)) :: fracsun real(kind=rb),dimension(size(q,1),size(q,2)) :: p2 !mp586 addition for annual mean insolation - integer :: year_in_s + integer :: year_in_s real :: r_seconds, r_days, r_total_seconds, frac_of_day, frac_of_year, gmt, time_since_ae, rrsun, dt_rad_radians, day_in_s, r_solday, r_dt_rad_avg - ! debug integer :: indx2(2),indx(3),ii,ji,ki logical :: used @@ -828,6 +835,20 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, ! anything lower than 0.01 (about 15min) is set to zero ! where(cosz_rr < 1.e-2)cosz_rr=0. + if (do_cloud_simple) then + inflglw = 2 !RRTM responsible for calculating optical properties of clouds + liqflglw = 1 !Sets liquid water radii to be used rather than being inactive (zero is inactive) + cldfr = reshape( cfa_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) + reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) + reice = zeros !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros + else + cldfr = zeros + reliq = 10*ones + reice = 10*ones + endif + + + if(include_secondary_gases)then call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & @@ -835,13 +856,14 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, h2o , o3 , co2 , ch4_val*ones , n2o_val*ones , o2_val*ones , & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & - inflglw , iceflglw , liqflglw , & + inflglw , iceflglw , liqflglw , & ! cloud parameters - zeros , taucld , sw_zro , sw_zro , sw_zro , & - zeros , zeros , 10*ones , 10*ones , & - tauaer , zro_sw , zro_sw , zro_sw , & + cldfr, & + taucld , sw_zro , sw_zro , sw_zro , & + zeros , zeros , reice , reliq , & + tauaer , zro_sw , zro_sw , zro_sw , & ! output - swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) + swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) else call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & @@ -849,10 +871,11 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, h2o , o3 , co2 , zeros , zeros, zeros, & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & - inflglw , iceflglw , liqflglw , & + inflglw , iceflglw , liqflglw , & ! cloud parameters - zeros , taucld , sw_zro , sw_zro , sw_zro , & - zeros , zeros , 10*ones , 10*ones , & + cldfr, & + taucld , sw_zro , sw_zro , sw_zro , & + zeros , zeros , reice , reliq , & tauaer , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) @@ -884,7 +907,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, ! emissivity and cloud composition emis , inflglw , iceflglw , liqflglw , & ! cloud parameters - zeros , taucld , zeros , zeros , 10*ones, 10*ones, & + cldfr , taucld , zeros , zeros , reice, reliq, & tauaer , & ! output uflx , dflx , hr , uflxc , dflxc , hrc) @@ -897,7 +920,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, ! emissivity and cloud composition emis , inflglw , iceflglw, liqflglw, & ! cloud parameters - zeros , taucld , zeros , zeros, 10*ones, 10*ones, & + cldfr , taucld , zeros , zeros, reice, reliq, & tauaer , & ! output uflx , dflx , hr , uflxc, dflxc , hrc) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 1d7a89eb2..986bc1313 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -18,6 +18,8 @@ module idealized_moist_phys_mod use two_stream_gray_rad_mod, only: two_stream_gray_rad_init, two_stream_gray_rad_down, two_stream_gray_rad_up, two_stream_gray_rad_end +use cloud_simple_mod, only: cloud_simple_init, cloud_simple_end, cloud_simple + use mixed_layer_mod, only: mixed_layer_init, mixed_layer, mixed_layer_end, albedo_calc use lscale_cond_mod, only: lscale_cond_init, lscale_cond, lscale_cond_end @@ -107,6 +109,9 @@ module idealized_moist_phys_mod logical :: do_bm = .false. logical :: do_ras = .false. +! Cloud options +logical :: do_cloud_simple = .false. + !s Radiation options logical :: two_stream_gray = .true. logical :: do_rrtm_radiation = .false. @@ -142,6 +147,7 @@ module idealized_moist_phys_mod ! end RG Add bucket namelist / idealized_moist_phys_nml / turb, lwet_convection, do_bm, do_ras, roughness_heat, & + do_cloud_simple, & two_stream_gray, do_rrtm_radiation, do_damping,& mixed_layer_bc, do_simple, & roughness_moist, roughness_mom, do_virtual, & @@ -790,6 +796,9 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real :: delta_t real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv +! Simple cloud scheme variabilies to pass to radiation +real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cfa_rad, reff_rad + real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot @@ -952,6 +961,20 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg endif +! Call the simple cloud scheme in line with SPOOKIE-2 requirements +! Using start of time step variables +! using soecific humidity NOT mixing ratios +if(do_cloud_simple) then + call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & + Time, & + tg(:,:,:,previous), & + grid_tracers(:,:,:,previous,nsphum), & + ! outs - + cfa_rad(:,:,:), reff_rad(:,:,:) & + ) + +endif + ! Begin the radiation calculation by computing downward fluxes. ! This part of the calculation does not depend on the surface temperature. @@ -1076,7 +1099,10 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg !need t at half grid tg_interp=tg(:,:,:,previous) call interp_temp(z_full(:,:,:,current),z_half(:,:,:,current),tg_interp, Time) - call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current),albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:),coszen,net_surf_sw_down(:,:),surf_lw_down(:,:)) + call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current), & + albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:), & + coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cfa_rad(:,:,:), reff_rad(:,:,:), & + do_cloud_simple ) endif #endif From 65c482d8670fb207c99b7c3c57a3d3a084b45cd0 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 16:19:54 +0100 Subject: [PATCH 040/304] Fist drafted simple cloud scheme - need to check hooks to rrtm and work out approach for socrities --- src/atmos_param/cloud_simple/cloud_simple.F90 | 203 ++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 src/atmos_param/cloud_simple/cloud_simple.F90 diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 new file mode 100644 index 000000000..c9c09de75 --- /dev/null +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -0,0 +1,203 @@ +module cloud_simple_mod + +#ifdef INTERNAL_FILE_NML + use mpp_mod, only: input_nml_file +#else + use fms_mod, only: open_namelist_file, close_file +#endif + + use fms_mod, only: stdlog, FATAL, WARNING, error_mesg + use time_manager_mod, only: time_type + + implicit none + + logical :: do_init = .true. ! Do I still need to do init? + + real :: simple_cca = 0.0 + real :: rhcsfc = 0.95 + real :: rhc700 = 0.7 + real :: rhc200 = 0.3 + real :: rhmsfc = 0.95 + real :: rhm700 = 0.7 + real :: rhm200 = 0.3 + + namelist /cloud_simple_nml/ simple_cca, rhcsfc, rhc700, rhc200, & + rhmsfc, rhm700, rhm200 + real :: zerodegc = 273.15 + + + contains + + !----------------------------------------------- + + + subroutine cloud_simple_init () + + integer :: io ,stdlog_unit + +#ifdef INTERNAL_FILE_NML + read (input_nml_file, nml=cloud_simple_nml, iostat=io) +#else + if ( file_exist('input.nml') ) then + nml_unit = open_namelist_file() + read (nml_unit, cloud_simple_nml, iostat=io) + call close_file(nml_unit) + endif +#endif + stdlog_unit = stdlog() + write(stdlog_unit, cloud_simple_nml) + + do_init = .false. !initialisation completed + + end subroutine cloud_simple_init + + !----------------------------------------------- + + subroutine cloud_simple (p_half, p_full, Time, & + temp, q_hum, & + ! outs + cfa_rad, reff_rad ) + + real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half + type(time_type) , intent(in) :: Time + + real , intent(out), dimension(:,:,:) :: cfa_rad, reff_rad + + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, qcl_rad + real :: frac_liq, cf_rad, simple_rhcrit + + integer :: i, j, k, k_surf + + logical :: es_over_liq_and_ice=.true. + + !check initiation has been done - ie read in parameters + if (do_init) call error_mesg ('cloud_simple', & + 'cloud_simple_init has not been called.', FATAL) + + ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! + call compute_qs(temp, p_full, qs, es_over_liq_and_ice) !qs=qsat in um + + k_surf = size(temp, 3) + + do i=1, size(temp, 1) + do j=1, size(temp, 2) + do k=1, size(temp, 3) + + !caluclate the frac_liq + call calc_liq_frac(temp(i,j,k), frac_liq) + call calc_reff(frac_liq, reff_rad(i,j,k)) + call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit) + call calc_cf_rad(q_hum(i,j,k), qs(i,j,k), simple_rhcrit, cf_rad) + call calc_qcl_rad(p_full(i,j,k), cf_rad, qcl_rad(i,j,k) ) + end do + end do + end do + + !WHAT ARE THE UNITS + !add diagnostics + + end subroutine cloud_simple + + subroutine calc_liq_frac(temp, frac_liq) + ! All liquid if above zero and all ice below -40C + ! linearly interpolate between T=0 and -40C + + real, intent(in) :: temp + real, intent(out) :: frac_liq + + + if (temp > zerodegc) then + frac_liq = 1.0 + else if (temp < zerodegc-40.0) then + frac_liq = 0.0 + else + frac_liq = 1.0 - (zerodegc-temp) / 40.0 + end if + + + end subroutine calc_liq_frac + + subroutine calc_reff(frac_liq, reff_rad) + + real, intent(in) :: frac_liq + real, intent(out) :: reff_rad + + reff_rad = 1.0e-6 * ( 10.0 * frac_liq + 20.0 * (1.0 - frac_liq) ) + + end subroutine calc_reff + + subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - > p_layer_centres + + real, intent(in) :: p_full, p_surf + real, intent(out) :: simple_rhcrit + + ! Calculate RHcrit as function of pressure + if (p_full > 70000.0 ) then + + simple_rhcrit = rhcsfc - ( rhcsfc - rhc700 ) * & + ( p_surf - p_full ) / ( p_surf - 70000.0 ) + + else if ( p_full > 20000.0 ) then + + simple_rhcrit = rhc700 - ( rhc700 - rhc200 ) * & + ( 70000.0 - p_full) / 50000.0 + + else + simple_rhcrit = rhc200 + endif + + end subroutine calc_rhcrit + + subroutine calc_cf_rad (q_hum, qsat, simple_rhcrit, cf_rad) + ! Calculate LS (stratiform) cloud fraction + ! as a simple linear function of RH + + real, intent(in) :: q_hum, qsat, simple_rhcrit + real, intent(out) :: cf_rad + + real :: rh, cca + + rh = q_hum/qsat + cf_rad = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) + + ! include simple convective cloud fraction where present + + cca = 0.0 ! no convective cloud fraction is calculated + ! left in for fture use + + if (cca > 0.0) then + cf_rad = MAX( simple_cca, cf_rad ) + end if + + end subroutine calc_cf_rad + + subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) + ! calculate simple water content + + real , intent(in) :: p_full, cf_rad + real , intent(out) :: qcl_rad + + real :: in_cloud_qcl + + in_cloud_qcl = 3.0e-4 + & + (1.0-3.0e-4)*(p_full-20000.0)/80000.0 + + in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg + + qcl_rad = cf_rad * in_cloud_qcl + + end subroutine calc_qcl_rad + + + !----------------------------------------------- + + + subroutine cloud_simple_end () + + ! do we deallocate anything? + + end subroutine cloud_simple_end + + !----------------------------------------------- + +end module cloud_simple_mod From 901631ab993eb97431052d504050477bed5bbdda Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 17:30:24 +0100 Subject: [PATCH 041/304] Changes so code will now compile --- src/atmos_param/cloud_simple/cloud_simple.F90 | 9 +++++---- src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 5 +++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index c9c09de75..a04d92b5b 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -6,8 +6,9 @@ module cloud_simple_mod use fms_mod, only: open_namelist_file, close_file #endif - use fms_mod, only: stdlog, FATAL, WARNING, error_mesg - use time_manager_mod, only: time_type + use fms_mod, only: stdlog, FATAL, WARNING, error_mesg + use time_manager_mod, only: time_type + use sat_vapor_pres_mod, only: compute_qs implicit none @@ -68,14 +69,14 @@ subroutine cloud_simple (p_half, p_full, Time, & integer :: i, j, k, k_surf - logical :: es_over_liq_and_ice=.true. + logical :: es_over_liq_and_ice !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! - call compute_qs(temp, p_full, qs, es_over_liq_and_ice) !qs=qsat in um + call compute_qs(temp, p_full, qs, es_over_liq_and_ice=.true.) !qs=qsat in um k_surf = size(temp, 3) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 986bc1313..ca7783407 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -347,6 +347,10 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l d622 = rdgas/rvgas d378 = 1.-d622 +if(do_cloud_simple) then + call cloud_simple_init() +end if + !s need to make sure that gray radiation and rrtm radiation are not both called. if(two_stream_gray .and. do_rrtm_radiation) & call error_mesg('physics_driver_init','do_grey_radiation and do_rrtm_radiation cannot both be .true.',FATAL) @@ -965,6 +969,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! Using start of time step variables ! using soecific humidity NOT mixing ratios if(do_cloud_simple) then + call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & Time, & tg(:,:,:,previous), & From c650be26d3092384939f2c2ed120e2ad1c2caef8 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 17:31:07 +0100 Subject: [PATCH 042/304] Now building sat specific humidity tables and shorter run on more cores --- exp/test_cases/MiMA/MiMA_test_case.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index f21ba6404..61472cc25 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 4 +NCORES = 16 # a CodeBase can be a directory on the computer, # useful for iterative development @@ -131,7 +131,8 @@ }, 'sat_vapor_pres_nml': { - 'do_simple':True + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True }, 'damping_driver_nml': { @@ -185,5 +186,5 @@ #Lets do a run! if __name__=="__main__": exp.run(1, use_restart=False, num_cores=NCORES) - for i in range(2,121): + for i in range(2,25): exp.run(i, num_cores=NCORES) From ba8525828359bec3dd851362e9130d7cd15e30c1 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 12:24:50 +0100 Subject: [PATCH 043/304] exp/test_cases/MiMA/MiMA_test_case.py --- src/atmos_param/cloud_simple/cloud_simple.F90 | 91 ++++++++++++++++--- .../rrtm_radiation/rrtm_radiation.f90 | 20 ++-- .../driver/solo/idealized_moist_phys.F90 | 15 ++- 3 files changed, 99 insertions(+), 27 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index a04d92b5b..c35708ad3 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -10,9 +10,11 @@ module cloud_simple_mod use time_manager_mod, only: time_type use sat_vapor_pres_mod, only: compute_qs + use diag_manager_mod, only: register_diag_field, send_data + implicit none - logical :: do_init = .true. ! Do I still need to do init? + logical :: do_init = .true. ! Check if init needs to be run real :: simple_cca = 0.0 real :: rhcsfc = 0.95 @@ -26,16 +28,22 @@ module cloud_simple_mod rhmsfc, rhm700, rhm200 real :: zerodegc = 273.15 + integer :: id_cf_rad, id_reff_rad, id_frac_liq, id_qcl_rad + character(len=14), parameter :: mod_name_cld = "cloud_simple" contains !----------------------------------------------- - subroutine cloud_simple_init () + subroutine cloud_simple_init (axes, Time) + + type(time_type), intent(in) :: Time + integer, intent(in), dimension(4) :: axes integer :: io ,stdlog_unit + #ifdef INTERNAL_FILE_NML read (input_nml_file, nml=cloud_simple_nml, iostat=io) #else @@ -48,6 +56,26 @@ subroutine cloud_simple_init () stdlog_unit = stdlog() write(stdlog_unit, cloud_simple_nml) + !register diagnostics + id_cf_rad = & + register_diag_field ( mod_name_cld, 'cf_rad', axes(1:3), Time, & + 'Cloud fraction for the simple cloud scheme', 'unitless: values 0-1') + + id_frac_liq = & + register_diag_field ( mod_name_cld, 'frac_liq', axes(1:3), Time, & + 'Liquid cloud fraction (liquid, mixed-ice phase, ice)', & + 'unitless: values 0-1') + + id_reff_rad = & + register_diag_field ( mod_name_cld, 'reff_rad', axes(1:3), Time, & + 'Effective cloud particle radius', & + 'microns') + + id_qcl_rad = & + register_diag_field ( mod_name_cld, 'qcl_rad', axes(1:3), Time, & + 'Specific humidity of cloud liquid', & + 'kg/kg') + do_init = .false. !initialisation completed end subroutine cloud_simple_init @@ -57,20 +85,22 @@ end subroutine cloud_simple_init subroutine cloud_simple (p_half, p_full, Time, & temp, q_hum, & ! outs - cfa_rad, reff_rad ) + cf_rad, reff_rad, qcl_rad ) real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half type(time_type) , intent(in) :: Time - real , intent(out), dimension(:,:,:) :: cfa_rad, reff_rad + real , intent(out), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad - real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, qcl_rad - real :: frac_liq, cf_rad, simple_rhcrit + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq + real :: simple_rhcrit integer :: i, j, k, k_surf logical :: es_over_liq_and_ice + real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) @@ -85,17 +115,22 @@ subroutine cloud_simple (p_half, p_full, Time, & do k=1, size(temp, 3) !caluclate the frac_liq - call calc_liq_frac(temp(i,j,k), frac_liq) - call calc_reff(frac_liq, reff_rad(i,j,k)) + call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) + call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit) - call calc_cf_rad(q_hum(i,j,k), qs(i,j,k), simple_rhcrit, cf_rad) - call calc_qcl_rad(p_full(i,j,k), cf_rad, qcl_rad(i,j,k) ) + call calc_cf_rad(q_hum(i,j,k), qs(i,j,k), simple_rhcrit, cf_rad(i,j,k)) + call calc_qcl_rad(p_full(i,j,k), cf_rad(i,j,k), qcl_rad(i,j,k) ) end do end do end do - !WHAT ARE THE UNITS - !add diagnostics + !save some diagnotics + call output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time ) + +tmp2 = maxval(cf_rad) +tmp1 = maxval(reff_rad) +tmp2 = maxval(cf_rad) + end subroutine cloud_simple @@ -123,7 +158,7 @@ subroutine calc_reff(frac_liq, reff_rad) real, intent(in) :: frac_liq real, intent(out) :: reff_rad - reff_rad = 1.0e-6 * ( 10.0 * frac_liq + 20.0 * (1.0 - frac_liq) ) + reff_rad = 10.0 * frac_liq + 20.0 * (1.0 - frac_liq) !units in microns end subroutine calc_reff @@ -170,6 +205,8 @@ subroutine calc_cf_rad (q_hum, qsat, simple_rhcrit, cf_rad) cf_rad = MAX( simple_cca, cf_rad ) end if + + end subroutine calc_cf_rad subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) @@ -190,6 +227,34 @@ subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) end subroutine calc_qcl_rad + + subroutine output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time) + + real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, frac_liq, qcl_rad + + type(time_type) , intent(in) :: Time + + real :: used + + if ( id_cf_rad > 0 ) then + used = send_data ( id_cf_rad, cf_rad, Time) + endif + + if ( id_reff_rad > 0 ) then + used = send_data ( id_reff_rad, reff_rad, Time) + endif + + if ( id_frac_liq > 0 ) then + used = send_data ( id_frac_liq, frac_liq, Time) + endif + + if ( id_qcl_rad > 0 ) then + used = send_data ( id_qcl_rad, qcl_rad, Time) + endif + + + end subroutine output_cloud_diags + !----------------------------------------------- diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 3f7e6ec74..dc9e9ab3a 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -533,7 +533,7 @@ end subroutine interp_temp !***************************************************************************************** subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & albedo,q,t,t_surf_rad,tdt, & - coszen,flux_sw,flux_lw,cfa_rad,reff_rad, & + coszen,flux_sw,flux_lw,cf_rad,reff_rad, & do_cloud_simple) ! ! Driver for RRTMG radiation scheme. @@ -580,7 +580,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & real(kind=rb),dimension(:,:),intent(out),optional :: flux_sw,flux_lw ! surface fluxes [W/m2] ! dimension (lat x lon) ! need to have both or none! - real(kind=rb), dimension(:,:,:), intent(in) :: cfa_rad,reff_rad !cloud properties + real(kind=rb), dimension(:,:,:), intent(in) :: cf_rad,reff_rad !cloud properties logical, intent(in) :: do_cloud_simple @@ -612,6 +612,8 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! debug + real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + integer :: indx2(2),indx(3),ii,ji,ki logical :: used !--------------------------------------------------------------------------------------------------------------- @@ -838,16 +840,16 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & if (do_cloud_simple) then inflglw = 2 !RRTM responsible for calculating optical properties of clouds liqflglw = 1 !Sets liquid water radii to be used rather than being inactive (zero is inactive) - cldfr = reshape( cfa_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) - reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) - reice = zeros !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros + cldfr = reshape( cf_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) + reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) !already in microns + reice = 10*ones !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros else cldfr = zeros - reliq = 10*ones - reice = 10*ones + reliq = 10*ones ! not requires to be 10 microns but assumed a valid number + reice = 10*ones ! needs to be 10 microns endif - - + tmp1 = maxval(reff_rad) + tmp2 = maxval(cf_rad) if(include_secondary_gases)then call rrtmg_sw & diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index ca7783407..07d9191f8 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -348,7 +348,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l d378 = 1.-d622 if(do_cloud_simple) then - call cloud_simple_init() + call cloud_simple_init(get_axis_id(), Time) end if !s need to make sure that gray radiation and rrtm radiation are not both called. @@ -801,7 +801,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv ! Simple cloud scheme variabilies to pass to radiation -real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cfa_rad, reff_rad +real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot @@ -809,6 +809,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(1,1,1):: tracer, tracertnd integer :: nql, nqi, nqa ! tracer indices for stratiform clouds +real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + if(current == previous) then delta_t = dt_real else @@ -975,11 +977,14 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg tg(:,:,:,previous), & grid_tracers(:,:,:,previous,nsphum), & ! outs - - cfa_rad(:,:,:), reff_rad(:,:,:) & + cf_rad(:,:,:), reff_rad(:,:,:), & + qcl_rad(:,:,:) & ) - + endif +tmp1 = maxval(reff_rad) +tmp2 = maxval(cf_rad) ! Begin the radiation calculation by computing downward fluxes. ! This part of the calculation does not depend on the surface temperature. @@ -1106,7 +1111,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg call interp_temp(z_full(:,:,:,current),z_half(:,:,:,current),tg_interp, Time) call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current), & albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:), & - coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cfa_rad(:,:,:), reff_rad(:,:,:), & + coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cf_rad(:,:,:), reff_rad(:,:,:), & do_cloud_simple ) endif #endif From 090508b686ecd9312940f76fbc230d2ce35e4ded Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 12:25:51 +0100 Subject: [PATCH 044/304] Previous commit did not have all files: attempting to debug why cloud fraction is not passed out of the simple cloud scheme --- exp/test_cases/MiMA/MiMA_test_case.py | 19 +- .../MiMA/MiMA_test_case_no_cloud.py | 191 ++++++++++++++++++ 2 files changed, 203 insertions(+), 7 deletions(-) create mode 100644 exp/test_cases/MiMA/MiMA_test_case_no_cloud.py diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 61472cc25..06ab56cf5 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 16 +NCORES = 1 # a CodeBase can be a directory on the computer, # useful for iterative development @@ -19,7 +19,7 @@ # is used to load the correct compilers. The env file is always loaded from # $GFDL_BASE and not the checked out git repo. -cb.compile() # compile the source code to working directory $GFDL_WORK/codebase +cb.compile(debug=True) # compile the source code to working directory $GFDL_WORK/codebase # create an Experiment object to handle the configuration of model parameters # and output diagnostics @@ -43,6 +43,11 @@ diag.add_field('dynamics', 'temp', time_avg=True) diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) +diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +diag.add_field('rrtm_radiation', 'olr', time_avg=True) exp.diag_table = diag @@ -138,7 +143,7 @@ 'damping_driver_nml': { 'do_rayleigh': True, 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 50., + 'sponge_pbottom': 150., 'do_conserve_energy': True, }, @@ -175,7 +180,7 @@ 'valid_range_t':[100.,800.], 'initial_sphum':[2.e-6], 'vert_coord_option':'uneven_sigma', - 'surf_res':0.5, + 'surf_res':0.2, 'scale_heights' : 11.0, 'exponent':7.0, 'robert_coeff':0.03 @@ -185,6 +190,6 @@ }) #Lets do a run! if __name__=="__main__": - exp.run(1, use_restart=False, num_cores=NCORES) - for i in range(2,25): - exp.run(i, num_cores=NCORES) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True, run_idb=True) + # for i in range(2,25): + # exp.run(i, num_cores=NCORES, overwrite_data=True) diff --git a/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py b/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py new file mode 100644 index 000000000..645a589ea --- /dev/null +++ b/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py @@ -0,0 +1,191 @@ +import os + +import numpy as np + +from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE + +NCORES = 16 + +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = IscaCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +cb.compile() # compile the source code to working directory $GFDL_WORK/codebase + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics +exp = Experiment('mima_test_experiment_no_cloud', codebase=cb) + +exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Tell model which diagnostics to write +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) +diag.add_field('rrtm_radiation', 'olr', time_avg=True) + +exp.diag_table = diag + + +#Empty the run directory ready to run +exp.clear_rundir() + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml': { + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + + 'idealized_moist_phys_nml': { + 'two_stream_gray': False, + 'do_rrtm_radiation': True, #Use RRTM radiation, not grey + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use the simple Betts Miller convection scheme + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'do_cloud_simple': False, + }, + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3, + 'rhmsfc': 0.95, + 'rhm700': 0.7, + 'rhm200': 0.3, + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'depth': 100, + 'albedo_value': 0.205, + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'do_qflux': True + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., + 'do_conserve_energy': True, + }, + + 'qflux_nml': { + 'qflux_amp': 30.0 + }, + + 'rrtm_radiation_nml': { + 'solr_cnst': 1360, #s set solar constant to 1360, rather than default of 1368.22 + 'dt_rad': 7200, #Use long RRTM timestep + 'do_read_ozone':True, + 'ozone_file':'ozone_1990' + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03 + } + + +}) +#Lets do a run! +if __name__=="__main__": + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True) + for i in range(2,25): + exp.run(i, num_cores=NCORES, overwrite_data=True) From 914e6eb7eef1172a2ade294d6ad72761dd9938c5 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 16:27:53 +0100 Subject: [PATCH 045/304] Swapped to using mcica sw routine and added required initialisation routine. Seems to run. Now swapping to lw mcica. --- exp/test_cases/MiMA/MiMA_test_case.py | 9 +- .../rrtm_radiation/rrtm_radiation.f90 | 98 +++++++++++++------ src/extra/model/isca/path_names | 2 +- 3 files changed, 74 insertions(+), 35 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 06ab56cf5..aef6b0ab6 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 1 +NCORES = 16 # a CodeBase can be a directory on the computer, # useful for iterative development @@ -19,7 +19,7 @@ # is used to load the correct compilers. The env file is always loaded from # $GFDL_BASE and not the checked out git repo. -cb.compile(debug=True) # compile the source code to working directory $GFDL_WORK/codebase +cb.compile()#debug=True) # compile the source code to working directory $GFDL_WORK/codebase # create an Experiment object to handle the configuration of model parameters # and output diagnostics @@ -155,7 +155,8 @@ 'solr_cnst': 1360, #s set solar constant to 1360, rather than default of 1368.22 'dt_rad': 7200, #Use long RRTM timestep 'do_read_ozone':True, - 'ozone_file':'ozone_1990' + 'ozone_file':'ozone_1990', + 'icld': 1 #cloud overlap method }, # FMS Framework configuration @@ -190,6 +191,6 @@ }) #Lets do a run! if __name__=="__main__": - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True, run_idb=True) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) # for i in range(2,25): # exp.run(i, num_cores=NCORES, overwrite_data=True) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index dc9e9ab3a..351efeff8 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -54,9 +54,10 @@ module rrtm_vars ! dimension (ncols_rrt x nlay_rrt) real(kind=rb),allocatable,dimension(:,:) :: co2 ! CO2 [vmr] ! dimension (ncols_rrt x nlay_rrt) - real(kind=rb),allocatable,dimension(:,:) :: zeros ! place holder for any species set + real(kind=rb),allocatable,dimension(:,:,:) :: zeros ! place holder for any species set + ! to zero + real(kind=rb),allocatable,dimension(:,:,:) :: ones ! place holder for any species set ! to zero - real(kind=rb),allocatable,dimension(:,:) :: ones ! place holder for secondary species ! the following species are only set if use_secondary_gases=.true. real(kind=rb),allocatable,dimension(:,:) :: ch4 ! CH4 [vmr] ! dimension (ncols_rrt x nlay_rrt) @@ -102,7 +103,7 @@ module rrtm_vars ! some constants real(kind=rb) :: daypersec=1./86400.,deg2rad !RG: daypersec=1./86400. left in when conversion to non-specific day length made as this only converts heatrates from RRTM from K/day to K/sec ! no clouds in the radiative scheme - integer(kind=im) :: icld=0,idrv=0, & + integer(kind=im) :: idrv=0, & inflglw=0,iceflglw=0,liqflglw=0, & iaer=0 !--------------------------------------------------------------------------------------------------------------- @@ -188,6 +189,9 @@ module rrtm_vars ! day of the year = solday \in [0,days per year] real(kind=rb) :: equinox_day=0.75 ! fraction of the year defining NH autumn equinox \in [0,1] real(kind=rb) :: solr_cnst= 1368.22 ! solar constant [W/m2] + + integer(kind=im) :: icld=0 ! Cloud overlap method + !-------------------------------------------------s-------------------------------------------------------------- ! !-------------------- diagnostics fields ------------------------------- @@ -210,14 +214,17 @@ module rrtm_vars &lonstep, do_zm_tracers, do_zm_rad, & &do_precip_albedo, precip_albedo_mode, precip_albedo, precip_lat,& &do_read_co2, co2_file, co2_variable_name, use_dyofyr, solrad, & - &solday, equinox_day,solr_cnst + &solday, equinox_day,solr_cnst, icld end module rrtm_vars !***************************************************************************************** !***************************************************************************************** module rrtm_radiation - use parkind, only : im => kind_im, rb => kind_rb - use constants_mod, only: pi, wtmozone, wtmh2o, gas_constant, rdgas + use parkind, only : im => kind_im, rb => kind_rb + use constants_mod, only: pi, wtmozone, wtmh2o, gas_constant, rdgas + use parrrtm, only: nbndlw + use parrrsw, only: nbndsw, ngptsw + implicit none contains @@ -230,8 +237,6 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) ! Modules use rrtm_vars use astronomy_mod, only: astronomy_init - use parrrtm, only: nbndlw - use parrrsw, only: nbndsw use diag_manager_mod, only: register_diag_field, send_data use interpolator_mod, only: interpolate_type, interpolator_init, & &CONSTANT, ZERO,INTERP_WEIGHTED_P @@ -405,8 +410,8 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) if(.not. do_read_radiation .or. .not. do_read_sw_flux .and. .not. do_read_lw_flux)then allocate(h2o(ncols_rrt,nlay_rrt),o3(ncols_rrt,nlay_rrt), & co2(ncols_rrt,nlay_rrt)) - allocate(ones(ncols_rrt,nlay_rrt), & - zeros(ncols_rrt,nlay_rrt)) + allocate(ones(ngptsw,ncols_rrt,nlay_rrt), & + zeros(ngptsw,ncols_rrt,nlay_rrt)) allocate(emis(ncols_rrt,nbndlw)) allocate(taucld(nbndlw,ncols_rrt,nlay_rrt), & tauaer(ncols_rrt,nlay_rrt,nbndlw)) @@ -544,7 +549,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & use fms_mod, only: error_mesg, FATAL use mpp_mod, only: mpp_pe,mpp_root_pe use rrtmg_lw_rad, only: rrtmg_lw - use rrtmg_sw_rad, only: rrtmg_sw + use rrtmg_sw_rad, only: rrtmg_sw, mcica_subcol_sw use astronomy_mod, only: diurnal_solar use rrtm_vars use time_manager_mod,only: time_type,get_time,set_time, length_of_year, length_of_day @@ -591,8 +596,13 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & integer si,sj,sk,locmin(3) real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: o3f real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: co2f,co2f_temp + real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: pfull,tfull,fracday& , hr,hrc, swhr, swhrc, cldfr, reliq, reice + + + real(kind=rb),dimension(ngptsw,ncols_rrt,nlay_rrt) :: cldfr_pass + real(kind=rb),dimension(size(tdt,1),size(tdt,2),size(tdt,3)) :: tdt_rrtm real(kind=rb),dimension(ncols_rrt,nlay_rrt+1) :: uflx, dflx, uflxc, dflxc& ,swuflx, swdflx, swuflxc, swdflxc @@ -610,11 +620,16 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & integer :: year_in_s real :: r_seconds, r_days, r_total_seconds, frac_of_day, frac_of_year, gmt, time_since_ae, rrsun, dt_rad_radians, day_in_s, r_solday, r_dt_rad_avg + !mcica variables + integer :: permuteseed, irng + real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: reicmcl, relqmcl + + real(kind=rb),dimension(ngptsw, ncols_rrt,nlay_rrt) :: cldfmcl, ciwpmcl, clwpmcl, taucmcl, ssacmcl, asmcmcl, fsfcmcl ! debug real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging - integer :: indx2(2),indx(3),ii,ji,ki + integer :: indx2(2),indx(3),ii,ji,ki, pt1,pt2 logical :: used !--------------------------------------------------------------------------------------------------------------- @@ -838,31 +853,54 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! where(cosz_rr < 1.e-2)cosz_rr=0. if (do_cloud_simple) then + pt1 = 1 + pt2 = ngptsw inflglw = 2 !RRTM responsible for calculating optical properties of clouds liqflglw = 1 !Sets liquid water radii to be used rather than being inactive (zero is inactive) cldfr = reshape( cf_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) !already in microns - reice = 10*ones !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros + reice = 10*ones(pt1,:,:) !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros else - cldfr = zeros - reliq = 10*ones ! not requires to be 10 microns but assumed a valid number - reice = 10*ones ! needs to be 10 microns + pt1 = 1 + pt2 = 1 + cldfr = zeros(pt1,:,:) + reliq = 10*ones(pt1,:,:) ! not requires to be 10 microns but assumed a valid number + reice = 10*ones(pt1,:,:) ! needs to be 10 microns + cldfr_pass(pt1,:,:) = cldfr endif - tmp1 = maxval(reff_rad) - tmp2 = maxval(cf_rad) + + + if (do_cloud_simple) then + !need to run monty carlo independent column approcimation (mcica) + permuteseed = 1 + irng = 1 !use a random number gerator either 0 (Kissvec) or 1(Mersenne Twister) + + call mcica_subcol_sw(0, ncols_rrt, nlay_rrt, icld, permuteseed, irng, pfull, & + cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer, zro_sw, zro_sw, zro_sw , & + !outs + cldfmcl, ciwpmcl, clwpmcl, reicmcl, relqmcl, taucmcl, ssacmcl, asmcmcl, fsfcmcl) + + permuteseed = 2 + cldfr_pass = cldfmcl + reice = reicmcl + reliq = relqmcl + taucld = taucmcl + !other vars not needed + endif + if(include_secondary_gases)then call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & pfull , phalf , tfull , thalf , tsrf , & - h2o , o3 , co2 , ch4_val*ones , n2o_val*ones , o2_val*ones , & + h2o , o3 , co2 , ch4_val*ones(pt1,:,:) , n2o_val*ones(pt1,:,:) , o2_val*ones(pt1,:,:) , & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr, & + cldfr_pass(pt1:pt2,:,:), & taucld , sw_zro , sw_zro , sw_zro , & - zeros , zeros , reice , reliq , & + zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & tauaer , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) @@ -870,14 +908,14 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & pfull , phalf , tfull , thalf , tsrf , & - h2o , o3 , co2 , zeros , zeros, zeros, & + h2o , o3 , co2 , zeros(pt1,:,:) , zeros(pt1,:,:), zeros(pt1,:,:), & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr, & + cldfr_pass(pt1:pt2,:,:), & taucld , sw_zro , sw_zro , sw_zro , & - zeros , zeros , reice , reliq , & + zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & tauaer , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) @@ -904,12 +942,12 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & pfull , phalf , tfull , thalf, tsrf , & h2o , o3 , co2 , & ! secondary gases - ch4_val*ones , n2o_val*ones , o2_val*ones , & - cfc11_val*ones , cfc12_val*ones , cfc22_val*ones , ccl4_val*ones , & + ch4_val*ones(pt1,:,:) , n2o_val*ones(pt1,:,:) , o2_val*ones(pt1,:,:) , & + cfc11_val*ones(pt1,:,:) , cfc12_val*ones(pt1,:,:) , cfc22_val*ones(pt1,:,:) , ccl4_val*ones(pt1,:,:) , & ! emissivity and cloud composition emis , inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr , taucld , zeros , zeros , reice, reliq, & + cldfr_pass(pt1,:,:) , taucld , zeros(pt1,:,:) , zeros(pt1,:,:) , reice, reliq, & tauaer , & ! output uflx , dflx , hr , uflxc , dflxc , hrc) @@ -917,12 +955,12 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & call rrtmg_lw & (ncols_rrt, nlay_rrt, icld , idrv , & pfull , phalf , tfull , thalf, tsrf , & - h2o , o3 , co2 , zeros, zeros, zeros, & - zeros , zeros , zeros , zeros, & + h2o , o3 , co2 , zeros(pt1,:,:), zeros(pt1,:,:), zeros(pt1,:,:), & + zeros(pt1,:,:) , zeros(pt1,:,:) , zeros(pt1,:,:) , zeros(pt1,:,:), & ! emissivity and cloud composition emis , inflglw , iceflglw, liqflglw, & ! cloud parameters - cldfr , taucld , zeros , zeros, reice, reliq, & + cldfr_pass(pt1,:,:) , taucld , zeros(pt1,:,:) , zeros(pt1,:,:), reice, reliq, & tauaer , & ! output uflx , dflx , hr , uflxc, dflxc , hrc) diff --git a/src/extra/model/isca/path_names b/src/extra/model/isca/path_names index eebdfd2b0..3ffc0f449 100644 --- a/src/extra/model/isca/path_names +++ b/src/extra/model/isca/path_names @@ -83,7 +83,7 @@ atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/modules/rrsw_vsn.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/modules/rrsw_wvn.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/mcica_random_numbers.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/mcica_subcol_gen_sw.f90 -atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_rad.nomcica.f90 +atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_rad.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_cldprop.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_cldprmc.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_init.f90 From e940801da785aafc38bdb8acb84dc243b5512060 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 17:03:52 +0100 Subject: [PATCH 046/304] Swapped to using mcica lw routine and added required initialisation routine. Seems to run. Testing needed --- exp/test_cases/MiMA/MiMA_test_case.py | 6 +- .../rrtm_radiation/rrtm_radiation.f90 | 70 ++++++++++++------- src/extra/model/isca/path_names | 2 +- 3 files changed, 49 insertions(+), 29 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index aef6b0ab6..27dc00243 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('mima_test_experiment', codebase=cb) +exp = Experiment('mima_test_experiment_with_mcica', codebase=cb) exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -192,5 +192,5 @@ #Lets do a run! if __name__=="__main__": exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) - # for i in range(2,25): - # exp.run(i, num_cores=NCORES, overwrite_data=True) + for i in range(2,25): + exp.run(i, num_cores=NCORES, overwrite_data=True) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 351efeff8..7ac0047f4 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -78,7 +78,7 @@ module rrtm_vars ! =1 for black body ! clouds stuff ! cloud & aerosol optical depths, cloud and aerosol specific parameters. Set to zero - real(kind=rb),allocatable,dimension(:,:,:) :: taucld,tauaer, sw_zro, zro_sw + real(kind=rb),allocatable,dimension(:,:,:) :: taucld_lw, taucld_sw, tauaer_lw, tauaer_sw, sw_zro, zro_sw ! heating rates and fluxes, zenith angle when in-between radiation time steps real(kind=rb),allocatable,dimension(:,:) :: sw_flux,lw_flux,zencos, olr, toa_sw! surface and TOA fluxes, cos(zenith angle) ! dimension (lon x lat) @@ -222,7 +222,7 @@ end module rrtm_vars module rrtm_radiation use parkind, only : im => kind_im, rb => kind_rb use constants_mod, only: pi, wtmozone, wtmh2o, gas_constant, rdgas - use parrrtm, only: nbndlw + use parrrtm, only: nbndlw, ngptlw use parrrsw, only: nbndsw, ngptsw implicit none @@ -413,8 +413,10 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) allocate(ones(ngptsw,ncols_rrt,nlay_rrt), & zeros(ngptsw,ncols_rrt,nlay_rrt)) allocate(emis(ncols_rrt,nbndlw)) - allocate(taucld(nbndlw,ncols_rrt,nlay_rrt), & - tauaer(ncols_rrt,nlay_rrt,nbndlw)) + allocate(taucld_lw(nbndlw,ncols_rrt,nlay_rrt), & + tauaer_lw(ncols_rrt,nlay_rrt,nbndlw)) + allocate(taucld_sw(nbndsw,ncols_rrt,nlay_rrt), & + tauaer_sw(ncols_rrt,nlay_rrt,nbndsw)) allocate(sw_zro(nbndsw,ncols_rrt,nlay_rrt), & zro_sw(ncols_rrt,nlay_rrt,nbndsw)) if(id_coszen > 0)allocate(zencos (size(lonb,1)-1,size(latb,2)-1)) @@ -429,8 +431,10 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) emis = 1. !black body: 1.0 ! absorption - taucld = 0. - tauaer = 0. + taucld_sw = 0. + tauaer_sw = 0. + taucld_lw = 0. + tauaer_lw = 0. ! clouds sw_zro = 0. zro_sw = 0. @@ -548,7 +552,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! Modules use fms_mod, only: error_mesg, FATAL use mpp_mod, only: mpp_pe,mpp_root_pe - use rrtmg_lw_rad, only: rrtmg_lw + use rrtmg_lw_rad, only: rrtmg_lw, mcica_subcol_lw use rrtmg_sw_rad, only: rrtmg_sw, mcica_subcol_sw use astronomy_mod, only: diurnal_solar use rrtm_vars @@ -601,7 +605,8 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & , hr,hrc, swhr, swhrc, cldfr, reliq, reice - real(kind=rb),dimension(ngptsw,ncols_rrt,nlay_rrt) :: cldfr_pass + real(kind=rb),dimension(ngptsw,ncols_rrt,nlay_rrt) :: cldfr_pass_sw + real(kind=rb),dimension(ngptlw,ncols_rrt,nlay_rrt) :: cldfr_pass_lw real(kind=rb),dimension(size(tdt,1),size(tdt,2),size(tdt,3)) :: tdt_rrtm real(kind=rb),dimension(ncols_rrt,nlay_rrt+1) :: uflx, dflx, uflxc, dflxc& @@ -624,7 +629,9 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & integer :: permuteseed, irng real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: reicmcl, relqmcl - real(kind=rb),dimension(ngptsw, ncols_rrt,nlay_rrt) :: cldfmcl, ciwpmcl, clwpmcl, taucmcl, ssacmcl, asmcmcl, fsfcmcl + real(kind=rb),dimension(ngptsw, ncols_rrt,nlay_rrt) :: cldfmcl_sw, ciwpmcl_sw, clwpmcl_sw, taucmcl_sw, ssacmcl, asmcmcl, fsfcmcl + + real(kind=rb),dimension(ngptlw, ncols_rrt,nlay_rrt) :: cldfmcl_lw, ciwpmcl_lw, clwpmcl_lw, taucmcl_lw ! debug real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging @@ -866,7 +873,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & cldfr = zeros(pt1,:,:) reliq = 10*ones(pt1,:,:) ! not requires to be 10 microns but assumed a valid number reice = 10*ones(pt1,:,:) ! needs to be 10 microns - cldfr_pass(pt1,:,:) = cldfr + cldfr_pass_sw(pt1,:,:) = cldfr endif @@ -876,15 +883,14 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & irng = 1 !use a random number gerator either 0 (Kissvec) or 1(Mersenne Twister) call mcica_subcol_sw(0, ncols_rrt, nlay_rrt, icld, permuteseed, irng, pfull, & - cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer, zro_sw, zro_sw, zro_sw , & + cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer_sw, zro_sw, zro_sw, zro_sw , & !outs - cldfmcl, ciwpmcl, clwpmcl, reicmcl, relqmcl, taucmcl, ssacmcl, asmcmcl, fsfcmcl) + cldfmcl_sw, ciwpmcl_sw, clwpmcl_sw, reicmcl, relqmcl, taucmcl_sw, ssacmcl, asmcmcl, fsfcmcl) - permuteseed = 2 - cldfr_pass = cldfmcl + cldfr_pass_sw = cldfmcl_sw reice = reicmcl reliq = relqmcl - taucld = taucmcl + taucld_sw = taucmcl_sw !other vars not needed endif @@ -898,10 +904,10 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass(pt1:pt2,:,:), & - taucld , sw_zro , sw_zro , sw_zro , & + cldfr_pass_sw(pt1:pt2,:,:), & + taucld_sw , sw_zro , sw_zro , sw_zro , & zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & - tauaer , zro_sw , zro_sw , zro_sw , & + tauaer_sw , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) else @@ -913,10 +919,10 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass(pt1:pt2,:,:), & - taucld , sw_zro , sw_zro , sw_zro , & + cldfr_pass_sw(pt1:pt2,:,:), & + taucld_sw , sw_zro , sw_zro , sw_zro , & zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & - tauaer , zro_sw , zro_sw , zro_sw , & + tauaer_sw , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) endif @@ -930,6 +936,20 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! swhr (:,i) = 0. ! endwhere ! enddo + + if(do_cloud_simple) then + + permuteseed = 2 + + call mcica_subcol_lw(0, ncols_rrt, nlay_rrt, icld, permuteseed, irng, pfull, & + cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer_lw, & + cldfmcl_lw, ciwpmcl_lw, clwpmcl_lw, reicmcl, relqmcl, taucmcl_lw) + cldfr_pass_lw = cldfmcl_lw + reice = reicmcl + reliq = relqmcl + taucld_lw = taucmcl_lw + endif + swijk = reshape(swhr(:,sk:1:-1),(/ si/lonstep,sj,sk /))*daypersec @@ -947,8 +967,8 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! emissivity and cloud composition emis , inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass(pt1,:,:) , taucld , zeros(pt1,:,:) , zeros(pt1,:,:) , reice, reliq, & - tauaer , & + cldfr_pass_lw(pt1:pt2,:,:) , taucld_lw , zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice, reliq, & + tauaer_lw , & ! output uflx , dflx , hr , uflxc , dflxc , hrc) else @@ -960,8 +980,8 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! emissivity and cloud composition emis , inflglw , iceflglw, liqflglw, & ! cloud parameters - cldfr_pass(pt1,:,:) , taucld , zeros(pt1,:,:) , zeros(pt1,:,:), reice, reliq, & - tauaer , & + cldfr_pass_lw(pt1:pt2,:,:) , taucld_lw , zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:), reice, reliq, & + tauaer_lw , & ! output uflx , dflx , hr , uflxc, dflxc , hrc) endif diff --git a/src/extra/model/isca/path_names b/src/extra/model/isca/path_names index 3ffc0f449..c147c0ba3 100644 --- a/src/extra/model/isca/path_names +++ b/src/extra/model/isca/path_names @@ -47,7 +47,7 @@ atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/modules/rrlw_wvn.f90 atmos_param/rrtm_radiation/rrtm_radiation.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/mcica_random_numbers.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_cldprop.f90 -atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rad.nomcica.f90 +atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rad.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rtrn.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_setcoef.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/mcica_subcol_gen_lw.f90 From 0d8c61dcb71b92f7a7736c40fc1928ec6f55ec1f Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 11:39:35 +0100 Subject: [PATCH 047/304] New socrates set cld file downloaded from LFRic James Manners branch main/branches/dev/jamesmanners/um11.1_solar/src/interface_core/socrates_set_cld.F90 on 07-09-18. --- .../socrates/interface/socrates_set_cld.F90 | 485 ++++++++++++++++++ 1 file changed, 485 insertions(+) create mode 100644 src/atmos_param/socrates/interface/socrates_set_cld.F90 diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 new file mode 100644 index 000000000..25e47a340 --- /dev/null +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -0,0 +1,485 @@ +! *****************************COPYRIGHT******************************* +! (C) Crown copyright Met Office. All rights reserved. +! For further details please refer to the file COPYRIGHT.txt +! which you should have received as part of this distribution. +! *****************************COPYRIGHT******************************* +! +! Set the variables in the Socrates cloud type +! +!------------------------------------------------------------------------------ +module socrates_set_cld +implicit none +character(len=*), parameter, private :: ModuleName = 'SOCRATES_SET_CLD' +contains + +subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & + cloud_frac, conv_frac, & + liq_frac, ice_frac, liq_conv_frac, ice_conv_frac, & + liq_mmr, ice_mmr, liq_conv_mmr, ice_conv_mmr, & + liq_dim, ice_dim, liq_conv_dim, ice_conv_dim, & + dp_corr_strat, dp_corr_conv) + +use def_cld, only: StrCld, allocate_cld, allocate_cld_prsc +use def_control, only: StrCtrl +use def_dimen, only: StrDim +use def_spectrum, only: StrSpecData +use realtype_rd, only: RealK +use rad_pcf, only: & + ip_cloud_homogen, ip_cloud_ice_water, ip_cloud_conv_strat, ip_cloud_csiw, & + ip_clcmp_st_water, ip_clcmp_st_ice, ip_clcmp_cnv_water, ip_clcmp_cnv_ice, & + ip_phase_water, ip_phase_ice, ip_cloud_type_homogen, & + ip_cloud_type_water, ip_cloud_type_ice, & + ip_cloud_type_strat, ip_cloud_type_conv, & + ip_cloud_type_sw, ip_cloud_type_si, ip_cloud_type_cw, ip_cloud_type_ci, & + ip_drop_unparametrized, ip_ice_unparametrized, i_normal, i_err_fatal +use ereport_mod, only: ereport +use errormessagelength_mod, only: errormessagelength + +implicit none + + +! Cloud properties: +type(StrCld), intent(out) :: cld + +! Control options: +type(StrCtrl), intent(in) :: control + +! Dimensions: +type(StrDim), intent(in) :: dimen + +! Spectral data: +type(StrSpecData), intent(in) :: spectrum + +integer, intent(in) :: n_profile +integer, intent(in) :: n_layer + +real(RealK), intent(in), optional :: & + cloud_frac(:,:), conv_frac(:,:), & + liq_frac(:,:), ice_frac(:,:), liq_conv_frac(:,:), ice_conv_frac(:,:), & + liq_mmr(:,:), ice_mmr(:,:), liq_conv_mmr(:,:), ice_conv_mmr(:,:), & + liq_dim(:,:), ice_dim(:,:), liq_conv_dim(:,:), ice_conv_dim(:,:) +! Liquid and ice cloud fractions, gridbox mean mixing ratios, and +! effective dimensions + +real(RealK), intent(in), optional :: dp_corr_strat, dp_corr_conv +! Decorrelation pressure scales for cloud vertical overlap + + +! Local variables +integer :: i, j, k, l +! Loop variables +integer :: i_phase, i_param_type, n_cloud_parameter +! Working variables +integer :: i_cloud_type(dimen%nd_cloud_component) +! Types of cloud to which each component contributes + +real(RealK) :: condensed_min_dim +real(RealK) :: condensed_max_dim +! Minimum and maximum dimensions of each condensed component + +real(RealK) :: eps = EPSILON(1.0) +real(RealK) :: min_cloud_fraction = 0.0001 + +integer :: ierr = i_normal +character (len=*), parameter :: RoutineName = 'SET_CLD' +character (len=errormessagelength) :: cmessage + +! Functions called +integer, external :: set_n_cloud_parameter + + +! Allocate structure for the core radiation code interface +call allocate_cld(cld, dimen, spectrum) +call allocate_cld_prsc(cld, dimen, spectrum) + +if (.not.control%l_cloud) then + return +end if + +!------------------------------------------------------------------------------ +! Set properties of condensed components +!------------------------------------------------------------------------------ + +if (control%l_ice .and. control%l_drop) then + select case (control%i_cloud_representation) + case (ip_cloud_homogen, ip_cloud_ice_water) + cld%n_condensed = 2 + cld%type_condensed(1) = ip_clcmp_st_water + cld%type_condensed(2) = ip_clcmp_st_ice + case (ip_cloud_conv_strat, ip_cloud_csiw) + cld%n_condensed = 4 + cld%type_condensed(1) = ip_clcmp_st_water + cld%type_condensed(2) = ip_clcmp_st_ice + cld%type_condensed(3) = ip_clcmp_cnv_water + cld%type_condensed(4) = ip_clcmp_cnv_ice + end select +else if (control%l_ice .and. .not.control%l_drop) then + select case (control%i_cloud_representation) + case (ip_cloud_homogen, ip_cloud_ice_water) + cld%n_condensed = 1 + cld%type_condensed(1) = ip_clcmp_st_ice + case (ip_cloud_conv_strat, ip_cloud_csiw) + cld%n_condensed = 2 + cld%type_condensed(1) = ip_clcmp_st_ice + cld%type_condensed(2) = ip_clcmp_cnv_ice + end select +else if (.not.control%l_ice .and. control%l_drop) then + select case (control%i_cloud_representation) + case (ip_cloud_homogen, ip_cloud_ice_water) + cld%n_condensed = 1 + cld%type_condensed(1) = ip_clcmp_st_water + case (ip_cloud_conv_strat, ip_cloud_csiw) + cld%n_condensed = 2 + cld%type_condensed(1) = ip_clcmp_st_water + cld%type_condensed(2) = ip_clcmp_cnv_water + end select +else + cmessage = 'Cloud on, but no condensed components included.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) +end if + +do i=1, cld%n_condensed + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + i_phase = ip_phase_water + i_param_type = control%i_st_water + case (ip_clcmp_st_ice) + i_phase = ip_phase_ice + i_param_type = control%i_st_ice + case (ip_clcmp_cnv_water) + i_phase = ip_phase_water + i_param_type = control%i_cnv_water + case (ip_clcmp_cnv_ice) + i_phase = ip_phase_ice + i_param_type = control%i_cnv_ice + end select + + select case (i_phase) + case (ip_phase_water) + if (i_param_type <= 0) then + cld%i_condensed_param(i) = ip_drop_unparametrized + cmessage = 'Prescribed liquid cloud not yet implemented.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (i_param_type > spectrum%dim%nd_drop_type) then + cmessage = 'Liquid cloud type outside allowed range.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (spectrum%drop%l_drop_type(i_param_type)) then + ! Take parametrisation from spectral file + cld%i_condensed_param(i) = spectrum%drop%i_drop_parm(i_param_type) + cld%condensed_n_phf(i) = spectrum%drop%n_phf(i_param_type) + ! DEPENDS ON: set_n_cloud_parameter + n_cloud_parameter = set_n_cloud_parameter( cld%i_condensed_param(i), & + cld%type_condensed(i), cld%condensed_n_phf(i) ) + do j=1, spectrum%basic%n_band + do k=1, n_cloud_parameter + cld%condensed_param_list(k, i, j) & + = spectrum%drop%parm_list(k, j, i_param_type) + end do + end do + ! Assign droplet mass mixing ratio and effective radius + condensed_min_dim = spectrum%drop%parm_min_dim(i_param_type) + condensed_max_dim = spectrum%drop%parm_max_dim(i_param_type) + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + if (present(liq_mmr).and.present(liq_dim)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = liq_mmr(l, k) + cld%condensed_dim_char(l, k, i) = min( max( liq_dim(l, k), & + condensed_min_dim ), condensed_max_dim ) + end do + end do + else + cmessage = 'Liquid MMR and effective radius not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + case (ip_clcmp_cnv_water) + if (present(liq_conv_mmr).and.present(liq_conv_dim)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = liq_conv_mmr(l, k) + cld%condensed_dim_char(l, k, i) = min( max( liq_conv_dim(l, k), & + condensed_min_dim ), condensed_max_dim ) + end do + end do + else + cmessage = 'Convective liquid MMR and effective radius not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + end select + else + cmessage = 'Liquid cloud type not in spectral file.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + case (ip_phase_ice) + if (i_param_type <= 0) then + cld%i_condensed_param(i) = ip_ice_unparametrized + cmessage = 'Prescribed ice cloud not yet implemented.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (i_param_type > spectrum%dim%nd_ice_type) then + cmessage = 'Ice cloud type outside allowed range.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (spectrum%ice%l_ice_type(i_param_type)) then + ! Take parametrisation from spectral file + cld%i_condensed_param(i) = spectrum%ice%i_ice_parm(i_param_type) + cld%condensed_n_phf(i) = spectrum%ice%n_phf(i_param_type) + n_cloud_parameter = set_n_cloud_parameter( cld%i_condensed_param(i), & + cld%type_condensed(i), cld%condensed_n_phf(i) ) + do j=1, spectrum%basic%n_band + do k=1, n_cloud_parameter + cld%condensed_param_list(k, i, j) & + = spectrum%ice%parm_list(k, j, i_param_type) + end do + end do + ! Assign ice mass mixing ratio and effective dimension + condensed_min_dim = spectrum%ice%parm_min_dim(i_param_type) + condensed_max_dim = spectrum%ice%parm_max_dim(i_param_type) + select case (cld%type_condensed(i)) + case (ip_clcmp_st_ice) + if (present(ice_mmr).and.present(ice_dim)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = ice_mmr(l, k) + cld%condensed_dim_char(l, k, i) = min( max( ice_dim(l, k), & + condensed_min_dim ), condensed_max_dim ) + end do + end do + else + cmessage = 'Ice MMR and effective radius not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + case (ip_clcmp_cnv_ice) + if (present(ice_conv_mmr).and.present(ice_conv_dim)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = ice_conv_mmr(l, k) + cld%condensed_dim_char(l, k, i) = min( max( ice_conv_dim(l, k), & + condensed_min_dim ), condensed_max_dim ) + end do + end do + else + cmessage = 'Convective ice MMR and effective radius not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + end select + else + cmessage = 'Ice cloud type not in spectral file.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + end select +end do + +! Set the decorrelation scalings for cloud vertical overlap +if (present(dp_corr_strat)) then + cld%dp_corr_strat = dp_corr_strat +else + cld%dp_corr_strat = 0.0_RealK +end if +if (present(dp_corr_conv)) then + cld%dp_corr_conv = dp_corr_conv +else + cld%dp_corr_conv = 0.0_RealK +end if + + +!------------------------------------------------------------------------------ +! Set cloud amounts and convert mixing ratios to in-cloud values +!------------------------------------------------------------------------------ + +! Set cloud fractions +select case (control%i_cloud_representation) +case (ip_cloud_homogen) + cld%n_cloud_type = 1 + do i = 1, cld%n_condensed + i_cloud_type(i) = ip_cloud_type_homogen + end do + if (present(cloud_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_homogen) = cloud_frac(l, k) + end do + end do + else + cmessage = 'Cloud fraction not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if +case (ip_cloud_ice_water) + cld%n_cloud_type = 2 + do i = 1, cld%n_condensed + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + i_cloud_type(i) = ip_cloud_type_water + case (ip_clcmp_st_ice) + i_cloud_type(i) = ip_cloud_type_ice + end select + end do + if (present(liq_frac).and.present(ice_frac).and.present(cloud_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + if (liq_frac(l, k) + ice_frac(l, k) > eps) then + ! Split mixed phase fraction between ice and liquid + cld%frac_cloud(l, k, ip_cloud_type_water) = & + cloud_frac(l, k)*liq_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) + cld%frac_cloud(l, k, ip_cloud_type_ice) = & + cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) + else + cld%frac_cloud(l, k, ip_cloud_type_water) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_RealK + end if + end do + end do + else if (present(liq_frac).and.present(ice_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_water) = liq_frac(l, k) + cld%frac_cloud(l, k, ip_cloud_type_ice) = ice_frac(l, k) + end do + end do + else + cmessage = 'Liquid and ice cloud fractions not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if +case (ip_cloud_conv_strat) + cld%n_cloud_type = 2 + do i = 1, cld%n_condensed + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + i_cloud_type(i) = ip_cloud_type_strat + case (ip_clcmp_st_ice) + i_cloud_type(i) = ip_cloud_type_strat + case (ip_clcmp_cnv_water) + i_cloud_type(i) = ip_cloud_type_conv + case (ip_clcmp_cnv_ice) + i_cloud_type(i) = ip_cloud_type_conv + end select + end do + if (present(cloud_frac).and.present(conv_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_strat) = cloud_frac(l, k) + cld%frac_cloud(l, k, ip_cloud_type_conv) = conv_frac(l, k) + end do + end do + else + cmessage = 'Cloud fraction and convective cloud fraction not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if +case (ip_cloud_csiw) + cld%n_cloud_type = 4 + do i = 1, cld%n_condensed + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + i_cloud_type(i) = ip_cloud_type_sw + case (ip_clcmp_st_ice) + i_cloud_type(i) = ip_cloud_type_si + case (ip_clcmp_cnv_water) + i_cloud_type(i) = ip_cloud_type_cw + case (ip_clcmp_cnv_ice) + i_cloud_type(i) = ip_cloud_type_ci + end select + end do + if (present(liq_frac).and.present(ice_frac).and.present(cloud_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + if (liq_frac(l, k) + ice_frac(l, k) > eps) then + ! Split mixed phase fraction between ice and liquid + cld%frac_cloud(l, k, ip_cloud_type_sw) = & + cloud_frac(l, k)*liq_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) + cld%frac_cloud(l, k, ip_cloud_type_si) = & + cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) + else + cld%frac_cloud(l, k, ip_cloud_type_sw) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_si) = 0.0_RealK + end if + end do + end do + else if (present(liq_frac).and.present(ice_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_sw) = liq_frac(l, k) + cld%frac_cloud(l, k, ip_cloud_type_si) = ice_frac(l, k) + end do + end do + else + cmessage = 'Liquid and ice cloud fractions not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + if (present(liq_conv_frac).and.present(ice_conv_frac).and. & + present(conv_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + if (liq_conv_frac(l, k) + ice_conv_frac(l, k) > eps) then + ! Split mixed phase fraction between ice and liquid + cld%frac_cloud(l, k, ip_cloud_type_cw) = conv_frac(l, k) & + *liq_conv_frac(l, k) / (liq_conv_frac(l, k)+ice_conv_frac(l, k)) + cld%frac_cloud(l, k, ip_cloud_type_ci) = conv_frac(l, k) & + *ice_conv_frac(l, k) / (liq_conv_frac(l, k)+ice_conv_frac(l, k)) + else + cld%frac_cloud(l, k, ip_cloud_type_cw) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_ci) = 0.0_RealK + end if + end do + end do + else if (present(liq_conv_frac).and.present(ice_conv_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_cw) = liq_conv_frac(l, k) + cld%frac_cloud(l, k, ip_cloud_type_ci) = ice_conv_frac(l, k) + end do + end do + else + cmessage = 'Liquid and ice convective cloud fractions not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if +end select + +! Convert mass mixing ratios to in-cloud values +do i = 1, cld%n_condensed + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = cld%condensed_mix_ratio(l, k, i) & + / max(cld%frac_cloud(l, k, i_cloud_type(i)), eps) + end do + end do +end do + +! Normalise the cloud fractions +do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%w_cloud(l, k) = sum(cld%frac_cloud(l, k, 1:cld%n_cloud_type)) + if (cld%w_cloud(l, k) > min_cloud_fraction) then + do j=1, cld%n_cloud_type + cld%frac_cloud(l, k, j) = cld%frac_cloud(l, k, j) / cld%w_cloud(l, k) + end do + else + cld%w_cloud(l, k) = 0.0_RealK + cld%frac_cloud(l, k, 1:cld%n_cloud_type) = 0.0_RealK + end if + if (cld%w_cloud(l, k) > 1.0_RealK + min_cloud_fraction) then + cmessage = 'Cloud fraction greater than 1.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (cld%w_cloud(l, k) > 1.0_RealK) then + cld%w_cloud(l, k) = 1.0_RealK + end if + end do +end do + +end subroutine set_cld +end module socrates_set_cld From fd53a721bbbfb602ab598c9701ba56b22add2f9b Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 12:54:05 +0100 Subject: [PATCH 048/304] Changes to pass socrates clouds from simple cloud scheme. --- .../socrates/interface/read_control.F90 | 8 +- .../socrates/interface/socrates_calc.F90 | 33 ++++-- .../interface/socrates_config_mod.f90 | 7 +- .../socrates/interface/socrates_interface.F90 | 54 ++++++++-- .../socrates/interface/socrates_set_cld.F90 | 101 ++++++++++-------- .../driver/solo/idealized_moist_phys.F90 | 5 +- src/extra/model/socrates/path_names | 2 +- 7 files changed, 148 insertions(+), 62 deletions(-) diff --git a/src/atmos_param/socrates/interface/read_control.F90 b/src/atmos_param/socrates/interface/read_control.F90 index 5ed7fae81..92d5eeefb 100644 --- a/src/atmos_param/socrates/interface/read_control.F90 +++ b/src/atmos_param/socrates/interface/read_control.F90 @@ -15,7 +15,7 @@ SUBROUTINE read_control(control, spectrum) USE rad_pcf USE def_control, ONLY: StrCtrl, allocate_control USE def_spectrum, ONLY: StrSpecData -USE socrates_config_mod, ONLY: l_planet_grey_surface, inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a +USE socrates_config_mod, ONLY: l_planet_grey_surface, inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, account_for_clouds_in_socrates IMPLICIT NONE @@ -93,7 +93,11 @@ SUBROUTINE read_control(control, spectrum) control%i_gas_overlap = ip_overlap_k_eqv_scl ! Properties of clouds -control%i_cloud_representation = ip_cloud_off +if (account_for_clouds_in_socrates) then + control%i_cloud_representation = ip_cloud_ice_water +else + control%i_cloud_representation = ip_cloud_off +end if control%i_overlap = ip_max_rand control%i_inhom = ip_homogeneous diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index 6a07a8d3b..ab545635e 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -33,6 +33,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity, & layer_heat_capacity, & + cld_frac, reff_rad, mmr_cl_rad, & flux_direct, flux_down, flux_up, heating_rate, spectral_olr) use rad_pcf @@ -45,12 +46,12 @@ subroutine socrates_calc(Time_diag,control, spectrum, use def_aer, only: StrAer, deallocate_aer, deallocate_aer_prsc use def_out, only: StrOut, deallocate_out -use set_control_mod, only: set_control -use set_dimen_mod, only: set_dimen -use set_atm_mod, only: set_atm -use set_bound_mod, only: set_bound -use set_cld_mod, only: set_cld -use set_aer_mod, only: set_aer +use set_control_mod, only: set_control +use set_dimen_mod, only: set_dimen +use set_atm_mod, only: set_atm +use set_bound_mod, only: set_bound +use socrates_set_cld, only: set_cld +use set_aer_mod, only: set_aer use soc_constants_mod, only: i_def, r_def @@ -114,6 +115,15 @@ subroutine socrates_calc(Time_diag,control, spectrum, real(r_def), intent(in) :: layer_heat_capacity(n_profile, n_layer) ! Heat capacity of layer +real(r_def), intent(in) :: cld_frac(n_profile, n_layer) +! Cloud fraction at layer centres + +real(r_def), intent(in) :: reff_rad(n_profile, n_layer) +! Cloud liquid particle radius from simple cloud scheme + +real(r_def), intent(in) :: mmr_cl_rad(n_profile, n_layer) +! Cloud liquid mmr at layer centres + real(r_def), intent(out) :: flux_direct(n_profile, 0:n_layer) ! Direct (unscattered) downwards flux (Wm-2) real(r_def), intent(out) :: flux_down(n_profile, 0:n_layer) @@ -151,6 +161,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, !DIAG Diagnostic logical :: used +real(r_def) :: zeros_cld(n_profile, n_layer) call set_control(control) @@ -165,7 +176,15 @@ subroutine socrates_calc(Time_diag,control, spectrum, t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity) -call set_cld(control, dimen, spectrum, cld, n_profile) +! call set_cld(control, dimen, spectrum, cld, n_profile) + +call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & + liq_frac = cld_frac, & + ice_frac = zeros_cld, & + liq_mmr = mmr_cl_rad, & + ice_mmr = zeros_cld, & + liq_dim = reff_rad, & + ice_dim = zeros_cld ) call set_aer(control, dimen, spectrum, aer, n_profile) diff --git a/src/atmos_param/socrates/interface/socrates_config_mod.f90 b/src/atmos_param/socrates/interface/socrates_config_mod.f90 index 2689b940c..249e4035b 100644 --- a/src/atmos_param/socrates/interface/socrates_config_mod.f90 +++ b/src/atmos_param/socrates/interface/socrates_config_mod.f90 @@ -41,7 +41,9 @@ module socrates_config_mod logical :: input_co2_mmr=.false. !Socrates wants input concentrations as mmr not vmr, so need to make sure input data supplied is converted if necessary logical :: use_pressure_interp_for_half_levels = .False. !By default (.False.) does linear interpolation in height for half-level temperatures. True does linear interp using pressure. - + + logical :: account_for_clouds_in_socrates = .false. !Do we want to account for the radiative effects of clouds in socrates? + ! Incoming radiation options for namelist integer :: solday=0 ! if >0, do perpetual run corresponding to day of the year = solday \in [0,days per year] @@ -127,6 +129,7 @@ module socrates_config_mod inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, & inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, & use_pressure_interp_for_half_levels, & - frierson_solar_rad, del_sol, del_sw + frierson_solar_rad, del_sol, del_sw, & + account_for_clouds_in_socrates end module socrates_config_mod diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 1a03b44f0..452e88b10 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -432,6 +432,7 @@ end subroutine socrates_init ! ----------------------------------------------------------------------------- subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, fms_coszen, fms_rrsun, n_profile, n_layer, & + fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & output_heating_rate, output_flux_down, output_flux_up, output_soc_spectral_olr, output_flux_direct, t_half_level_out ) use realtype_rd @@ -470,7 +471,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), intent(in) :: rlat(:,:) real(r_def), intent(in) :: fms_z_full(:,:,:), fms_z_half(:,:,:) real(r_def), intent(in) :: fms_rrsun - + real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) ! Output arrays real(r_def), intent(out) :: output_heating_rate(:,:,:) @@ -491,7 +492,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & soc_heating_rate, input_o3_mixing_ratio, & input_co2_mixing_ratio,z_full_reshaped real, dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & - soc_flux_down, soc_flux_up, z_half_reshaped + soc_flux_down, soc_flux_up, z_half_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad real, dimension(n_profile) :: input_t_surf, input_cos_zenith_angle, input_solar_irrad, & input_orog_corr, input_planet_albedo @@ -531,7 +532,11 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_t = reshape(fms_temp(:,:,:),(/si*sj,sk /)) input_p = reshape(fms_p_full(:,:,:),(/si*sj,sk /)) input_p_level = reshape(fms_p_half(:,:,:),(/si*sj,sk+1 /)) - + + input_cld_frac = reshape(fms_cld_frac(:,:,:),(/si*sj,sk /)) + input_reff_rad = reshape(fms_reff_rad(:,:,:),(/si*sj,sk /)) + input_mmr_cl_rad = reshape(fms_mmr_cl_rad(:,:,:),(/si*sj,sk/)) + if (account_for_effect_of_water == .true.) then input_mixing_ratio = reshape(fms_spec_hum(:,:,:) / (1. - fms_spec_hum(:,:,:)),(/si*sj,sk /)) !Mass mixing ratio = q / (1-q) else @@ -652,6 +657,9 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_albedo(idx_chunk_start:idx_chunk_end), & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & + input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_reff_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & soc_flux_down(idx_chunk_start:idx_chunk_end,:), & soc_flux_up(idx_chunk_start:idx_chunk_end,:), & @@ -678,6 +686,9 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_albedo(idx_chunk_start:idx_chunk_end), & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & + input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_reff_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & soc_flux_down(idx_chunk_start:idx_chunk_end,:), & soc_flux_up(idx_chunk_start:idx_chunk_end,:), & @@ -703,7 +714,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & end subroutine socrates_interface subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf_in, p_full_in, p_half_in, z_full_in, z_half_in, albedo_in, & - temp_tend, net_surf_sw_down, surf_lw_down, delta_t) + temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple, cf_rad, reff_rad, qcl_rad) use astronomy_mod, only: diurnal_solar use constants_mod, only: pi, wtmco2, wtmozone, rdgas, gas_constant @@ -718,11 +729,13 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real, intent(inout), dimension(:,:,:) :: temp_tend real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down real, intent(in) :: delta_t + logical, intent(in) :: do_cloud_simple + real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad integer(i_def) :: n_profile, n_layer real(r_def), dimension(size(temp_in,1), size(temp_in,2)) :: t_surf_for_soc, rad_lat_soc, rad_lon_soc, albedo_soc - real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, z_full_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, z_full_soc, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, z_half_soc,output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up logical :: soc_lw_mode, used @@ -953,6 +966,33 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif + if(do_cloud_simple.and.account_for_clouds_in_socrates) then + cld_frac_soc = REAL(cf_rad, kind(r_def)) + reff_rad_soc = REAL(reff_rad, kind(r_def)) + + qcl_rad_soc = REAL(qcl_rad, kind(r_def)) + mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) + + elseif(do_cloud_simple.and..not.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) + + cld_frac_soc = 0. + reff_rad_soc = 0. + mmr_cl_rad_soc = 0. + + elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) + + cld_frac_soc = 0. + reff_rad_soc = 0. + mmr_cl_rad_soc = 0. + + endif + n_profile = INT(size(temp_in,2)*size(temp_in,1), kind(i_def)) n_layer = INT(size(temp_in,3), kind(i_def)) t_surf_for_soc = REAL(t_surf_in(:,:), kind(r_def)) @@ -975,7 +1015,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) + output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) @@ -990,7 +1030,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf soc_lw_mode = .FALSE. CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up) + output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc) tg_tmp_soc = tg_tmp_soc + output_heating_rate_sw*delta_t !Output heating rate in K/s, so is a temperature tendency net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)-output_soc_flux_sw_up(:,:,n_layer+1) ) diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 index 25e47a340..d98b215a6 100644 --- a/src/atmos_param/socrates/interface/socrates_set_cld.F90 +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -23,7 +23,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & use def_control, only: StrCtrl use def_dimen, only: StrDim use def_spectrum, only: StrSpecData -use realtype_rd, only: RealK +use soc_constants_mod, only: i_def, r_def use rad_pcf, only: & ip_cloud_homogen, ip_cloud_ice_water, ip_cloud_conv_strat, ip_cloud_csiw, & ip_clcmp_st_water, ip_clcmp_st_ice, ip_clcmp_cnv_water, ip_clcmp_cnv_ice, & @@ -32,8 +32,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & ip_cloud_type_strat, ip_cloud_type_conv, & ip_cloud_type_sw, ip_cloud_type_si, ip_cloud_type_cw, ip_cloud_type_ci, & ip_drop_unparametrized, ip_ice_unparametrized, i_normal, i_err_fatal -use ereport_mod, only: ereport -use errormessagelength_mod, only: errormessagelength + +use fms_mod, only: error_mesg, FATAL implicit none @@ -50,10 +50,10 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & ! Spectral data: type(StrSpecData), intent(in) :: spectrum -integer, intent(in) :: n_profile -integer, intent(in) :: n_layer +integer(i_def), intent(in) :: n_profile +integer(i_def), intent(in) :: n_layer -real(RealK), intent(in), optional :: & +real(r_def), intent(in), optional :: & cloud_frac(:,:), conv_frac(:,:), & liq_frac(:,:), ice_frac(:,:), liq_conv_frac(:,:), ice_conv_frac(:,:), & liq_mmr(:,:), ice_mmr(:,:), liq_conv_mmr(:,:), ice_conv_mmr(:,:), & @@ -61,7 +61,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & ! Liquid and ice cloud fractions, gridbox mean mixing ratios, and ! effective dimensions -real(RealK), intent(in), optional :: dp_corr_strat, dp_corr_conv +real(r_def), intent(in), optional :: dp_corr_strat, dp_corr_conv ! Decorrelation pressure scales for cloud vertical overlap @@ -73,16 +73,16 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & integer :: i_cloud_type(dimen%nd_cloud_component) ! Types of cloud to which each component contributes -real(RealK) :: condensed_min_dim -real(RealK) :: condensed_max_dim +real(r_def) :: condensed_min_dim +real(r_def) :: condensed_max_dim ! Minimum and maximum dimensions of each condensed component -real(RealK) :: eps = EPSILON(1.0) -real(RealK) :: min_cloud_fraction = 0.0001 +real(r_def) :: eps = EPSILON(1.0) +real(r_def) :: min_cloud_fraction = 0.0001 integer :: ierr = i_normal character (len=*), parameter :: RoutineName = 'SET_CLD' -character (len=errormessagelength) :: cmessage +character (len=128) :: cmessage ! Functions called integer, external :: set_n_cloud_parameter @@ -136,7 +136,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Cloud on, but no condensed components included.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) +! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if do i=1, cld%n_condensed @@ -161,11 +162,13 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%i_condensed_param(i) = ip_drop_unparametrized cmessage = 'Prescribed liquid cloud not yet implemented.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) else if (i_param_type > spectrum%dim%nd_drop_type) then cmessage = 'Liquid cloud type outside allowed range.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) else if (spectrum%drop%l_drop_type(i_param_type)) then ! Take parametrisation from spectral file cld%i_condensed_param(i) = spectrum%drop%i_drop_parm(i_param_type) @@ -195,7 +198,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Liquid MMR and effective radius not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_clcmp_cnv_water) if (present(liq_conv_mmr).and.present(liq_conv_dim)) then @@ -209,24 +213,28 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Convective liquid MMR and effective radius not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if end select else cmessage = 'Liquid cloud type not in spectral file.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_phase_ice) if (i_param_type <= 0) then cld%i_condensed_param(i) = ip_ice_unparametrized cmessage = 'Prescribed ice cloud not yet implemented.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) else if (i_param_type > spectrum%dim%nd_ice_type) then cmessage = 'Ice cloud type outside allowed range.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) else if (spectrum%ice%l_ice_type(i_param_type)) then ! Take parametrisation from spectral file cld%i_condensed_param(i) = spectrum%ice%i_ice_parm(i_param_type) @@ -255,7 +263,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Ice MMR and effective radius not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_clcmp_cnv_ice) if (present(ice_conv_mmr).and.present(ice_conv_dim)) then @@ -269,13 +278,15 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Convective ice MMR and effective radius not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if end select else cmessage = 'Ice cloud type not in spectral file.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if end select end do @@ -284,12 +295,12 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & if (present(dp_corr_strat)) then cld%dp_corr_strat = dp_corr_strat else - cld%dp_corr_strat = 0.0_RealK + cld%dp_corr_strat = 0.0_r_def end if if (present(dp_corr_conv)) then cld%dp_corr_conv = dp_corr_conv else - cld%dp_corr_conv = 0.0_RealK + cld%dp_corr_conv = 0.0_r_def end if @@ -313,7 +324,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Cloud fraction not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_cloud_ice_water) cld%n_cloud_type = 2 @@ -335,8 +347,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%frac_cloud(l, k, ip_cloud_type_ice) = & cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) else - cld%frac_cloud(l, k, ip_cloud_type_water) = 0.0_RealK - cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_water) = 0.0_r_def + cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_r_def end if end do end do @@ -350,7 +362,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Liquid and ice cloud fractions not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_cloud_conv_strat) cld%n_cloud_type = 2 @@ -376,7 +389,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Cloud fraction and convective cloud fraction not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_cloud_csiw) cld%n_cloud_type = 4 @@ -402,8 +416,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%frac_cloud(l, k, ip_cloud_type_si) = & cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) else - cld%frac_cloud(l, k, ip_cloud_type_sw) = 0.0_RealK - cld%frac_cloud(l, k, ip_cloud_type_si) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_sw) = 0.0_r_def + cld%frac_cloud(l, k, ip_cloud_type_si) = 0.0_r_def end if end do end do @@ -417,7 +431,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Liquid and ice cloud fractions not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if if (present(liq_conv_frac).and.present(ice_conv_frac).and. & present(conv_frac)) then @@ -430,8 +445,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%frac_cloud(l, k, ip_cloud_type_ci) = conv_frac(l, k) & *ice_conv_frac(l, k) / (liq_conv_frac(l, k)+ice_conv_frac(l, k)) else - cld%frac_cloud(l, k, ip_cloud_type_cw) = 0.0_RealK - cld%frac_cloud(l, k, ip_cloud_type_ci) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_cw) = 0.0_r_def + cld%frac_cloud(l, k, ip_cloud_type_ci) = 0.0_r_def end if end do end do @@ -445,7 +460,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Liquid and ice convective cloud fractions not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if end select @@ -468,15 +484,16 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%frac_cloud(l, k, j) = cld%frac_cloud(l, k, j) / cld%w_cloud(l, k) end do else - cld%w_cloud(l, k) = 0.0_RealK - cld%frac_cloud(l, k, 1:cld%n_cloud_type) = 0.0_RealK + cld%w_cloud(l, k) = 0.0_r_def + cld%frac_cloud(l, k, 1:cld%n_cloud_type) = 0.0_r_def end if - if (cld%w_cloud(l, k) > 1.0_RealK + min_cloud_fraction) then + if (cld%w_cloud(l, k) > 1.0_r_def + min_cloud_fraction) then cmessage = 'Cloud fraction greater than 1.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) - else if (cld%w_cloud(l, k) > 1.0_RealK) then - cld%w_cloud(l, k) = 1.0_RealK + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) + else if (cld%w_cloud(l, k) > 1.0_r_def) then + cld%w_cloud(l, k) = 1.0_r_def end if end do end do diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 07d9191f8..9447ef20d 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -983,6 +983,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg endif +! write(6,*) minval(cf_rad), maxval(cf_rad), minval(reff_rad), maxval(reff_rad), minval(qcl_rad), maxval(qcl_rad) + tmp1 = maxval(reff_rad) tmp2 = maxval(cf_rad) @@ -1125,7 +1127,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! Socrates interface call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), t_surf(:,:), p_full(:,:,:,current), & - p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t) + p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), reff_rad(:,:,:), & + qcl_rad(:,:,:) ) endif #endif diff --git a/src/extra/model/socrates/path_names b/src/extra/model/socrates/path_names index 2f4dac9eb..7ec1ee810 100644 --- a/src/extra/model/socrates/path_names +++ b/src/extra/model/socrates/path_names @@ -583,7 +583,7 @@ atmos_param/socrates/src/trunk/src/general/calc_planck_tbl.f atmos_param/socrates/src/trunk/src/general/read_word.f atmos_param/socrates/interface/read_control.F90 atmos_param/socrates/interface/set_atm.F90 -atmos_param/socrates/interface/set_cld.F90 +atmos_param/socrates/interface/socrates_set_cld.F90 atmos_param/socrates/interface/set_dimen.F90 atmos_param/socrates/interface/socrates_config_mod.f90 atmos_param/socrates/interface/compress_spectrum.F90 From 174123e5fd7bc933dedd51514f096190408c0dbc Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 13:02:38 +0100 Subject: [PATCH 049/304] Turned socrates clouds on for the first time, and hit error where cloud fraction is above one. Check this with Penny. --- .../socrates/interface/socrates_interface.F90 | 27 ++++++++++++------- .../driver/solo/idealized_moist_phys.F90 | 2 +- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 452e88b10..7f9890cdc 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -80,7 +80,7 @@ MODULE socrates_interface_mod CONTAINS - SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb, delta_t_atmos) + SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb, delta_t_atmos, do_cloud_simple) !! Initialises Socrates spectra, arrays, and constants USE astronomy_mod, only: astronomy_init @@ -94,6 +94,7 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb INTEGER, INTENT(in) :: is, ie, js, je, num_levels REAL, INTENT(in) , DIMENSION(:,:) :: lat REAL, INTENT(in) , DIMENSION(:,:) :: lonb, latb + LOGICAL, INTENT(IN) :: do_cloud_simple integer :: io, stdlog_unit integer :: res, time_step_seconds @@ -117,6 +118,18 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb !Initialise astronomy call astronomy_init + if(do_cloud_simple.and..not.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) + + elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) + + endif + !Initialise variables related to radiation timestep call get_time(delta_t_atmos,time_step_seconds) @@ -975,18 +988,12 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf elseif(do_cloud_simple.and..not.account_for_clouds_in_socrates) then - call error_mesg( 'run_socrates', & - 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) - cld_frac_soc = 0. reff_rad_soc = 0. mmr_cl_rad_soc = 0. elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then - call error_mesg( 'run_socrates', & - 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) - cld_frac_soc = 0. reff_rad_soc = 0. mmr_cl_rad_soc = 0. @@ -1015,7 +1022,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) + cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) @@ -1030,7 +1038,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf soc_lw_mode = .FALSE. CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc) + cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up) tg_tmp_soc = tg_tmp_soc + output_heating_rate_sw*delta_t !Output heating rate in K/s, so is a temperature tendency net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)-output_soc_flux_sw_up(:,:,n_layer+1) ) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 9447ef20d..43bfcebe0 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -763,7 +763,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l endif #else if (do_socrates_radiation) then - call socrates_init(is, ie, js, je, num_levels, axes, Time, rad_lat, rad_lonb_2d, rad_latb_2d, Time_step_in) + call socrates_init(is, ie, js, je, num_levels, axes, Time, rad_lat, rad_lonb_2d, rad_latb_2d, Time_step_in, do_cloud_simple) endif #endif From 9fc8194b1b7e8f9c009db0bec8facd48ec038e94 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 14:35:51 +0100 Subject: [PATCH 050/304] Initialised zeros array and getting seg-faults when ice fraction is not 1. --- src/atmos_param/socrates/interface/socrates_calc.F90 | 6 ++++-- src/atmos_param/socrates/interface/socrates_interface.F90 | 2 +- src/atmos_param/socrates/interface/socrates_set_cld.F90 | 1 + src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 6 +++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index ab545635e..b36e0ff7e 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -161,7 +161,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, !DIAG Diagnostic logical :: used -real(r_def) :: zeros_cld(n_profile, n_layer) +real(r_def) :: zeros_cld(n_profile, n_layer), ten_microns_cld(n_profile, n_layer) call set_control(control) @@ -178,9 +178,11 @@ subroutine socrates_calc(Time_diag,control, spectrum, ! call set_cld(control, dimen, spectrum, cld, n_profile) + zeros_cld = 0. + ten_microns_cld = 1. call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & liq_frac = cld_frac, & - ice_frac = zeros_cld, & + ice_frac = ten_microns_cld, & liq_mmr = mmr_cl_rad, & ice_mmr = zeros_cld, & liq_dim = reff_rad, & diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 7f9890cdc..e8e8431cb 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -984,7 +984,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf reff_rad_soc = REAL(reff_rad, kind(r_def)) qcl_rad_soc = REAL(qcl_rad, kind(r_def)) - mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) + mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) !check if qcl is indeed specific humidity and not mmr elseif(do_cloud_simple.and..not.account_for_clouds_in_socrates) then diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 index d98b215a6..99fd4a30e 100644 --- a/src/atmos_param/socrates/interface/socrates_set_cld.F90 +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -482,6 +482,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & if (cld%w_cloud(l, k) > min_cloud_fraction) then do j=1, cld%n_cloud_type cld%frac_cloud(l, k, j) = cld%frac_cloud(l, k, j) / cld%w_cloud(l, k) + ! write(6,*) cld%frac_cloud(l, k, j) / cld%w_cloud(l, k), cld%frac_cloud(l, k, j) , cld%w_cloud(l, k), 'div?', cld%n_cloud_type end do else cld%w_cloud(l, k) = 0.0_r_def diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 43bfcebe0..1bdae6cdd 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -1125,7 +1125,11 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg #else if (do_socrates_radiation) then ! Socrates interface - + + if(do_cloud_simple) then + reff_rad = 1.e-6 * reff_rad ! Simple cloud scheme outputs radii in microns. Socrates expects it in metres. + endif + call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), t_surf(:,:), p_full(:,:,:,current), & p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), reff_rad(:,:,:), & qcl_rad(:,:,:) ) From 936a20d55f8cf798210a21eabde1d143bd43fe3d Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 11:15:32 +0100 Subject: [PATCH 051/304] Update debugging flag to get socrities to compile --- src/extra/python/isca/templates/mkmf.template.debug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extra/python/isca/templates/mkmf.template.debug b/src/extra/python/isca/templates/mkmf.template.debug index 15afb1696..45d7e20a3 100644 --- a/src/extra/python/isca/templates/mkmf.template.debug +++ b/src/extra/python/isca/templates/mkmf.template.debug @@ -19,7 +19,7 @@ NETCDF_LIBS = `nc-config --libs` # This suppresses the warning: `warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value.` of which # there are a lot of instances in the GFDL codebase. FFLAGS_DEBUG = -check -check noarg_temp_created -check nopointer -warn -warn noerrors -debug variable_locations -inline_debug_info -fpe0 -traceback -ftrapuv -FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -fpic $(FFLAGS_DEBUG) +FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -mcmodel large $(FFLAGS_DEBUG) FC = $(F90) LD = $(F90) $(NETCDF_LIBS) #CC = mpicc From 9cb7896ccdce68bb80bcc33fae56813142aae6bf Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 11:16:31 +0100 Subject: [PATCH 052/304] Minor changes to soc test case for debugging. --- .../socrates_test/socrates_aquaplanet.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 41b77bc33..39022addb 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 16 +NCORES = 1 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -95,6 +95,7 @@ 'use_pressure_interp_for_half_levels':False, 'tidally_locked':False, #'solday': 90 + 'account_for_clouds_in_socrates': True, }, 'idealized_moist_phys_nml': { 'do_damping': True, @@ -115,10 +116,7 @@ 'simple_cca':0.0, 'rhcsfc': 0.95, 'rhc700': 0.7, - 'rhc200': 0.3, - 'rhmsfc': 0.95, - 'rhm700': 0.7, - 'rhm200': 0.3, + 'rhc200': 0.3 }, 'vert_turb_driver_nml': { @@ -165,8 +163,9 @@ }, 'sat_vapor_pres_nml': { - 'do_simple':True - }, + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, 'damping_driver_nml': { 'do_rayleigh': True, @@ -208,9 +207,9 @@ #Lets do a run! if __name__=="__main__": - cb.compile() + cb.compile(debug=True) #Set up the experiment object, with the first argument being the experiment name. #This will be the name of the folder that the data will appear in. exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False) for i in range(2,121): - exp.run(i, num_cores=NCORES) + exp.run(i, num_cores=NCORES) \ No newline at end of file From 46ef7a82ee990ab258710340574b9c6a8d1074dd Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:42:36 +0100 Subject: [PATCH 053/304] Remove debug and account for clouds flag --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 39022addb..f99f664b8 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 1 +NCORES = 16 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -109,7 +109,7 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True, + 'do_cloud_simple': True }, 'cloud_simple_nml': { From feb0cd8cbb3c7341e373e3423bf64abf1272936d Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:43:53 +0100 Subject: [PATCH 054/304] Socrates is not working properly with idb. Break points not behaving logically. Cant confirm the compile is working properly --- src/extra/python/isca/templates/mkmf.template.debug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extra/python/isca/templates/mkmf.template.debug b/src/extra/python/isca/templates/mkmf.template.debug index 45d7e20a3..15afb1696 100644 --- a/src/extra/python/isca/templates/mkmf.template.debug +++ b/src/extra/python/isca/templates/mkmf.template.debug @@ -19,7 +19,7 @@ NETCDF_LIBS = `nc-config --libs` # This suppresses the warning: `warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value.` of which # there are a lot of instances in the GFDL codebase. FFLAGS_DEBUG = -check -check noarg_temp_created -check nopointer -warn -warn noerrors -debug variable_locations -inline_debug_info -fpe0 -traceback -ftrapuv -FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -mcmodel large $(FFLAGS_DEBUG) +FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -fpic $(FFLAGS_DEBUG) FC = $(F90) LD = $(F90) $(NETCDF_LIBS) #CC = mpicc From e06702d9d994d4cf5458d98695fc8c5906386900 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:44:27 +0100 Subject: [PATCH 055/304] Removed additional unused files in order to get code to compile for using simple clouds and soc --- src/extra/model/socrates/path_names | 91 ----------------------------- 1 file changed, 91 deletions(-) diff --git a/src/extra/model/socrates/path_names b/src/extra/model/socrates/path_names index 7ec1ee810..1a143cb31 100644 --- a/src/extra/model/socrates/path_names +++ b/src/extra/model/socrates/path_names @@ -329,89 +329,6 @@ atmos_param/socrates/src/trunk/src/radiance_core/monochromatic_radiance.F90 atmos_param/socrates/src/trunk/src/radiance_core/aggregate_cloud.F90 atmos_param/socrates/src/trunk/src/radiance_core/radiance_calc.F90 atmos_param/socrates/src/trunk/src/radiance_core/ir_source.F90 -atmos_param/socrates/src/trunk/src/scatter/conjugate_gradient_cloud_90.f90 -atmos_param/socrates/src/trunk/src/scatter/method_weight_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/select_weight_scatter_90.f90 -atmos_param/socrates/src/trunk/src/scatter/measure_particle_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/prec_integral_tcf.f90 -atmos_param/socrates/src/trunk/src/scatter/def_s_scat_prop.f90 -atmos_param/socrates/src/trunk/src/scatter/db_scatter_integral.f90 -atmos_param/socrates/src/trunk/src/scatter/weightings_90.f90 -atmos_param/socrates/src/trunk/src/scatter/def_db_ss_mono.f90 -atmos_param/socrates/src/trunk/src/scatter/cloud_fitting.f90 -atmos_param/socrates/src/trunk/src/scatter/shape_particle_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/number_particle_90.f90 -atmos_param/socrates/src/trunk/src/scatter/db_interp_ss_mono.f90 -atmos_param/socrates/src/trunk/src/scatter/db_read_single_wavelength.f90 -atmos_param/socrates/src/trunk/src/scatter/get_refract_index.f90 -atmos_param/socrates/src/trunk/src/scatter/read_scatter_block_90.f90 -atmos_param/socrates/src/trunk/src/scatter/proj_area_particle.f90 -atmos_param/socrates/src/trunk/src/scatter/line_search_cloud_90.f90 -atmos_param/socrates/src/trunk/src/scatter/volume_particle.f90 -atmos_param/socrates/src/trunk/src/scatter/distribution_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/size_integral_90.f90 -atmos_param/socrates/src/trunk/src/scatter/particle_size_90.f90 -atmos_param/socrates/src/trunk/src/scatter/max_size_acf.f90 -atmos_param/socrates/src/trunk/src/scatter/write_average_90.f90 -atmos_param/socrates/src/trunk/src/scatter/adt_mitchell96.f90 -atmos_param/socrates/src/trunk/src/scatter/get_db_wavelengths.f90 -atmos_param/socrates/src/trunk/src/scatter/decompose_phf_90.f90 -atmos_param/socrates/src/trunk/src/scatter/cloud_fit_parm_acf.f90 -atmos_param/socrates/src/trunk/src/scatter/cloud_fit_90.f90 -atmos_param/socrates/src/trunk/src/scatter/ice_db_read_geometry.f90 -atmos_param/socrates/src/trunk/src/scatter/def_sct_db.f90 -atmos_param/socrates/src/trunk/src/scatter/open_average_90.f90 -atmos_param/socrates/src/trunk/src/scatter/def_size_dist.f90 -atmos_param/socrates/src/trunk/src/scatter/parm_integ_acf.f90 -atmos_param/socrates/src/trunk/src/scatter/bna_factor_ccf.f90 -atmos_param/socrates/src/trunk/src/scatter/def_db_crystal_geometry.f90 -atmos_param/socrates/src/trunk/src/scatter/get_wavelengths.f90 -atmos_param/socrates/src/trunk/src/scatter/weightings_single_90.f90 -atmos_param/socrates/src/trunk/src/scatter/scatter_algorithm_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/db_type_ucf.f90 -atmos_param/socrates/src/trunk/src/scatter/scatter_integral_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/voigt_profile.f90 -atmos_param/socrates/src/trunk/src/correlated_k/adjust_path.f90 -atmos_param/socrates/src/trunk/src/correlated_k/func_scale_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/read_pt_line_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/set_condition_ck_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/caviar_continuum_v1_0.f90 -atmos_param/socrates/src/trunk/src/correlated_k/rad_weight_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/select_weight_ck_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/trans_k_dist.f90 -atmos_param/socrates/src/trunk/src/correlated_k/type_residual_pcf.f90 -atmos_param/socrates/src/trunk/src/correlated_k/map_shell.f90 -atmos_param/socrates/src/trunk/src/correlated_k/terminate_scale_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/ckd_continuum_v2_4.f90 -atmos_param/socrates/src/trunk/src/correlated_k/write_fit_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/ck_parm_acf.f90 -atmos_param/socrates/src/trunk/src/correlated_k/fit_parabola_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/func_scale_derivative_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/optimal_k.f90 -atmos_param/socrates/src/trunk/src/correlated_k/open_file_out_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/residual_gradient_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/scale_ck_fit_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/read_ref_pt_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/corr_k_single.f90 -atmos_param/socrates/src/trunk/src/correlated_k/planck_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/exponent_fit_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/conjugate_gradient_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/line_prof_corr_mod.f90 -atmos_param/socrates/src/trunk/src/correlated_k/set_extern_ckd_frn_data.f90 -atmos_param/socrates/src/trunk/src/correlated_k/set_g_point_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/bi_interp.f90 -atmos_param/socrates/src/trunk/src/correlated_k/residual_trans_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/set_extern_ckd_self_data.f90 -atmos_param/socrates/src/trunk/src/correlated_k/line_search_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/read_hitran.f90 -atmos_param/socrates/src/trunk/src/correlated_k/read_nc.f90 -atmos_param/socrates/src/trunk/src/correlated_k/ckd_extern_data.f90 -atmos_param/socrates/src/trunk/src/correlated_k/def_hitran_record.f90 -atmos_param/socrates/src/trunk/src/correlated_k/d_planck_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/scale_parameters_acf.f90 -atmos_param/socrates/src/trunk/src/correlated_k/offset_residual_trans_acf.f90 -atmos_param/socrates/src/trunk/src/correlated_k/hitran_cnst.f90 -atmos_param/socrates/src/trunk/src/correlated_k/ck_fit_pcf.f90 atmos_param/socrates/src/trunk/src/aux/qsat_wat.F90 atmos_param/socrates/src/trunk/src/aux/qsat_gill.F90 atmos_param/socrates/src/trunk/src/aux/write_cdf.f90 @@ -434,7 +351,6 @@ atmos_param/socrates/src/trunk/src/general/make_block_18.f90 atmos_param/socrates/src/trunk/src/general/remove_negative_gas_90.f90 atmos_param/socrates/src/trunk/src/general/make_block_17.f90 atmos_param/socrates/src/trunk/src/general/make_block_1.f90 -atmos_param/socrates/src/trunk/src/general/solar_intensity_90.f90 atmos_param/socrates/src/trunk/src/general/make_block_19.f90 atmos_param/socrates/src/trunk/src/general/make_block_0.f90 atmos_param/socrates/src/trunk/src/general/make_block_10.f90 @@ -484,8 +400,6 @@ atmos_param/socrates/src/trunk/src/radiation_control/set_moist_aerosol_propertie atmos_param/socrates/src/trunk/src/radiation_control/mcica_mod.F90 atmos_param/socrates/src/trunk/src/radiation_control/cld_generator_mod.F90 atmos_param/socrates/src/trunk/src/radiation_control/open_cloud_gen.F90 -atmos_param/socrates/src/trunk/src/um/out_nml.f90 -atmos_param/socrates/src/trunk/src/um/def_um_nml.f90 atmos_param/socrates/src/trunk/src/modules_core/errormessagelength_mod.F90 atmos_param/socrates/src/trunk/src/modules_core/dimensions_spec_ucf.F90 atmos_param/socrates/src/trunk/src/modules_core/rad_ccf.F90 @@ -497,11 +411,6 @@ atmos_param/socrates/src/trunk/src/modules_core/vectlib_mod.F90 atmos_param/socrates/src/trunk/src/modules_core/ereport_mod.F90 atmos_param/socrates/src/trunk/src/modules_core/realtype_rd.f90 atmos_param/socrates/src/trunk/src/modules_core/filenamelength_mod.F90 -atmos_param/socrates/src/trunk/src/scatter/grow_particles.f -atmos_param/socrates/src/trunk/src/scatter/mie_scatter.f -atmos_param/socrates/src/trunk/src/scatter/adt_integral.f -atmos_param/socrates/src/trunk/src/scatter/gamma_fnc.f -atmos_param/socrates/src/trunk/src/scatter/refractive_index.f atmos_param/socrates/src/trunk/src/aux/output_vert_cdl.f atmos_param/socrates/src/trunk/src/aux/assign_input_opt_cdf.f atmos_param/socrates/src/trunk/src/aux/assign_input_ss_cdl.f From a002601d3894339ef7607eee09fd64143fa043f3 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:44:51 +0100 Subject: [PATCH 056/304] Initialise variables and cleaning debug statements --- .../driver/solo/idealized_moist_phys.F90 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 1bdae6cdd..b9815c0d8 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -809,7 +809,6 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(1,1,1):: tracer, tracertnd integer :: nql, nqi, nqa ! tracer indices for stratiform clouds -real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging if(current == previous) then delta_t = dt_real @@ -970,6 +969,12 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! Call the simple cloud scheme in line with SPOOKIE-2 requirements ! Using start of time step variables ! using soecific humidity NOT mixing ratios + + !Set to zero regarles of if clouds are used in radiation code + cf_rad = 0. + reff_rad = 0. + qcl_rad = 0. + if(do_cloud_simple) then call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & @@ -983,11 +988,6 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg endif -! write(6,*) minval(cf_rad), maxval(cf_rad), minval(reff_rad), maxval(reff_rad), minval(qcl_rad), maxval(qcl_rad) - -tmp1 = maxval(reff_rad) -tmp2 = maxval(cf_rad) - ! Begin the radiation calculation by computing downward fluxes. ! This part of the calculation does not depend on the surface temperature. From 9ec6c51ae547dbf57097a2f399a1984fa0789e65 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:45:15 +0100 Subject: [PATCH 057/304] Remove account for cloud flag from namelist --- src/atmos_param/socrates/interface/read_control.F90 | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/atmos_param/socrates/interface/read_control.F90 b/src/atmos_param/socrates/interface/read_control.F90 index 92d5eeefb..755a10357 100644 --- a/src/atmos_param/socrates/interface/read_control.F90 +++ b/src/atmos_param/socrates/interface/read_control.F90 @@ -9,13 +9,15 @@ MODULE read_control_mod ! Subroutine to set input algorithmic options for the core radiation code !------------------------------------------------------------------------------ -SUBROUTINE read_control(control, spectrum) +SUBROUTINE read_control(control, spectrum, do_cloud_simple) USE rad_pcf USE def_control, ONLY: StrCtrl, allocate_control USE def_spectrum, ONLY: StrSpecData -USE socrates_config_mod, ONLY: l_planet_grey_surface, inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, account_for_clouds_in_socrates +USE socrates_config_mod, ONLY: l_planet_grey_surface, inc_h2o, inc_co2, inc_co, & + inc_o3, inc_n2o, inc_ch4, inc_o2, inc_so2, inc_cfc11, & + inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a IMPLICIT NONE @@ -26,6 +28,10 @@ SUBROUTINE read_control(control, spectrum) ! Spectral data: TYPE (StrSpecData), INTENT(IN) :: spectrum +LOGICAL, INTENT(IN), OPTIONAL :: do_cloud_simple + + + ! Local variables. INTEGER :: i ! Loop variable @@ -93,7 +99,7 @@ SUBROUTINE read_control(control, spectrum) control%i_gas_overlap = ip_overlap_k_eqv_scl ! Properties of clouds -if (account_for_clouds_in_socrates) then +if (do_cloud_simple) then control%i_cloud_representation = ip_cloud_ice_water else control%i_cloud_representation = ip_cloud_off From 1aab14467e4e330ce8b201723e0adb4c6305ec6f Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:45:47 +0100 Subject: [PATCH 058/304] Was using 1 micron as a work around for debugging. Should be zero --- src/atmos_param/socrates/interface/socrates_calc.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index b36e0ff7e..0fd98b578 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -182,7 +182,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, ten_microns_cld = 1. call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & liq_frac = cld_frac, & - ice_frac = ten_microns_cld, & + ice_frac = zeros_cld, & liq_mmr = mmr_cl_rad, & ice_mmr = zeros_cld, & liq_dim = reff_rad, & From 5912e474af6aea15c6dd0879897866a5089c42ce Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:47:19 +0100 Subject: [PATCH 059/304] File cleaning. Changes to fix seg fault which originated due to flipped pressure levels. Removed account for clouds. --- .../interface/socrates_config_mod.f90 | 3 - .../socrates/interface/socrates_interface.F90 | 95 ++++++++++--------- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_config_mod.f90 b/src/atmos_param/socrates/interface/socrates_config_mod.f90 index 249e4035b..085fa5f80 100644 --- a/src/atmos_param/socrates/interface/socrates_config_mod.f90 +++ b/src/atmos_param/socrates/interface/socrates_config_mod.f90 @@ -42,8 +42,6 @@ module socrates_config_mod logical :: use_pressure_interp_for_half_levels = .False. !By default (.False.) does linear interpolation in height for half-level temperatures. True does linear interp using pressure. - logical :: account_for_clouds_in_socrates = .false. !Do we want to account for the radiative effects of clouds in socrates? - ! Incoming radiation options for namelist integer :: solday=0 ! if >0, do perpetual run corresponding to day of the year = solday \in [0,days per year] @@ -131,5 +129,4 @@ module socrates_config_mod use_pressure_interp_for_half_levels, & frierson_solar_rad, del_sol, del_sw, & account_for_clouds_in_socrates - end module socrates_config_mod diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index e8e8431cb..5c3893567 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -118,18 +118,6 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb !Initialise astronomy call astronomy_init - if(do_cloud_simple.and..not.account_for_clouds_in_socrates) then - - call error_mesg( 'run_socrates', & - 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) - - elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then - - call error_mesg( 'run_socrates', & - 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) - - endif - !Initialise variables related to radiation timestep call get_time(delta_t_atmos,time_step_seconds) @@ -210,10 +198,10 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb CALL read_spectrum(control_sw_hires%spectral_file,spectrum_sw_hires) ! Set Socrates configuration - CALL read_control(control_lw,spectrum_lw) - CALL read_control(control_lw_hires,spectrum_lw_hires) - CALL read_control(control_sw,spectrum_sw) - CALL read_control(control_sw_hires,spectrum_sw_hires) + CALL read_control(control_lw,spectrum_lw, do_cloud_simple) + CALL read_control(control_lw_hires,spectrum_lw_hires, do_cloud_simple) + CALL read_control(control_sw,spectrum_sw, do_cloud_simple) + CALL read_control(control_sw_hires,spectrum_sw_hires, do_cloud_simple) ! Specify LW and SW setups control_sw%isolir=1 @@ -444,9 +432,15 @@ end subroutine socrates_init ! Set up the call to the Socrates radiation scheme ! ----------------------------------------------------------------------------- subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & - fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, fms_coszen, fms_rrsun, n_profile, n_layer, & - fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & - output_heating_rate, output_flux_down, output_flux_up, output_soc_spectral_olr, output_flux_direct, t_half_level_out ) + fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, & + fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, & + fms_coszen, fms_rrsun, n_profile, n_layer, & + fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & + output_heating_rate, output_flux_down, output_flux_up, & + do_cloud_simple, & + !optionals + output_soc_spectral_olr, output_flux_direct, & + t_half_level_out ) use realtype_rd use read_control_mod @@ -486,10 +480,14 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), intent(in) :: fms_rrsun real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) + logical, intent(in) :: do_cloud_simple + ! Output arrays real(r_def), intent(out) :: output_heating_rate(:,:,:) real(r_def), intent(out) :: output_flux_up(:,:,:) real(r_def), intent(out) :: output_flux_down(:,:,:) + + real(r_def), intent(out), optional :: output_flux_direct(:,:,:) real(r_def), intent(out), optional :: output_soc_spectral_olr(:,:,:) real(r_def), intent(out), optional :: t_half_level_out(size(fms_temp,1),size(fms_temp,2),size(fms_temp,3)+1) @@ -500,13 +498,15 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & REAL :: soc_spectral_olr(n_profile, size(outputted_soc_spectral_olr,3)) ! Arrays to send to Socrates - real, dimension(n_profile, n_layer) :: input_p, input_t, input_mixing_ratio, & + real(r_def), dimension(n_profile, n_layer) :: input_p, input_t, input_mixing_ratio, & input_d_mass, input_density, input_layer_heat_capacity, & soc_heating_rate, input_o3_mixing_ratio, & - input_co2_mixing_ratio,z_full_reshaped - real, dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & - soc_flux_down, soc_flux_up, z_half_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad - real, dimension(n_profile) :: input_t_surf, input_cos_zenith_angle, input_solar_irrad, & + input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad + + real(r_def), dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & + soc_flux_down, soc_flux_up, z_half_reshaped + + real(r_def), dimension(n_profile) :: input_t_surf, input_cos_zenith_angle, input_solar_irrad, & input_orog_corr, input_planet_albedo @@ -533,7 +533,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & !----------------------------i ! Set array sizes - input_n_cloud_layer = n_layer + input_n_cloud_layer = 1 input_n_aer_mode = n_layer input_cld_subcol_gen = n_layer input_cld_subcol_req = n_layer @@ -615,7 +615,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & ! Test if LW or SW mode if (soc_lw_mode == .TRUE.) then control_lw%isolir = 2 - CALL read_control(control_lw, spectrum_lw) + CALL read_control(control_lw, spectrum_lw, do_cloud_simple) if (socrates_hires_mode == .FALSE.) then control_calc = control_lw spectrum_calc = spectrum_lw @@ -626,7 +626,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & else control_sw%isolir = 1 - CALL read_control(control_sw, spectrum_sw) + CALL read_control(control_sw, spectrum_sw, do_cloud_simple) if(socrates_hires_mode == .FALSE.) then control_calc = control_sw spectrum_calc = spectrum_sw @@ -639,7 +639,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & ! Do calculation - CALL read_control(control_calc, spectrum_calc) + CALL read_control(control_calc, spectrum_calc, do_cloud_simple) n_chunk_loop = (si*sj)/chunk_size n_profile_chunk = n_profile / n_chunk_loop @@ -979,21 +979,14 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif - if(do_cloud_simple.and.account_for_clouds_in_socrates) then + if(do_cloud_simple) then cld_frac_soc = REAL(cf_rad, kind(r_def)) reff_rad_soc = REAL(reff_rad, kind(r_def)) qcl_rad_soc = REAL(qcl_rad, kind(r_def)) mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) !check if qcl is indeed specific humidity and not mmr - elseif(do_cloud_simple.and..not.account_for_clouds_in_socrates) then - - cld_frac_soc = 0. - reff_rad_soc = 0. - mmr_cl_rad_soc = 0. - - elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then - + else cld_frac_soc = 0. reff_rad_soc = 0. mmr_cl_rad_soc = 0. @@ -1003,7 +996,6 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf n_profile = INT(size(temp_in,2)*size(temp_in,1), kind(i_def)) n_layer = INT(size(temp_in,3), kind(i_def)) t_surf_for_soc = REAL(t_surf_in(:,:), kind(r_def)) - ! LW calculation ! Retrieve output_heating_rate, and downward surface SW and LW fluxes soc_lw_mode = .TRUE. @@ -1020,10 +1012,17 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf z_full_soc = REAL(z_full_in, kind(r_def)) z_half_soc = REAL(z_half_in, kind(r_def)) - CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & - tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & - output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) + + CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & + tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & + p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & + n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, & + do_cloud_simple, & + !optional outs + output_soc_spectral_olr = outputted_soc_spectral_olr, & + t_half_level_out = t_half_out) + tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) @@ -1033,13 +1032,17 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf temp_tend(:,:,:) = temp_tend(:,:,:) + real(output_heating_rate_lw) + ! SW calculation ! Retrieve output_heating_rate, and downward surface SW and LW fluxes soc_lw_mode = .FALSE. - CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & - tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & - output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up) + CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & + tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & + p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & + n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, & + do_cloud_simple) + tg_tmp_soc = tg_tmp_soc + output_heating_rate_sw*delta_t !Output heating rate in K/s, so is a temperature tendency net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)-output_soc_flux_sw_up(:,:,n_layer+1) ) From 04ae998bdf44c7e3bacd878d7e52c809a54cf0c2 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 17:56:16 +0100 Subject: [PATCH 060/304] Added a with and without cloud test case for soc --- .../socrates_test/socrates_aquaplanet.py | 15 +- .../socrates_aquaplanet_with_cloud.py | 209 ++++++++++++++++++ 2 files changed, 216 insertions(+), 8 deletions(-) create mode 100644 exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index f99f664b8..c3a79572b 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet', codebase=cb) +exp = Experiment('soc_test_aquaplanet_without_clouds', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -60,6 +60,11 @@ diag.add_field('socrates', 'soc_toa_sw', time_avg=True) diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) +diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) + # additional output options commented out #diag.add_field('socrates', 'soc_flux_lw', time_avg=True) #diag.add_field('socrates', 'soc_flux_sw', time_avg=True) @@ -109,15 +114,9 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True + 'do_cloud_simple': False }, - 'cloud_simple_nml': { - 'simple_cca':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3 - }, 'vert_turb_driver_nml': { 'do_mellor_yamada': False, # default: True diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py new file mode 100644 index 000000000..fa0d348fe --- /dev/null +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -0,0 +1,209 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('soc_test_aquaplanet_with_clouds', codebase=cb) +exp.clear_rundir() + +inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Tell model which diagnostics to write +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) + +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) + +# additional output options commented out +#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_co2', time_avg=True) +#diag.add_field('socrates', 'soc_ozone', time_avg=True) +#diag.add_field('socrates', 'soc_coszen', time_avg=True) +#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) + +exp.diag_table = diag +exp.inputfiles = inputfiles + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True + }, + + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3 + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 2.5, #Depth of mixed layer used + 'albedo_value': 0.38, #Albedo value used + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03 + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) + + for i in range(2,121): + exp.run(i, num_cores=NCORES) From 699e348d4916e5d259ebddc66a02be1268a38710 Mon Sep 17 00:00:00 2001 From: sit23 Date: Thu, 6 Dec 2018 09:44:09 +0000 Subject: [PATCH 061/304] Small changes at James Manners suggestion. Changes results A LOT, so this needs to be checked closely. --- exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py | 2 +- src/atmos_param/socrates/interface/set_dimen.F90 | 3 ++- src/atmos_param/socrates/interface/socrates_interface.F90 | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index fa0d348fe..647ec0751 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet_with_clouds', codebase=cb) +exp = Experiment('soc_test_aquaplanet_with_clouds_post_jm_suggestions', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index 4f62eb3f9..6cf8eeac8 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -63,7 +63,8 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & dimen%id_cloud_top = dimen%nd_layer + 1 - n_cloud_layer IF (control%l_cloud) THEN - dimen%nd_layer_clr = dimen%id_cloud_top - 1 + dimen%nd_layer_clr = MAX(dimen%id_cloud_top - 1, dimen%nd_layer) + ! MAX(dimen%id_cloud_top - 1, 1) ELSE dimen%nd_layer_clr = dimen%nd_layer END IF diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 5c3893567..5a29bbd50 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -533,7 +533,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & !----------------------------i ! Set array sizes - input_n_cloud_layer = 1 + input_n_cloud_layer = n_layer input_n_aer_mode = n_layer input_cld_subcol_gen = n_layer input_cld_subcol_req = n_layer From 8d8a56330189c6d6d72c5c740814c742758fa6be Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 11:22:17 +0000 Subject: [PATCH 062/304] Update suite to have more diagnostics --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 647ec0751..2803f3100 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -56,6 +56,9 @@ diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) + # additional output options commented out #diag.add_field('socrates', 'soc_flux_lw', time_avg=True) @@ -90,7 +93,8 @@ 'store_intermediate_rad':True, 'chunk_size': 16, 'use_pressure_interp_for_half_levels':False, - 'tidally_locked':False + 'tidally_locked':False, + 'sol_day':90 }, 'idealized_moist_phys_nml': { 'do_damping': True, From 10fcd54a2ebb290d201e9334367f49b4f562a72a Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 11:23:24 +0000 Subject: [PATCH 063/304] Changes to simple clouds for more fields to be outputted --- src/atmos_param/cloud_simple/cloud_simple.F90 | 91 ++++++++++++------- 1 file changed, 56 insertions(+), 35 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index c35708ad3..ffcae1385 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -28,7 +28,9 @@ module cloud_simple_mod rhmsfc, rhm700, rhm200 real :: zerodegc = 273.15 - integer :: id_cf_rad, id_reff_rad, id_frac_liq, id_qcl_rad + integer :: id_cf, id_reff_rad, id_frac_liq, id_qcl_rad, id_rh_in_cf, id_simple_rhcrit + + character(len=14), parameter :: mod_name_cld = "cloud_simple" contains @@ -57,8 +59,8 @@ subroutine cloud_simple_init (axes, Time) write(stdlog_unit, cloud_simple_nml) !register diagnostics - id_cf_rad = & - register_diag_field ( mod_name_cld, 'cf_rad', axes(1:3), Time, & + id_cf = & + register_diag_field ( mod_name_cld, 'cf', axes(1:3), Time, & 'Cloud fraction for the simple cloud scheme', 'unitless: values 0-1') id_frac_liq = & @@ -76,30 +78,45 @@ subroutine cloud_simple_init (axes, Time) 'Specific humidity of cloud liquid', & 'kg/kg') + + id_rh_in_cf = & + register_diag_field ( mod_name_cld, 'rh_in_cf', axes(1:3), Time, & + 'RH as a percent', & + '%') + + id_simple_rhcrit = & + register_diag_field ( mod_name_cld, 'simple_rhcrit', axes(1:3), Time, & + 'RH as a percent', & + '%') + + + + + do_init = .false. !initialisation completed end subroutine cloud_simple_init !----------------------------------------------- - subroutine cloud_simple (p_half, p_full, Time, & - temp, q_hum, & + subroutine cloud_simple(p_half, p_full, Time, & + temp, q_hum, & ! outs - cf_rad, reff_rad, qcl_rad ) + cf, reff_rad, qcl_rad ) real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half type(time_type) , intent(in) :: Time - real , intent(out), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad + real , intent(out), dimension(:,:,:) :: cf, reff_rad, qcl_rad + + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq, rh_in_cf, simple_rhcrit - real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq - real :: simple_rhcrit integer :: i, j, k, k_surf logical :: es_over_liq_and_ice - real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & @@ -117,20 +134,15 @@ subroutine cloud_simple (p_half, p_full, Time, & !caluclate the frac_liq call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) - call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit) - call calc_cf_rad(q_hum(i,j,k), qs(i,j,k), simple_rhcrit, cf_rad(i,j,k)) - call calc_qcl_rad(p_full(i,j,k), cf_rad(i,j,k), qcl_rad(i,j,k) ) + call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) + call calc_cf(q_hum(i,j,k), qs(i,j,k), simple_rhcrit(i,j,k), cf(i,j,k),rh_in_cf(i,j,k)) + call calc_qcl_rad(p_full(i,j,k), cf(i,j,k), qcl_rad(i,j,k) ) end do end do end do !save some diagnotics - call output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time ) - -tmp2 = maxval(cf_rad) -tmp1 = maxval(reff_rad) -tmp2 = maxval(cf_rad) - + call output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time ) end subroutine cloud_simple @@ -184,17 +196,18 @@ subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - end subroutine calc_rhcrit - subroutine calc_cf_rad (q_hum, qsat, simple_rhcrit, cf_rad) + subroutine calc_cf (q_hum, qsat, simple_rhcrit, cf, rh) ! Calculate LS (stratiform) cloud fraction ! as a simple linear function of RH real, intent(in) :: q_hum, qsat, simple_rhcrit - real, intent(out) :: cf_rad + real, intent(out) :: cf, rh - real :: rh, cca + real :: cca rh = q_hum/qsat - cf_rad = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) + cf = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) + ! include simple convective cloud fraction where present @@ -202,17 +215,16 @@ subroutine calc_cf_rad (q_hum, qsat, simple_rhcrit, cf_rad) ! left in for fture use if (cca > 0.0) then - cf_rad = MAX( simple_cca, cf_rad ) + cf = MAX( simple_cca, cf ) end if + - - - end subroutine calc_cf_rad + end subroutine calc_cf - subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) - ! calculate simple water content + subroutine calc_qcl_rad(p_full, cf, qcl_rad) + ! calculate water content - real , intent(in) :: p_full, cf_rad + real , intent(in) :: p_full, cf real , intent(out) :: qcl_rad real :: in_cloud_qcl @@ -222,22 +234,22 @@ subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg - qcl_rad = cf_rad * in_cloud_qcl + qcl_rad = cf * in_cloud_qcl end subroutine calc_qcl_rad - subroutine output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time) + subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time) - real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, frac_liq, qcl_rad + real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit type(time_type) , intent(in) :: Time real :: used - if ( id_cf_rad > 0 ) then - used = send_data ( id_cf_rad, cf_rad, Time) + if ( id_cf > 0 ) then + used = send_data ( id_cf, cf, Time) endif if ( id_reff_rad > 0 ) then @@ -252,6 +264,15 @@ subroutine output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time) used = send_data ( id_qcl_rad, qcl_rad, Time) endif + if ( id_rh_in_cf > 0 ) then + used = send_data ( id_rh_in_cf, rh_in_cf*100., Time) + endif + + if ( id_simple_rhcrit > 0 ) then + used = send_data ( id_simple_rhcrit, simple_rhcrit*100.0, Time) + endif + + end subroutine output_cloud_diags From 4af75a9781c24b97a8eea72c2adeba820dfba580 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 11:24:16 +0000 Subject: [PATCH 064/304] Change to cloud layer will have no science impact but easier to understand logic --- src/atmos_param/socrates/interface/set_dimen.F90 | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index 6cf8eeac8..01d9aca75 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -61,10 +61,12 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & dimen%nd_subcol_gen = cld_subcol_gen dimen%nd_subcol_req = cld_subcol_req -dimen%id_cloud_top = dimen%nd_layer + 1 - n_cloud_layer +dimen%id_cloud_top = dimen%nd_layer + 1 - n_cloud_layer !ie TOA IF (control%l_cloud) THEN - dimen%nd_layer_clr = MAX(dimen%id_cloud_top - 1, dimen%nd_layer) - ! MAX(dimen%id_cloud_top - 1, 1) + ! this gives the allocate the full column for radiation + ! rather than the layers over which cloud is present + dimen%nd_layer_clr = dimen%nd_layer + ELSE dimen%nd_layer_clr = dimen%nd_layer END IF From 51fb7b91bbd6e4d7543727645b3b9c1e6b11807a Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 12:04:20 +0000 Subject: [PATCH 065/304] qsat is causing very large RH values. Debugging --- exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py | 2 +- src/atmos_param/cloud_simple/cloud_simple.F90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 2803f3100..10afc714b 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -52,7 +52,7 @@ diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) diag.add_field('socrates', 'soc_olr', time_avg=True) diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'cf', time_avg=True) diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index ffcae1385..e1e57b04b 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -123,7 +123,7 @@ subroutine cloud_simple(p_half, p_full, Time, & 'cloud_simple_init has not been called.', FATAL) ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! - call compute_qs(temp, p_full, qs, es_over_liq_and_ice=.true.) !qs=qsat in um + call compute_qs(temp, p_full, qs) !qs=qsat in um k_surf = size(temp, 3) From 27fc0615bee70410722b08d27a9803245755d8d5 Mon Sep 17 00:00:00 2001 From: sit23 Date: Thu, 6 Dec 2018 12:09:20 +0000 Subject: [PATCH 066/304] Updated experiment. --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 10afc714b..8b6a36f79 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -37,6 +37,7 @@ diag.add_field('dynamics', 'bk') diag.add_field('dynamics', 'pk') diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) @@ -94,7 +95,7 @@ 'chunk_size': 16, 'use_pressure_interp_for_half_levels':False, 'tidally_locked':False, - 'sol_day':90 + 'solday':90 }, 'idealized_moist_phys_nml': { 'do_damping': True, @@ -207,7 +208,7 @@ if __name__=="__main__": cb.compile(debug=False) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) - for i in range(2,121): + for i in range(2,125): exp.run(i, num_cores=NCORES) From 17454646dd74fa08bceb30948d8c7c131ab8ce44 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 15:35:26 +0000 Subject: [PATCH 067/304] Adding comments. No science changes --- src/atmos_param/cloud_simple/cloud_simple.F90 | 27 +++++++------------ 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index e1e57b04b..b27ba5788 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -116,14 +116,12 @@ subroutine cloud_simple(p_half, p_full, Time, & logical :: es_over_liq_and_ice - real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging - !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! - call compute_qs(temp, p_full, qs) !qs=qsat in um + call compute_qs(temp, p_full, qs) k_surf = size(temp, 3) @@ -131,7 +129,9 @@ subroutine cloud_simple(p_half, p_full, Time, & do j=1, size(temp, 2) do k=1, size(temp, 3) - !caluclate the frac_liq + ! caluclate the liquid fraction, effective radius, critical RH for + ! the simple cloud scheme and cloud fraction. + ! rh_in_cf is an output diagnostic only for debugging call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) @@ -166,6 +166,7 @@ subroutine calc_liq_frac(temp, frac_liq) end subroutine calc_liq_frac subroutine calc_reff(frac_liq, reff_rad) + ! the effective cloud radius is bounded between 10 and 20 microns real, intent(in) :: frac_liq real, intent(out) :: reff_rad @@ -175,7 +176,7 @@ subroutine calc_reff(frac_liq, reff_rad) end subroutine calc_reff subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - > p_layer_centres - + !get the RH needed as a threshold for the cloud fraction calc. real, intent(in) :: p_full, p_surf real, intent(out) :: simple_rhcrit @@ -209,10 +210,9 @@ subroutine calc_cf (q_hum, qsat, simple_rhcrit, cf, rh) cf = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) - ! include simple convective cloud fraction where present - + ! include simple convective cloud fraction where present (not currenly used) cca = 0.0 ! no convective cloud fraction is calculated - ! left in for fture use + ! left in for future use if (cca > 0.0) then cf = MAX( simple_cca, cf ) @@ -222,7 +222,7 @@ subroutine calc_cf (q_hum, qsat, simple_rhcrit, cf, rh) end subroutine calc_cf subroutine calc_qcl_rad(p_full, cf, qcl_rad) - ! calculate water content + ! calculate cloud water content real , intent(in) :: p_full, cf real , intent(out) :: qcl_rad @@ -238,8 +238,6 @@ subroutine calc_qcl_rad(p_full, cf, qcl_rad) end subroutine calc_qcl_rad - - subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time) real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit @@ -272,16 +270,11 @@ subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_ used = send_data ( id_simple_rhcrit, simple_rhcrit*100.0, Time) endif - - end subroutine output_cloud_diags - !----------------------------------------------- - - subroutine cloud_simple_end () - ! do we deallocate anything? + ! If alloocated are added in init then deallocate them here. end subroutine cloud_simple_end From 437a333fca3e613059a98b4305ed716ba9835656 Mon Sep 17 00:00:00 2001 From: sit23 Date: Thu, 6 Dec 2018 15:48:09 +0000 Subject: [PATCH 068/304] Made some changes to socrates cloud test experiment. --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 8b6a36f79..f4500f04e 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -62,8 +62,8 @@ # additional output options commented out -#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_flux_sw', time_avg=True) #diag.add_field('socrates', 'soc_co2', time_avg=True) #diag.add_field('socrates', 'soc_ozone', time_avg=True) #diag.add_field('socrates', 'soc_coszen', time_avg=True) @@ -148,7 +148,7 @@ 'prescribe_initial_dist':True, 'evaporation':True, 'depth': 2.5, #Depth of mixed layer used - 'albedo_value': 0.38, #Albedo value used + 'albedo_value': 0.2, #Albedo value used }, 'qe_moist_convection_nml': { @@ -210,5 +210,5 @@ cb.compile(debug=False) exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) - for i in range(2,125): + for i in range(2,171): exp.run(i, num_cores=NCORES) From e02eb308d28226d1cfc52ab327c60e4a8cc18c37 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 14 Dec 2018 10:25:34 +0000 Subject: [PATCH 069/304] New test case with land and specified ssts. --- ...es_aquaplanet_with_cloud_amip_with_topo.py | 234 ++++++++++++++++++ .../scripts/run_plevel.py | 14 +- 2 files changed, 242 insertions(+), 6 deletions(-) create mode 100644 exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py new file mode 100644 index 000000000..0c88efd1d --- /dev/null +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py @@ -0,0 +1,234 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo_with_land', codebase=cb) +exp.clear_rundir() + +inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), + os.path.join(base_dir,'input/sst_clim_amip.nc'), os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Tell model which diagnostics to write +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf', time_avg=True) +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) + +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('cloud_simple', 'cf', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) +diag.add_field('mixed_layer', 'albedo', time_avg=True) + + +# additional output options commented out +diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_co2', time_avg=True) +#diag.add_field('socrates', 'soc_ozone', time_avg=True) +#diag.add_field('socrates', 'soc_coszen', time_avg=True) +#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) + +exp.diag_table = diag +exp.inputfiles = inputfiles + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False, + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True, + 'land_option' : 'input', + 'land_file_name' : 'INPUT/era_land_t42.nc', + 'land_roughness_prefactor' :10.0, + }, + + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3 + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 20.0, #Depth of mixed layer used + 'albedo_value': 0.2, #Albedo value used + 'land_option': 'input', #Tell mixed layer to get land mask from input file + 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. + 'albedo_value': 0.1, #Ocean albedo value + 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land + 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes + 'do_read_sst' : True, #Read in sst values from input file + 'do_sc_sst' : True, #Do specified ssts (need both to be true) + 'sst_file' : 'sst_clim_amip', #Set name of sst input file + 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03, + 'ocean_topog_smoothing': 0.8 + }, + + 'spectral_init_cond_nml':{ + 'topog_file_name': 'era_land_t42.nc', + 'topography_option': 'input' + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) + + for i in range(2,241): + exp.run(i, num_cores=NCORES) diff --git a/postprocessing/plevel_interpolation/scripts/run_plevel.py b/postprocessing/plevel_interpolation/scripts/run_plevel.py index 294ecb53a..5a04db3c1 100644 --- a/postprocessing/plevel_interpolation/scripts/run_plevel.py +++ b/postprocessing/plevel_interpolation/scripts/run_plevel.py @@ -7,11 +7,11 @@ import subprocess start_time=time.time() -base_dir='/scratch/sit204/Data_2013/' -exp_name_list = ['no_ice_flux_lhe_exps_q_flux_hadgem_anoms_3'] +base_dir='/scratch/sit204/data_isca/' +exp_name_list = ['soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo'] avg_or_daily_list=['monthly'] -start_file=287 -end_file=288 +start_file=96 +end_file=120 nfiles=(end_file-start_file)+1 do_extra_averaging=False #If true, then 6hourly data is averaged into daily data using cdo @@ -66,10 +66,12 @@ number_prefix='' - if n+start_file < 100: + if n+start_file < 1000: number_prefix='0' - if n+start_file < 10: + if n+start_file < 100: number_prefix='00' + if n+start_file < 10: + number_prefix='000' nc_file_in = base_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+'.nc' nc_file_out = out_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+file_suffix+'.nc' From 38910fdb7927697edf3df971c815a5b71e4412c1 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 28 Mar 2019 09:27:12 +0000 Subject: [PATCH 070/304] Adding diagnostics for clear sky in order to do CRE calculation. --- .../socrates_aquaplanet_with_cloud.py | 31 ++- .../socrates/interface/socrates_calc.F90 | 22 +- .../socrates/interface/socrates_interface.F90 | 242 +++++++++++++++--- 3 files changed, 248 insertions(+), 47 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index f4500f04e..f3c189127 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 16 +NCORES = 8 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -46,13 +46,30 @@ diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) -diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +#temperature tendency - units are K/s +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates + +#net (up) and down surface fluxes diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) +#net (up) TOA and downard fluxes diag.add_field('socrates', 'soc_olr', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) + +#clear sky fluxes +diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_olr_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down_clear', time_avg=True) + diag.add_field('cloud_simple', 'cf', time_avg=True) diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) @@ -208,7 +225,7 @@ if __name__=="__main__": cb.compile(debug=False) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) - for i in range(2,171): - exp.run(i, num_cores=NCORES) +# for i in range(2,171): +# exp.run(i, num_cores=NCORES) diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index 0fd98b578..f50910a25 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -17,7 +17,7 @@ module socrates_calc_mod contains -! ================================================================================== +! ============================================================================== @@ -25,7 +25,7 @@ module socrates_calc_mod ! Set up the call to the Socrates radiation scheme ! ----------------------------------------------------------------------------- !DIAG Added Time -subroutine socrates_calc(Time_diag,control, spectrum, & +subroutine socrates_calc(Time_diag,control, spectrum, & n_profile, n_layer, n_cloud_layer, n_aer_mode, & cld_subcol_gen, cld_subcol_req, & p_layer, t_layer, t_layer_boundaries, d_mass, density, & @@ -34,7 +34,9 @@ subroutine socrates_calc(Time_diag,control, spectrum, l_planet_grey_surface, planet_albedo, planet_emissivity, & layer_heat_capacity, & cld_frac, reff_rad, mmr_cl_rad, & - flux_direct, flux_down, flux_up, heating_rate, spectral_olr) + flux_direct, flux_down, flux_up, & + flux_down_clear, flux_up_clear, & + heating_rate, spectral_olr) use rad_pcf use def_control, only: StrCtrl @@ -126,9 +128,11 @@ subroutine socrates_calc(Time_diag,control, spectrum, real(r_def), intent(out) :: flux_direct(n_profile, 0:n_layer) ! Direct (unscattered) downwards flux (Wm-2) -real(r_def), intent(out) :: flux_down(n_profile, 0:n_layer) +real(r_def), intent(out) :: flux_down(n_profile, 0:n_layer), & + flux_down_clear(n_profile, 0:n_layer) ! Downwards flux (Wm-2) -real(r_def), intent(out) :: flux_up(n_profile, 0:n_layer) +real(r_def), intent(out) :: flux_up(n_profile, 0:n_layer), & + flux_up_clear(n_profile, 0:n_layer) ! Upwards flux (Wm-2) real(r_def), intent(out) :: heating_rate(n_profile, n_layer) ! Heating rate (Ks-1) @@ -205,9 +209,11 @@ subroutine socrates_calc(Time_diag,control, spectrum, do l=1, n_profile do i=0, n_layer - flux_direct(l, i) = radout%flux_direct(l, i, 1) - flux_down(l, i) = radout%flux_down(l, i, 1) - flux_up(l, i) = radout%flux_up(l, i, 1) + flux_direct(l, i) = radout%flux_direct(l, i, 1) + flux_down(l, i) = radout%flux_down(l, i, 1) + flux_down_clear(l, i) = radout%flux_down_clear(l, i, 1) + flux_up(l, i) = radout%flux_up(l, i, 1) + flux_up_clear(l, i) = radout%flux_up_clear(l, i, 1) end do if (present(spectral_olr)) then spectral_olr(l,:) = radout%flux_up_clear_band(l,0,:) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 5a29bbd50..aa658aadd 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -56,9 +56,18 @@ MODULE socrates_interface_mod INTEGER :: id_soc_tdt_sw, id_soc_tdt_lw, id_soc_tdt_rad INTEGER :: id_soc_surf_flux_lw, id_soc_surf_flux_sw INTEGER :: id_soc_surf_flux_lw_down, id_soc_surf_flux_sw_down + + INTEGER :: id_soc_surf_flux_lw_clear, id_soc_surf_flux_sw_clear + INTEGER :: id_soc_surf_flux_lw_down_clear, id_soc_surf_flux_sw_down_clear + INTEGER :: id_soc_flux_lw, id_soc_flux_sw + INTEGER :: id_soc_olr, id_soc_toa_sw + INTEGER :: id_soc_olr_clear, id_soc_toa_sw_clear + INTEGER :: id_soc_toa_sw_down + INTEGER :: id_soc_toa_sw_down_clear + INTEGER :: id_soc_ozone, id_soc_co2, id_soc_coszen INTEGER :: n_soc_bands_lw, n_soc_bands_sw INTEGER :: n_soc_bands_lw_hires, n_soc_bands_sw_hires @@ -72,9 +81,12 @@ MODULE socrates_interface_mod REAL(r_def), allocatable, dimension(:,:,:) :: tdt_soc_sw_store, tdt_soc_lw_store REAL(r_def), allocatable, dimension(:,:,:) :: thd_sw_flux_net_store, thd_lw_flux_net_store REAL(r_def), allocatable, dimension(:,:,:) :: thd_co2_store, thd_ozone_store - REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_store, surf_lw_down_store, surf_lw_net_store, & + REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_store, surf_lw_down_store, surf_lw_net_store, surf_lw_net_store, & surf_sw_down_store, toa_sw_down_store, & toa_sw_store, olr_store, coszen_store + REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_clear_store, surf_sw_down_clear_store, & + surf_lw_down_clear_store, surf_lw_net_clear_store, & + toa_sw_clear_store, olr_clear_store, toa_sw_down_clear_store REAL(r_def), allocatable, dimension(:,:,:) :: outputted_soc_spectral_olr, spectral_olr_store REAL(r_def), allocatable, dimension(:) :: soc_bins_lw, soc_bins_sw @@ -264,31 +276,66 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb 'socrates LW surface flux down', & 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_lw_clear = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_clear', axes(1:2), Time, & + 'socrates Net LW surface flux (up) clear sky', & + 'watts/m2', missing_value=missing_value ) + + id_soc_surf_flux_lw_down_clear = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_down_clear', axes(1:2), Time, & + 'socrates LW surface flux down clear sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_sw = & register_diag_field ( soc_mod_name, 'soc_surf_flux_sw', axes(1:2), Time, & 'socrates Net SW surface flux (down)', & 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_sw_clear = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_sw_clear', axes(1:2), Time, & + 'socrates Net SW surface flux (down) clear sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_sw_down = & register_diag_field ( soc_mod_name, 'soc_surf_flux_sw_down', axes(1:2), Time, & 'socrates SW surface flux down', & 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_sw_down_clear = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_sw_down_clear', axes(1:2), Time, & + 'socrates SW surface flux down clear sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_olr = & register_diag_field ( soc_mod_name, 'soc_olr', axes(1:2), Time, & 'socrates TOA LW flux (up)', & 'watts/m2', missing_value=missing_value ) + id_soc_olr_clear = & + register_diag_field ( soc_mod_name, 'soc_olr_clear', axes(1:2), Time, & + 'socrates TOA LW flux (up) clear-sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_toa_sw = & register_diag_field ( soc_mod_name, 'soc_toa_sw', axes(1:2), Time, & 'socrates Net TOA SW flux (down)', & 'watts/m2', missing_value=missing_value ) + id_soc_toa_sw_clear = & + register_diag_field ( soc_mod_name, 'soc_toa_sw_clear', axes(1:2), Time, & + 'socrates Net TOA SW flux (down) clear', & + 'watts/m2', missing_value=missing_value ) + id_soc_toa_sw_down = & register_diag_field ( soc_mod_name, 'soc_toa_sw_down', axes(1:2), Time, & 'socrates TOA SW flux down', & 'watts/m2', missing_value=missing_value ) + id_soc_toa_sw_down_clear = & + register_diag_field ( soc_mod_name, 'soc_toa_sw_down_clear', axes(1:2), Time, & + 'socrates TOA SW flux down clear sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_flux_lw = & register_diag_field ( soc_mod_name, 'soc_flux_lw', (/axes(1),axes(2),axes(4)/), Time, & 'socrates Net LW flux (up)', & @@ -351,10 +398,6 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb allocate(surf_lw_down_store(size(lonb,1)-1, size(latb,2)-1)) ! only required for output - if (id_soc_surf_flux_lw > 0) then - allocate(surf_lw_net_store(size(lonb,1)-1, size(latb,2)-1)) - endif - if (id_soc_flux_lw > 0) then allocate(thd_lw_flux_net_store(size(lonb,1)-1, size(latb,2)-1, num_levels+1)) endif @@ -363,20 +406,47 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb allocate(thd_sw_flux_net_store(size(lonb,1)-1, size(latb,2)-1, num_levels+1)) endif + if (id_soc_surf_flux_sw_clear > 0) then + allocate(net_surf_sw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif + if (id_soc_surf_flux_lw_down_clear > 0) then + allocate(surf_lw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif + + !surface + if (id_soc_surf_flux_lw > 0) then + allocate(surf_lw_net_store(size(lonb,1)-1, size(latb,2)-1)) + endif + if (id_soc_surf_flux_lw_clear > 0) then + allocate(surf_lw_net_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif if (id_soc_surf_flux_sw_down > 0) then allocate(surf_sw_down_store(size(lonb,1)-1, size(latb,2)-1)) endif + if (id_soc_surf_flux_sw_down_clear > 0) then + allocate(surf_sw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif if (id_soc_olr > 0) then allocate(olr_store(size(lonb,1)-1, size(latb,2)-1)) endif + if (id_soc_olr_clear > 0) then + allocate(olr_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif if (id_soc_toa_sw > 0) then allocate(toa_sw_store(size(lonb,1)-1, size(latb,2)-1)) endif + if (id_soc_toa_sw_clear > 0) then + allocate(toa_sw_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif if (id_soc_toa_sw_down > 0) then allocate(toa_sw_down_store(size(lonb,1)-1, size(latb,2)-1)) endif + if (id_soc_toa_sw_down_clear > 0) then + allocate(toa_sw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif + if (id_soc_coszen > 0) then allocate(coszen_store(size(lonb,1)-1, size(latb,2)-1)) endif @@ -437,6 +507,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & fms_coszen, fms_rrsun, n_profile, n_layer, & fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & output_heating_rate, output_flux_down, output_flux_up, & + output_flux_down_clear, output_flux_up_clear, & do_cloud_simple, & !optionals output_soc_spectral_olr, output_flux_direct, & @@ -484,8 +555,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & ! Output arrays real(r_def), intent(out) :: output_heating_rate(:,:,:) - real(r_def), intent(out) :: output_flux_up(:,:,:) - real(r_def), intent(out) :: output_flux_down(:,:,:) + real(r_def), intent(out) :: output_flux_up(:,:,:), output_flux_up_clear(:,:,:) + real(r_def), intent(out) :: output_flux_down(:,:,:), output_flux_down_clear(:,:,:) real(r_def), intent(out), optional :: output_flux_direct(:,:,:) @@ -504,7 +575,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad real(r_def), dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & - soc_flux_down, soc_flux_up, z_half_reshaped + soc_flux_down, soc_flux_up, z_half_reshaped, & + soc_flux_down_clear, soc_flux_up_clear real(r_def), dimension(n_profile) :: input_t_surf, input_cos_zenith_angle, input_solar_irrad, & input_orog_corr, input_planet_albedo @@ -672,11 +744,13 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & - input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & - soc_flux_down(idx_chunk_start:idx_chunk_end,:), & - soc_flux_up(idx_chunk_start:idx_chunk_end,:), & - soc_heating_rate(idx_chunk_start:idx_chunk_end,:), & + soc_flux_down(idx_chunk_start:idx_chunk_end,:), & + soc_flux_up(idx_chunk_start:idx_chunk_end,:), & + soc_flux_down_clear(idx_chunk_start:idx_chunk_end,:), & + soc_flux_up_clear(idx_chunk_start:idx_chunk_end,:), & + soc_heating_rate(idx_chunk_start:idx_chunk_end,:), & soc_spectral_olr(idx_chunk_start:idx_chunk_end,:)) else @@ -701,10 +775,12 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & - input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & - soc_flux_down(idx_chunk_start:idx_chunk_end,:), & - soc_flux_up(idx_chunk_start:idx_chunk_end,:), & + soc_flux_down(idx_chunk_start:idx_chunk_end,:), & + soc_flux_up(idx_chunk_start:idx_chunk_end,:), & + soc_flux_down_clear(idx_chunk_start:idx_chunk_end,:), & + soc_flux_up_clear(idx_chunk_start:idx_chunk_end,:), & soc_heating_rate(idx_chunk_start:idx_chunk_end,:)) endif @@ -714,6 +790,9 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & output_flux_up(:,:,:) = reshape(soc_flux_up(:,:),(/si,sj,sk+1 /)) output_flux_down(:,:,:) = reshape(soc_flux_down(:,:),(/si,sj,sk+1 /)) + output_flux_up_clear(:,:,:) = reshape(soc_flux_up_clear(:,:),(/si,sj,sk+1 /)) + output_flux_down_clear(:,:,:) = reshape(soc_flux_down_clear(:,:),(/si,sj,sk+1 /)) + if(present(output_flux_direct)) then output_flux_direct(:,:,:) = reshape(soc_flux_direct(:,:),(/si,sj,sk+1 /)) endif @@ -740,7 +819,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real, intent(in), dimension(:,:,:) :: temp_in, p_full_in, q_in, z_full_in real, intent(in), dimension(:,:,:) :: p_half_in, z_half_in real, intent(inout), dimension(:,:,:) :: temp_tend - real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down + real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down real, intent(in) :: delta_t logical, intent(in) :: do_cloud_simple real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad @@ -749,12 +828,19 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real(r_def), dimension(size(temp_in,1), size(temp_in,2)) :: t_surf_for_soc, rad_lat_soc, rad_lon_soc, albedo_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, z_full_soc, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc - real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, z_half_soc,output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, & + z_half_soc,output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up, & + output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear, output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear logical :: soc_lw_mode, used integer :: seconds, days, year_in_s real :: r_seconds, r_days, r_total_seconds, frac_of_day, frac_of_year, gmt, time_since_ae, rrsun, dt_rad_radians, day_in_s, r_solday, r_dt_rad_avg real, dimension(size(temp_in,1), size(temp_in,2)) :: coszen, fracsun, surf_lw_net, olr, toa_sw, p2, toa_sw_down, surf_sw_down + + real, dimension(size(temp_in,1), size(temp_in,2)) :: olr_clear, toa_sw_clear, toa_sw_down_clear + real, dimension(size(temp_in,1), size(temp_in,2)) :: surf_lw_down_clear, surf_lw_net_clear, & + surf_sw_down_clear, net_surf_sw_down_clear + real, dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: ozone_in, co2_in real, dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: thd_sw_flux_net, thd_lw_flux_net type(time_type) :: Time_loc @@ -778,14 +864,25 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf surf_lw_down = real(surf_lw_down_store) !only required for output + if (id_soc_surf_flux_sw_clear > 0) then + net_surf_sw_down_clear = net_surf_sw_down_clear_store + endif + + if (id_soc_surf_flux_lw_down_clear > 0) then + surf_lw_down_clear = surf_lw_down_clear_store + endif + if (id_soc_surf_flux_lw > 0) then surf_lw_net = real(surf_lw_net_store) endif - + + if (id_soc_surf_flux_lw_clear > 0) then + surf_lw_net_clear = surf_lw_net_clear_store + endif + if (id_soc_flux_lw > 0) then thd_lw_flux_net = thd_lw_flux_net_store endif - if (id_soc_flux_sw > 0) then thd_sw_flux_net = thd_sw_flux_net_store endif @@ -793,14 +890,32 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if (id_soc_surf_flux_sw_down > 0) then surf_sw_down = surf_sw_down_store endif + if (id_soc_surf_flux_sw_down_clear > 0) then + surf_sw_down_clear = surf_sw_down_clear_store + endif if (id_soc_olr > 0) then olr = olr_store endif + if (id_soc_olr_clear > 0) then + olr_clear = olr_clear_store + endif + if (id_soc_toa_sw > 0) then toa_sw = toa_sw_store endif + if (id_soc_toa_sw_clear > 0) then + toa_sw_clear = toa_sw_clear_store + endif + + if (id_soc_toa_sw_down > 0) then + toa_sw_down = toa_sw_down_store + endif + + if (id_soc_toa_sw_down_clear > 0) then + toa_sw_down_clear = toa_sw_down_clear_store + endif if (id_soc_toa_sw_down > 0) then toa_sw_down = toa_sw_down_store @@ -827,10 +942,14 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf thd_sw_flux_net = 0. thd_lw_flux_net = 0. net_surf_sw_down = 0. + surf_sw_down = 0. surf_lw_down = 0. surf_lw_net = 0. toa_sw = 0. + toa_sw_down = 0. olr = 0. + olr_clear = 0. + coszen = 0. ozone_in = 0. co2_in = 0. @@ -841,7 +960,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf output_heating_rate_total = output_heating_rate_sw +output_heating_rate_lw ! Send diagnostics - if(id_soc_tdt_lw > 0) then + if(id_soc_tdt_lw > 0) then !heating rate in (Ks-1) used = send_data ( id_soc_tdt_lw, output_heating_rate_lw, Time_diag) endif if(id_soc_tdt_sw > 0) then @@ -853,24 +972,45 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(id_soc_surf_flux_lw > 0) then used = send_data ( id_soc_surf_flux_lw, surf_lw_net, Time_diag) endif + if(id_soc_surf_flux_lw_clear > 0) then + used = send_data ( id_soc_surf_flux_lw_clear, surf_lw_net_clear, Time_diag) + endif if(id_soc_surf_flux_lw_down > 0) then used = send_data ( id_soc_surf_flux_lw_down, surf_lw_down, Time_diag) endif + if(id_soc_surf_flux_lw_down_clear > 0) then + used = send_data ( id_soc_surf_flux_lw_down_clear, surf_lw_down_clear, Time_diag) + endif if(id_soc_surf_flux_sw > 0) then used = send_data ( id_soc_surf_flux_sw, net_surf_sw_down, Time_diag) endif + if(id_soc_surf_flux_sw_clear > 0) then + used = send_data ( id_soc_surf_flux_sw_clear, net_surf_sw_down_clear, Time_diag) + endif if(id_soc_surf_flux_sw_down > 0) then used = send_data ( id_soc_surf_flux_sw_down, surf_sw_down, Time_diag) endif + if(id_soc_surf_flux_sw_down_clear > 0) then + used = send_data ( id_soc_surf_flux_sw_down_clear, surf_sw_down_clear, Time_diag) + endif if(id_soc_olr > 0) then used = send_data ( id_soc_olr, olr, Time_diag) endif + if(id_soc_olr_clear > 0) then + used = send_data ( id_soc_olr_clear, olr_clear, Time_diag) + endif if(id_soc_toa_sw > 0) then used = send_data ( id_soc_toa_sw, toa_sw, Time_diag) endif + if(id_soc_toa_sw_clear > 0) then + used = send_data ( id_soc_toa_sw_clear, toa_sw_clear, Time_diag) + endif if(id_soc_toa_sw_down > 0) then used = send_data ( id_soc_toa_sw_down, toa_sw_down, Time_diag) endif + if(id_soc_toa_sw_down_clear > 0) then + used = send_data ( id_soc_toa_sw_down_clear, toa_sw_down_clear, Time_diag) + endif if(id_soc_flux_lw > 0) then used = send_data ( id_soc_flux_lw, thd_lw_flux_net, Time_diag) endif @@ -1018,6 +1158,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, & + output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear, & do_cloud_simple, & !optional outs output_soc_spectral_olr = outputted_soc_spectral_olr, & @@ -1026,9 +1167,16 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) - surf_lw_net(:,:) = REAL(output_soc_flux_lw_up(:,:,n_layer+1) - output_soc_flux_lw_down(:,:, n_layer+1)) - olr(:,:) = REAL(output_soc_flux_lw_up(:,:,1)) - thd_lw_flux_net = REAL(output_soc_flux_lw_up - output_soc_flux_lw_down) + surf_lw_down_clear(:,:) = REAL(output_soc_flux_lw_down_clear(:,:, n_layer+1)) + + surf_lw_net(:,:) = REAL(output_soc_flux_lw_up(:,:,n_layer+1) - & + output_soc_flux_lw_down(:,:, n_layer+1)) + surf_lw_net_clear(:,:) = REAL(output_soc_flux_lw_up_clear(:,:,n_layer+1) - & + output_soc_flux_lw_down_clear(:,:, n_layer+1)) + olr(:,:) = REAL(output_soc_flux_lw_up(:,:,1)) + olr_clear(:,:) = REAL(output_soc_flux_lw_up_clear(:,:,1)) + + thd_lw_flux_net = REAL(output_soc_flux_lw_up - output_soc_flux_lw_down) temp_tend(:,:,:) = temp_tend(:,:,:) + real(output_heating_rate_lw) @@ -1041,16 +1189,28 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, & + output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear, & do_cloud_simple) tg_tmp_soc = tg_tmp_soc + output_heating_rate_sw*delta_t !Output heating rate in K/s, so is a temperature tendency - net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)-output_soc_flux_sw_up(:,:,n_layer+1) ) - surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)) - toa_sw(:,:) = REAL(output_soc_flux_sw_down(:,:,1)-output_soc_flux_sw_up(:,:,1)) - toa_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:,1)) - thd_sw_flux_net = REAL(output_soc_flux_sw_up - output_soc_flux_sw_down) + net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1) - & + output_soc_flux_sw_up(:,:,n_layer+1) ) + net_surf_sw_down_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:, n_layer+1) - & + output_soc_flux_sw_up_clear(:,:,n_layer+1) ) + + toa_sw(:,:) = REAL(output_soc_flux_sw_down(:,:,1) - & + output_soc_flux_sw_up(:,:,1)) + toa_sw_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:,1) - & + output_soc_flux_sw_up_clear(:,:,1)) + + thd_sw_flux_net = REAL(output_soc_flux_sw_up - output_soc_flux_sw_down) !net sw all levels + + toa_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:,1)) + toa_sw_down_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:,1)) + surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)) + surf_sw_down_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:, n_layer+1)) temp_tend(:,:,:) = temp_tend(:,:,:) + real(output_heating_rate_sw) @@ -1064,10 +1224,6 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf surf_lw_down_store = real(surf_lw_down, kind(r_def)) ! required for output - if (id_soc_surf_flux_lw > 0) then - surf_lw_net_store = real(surf_lw_net, kind(r_def)) - endif - if (id_soc_flux_lw > 0) then thd_lw_flux_net_store = thd_lw_flux_net endif @@ -1084,10 +1240,26 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf toa_sw_down_store = toa_sw_down endif + if (id_soc_surf_flux_lw > 0) then + surf_lw_net_store = real(surf_lw_net, kind(r_def)) + endif + + if (id_soc_surf_flux_sw_down > 0) then + surf_sw_down_store = surf_sw_down + endif + + if (id_soc_toa_sw_down > 0) then + toa_sw_down_store = toa_sw_down + endif + if (id_soc_olr > 0) then olr_store = olr endif + if (id_soc_olr_clear > 0) then + olr_clear_store = olr_clear + endif + if (id_soc_toa_sw > 0) then toa_sw_store = toa_sw endif @@ -1123,6 +1295,9 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(id_soc_surf_flux_lw > 0) then used = send_data ( id_soc_surf_flux_lw, surf_lw_net, Time_diag) endif + if(id_soc_surf_flux_lw_down > 0) then + used = send_data ( id_soc_surf_flux_lw_down, surf_lw_down, Time_diag) + endif if(id_soc_surf_flux_sw > 0) then used = send_data ( id_soc_surf_flux_sw, net_surf_sw_down, Time_diag) endif @@ -1132,6 +1307,9 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(id_soc_olr > 0) then used = send_data ( id_soc_olr, olr, Time_diag) endif + if(id_soc_olr_clear > 0) then + used = send_data ( id_soc_olr_clear, olr_clear, Time_diag) + endif if(id_soc_toa_sw > 0) then used = send_data ( id_soc_toa_sw, toa_sw, Time_diag) endif From 1dc1b41e9745b88e43e57b8e54cb8430e2ab68c1 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 28 Mar 2019 13:40:55 +0000 Subject: [PATCH 071/304] Implement protocol 2 for spookie-2 and debugging clear sky diagnostics --- .../socrates_aquaplanet_with_cloud.py | 10 +- src/atmos_param/cloud_simple/cloud_simple.F90 | 168 +++++++++++++----- .../socrates/interface/socrates_calc.F90 | 16 +- .../socrates/interface/socrates_interface.F90 | 71 +++++++- .../driver/solo/idealized_moist_phys.F90 | 8 +- 5 files changed, 203 insertions(+), 70 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index f3c189127..3e8e3813d 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 8 +NCORES = 16 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -74,13 +74,13 @@ diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) -diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +#diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_min', time_avg=True) diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) - # additional output options commented out -diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) #diag.add_field('socrates', 'soc_co2', time_avg=True) #diag.add_field('socrates', 'soc_ozone', time_avg=True) #diag.add_field('socrates', 'soc_coszen', time_avg=True) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index b27ba5788..b51cc84fe 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -17,19 +17,39 @@ module cloud_simple_mod logical :: do_init = .true. ! Check if init needs to be run real :: simple_cca = 0.0 - real :: rhcsfc = 0.95 - real :: rhc700 = 0.7 - real :: rhc200 = 0.3 + + ! Critical RH (fraction) values - spookie protocol 1 only + real :: rhc_sfc = 0.95 + real :: rhc_base = 0.7 + real :: rhc_top = 0.3 + ! real :: rhmsfc = 0.95 real :: rhm700 = 0.7 real :: rhm200 = 0.3 - namelist /cloud_simple_nml/ simple_cca, rhcsfc, rhc700, rhc200, & - rhmsfc, rhm700, rhm200 + ! Critical RH (fraction) values - spookie protocol 2 only + real :: rh_min_top = 0.9 + real :: rh_min_sfc = 1.0 + real :: rh_min_base = 0.8 + real :: rh_max_top = 1.0 + real :: rh_max_sfc = 1.0 + real :: rh_max_base = 1.0 + + ! Pressure (Pa.) at cloud bottom and top (very approx) + real :: p_base = 70000. + real :: p_top = 20000. + + integer :: spookie_protocol = 2 + + namelist /cloud_simple_nml/ simple_cca, rhc_sfc, rhc_base, rhc_top, & + rhmsfc, rhm700, rhm200, & + rh_min_top, rh_min_sfc, rh_min_base, & + rh_max_top, rh_max_sfc, rh_max_base + real :: zerodegc = 273.15 - integer :: id_cf, id_reff_rad, id_frac_liq, id_qcl_rad, id_rh_in_cf, id_simple_rhcrit - + integer :: id_cf, id_reff_rad, id_frac_liq, id_qcl_rad, id_rh_in_cf, & + id_simple_rhcrit, id_rh_min character(len=14), parameter :: mod_name_cld = "cloud_simple" @@ -86,11 +106,13 @@ subroutine cloud_simple_init (axes, Time) id_simple_rhcrit = & register_diag_field ( mod_name_cld, 'simple_rhcrit', axes(1:3), Time, & - 'RH as a percent', & + 'RH as a percent for spookie protocol 1', & '%') - - + id_rh_min = & + register_diag_field ( mod_name_cld, 'rh_min', axes(1:3), Time, & + 'RH as a percent for spookie protocol 2', & + '%') do_init = .false. !initialisation completed @@ -102,14 +124,14 @@ end subroutine cloud_simple_init subroutine cloud_simple(p_half, p_full, Time, & temp, q_hum, & ! outs - cf, reff_rad, qcl_rad ) + cf, cca, reff_rad, qcl_rad) real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half type(time_type) , intent(in) :: Time - real , intent(out), dimension(:,:,:) :: cf, reff_rad, qcl_rad + real , intent(out), dimension(:,:,:) :: cf, reff_rad, qcl_rad, cca - real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq, rh_in_cf, simple_rhcrit + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq, rh_in_cf, simple_rhcrit, rh_min, rh_max integer :: i, j, k, k_surf @@ -133,16 +155,26 @@ subroutine cloud_simple(p_half, p_full, Time, & ! the simple cloud scheme and cloud fraction. ! rh_in_cf is an output diagnostic only for debugging call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) + call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) - call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) - call calc_cf(q_hum(i,j,k), qs(i,j,k), simple_rhcrit(i,j,k), cf(i,j,k),rh_in_cf(i,j,k)) - call calc_qcl_rad(p_full(i,j,k), cf(i,j,k), qcl_rad(i,j,k) ) + + if (spookie_protocol .eq. 1) then + call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) + else + call calc_rh_min_max(p_full(i,j,k), p_full(i,j,k_surf),rh_min(i,j,k), rh_max(i,j,k)) + endif + + call calc_cf(q_hum(i,j,k), qs(i,j,k), cf(i,j,k), cca(i,j,k), rh_in_cf(i,j,k), & + simple_rhcrit = simple_rhcrit(i,j,k), & + rh_min = rh_min(i,j,k), rh_max = rh_max(i,j,k) ) + + call calc_qcl_rad(p_full(i,j,k), cf(i,j,k), temp(i,j,k), qcl_rad(i,j,k) ) end do end do end do !save some diagnotics - call output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time ) + call output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, rh_min, Time ) end subroutine cloud_simple @@ -176,71 +208,111 @@ subroutine calc_reff(frac_liq, reff_rad) end subroutine calc_reff subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - > p_layer_centres - !get the RH needed as a threshold for the cloud fraction calc. + ! get the RH needed as a threshold for the cloud fraction calc. + ! This is only requires for spookie_protocol=1 real, intent(in) :: p_full, p_surf real, intent(out) :: simple_rhcrit ! Calculate RHcrit as function of pressure - if (p_full > 70000.0 ) then + if (p_full > p_base ) then - simple_rhcrit = rhcsfc - ( rhcsfc - rhc700 ) * & - ( p_surf - p_full ) / ( p_surf - 70000.0 ) + simple_rhcrit = rhc_sfc - ( rhc_sfc - rhc_base ) * & + ( p_surf - p_full ) / ( p_surf - p_base ) - else if ( p_full > 20000.0 ) then + else if ( p_full > p_top ) then - simple_rhcrit = rhc700 - ( rhc700 - rhc200 ) * & - ( 70000.0 - p_full) / 50000.0 + simple_rhcrit = rhc_base - ( rhc_base - rhc_top ) * & + (p_base - p_full) / (p_base - p_top) else - simple_rhcrit = rhc200 + simple_rhcrit = rhc_top endif end subroutine calc_rhcrit - subroutine calc_cf (q_hum, qsat, simple_rhcrit, cf, rh) + subroutine calc_rh_min_max(p_full, p_surf, rh_min, rh_max) + + real, intent(in) :: p_full, p_surf + real, intent(out) :: rh_min, rh_max + + + if (p_full > p_base ) then !surface up to base + + rh_min = rh_min_sfc - ( rh_min_sfc - rh_min_base ) * ( p_surf - p_full ) / ( p_surf - p_base ) + rh_max = rh_max_sfc - ( rh_max_sfc - rh_max_base ) * ( p_surf - p_full ) / ( p_surf - p_base ) + + else if ( p_full > p_top ) then ! base up to top + + rh_min = rh_min_base - ( rh_min_base - rh_min_top ) * (p_base - p_full) / (p_base - p_top) + rh_max = rh_max_base - ( rh_max_base - rh_max_top ) * (p_base - p_full) / (p_base - p_top) + + else ! above top + + rh_min = rh_min_top + rh_max = rh_max_top + + endif + + + end subroutine calc_rh_min_max + + subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) ! Calculate LS (stratiform) cloud fraction ! as a simple linear function of RH - real, intent(in) :: q_hum, qsat, simple_rhcrit - real, intent(out) :: cf, rh - - real :: cca + real, intent(in) :: q_hum, qsat + real, intent(in), optional :: simple_rhcrit, rh_min, rh_max + + real, intent(out) :: cf, rh, cca rh = q_hum/qsat - cf = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) + if (spookie_protocol .eq. 1) then + cf = (rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) + cf = MAX( 0.0, MIN( 1.0, cf)) + + else + cf = (rh - rh_min ) / ( rh_max - rh_min ) + cf = MAX( 0.0, MIN( 1.0, cf)) + end if ! include simple convective cloud fraction where present (not currenly used) cca = 0.0 ! no convective cloud fraction is calculated - ! left in for future use + ! left in for future use if (cca > 0.0) then - cf = MAX( simple_cca, cf ) + cf = MAX( simple_cca, cf ) end if - + end subroutine calc_cf - subroutine calc_qcl_rad(p_full, cf, qcl_rad) + subroutine calc_qcl_rad(p_full, cf, temp, qcl_rad) ! calculate cloud water content - real , intent(in) :: p_full, cf - real , intent(out) :: qcl_rad + real , intent(in) :: p_full, cf, temp + real , intent(out) :: qcl_rad real :: in_cloud_qcl - - in_cloud_qcl = 3.0e-4 + & - (1.0-3.0e-4)*(p_full-20000.0)/80000.0 - - in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg - - qcl_rad = cf * in_cloud_qcl + + IF (spookie_protocol .eq. 1) THEN + ! pressure dependent in_cloud_qcl + in_cloud_qcl = 3.0e-4 + (1.0-3.0e-4)*(p_full-p_top)/80000.0 + in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg + qcl_rad = cf * in_cloud_qcl + ELSE + ! temperatue dependent in_cloud_qcl + in_cloud_qcl = MIN(0.2, 0.2 * ( temp - 220. ) / ( 280. -220. )) + in_cloud_qcl = MAX (3.0e-4, in_cloud_qcl/1000.0 ) ! convert to kg/kg + qcl_rad = cf * in_cloud_qcl + ENDIF end subroutine calc_qcl_rad - subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time) + subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, rh_min, Time) - real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit + real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf + real, intent(in), dimension(:,:,:), optional :: simple_rhcrit, rh_min type(time_type) , intent(in) :: Time @@ -270,6 +342,10 @@ subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_ used = send_data ( id_simple_rhcrit, simple_rhcrit*100.0, Time) endif + if ( id_rh_min > 0 ) then + used = send_data ( id_rh_min, rh_min*100.0, Time) + endif + end subroutine output_cloud_diags subroutine cloud_simple_end () diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index f50910a25..5474d0d5f 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -33,7 +33,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, & t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity, & layer_heat_capacity, & - cld_frac, reff_rad, mmr_cl_rad, & + cld_frac, cld_conv_frac, reff_rad, mmr_cl_rad, & flux_direct, flux_down, flux_up, & flux_down_clear, flux_up_clear, & heating_rate, spectral_olr) @@ -118,7 +118,10 @@ subroutine socrates_calc(Time_diag,control, spectrum, & ! Heat capacity of layer real(r_def), intent(in) :: cld_frac(n_profile, n_layer) -! Cloud fraction at layer centres +! Cloud fraction at layer centres for stratocumulus cloud + +real(r_def), intent(in) :: cld_conv_frac(n_profile, n_layer) +! Cloud fraction at layer centres for convective cloud real(r_def), intent(in) :: reff_rad(n_profile, n_layer) ! Cloud liquid particle radius from simple cloud scheme @@ -185,11 +188,12 @@ subroutine socrates_calc(Time_diag,control, spectrum, & zeros_cld = 0. ten_microns_cld = 1. call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & + conv_frac = cld_conv_frac,& liq_frac = cld_frac, & - ice_frac = zeros_cld, & - liq_mmr = mmr_cl_rad, & - ice_mmr = zeros_cld, & - liq_dim = reff_rad, & + ice_frac = zeros_cld, & + liq_mmr = mmr_cl_rad, & + ice_mmr = zeros_cld, & + liq_dim = reff_rad, & ice_dim = zeros_cld ) call set_aer(control, dimen, spectrum, aer, n_profile) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index aa658aadd..912ba2813 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -505,7 +505,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, & fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, & fms_coszen, fms_rrsun, n_profile, n_layer, & - fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & + fms_cld_frac, fms_cld_conv_frac, fms_reff_rad, fms_mmr_cl_rad,& output_heating_rate, output_flux_down, output_flux_up, & output_flux_down_clear, output_flux_up_clear, & do_cloud_simple, & @@ -550,6 +550,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), intent(in) :: fms_z_full(:,:,:), fms_z_half(:,:,:) real(r_def), intent(in) :: fms_rrsun real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) + real(r_def), intent(in) :: fms_cld_conv_frac(:,:,:) logical, intent(in) :: do_cloud_simple @@ -572,7 +573,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), dimension(n_profile, n_layer) :: input_p, input_t, input_mixing_ratio, & input_d_mass, input_density, input_layer_heat_capacity, & soc_heating_rate, input_o3_mixing_ratio, & - input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad + input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad, & + input_cld_conv_frac real(r_def), dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & soc_flux_down, soc_flux_up, z_half_reshaped, & @@ -619,6 +621,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_p_level = reshape(fms_p_half(:,:,:),(/si*sj,sk+1 /)) input_cld_frac = reshape(fms_cld_frac(:,:,:),(/si*sj,sk /)) + input_cld_conv_frac = reshape(fms_cld_conv_frac(:,:,:),(/si*sj,sk /)) + input_reff_rad = reshape(fms_reff_rad(:,:,:),(/si*sj,sk /)) input_mmr_cl_rad = reshape(fms_mmr_cl_rad(:,:,:),(/si*sj,sk/)) @@ -743,6 +747,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & @@ -774,6 +779,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & @@ -806,7 +812,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & end subroutine socrates_interface subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf_in, p_full_in, p_half_in, z_full_in, z_half_in, albedo_in, & - temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple, cf_rad, reff_rad, qcl_rad) + temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple, cf_rad, cca_rad, reff_rad, qcl_rad) use astronomy_mod, only: diurnal_solar use constants_mod, only: pi, wtmco2, wtmozone, rdgas, gas_constant @@ -822,12 +828,12 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down real, intent(in) :: delta_t logical, intent(in) :: do_cloud_simple - real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad + real, intent(in), dimension(:,:,:) :: cf_rad, cca_rad, reff_rad, qcl_rad integer(i_def) :: n_profile, n_layer real(r_def), dimension(size(temp_in,1), size(temp_in,2)) :: t_surf_for_soc, rad_lat_soc, rad_lon_soc, albedo_soc - real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, z_full_soc, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, z_full_soc, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc, cld_conv_frac_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, & z_half_soc,output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up, & output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear, output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear @@ -937,19 +943,36 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf outputted_soc_spectral_olr = spectral_olr_store endif else + !all sky heating rates. output_heating_rate_sw = 0. output_heating_rate_lw = 0. + + !all sky and clear sky fluxes. thd_sw_flux_net = 0. thd_lw_flux_net = 0. + net_surf_sw_down = 0. + net_surf_sw_down_clear = 0. + surf_sw_down = 0. + surf_sw_down_clear = 0. + surf_lw_down = 0. + surf_lw_down_clear = 0. + surf_lw_net = 0. + surf_lw_net_clear = 0. + toa_sw = 0. + toa_sw_clear = 0. + toa_sw_down = 0. + toa_sw_down_clear = 0. + olr = 0. olr_clear = 0. + !Others coszen = 0. ozone_in = 0. co2_in = 0. @@ -1121,6 +1144,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(do_cloud_simple) then cld_frac_soc = REAL(cf_rad, kind(r_def)) + cld_conv_frac_soc = REAL(cca_rad, kind(r_def)) + reff_rad_soc = REAL(reff_rad, kind(r_def)) qcl_rad_soc = REAL(qcl_rad, kind(r_def)) @@ -1128,6 +1153,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf else cld_frac_soc = 0. + cld_conv_frac_soc = 0. + reff_rad_soc = 0. mmr_cl_rad_soc = 0. @@ -1156,7 +1183,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & - n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + n_profile, n_layer, cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc,& output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, & output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear, & do_cloud_simple, & @@ -1166,7 +1193,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency - surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) + surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) surf_lw_down_clear(:,:) = REAL(output_soc_flux_lw_down_clear(:,:, n_layer+1)) surf_lw_net(:,:) = REAL(output_soc_flux_lw_up(:,:,n_layer+1) - & @@ -1187,7 +1214,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & - n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + n_profile, n_layer, cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, & output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear, & do_cloud_simple) @@ -1348,7 +1375,33 @@ subroutine run_socrates_end if(do_read_ozone) call interpolator_end(o3_interp) if(do_read_co2) call interpolator_end(co2_interp) - + + DEALLOCATE(soc_bins_lw) + DEALLOCATE(soc_bins_sw) + DEALLOCATE(outputted_soc_spectral_olr) + DEALLOCATE(tdt_soc_sw_store) + DEALLOCATE(tdt_soc_lw_store) + DEALLOCATE(net_surf_sw_down_store) + DEALLOCATE(surf_lw_down_store) + + if (id_soc_flux_lw > 0) DEALLOCATE(thd_lw_flux_net_store) + if (id_soc_flux_sw > 0) DEALLOCATE(thd_sw_flux_net_store) + if (id_soc_surf_flux_sw_clear > 0) DEALLOCATE(net_surf_sw_down_clear_store) + if (id_soc_surf_flux_lw_down_clear > 0) DEALLOCATE(surf_lw_down_clear_store) + if (id_soc_surf_flux_lw > 0) DEALLOCATE(surf_lw_net_store) + if (id_soc_surf_flux_lw_clear > 0) DEALLOCATE(surf_lw_net_clear_store) + if (id_soc_surf_flux_sw_down > 0) DEALLOCATE(surf_sw_down_store) + if (id_soc_surf_flux_sw_down_clear > 0) DEALLOCATE(surf_sw_down_clear_store) + if (id_soc_olr > 0) DEALLOCATE(olr_store) + if (id_soc_olr_clear > 0) DEALLOCATE(olr_clear_store) + if (id_soc_toa_sw > 0) DEALLOCATE(toa_sw_store) + if (id_soc_toa_sw_clear > 0) DEALLOCATE(toa_sw_clear_store) + if (id_soc_toa_sw_down > 0) DEALLOCATE(toa_sw_down_store) + if (id_soc_toa_sw_down_clear > 0) DEALLOCATE(toa_sw_down_clear_store) + if (id_soc_coszen > 0) DEALLOCATE(coszen_store) + if (id_soc_ozone > 0) DEALLOCATE(thd_ozone_store) + if (id_soc_co2 > 0 ) DEALLOCATE(thd_co2_store) + if (id_soc_spectral_olr > 0) DEALLOCATE(spectral_olr_store) end subroutine run_socrates_end diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index b9815c0d8..cc25b1856 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -801,7 +801,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv ! Simple cloud scheme variabilies to pass to radiation -real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad +real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad, cca_rad real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot @@ -982,8 +982,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg tg(:,:,:,previous), & grid_tracers(:,:,:,previous,nsphum), & ! outs - - cf_rad(:,:,:), reff_rad(:,:,:), & - qcl_rad(:,:,:) & + cf_rad(:,:,:), cca_rad(:,:,:), & + reff_rad(:,:,:), qcl_rad(:,:,:) & ) endif @@ -1131,7 +1131,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg endif call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), t_surf(:,:), p_full(:,:,:,current), & - p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), reff_rad(:,:,:), & + p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), cca_rad(:,:,:), reff_rad(:,:,:), & qcl_rad(:,:,:) ) endif From 4d7a903d059d7f3e70c867cc76f9b03ba0466cc7 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 28 Mar 2019 14:27:50 +0000 Subject: [PATCH 072/304] Remove real conversions in soc_interface --- .../socrates_aquaplanet_with_cloud.py | 15 ++++----------- src/atmos_param/cloud_simple/cloud_simple.F90 | 3 +++ .../socrates/interface/socrates_interface.F90 | 4 ++-- .../socrates/interface/socrates_set_cld.F90 | 2 +- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 3e8e3813d..bc967d954 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -129,21 +129,14 @@ 'do_cloud_simple': True }, - 'cloud_simple_nml': { - 'simple_cca':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3 - }, - 'vert_turb_driver_nml': { 'do_mellor_yamada': False, # default: True 'do_diffusivity': True, # default: False 'do_simple': True, # default: False 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False + 'use_tau': False, }, - + 'diffusivity_nml': { 'do_entrain':False, 'do_simple': True, @@ -227,5 +220,5 @@ cb.compile(debug=False) exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) -# for i in range(2,171): -# exp.run(i, num_cores=NCORES) + for i in range(2,121): + exp.run(i, num_cores=NCORES) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index b51cc84fe..184923dc7 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -280,6 +280,9 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) cca = 0.0 ! no convective cloud fraction is calculated ! left in for future use + !cca can not be used in simple clouds as in read_control + ! control%i_cloud_representation = ip_cloud_ice_water + if (cca > 0.0) then cf = MAX( simple_cca, cf ) end if diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 912ba2813..38a72da7f 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -879,7 +879,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif if (id_soc_surf_flux_lw > 0) then - surf_lw_net = real(surf_lw_net_store) + surf_lw_net = surf_lw_net_store endif if (id_soc_surf_flux_lw_clear > 0) then @@ -1268,7 +1268,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif if (id_soc_surf_flux_lw > 0) then - surf_lw_net_store = real(surf_lw_net, kind(r_def)) + surf_lw_net_store = surf_lw_net endif if (id_soc_surf_flux_sw_down > 0) then diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 index 99fd4a30e..3af8423b8 100644 --- a/src/atmos_param/socrates/interface/socrates_set_cld.F90 +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -348,7 +348,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) else cld%frac_cloud(l, k, ip_cloud_type_water) = 0.0_r_def - cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_r_def + cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_r_def end if end do end do From 48d9e795d7dff0befc300aec3b5c9921eb6891b0 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 10 Apr 2019 10:44:23 +0100 Subject: [PATCH 073/304] Adding extra diagnostics to test case --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index bc967d954..389e0b898 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -39,6 +39,8 @@ diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) @@ -218,7 +220,9 @@ if __name__=="__main__": cb.compile(debug=False) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) + overwrite=False + + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) for i in range(2,121): - exp.run(i, num_cores=NCORES) + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From 896c2f59d93a2b960db392b2b2e3f8f94fade8f2 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 7 Apr 2020 13:52:29 +0100 Subject: [PATCH 074/304] Update to ignore for itcx_mip file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 4333c2fac..6393fe876 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ mima_pz.txt src/atmos_param/socrates/src/trunk* test/.cache test/results.xml +exp/itcz_mip_exp/itcz_mip_q_flux.nc From 73fb271a8d963773c30182ef0e11f23c8f249e5e Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 14 Apr 2020 10:43:15 +0100 Subject: [PATCH 075/304] Correct errors made during rebase. Code runs but needs to be checked for changes in the cloud scheme to make sure all changes survived the rebase. --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 3 +-- .../socrates_test/socrates_aquaplanet_with_cloud.py | 6 +++--- src/atmos_param/socrates/interface/socrates_config_mod.f90 | 3 +-- src/atmos_param/socrates/interface/socrates_interface.F90 | 2 +- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index c3a79572b..6d0698d6d 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -100,7 +100,6 @@ 'use_pressure_interp_for_half_levels':False, 'tidally_locked':False, #'solday': 90 - 'account_for_clouds_in_socrates': True, }, 'idealized_moist_phys_nml': { 'do_damping': True, @@ -211,4 +210,4 @@ #This will be the name of the folder that the data will appear in. exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False) for i in range(2,121): - exp.run(i, num_cores=NCORES) \ No newline at end of file + exp.run(i, num_cores=NCORES) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 389e0b898..792a8d771 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -220,9 +220,9 @@ if __name__=="__main__": cb.compile(debug=False) - overwrite=False + overwrite=True exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - for i in range(2,121): - exp.run(i, num_cores=NCORES, overwrite_data=overwrite) + #for i in range(2,121): + # exp.run(i, num_cores=NCORES, overwrite_data=overwrite) diff --git a/src/atmos_param/socrates/interface/socrates_config_mod.f90 b/src/atmos_param/socrates/interface/socrates_config_mod.f90 index 085fa5f80..a0d102d5f 100644 --- a/src/atmos_param/socrates/interface/socrates_config_mod.f90 +++ b/src/atmos_param/socrates/interface/socrates_config_mod.f90 @@ -127,6 +127,5 @@ module socrates_config_mod inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, & inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, & use_pressure_interp_for_half_levels, & - frierson_solar_rad, del_sol, del_sw, & - account_for_clouds_in_socrates + frierson_solar_rad, del_sol, del_sw end module socrates_config_mod diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 38a72da7f..587703d18 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -81,7 +81,7 @@ MODULE socrates_interface_mod REAL(r_def), allocatable, dimension(:,:,:) :: tdt_soc_sw_store, tdt_soc_lw_store REAL(r_def), allocatable, dimension(:,:,:) :: thd_sw_flux_net_store, thd_lw_flux_net_store REAL(r_def), allocatable, dimension(:,:,:) :: thd_co2_store, thd_ozone_store - REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_store, surf_lw_down_store, surf_lw_net_store, surf_lw_net_store, & + REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_store, surf_lw_down_store, surf_lw_net_store, & surf_sw_down_store, toa_sw_down_store, & toa_sw_store, olr_store, coszen_store REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_clear_store, surf_sw_down_clear_store, & From 72b3502a7367cab9f44939b43fc22392c0511dcb Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 14 Apr 2020 10:58:30 +0100 Subject: [PATCH 076/304] Resolving push/pull conflicts --- .../socrates_test/socrates_aquaplanet.py | 4 -- .../socrates_aquaplanet_with_cloud.py | 10 ---- .../socrates/interface/socrates_interface.F90 | 51 +------------------ 3 files changed, 1 insertion(+), 64 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index b78739a0f..dc1d8cf57 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -57,13 +57,9 @@ diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) #net (up) TOA and downard fluxes diag.add_field('socrates', 'soc_olr', time_avg=True) -<<<<<<< HEAD diag.add_field('socrates', 'soc_toa_sw', time_avg=True) diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) -======= -diag.add_field('socrates', 'soc_toa_sw', time_avg=True) ->>>>>>> 4d2517d99d3c46cad93915ffd20b06a38a508f60 diag.add_field('cloud_simple', 'cf_rad', time_avg=True) diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 40caf7a84..d95703e47 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -220,18 +220,8 @@ if __name__=="__main__": cb.compile(debug=False) -<<<<<<< HEAD overwrite=True - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - #for i in range(2,121): # exp.run(i, num_cores=NCORES, overwrite_data=overwrite) -======= - overwrite=False - - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - for i in range(2,121): - exp.run(i, num_cores=NCORES, overwrite_data=overwrite) ->>>>>>> 4d2517d99d3c46cad93915ffd20b06a38a508f60 diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 32e494ff6..88bde690f 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -55,7 +55,7 @@ MODULE socrates_interface_mod ! INTEGER :: id_soc_surf_spectrum_sw !not implemented yet INTEGER :: id_soc_tdt_sw, id_soc_tdt_lw, id_soc_tdt_rad INTEGER :: id_soc_surf_flux_lw, id_soc_surf_flux_sw -<<<<<<< HEAD + INTEGER :: id_soc_surf_flux_lw_down, id_soc_surf_flux_sw_down INTEGER :: id_soc_surf_flux_lw_clear, id_soc_surf_flux_sw_clear @@ -68,14 +68,6 @@ MODULE socrates_interface_mod INTEGER :: id_soc_toa_sw_down INTEGER :: id_soc_toa_sw_down_clear -======= - INTEGER :: id_soc_surf_flux_lw_clear, id_soc_surf_flux_sw_clear - INTEGER :: id_soc_surf_flux_lw_down, id_soc_surf_flux_sw_down - INTEGER :: id_soc_surf_flux_lw_down_clear, id_soc_surf_flux_sw_down_clear - INTEGER :: id_soc_flux_lw, id_soc_flux_sw - INTEGER :: id_soc_olr, id_soc_toa_sw, id_soc_olr_clear, id_soc_toa_sw_clear - INTEGER :: id_soc_toa_sw_down, id_soc_toa_sw_down_clear ->>>>>>> 4d2517d99d3c46cad93915ffd20b06a38a508f60 INTEGER :: id_soc_ozone, id_soc_co2, id_soc_coszen INTEGER :: n_soc_bands_lw, n_soc_bands_sw @@ -280,27 +272,16 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb 'socrates Net LW surface flux (up)', & 'watts/m2', missing_value=missing_value ) -<<<<<<< HEAD - id_soc_surf_flux_lw_down = & - register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_down', axes(1:2), Time, & - 'socrates LW surface flux down', & - 'watts/m2', missing_value=missing_value ) - -======= ->>>>>>> 4d2517d99d3c46cad93915ffd20b06a38a508f60 id_soc_surf_flux_lw_clear = & register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_clear', axes(1:2), Time, & 'socrates Net LW surface flux (up) clear sky', & 'watts/m2', missing_value=missing_value ) -<<<<<<< HEAD -======= id_soc_surf_flux_lw_down = & register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_down', axes(1:2), Time, & 'socrates LW surface flux down', & 'watts/m2', missing_value=missing_value ) ->>>>>>> 4d2517d99d3c46cad93915ffd20b06a38a508f60 id_soc_surf_flux_lw_down_clear = & register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_down_clear', axes(1:2), Time, & 'socrates LW surface flux down clear sky', & @@ -446,10 +427,6 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb if (id_soc_surf_flux_sw_down_clear > 0) then allocate(surf_sw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) endif -<<<<<<< HEAD - -======= ->>>>>>> 4d2517d99d3c46cad93915ffd20b06a38a508f60 if (id_soc_olr > 0) then allocate(olr_store(size(lonb,1)-1, size(latb,2)-1)) endif @@ -469,11 +446,6 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb if (id_soc_toa_sw_down_clear > 0) then allocate(toa_sw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) endif -<<<<<<< HEAD -======= - ->>>>>>> 4d2517d99d3c46cad93915ffd20b06a38a508f60 - if (id_soc_coszen > 0) then allocate(coszen_store(size(lonb,1)-1, size(latb,2)-1)) endif @@ -868,11 +840,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf logical :: soc_lw_mode, used integer :: seconds, days, year_in_s real :: r_seconds, r_days, r_total_seconds, frac_of_day, frac_of_year, gmt, time_since_ae, rrsun, dt_rad_radians, day_in_s, r_solday, r_dt_rad_avg -<<<<<<< HEAD real, dimension(size(temp_in,1), size(temp_in,2)) :: coszen, fracsun, surf_lw_net, olr, toa_sw, p2, toa_sw_down, surf_sw_down -======= - real, dimension(size(temp_in,1), size(temp_in,2)) :: coszen, fracsun, surf_lw_net, olr, toa_sw, toa_sw_down, surf_sw_down ->>>>>>> 4d2517d99d3c46cad93915ffd20b06a38a508f60 real, dimension(size(temp_in,1), size(temp_in,2)) :: olr_clear, toa_sw_clear, toa_sw_down_clear real, dimension(size(temp_in,1), size(temp_in,2)) :: surf_lw_down_clear, surf_lw_net_clear, & @@ -927,10 +895,6 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if (id_soc_surf_flux_sw_down > 0) then surf_sw_down = surf_sw_down_store endif -<<<<<<< HEAD -======= - ->>>>>>> 4d2517d99d3c46cad93915ffd20b06a38a508f60 if (id_soc_surf_flux_sw_down_clear > 0) then surf_sw_down_clear = surf_sw_down_clear_store endif @@ -957,13 +921,6 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if (id_soc_toa_sw_down_clear > 0) then toa_sw_down_clear = toa_sw_down_clear_store endif -<<<<<<< HEAD - - if (id_soc_toa_sw_down > 0) then - toa_sw_down = toa_sw_down_store - endif -======= ->>>>>>> 4d2517d99d3c46cad93915ffd20b06a38a508f60 if (id_soc_coszen > 0) then coszen = coszen_store @@ -1268,15 +1225,9 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf output_soc_flux_sw_up(:,:,1)) toa_sw_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:,1) - & output_soc_flux_sw_up_clear(:,:,1)) -<<<<<<< HEAD - - thd_sw_flux_net = REAL(output_soc_flux_sw_up - output_soc_flux_sw_down) !net sw all levels - -======= thd_sw_flux_net = REAL(output_soc_flux_sw_up - output_soc_flux_sw_down) !net sw all levels ->>>>>>> 4d2517d99d3c46cad93915ffd20b06a38a508f60 toa_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:,1)) toa_sw_down_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:,1)) From 2b4312613e495ba90dc76a24fcc55883d80a1b64 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 16:18:11 +0100 Subject: [PATCH 077/304] Add file to paths and namelist variables in test scripts --- exp/test_cases/MiMA/MiMA_test_case.py | 12 +++++++++++- exp/test_cases/socrates_test/socrates_aquaplanet.py | 11 +++++++++++ src/extra/model/isca/path_names | 1 + src/extra/model/socrates/path_names | 1 + 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 270596744..f21ba6404 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -73,7 +73,17 @@ 'do_simple': True, 'roughness_mom':3.21e-05, 'roughness_heat':3.21e-05, - 'roughness_moist':3.21e-05, + 'roughness_moist':3.21e-05, + 'do_cloud_simple': True, + }, + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3, + 'rhmsfc': 0.95, + 'rhm700': 0.7, + 'rhm200': 0.3, }, 'vert_turb_driver_nml': { diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 2a4bc775f..41b77bc33 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -108,6 +108,17 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True, + }, + + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3, + 'rhmsfc': 0.95, + 'rhm700': 0.7, + 'rhm200': 0.3, }, 'vert_turb_driver_nml': { diff --git a/src/extra/model/isca/path_names b/src/extra/model/isca/path_names index ee73b2499..eebdfd2b0 100644 --- a/src/extra/model/isca/path_names +++ b/src/extra/model/isca/path_names @@ -11,6 +11,7 @@ atmos_param/sea_esf_rad/null/rad_utilities.F90 atmos_param/shallow_conv/shallow_conv.F90 atmos_param/stable_bl_turb/stable_bl_turb.F90 atmos_param/strat_cloud/null/strat_cloud.F90 +atmos_param/cloud_simple/cloud_simple.F90 atmos_param/two_stream_gray_rad/two_stream_gray_rad.F90 atmos_param/qflux/qflux.f90 atmos_param/monin_obukhov/monin_obukhov_interfaces.h diff --git a/src/extra/model/socrates/path_names b/src/extra/model/socrates/path_names index 6cb698ede..2f4dac9eb 100644 --- a/src/extra/model/socrates/path_names +++ b/src/extra/model/socrates/path_names @@ -11,6 +11,7 @@ atmos_param/sea_esf_rad/null/rad_utilities.F90 atmos_param/shallow_conv/shallow_conv.F90 atmos_param/stable_bl_turb/stable_bl_turb.F90 atmos_param/strat_cloud/null/strat_cloud.F90 +atmos_param/cloud_simple/cloud_simple.F90 atmos_param/two_stream_gray_rad/two_stream_gray_rad.F90 atmos_param/qflux/qflux.f90 atmos_param/monin_obukhov/monin_obukhov_interfaces.h From 507a08a4b87771413fcfe3bb0136f89dab129302 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 16:18:53 +0100 Subject: [PATCH 078/304] Additions to RRTM and ideal mosist phys to use the simple cloud scheme --- .../rrtm_radiation/rrtm_radiation.f90 | 51 ++++++++++++++----- .../driver/solo/idealized_moist_phys.F90 | 28 +++++++++- 2 files changed, 64 insertions(+), 15 deletions(-) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 808d5239d..921f9034c 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -531,7 +531,10 @@ subroutine interp_temp(z_full,z_half,t, Time) end subroutine interp_temp !***************************************************************************************** !***************************************************************************************** - subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt,coszen,flux_sw,flux_lw) + subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & + albedo,q,t,t_surf_rad,tdt, & + coszen,flux_sw,flux_lw,cfa_rad,reff_rad, & + do_cloud_simple) ! ! Driver for RRTMG radiation scheme. ! Prepares all inputs, calls SW and LW radiation schemes, @@ -577,6 +580,11 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, real(kind=rb),dimension(:,:),intent(out),optional :: flux_sw,flux_lw ! surface fluxes [W/m2] ! dimension (lat x lon) ! need to have both or none! + real(kind=rb), dimension(:,:,:), intent(in) :: cfa_rad,reff_rad !cloud properties + + logical, intent(in) :: do_cloud_simple + + !--------------------------------------------------------------------------------------------------------------- ! Local variables integer k,j,i,ij,j1,i1,ij1,kend,dyofyr,seconds,days @@ -584,7 +592,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: o3f real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: co2f,co2f_temp real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: pfull,tfull,fracday& - , hr,hrc, swhr, swhrc + , hr,hrc, swhr, swhrc, cldfr, reliq, reice real(kind=rb),dimension(size(tdt,1),size(tdt,2),size(tdt,3)) :: tdt_rrtm real(kind=rb),dimension(ncols_rrt,nlay_rrt+1) :: uflx, dflx, uflxc, dflxc& ,swuflx, swdflx, swuflxc, swdflxc @@ -599,11 +607,10 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, real(kind=rb),dimension(size(q,1),size(q,2)) :: fracsun real(kind=rb),dimension(size(q,1),size(q,2)) :: p2 !mp586 addition for annual mean insolation - integer :: year_in_s + integer :: year_in_s real :: r_seconds, r_days, r_total_seconds, frac_of_day, frac_of_year, gmt, time_since_ae, rrsun, dt_rad_radians, day_in_s, r_solday, r_dt_rad_avg - ! debug integer :: indx2(2),indx(3),ii,ji,ki logical :: used @@ -828,6 +835,20 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, ! anything lower than 0.01 (about 15min) is set to zero ! where(cosz_rr < 1.e-2)cosz_rr=0. + if (do_cloud_simple) then + inflglw = 2 !RRTM responsible for calculating optical properties of clouds + liqflglw = 1 !Sets liquid water radii to be used rather than being inactive (zero is inactive) + cldfr = reshape( cfa_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) + reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) + reice = zeros !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros + else + cldfr = zeros + reliq = 10*ones + reice = 10*ones + endif + + + if(include_secondary_gases)then call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & @@ -835,13 +856,14 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, h2o , o3 , co2 , ch4_val*ones , n2o_val*ones , o2_val*ones , & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & - inflglw , iceflglw , liqflglw , & + inflglw , iceflglw , liqflglw , & ! cloud parameters - zeros , taucld , sw_zro , sw_zro , sw_zro , & - zeros , zeros , 10*ones , 10*ones , & - tauaer , zro_sw , zro_sw , zro_sw , & + cldfr, & + taucld , sw_zro , sw_zro , sw_zro , & + zeros , zeros , reice , reliq , & + tauaer , zro_sw , zro_sw , zro_sw , & ! output - swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) + swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) else call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & @@ -849,10 +871,11 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, h2o , o3 , co2 , zeros , zeros, zeros, & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & - inflglw , iceflglw , liqflglw , & + inflglw , iceflglw , liqflglw , & ! cloud parameters - zeros , taucld , sw_zro , sw_zro , sw_zro , & - zeros , zeros , 10*ones , 10*ones , & + cldfr, & + taucld , sw_zro , sw_zro , sw_zro , & + zeros , zeros , reice , reliq , & tauaer , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) @@ -884,7 +907,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, ! emissivity and cloud composition emis , inflglw , iceflglw , liqflglw , & ! cloud parameters - zeros , taucld , zeros , zeros , 10*ones, 10*ones, & + cldfr , taucld , zeros , zeros , reice, reliq, & tauaer , & ! output uflx , dflx , hr , uflxc , dflxc , hrc) @@ -897,7 +920,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt, ! emissivity and cloud composition emis , inflglw , iceflglw, liqflglw, & ! cloud parameters - zeros , taucld , zeros , zeros, 10*ones, 10*ones, & + cldfr , taucld , zeros , zeros, reice, reliq, & tauaer , & ! output uflx , dflx , hr , uflxc, dflxc , hrc) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 8115c08a2..3f315dbe0 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -18,6 +18,8 @@ module idealized_moist_phys_mod use two_stream_gray_rad_mod, only: two_stream_gray_rad_init, two_stream_gray_rad_down, two_stream_gray_rad_up, two_stream_gray_rad_end +use cloud_simple_mod, only: cloud_simple_init, cloud_simple_end, cloud_simple + use mixed_layer_mod, only: mixed_layer_init, mixed_layer, mixed_layer_end, albedo_calc use lscale_cond_mod, only: lscale_cond_init, lscale_cond, lscale_cond_end @@ -107,6 +109,9 @@ module idealized_moist_phys_mod logical :: do_bm = .false. logical :: do_ras = .false. +! Cloud options +logical :: do_cloud_simple = .false. + !s Radiation options logical :: two_stream_gray = .true. logical :: do_rrtm_radiation = .false. @@ -142,6 +147,7 @@ module idealized_moist_phys_mod ! end RG Add bucket namelist / idealized_moist_phys_nml / turb, lwet_convection, do_bm, do_ras, roughness_heat, & + do_cloud_simple, & two_stream_gray, do_rrtm_radiation, do_damping,& mixed_layer_bc, do_simple, & roughness_moist, roughness_mom, do_virtual, & @@ -790,6 +796,9 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real :: delta_t real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv +! Simple cloud scheme variabilies to pass to radiation +real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cfa_rad, reff_rad + real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot @@ -952,6 +961,20 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg endif +! Call the simple cloud scheme in line with SPOOKIE-2 requirements +! Using start of time step variables +! using soecific humidity NOT mixing ratios +if(do_cloud_simple) then + call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & + Time, & + tg(:,:,:,previous), & + grid_tracers(:,:,:,previous,nsphum), & + ! outs - + cfa_rad(:,:,:), reff_rad(:,:,:) & + ) + +endif + ! Begin the radiation calculation by computing downward fluxes. ! This part of the calculation does not depend on the surface temperature. @@ -1076,7 +1099,10 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg !need t at half grid tg_interp=tg(:,:,:,previous) call interp_temp(z_full(:,:,:,current),z_half(:,:,:,current),tg_interp, Time) - call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current),albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:),coszen,net_surf_sw_down(:,:),surf_lw_down(:,:)) + call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current), & + albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:), & + coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cfa_rad(:,:,:), reff_rad(:,:,:), & + do_cloud_simple ) endif #endif From 4f105a2baab23b94461eb8b3dce639d8fdb33123 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 16:19:54 +0100 Subject: [PATCH 079/304] Fist drafted simple cloud scheme - need to check hooks to rrtm and work out approach for socrities --- src/atmos_param/cloud_simple/cloud_simple.F90 | 203 ++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 src/atmos_param/cloud_simple/cloud_simple.F90 diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 new file mode 100644 index 000000000..c9c09de75 --- /dev/null +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -0,0 +1,203 @@ +module cloud_simple_mod + +#ifdef INTERNAL_FILE_NML + use mpp_mod, only: input_nml_file +#else + use fms_mod, only: open_namelist_file, close_file +#endif + + use fms_mod, only: stdlog, FATAL, WARNING, error_mesg + use time_manager_mod, only: time_type + + implicit none + + logical :: do_init = .true. ! Do I still need to do init? + + real :: simple_cca = 0.0 + real :: rhcsfc = 0.95 + real :: rhc700 = 0.7 + real :: rhc200 = 0.3 + real :: rhmsfc = 0.95 + real :: rhm700 = 0.7 + real :: rhm200 = 0.3 + + namelist /cloud_simple_nml/ simple_cca, rhcsfc, rhc700, rhc200, & + rhmsfc, rhm700, rhm200 + real :: zerodegc = 273.15 + + + contains + + !----------------------------------------------- + + + subroutine cloud_simple_init () + + integer :: io ,stdlog_unit + +#ifdef INTERNAL_FILE_NML + read (input_nml_file, nml=cloud_simple_nml, iostat=io) +#else + if ( file_exist('input.nml') ) then + nml_unit = open_namelist_file() + read (nml_unit, cloud_simple_nml, iostat=io) + call close_file(nml_unit) + endif +#endif + stdlog_unit = stdlog() + write(stdlog_unit, cloud_simple_nml) + + do_init = .false. !initialisation completed + + end subroutine cloud_simple_init + + !----------------------------------------------- + + subroutine cloud_simple (p_half, p_full, Time, & + temp, q_hum, & + ! outs + cfa_rad, reff_rad ) + + real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half + type(time_type) , intent(in) :: Time + + real , intent(out), dimension(:,:,:) :: cfa_rad, reff_rad + + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, qcl_rad + real :: frac_liq, cf_rad, simple_rhcrit + + integer :: i, j, k, k_surf + + logical :: es_over_liq_and_ice=.true. + + !check initiation has been done - ie read in parameters + if (do_init) call error_mesg ('cloud_simple', & + 'cloud_simple_init has not been called.', FATAL) + + ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! + call compute_qs(temp, p_full, qs, es_over_liq_and_ice) !qs=qsat in um + + k_surf = size(temp, 3) + + do i=1, size(temp, 1) + do j=1, size(temp, 2) + do k=1, size(temp, 3) + + !caluclate the frac_liq + call calc_liq_frac(temp(i,j,k), frac_liq) + call calc_reff(frac_liq, reff_rad(i,j,k)) + call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit) + call calc_cf_rad(q_hum(i,j,k), qs(i,j,k), simple_rhcrit, cf_rad) + call calc_qcl_rad(p_full(i,j,k), cf_rad, qcl_rad(i,j,k) ) + end do + end do + end do + + !WHAT ARE THE UNITS + !add diagnostics + + end subroutine cloud_simple + + subroutine calc_liq_frac(temp, frac_liq) + ! All liquid if above zero and all ice below -40C + ! linearly interpolate between T=0 and -40C + + real, intent(in) :: temp + real, intent(out) :: frac_liq + + + if (temp > zerodegc) then + frac_liq = 1.0 + else if (temp < zerodegc-40.0) then + frac_liq = 0.0 + else + frac_liq = 1.0 - (zerodegc-temp) / 40.0 + end if + + + end subroutine calc_liq_frac + + subroutine calc_reff(frac_liq, reff_rad) + + real, intent(in) :: frac_liq + real, intent(out) :: reff_rad + + reff_rad = 1.0e-6 * ( 10.0 * frac_liq + 20.0 * (1.0 - frac_liq) ) + + end subroutine calc_reff + + subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - > p_layer_centres + + real, intent(in) :: p_full, p_surf + real, intent(out) :: simple_rhcrit + + ! Calculate RHcrit as function of pressure + if (p_full > 70000.0 ) then + + simple_rhcrit = rhcsfc - ( rhcsfc - rhc700 ) * & + ( p_surf - p_full ) / ( p_surf - 70000.0 ) + + else if ( p_full > 20000.0 ) then + + simple_rhcrit = rhc700 - ( rhc700 - rhc200 ) * & + ( 70000.0 - p_full) / 50000.0 + + else + simple_rhcrit = rhc200 + endif + + end subroutine calc_rhcrit + + subroutine calc_cf_rad (q_hum, qsat, simple_rhcrit, cf_rad) + ! Calculate LS (stratiform) cloud fraction + ! as a simple linear function of RH + + real, intent(in) :: q_hum, qsat, simple_rhcrit + real, intent(out) :: cf_rad + + real :: rh, cca + + rh = q_hum/qsat + cf_rad = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) + + ! include simple convective cloud fraction where present + + cca = 0.0 ! no convective cloud fraction is calculated + ! left in for fture use + + if (cca > 0.0) then + cf_rad = MAX( simple_cca, cf_rad ) + end if + + end subroutine calc_cf_rad + + subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) + ! calculate simple water content + + real , intent(in) :: p_full, cf_rad + real , intent(out) :: qcl_rad + + real :: in_cloud_qcl + + in_cloud_qcl = 3.0e-4 + & + (1.0-3.0e-4)*(p_full-20000.0)/80000.0 + + in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg + + qcl_rad = cf_rad * in_cloud_qcl + + end subroutine calc_qcl_rad + + + !----------------------------------------------- + + + subroutine cloud_simple_end () + + ! do we deallocate anything? + + end subroutine cloud_simple_end + + !----------------------------------------------- + +end module cloud_simple_mod From 6e6d69af44c6cb2835a990d20e8ee13789a897e4 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 17:30:24 +0100 Subject: [PATCH 080/304] Changes so code will now compile --- src/atmos_param/cloud_simple/cloud_simple.F90 | 9 +++++---- src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 5 +++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index c9c09de75..a04d92b5b 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -6,8 +6,9 @@ module cloud_simple_mod use fms_mod, only: open_namelist_file, close_file #endif - use fms_mod, only: stdlog, FATAL, WARNING, error_mesg - use time_manager_mod, only: time_type + use fms_mod, only: stdlog, FATAL, WARNING, error_mesg + use time_manager_mod, only: time_type + use sat_vapor_pres_mod, only: compute_qs implicit none @@ -68,14 +69,14 @@ subroutine cloud_simple (p_half, p_full, Time, & integer :: i, j, k, k_surf - logical :: es_over_liq_and_ice=.true. + logical :: es_over_liq_and_ice !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! - call compute_qs(temp, p_full, qs, es_over_liq_and_ice) !qs=qsat in um + call compute_qs(temp, p_full, qs, es_over_liq_and_ice=.true.) !qs=qsat in um k_surf = size(temp, 3) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 3f315dbe0..494be9353 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -347,6 +347,10 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l d622 = rdgas/rvgas d378 = 1.-d622 +if(do_cloud_simple) then + call cloud_simple_init() +end if + !s need to make sure that gray radiation and rrtm radiation are not both called. if(two_stream_gray .and. do_rrtm_radiation) & call error_mesg('physics_driver_init','do_grey_radiation and do_rrtm_radiation cannot both be .true.',FATAL) @@ -965,6 +969,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! Using start of time step variables ! using soecific humidity NOT mixing ratios if(do_cloud_simple) then + call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & Time, & tg(:,:,:,previous), & From b01e18466f474818a247323861b702d6e1241694 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 17:31:07 +0100 Subject: [PATCH 081/304] Now building sat specific humidity tables and shorter run on more cores --- exp/test_cases/MiMA/MiMA_test_case.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index f21ba6404..61472cc25 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 4 +NCORES = 16 # a CodeBase can be a directory on the computer, # useful for iterative development @@ -131,7 +131,8 @@ }, 'sat_vapor_pres_nml': { - 'do_simple':True + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True }, 'damping_driver_nml': { @@ -185,5 +186,5 @@ #Lets do a run! if __name__=="__main__": exp.run(1, use_restart=False, num_cores=NCORES) - for i in range(2,121): + for i in range(2,25): exp.run(i, num_cores=NCORES) From 9616b1c9bcacc4b545121dcc956b28bc930884e2 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 12:24:50 +0100 Subject: [PATCH 082/304] exp/test_cases/MiMA/MiMA_test_case.py --- src/atmos_param/cloud_simple/cloud_simple.F90 | 91 ++++++++++++++++--- .../rrtm_radiation/rrtm_radiation.f90 | 20 ++-- .../driver/solo/idealized_moist_phys.F90 | 15 ++- 3 files changed, 99 insertions(+), 27 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index a04d92b5b..c35708ad3 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -10,9 +10,11 @@ module cloud_simple_mod use time_manager_mod, only: time_type use sat_vapor_pres_mod, only: compute_qs + use diag_manager_mod, only: register_diag_field, send_data + implicit none - logical :: do_init = .true. ! Do I still need to do init? + logical :: do_init = .true. ! Check if init needs to be run real :: simple_cca = 0.0 real :: rhcsfc = 0.95 @@ -26,16 +28,22 @@ module cloud_simple_mod rhmsfc, rhm700, rhm200 real :: zerodegc = 273.15 + integer :: id_cf_rad, id_reff_rad, id_frac_liq, id_qcl_rad + character(len=14), parameter :: mod_name_cld = "cloud_simple" contains !----------------------------------------------- - subroutine cloud_simple_init () + subroutine cloud_simple_init (axes, Time) + + type(time_type), intent(in) :: Time + integer, intent(in), dimension(4) :: axes integer :: io ,stdlog_unit + #ifdef INTERNAL_FILE_NML read (input_nml_file, nml=cloud_simple_nml, iostat=io) #else @@ -48,6 +56,26 @@ subroutine cloud_simple_init () stdlog_unit = stdlog() write(stdlog_unit, cloud_simple_nml) + !register diagnostics + id_cf_rad = & + register_diag_field ( mod_name_cld, 'cf_rad', axes(1:3), Time, & + 'Cloud fraction for the simple cloud scheme', 'unitless: values 0-1') + + id_frac_liq = & + register_diag_field ( mod_name_cld, 'frac_liq', axes(1:3), Time, & + 'Liquid cloud fraction (liquid, mixed-ice phase, ice)', & + 'unitless: values 0-1') + + id_reff_rad = & + register_diag_field ( mod_name_cld, 'reff_rad', axes(1:3), Time, & + 'Effective cloud particle radius', & + 'microns') + + id_qcl_rad = & + register_diag_field ( mod_name_cld, 'qcl_rad', axes(1:3), Time, & + 'Specific humidity of cloud liquid', & + 'kg/kg') + do_init = .false. !initialisation completed end subroutine cloud_simple_init @@ -57,20 +85,22 @@ end subroutine cloud_simple_init subroutine cloud_simple (p_half, p_full, Time, & temp, q_hum, & ! outs - cfa_rad, reff_rad ) + cf_rad, reff_rad, qcl_rad ) real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half type(time_type) , intent(in) :: Time - real , intent(out), dimension(:,:,:) :: cfa_rad, reff_rad + real , intent(out), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad - real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, qcl_rad - real :: frac_liq, cf_rad, simple_rhcrit + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq + real :: simple_rhcrit integer :: i, j, k, k_surf logical :: es_over_liq_and_ice + real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) @@ -85,17 +115,22 @@ subroutine cloud_simple (p_half, p_full, Time, & do k=1, size(temp, 3) !caluclate the frac_liq - call calc_liq_frac(temp(i,j,k), frac_liq) - call calc_reff(frac_liq, reff_rad(i,j,k)) + call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) + call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit) - call calc_cf_rad(q_hum(i,j,k), qs(i,j,k), simple_rhcrit, cf_rad) - call calc_qcl_rad(p_full(i,j,k), cf_rad, qcl_rad(i,j,k) ) + call calc_cf_rad(q_hum(i,j,k), qs(i,j,k), simple_rhcrit, cf_rad(i,j,k)) + call calc_qcl_rad(p_full(i,j,k), cf_rad(i,j,k), qcl_rad(i,j,k) ) end do end do end do - !WHAT ARE THE UNITS - !add diagnostics + !save some diagnotics + call output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time ) + +tmp2 = maxval(cf_rad) +tmp1 = maxval(reff_rad) +tmp2 = maxval(cf_rad) + end subroutine cloud_simple @@ -123,7 +158,7 @@ subroutine calc_reff(frac_liq, reff_rad) real, intent(in) :: frac_liq real, intent(out) :: reff_rad - reff_rad = 1.0e-6 * ( 10.0 * frac_liq + 20.0 * (1.0 - frac_liq) ) + reff_rad = 10.0 * frac_liq + 20.0 * (1.0 - frac_liq) !units in microns end subroutine calc_reff @@ -170,6 +205,8 @@ subroutine calc_cf_rad (q_hum, qsat, simple_rhcrit, cf_rad) cf_rad = MAX( simple_cca, cf_rad ) end if + + end subroutine calc_cf_rad subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) @@ -190,6 +227,34 @@ subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) end subroutine calc_qcl_rad + + subroutine output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time) + + real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, frac_liq, qcl_rad + + type(time_type) , intent(in) :: Time + + real :: used + + if ( id_cf_rad > 0 ) then + used = send_data ( id_cf_rad, cf_rad, Time) + endif + + if ( id_reff_rad > 0 ) then + used = send_data ( id_reff_rad, reff_rad, Time) + endif + + if ( id_frac_liq > 0 ) then + used = send_data ( id_frac_liq, frac_liq, Time) + endif + + if ( id_qcl_rad > 0 ) then + used = send_data ( id_qcl_rad, qcl_rad, Time) + endif + + + end subroutine output_cloud_diags + !----------------------------------------------- diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 921f9034c..d7a8c786b 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -533,7 +533,7 @@ end subroutine interp_temp !***************************************************************************************** subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & albedo,q,t,t_surf_rad,tdt, & - coszen,flux_sw,flux_lw,cfa_rad,reff_rad, & + coszen,flux_sw,flux_lw,cf_rad,reff_rad, & do_cloud_simple) ! ! Driver for RRTMG radiation scheme. @@ -580,7 +580,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & real(kind=rb),dimension(:,:),intent(out),optional :: flux_sw,flux_lw ! surface fluxes [W/m2] ! dimension (lat x lon) ! need to have both or none! - real(kind=rb), dimension(:,:,:), intent(in) :: cfa_rad,reff_rad !cloud properties + real(kind=rb), dimension(:,:,:), intent(in) :: cf_rad,reff_rad !cloud properties logical, intent(in) :: do_cloud_simple @@ -612,6 +612,8 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! debug + real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + integer :: indx2(2),indx(3),ii,ji,ki logical :: used !--------------------------------------------------------------------------------------------------------------- @@ -838,16 +840,16 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & if (do_cloud_simple) then inflglw = 2 !RRTM responsible for calculating optical properties of clouds liqflglw = 1 !Sets liquid water radii to be used rather than being inactive (zero is inactive) - cldfr = reshape( cfa_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) - reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) - reice = zeros !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros + cldfr = reshape( cf_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) + reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) !already in microns + reice = 10*ones !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros else cldfr = zeros - reliq = 10*ones - reice = 10*ones + reliq = 10*ones ! not requires to be 10 microns but assumed a valid number + reice = 10*ones ! needs to be 10 microns endif - - + tmp1 = maxval(reff_rad) + tmp2 = maxval(cf_rad) if(include_secondary_gases)then call rrtmg_sw & diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 494be9353..3326065c0 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -348,7 +348,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l d378 = 1.-d622 if(do_cloud_simple) then - call cloud_simple_init() + call cloud_simple_init(get_axis_id(), Time) end if !s need to make sure that gray radiation and rrtm radiation are not both called. @@ -801,7 +801,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv ! Simple cloud scheme variabilies to pass to radiation -real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cfa_rad, reff_rad +real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot @@ -809,6 +809,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(1,1,1):: tracer, tracertnd integer :: nql, nqi, nqa ! tracer indices for stratiform clouds +real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + if(current == previous) then delta_t = dt_real else @@ -975,11 +977,14 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg tg(:,:,:,previous), & grid_tracers(:,:,:,previous,nsphum), & ! outs - - cfa_rad(:,:,:), reff_rad(:,:,:) & + cf_rad(:,:,:), reff_rad(:,:,:), & + qcl_rad(:,:,:) & ) - + endif +tmp1 = maxval(reff_rad) +tmp2 = maxval(cf_rad) ! Begin the radiation calculation by computing downward fluxes. ! This part of the calculation does not depend on the surface temperature. @@ -1106,7 +1111,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg call interp_temp(z_full(:,:,:,current),z_half(:,:,:,current),tg_interp, Time) call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current), & albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:), & - coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cfa_rad(:,:,:), reff_rad(:,:,:), & + coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cf_rad(:,:,:), reff_rad(:,:,:), & do_cloud_simple ) endif #endif From 5116850c5c61e1b5320059d5774dfd3529fb4858 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 12:25:51 +0100 Subject: [PATCH 083/304] Previous commit did not have all files: attempting to debug why cloud fraction is not passed out of the simple cloud scheme --- exp/test_cases/MiMA/MiMA_test_case.py | 19 +- .../MiMA/MiMA_test_case_no_cloud.py | 191 ++++++++++++++++++ 2 files changed, 203 insertions(+), 7 deletions(-) create mode 100644 exp/test_cases/MiMA/MiMA_test_case_no_cloud.py diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 61472cc25..06ab56cf5 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 16 +NCORES = 1 # a CodeBase can be a directory on the computer, # useful for iterative development @@ -19,7 +19,7 @@ # is used to load the correct compilers. The env file is always loaded from # $GFDL_BASE and not the checked out git repo. -cb.compile() # compile the source code to working directory $GFDL_WORK/codebase +cb.compile(debug=True) # compile the source code to working directory $GFDL_WORK/codebase # create an Experiment object to handle the configuration of model parameters # and output diagnostics @@ -43,6 +43,11 @@ diag.add_field('dynamics', 'temp', time_avg=True) diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) +diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +diag.add_field('rrtm_radiation', 'olr', time_avg=True) exp.diag_table = diag @@ -138,7 +143,7 @@ 'damping_driver_nml': { 'do_rayleigh': True, 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 50., + 'sponge_pbottom': 150., 'do_conserve_energy': True, }, @@ -175,7 +180,7 @@ 'valid_range_t':[100.,800.], 'initial_sphum':[2.e-6], 'vert_coord_option':'uneven_sigma', - 'surf_res':0.5, + 'surf_res':0.2, 'scale_heights' : 11.0, 'exponent':7.0, 'robert_coeff':0.03 @@ -185,6 +190,6 @@ }) #Lets do a run! if __name__=="__main__": - exp.run(1, use_restart=False, num_cores=NCORES) - for i in range(2,25): - exp.run(i, num_cores=NCORES) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True, run_idb=True) + # for i in range(2,25): + # exp.run(i, num_cores=NCORES, overwrite_data=True) diff --git a/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py b/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py new file mode 100644 index 000000000..645a589ea --- /dev/null +++ b/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py @@ -0,0 +1,191 @@ +import os + +import numpy as np + +from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE + +NCORES = 16 + +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = IscaCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +cb.compile() # compile the source code to working directory $GFDL_WORK/codebase + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics +exp = Experiment('mima_test_experiment_no_cloud', codebase=cb) + +exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Tell model which diagnostics to write +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) +diag.add_field('rrtm_radiation', 'olr', time_avg=True) + +exp.diag_table = diag + + +#Empty the run directory ready to run +exp.clear_rundir() + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml': { + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + + 'idealized_moist_phys_nml': { + 'two_stream_gray': False, + 'do_rrtm_radiation': True, #Use RRTM radiation, not grey + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use the simple Betts Miller convection scheme + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'do_cloud_simple': False, + }, + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3, + 'rhmsfc': 0.95, + 'rhm700': 0.7, + 'rhm200': 0.3, + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'depth': 100, + 'albedo_value': 0.205, + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'do_qflux': True + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., + 'do_conserve_energy': True, + }, + + 'qflux_nml': { + 'qflux_amp': 30.0 + }, + + 'rrtm_radiation_nml': { + 'solr_cnst': 1360, #s set solar constant to 1360, rather than default of 1368.22 + 'dt_rad': 7200, #Use long RRTM timestep + 'do_read_ozone':True, + 'ozone_file':'ozone_1990' + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03 + } + + +}) +#Lets do a run! +if __name__=="__main__": + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True) + for i in range(2,25): + exp.run(i, num_cores=NCORES, overwrite_data=True) From 9caea82852139524be2f0bddccd24ca672f7ba99 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 16:27:53 +0100 Subject: [PATCH 084/304] Swapped to using mcica sw routine and added required initialisation routine. Seems to run. Now swapping to lw mcica. --- exp/test_cases/MiMA/MiMA_test_case.py | 9 +- .../rrtm_radiation/rrtm_radiation.f90 | 98 +++++++++++++------ src/extra/model/isca/path_names | 2 +- 3 files changed, 74 insertions(+), 35 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 06ab56cf5..aef6b0ab6 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 1 +NCORES = 16 # a CodeBase can be a directory on the computer, # useful for iterative development @@ -19,7 +19,7 @@ # is used to load the correct compilers. The env file is always loaded from # $GFDL_BASE and not the checked out git repo. -cb.compile(debug=True) # compile the source code to working directory $GFDL_WORK/codebase +cb.compile()#debug=True) # compile the source code to working directory $GFDL_WORK/codebase # create an Experiment object to handle the configuration of model parameters # and output diagnostics @@ -155,7 +155,8 @@ 'solr_cnst': 1360, #s set solar constant to 1360, rather than default of 1368.22 'dt_rad': 7200, #Use long RRTM timestep 'do_read_ozone':True, - 'ozone_file':'ozone_1990' + 'ozone_file':'ozone_1990', + 'icld': 1 #cloud overlap method }, # FMS Framework configuration @@ -190,6 +191,6 @@ }) #Lets do a run! if __name__=="__main__": - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True, run_idb=True) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) # for i in range(2,25): # exp.run(i, num_cores=NCORES, overwrite_data=True) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index d7a8c786b..195206d91 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -54,9 +54,10 @@ module rrtm_vars ! dimension (ncols_rrt x nlay_rrt) real(kind=rb),allocatable,dimension(:,:) :: co2 ! CO2 [vmr] ! dimension (ncols_rrt x nlay_rrt) - real(kind=rb),allocatable,dimension(:,:) :: zeros ! place holder for any species set + real(kind=rb),allocatable,dimension(:,:,:) :: zeros ! place holder for any species set + ! to zero + real(kind=rb),allocatable,dimension(:,:,:) :: ones ! place holder for any species set ! to zero - real(kind=rb),allocatable,dimension(:,:) :: ones ! place holder for secondary species ! the following species are only set if use_secondary_gases=.true. real(kind=rb),allocatable,dimension(:,:) :: ch4 ! CH4 [vmr] ! dimension (ncols_rrt x nlay_rrt) @@ -102,7 +103,7 @@ module rrtm_vars ! some constants real(kind=rb) :: daypersec=1./86400.,deg2rad !RG: daypersec=1./86400. left in when conversion to non-specific day length made as this only converts heatrates from RRTM from K/day to K/sec ! no clouds in the radiative scheme - integer(kind=im) :: icld=0,idrv=0, & + integer(kind=im) :: idrv=0, & inflglw=0,iceflglw=0,liqflglw=0, & iaer=0 !--------------------------------------------------------------------------------------------------------------- @@ -188,6 +189,9 @@ module rrtm_vars ! day of the year = solday \in [0,days per year] real(kind=rb) :: equinox_day=0.75 ! fraction of the year defining NH autumn equinox \in [0,1] real(kind=rb) :: solr_cnst= 1368.22 ! solar constant [W/m2] + + integer(kind=im) :: icld=0 ! Cloud overlap method + !-------------------------------------------------s-------------------------------------------------------------- ! !-------------------- diagnostics fields ------------------------------- @@ -210,14 +214,17 @@ module rrtm_vars &lonstep, do_zm_tracers, do_zm_rad, & &do_precip_albedo, precip_albedo_mode, precip_albedo, precip_lat,& &do_read_co2, co2_file, co2_variable_name, use_dyofyr, solrad, & - &solday, equinox_day,solr_cnst + &solday, equinox_day,solr_cnst, icld end module rrtm_vars !***************************************************************************************** !***************************************************************************************** module rrtm_radiation - use parkind, only : im => kind_im, rb => kind_rb - use constants_mod, only: pi, wtmozone, wtmh2o, gas_constant, rdgas + use parkind, only : im => kind_im, rb => kind_rb + use constants_mod, only: pi, wtmozone, wtmh2o, gas_constant, rdgas + use parrrtm, only: nbndlw + use parrrsw, only: nbndsw, ngptsw + implicit none contains @@ -230,8 +237,6 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) ! Modules use rrtm_vars use astronomy_mod, only: astronomy_init - use parrrtm, only: nbndlw - use parrrsw, only: nbndsw use diag_manager_mod, only: register_diag_field, send_data use interpolator_mod, only: interpolate_type, interpolator_init, & &CONSTANT, ZERO,INTERP_WEIGHTED_P @@ -405,8 +410,8 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) if(.not. do_read_radiation .or. .not. do_read_sw_flux .and. .not. do_read_lw_flux)then allocate(h2o(ncols_rrt,nlay_rrt),o3(ncols_rrt,nlay_rrt), & co2(ncols_rrt,nlay_rrt)) - allocate(ones(ncols_rrt,nlay_rrt), & - zeros(ncols_rrt,nlay_rrt)) + allocate(ones(ngptsw,ncols_rrt,nlay_rrt), & + zeros(ngptsw,ncols_rrt,nlay_rrt)) allocate(emis(ncols_rrt,nbndlw)) allocate(taucld(nbndlw,ncols_rrt,nlay_rrt), & tauaer(ncols_rrt,nlay_rrt,nbndlw)) @@ -544,7 +549,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & use fms_mod, only: error_mesg, FATAL use mpp_mod, only: mpp_pe,mpp_root_pe use rrtmg_lw_rad, only: rrtmg_lw - use rrtmg_sw_rad, only: rrtmg_sw + use rrtmg_sw_rad, only: rrtmg_sw, mcica_subcol_sw use astronomy_mod, only: diurnal_solar use rrtm_vars use time_manager_mod,only: time_type,get_time,set_time, length_of_year, length_of_day @@ -591,8 +596,13 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & integer si,sj,sk,locmin(3) real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: o3f real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: co2f,co2f_temp + real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: pfull,tfull,fracday& , hr,hrc, swhr, swhrc, cldfr, reliq, reice + + + real(kind=rb),dimension(ngptsw,ncols_rrt,nlay_rrt) :: cldfr_pass + real(kind=rb),dimension(size(tdt,1),size(tdt,2),size(tdt,3)) :: tdt_rrtm real(kind=rb),dimension(ncols_rrt,nlay_rrt+1) :: uflx, dflx, uflxc, dflxc& ,swuflx, swdflx, swuflxc, swdflxc @@ -610,11 +620,16 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & integer :: year_in_s real :: r_seconds, r_days, r_total_seconds, frac_of_day, frac_of_year, gmt, time_since_ae, rrsun, dt_rad_radians, day_in_s, r_solday, r_dt_rad_avg + !mcica variables + integer :: permuteseed, irng + real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: reicmcl, relqmcl + + real(kind=rb),dimension(ngptsw, ncols_rrt,nlay_rrt) :: cldfmcl, ciwpmcl, clwpmcl, taucmcl, ssacmcl, asmcmcl, fsfcmcl ! debug real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging - integer :: indx2(2),indx(3),ii,ji,ki + integer :: indx2(2),indx(3),ii,ji,ki, pt1,pt2 logical :: used !--------------------------------------------------------------------------------------------------------------- @@ -838,31 +853,54 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! where(cosz_rr < 1.e-2)cosz_rr=0. if (do_cloud_simple) then + pt1 = 1 + pt2 = ngptsw inflglw = 2 !RRTM responsible for calculating optical properties of clouds liqflglw = 1 !Sets liquid water radii to be used rather than being inactive (zero is inactive) cldfr = reshape( cf_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) !already in microns - reice = 10*ones !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros + reice = 10*ones(pt1,:,:) !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros else - cldfr = zeros - reliq = 10*ones ! not requires to be 10 microns but assumed a valid number - reice = 10*ones ! needs to be 10 microns + pt1 = 1 + pt2 = 1 + cldfr = zeros(pt1,:,:) + reliq = 10*ones(pt1,:,:) ! not requires to be 10 microns but assumed a valid number + reice = 10*ones(pt1,:,:) ! needs to be 10 microns + cldfr_pass(pt1,:,:) = cldfr endif - tmp1 = maxval(reff_rad) - tmp2 = maxval(cf_rad) + + + if (do_cloud_simple) then + !need to run monty carlo independent column approcimation (mcica) + permuteseed = 1 + irng = 1 !use a random number gerator either 0 (Kissvec) or 1(Mersenne Twister) + + call mcica_subcol_sw(0, ncols_rrt, nlay_rrt, icld, permuteseed, irng, pfull, & + cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer, zro_sw, zro_sw, zro_sw , & + !outs + cldfmcl, ciwpmcl, clwpmcl, reicmcl, relqmcl, taucmcl, ssacmcl, asmcmcl, fsfcmcl) + + permuteseed = 2 + cldfr_pass = cldfmcl + reice = reicmcl + reliq = relqmcl + taucld = taucmcl + !other vars not needed + endif + if(include_secondary_gases)then call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & pfull , phalf , tfull , thalf , tsrf , & - h2o , o3 , co2 , ch4_val*ones , n2o_val*ones , o2_val*ones , & + h2o , o3 , co2 , ch4_val*ones(pt1,:,:) , n2o_val*ones(pt1,:,:) , o2_val*ones(pt1,:,:) , & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr, & + cldfr_pass(pt1:pt2,:,:), & taucld , sw_zro , sw_zro , sw_zro , & - zeros , zeros , reice , reliq , & + zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & tauaer , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) @@ -870,14 +908,14 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & pfull , phalf , tfull , thalf , tsrf , & - h2o , o3 , co2 , zeros , zeros, zeros, & + h2o , o3 , co2 , zeros(pt1,:,:) , zeros(pt1,:,:), zeros(pt1,:,:), & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr, & + cldfr_pass(pt1:pt2,:,:), & taucld , sw_zro , sw_zro , sw_zro , & - zeros , zeros , reice , reliq , & + zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & tauaer , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) @@ -904,12 +942,12 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & pfull , phalf , tfull , thalf, tsrf , & h2o , o3 , co2 , & ! secondary gases - ch4_val*ones , n2o_val*ones , o2_val*ones , & - cfc11_val*ones , cfc12_val*ones , cfc22_val*ones , ccl4_val*ones , & + ch4_val*ones(pt1,:,:) , n2o_val*ones(pt1,:,:) , o2_val*ones(pt1,:,:) , & + cfc11_val*ones(pt1,:,:) , cfc12_val*ones(pt1,:,:) , cfc22_val*ones(pt1,:,:) , ccl4_val*ones(pt1,:,:) , & ! emissivity and cloud composition emis , inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr , taucld , zeros , zeros , reice, reliq, & + cldfr_pass(pt1,:,:) , taucld , zeros(pt1,:,:) , zeros(pt1,:,:) , reice, reliq, & tauaer , & ! output uflx , dflx , hr , uflxc , dflxc , hrc) @@ -917,12 +955,12 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & call rrtmg_lw & (ncols_rrt, nlay_rrt, icld , idrv , & pfull , phalf , tfull , thalf, tsrf , & - h2o , o3 , co2 , zeros, zeros, zeros, & - zeros , zeros , zeros , zeros, & + h2o , o3 , co2 , zeros(pt1,:,:), zeros(pt1,:,:), zeros(pt1,:,:), & + zeros(pt1,:,:) , zeros(pt1,:,:) , zeros(pt1,:,:) , zeros(pt1,:,:), & ! emissivity and cloud composition emis , inflglw , iceflglw, liqflglw, & ! cloud parameters - cldfr , taucld , zeros , zeros, reice, reliq, & + cldfr_pass(pt1,:,:) , taucld , zeros(pt1,:,:) , zeros(pt1,:,:), reice, reliq, & tauaer , & ! output uflx , dflx , hr , uflxc, dflxc , hrc) diff --git a/src/extra/model/isca/path_names b/src/extra/model/isca/path_names index eebdfd2b0..3ffc0f449 100644 --- a/src/extra/model/isca/path_names +++ b/src/extra/model/isca/path_names @@ -83,7 +83,7 @@ atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/modules/rrsw_vsn.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/modules/rrsw_wvn.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/mcica_random_numbers.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/mcica_subcol_gen_sw.f90 -atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_rad.nomcica.f90 +atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_rad.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_cldprop.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_cldprmc.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_init.f90 From 21e53c23e7a9a18e232c4c9fcf58c566e593e9d8 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 17:03:52 +0100 Subject: [PATCH 085/304] Swapped to using mcica lw routine and added required initialisation routine. Seems to run. Testing needed --- exp/test_cases/MiMA/MiMA_test_case.py | 6 +- .../rrtm_radiation/rrtm_radiation.f90 | 70 ++++++++++++------- src/extra/model/isca/path_names | 2 +- 3 files changed, 49 insertions(+), 29 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index aef6b0ab6..27dc00243 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('mima_test_experiment', codebase=cb) +exp = Experiment('mima_test_experiment_with_mcica', codebase=cb) exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -192,5 +192,5 @@ #Lets do a run! if __name__=="__main__": exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) - # for i in range(2,25): - # exp.run(i, num_cores=NCORES, overwrite_data=True) + for i in range(2,25): + exp.run(i, num_cores=NCORES, overwrite_data=True) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 195206d91..44865ab20 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -78,7 +78,7 @@ module rrtm_vars ! =1 for black body ! clouds stuff ! cloud & aerosol optical depths, cloud and aerosol specific parameters. Set to zero - real(kind=rb),allocatable,dimension(:,:,:) :: taucld,tauaer, sw_zro, zro_sw + real(kind=rb),allocatable,dimension(:,:,:) :: taucld_lw, taucld_sw, tauaer_lw, tauaer_sw, sw_zro, zro_sw ! heating rates and fluxes, zenith angle when in-between radiation time steps real(kind=rb),allocatable,dimension(:,:) :: sw_flux,lw_flux,zencos, olr, toa_sw! surface and TOA fluxes, cos(zenith angle) ! dimension (lon x lat) @@ -222,7 +222,7 @@ end module rrtm_vars module rrtm_radiation use parkind, only : im => kind_im, rb => kind_rb use constants_mod, only: pi, wtmozone, wtmh2o, gas_constant, rdgas - use parrrtm, only: nbndlw + use parrrtm, only: nbndlw, ngptlw use parrrsw, only: nbndsw, ngptsw implicit none @@ -413,8 +413,10 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) allocate(ones(ngptsw,ncols_rrt,nlay_rrt), & zeros(ngptsw,ncols_rrt,nlay_rrt)) allocate(emis(ncols_rrt,nbndlw)) - allocate(taucld(nbndlw,ncols_rrt,nlay_rrt), & - tauaer(ncols_rrt,nlay_rrt,nbndlw)) + allocate(taucld_lw(nbndlw,ncols_rrt,nlay_rrt), & + tauaer_lw(ncols_rrt,nlay_rrt,nbndlw)) + allocate(taucld_sw(nbndsw,ncols_rrt,nlay_rrt), & + tauaer_sw(ncols_rrt,nlay_rrt,nbndsw)) allocate(sw_zro(nbndsw,ncols_rrt,nlay_rrt), & zro_sw(ncols_rrt,nlay_rrt,nbndsw)) if(id_coszen > 0)allocate(zencos (size(lonb,1)-1,size(latb,2)-1)) @@ -429,8 +431,10 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) emis = 1. !black body: 1.0 ! absorption - taucld = 0. - tauaer = 0. + taucld_sw = 0. + tauaer_sw = 0. + taucld_lw = 0. + tauaer_lw = 0. ! clouds sw_zro = 0. zro_sw = 0. @@ -548,7 +552,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! Modules use fms_mod, only: error_mesg, FATAL use mpp_mod, only: mpp_pe,mpp_root_pe - use rrtmg_lw_rad, only: rrtmg_lw + use rrtmg_lw_rad, only: rrtmg_lw, mcica_subcol_lw use rrtmg_sw_rad, only: rrtmg_sw, mcica_subcol_sw use astronomy_mod, only: diurnal_solar use rrtm_vars @@ -601,7 +605,8 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & , hr,hrc, swhr, swhrc, cldfr, reliq, reice - real(kind=rb),dimension(ngptsw,ncols_rrt,nlay_rrt) :: cldfr_pass + real(kind=rb),dimension(ngptsw,ncols_rrt,nlay_rrt) :: cldfr_pass_sw + real(kind=rb),dimension(ngptlw,ncols_rrt,nlay_rrt) :: cldfr_pass_lw real(kind=rb),dimension(size(tdt,1),size(tdt,2),size(tdt,3)) :: tdt_rrtm real(kind=rb),dimension(ncols_rrt,nlay_rrt+1) :: uflx, dflx, uflxc, dflxc& @@ -624,7 +629,9 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & integer :: permuteseed, irng real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: reicmcl, relqmcl - real(kind=rb),dimension(ngptsw, ncols_rrt,nlay_rrt) :: cldfmcl, ciwpmcl, clwpmcl, taucmcl, ssacmcl, asmcmcl, fsfcmcl + real(kind=rb),dimension(ngptsw, ncols_rrt,nlay_rrt) :: cldfmcl_sw, ciwpmcl_sw, clwpmcl_sw, taucmcl_sw, ssacmcl, asmcmcl, fsfcmcl + + real(kind=rb),dimension(ngptlw, ncols_rrt,nlay_rrt) :: cldfmcl_lw, ciwpmcl_lw, clwpmcl_lw, taucmcl_lw ! debug real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging @@ -866,7 +873,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & cldfr = zeros(pt1,:,:) reliq = 10*ones(pt1,:,:) ! not requires to be 10 microns but assumed a valid number reice = 10*ones(pt1,:,:) ! needs to be 10 microns - cldfr_pass(pt1,:,:) = cldfr + cldfr_pass_sw(pt1,:,:) = cldfr endif @@ -876,15 +883,14 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & irng = 1 !use a random number gerator either 0 (Kissvec) or 1(Mersenne Twister) call mcica_subcol_sw(0, ncols_rrt, nlay_rrt, icld, permuteseed, irng, pfull, & - cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer, zro_sw, zro_sw, zro_sw , & + cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer_sw, zro_sw, zro_sw, zro_sw , & !outs - cldfmcl, ciwpmcl, clwpmcl, reicmcl, relqmcl, taucmcl, ssacmcl, asmcmcl, fsfcmcl) + cldfmcl_sw, ciwpmcl_sw, clwpmcl_sw, reicmcl, relqmcl, taucmcl_sw, ssacmcl, asmcmcl, fsfcmcl) - permuteseed = 2 - cldfr_pass = cldfmcl + cldfr_pass_sw = cldfmcl_sw reice = reicmcl reliq = relqmcl - taucld = taucmcl + taucld_sw = taucmcl_sw !other vars not needed endif @@ -898,10 +904,10 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass(pt1:pt2,:,:), & - taucld , sw_zro , sw_zro , sw_zro , & + cldfr_pass_sw(pt1:pt2,:,:), & + taucld_sw , sw_zro , sw_zro , sw_zro , & zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & - tauaer , zro_sw , zro_sw , zro_sw , & + tauaer_sw , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) else @@ -913,10 +919,10 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass(pt1:pt2,:,:), & - taucld , sw_zro , sw_zro , sw_zro , & + cldfr_pass_sw(pt1:pt2,:,:), & + taucld_sw , sw_zro , sw_zro , sw_zro , & zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & - tauaer , zro_sw , zro_sw , zro_sw , & + tauaer_sw , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) endif @@ -930,6 +936,20 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! swhr (:,i) = 0. ! endwhere ! enddo + + if(do_cloud_simple) then + + permuteseed = 2 + + call mcica_subcol_lw(0, ncols_rrt, nlay_rrt, icld, permuteseed, irng, pfull, & + cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer_lw, & + cldfmcl_lw, ciwpmcl_lw, clwpmcl_lw, reicmcl, relqmcl, taucmcl_lw) + cldfr_pass_lw = cldfmcl_lw + reice = reicmcl + reliq = relqmcl + taucld_lw = taucmcl_lw + endif + swijk = reshape(swhr(:,sk:1:-1),(/ si/lonstep,sj,sk /))*daypersec @@ -947,8 +967,8 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! emissivity and cloud composition emis , inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass(pt1,:,:) , taucld , zeros(pt1,:,:) , zeros(pt1,:,:) , reice, reliq, & - tauaer , & + cldfr_pass_lw(pt1:pt2,:,:) , taucld_lw , zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice, reliq, & + tauaer_lw , & ! output uflx , dflx , hr , uflxc , dflxc , hrc) else @@ -960,8 +980,8 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! emissivity and cloud composition emis , inflglw , iceflglw, liqflglw, & ! cloud parameters - cldfr_pass(pt1,:,:) , taucld , zeros(pt1,:,:) , zeros(pt1,:,:), reice, reliq, & - tauaer , & + cldfr_pass_lw(pt1:pt2,:,:) , taucld_lw , zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:), reice, reliq, & + tauaer_lw , & ! output uflx , dflx , hr , uflxc, dflxc , hrc) endif diff --git a/src/extra/model/isca/path_names b/src/extra/model/isca/path_names index 3ffc0f449..c147c0ba3 100644 --- a/src/extra/model/isca/path_names +++ b/src/extra/model/isca/path_names @@ -47,7 +47,7 @@ atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/modules/rrlw_wvn.f90 atmos_param/rrtm_radiation/rrtm_radiation.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/mcica_random_numbers.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_cldprop.f90 -atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rad.nomcica.f90 +atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rad.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rtrn.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_setcoef.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/mcica_subcol_gen_lw.f90 From 815b4d1db0dafe096e5beca7a8178af4919e473d Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 11:39:35 +0100 Subject: [PATCH 086/304] New socrates set cld file downloaded from LFRic James Manners branch main/branches/dev/jamesmanners/um11.1_solar/src/interface_core/socrates_set_cld.F90 on 07-09-18. --- .../socrates/interface/socrates_set_cld.F90 | 485 ++++++++++++++++++ 1 file changed, 485 insertions(+) create mode 100644 src/atmos_param/socrates/interface/socrates_set_cld.F90 diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 new file mode 100644 index 000000000..25e47a340 --- /dev/null +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -0,0 +1,485 @@ +! *****************************COPYRIGHT******************************* +! (C) Crown copyright Met Office. All rights reserved. +! For further details please refer to the file COPYRIGHT.txt +! which you should have received as part of this distribution. +! *****************************COPYRIGHT******************************* +! +! Set the variables in the Socrates cloud type +! +!------------------------------------------------------------------------------ +module socrates_set_cld +implicit none +character(len=*), parameter, private :: ModuleName = 'SOCRATES_SET_CLD' +contains + +subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & + cloud_frac, conv_frac, & + liq_frac, ice_frac, liq_conv_frac, ice_conv_frac, & + liq_mmr, ice_mmr, liq_conv_mmr, ice_conv_mmr, & + liq_dim, ice_dim, liq_conv_dim, ice_conv_dim, & + dp_corr_strat, dp_corr_conv) + +use def_cld, only: StrCld, allocate_cld, allocate_cld_prsc +use def_control, only: StrCtrl +use def_dimen, only: StrDim +use def_spectrum, only: StrSpecData +use realtype_rd, only: RealK +use rad_pcf, only: & + ip_cloud_homogen, ip_cloud_ice_water, ip_cloud_conv_strat, ip_cloud_csiw, & + ip_clcmp_st_water, ip_clcmp_st_ice, ip_clcmp_cnv_water, ip_clcmp_cnv_ice, & + ip_phase_water, ip_phase_ice, ip_cloud_type_homogen, & + ip_cloud_type_water, ip_cloud_type_ice, & + ip_cloud_type_strat, ip_cloud_type_conv, & + ip_cloud_type_sw, ip_cloud_type_si, ip_cloud_type_cw, ip_cloud_type_ci, & + ip_drop_unparametrized, ip_ice_unparametrized, i_normal, i_err_fatal +use ereport_mod, only: ereport +use errormessagelength_mod, only: errormessagelength + +implicit none + + +! Cloud properties: +type(StrCld), intent(out) :: cld + +! Control options: +type(StrCtrl), intent(in) :: control + +! Dimensions: +type(StrDim), intent(in) :: dimen + +! Spectral data: +type(StrSpecData), intent(in) :: spectrum + +integer, intent(in) :: n_profile +integer, intent(in) :: n_layer + +real(RealK), intent(in), optional :: & + cloud_frac(:,:), conv_frac(:,:), & + liq_frac(:,:), ice_frac(:,:), liq_conv_frac(:,:), ice_conv_frac(:,:), & + liq_mmr(:,:), ice_mmr(:,:), liq_conv_mmr(:,:), ice_conv_mmr(:,:), & + liq_dim(:,:), ice_dim(:,:), liq_conv_dim(:,:), ice_conv_dim(:,:) +! Liquid and ice cloud fractions, gridbox mean mixing ratios, and +! effective dimensions + +real(RealK), intent(in), optional :: dp_corr_strat, dp_corr_conv +! Decorrelation pressure scales for cloud vertical overlap + + +! Local variables +integer :: i, j, k, l +! Loop variables +integer :: i_phase, i_param_type, n_cloud_parameter +! Working variables +integer :: i_cloud_type(dimen%nd_cloud_component) +! Types of cloud to which each component contributes + +real(RealK) :: condensed_min_dim +real(RealK) :: condensed_max_dim +! Minimum and maximum dimensions of each condensed component + +real(RealK) :: eps = EPSILON(1.0) +real(RealK) :: min_cloud_fraction = 0.0001 + +integer :: ierr = i_normal +character (len=*), parameter :: RoutineName = 'SET_CLD' +character (len=errormessagelength) :: cmessage + +! Functions called +integer, external :: set_n_cloud_parameter + + +! Allocate structure for the core radiation code interface +call allocate_cld(cld, dimen, spectrum) +call allocate_cld_prsc(cld, dimen, spectrum) + +if (.not.control%l_cloud) then + return +end if + +!------------------------------------------------------------------------------ +! Set properties of condensed components +!------------------------------------------------------------------------------ + +if (control%l_ice .and. control%l_drop) then + select case (control%i_cloud_representation) + case (ip_cloud_homogen, ip_cloud_ice_water) + cld%n_condensed = 2 + cld%type_condensed(1) = ip_clcmp_st_water + cld%type_condensed(2) = ip_clcmp_st_ice + case (ip_cloud_conv_strat, ip_cloud_csiw) + cld%n_condensed = 4 + cld%type_condensed(1) = ip_clcmp_st_water + cld%type_condensed(2) = ip_clcmp_st_ice + cld%type_condensed(3) = ip_clcmp_cnv_water + cld%type_condensed(4) = ip_clcmp_cnv_ice + end select +else if (control%l_ice .and. .not.control%l_drop) then + select case (control%i_cloud_representation) + case (ip_cloud_homogen, ip_cloud_ice_water) + cld%n_condensed = 1 + cld%type_condensed(1) = ip_clcmp_st_ice + case (ip_cloud_conv_strat, ip_cloud_csiw) + cld%n_condensed = 2 + cld%type_condensed(1) = ip_clcmp_st_ice + cld%type_condensed(2) = ip_clcmp_cnv_ice + end select +else if (.not.control%l_ice .and. control%l_drop) then + select case (control%i_cloud_representation) + case (ip_cloud_homogen, ip_cloud_ice_water) + cld%n_condensed = 1 + cld%type_condensed(1) = ip_clcmp_st_water + case (ip_cloud_conv_strat, ip_cloud_csiw) + cld%n_condensed = 2 + cld%type_condensed(1) = ip_clcmp_st_water + cld%type_condensed(2) = ip_clcmp_cnv_water + end select +else + cmessage = 'Cloud on, but no condensed components included.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) +end if + +do i=1, cld%n_condensed + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + i_phase = ip_phase_water + i_param_type = control%i_st_water + case (ip_clcmp_st_ice) + i_phase = ip_phase_ice + i_param_type = control%i_st_ice + case (ip_clcmp_cnv_water) + i_phase = ip_phase_water + i_param_type = control%i_cnv_water + case (ip_clcmp_cnv_ice) + i_phase = ip_phase_ice + i_param_type = control%i_cnv_ice + end select + + select case (i_phase) + case (ip_phase_water) + if (i_param_type <= 0) then + cld%i_condensed_param(i) = ip_drop_unparametrized + cmessage = 'Prescribed liquid cloud not yet implemented.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (i_param_type > spectrum%dim%nd_drop_type) then + cmessage = 'Liquid cloud type outside allowed range.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (spectrum%drop%l_drop_type(i_param_type)) then + ! Take parametrisation from spectral file + cld%i_condensed_param(i) = spectrum%drop%i_drop_parm(i_param_type) + cld%condensed_n_phf(i) = spectrum%drop%n_phf(i_param_type) + ! DEPENDS ON: set_n_cloud_parameter + n_cloud_parameter = set_n_cloud_parameter( cld%i_condensed_param(i), & + cld%type_condensed(i), cld%condensed_n_phf(i) ) + do j=1, spectrum%basic%n_band + do k=1, n_cloud_parameter + cld%condensed_param_list(k, i, j) & + = spectrum%drop%parm_list(k, j, i_param_type) + end do + end do + ! Assign droplet mass mixing ratio and effective radius + condensed_min_dim = spectrum%drop%parm_min_dim(i_param_type) + condensed_max_dim = spectrum%drop%parm_max_dim(i_param_type) + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + if (present(liq_mmr).and.present(liq_dim)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = liq_mmr(l, k) + cld%condensed_dim_char(l, k, i) = min( max( liq_dim(l, k), & + condensed_min_dim ), condensed_max_dim ) + end do + end do + else + cmessage = 'Liquid MMR and effective radius not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + case (ip_clcmp_cnv_water) + if (present(liq_conv_mmr).and.present(liq_conv_dim)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = liq_conv_mmr(l, k) + cld%condensed_dim_char(l, k, i) = min( max( liq_conv_dim(l, k), & + condensed_min_dim ), condensed_max_dim ) + end do + end do + else + cmessage = 'Convective liquid MMR and effective radius not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + end select + else + cmessage = 'Liquid cloud type not in spectral file.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + case (ip_phase_ice) + if (i_param_type <= 0) then + cld%i_condensed_param(i) = ip_ice_unparametrized + cmessage = 'Prescribed ice cloud not yet implemented.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (i_param_type > spectrum%dim%nd_ice_type) then + cmessage = 'Ice cloud type outside allowed range.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (spectrum%ice%l_ice_type(i_param_type)) then + ! Take parametrisation from spectral file + cld%i_condensed_param(i) = spectrum%ice%i_ice_parm(i_param_type) + cld%condensed_n_phf(i) = spectrum%ice%n_phf(i_param_type) + n_cloud_parameter = set_n_cloud_parameter( cld%i_condensed_param(i), & + cld%type_condensed(i), cld%condensed_n_phf(i) ) + do j=1, spectrum%basic%n_band + do k=1, n_cloud_parameter + cld%condensed_param_list(k, i, j) & + = spectrum%ice%parm_list(k, j, i_param_type) + end do + end do + ! Assign ice mass mixing ratio and effective dimension + condensed_min_dim = spectrum%ice%parm_min_dim(i_param_type) + condensed_max_dim = spectrum%ice%parm_max_dim(i_param_type) + select case (cld%type_condensed(i)) + case (ip_clcmp_st_ice) + if (present(ice_mmr).and.present(ice_dim)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = ice_mmr(l, k) + cld%condensed_dim_char(l, k, i) = min( max( ice_dim(l, k), & + condensed_min_dim ), condensed_max_dim ) + end do + end do + else + cmessage = 'Ice MMR and effective radius not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + case (ip_clcmp_cnv_ice) + if (present(ice_conv_mmr).and.present(ice_conv_dim)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = ice_conv_mmr(l, k) + cld%condensed_dim_char(l, k, i) = min( max( ice_conv_dim(l, k), & + condensed_min_dim ), condensed_max_dim ) + end do + end do + else + cmessage = 'Convective ice MMR and effective radius not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + end select + else + cmessage = 'Ice cloud type not in spectral file.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + end select +end do + +! Set the decorrelation scalings for cloud vertical overlap +if (present(dp_corr_strat)) then + cld%dp_corr_strat = dp_corr_strat +else + cld%dp_corr_strat = 0.0_RealK +end if +if (present(dp_corr_conv)) then + cld%dp_corr_conv = dp_corr_conv +else + cld%dp_corr_conv = 0.0_RealK +end if + + +!------------------------------------------------------------------------------ +! Set cloud amounts and convert mixing ratios to in-cloud values +!------------------------------------------------------------------------------ + +! Set cloud fractions +select case (control%i_cloud_representation) +case (ip_cloud_homogen) + cld%n_cloud_type = 1 + do i = 1, cld%n_condensed + i_cloud_type(i) = ip_cloud_type_homogen + end do + if (present(cloud_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_homogen) = cloud_frac(l, k) + end do + end do + else + cmessage = 'Cloud fraction not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if +case (ip_cloud_ice_water) + cld%n_cloud_type = 2 + do i = 1, cld%n_condensed + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + i_cloud_type(i) = ip_cloud_type_water + case (ip_clcmp_st_ice) + i_cloud_type(i) = ip_cloud_type_ice + end select + end do + if (present(liq_frac).and.present(ice_frac).and.present(cloud_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + if (liq_frac(l, k) + ice_frac(l, k) > eps) then + ! Split mixed phase fraction between ice and liquid + cld%frac_cloud(l, k, ip_cloud_type_water) = & + cloud_frac(l, k)*liq_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) + cld%frac_cloud(l, k, ip_cloud_type_ice) = & + cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) + else + cld%frac_cloud(l, k, ip_cloud_type_water) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_RealK + end if + end do + end do + else if (present(liq_frac).and.present(ice_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_water) = liq_frac(l, k) + cld%frac_cloud(l, k, ip_cloud_type_ice) = ice_frac(l, k) + end do + end do + else + cmessage = 'Liquid and ice cloud fractions not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if +case (ip_cloud_conv_strat) + cld%n_cloud_type = 2 + do i = 1, cld%n_condensed + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + i_cloud_type(i) = ip_cloud_type_strat + case (ip_clcmp_st_ice) + i_cloud_type(i) = ip_cloud_type_strat + case (ip_clcmp_cnv_water) + i_cloud_type(i) = ip_cloud_type_conv + case (ip_clcmp_cnv_ice) + i_cloud_type(i) = ip_cloud_type_conv + end select + end do + if (present(cloud_frac).and.present(conv_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_strat) = cloud_frac(l, k) + cld%frac_cloud(l, k, ip_cloud_type_conv) = conv_frac(l, k) + end do + end do + else + cmessage = 'Cloud fraction and convective cloud fraction not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if +case (ip_cloud_csiw) + cld%n_cloud_type = 4 + do i = 1, cld%n_condensed + select case (cld%type_condensed(i)) + case (ip_clcmp_st_water) + i_cloud_type(i) = ip_cloud_type_sw + case (ip_clcmp_st_ice) + i_cloud_type(i) = ip_cloud_type_si + case (ip_clcmp_cnv_water) + i_cloud_type(i) = ip_cloud_type_cw + case (ip_clcmp_cnv_ice) + i_cloud_type(i) = ip_cloud_type_ci + end select + end do + if (present(liq_frac).and.present(ice_frac).and.present(cloud_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + if (liq_frac(l, k) + ice_frac(l, k) > eps) then + ! Split mixed phase fraction between ice and liquid + cld%frac_cloud(l, k, ip_cloud_type_sw) = & + cloud_frac(l, k)*liq_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) + cld%frac_cloud(l, k, ip_cloud_type_si) = & + cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) + else + cld%frac_cloud(l, k, ip_cloud_type_sw) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_si) = 0.0_RealK + end if + end do + end do + else if (present(liq_frac).and.present(ice_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_sw) = liq_frac(l, k) + cld%frac_cloud(l, k, ip_cloud_type_si) = ice_frac(l, k) + end do + end do + else + cmessage = 'Liquid and ice cloud fractions not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if + if (present(liq_conv_frac).and.present(ice_conv_frac).and. & + present(conv_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + if (liq_conv_frac(l, k) + ice_conv_frac(l, k) > eps) then + ! Split mixed phase fraction between ice and liquid + cld%frac_cloud(l, k, ip_cloud_type_cw) = conv_frac(l, k) & + *liq_conv_frac(l, k) / (liq_conv_frac(l, k)+ice_conv_frac(l, k)) + cld%frac_cloud(l, k, ip_cloud_type_ci) = conv_frac(l, k) & + *ice_conv_frac(l, k) / (liq_conv_frac(l, k)+ice_conv_frac(l, k)) + else + cld%frac_cloud(l, k, ip_cloud_type_cw) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_ci) = 0.0_RealK + end if + end do + end do + else if (present(liq_conv_frac).and.present(ice_conv_frac)) then + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%frac_cloud(l, k, ip_cloud_type_cw) = liq_conv_frac(l, k) + cld%frac_cloud(l, k, ip_cloud_type_ci) = ice_conv_frac(l, k) + end do + end do + else + cmessage = 'Liquid and ice convective cloud fractions not provided.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + end if +end select + +! Convert mass mixing ratios to in-cloud values +do i = 1, cld%n_condensed + do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%condensed_mix_ratio(l, k, i) = cld%condensed_mix_ratio(l, k, i) & + / max(cld%frac_cloud(l, k, i_cloud_type(i)), eps) + end do + end do +end do + +! Normalise the cloud fractions +do k = dimen%id_cloud_top, n_layer + do l = 1, n_profile + cld%w_cloud(l, k) = sum(cld%frac_cloud(l, k, 1:cld%n_cloud_type)) + if (cld%w_cloud(l, k) > min_cloud_fraction) then + do j=1, cld%n_cloud_type + cld%frac_cloud(l, k, j) = cld%frac_cloud(l, k, j) / cld%w_cloud(l, k) + end do + else + cld%w_cloud(l, k) = 0.0_RealK + cld%frac_cloud(l, k, 1:cld%n_cloud_type) = 0.0_RealK + end if + if (cld%w_cloud(l, k) > 1.0_RealK + min_cloud_fraction) then + cmessage = 'Cloud fraction greater than 1.' + ierr=i_err_fatal + CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + else if (cld%w_cloud(l, k) > 1.0_RealK) then + cld%w_cloud(l, k) = 1.0_RealK + end if + end do +end do + +end subroutine set_cld +end module socrates_set_cld From 3fa5ede95ad45a6947bb9c1c4ce4d014fa91f54e Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 12:54:05 +0100 Subject: [PATCH 087/304] Changes to pass socrates clouds from simple cloud scheme. --- .../socrates/interface/read_control.F90 | 8 +- .../socrates/interface/socrates_calc.F90 | 33 ++++-- .../interface/socrates_config_mod.f90 | 9 +- .../socrates/interface/socrates_interface.F90 | 55 ++++++++-- .../socrates/interface/socrates_set_cld.F90 | 101 ++++++++++-------- .../driver/solo/idealized_moist_phys.F90 | 5 +- src/extra/model/socrates/path_names | 2 +- 7 files changed, 150 insertions(+), 63 deletions(-) diff --git a/src/atmos_param/socrates/interface/read_control.F90 b/src/atmos_param/socrates/interface/read_control.F90 index 5ed7fae81..92d5eeefb 100644 --- a/src/atmos_param/socrates/interface/read_control.F90 +++ b/src/atmos_param/socrates/interface/read_control.F90 @@ -15,7 +15,7 @@ SUBROUTINE read_control(control, spectrum) USE rad_pcf USE def_control, ONLY: StrCtrl, allocate_control USE def_spectrum, ONLY: StrSpecData -USE socrates_config_mod, ONLY: l_planet_grey_surface, inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a +USE socrates_config_mod, ONLY: l_planet_grey_surface, inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, account_for_clouds_in_socrates IMPLICIT NONE @@ -93,7 +93,11 @@ SUBROUTINE read_control(control, spectrum) control%i_gas_overlap = ip_overlap_k_eqv_scl ! Properties of clouds -control%i_cloud_representation = ip_cloud_off +if (account_for_clouds_in_socrates) then + control%i_cloud_representation = ip_cloud_ice_water +else + control%i_cloud_representation = ip_cloud_off +end if control%i_overlap = ip_max_rand control%i_inhom = ip_homogeneous diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index 6a07a8d3b..ab545635e 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -33,6 +33,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity, & layer_heat_capacity, & + cld_frac, reff_rad, mmr_cl_rad, & flux_direct, flux_down, flux_up, heating_rate, spectral_olr) use rad_pcf @@ -45,12 +46,12 @@ subroutine socrates_calc(Time_diag,control, spectrum, use def_aer, only: StrAer, deallocate_aer, deallocate_aer_prsc use def_out, only: StrOut, deallocate_out -use set_control_mod, only: set_control -use set_dimen_mod, only: set_dimen -use set_atm_mod, only: set_atm -use set_bound_mod, only: set_bound -use set_cld_mod, only: set_cld -use set_aer_mod, only: set_aer +use set_control_mod, only: set_control +use set_dimen_mod, only: set_dimen +use set_atm_mod, only: set_atm +use set_bound_mod, only: set_bound +use socrates_set_cld, only: set_cld +use set_aer_mod, only: set_aer use soc_constants_mod, only: i_def, r_def @@ -114,6 +115,15 @@ subroutine socrates_calc(Time_diag,control, spectrum, real(r_def), intent(in) :: layer_heat_capacity(n_profile, n_layer) ! Heat capacity of layer +real(r_def), intent(in) :: cld_frac(n_profile, n_layer) +! Cloud fraction at layer centres + +real(r_def), intent(in) :: reff_rad(n_profile, n_layer) +! Cloud liquid particle radius from simple cloud scheme + +real(r_def), intent(in) :: mmr_cl_rad(n_profile, n_layer) +! Cloud liquid mmr at layer centres + real(r_def), intent(out) :: flux_direct(n_profile, 0:n_layer) ! Direct (unscattered) downwards flux (Wm-2) real(r_def), intent(out) :: flux_down(n_profile, 0:n_layer) @@ -151,6 +161,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, !DIAG Diagnostic logical :: used +real(r_def) :: zeros_cld(n_profile, n_layer) call set_control(control) @@ -165,7 +176,15 @@ subroutine socrates_calc(Time_diag,control, spectrum, t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity) -call set_cld(control, dimen, spectrum, cld, n_profile) +! call set_cld(control, dimen, spectrum, cld, n_profile) + +call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & + liq_frac = cld_frac, & + ice_frac = zeros_cld, & + liq_mmr = mmr_cl_rad, & + ice_mmr = zeros_cld, & + liq_dim = reff_rad, & + ice_dim = zeros_cld ) call set_aer(control, dimen, spectrum, aer, n_profile) diff --git a/src/atmos_param/socrates/interface/socrates_config_mod.f90 b/src/atmos_param/socrates/interface/socrates_config_mod.f90 index 2689b940c..c97018716 100644 --- a/src/atmos_param/socrates/interface/socrates_config_mod.f90 +++ b/src/atmos_param/socrates/interface/socrates_config_mod.f90 @@ -41,7 +41,9 @@ module socrates_config_mod logical :: input_co2_mmr=.false. !Socrates wants input concentrations as mmr not vmr, so need to make sure input data supplied is converted if necessary logical :: use_pressure_interp_for_half_levels = .False. !By default (.False.) does linear interpolation in height for half-level temperatures. True does linear interp using pressure. - + + logical :: account_for_clouds_in_socrates = .false. !Do we want to account for the radiative effects of clouds in socrates? + ! Incoming radiation options for namelist integer :: solday=0 ! if >0, do perpetual run corresponding to day of the year = solday \in [0,days per year] @@ -126,7 +128,8 @@ module socrates_config_mod hfc134a_mix_ratio, & inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, & inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, & - use_pressure_interp_for_half_levels, & - frierson_solar_rad, del_sol, del_sw + use_pressure_interp_for_half_levels, & + frierson_solar_rad, del_sol, del_sw, & + account_for_clouds_in_socrates end module socrates_config_mod diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 1a03b44f0..a99b7a31e 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -432,6 +432,7 @@ end subroutine socrates_init ! ----------------------------------------------------------------------------- subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, fms_coszen, fms_rrsun, n_profile, n_layer, & + fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & output_heating_rate, output_flux_down, output_flux_up, output_soc_spectral_olr, output_flux_direct, t_half_level_out ) use realtype_rd @@ -470,7 +471,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), intent(in) :: rlat(:,:) real(r_def), intent(in) :: fms_z_full(:,:,:), fms_z_half(:,:,:) real(r_def), intent(in) :: fms_rrsun - + real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) ! Output arrays real(r_def), intent(out) :: output_heating_rate(:,:,:) @@ -491,7 +492,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & soc_heating_rate, input_o3_mixing_ratio, & input_co2_mixing_ratio,z_full_reshaped real, dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & - soc_flux_down, soc_flux_up, z_half_reshaped + soc_flux_down, soc_flux_up, z_half_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad real, dimension(n_profile) :: input_t_surf, input_cos_zenith_angle, input_solar_irrad, & input_orog_corr, input_planet_albedo @@ -531,7 +532,11 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_t = reshape(fms_temp(:,:,:),(/si*sj,sk /)) input_p = reshape(fms_p_full(:,:,:),(/si*sj,sk /)) input_p_level = reshape(fms_p_half(:,:,:),(/si*sj,sk+1 /)) - + + input_cld_frac = reshape(fms_cld_frac(:,:,:),(/si*sj,sk /)) + input_reff_rad = reshape(fms_reff_rad(:,:,:),(/si*sj,sk /)) + input_mmr_cl_rad = reshape(fms_mmr_cl_rad(:,:,:),(/si*sj,sk/)) + if (account_for_effect_of_water == .true.) then input_mixing_ratio = reshape(fms_spec_hum(:,:,:) / (1. - fms_spec_hum(:,:,:)),(/si*sj,sk /)) !Mass mixing ratio = q / (1-q) else @@ -652,6 +657,9 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_albedo(idx_chunk_start:idx_chunk_end), & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & + input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_reff_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & soc_flux_down(idx_chunk_start:idx_chunk_end,:), & soc_flux_up(idx_chunk_start:idx_chunk_end,:), & @@ -678,6 +686,9 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_albedo(idx_chunk_start:idx_chunk_end), & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & + input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_reff_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & soc_flux_down(idx_chunk_start:idx_chunk_end,:), & soc_flux_up(idx_chunk_start:idx_chunk_end,:), & @@ -703,7 +714,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & end subroutine socrates_interface subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf_in, p_full_in, p_half_in, z_full_in, z_half_in, albedo_in, & - temp_tend, net_surf_sw_down, surf_lw_down, delta_t) + temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple, cf_rad, reff_rad, qcl_rad) use astronomy_mod, only: diurnal_solar use constants_mod, only: pi, wtmco2, wtmozone, rdgas, gas_constant @@ -718,12 +729,15 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real, intent(inout), dimension(:,:,:) :: temp_tend real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down real, intent(in) :: delta_t + logical, intent(in) :: do_cloud_simple + real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad integer(i_def) :: n_profile, n_layer real(r_def), dimension(size(temp_in,1), size(temp_in,2)) :: t_surf_for_soc, rad_lat_soc, rad_lon_soc, albedo_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, z_full_soc - real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, z_half_soc,output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, z_half_soc logical :: soc_lw_mode, used integer :: seconds, days, year_in_s @@ -953,6 +967,33 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif + if(do_cloud_simple.and.account_for_clouds_in_socrates) then + cld_frac_soc = REAL(cf_rad, kind(r_def)) + reff_rad_soc = REAL(reff_rad, kind(r_def)) + + qcl_rad_soc = REAL(qcl_rad, kind(r_def)) + mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) + + elseif(do_cloud_simple.and..not.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) + + cld_frac_soc = 0. + reff_rad_soc = 0. + mmr_cl_rad_soc = 0. + + elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) + + cld_frac_soc = 0. + reff_rad_soc = 0. + mmr_cl_rad_soc = 0. + + endif + n_profile = INT(size(temp_in,2)*size(temp_in,1), kind(i_def)) n_layer = INT(size(temp_in,3), kind(i_def)) t_surf_for_soc = REAL(t_surf_in(:,:), kind(r_def)) @@ -975,7 +1016,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) + output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) @@ -990,7 +1031,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf soc_lw_mode = .FALSE. CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up) + output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc) tg_tmp_soc = tg_tmp_soc + output_heating_rate_sw*delta_t !Output heating rate in K/s, so is a temperature tendency net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)-output_soc_flux_sw_up(:,:,n_layer+1) ) diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 index 25e47a340..d98b215a6 100644 --- a/src/atmos_param/socrates/interface/socrates_set_cld.F90 +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -23,7 +23,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & use def_control, only: StrCtrl use def_dimen, only: StrDim use def_spectrum, only: StrSpecData -use realtype_rd, only: RealK +use soc_constants_mod, only: i_def, r_def use rad_pcf, only: & ip_cloud_homogen, ip_cloud_ice_water, ip_cloud_conv_strat, ip_cloud_csiw, & ip_clcmp_st_water, ip_clcmp_st_ice, ip_clcmp_cnv_water, ip_clcmp_cnv_ice, & @@ -32,8 +32,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & ip_cloud_type_strat, ip_cloud_type_conv, & ip_cloud_type_sw, ip_cloud_type_si, ip_cloud_type_cw, ip_cloud_type_ci, & ip_drop_unparametrized, ip_ice_unparametrized, i_normal, i_err_fatal -use ereport_mod, only: ereport -use errormessagelength_mod, only: errormessagelength + +use fms_mod, only: error_mesg, FATAL implicit none @@ -50,10 +50,10 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & ! Spectral data: type(StrSpecData), intent(in) :: spectrum -integer, intent(in) :: n_profile -integer, intent(in) :: n_layer +integer(i_def), intent(in) :: n_profile +integer(i_def), intent(in) :: n_layer -real(RealK), intent(in), optional :: & +real(r_def), intent(in), optional :: & cloud_frac(:,:), conv_frac(:,:), & liq_frac(:,:), ice_frac(:,:), liq_conv_frac(:,:), ice_conv_frac(:,:), & liq_mmr(:,:), ice_mmr(:,:), liq_conv_mmr(:,:), ice_conv_mmr(:,:), & @@ -61,7 +61,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & ! Liquid and ice cloud fractions, gridbox mean mixing ratios, and ! effective dimensions -real(RealK), intent(in), optional :: dp_corr_strat, dp_corr_conv +real(r_def), intent(in), optional :: dp_corr_strat, dp_corr_conv ! Decorrelation pressure scales for cloud vertical overlap @@ -73,16 +73,16 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & integer :: i_cloud_type(dimen%nd_cloud_component) ! Types of cloud to which each component contributes -real(RealK) :: condensed_min_dim -real(RealK) :: condensed_max_dim +real(r_def) :: condensed_min_dim +real(r_def) :: condensed_max_dim ! Minimum and maximum dimensions of each condensed component -real(RealK) :: eps = EPSILON(1.0) -real(RealK) :: min_cloud_fraction = 0.0001 +real(r_def) :: eps = EPSILON(1.0) +real(r_def) :: min_cloud_fraction = 0.0001 integer :: ierr = i_normal character (len=*), parameter :: RoutineName = 'SET_CLD' -character (len=errormessagelength) :: cmessage +character (len=128) :: cmessage ! Functions called integer, external :: set_n_cloud_parameter @@ -136,7 +136,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Cloud on, but no condensed components included.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) +! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if do i=1, cld%n_condensed @@ -161,11 +162,13 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%i_condensed_param(i) = ip_drop_unparametrized cmessage = 'Prescribed liquid cloud not yet implemented.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) else if (i_param_type > spectrum%dim%nd_drop_type) then cmessage = 'Liquid cloud type outside allowed range.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) else if (spectrum%drop%l_drop_type(i_param_type)) then ! Take parametrisation from spectral file cld%i_condensed_param(i) = spectrum%drop%i_drop_parm(i_param_type) @@ -195,7 +198,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Liquid MMR and effective radius not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_clcmp_cnv_water) if (present(liq_conv_mmr).and.present(liq_conv_dim)) then @@ -209,24 +213,28 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Convective liquid MMR and effective radius not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if end select else cmessage = 'Liquid cloud type not in spectral file.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_phase_ice) if (i_param_type <= 0) then cld%i_condensed_param(i) = ip_ice_unparametrized cmessage = 'Prescribed ice cloud not yet implemented.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) else if (i_param_type > spectrum%dim%nd_ice_type) then cmessage = 'Ice cloud type outside allowed range.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) else if (spectrum%ice%l_ice_type(i_param_type)) then ! Take parametrisation from spectral file cld%i_condensed_param(i) = spectrum%ice%i_ice_parm(i_param_type) @@ -255,7 +263,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Ice MMR and effective radius not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_clcmp_cnv_ice) if (present(ice_conv_mmr).and.present(ice_conv_dim)) then @@ -269,13 +278,15 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Convective ice MMR and effective radius not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if end select else cmessage = 'Ice cloud type not in spectral file.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if end select end do @@ -284,12 +295,12 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & if (present(dp_corr_strat)) then cld%dp_corr_strat = dp_corr_strat else - cld%dp_corr_strat = 0.0_RealK + cld%dp_corr_strat = 0.0_r_def end if if (present(dp_corr_conv)) then cld%dp_corr_conv = dp_corr_conv else - cld%dp_corr_conv = 0.0_RealK + cld%dp_corr_conv = 0.0_r_def end if @@ -313,7 +324,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Cloud fraction not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_cloud_ice_water) cld%n_cloud_type = 2 @@ -335,8 +347,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%frac_cloud(l, k, ip_cloud_type_ice) = & cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) else - cld%frac_cloud(l, k, ip_cloud_type_water) = 0.0_RealK - cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_water) = 0.0_r_def + cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_r_def end if end do end do @@ -350,7 +362,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Liquid and ice cloud fractions not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_cloud_conv_strat) cld%n_cloud_type = 2 @@ -376,7 +389,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Cloud fraction and convective cloud fraction not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if case (ip_cloud_csiw) cld%n_cloud_type = 4 @@ -402,8 +416,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%frac_cloud(l, k, ip_cloud_type_si) = & cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) else - cld%frac_cloud(l, k, ip_cloud_type_sw) = 0.0_RealK - cld%frac_cloud(l, k, ip_cloud_type_si) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_sw) = 0.0_r_def + cld%frac_cloud(l, k, ip_cloud_type_si) = 0.0_r_def end if end do end do @@ -417,7 +431,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Liquid and ice cloud fractions not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if if (present(liq_conv_frac).and.present(ice_conv_frac).and. & present(conv_frac)) then @@ -430,8 +445,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%frac_cloud(l, k, ip_cloud_type_ci) = conv_frac(l, k) & *ice_conv_frac(l, k) / (liq_conv_frac(l, k)+ice_conv_frac(l, k)) else - cld%frac_cloud(l, k, ip_cloud_type_cw) = 0.0_RealK - cld%frac_cloud(l, k, ip_cloud_type_ci) = 0.0_RealK + cld%frac_cloud(l, k, ip_cloud_type_cw) = 0.0_r_def + cld%frac_cloud(l, k, ip_cloud_type_ci) = 0.0_r_def end if end do end do @@ -445,7 +460,8 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & else cmessage = 'Liquid and ice convective cloud fractions not provided.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) end if end select @@ -468,15 +484,16 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cld%frac_cloud(l, k, j) = cld%frac_cloud(l, k, j) / cld%w_cloud(l, k) end do else - cld%w_cloud(l, k) = 0.0_RealK - cld%frac_cloud(l, k, 1:cld%n_cloud_type) = 0.0_RealK + cld%w_cloud(l, k) = 0.0_r_def + cld%frac_cloud(l, k, 1:cld%n_cloud_type) = 0.0_r_def end if - if (cld%w_cloud(l, k) > 1.0_RealK + min_cloud_fraction) then + if (cld%w_cloud(l, k) > 1.0_r_def + min_cloud_fraction) then cmessage = 'Cloud fraction greater than 1.' ierr=i_err_fatal - CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) - else if (cld%w_cloud(l, k) > 1.0_RealK) then - cld%w_cloud(l, k) = 1.0_RealK + ! CALL ereport(ModuleName//':'//RoutineName, ierr, cmessage) + call error_mesg(ModuleName,cmessage, FATAL) + else if (cld%w_cloud(l, k) > 1.0_r_def) then + cld%w_cloud(l, k) = 1.0_r_def end if end do end do diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 3326065c0..b48c25ba8 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -983,6 +983,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg endif +! write(6,*) minval(cf_rad), maxval(cf_rad), minval(reff_rad), maxval(reff_rad), minval(qcl_rad), maxval(qcl_rad) + tmp1 = maxval(reff_rad) tmp2 = maxval(cf_rad) @@ -1125,7 +1127,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! Socrates interface call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), t_surf(:,:), p_full(:,:,:,current), & - p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t) + p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), reff_rad(:,:,:), & + qcl_rad(:,:,:) ) endif #endif diff --git a/src/extra/model/socrates/path_names b/src/extra/model/socrates/path_names index 2f4dac9eb..7ec1ee810 100644 --- a/src/extra/model/socrates/path_names +++ b/src/extra/model/socrates/path_names @@ -583,7 +583,7 @@ atmos_param/socrates/src/trunk/src/general/calc_planck_tbl.f atmos_param/socrates/src/trunk/src/general/read_word.f atmos_param/socrates/interface/read_control.F90 atmos_param/socrates/interface/set_atm.F90 -atmos_param/socrates/interface/set_cld.F90 +atmos_param/socrates/interface/socrates_set_cld.F90 atmos_param/socrates/interface/set_dimen.F90 atmos_param/socrates/interface/socrates_config_mod.f90 atmos_param/socrates/interface/compress_spectrum.F90 From a90692589237f87d800b856b89555a3ad93564fd Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 13:02:38 +0100 Subject: [PATCH 088/304] Turned socrates clouds on for the first time, and hit error where cloud fraction is above one. Check this with Penny. --- .../socrates/interface/socrates_interface.F90 | 27 ++++++++++++------- .../driver/solo/idealized_moist_phys.F90 | 2 +- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index a99b7a31e..e8fd828a0 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -80,7 +80,7 @@ MODULE socrates_interface_mod CONTAINS - SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb, delta_t_atmos) + SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb, delta_t_atmos, do_cloud_simple) !! Initialises Socrates spectra, arrays, and constants USE astronomy_mod, only: astronomy_init @@ -94,6 +94,7 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb INTEGER, INTENT(in) :: is, ie, js, je, num_levels REAL, INTENT(in) , DIMENSION(:,:) :: lat REAL, INTENT(in) , DIMENSION(:,:) :: lonb, latb + LOGICAL, INTENT(IN) :: do_cloud_simple integer :: io, stdlog_unit integer :: res, time_step_seconds @@ -117,6 +118,18 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb !Initialise astronomy call astronomy_init + if(do_cloud_simple.and..not.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) + + elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) + + endif + !Initialise variables related to radiation timestep call get_time(delta_t_atmos,time_step_seconds) @@ -976,18 +989,12 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf elseif(do_cloud_simple.and..not.account_for_clouds_in_socrates) then - call error_mesg( 'run_socrates', & - 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) - cld_frac_soc = 0. reff_rad_soc = 0. mmr_cl_rad_soc = 0. elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then - call error_mesg( 'run_socrates', & - 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) - cld_frac_soc = 0. reff_rad_soc = 0. mmr_cl_rad_soc = 0. @@ -1016,7 +1023,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) + cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) @@ -1031,7 +1039,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf soc_lw_mode = .FALSE. CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc) + cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up) tg_tmp_soc = tg_tmp_soc + output_heating_rate_sw*delta_t !Output heating rate in K/s, so is a temperature tendency net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)-output_soc_flux_sw_up(:,:,n_layer+1) ) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index b48c25ba8..c51a4032a 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -763,7 +763,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l endif #else if (do_socrates_radiation) then - call socrates_init(is, ie, js, je, num_levels, axes, Time, rad_lat, rad_lonb_2d, rad_latb_2d, Time_step_in) + call socrates_init(is, ie, js, je, num_levels, axes, Time, rad_lat, rad_lonb_2d, rad_latb_2d, Time_step_in, do_cloud_simple) endif #endif From b2b83f5035154b3432b7256d45a1c0e645fa36e0 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 14:35:51 +0100 Subject: [PATCH 089/304] Initialised zeros array and getting seg-faults when ice fraction is not 1. --- src/atmos_param/socrates/interface/socrates_calc.F90 | 6 ++++-- src/atmos_param/socrates/interface/socrates_interface.F90 | 2 +- src/atmos_param/socrates/interface/socrates_set_cld.F90 | 1 + src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 6 +++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index ab545635e..b36e0ff7e 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -161,7 +161,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, !DIAG Diagnostic logical :: used -real(r_def) :: zeros_cld(n_profile, n_layer) +real(r_def) :: zeros_cld(n_profile, n_layer), ten_microns_cld(n_profile, n_layer) call set_control(control) @@ -178,9 +178,11 @@ subroutine socrates_calc(Time_diag,control, spectrum, ! call set_cld(control, dimen, spectrum, cld, n_profile) + zeros_cld = 0. + ten_microns_cld = 1. call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & liq_frac = cld_frac, & - ice_frac = zeros_cld, & + ice_frac = ten_microns_cld, & liq_mmr = mmr_cl_rad, & ice_mmr = zeros_cld, & liq_dim = reff_rad, & diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index e8fd828a0..70c41ad68 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -985,7 +985,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf reff_rad_soc = REAL(reff_rad, kind(r_def)) qcl_rad_soc = REAL(qcl_rad, kind(r_def)) - mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) + mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) !check if qcl is indeed specific humidity and not mmr elseif(do_cloud_simple.and..not.account_for_clouds_in_socrates) then diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 index d98b215a6..99fd4a30e 100644 --- a/src/atmos_param/socrates/interface/socrates_set_cld.F90 +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -482,6 +482,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & if (cld%w_cloud(l, k) > min_cloud_fraction) then do j=1, cld%n_cloud_type cld%frac_cloud(l, k, j) = cld%frac_cloud(l, k, j) / cld%w_cloud(l, k) + ! write(6,*) cld%frac_cloud(l, k, j) / cld%w_cloud(l, k), cld%frac_cloud(l, k, j) , cld%w_cloud(l, k), 'div?', cld%n_cloud_type end do else cld%w_cloud(l, k) = 0.0_r_def diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index c51a4032a..267311e16 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -1125,7 +1125,11 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg #else if (do_socrates_radiation) then ! Socrates interface - + + if(do_cloud_simple) then + reff_rad = 1.e-6 * reff_rad ! Simple cloud scheme outputs radii in microns. Socrates expects it in metres. + endif + call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), t_surf(:,:), p_full(:,:,:,current), & p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), reff_rad(:,:,:), & qcl_rad(:,:,:) ) From f41093e91f0c4195355995962ece7f746f736302 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 11:15:32 +0100 Subject: [PATCH 090/304] Update debugging flag to get socrities to compile --- src/extra/python/isca/templates/mkmf.template.debug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extra/python/isca/templates/mkmf.template.debug b/src/extra/python/isca/templates/mkmf.template.debug index 15afb1696..45d7e20a3 100644 --- a/src/extra/python/isca/templates/mkmf.template.debug +++ b/src/extra/python/isca/templates/mkmf.template.debug @@ -19,7 +19,7 @@ NETCDF_LIBS = `nc-config --libs` # This suppresses the warning: `warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value.` of which # there are a lot of instances in the GFDL codebase. FFLAGS_DEBUG = -check -check noarg_temp_created -check nopointer -warn -warn noerrors -debug variable_locations -inline_debug_info -fpe0 -traceback -ftrapuv -FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -fpic $(FFLAGS_DEBUG) +FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -mcmodel large $(FFLAGS_DEBUG) FC = $(F90) LD = $(F90) $(NETCDF_LIBS) #CC = mpicc From 2ed426789f3a5f924f95b53f06523a0b2fb3215d Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 11:16:31 +0100 Subject: [PATCH 091/304] Minor changes to soc test case for debugging. --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 41b77bc33..40afa259d 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -95,6 +95,7 @@ 'use_pressure_interp_for_half_levels':False, 'tidally_locked':False, #'solday': 90 + 'account_for_clouds_in_socrates': True, }, 'idealized_moist_phys_nml': { 'do_damping': True, @@ -165,8 +166,9 @@ }, 'sat_vapor_pres_nml': { - 'do_simple':True - }, + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, 'damping_driver_nml': { 'do_rayleigh': True, @@ -213,4 +215,4 @@ #This will be the name of the folder that the data will appear in. exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False) for i in range(2,121): - exp.run(i, num_cores=NCORES) + exp.run(i, num_cores=NCORES) \ No newline at end of file From 71f92afdc9a3a5faad17494a199bd066830f5a1a Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:42:36 +0100 Subject: [PATCH 092/304] Remove debug and account for clouds flag --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 40afa259d..daee3879d 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -109,7 +109,7 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True, + 'do_cloud_simple': True }, 'cloud_simple_nml': { From 18b5a70b4275bb0b882496b2fc15df45e5750d32 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:43:53 +0100 Subject: [PATCH 093/304] Socrates is not working properly with idb. Break points not behaving logically. Cant confirm the compile is working properly --- src/extra/python/isca/templates/mkmf.template.debug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extra/python/isca/templates/mkmf.template.debug b/src/extra/python/isca/templates/mkmf.template.debug index 45d7e20a3..15afb1696 100644 --- a/src/extra/python/isca/templates/mkmf.template.debug +++ b/src/extra/python/isca/templates/mkmf.template.debug @@ -19,7 +19,7 @@ NETCDF_LIBS = `nc-config --libs` # This suppresses the warning: `warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value.` of which # there are a lot of instances in the GFDL codebase. FFLAGS_DEBUG = -check -check noarg_temp_created -check nopointer -warn -warn noerrors -debug variable_locations -inline_debug_info -fpe0 -traceback -ftrapuv -FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -mcmodel large $(FFLAGS_DEBUG) +FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -fpic $(FFLAGS_DEBUG) FC = $(F90) LD = $(F90) $(NETCDF_LIBS) #CC = mpicc From eee4dff96bf3edb64dd4e10b7846730addff1c19 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:44:27 +0100 Subject: [PATCH 094/304] Removed additional unused files in order to get code to compile for using simple clouds and soc --- src/extra/model/socrates/path_names | 91 ----------------------------- 1 file changed, 91 deletions(-) diff --git a/src/extra/model/socrates/path_names b/src/extra/model/socrates/path_names index 7ec1ee810..1a143cb31 100644 --- a/src/extra/model/socrates/path_names +++ b/src/extra/model/socrates/path_names @@ -329,89 +329,6 @@ atmos_param/socrates/src/trunk/src/radiance_core/monochromatic_radiance.F90 atmos_param/socrates/src/trunk/src/radiance_core/aggregate_cloud.F90 atmos_param/socrates/src/trunk/src/radiance_core/radiance_calc.F90 atmos_param/socrates/src/trunk/src/radiance_core/ir_source.F90 -atmos_param/socrates/src/trunk/src/scatter/conjugate_gradient_cloud_90.f90 -atmos_param/socrates/src/trunk/src/scatter/method_weight_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/select_weight_scatter_90.f90 -atmos_param/socrates/src/trunk/src/scatter/measure_particle_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/prec_integral_tcf.f90 -atmos_param/socrates/src/trunk/src/scatter/def_s_scat_prop.f90 -atmos_param/socrates/src/trunk/src/scatter/db_scatter_integral.f90 -atmos_param/socrates/src/trunk/src/scatter/weightings_90.f90 -atmos_param/socrates/src/trunk/src/scatter/def_db_ss_mono.f90 -atmos_param/socrates/src/trunk/src/scatter/cloud_fitting.f90 -atmos_param/socrates/src/trunk/src/scatter/shape_particle_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/number_particle_90.f90 -atmos_param/socrates/src/trunk/src/scatter/db_interp_ss_mono.f90 -atmos_param/socrates/src/trunk/src/scatter/db_read_single_wavelength.f90 -atmos_param/socrates/src/trunk/src/scatter/get_refract_index.f90 -atmos_param/socrates/src/trunk/src/scatter/read_scatter_block_90.f90 -atmos_param/socrates/src/trunk/src/scatter/proj_area_particle.f90 -atmos_param/socrates/src/trunk/src/scatter/line_search_cloud_90.f90 -atmos_param/socrates/src/trunk/src/scatter/volume_particle.f90 -atmos_param/socrates/src/trunk/src/scatter/distribution_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/size_integral_90.f90 -atmos_param/socrates/src/trunk/src/scatter/particle_size_90.f90 -atmos_param/socrates/src/trunk/src/scatter/max_size_acf.f90 -atmos_param/socrates/src/trunk/src/scatter/write_average_90.f90 -atmos_param/socrates/src/trunk/src/scatter/adt_mitchell96.f90 -atmos_param/socrates/src/trunk/src/scatter/get_db_wavelengths.f90 -atmos_param/socrates/src/trunk/src/scatter/decompose_phf_90.f90 -atmos_param/socrates/src/trunk/src/scatter/cloud_fit_parm_acf.f90 -atmos_param/socrates/src/trunk/src/scatter/cloud_fit_90.f90 -atmos_param/socrates/src/trunk/src/scatter/ice_db_read_geometry.f90 -atmos_param/socrates/src/trunk/src/scatter/def_sct_db.f90 -atmos_param/socrates/src/trunk/src/scatter/open_average_90.f90 -atmos_param/socrates/src/trunk/src/scatter/def_size_dist.f90 -atmos_param/socrates/src/trunk/src/scatter/parm_integ_acf.f90 -atmos_param/socrates/src/trunk/src/scatter/bna_factor_ccf.f90 -atmos_param/socrates/src/trunk/src/scatter/def_db_crystal_geometry.f90 -atmos_param/socrates/src/trunk/src/scatter/get_wavelengths.f90 -atmos_param/socrates/src/trunk/src/scatter/weightings_single_90.f90 -atmos_param/socrates/src/trunk/src/scatter/scatter_algorithm_pcf.f90 -atmos_param/socrates/src/trunk/src/scatter/db_type_ucf.f90 -atmos_param/socrates/src/trunk/src/scatter/scatter_integral_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/voigt_profile.f90 -atmos_param/socrates/src/trunk/src/correlated_k/adjust_path.f90 -atmos_param/socrates/src/trunk/src/correlated_k/func_scale_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/read_pt_line_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/set_condition_ck_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/caviar_continuum_v1_0.f90 -atmos_param/socrates/src/trunk/src/correlated_k/rad_weight_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/select_weight_ck_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/trans_k_dist.f90 -atmos_param/socrates/src/trunk/src/correlated_k/type_residual_pcf.f90 -atmos_param/socrates/src/trunk/src/correlated_k/map_shell.f90 -atmos_param/socrates/src/trunk/src/correlated_k/terminate_scale_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/ckd_continuum_v2_4.f90 -atmos_param/socrates/src/trunk/src/correlated_k/write_fit_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/ck_parm_acf.f90 -atmos_param/socrates/src/trunk/src/correlated_k/fit_parabola_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/func_scale_derivative_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/optimal_k.f90 -atmos_param/socrates/src/trunk/src/correlated_k/open_file_out_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/residual_gradient_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/scale_ck_fit_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/read_ref_pt_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/corr_k_single.f90 -atmos_param/socrates/src/trunk/src/correlated_k/planck_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/exponent_fit_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/conjugate_gradient_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/line_prof_corr_mod.f90 -atmos_param/socrates/src/trunk/src/correlated_k/set_extern_ckd_frn_data.f90 -atmos_param/socrates/src/trunk/src/correlated_k/set_g_point_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/bi_interp.f90 -atmos_param/socrates/src/trunk/src/correlated_k/residual_trans_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/set_extern_ckd_self_data.f90 -atmos_param/socrates/src/trunk/src/correlated_k/line_search_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/read_hitran.f90 -atmos_param/socrates/src/trunk/src/correlated_k/read_nc.f90 -atmos_param/socrates/src/trunk/src/correlated_k/ckd_extern_data.f90 -atmos_param/socrates/src/trunk/src/correlated_k/def_hitran_record.f90 -atmos_param/socrates/src/trunk/src/correlated_k/d_planck_90.f90 -atmos_param/socrates/src/trunk/src/correlated_k/scale_parameters_acf.f90 -atmos_param/socrates/src/trunk/src/correlated_k/offset_residual_trans_acf.f90 -atmos_param/socrates/src/trunk/src/correlated_k/hitran_cnst.f90 -atmos_param/socrates/src/trunk/src/correlated_k/ck_fit_pcf.f90 atmos_param/socrates/src/trunk/src/aux/qsat_wat.F90 atmos_param/socrates/src/trunk/src/aux/qsat_gill.F90 atmos_param/socrates/src/trunk/src/aux/write_cdf.f90 @@ -434,7 +351,6 @@ atmos_param/socrates/src/trunk/src/general/make_block_18.f90 atmos_param/socrates/src/trunk/src/general/remove_negative_gas_90.f90 atmos_param/socrates/src/trunk/src/general/make_block_17.f90 atmos_param/socrates/src/trunk/src/general/make_block_1.f90 -atmos_param/socrates/src/trunk/src/general/solar_intensity_90.f90 atmos_param/socrates/src/trunk/src/general/make_block_19.f90 atmos_param/socrates/src/trunk/src/general/make_block_0.f90 atmos_param/socrates/src/trunk/src/general/make_block_10.f90 @@ -484,8 +400,6 @@ atmos_param/socrates/src/trunk/src/radiation_control/set_moist_aerosol_propertie atmos_param/socrates/src/trunk/src/radiation_control/mcica_mod.F90 atmos_param/socrates/src/trunk/src/radiation_control/cld_generator_mod.F90 atmos_param/socrates/src/trunk/src/radiation_control/open_cloud_gen.F90 -atmos_param/socrates/src/trunk/src/um/out_nml.f90 -atmos_param/socrates/src/trunk/src/um/def_um_nml.f90 atmos_param/socrates/src/trunk/src/modules_core/errormessagelength_mod.F90 atmos_param/socrates/src/trunk/src/modules_core/dimensions_spec_ucf.F90 atmos_param/socrates/src/trunk/src/modules_core/rad_ccf.F90 @@ -497,11 +411,6 @@ atmos_param/socrates/src/trunk/src/modules_core/vectlib_mod.F90 atmos_param/socrates/src/trunk/src/modules_core/ereport_mod.F90 atmos_param/socrates/src/trunk/src/modules_core/realtype_rd.f90 atmos_param/socrates/src/trunk/src/modules_core/filenamelength_mod.F90 -atmos_param/socrates/src/trunk/src/scatter/grow_particles.f -atmos_param/socrates/src/trunk/src/scatter/mie_scatter.f -atmos_param/socrates/src/trunk/src/scatter/adt_integral.f -atmos_param/socrates/src/trunk/src/scatter/gamma_fnc.f -atmos_param/socrates/src/trunk/src/scatter/refractive_index.f atmos_param/socrates/src/trunk/src/aux/output_vert_cdl.f atmos_param/socrates/src/trunk/src/aux/assign_input_opt_cdf.f atmos_param/socrates/src/trunk/src/aux/assign_input_ss_cdl.f From 9c57555cbf4d5fd2d163cd9725b591de94bfabd4 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:44:51 +0100 Subject: [PATCH 095/304] Initialise variables and cleaning debug statements --- .../driver/solo/idealized_moist_phys.F90 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 267311e16..7e87562a6 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -809,7 +809,6 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(1,1,1):: tracer, tracertnd integer :: nql, nqi, nqa ! tracer indices for stratiform clouds -real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging if(current == previous) then delta_t = dt_real @@ -970,6 +969,12 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! Call the simple cloud scheme in line with SPOOKIE-2 requirements ! Using start of time step variables ! using soecific humidity NOT mixing ratios + + !Set to zero regarles of if clouds are used in radiation code + cf_rad = 0. + reff_rad = 0. + qcl_rad = 0. + if(do_cloud_simple) then call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & @@ -983,11 +988,6 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg endif -! write(6,*) minval(cf_rad), maxval(cf_rad), minval(reff_rad), maxval(reff_rad), minval(qcl_rad), maxval(qcl_rad) - -tmp1 = maxval(reff_rad) -tmp2 = maxval(cf_rad) - ! Begin the radiation calculation by computing downward fluxes. ! This part of the calculation does not depend on the surface temperature. From e897a836c47f66f306ca5b8cb8a67b611ea27f7d Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:45:15 +0100 Subject: [PATCH 096/304] Remove account for cloud flag from namelist --- src/atmos_param/socrates/interface/read_control.F90 | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/atmos_param/socrates/interface/read_control.F90 b/src/atmos_param/socrates/interface/read_control.F90 index 92d5eeefb..755a10357 100644 --- a/src/atmos_param/socrates/interface/read_control.F90 +++ b/src/atmos_param/socrates/interface/read_control.F90 @@ -9,13 +9,15 @@ MODULE read_control_mod ! Subroutine to set input algorithmic options for the core radiation code !------------------------------------------------------------------------------ -SUBROUTINE read_control(control, spectrum) +SUBROUTINE read_control(control, spectrum, do_cloud_simple) USE rad_pcf USE def_control, ONLY: StrCtrl, allocate_control USE def_spectrum, ONLY: StrSpecData -USE socrates_config_mod, ONLY: l_planet_grey_surface, inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, account_for_clouds_in_socrates +USE socrates_config_mod, ONLY: l_planet_grey_surface, inc_h2o, inc_co2, inc_co, & + inc_o3, inc_n2o, inc_ch4, inc_o2, inc_so2, inc_cfc11, & + inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a IMPLICIT NONE @@ -26,6 +28,10 @@ SUBROUTINE read_control(control, spectrum) ! Spectral data: TYPE (StrSpecData), INTENT(IN) :: spectrum +LOGICAL, INTENT(IN), OPTIONAL :: do_cloud_simple + + + ! Local variables. INTEGER :: i ! Loop variable @@ -93,7 +99,7 @@ SUBROUTINE read_control(control, spectrum) control%i_gas_overlap = ip_overlap_k_eqv_scl ! Properties of clouds -if (account_for_clouds_in_socrates) then +if (do_cloud_simple) then control%i_cloud_representation = ip_cloud_ice_water else control%i_cloud_representation = ip_cloud_off From db746214e26283c283e0e7f42274a5a95b00d0cc Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:45:47 +0100 Subject: [PATCH 097/304] Was using 1 micron as a work around for debugging. Should be zero --- src/atmos_param/socrates/interface/socrates_calc.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index b36e0ff7e..0fd98b578 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -182,7 +182,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, ten_microns_cld = 1. call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & liq_frac = cld_frac, & - ice_frac = ten_microns_cld, & + ice_frac = zeros_cld, & liq_mmr = mmr_cl_rad, & ice_mmr = zeros_cld, & liq_dim = reff_rad, & From ac3ad25b3aac6927ea0b1a5faf002b5d28505882 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:47:19 +0100 Subject: [PATCH 098/304] File cleaning. Changes to fix seg fault which originated due to flipped pressure levels. Removed account for clouds. --- .../interface/socrates_config_mod.f90 | 3 - .../socrates/interface/socrates_interface.F90 | 95 ++++++++++--------- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_config_mod.f90 b/src/atmos_param/socrates/interface/socrates_config_mod.f90 index c97018716..90a712da8 100644 --- a/src/atmos_param/socrates/interface/socrates_config_mod.f90 +++ b/src/atmos_param/socrates/interface/socrates_config_mod.f90 @@ -42,8 +42,6 @@ module socrates_config_mod logical :: use_pressure_interp_for_half_levels = .False. !By default (.False.) does linear interpolation in height for half-level temperatures. True does linear interp using pressure. - logical :: account_for_clouds_in_socrates = .false. !Do we want to account for the radiative effects of clouds in socrates? - ! Incoming radiation options for namelist integer :: solday=0 ! if >0, do perpetual run corresponding to day of the year = solday \in [0,days per year] @@ -131,5 +129,4 @@ module socrates_config_mod use_pressure_interp_for_half_levels, & frierson_solar_rad, del_sol, del_sw, & account_for_clouds_in_socrates - end module socrates_config_mod diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 70c41ad68..daf6f2cf0 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -118,18 +118,6 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb !Initialise astronomy call astronomy_init - if(do_cloud_simple.and..not.account_for_clouds_in_socrates) then - - call error_mesg( 'run_socrates', & - 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) - - elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then - - call error_mesg( 'run_socrates', & - 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) - - endif - !Initialise variables related to radiation timestep call get_time(delta_t_atmos,time_step_seconds) @@ -210,10 +198,10 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb CALL read_spectrum(control_sw_hires%spectral_file,spectrum_sw_hires) ! Set Socrates configuration - CALL read_control(control_lw,spectrum_lw) - CALL read_control(control_lw_hires,spectrum_lw_hires) - CALL read_control(control_sw,spectrum_sw) - CALL read_control(control_sw_hires,spectrum_sw_hires) + CALL read_control(control_lw,spectrum_lw, do_cloud_simple) + CALL read_control(control_lw_hires,spectrum_lw_hires, do_cloud_simple) + CALL read_control(control_sw,spectrum_sw, do_cloud_simple) + CALL read_control(control_sw_hires,spectrum_sw_hires, do_cloud_simple) ! Specify LW and SW setups control_sw%isolir=1 @@ -444,9 +432,15 @@ end subroutine socrates_init ! Set up the call to the Socrates radiation scheme ! ----------------------------------------------------------------------------- subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & - fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, fms_coszen, fms_rrsun, n_profile, n_layer, & - fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & - output_heating_rate, output_flux_down, output_flux_up, output_soc_spectral_olr, output_flux_direct, t_half_level_out ) + fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, & + fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, & + fms_coszen, fms_rrsun, n_profile, n_layer, & + fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & + output_heating_rate, output_flux_down, output_flux_up, & + do_cloud_simple, & + !optionals + output_soc_spectral_olr, output_flux_direct, & + t_half_level_out ) use realtype_rd use read_control_mod @@ -486,10 +480,14 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), intent(in) :: fms_rrsun real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) + logical, intent(in) :: do_cloud_simple + ! Output arrays real(r_def), intent(out) :: output_heating_rate(:,:,:) real(r_def), intent(out) :: output_flux_up(:,:,:) real(r_def), intent(out) :: output_flux_down(:,:,:) + + real(r_def), intent(out), optional :: output_flux_direct(:,:,:) real(r_def), intent(out), optional :: output_soc_spectral_olr(:,:,:) real(r_def), intent(out), optional :: t_half_level_out(size(fms_temp,1),size(fms_temp,2),size(fms_temp,3)+1) @@ -500,13 +498,15 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & REAL :: soc_spectral_olr(n_profile, size(outputted_soc_spectral_olr,3)) ! Arrays to send to Socrates - real, dimension(n_profile, n_layer) :: input_p, input_t, input_mixing_ratio, & + real(r_def), dimension(n_profile, n_layer) :: input_p, input_t, input_mixing_ratio, & input_d_mass, input_density, input_layer_heat_capacity, & soc_heating_rate, input_o3_mixing_ratio, & - input_co2_mixing_ratio,z_full_reshaped - real, dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & - soc_flux_down, soc_flux_up, z_half_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad - real, dimension(n_profile) :: input_t_surf, input_cos_zenith_angle, input_solar_irrad, & + input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad + + real(r_def), dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & + soc_flux_down, soc_flux_up, z_half_reshaped + + real(r_def), dimension(n_profile) :: input_t_surf, input_cos_zenith_angle, input_solar_irrad, & input_orog_corr, input_planet_albedo @@ -533,7 +533,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & !----------------------------i ! Set array sizes - input_n_cloud_layer = n_layer + input_n_cloud_layer = 1 input_n_aer_mode = n_layer input_cld_subcol_gen = n_layer input_cld_subcol_req = n_layer @@ -615,7 +615,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & ! Test if LW or SW mode if (soc_lw_mode == .TRUE.) then control_lw%isolir = 2 - CALL read_control(control_lw, spectrum_lw) + CALL read_control(control_lw, spectrum_lw, do_cloud_simple) if (socrates_hires_mode == .FALSE.) then control_calc = control_lw spectrum_calc = spectrum_lw @@ -626,7 +626,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & else control_sw%isolir = 1 - CALL read_control(control_sw, spectrum_sw) + CALL read_control(control_sw, spectrum_sw, do_cloud_simple) if(socrates_hires_mode == .FALSE.) then control_calc = control_sw spectrum_calc = spectrum_sw @@ -639,7 +639,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & ! Do calculation - CALL read_control(control_calc, spectrum_calc) + CALL read_control(control_calc, spectrum_calc, do_cloud_simple) n_chunk_loop = (si*sj)/chunk_size n_profile_chunk = n_profile / n_chunk_loop @@ -980,21 +980,14 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif - if(do_cloud_simple.and.account_for_clouds_in_socrates) then + if(do_cloud_simple) then cld_frac_soc = REAL(cf_rad, kind(r_def)) reff_rad_soc = REAL(reff_rad, kind(r_def)) qcl_rad_soc = REAL(qcl_rad, kind(r_def)) mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) !check if qcl is indeed specific humidity and not mmr - elseif(do_cloud_simple.and..not.account_for_clouds_in_socrates) then - - cld_frac_soc = 0. - reff_rad_soc = 0. - mmr_cl_rad_soc = 0. - - elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then - + else cld_frac_soc = 0. reff_rad_soc = 0. mmr_cl_rad_soc = 0. @@ -1004,7 +997,6 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf n_profile = INT(size(temp_in,2)*size(temp_in,1), kind(i_def)) n_layer = INT(size(temp_in,3), kind(i_def)) t_surf_for_soc = REAL(t_surf_in(:,:), kind(r_def)) - ! LW calculation ! Retrieve output_heating_rate, and downward surface SW and LW fluxes soc_lw_mode = .TRUE. @@ -1021,10 +1013,17 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf z_full_soc = REAL(z_full_in, kind(r_def)) z_half_soc = REAL(z_half_in, kind(r_def)) - CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & - tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & - output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, output_soc_spectral_olr = outputted_soc_spectral_olr, t_half_level_out = t_half_out) + + CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & + tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & + p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & + n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, & + do_cloud_simple, & + !optional outs + output_soc_spectral_olr = outputted_soc_spectral_olr, & + t_half_level_out = t_half_out) + tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) @@ -1034,13 +1033,17 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf temp_tend(:,:,:) = temp_tend(:,:,:) + real(output_heating_rate_lw) + ! SW calculation ! Retrieve output_heating_rate, and downward surface SW and LW fluxes soc_lw_mode = .FALSE. - CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & - tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, n_profile, n_layer, & - cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & - output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up) + CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & + tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & + p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & + n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, & + do_cloud_simple) + tg_tmp_soc = tg_tmp_soc + output_heating_rate_sw*delta_t !Output heating rate in K/s, so is a temperature tendency net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)-output_soc_flux_sw_up(:,:,n_layer+1) ) From bcfa977c327720eb05b9ee0ca002ae349eaefc77 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 17:56:16 +0100 Subject: [PATCH 099/304] Added a with and without cloud test case for soc --- .../socrates_test/socrates_aquaplanet.py | 19 +- .../socrates_aquaplanet_with_cloud.py | 209 ++++++++++++++++++ 2 files changed, 216 insertions(+), 12 deletions(-) create mode 100644 exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index daee3879d..98618756d 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet', codebase=cb) +exp = Experiment('soc_test_aquaplanet_without_clouds', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -59,6 +59,10 @@ diag.add_field('socrates', 'soc_olr', time_avg=True) diag.add_field('socrates', 'soc_toa_sw', time_avg=True) diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) +diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) # additional output options commented out #diag.add_field('socrates', 'soc_flux_lw', time_avg=True) @@ -95,7 +99,7 @@ 'use_pressure_interp_for_half_levels':False, 'tidally_locked':False, #'solday': 90 - 'account_for_clouds_in_socrates': True, + 'account_for_clouds_in_socrates': False, }, 'idealized_moist_phys_nml': { 'do_damping': True, @@ -109,18 +113,9 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True + 'do_cloud_simple': False }, - 'cloud_simple_nml': { - 'simple_cca':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3, - 'rhmsfc': 0.95, - 'rhm700': 0.7, - 'rhm200': 0.3, - }, 'vert_turb_driver_nml': { 'do_mellor_yamada': False, # default: True diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py new file mode 100644 index 000000000..fa0d348fe --- /dev/null +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -0,0 +1,209 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('soc_test_aquaplanet_with_clouds', codebase=cb) +exp.clear_rundir() + +inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Tell model which diagnostics to write +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) + +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) + +# additional output options commented out +#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_co2', time_avg=True) +#diag.add_field('socrates', 'soc_ozone', time_avg=True) +#diag.add_field('socrates', 'soc_coszen', time_avg=True) +#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) + +exp.diag_table = diag +exp.inputfiles = inputfiles + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True + }, + + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3 + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 2.5, #Depth of mixed layer used + 'albedo_value': 0.38, #Albedo value used + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03 + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) + + for i in range(2,121): + exp.run(i, num_cores=NCORES) From 4e6379ffa5a10a5f951c081ff22c724ed692a85a Mon Sep 17 00:00:00 2001 From: sit23 Date: Thu, 6 Dec 2018 09:44:09 +0000 Subject: [PATCH 100/304] Small changes at James Manners suggestion. Changes results A LOT, so this needs to be checked closely. --- exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py | 2 +- src/atmos_param/socrates/interface/set_dimen.F90 | 3 ++- src/atmos_param/socrates/interface/socrates_interface.F90 | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index fa0d348fe..647ec0751 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet_with_clouds', codebase=cb) +exp = Experiment('soc_test_aquaplanet_with_clouds_post_jm_suggestions', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index 4f62eb3f9..6cf8eeac8 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -63,7 +63,8 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & dimen%id_cloud_top = dimen%nd_layer + 1 - n_cloud_layer IF (control%l_cloud) THEN - dimen%nd_layer_clr = dimen%id_cloud_top - 1 + dimen%nd_layer_clr = MAX(dimen%id_cloud_top - 1, dimen%nd_layer) + ! MAX(dimen%id_cloud_top - 1, 1) ELSE dimen%nd_layer_clr = dimen%nd_layer END IF diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index daf6f2cf0..1dabdc602 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -533,7 +533,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & !----------------------------i ! Set array sizes - input_n_cloud_layer = 1 + input_n_cloud_layer = n_layer input_n_aer_mode = n_layer input_cld_subcol_gen = n_layer input_cld_subcol_req = n_layer From afb2fd064dc9dc6885109d3292e8a245b6cfd31a Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 11:22:17 +0000 Subject: [PATCH 101/304] Update suite to have more diagnostics --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 647ec0751..2803f3100 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -56,6 +56,9 @@ diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) + # additional output options commented out #diag.add_field('socrates', 'soc_flux_lw', time_avg=True) @@ -90,7 +93,8 @@ 'store_intermediate_rad':True, 'chunk_size': 16, 'use_pressure_interp_for_half_levels':False, - 'tidally_locked':False + 'tidally_locked':False, + 'sol_day':90 }, 'idealized_moist_phys_nml': { 'do_damping': True, From 7513cf31b28f3f31ff1b8689559286605525c765 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 11:23:24 +0000 Subject: [PATCH 102/304] Changes to simple clouds for more fields to be outputted --- src/atmos_param/cloud_simple/cloud_simple.F90 | 91 ++++++++++++------- 1 file changed, 56 insertions(+), 35 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index c35708ad3..ffcae1385 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -28,7 +28,9 @@ module cloud_simple_mod rhmsfc, rhm700, rhm200 real :: zerodegc = 273.15 - integer :: id_cf_rad, id_reff_rad, id_frac_liq, id_qcl_rad + integer :: id_cf, id_reff_rad, id_frac_liq, id_qcl_rad, id_rh_in_cf, id_simple_rhcrit + + character(len=14), parameter :: mod_name_cld = "cloud_simple" contains @@ -57,8 +59,8 @@ subroutine cloud_simple_init (axes, Time) write(stdlog_unit, cloud_simple_nml) !register diagnostics - id_cf_rad = & - register_diag_field ( mod_name_cld, 'cf_rad', axes(1:3), Time, & + id_cf = & + register_diag_field ( mod_name_cld, 'cf', axes(1:3), Time, & 'Cloud fraction for the simple cloud scheme', 'unitless: values 0-1') id_frac_liq = & @@ -76,30 +78,45 @@ subroutine cloud_simple_init (axes, Time) 'Specific humidity of cloud liquid', & 'kg/kg') + + id_rh_in_cf = & + register_diag_field ( mod_name_cld, 'rh_in_cf', axes(1:3), Time, & + 'RH as a percent', & + '%') + + id_simple_rhcrit = & + register_diag_field ( mod_name_cld, 'simple_rhcrit', axes(1:3), Time, & + 'RH as a percent', & + '%') + + + + + do_init = .false. !initialisation completed end subroutine cloud_simple_init !----------------------------------------------- - subroutine cloud_simple (p_half, p_full, Time, & - temp, q_hum, & + subroutine cloud_simple(p_half, p_full, Time, & + temp, q_hum, & ! outs - cf_rad, reff_rad, qcl_rad ) + cf, reff_rad, qcl_rad ) real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half type(time_type) , intent(in) :: Time - real , intent(out), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad + real , intent(out), dimension(:,:,:) :: cf, reff_rad, qcl_rad + + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq, rh_in_cf, simple_rhcrit - real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq - real :: simple_rhcrit integer :: i, j, k, k_surf logical :: es_over_liq_and_ice - real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & @@ -117,20 +134,15 @@ subroutine cloud_simple (p_half, p_full, Time, & !caluclate the frac_liq call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) - call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit) - call calc_cf_rad(q_hum(i,j,k), qs(i,j,k), simple_rhcrit, cf_rad(i,j,k)) - call calc_qcl_rad(p_full(i,j,k), cf_rad(i,j,k), qcl_rad(i,j,k) ) + call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) + call calc_cf(q_hum(i,j,k), qs(i,j,k), simple_rhcrit(i,j,k), cf(i,j,k),rh_in_cf(i,j,k)) + call calc_qcl_rad(p_full(i,j,k), cf(i,j,k), qcl_rad(i,j,k) ) end do end do end do !save some diagnotics - call output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time ) - -tmp2 = maxval(cf_rad) -tmp1 = maxval(reff_rad) -tmp2 = maxval(cf_rad) - + call output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time ) end subroutine cloud_simple @@ -184,17 +196,18 @@ subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - end subroutine calc_rhcrit - subroutine calc_cf_rad (q_hum, qsat, simple_rhcrit, cf_rad) + subroutine calc_cf (q_hum, qsat, simple_rhcrit, cf, rh) ! Calculate LS (stratiform) cloud fraction ! as a simple linear function of RH real, intent(in) :: q_hum, qsat, simple_rhcrit - real, intent(out) :: cf_rad + real, intent(out) :: cf, rh - real :: rh, cca + real :: cca rh = q_hum/qsat - cf_rad = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) + cf = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) + ! include simple convective cloud fraction where present @@ -202,17 +215,16 @@ subroutine calc_cf_rad (q_hum, qsat, simple_rhcrit, cf_rad) ! left in for fture use if (cca > 0.0) then - cf_rad = MAX( simple_cca, cf_rad ) + cf = MAX( simple_cca, cf ) end if + - - - end subroutine calc_cf_rad + end subroutine calc_cf - subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) - ! calculate simple water content + subroutine calc_qcl_rad(p_full, cf, qcl_rad) + ! calculate water content - real , intent(in) :: p_full, cf_rad + real , intent(in) :: p_full, cf real , intent(out) :: qcl_rad real :: in_cloud_qcl @@ -222,22 +234,22 @@ subroutine calc_qcl_rad(p_full, cf_rad, qcl_rad) in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg - qcl_rad = cf_rad * in_cloud_qcl + qcl_rad = cf * in_cloud_qcl end subroutine calc_qcl_rad - subroutine output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time) + subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time) - real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, frac_liq, qcl_rad + real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit type(time_type) , intent(in) :: Time real :: used - if ( id_cf_rad > 0 ) then - used = send_data ( id_cf_rad, cf_rad, Time) + if ( id_cf > 0 ) then + used = send_data ( id_cf, cf, Time) endif if ( id_reff_rad > 0 ) then @@ -252,6 +264,15 @@ subroutine output_cloud_diags(cf_rad, reff_rad, frac_liq, qcl_rad, Time) used = send_data ( id_qcl_rad, qcl_rad, Time) endif + if ( id_rh_in_cf > 0 ) then + used = send_data ( id_rh_in_cf, rh_in_cf*100., Time) + endif + + if ( id_simple_rhcrit > 0 ) then + used = send_data ( id_simple_rhcrit, simple_rhcrit*100.0, Time) + endif + + end subroutine output_cloud_diags From af5eff3a19bc82be2e222f66b0e08aa624e838d4 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 11:24:16 +0000 Subject: [PATCH 103/304] Change to cloud layer will have no science impact but easier to understand logic --- src/atmos_param/socrates/interface/set_dimen.F90 | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index 6cf8eeac8..01d9aca75 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -61,10 +61,12 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & dimen%nd_subcol_gen = cld_subcol_gen dimen%nd_subcol_req = cld_subcol_req -dimen%id_cloud_top = dimen%nd_layer + 1 - n_cloud_layer +dimen%id_cloud_top = dimen%nd_layer + 1 - n_cloud_layer !ie TOA IF (control%l_cloud) THEN - dimen%nd_layer_clr = MAX(dimen%id_cloud_top - 1, dimen%nd_layer) - ! MAX(dimen%id_cloud_top - 1, 1) + ! this gives the allocate the full column for radiation + ! rather than the layers over which cloud is present + dimen%nd_layer_clr = dimen%nd_layer + ELSE dimen%nd_layer_clr = dimen%nd_layer END IF From ec2abd30cd769bc4125f1515d35308f4cc1add0b Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 12:04:20 +0000 Subject: [PATCH 104/304] qsat is causing very large RH values. Debugging --- exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py | 2 +- src/atmos_param/cloud_simple/cloud_simple.F90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 2803f3100..10afc714b 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -52,7 +52,7 @@ diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) diag.add_field('socrates', 'soc_olr', time_avg=True) diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'cf', time_avg=True) diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index ffcae1385..e1e57b04b 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -123,7 +123,7 @@ subroutine cloud_simple(p_half, p_full, Time, & 'cloud_simple_init has not been called.', FATAL) ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! - call compute_qs(temp, p_full, qs, es_over_liq_and_ice=.true.) !qs=qsat in um + call compute_qs(temp, p_full, qs) !qs=qsat in um k_surf = size(temp, 3) From c539ed479ffeb3df13a4d4410371fbc0dbb5b010 Mon Sep 17 00:00:00 2001 From: sit23 Date: Thu, 6 Dec 2018 12:09:20 +0000 Subject: [PATCH 105/304] Updated experiment. --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 10afc714b..8b6a36f79 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -37,6 +37,7 @@ diag.add_field('dynamics', 'bk') diag.add_field('dynamics', 'pk') diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) @@ -94,7 +95,7 @@ 'chunk_size': 16, 'use_pressure_interp_for_half_levels':False, 'tidally_locked':False, - 'sol_day':90 + 'solday':90 }, 'idealized_moist_phys_nml': { 'do_damping': True, @@ -207,7 +208,7 @@ if __name__=="__main__": cb.compile(debug=False) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) - for i in range(2,121): + for i in range(2,125): exp.run(i, num_cores=NCORES) From 995c9efa3fa0f885218f0cee8a3b31c79bd01990 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 15:35:26 +0000 Subject: [PATCH 106/304] Adding comments. No science changes --- src/atmos_param/cloud_simple/cloud_simple.F90 | 27 +++++++------------ 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index e1e57b04b..b27ba5788 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -116,14 +116,12 @@ subroutine cloud_simple(p_half, p_full, Time, & logical :: es_over_liq_and_ice - real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging - !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! - call compute_qs(temp, p_full, qs) !qs=qsat in um + call compute_qs(temp, p_full, qs) k_surf = size(temp, 3) @@ -131,7 +129,9 @@ subroutine cloud_simple(p_half, p_full, Time, & do j=1, size(temp, 2) do k=1, size(temp, 3) - !caluclate the frac_liq + ! caluclate the liquid fraction, effective radius, critical RH for + ! the simple cloud scheme and cloud fraction. + ! rh_in_cf is an output diagnostic only for debugging call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) @@ -166,6 +166,7 @@ subroutine calc_liq_frac(temp, frac_liq) end subroutine calc_liq_frac subroutine calc_reff(frac_liq, reff_rad) + ! the effective cloud radius is bounded between 10 and 20 microns real, intent(in) :: frac_liq real, intent(out) :: reff_rad @@ -175,7 +176,7 @@ subroutine calc_reff(frac_liq, reff_rad) end subroutine calc_reff subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - > p_layer_centres - + !get the RH needed as a threshold for the cloud fraction calc. real, intent(in) :: p_full, p_surf real, intent(out) :: simple_rhcrit @@ -209,10 +210,9 @@ subroutine calc_cf (q_hum, qsat, simple_rhcrit, cf, rh) cf = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) - ! include simple convective cloud fraction where present - + ! include simple convective cloud fraction where present (not currenly used) cca = 0.0 ! no convective cloud fraction is calculated - ! left in for fture use + ! left in for future use if (cca > 0.0) then cf = MAX( simple_cca, cf ) @@ -222,7 +222,7 @@ subroutine calc_cf (q_hum, qsat, simple_rhcrit, cf, rh) end subroutine calc_cf subroutine calc_qcl_rad(p_full, cf, qcl_rad) - ! calculate water content + ! calculate cloud water content real , intent(in) :: p_full, cf real , intent(out) :: qcl_rad @@ -238,8 +238,6 @@ subroutine calc_qcl_rad(p_full, cf, qcl_rad) end subroutine calc_qcl_rad - - subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time) real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit @@ -272,16 +270,11 @@ subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_ used = send_data ( id_simple_rhcrit, simple_rhcrit*100.0, Time) endif - - end subroutine output_cloud_diags - !----------------------------------------------- - - subroutine cloud_simple_end () - ! do we deallocate anything? + ! If alloocated are added in init then deallocate them here. end subroutine cloud_simple_end From 16cde24bc3e96a198a83922a87b3a8cac8c80605 Mon Sep 17 00:00:00 2001 From: sit23 Date: Thu, 6 Dec 2018 15:48:09 +0000 Subject: [PATCH 107/304] Made some changes to socrates cloud test experiment. --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 8b6a36f79..f4500f04e 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -62,8 +62,8 @@ # additional output options commented out -#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_flux_sw', time_avg=True) #diag.add_field('socrates', 'soc_co2', time_avg=True) #diag.add_field('socrates', 'soc_ozone', time_avg=True) #diag.add_field('socrates', 'soc_coszen', time_avg=True) @@ -148,7 +148,7 @@ 'prescribe_initial_dist':True, 'evaporation':True, 'depth': 2.5, #Depth of mixed layer used - 'albedo_value': 0.38, #Albedo value used + 'albedo_value': 0.2, #Albedo value used }, 'qe_moist_convection_nml': { @@ -210,5 +210,5 @@ cb.compile(debug=False) exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) - for i in range(2,125): + for i in range(2,171): exp.run(i, num_cores=NCORES) From cfa46d24b5bef7fb48785d0d297a226fdcb2f553 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 14 Dec 2018 10:25:34 +0000 Subject: [PATCH 108/304] New test case with land and specified ssts. --- ...es_aquaplanet_with_cloud_amip_with_topo.py | 234 ++++++++++++++++++ .../scripts/run_plevel.py | 14 +- 2 files changed, 242 insertions(+), 6 deletions(-) create mode 100644 exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py new file mode 100644 index 000000000..0c88efd1d --- /dev/null +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py @@ -0,0 +1,234 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo_with_land', codebase=cb) +exp.clear_rundir() + +inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), + os.path.join(base_dir,'input/sst_clim_amip.nc'), os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Tell model which diagnostics to write +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf', time_avg=True) +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) + +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('cloud_simple', 'cf', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) +diag.add_field('mixed_layer', 'albedo', time_avg=True) + + +# additional output options commented out +diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_co2', time_avg=True) +#diag.add_field('socrates', 'soc_ozone', time_avg=True) +#diag.add_field('socrates', 'soc_coszen', time_avg=True) +#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) + +exp.diag_table = diag +exp.inputfiles = inputfiles + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False, + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True, + 'land_option' : 'input', + 'land_file_name' : 'INPUT/era_land_t42.nc', + 'land_roughness_prefactor' :10.0, + }, + + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3 + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 20.0, #Depth of mixed layer used + 'albedo_value': 0.2, #Albedo value used + 'land_option': 'input', #Tell mixed layer to get land mask from input file + 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. + 'albedo_value': 0.1, #Ocean albedo value + 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land + 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes + 'do_read_sst' : True, #Read in sst values from input file + 'do_sc_sst' : True, #Do specified ssts (need both to be true) + 'sst_file' : 'sst_clim_amip', #Set name of sst input file + 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03, + 'ocean_topog_smoothing': 0.8 + }, + + 'spectral_init_cond_nml':{ + 'topog_file_name': 'era_land_t42.nc', + 'topography_option': 'input' + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) + + for i in range(2,241): + exp.run(i, num_cores=NCORES) diff --git a/postprocessing/plevel_interpolation/scripts/run_plevel.py b/postprocessing/plevel_interpolation/scripts/run_plevel.py index 294ecb53a..5a04db3c1 100644 --- a/postprocessing/plevel_interpolation/scripts/run_plevel.py +++ b/postprocessing/plevel_interpolation/scripts/run_plevel.py @@ -7,11 +7,11 @@ import subprocess start_time=time.time() -base_dir='/scratch/sit204/Data_2013/' -exp_name_list = ['no_ice_flux_lhe_exps_q_flux_hadgem_anoms_3'] +base_dir='/scratch/sit204/data_isca/' +exp_name_list = ['soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo'] avg_or_daily_list=['monthly'] -start_file=287 -end_file=288 +start_file=96 +end_file=120 nfiles=(end_file-start_file)+1 do_extra_averaging=False #If true, then 6hourly data is averaged into daily data using cdo @@ -66,10 +66,12 @@ number_prefix='' - if n+start_file < 100: + if n+start_file < 1000: number_prefix='0' - if n+start_file < 10: + if n+start_file < 100: number_prefix='00' + if n+start_file < 10: + number_prefix='000' nc_file_in = base_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+'.nc' nc_file_out = out_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+file_suffix+'.nc' From 90fbb93e58efdce7e5eb39a3bf7a8cd81f22a586 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 28 Mar 2019 09:27:12 +0000 Subject: [PATCH 109/304] Adding diagnostics for clear sky in order to do CRE calculation. --- .../socrates_aquaplanet_with_cloud.py | 31 ++- .../socrates/interface/socrates_calc.F90 | 22 +- .../socrates/interface/socrates_interface.F90 | 242 +++++++++++++++--- 3 files changed, 247 insertions(+), 48 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index f4500f04e..f3c189127 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 16 +NCORES = 8 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -46,13 +46,30 @@ diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) -diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +#temperature tendency - units are K/s +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates + +#net (up) and down surface fluxes diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) +#net (up) TOA and downard fluxes diag.add_field('socrates', 'soc_olr', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) + +#clear sky fluxes +diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_olr_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down_clear', time_avg=True) + diag.add_field('cloud_simple', 'cf', time_avg=True) diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) @@ -208,7 +225,7 @@ if __name__=="__main__": cb.compile(debug=False) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) - for i in range(2,171): - exp.run(i, num_cores=NCORES) +# for i in range(2,171): +# exp.run(i, num_cores=NCORES) diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index 0fd98b578..f50910a25 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -17,7 +17,7 @@ module socrates_calc_mod contains -! ================================================================================== +! ============================================================================== @@ -25,7 +25,7 @@ module socrates_calc_mod ! Set up the call to the Socrates radiation scheme ! ----------------------------------------------------------------------------- !DIAG Added Time -subroutine socrates_calc(Time_diag,control, spectrum, & +subroutine socrates_calc(Time_diag,control, spectrum, & n_profile, n_layer, n_cloud_layer, n_aer_mode, & cld_subcol_gen, cld_subcol_req, & p_layer, t_layer, t_layer_boundaries, d_mass, density, & @@ -34,7 +34,9 @@ subroutine socrates_calc(Time_diag,control, spectrum, l_planet_grey_surface, planet_albedo, planet_emissivity, & layer_heat_capacity, & cld_frac, reff_rad, mmr_cl_rad, & - flux_direct, flux_down, flux_up, heating_rate, spectral_olr) + flux_direct, flux_down, flux_up, & + flux_down_clear, flux_up_clear, & + heating_rate, spectral_olr) use rad_pcf use def_control, only: StrCtrl @@ -126,9 +128,11 @@ subroutine socrates_calc(Time_diag,control, spectrum, real(r_def), intent(out) :: flux_direct(n_profile, 0:n_layer) ! Direct (unscattered) downwards flux (Wm-2) -real(r_def), intent(out) :: flux_down(n_profile, 0:n_layer) +real(r_def), intent(out) :: flux_down(n_profile, 0:n_layer), & + flux_down_clear(n_profile, 0:n_layer) ! Downwards flux (Wm-2) -real(r_def), intent(out) :: flux_up(n_profile, 0:n_layer) +real(r_def), intent(out) :: flux_up(n_profile, 0:n_layer), & + flux_up_clear(n_profile, 0:n_layer) ! Upwards flux (Wm-2) real(r_def), intent(out) :: heating_rate(n_profile, n_layer) ! Heating rate (Ks-1) @@ -205,9 +209,11 @@ subroutine socrates_calc(Time_diag,control, spectrum, do l=1, n_profile do i=0, n_layer - flux_direct(l, i) = radout%flux_direct(l, i, 1) - flux_down(l, i) = radout%flux_down(l, i, 1) - flux_up(l, i) = radout%flux_up(l, i, 1) + flux_direct(l, i) = radout%flux_direct(l, i, 1) + flux_down(l, i) = radout%flux_down(l, i, 1) + flux_down_clear(l, i) = radout%flux_down_clear(l, i, 1) + flux_up(l, i) = radout%flux_up(l, i, 1) + flux_up_clear(l, i) = radout%flux_up_clear(l, i, 1) end do if (present(spectral_olr)) then spectral_olr(l,:) = radout%flux_up_clear_band(l,0,:) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 1dabdc602..5ea0e5f13 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -59,6 +59,13 @@ MODULE socrates_interface_mod INTEGER :: id_soc_flux_lw, id_soc_flux_sw INTEGER :: id_soc_olr, id_soc_toa_sw INTEGER :: id_soc_toa_sw_down + INTEGER :: id_soc_surf_flux_lw_clear, id_soc_surf_flux_sw_clear + INTEGER :: id_soc_surf_flux_lw_down, id_soc_surf_flux_sw_down + INTEGER :: id_soc_surf_flux_lw_down_clear, id_soc_surf_flux_sw_down_clear + INTEGER :: id_soc_flux_lw, id_soc_flux_sw + INTEGER :: id_soc_olr, id_soc_toa_sw, id_soc_olr_clear, id_soc_toa_sw_clear + INTEGER :: id_soc_toa_sw_down, id_soc_toa_sw_down_clear + INTEGER :: id_soc_ozone, id_soc_co2, id_soc_coszen INTEGER :: n_soc_bands_lw, n_soc_bands_sw INTEGER :: n_soc_bands_lw_hires, n_soc_bands_sw_hires @@ -72,9 +79,12 @@ MODULE socrates_interface_mod REAL(r_def), allocatable, dimension(:,:,:) :: tdt_soc_sw_store, tdt_soc_lw_store REAL(r_def), allocatable, dimension(:,:,:) :: thd_sw_flux_net_store, thd_lw_flux_net_store REAL(r_def), allocatable, dimension(:,:,:) :: thd_co2_store, thd_ozone_store - REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_store, surf_lw_down_store, surf_lw_net_store, & - surf_sw_down_store, toa_sw_down_store, & - toa_sw_store, olr_store, coszen_store + REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_store, surf_sw_down_store, surf_lw_down_store, surf_lw_net_store, & + toa_sw_store, olr_store, coszen_store, & + toa_sw_down_store + REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_clear_store, surf_sw_down_clear_store, & + surf_lw_down_clear_store, surf_lw_net_clear_store, & + toa_sw_clear_store, olr_clear_store, toa_sw_down_clear_store REAL(r_def), allocatable, dimension(:,:,:) :: outputted_soc_spectral_olr, spectral_olr_store REAL(r_def), allocatable, dimension(:) :: soc_bins_lw, soc_bins_sw @@ -259,36 +269,71 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb 'socrates Net LW surface flux (up)', & 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_lw_clear = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_clear', axes(1:2), Time, & + 'socrates Net LW surface flux (up) clear sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_lw_down = & register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_down', axes(1:2), Time, & 'socrates LW surface flux down', & 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_lw_down_clear = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_down_clear', axes(1:2), Time, & + 'socrates LW surface flux down clear sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_sw = & register_diag_field ( soc_mod_name, 'soc_surf_flux_sw', axes(1:2), Time, & 'socrates Net SW surface flux (down)', & 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_sw_clear = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_sw_clear', axes(1:2), Time, & + 'socrates Net SW surface flux (down) clear sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_sw_down = & register_diag_field ( soc_mod_name, 'soc_surf_flux_sw_down', axes(1:2), Time, & 'socrates SW surface flux down', & 'watts/m2', missing_value=missing_value ) + id_soc_surf_flux_sw_down_clear = & + register_diag_field ( soc_mod_name, 'soc_surf_flux_sw_down_clear', axes(1:2), Time, & + 'socrates SW surface flux down clear sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_olr = & register_diag_field ( soc_mod_name, 'soc_olr', axes(1:2), Time, & 'socrates TOA LW flux (up)', & 'watts/m2', missing_value=missing_value ) + id_soc_olr_clear = & + register_diag_field ( soc_mod_name, 'soc_olr_clear', axes(1:2), Time, & + 'socrates TOA LW flux (up) clear-sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_toa_sw = & register_diag_field ( soc_mod_name, 'soc_toa_sw', axes(1:2), Time, & 'socrates Net TOA SW flux (down)', & 'watts/m2', missing_value=missing_value ) + id_soc_toa_sw_clear = & + register_diag_field ( soc_mod_name, 'soc_toa_sw_clear', axes(1:2), Time, & + 'socrates Net TOA SW flux (down) clear', & + 'watts/m2', missing_value=missing_value ) + id_soc_toa_sw_down = & register_diag_field ( soc_mod_name, 'soc_toa_sw_down', axes(1:2), Time, & 'socrates TOA SW flux down', & 'watts/m2', missing_value=missing_value ) + id_soc_toa_sw_down_clear = & + register_diag_field ( soc_mod_name, 'soc_toa_sw_down_clear', axes(1:2), Time, & + 'socrates TOA SW flux down clear sky', & + 'watts/m2', missing_value=missing_value ) + id_soc_flux_lw = & register_diag_field ( soc_mod_name, 'soc_flux_lw', (/axes(1),axes(2),axes(4)/), Time, & 'socrates Net LW flux (up)', & @@ -351,10 +396,6 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb allocate(surf_lw_down_store(size(lonb,1)-1, size(latb,2)-1)) ! only required for output - if (id_soc_surf_flux_lw > 0) then - allocate(surf_lw_net_store(size(lonb,1)-1, size(latb,2)-1)) - endif - if (id_soc_flux_lw > 0) then allocate(thd_lw_flux_net_store(size(lonb,1)-1, size(latb,2)-1, num_levels+1)) endif @@ -363,20 +404,48 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb allocate(thd_sw_flux_net_store(size(lonb,1)-1, size(latb,2)-1, num_levels+1)) endif + if (id_soc_surf_flux_sw_clear > 0) then + allocate(net_surf_sw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif + if (id_soc_surf_flux_lw_down_clear > 0) then + allocate(surf_lw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif + + !surface + if (id_soc_surf_flux_lw > 0) then + allocate(surf_lw_net_store(size(lonb,1)-1, size(latb,2)-1)) + endif + if (id_soc_surf_flux_lw_clear > 0) then + allocate(surf_lw_net_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif if (id_soc_surf_flux_sw_down > 0) then allocate(surf_sw_down_store(size(lonb,1)-1, size(latb,2)-1)) endif + if (id_soc_surf_flux_sw_down_clear > 0) then + allocate(surf_sw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif if (id_soc_olr > 0) then allocate(olr_store(size(lonb,1)-1, size(latb,2)-1)) endif + if (id_soc_olr_clear > 0) then + allocate(olr_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif if (id_soc_toa_sw > 0) then allocate(toa_sw_store(size(lonb,1)-1, size(latb,2)-1)) endif + if (id_soc_toa_sw_clear > 0) then + allocate(toa_sw_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif if (id_soc_toa_sw_down > 0) then allocate(toa_sw_down_store(size(lonb,1)-1, size(latb,2)-1)) endif + if (id_soc_toa_sw_down_clear > 0) then + allocate(toa_sw_down_clear_store(size(lonb,1)-1, size(latb,2)-1)) + endif + + if (id_soc_coszen > 0) then allocate(coszen_store(size(lonb,1)-1, size(latb,2)-1)) endif @@ -437,6 +506,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & fms_coszen, fms_rrsun, n_profile, n_layer, & fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & output_heating_rate, output_flux_down, output_flux_up, & + output_flux_down_clear, output_flux_up_clear, & do_cloud_simple, & !optionals output_soc_spectral_olr, output_flux_direct, & @@ -484,8 +554,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & ! Output arrays real(r_def), intent(out) :: output_heating_rate(:,:,:) - real(r_def), intent(out) :: output_flux_up(:,:,:) - real(r_def), intent(out) :: output_flux_down(:,:,:) + real(r_def), intent(out) :: output_flux_up(:,:,:), output_flux_up_clear(:,:,:) + real(r_def), intent(out) :: output_flux_down(:,:,:), output_flux_down_clear(:,:,:) real(r_def), intent(out), optional :: output_flux_direct(:,:,:) @@ -504,7 +574,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad real(r_def), dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & - soc_flux_down, soc_flux_up, z_half_reshaped + soc_flux_down, soc_flux_up, z_half_reshaped, & + soc_flux_down_clear, soc_flux_up_clear real(r_def), dimension(n_profile) :: input_t_surf, input_cos_zenith_angle, input_solar_irrad, & input_orog_corr, input_planet_albedo @@ -672,11 +743,13 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & - input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & - soc_flux_down(idx_chunk_start:idx_chunk_end,:), & - soc_flux_up(idx_chunk_start:idx_chunk_end,:), & - soc_heating_rate(idx_chunk_start:idx_chunk_end,:), & + soc_flux_down(idx_chunk_start:idx_chunk_end,:), & + soc_flux_up(idx_chunk_start:idx_chunk_end,:), & + soc_flux_down_clear(idx_chunk_start:idx_chunk_end,:), & + soc_flux_up_clear(idx_chunk_start:idx_chunk_end,:), & + soc_heating_rate(idx_chunk_start:idx_chunk_end,:), & soc_spectral_olr(idx_chunk_start:idx_chunk_end,:)) else @@ -701,10 +774,12 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & - input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & - soc_flux_down(idx_chunk_start:idx_chunk_end,:), & - soc_flux_up(idx_chunk_start:idx_chunk_end,:), & + soc_flux_down(idx_chunk_start:idx_chunk_end,:), & + soc_flux_up(idx_chunk_start:idx_chunk_end,:), & + soc_flux_down_clear(idx_chunk_start:idx_chunk_end,:), & + soc_flux_up_clear(idx_chunk_start:idx_chunk_end,:), & soc_heating_rate(idx_chunk_start:idx_chunk_end,:)) endif @@ -714,6 +789,9 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & output_flux_up(:,:,:) = reshape(soc_flux_up(:,:),(/si,sj,sk+1 /)) output_flux_down(:,:,:) = reshape(soc_flux_down(:,:),(/si,sj,sk+1 /)) + output_flux_up_clear(:,:,:) = reshape(soc_flux_up_clear(:,:),(/si,sj,sk+1 /)) + output_flux_down_clear(:,:,:) = reshape(soc_flux_down_clear(:,:),(/si,sj,sk+1 /)) + if(present(output_flux_direct)) then output_flux_direct(:,:,:) = reshape(soc_flux_direct(:,:),(/si,sj,sk+1 /)) endif @@ -740,7 +818,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real, intent(in), dimension(:,:,:) :: temp_in, p_full_in, q_in, z_full_in real, intent(in), dimension(:,:,:) :: p_half_in, z_half_in real, intent(inout), dimension(:,:,:) :: temp_tend - real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down + real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down real, intent(in) :: delta_t logical, intent(in) :: do_cloud_simple real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad @@ -756,6 +834,11 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf integer :: seconds, days, year_in_s real :: r_seconds, r_days, r_total_seconds, frac_of_day, frac_of_year, gmt, time_since_ae, rrsun, dt_rad_radians, day_in_s, r_solday, r_dt_rad_avg real, dimension(size(temp_in,1), size(temp_in,2)) :: coszen, fracsun, surf_lw_net, olr, toa_sw, p2, toa_sw_down, surf_sw_down + + real, dimension(size(temp_in,1), size(temp_in,2)) :: olr_clear, toa_sw_clear, toa_sw_down_clear + real, dimension(size(temp_in,1), size(temp_in,2)) :: surf_lw_down_clear, surf_lw_net_clear, & + surf_sw_down_clear, net_surf_sw_down_clear + real, dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: ozone_in, co2_in real, dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: thd_sw_flux_net, thd_lw_flux_net type(time_type) :: Time_loc @@ -779,14 +862,25 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf surf_lw_down = real(surf_lw_down_store) !only required for output + if (id_soc_surf_flux_sw_clear > 0) then + net_surf_sw_down_clear = net_surf_sw_down_clear_store + endif + + if (id_soc_surf_flux_lw_down_clear > 0) then + surf_lw_down_clear = surf_lw_down_clear_store + endif + if (id_soc_surf_flux_lw > 0) then surf_lw_net = real(surf_lw_net_store) endif - + + if (id_soc_surf_flux_lw_clear > 0) then + surf_lw_net_clear = surf_lw_net_clear_store + endif + if (id_soc_flux_lw > 0) then thd_lw_flux_net = thd_lw_flux_net_store endif - if (id_soc_flux_sw > 0) then thd_sw_flux_net = thd_sw_flux_net_store endif @@ -795,13 +889,32 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf surf_sw_down = surf_sw_down_store endif + if (id_soc_surf_flux_sw_down_clear > 0) then + surf_sw_down_clear = surf_sw_down_clear_store + endif + if (id_soc_olr > 0) then olr = olr_store endif + if (id_soc_olr_clear > 0) then + olr_clear = olr_clear_store + endif + if (id_soc_toa_sw > 0) then toa_sw = toa_sw_store endif + if (id_soc_toa_sw_clear > 0) then + toa_sw_clear = toa_sw_clear_store + endif + + if (id_soc_toa_sw_down > 0) then + toa_sw_down = toa_sw_down_store + endif + + if (id_soc_toa_sw_down_clear > 0) then + toa_sw_down_clear = toa_sw_down_clear_store + endif if (id_soc_toa_sw_down > 0) then toa_sw_down = toa_sw_down_store @@ -828,10 +941,14 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf thd_sw_flux_net = 0. thd_lw_flux_net = 0. net_surf_sw_down = 0. + surf_sw_down = 0. surf_lw_down = 0. surf_lw_net = 0. toa_sw = 0. + toa_sw_down = 0. olr = 0. + olr_clear = 0. + coszen = 0. ozone_in = 0. co2_in = 0. @@ -842,7 +959,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf output_heating_rate_total = output_heating_rate_sw +output_heating_rate_lw ! Send diagnostics - if(id_soc_tdt_lw > 0) then + if(id_soc_tdt_lw > 0) then !heating rate in (Ks-1) used = send_data ( id_soc_tdt_lw, output_heating_rate_lw, Time_diag) endif if(id_soc_tdt_sw > 0) then @@ -854,24 +971,45 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(id_soc_surf_flux_lw > 0) then used = send_data ( id_soc_surf_flux_lw, surf_lw_net, Time_diag) endif + if(id_soc_surf_flux_lw_clear > 0) then + used = send_data ( id_soc_surf_flux_lw_clear, surf_lw_net_clear, Time_diag) + endif if(id_soc_surf_flux_lw_down > 0) then used = send_data ( id_soc_surf_flux_lw_down, surf_lw_down, Time_diag) endif + if(id_soc_surf_flux_lw_down_clear > 0) then + used = send_data ( id_soc_surf_flux_lw_down_clear, surf_lw_down_clear, Time_diag) + endif if(id_soc_surf_flux_sw > 0) then used = send_data ( id_soc_surf_flux_sw, net_surf_sw_down, Time_diag) endif + if(id_soc_surf_flux_sw_clear > 0) then + used = send_data ( id_soc_surf_flux_sw_clear, net_surf_sw_down_clear, Time_diag) + endif if(id_soc_surf_flux_sw_down > 0) then used = send_data ( id_soc_surf_flux_sw_down, surf_sw_down, Time_diag) endif + if(id_soc_surf_flux_sw_down_clear > 0) then + used = send_data ( id_soc_surf_flux_sw_down_clear, surf_sw_down_clear, Time_diag) + endif if(id_soc_olr > 0) then used = send_data ( id_soc_olr, olr, Time_diag) endif + if(id_soc_olr_clear > 0) then + used = send_data ( id_soc_olr_clear, olr_clear, Time_diag) + endif if(id_soc_toa_sw > 0) then used = send_data ( id_soc_toa_sw, toa_sw, Time_diag) endif + if(id_soc_toa_sw_clear > 0) then + used = send_data ( id_soc_toa_sw_clear, toa_sw_clear, Time_diag) + endif if(id_soc_toa_sw_down > 0) then used = send_data ( id_soc_toa_sw_down, toa_sw_down, Time_diag) endif + if(id_soc_toa_sw_down_clear > 0) then + used = send_data ( id_soc_toa_sw_down_clear, toa_sw_down_clear, Time_diag) + endif if(id_soc_flux_lw > 0) then used = send_data ( id_soc_flux_lw, thd_lw_flux_net, Time_diag) endif @@ -1019,6 +1157,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, & + output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear, & do_cloud_simple, & !optional outs output_soc_spectral_olr = outputted_soc_spectral_olr, & @@ -1027,9 +1166,16 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) - surf_lw_net(:,:) = REAL(output_soc_flux_lw_up(:,:,n_layer+1) - output_soc_flux_lw_down(:,:, n_layer+1)) - olr(:,:) = REAL(output_soc_flux_lw_up(:,:,1)) - thd_lw_flux_net = REAL(output_soc_flux_lw_up - output_soc_flux_lw_down) + surf_lw_down_clear(:,:) = REAL(output_soc_flux_lw_down_clear(:,:, n_layer+1)) + + surf_lw_net(:,:) = REAL(output_soc_flux_lw_up(:,:,n_layer+1) - & + output_soc_flux_lw_down(:,:, n_layer+1)) + surf_lw_net_clear(:,:) = REAL(output_soc_flux_lw_up_clear(:,:,n_layer+1) - & + output_soc_flux_lw_down_clear(:,:, n_layer+1)) + olr(:,:) = REAL(output_soc_flux_lw_up(:,:,1)) + olr_clear(:,:) = REAL(output_soc_flux_lw_up_clear(:,:,1)) + + thd_lw_flux_net = REAL(output_soc_flux_lw_up - output_soc_flux_lw_down) temp_tend(:,:,:) = temp_tend(:,:,:) + real(output_heating_rate_lw) @@ -1042,16 +1188,28 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, & + output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear, & do_cloud_simple) tg_tmp_soc = tg_tmp_soc + output_heating_rate_sw*delta_t !Output heating rate in K/s, so is a temperature tendency - net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)-output_soc_flux_sw_up(:,:,n_layer+1) ) - surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)) - toa_sw(:,:) = REAL(output_soc_flux_sw_down(:,:,1)-output_soc_flux_sw_up(:,:,1)) - toa_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:,1)) - thd_sw_flux_net = REAL(output_soc_flux_sw_up - output_soc_flux_sw_down) + net_surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1) - & + output_soc_flux_sw_up(:,:,n_layer+1) ) + net_surf_sw_down_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:, n_layer+1) - & + output_soc_flux_sw_up_clear(:,:,n_layer+1) ) + + toa_sw(:,:) = REAL(output_soc_flux_sw_down(:,:,1) - & + output_soc_flux_sw_up(:,:,1)) + toa_sw_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:,1) - & + output_soc_flux_sw_up_clear(:,:,1)) + + thd_sw_flux_net = REAL(output_soc_flux_sw_up - output_soc_flux_sw_down) !net sw all levels + + toa_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:,1)) + toa_sw_down_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:,1)) + surf_sw_down(:,:) = REAL(output_soc_flux_sw_down(:,:, n_layer+1)) + surf_sw_down_clear(:,:) = REAL(output_soc_flux_sw_down_clear(:,:, n_layer+1)) temp_tend(:,:,:) = temp_tend(:,:,:) + real(output_heating_rate_sw) @@ -1065,10 +1223,6 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf surf_lw_down_store = real(surf_lw_down, kind(r_def)) ! required for output - if (id_soc_surf_flux_lw > 0) then - surf_lw_net_store = real(surf_lw_net, kind(r_def)) - endif - if (id_soc_flux_lw > 0) then thd_lw_flux_net_store = thd_lw_flux_net endif @@ -1085,10 +1239,26 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf toa_sw_down_store = toa_sw_down endif + if (id_soc_surf_flux_lw > 0) then + surf_lw_net_store = real(surf_lw_net, kind(r_def)) + endif + + if (id_soc_surf_flux_sw_down > 0) then + surf_sw_down_store = surf_sw_down + endif + + if (id_soc_toa_sw_down > 0) then + toa_sw_down_store = toa_sw_down + endif + if (id_soc_olr > 0) then olr_store = olr endif + if (id_soc_olr_clear > 0) then + olr_clear_store = olr_clear + endif + if (id_soc_toa_sw > 0) then toa_sw_store = toa_sw endif @@ -1124,6 +1294,9 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(id_soc_surf_flux_lw > 0) then used = send_data ( id_soc_surf_flux_lw, surf_lw_net, Time_diag) endif + if(id_soc_surf_flux_lw_down > 0) then + used = send_data ( id_soc_surf_flux_lw_down, surf_lw_down, Time_diag) + endif if(id_soc_surf_flux_sw > 0) then used = send_data ( id_soc_surf_flux_sw, net_surf_sw_down, Time_diag) endif @@ -1133,6 +1306,9 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(id_soc_olr > 0) then used = send_data ( id_soc_olr, olr, Time_diag) endif + if(id_soc_olr_clear > 0) then + used = send_data ( id_soc_olr_clear, olr_clear, Time_diag) + endif if(id_soc_toa_sw > 0) then used = send_data ( id_soc_toa_sw, toa_sw, Time_diag) endif From 10d541ac71f125519ebd088a185a38a684ac083c Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 28 Mar 2019 13:40:55 +0000 Subject: [PATCH 110/304] Implement protocol 2 for spookie-2 and debugging clear sky diagnostics --- .../socrates_aquaplanet_with_cloud.py | 10 +- src/atmos_param/cloud_simple/cloud_simple.F90 | 168 +++++++++++++----- .../socrates/interface/socrates_calc.F90 | 16 +- .../socrates/interface/socrates_interface.F90 | 74 ++++++-- .../driver/solo/idealized_moist_phys.F90 | 8 +- 5 files changed, 205 insertions(+), 71 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index f3c189127..3e8e3813d 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 8 +NCORES = 16 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -74,13 +74,13 @@ diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) -diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +#diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_min', time_avg=True) diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) - # additional output options commented out -diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) #diag.add_field('socrates', 'soc_co2', time_avg=True) #diag.add_field('socrates', 'soc_ozone', time_avg=True) #diag.add_field('socrates', 'soc_coszen', time_avg=True) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index b27ba5788..b51cc84fe 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -17,19 +17,39 @@ module cloud_simple_mod logical :: do_init = .true. ! Check if init needs to be run real :: simple_cca = 0.0 - real :: rhcsfc = 0.95 - real :: rhc700 = 0.7 - real :: rhc200 = 0.3 + + ! Critical RH (fraction) values - spookie protocol 1 only + real :: rhc_sfc = 0.95 + real :: rhc_base = 0.7 + real :: rhc_top = 0.3 + ! real :: rhmsfc = 0.95 real :: rhm700 = 0.7 real :: rhm200 = 0.3 - namelist /cloud_simple_nml/ simple_cca, rhcsfc, rhc700, rhc200, & - rhmsfc, rhm700, rhm200 + ! Critical RH (fraction) values - spookie protocol 2 only + real :: rh_min_top = 0.9 + real :: rh_min_sfc = 1.0 + real :: rh_min_base = 0.8 + real :: rh_max_top = 1.0 + real :: rh_max_sfc = 1.0 + real :: rh_max_base = 1.0 + + ! Pressure (Pa.) at cloud bottom and top (very approx) + real :: p_base = 70000. + real :: p_top = 20000. + + integer :: spookie_protocol = 2 + + namelist /cloud_simple_nml/ simple_cca, rhc_sfc, rhc_base, rhc_top, & + rhmsfc, rhm700, rhm200, & + rh_min_top, rh_min_sfc, rh_min_base, & + rh_max_top, rh_max_sfc, rh_max_base + real :: zerodegc = 273.15 - integer :: id_cf, id_reff_rad, id_frac_liq, id_qcl_rad, id_rh_in_cf, id_simple_rhcrit - + integer :: id_cf, id_reff_rad, id_frac_liq, id_qcl_rad, id_rh_in_cf, & + id_simple_rhcrit, id_rh_min character(len=14), parameter :: mod_name_cld = "cloud_simple" @@ -86,11 +106,13 @@ subroutine cloud_simple_init (axes, Time) id_simple_rhcrit = & register_diag_field ( mod_name_cld, 'simple_rhcrit', axes(1:3), Time, & - 'RH as a percent', & + 'RH as a percent for spookie protocol 1', & '%') - - + id_rh_min = & + register_diag_field ( mod_name_cld, 'rh_min', axes(1:3), Time, & + 'RH as a percent for spookie protocol 2', & + '%') do_init = .false. !initialisation completed @@ -102,14 +124,14 @@ end subroutine cloud_simple_init subroutine cloud_simple(p_half, p_full, Time, & temp, q_hum, & ! outs - cf, reff_rad, qcl_rad ) + cf, cca, reff_rad, qcl_rad) real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half type(time_type) , intent(in) :: Time - real , intent(out), dimension(:,:,:) :: cf, reff_rad, qcl_rad + real , intent(out), dimension(:,:,:) :: cf, reff_rad, qcl_rad, cca - real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq, rh_in_cf, simple_rhcrit + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq, rh_in_cf, simple_rhcrit, rh_min, rh_max integer :: i, j, k, k_surf @@ -133,16 +155,26 @@ subroutine cloud_simple(p_half, p_full, Time, & ! the simple cloud scheme and cloud fraction. ! rh_in_cf is an output diagnostic only for debugging call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) + call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) - call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) - call calc_cf(q_hum(i,j,k), qs(i,j,k), simple_rhcrit(i,j,k), cf(i,j,k),rh_in_cf(i,j,k)) - call calc_qcl_rad(p_full(i,j,k), cf(i,j,k), qcl_rad(i,j,k) ) + + if (spookie_protocol .eq. 1) then + call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) + else + call calc_rh_min_max(p_full(i,j,k), p_full(i,j,k_surf),rh_min(i,j,k), rh_max(i,j,k)) + endif + + call calc_cf(q_hum(i,j,k), qs(i,j,k), cf(i,j,k), cca(i,j,k), rh_in_cf(i,j,k), & + simple_rhcrit = simple_rhcrit(i,j,k), & + rh_min = rh_min(i,j,k), rh_max = rh_max(i,j,k) ) + + call calc_qcl_rad(p_full(i,j,k), cf(i,j,k), temp(i,j,k), qcl_rad(i,j,k) ) end do end do end do !save some diagnotics - call output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time ) + call output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, rh_min, Time ) end subroutine cloud_simple @@ -176,71 +208,111 @@ subroutine calc_reff(frac_liq, reff_rad) end subroutine calc_reff subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - > p_layer_centres - !get the RH needed as a threshold for the cloud fraction calc. + ! get the RH needed as a threshold for the cloud fraction calc. + ! This is only requires for spookie_protocol=1 real, intent(in) :: p_full, p_surf real, intent(out) :: simple_rhcrit ! Calculate RHcrit as function of pressure - if (p_full > 70000.0 ) then + if (p_full > p_base ) then - simple_rhcrit = rhcsfc - ( rhcsfc - rhc700 ) * & - ( p_surf - p_full ) / ( p_surf - 70000.0 ) + simple_rhcrit = rhc_sfc - ( rhc_sfc - rhc_base ) * & + ( p_surf - p_full ) / ( p_surf - p_base ) - else if ( p_full > 20000.0 ) then + else if ( p_full > p_top ) then - simple_rhcrit = rhc700 - ( rhc700 - rhc200 ) * & - ( 70000.0 - p_full) / 50000.0 + simple_rhcrit = rhc_base - ( rhc_base - rhc_top ) * & + (p_base - p_full) / (p_base - p_top) else - simple_rhcrit = rhc200 + simple_rhcrit = rhc_top endif end subroutine calc_rhcrit - subroutine calc_cf (q_hum, qsat, simple_rhcrit, cf, rh) + subroutine calc_rh_min_max(p_full, p_surf, rh_min, rh_max) + + real, intent(in) :: p_full, p_surf + real, intent(out) :: rh_min, rh_max + + + if (p_full > p_base ) then !surface up to base + + rh_min = rh_min_sfc - ( rh_min_sfc - rh_min_base ) * ( p_surf - p_full ) / ( p_surf - p_base ) + rh_max = rh_max_sfc - ( rh_max_sfc - rh_max_base ) * ( p_surf - p_full ) / ( p_surf - p_base ) + + else if ( p_full > p_top ) then ! base up to top + + rh_min = rh_min_base - ( rh_min_base - rh_min_top ) * (p_base - p_full) / (p_base - p_top) + rh_max = rh_max_base - ( rh_max_base - rh_max_top ) * (p_base - p_full) / (p_base - p_top) + + else ! above top + + rh_min = rh_min_top + rh_max = rh_max_top + + endif + + + end subroutine calc_rh_min_max + + subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) ! Calculate LS (stratiform) cloud fraction ! as a simple linear function of RH - real, intent(in) :: q_hum, qsat, simple_rhcrit - real, intent(out) :: cf, rh - - real :: cca + real, intent(in) :: q_hum, qsat + real, intent(in), optional :: simple_rhcrit, rh_min, rh_max + + real, intent(out) :: cf, rh, cca rh = q_hum/qsat - cf = MAX( 0.0, MIN( 1.0, ( rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) )) + if (spookie_protocol .eq. 1) then + cf = (rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) + cf = MAX( 0.0, MIN( 1.0, cf)) + + else + cf = (rh - rh_min ) / ( rh_max - rh_min ) + cf = MAX( 0.0, MIN( 1.0, cf)) + end if ! include simple convective cloud fraction where present (not currenly used) cca = 0.0 ! no convective cloud fraction is calculated - ! left in for future use + ! left in for future use if (cca > 0.0) then - cf = MAX( simple_cca, cf ) + cf = MAX( simple_cca, cf ) end if - + end subroutine calc_cf - subroutine calc_qcl_rad(p_full, cf, qcl_rad) + subroutine calc_qcl_rad(p_full, cf, temp, qcl_rad) ! calculate cloud water content - real , intent(in) :: p_full, cf - real , intent(out) :: qcl_rad + real , intent(in) :: p_full, cf, temp + real , intent(out) :: qcl_rad real :: in_cloud_qcl - - in_cloud_qcl = 3.0e-4 + & - (1.0-3.0e-4)*(p_full-20000.0)/80000.0 - - in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg - - qcl_rad = cf * in_cloud_qcl + + IF (spookie_protocol .eq. 1) THEN + ! pressure dependent in_cloud_qcl + in_cloud_qcl = 3.0e-4 + (1.0-3.0e-4)*(p_full-p_top)/80000.0 + in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg + qcl_rad = cf * in_cloud_qcl + ELSE + ! temperatue dependent in_cloud_qcl + in_cloud_qcl = MIN(0.2, 0.2 * ( temp - 220. ) / ( 280. -220. )) + in_cloud_qcl = MAX (3.0e-4, in_cloud_qcl/1000.0 ) ! convert to kg/kg + qcl_rad = cf * in_cloud_qcl + ENDIF end subroutine calc_qcl_rad - subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, Time) + subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, rh_min, Time) - real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit + real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf + real, intent(in), dimension(:,:,:), optional :: simple_rhcrit, rh_min type(time_type) , intent(in) :: Time @@ -270,6 +342,10 @@ subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_ used = send_data ( id_simple_rhcrit, simple_rhcrit*100.0, Time) endif + if ( id_rh_min > 0 ) then + used = send_data ( id_rh_min, rh_min*100.0, Time) + endif + end subroutine output_cloud_diags subroutine cloud_simple_end () diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index f50910a25..5474d0d5f 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -33,7 +33,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, & t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity, & layer_heat_capacity, & - cld_frac, reff_rad, mmr_cl_rad, & + cld_frac, cld_conv_frac, reff_rad, mmr_cl_rad, & flux_direct, flux_down, flux_up, & flux_down_clear, flux_up_clear, & heating_rate, spectral_olr) @@ -118,7 +118,10 @@ subroutine socrates_calc(Time_diag,control, spectrum, & ! Heat capacity of layer real(r_def), intent(in) :: cld_frac(n_profile, n_layer) -! Cloud fraction at layer centres +! Cloud fraction at layer centres for stratocumulus cloud + +real(r_def), intent(in) :: cld_conv_frac(n_profile, n_layer) +! Cloud fraction at layer centres for convective cloud real(r_def), intent(in) :: reff_rad(n_profile, n_layer) ! Cloud liquid particle radius from simple cloud scheme @@ -185,11 +188,12 @@ subroutine socrates_calc(Time_diag,control, spectrum, & zeros_cld = 0. ten_microns_cld = 1. call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & + conv_frac = cld_conv_frac,& liq_frac = cld_frac, & - ice_frac = zeros_cld, & - liq_mmr = mmr_cl_rad, & - ice_mmr = zeros_cld, & - liq_dim = reff_rad, & + ice_frac = zeros_cld, & + liq_mmr = mmr_cl_rad, & + ice_mmr = zeros_cld, & + liq_dim = reff_rad, & ice_dim = zeros_cld ) call set_aer(control, dimen, spectrum, aer, n_profile) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 5ea0e5f13..4b219e4a3 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -84,7 +84,7 @@ MODULE socrates_interface_mod toa_sw_down_store REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_clear_store, surf_sw_down_clear_store, & surf_lw_down_clear_store, surf_lw_net_clear_store, & - toa_sw_clear_store, olr_clear_store, toa_sw_down_clear_store + toa_sw_clear_store, olr_clear_store, toa_sw_down_clear_store REAL(r_def), allocatable, dimension(:,:,:) :: outputted_soc_spectral_olr, spectral_olr_store REAL(r_def), allocatable, dimension(:) :: soc_bins_lw, soc_bins_sw @@ -274,7 +274,7 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb 'socrates Net LW surface flux (up) clear sky', & 'watts/m2', missing_value=missing_value ) - id_soc_surf_flux_lw_down = & + id_soc_surf_flux_lw_down = & register_diag_field ( soc_mod_name, 'soc_surf_flux_lw_down', axes(1:2), Time, & 'socrates LW surface flux down', & 'watts/m2', missing_value=missing_value ) @@ -504,7 +504,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, & fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, & fms_coszen, fms_rrsun, n_profile, n_layer, & - fms_cld_frac, fms_reff_rad, fms_mmr_cl_rad, & + fms_cld_frac, fms_cld_conv_frac, fms_reff_rad, fms_mmr_cl_rad,& output_heating_rate, output_flux_down, output_flux_up, & output_flux_down_clear, output_flux_up_clear, & do_cloud_simple, & @@ -549,6 +549,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), intent(in) :: fms_z_full(:,:,:), fms_z_half(:,:,:) real(r_def), intent(in) :: fms_rrsun real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) + real(r_def), intent(in) :: fms_cld_conv_frac(:,:,:) logical, intent(in) :: do_cloud_simple @@ -571,7 +572,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), dimension(n_profile, n_layer) :: input_p, input_t, input_mixing_ratio, & input_d_mass, input_density, input_layer_heat_capacity, & soc_heating_rate, input_o3_mixing_ratio, & - input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad + input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad, & + input_cld_conv_frac real(r_def), dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & soc_flux_down, soc_flux_up, z_half_reshaped, & @@ -618,6 +620,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_p_level = reshape(fms_p_half(:,:,:),(/si*sj,sk+1 /)) input_cld_frac = reshape(fms_cld_frac(:,:,:),(/si*sj,sk /)) + input_cld_conv_frac = reshape(fms_cld_conv_frac(:,:,:),(/si*sj,sk /)) + input_reff_rad = reshape(fms_reff_rad(:,:,:),(/si*sj,sk /)) input_mmr_cl_rad = reshape(fms_mmr_cl_rad(:,:,:),(/si*sj,sk/)) @@ -742,6 +746,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & @@ -773,6 +778,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & @@ -805,7 +811,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & end subroutine socrates_interface subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf_in, p_full_in, p_half_in, z_full_in, z_half_in, albedo_in, & - temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple, cf_rad, reff_rad, qcl_rad) + temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple, cf_rad, cca_rad, reff_rad, qcl_rad) use astronomy_mod, only: diurnal_solar use constants_mod, only: pi, wtmco2, wtmozone, rdgas, gas_constant @@ -821,12 +827,13 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down real, intent(in) :: delta_t logical, intent(in) :: do_cloud_simple - real, intent(in), dimension(:,:,:) :: cf_rad, reff_rad, qcl_rad + real, intent(in), dimension(:,:,:) :: cf_rad, cca_rad, reff_rad, qcl_rad integer(i_def) :: n_profile, n_layer real(r_def), dimension(size(temp_in,1), size(temp_in,2)) :: t_surf_for_soc, rad_lat_soc, rad_lon_soc, albedo_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, z_full_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: cld_conv_frac_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, z_half_soc @@ -936,19 +943,36 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf outputted_soc_spectral_olr = spectral_olr_store endif else + !all sky heating rates. output_heating_rate_sw = 0. output_heating_rate_lw = 0. + + !all sky and clear sky fluxes. thd_sw_flux_net = 0. thd_lw_flux_net = 0. + net_surf_sw_down = 0. + net_surf_sw_down_clear = 0. + surf_sw_down = 0. + surf_sw_down_clear = 0. + surf_lw_down = 0. + surf_lw_down_clear = 0. + surf_lw_net = 0. + surf_lw_net_clear = 0. + toa_sw = 0. + toa_sw_clear = 0. + toa_sw_down = 0. + toa_sw_down_clear = 0. + olr = 0. olr_clear = 0. + !Others coszen = 0. ozone_in = 0. co2_in = 0. @@ -1120,6 +1144,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(do_cloud_simple) then cld_frac_soc = REAL(cf_rad, kind(r_def)) + cld_conv_frac_soc = REAL(cca_rad, kind(r_def)) + reff_rad_soc = REAL(reff_rad, kind(r_def)) qcl_rad_soc = REAL(qcl_rad, kind(r_def)) @@ -1127,6 +1153,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf else cld_frac_soc = 0. + cld_conv_frac_soc = 0. + reff_rad_soc = 0. mmr_cl_rad_soc = 0. @@ -1155,7 +1183,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & - n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + n_profile, n_layer, cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc,& output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, & output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear, & do_cloud_simple, & @@ -1165,7 +1193,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf tg_tmp_soc = tg_tmp_soc + output_heating_rate_lw*delta_t !Output heating rate in K/s, so is a temperature tendency - surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) + surf_lw_down(:,:) = REAL(output_soc_flux_lw_down(:,:, n_layer+1)) surf_lw_down_clear(:,:) = REAL(output_soc_flux_lw_down_clear(:,:, n_layer+1)) surf_lw_net(:,:) = REAL(output_soc_flux_lw_up(:,:,n_layer+1) - & @@ -1186,7 +1214,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & - n_profile, n_layer, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + n_profile, n_layer, cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, & output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear, & do_cloud_simple) @@ -1347,7 +1375,33 @@ subroutine run_socrates_end if(do_read_ozone) call interpolator_end(o3_interp) if(do_read_co2) call interpolator_end(co2_interp) - + + DEALLOCATE(soc_bins_lw) + DEALLOCATE(soc_bins_sw) + DEALLOCATE(outputted_soc_spectral_olr) + DEALLOCATE(tdt_soc_sw_store) + DEALLOCATE(tdt_soc_lw_store) + DEALLOCATE(net_surf_sw_down_store) + DEALLOCATE(surf_lw_down_store) + + if (id_soc_flux_lw > 0) DEALLOCATE(thd_lw_flux_net_store) + if (id_soc_flux_sw > 0) DEALLOCATE(thd_sw_flux_net_store) + if (id_soc_surf_flux_sw_clear > 0) DEALLOCATE(net_surf_sw_down_clear_store) + if (id_soc_surf_flux_lw_down_clear > 0) DEALLOCATE(surf_lw_down_clear_store) + if (id_soc_surf_flux_lw > 0) DEALLOCATE(surf_lw_net_store) + if (id_soc_surf_flux_lw_clear > 0) DEALLOCATE(surf_lw_net_clear_store) + if (id_soc_surf_flux_sw_down > 0) DEALLOCATE(surf_sw_down_store) + if (id_soc_surf_flux_sw_down_clear > 0) DEALLOCATE(surf_sw_down_clear_store) + if (id_soc_olr > 0) DEALLOCATE(olr_store) + if (id_soc_olr_clear > 0) DEALLOCATE(olr_clear_store) + if (id_soc_toa_sw > 0) DEALLOCATE(toa_sw_store) + if (id_soc_toa_sw_clear > 0) DEALLOCATE(toa_sw_clear_store) + if (id_soc_toa_sw_down > 0) DEALLOCATE(toa_sw_down_store) + if (id_soc_toa_sw_down_clear > 0) DEALLOCATE(toa_sw_down_clear_store) + if (id_soc_coszen > 0) DEALLOCATE(coszen_store) + if (id_soc_ozone > 0) DEALLOCATE(thd_ozone_store) + if (id_soc_co2 > 0 ) DEALLOCATE(thd_co2_store) + if (id_soc_spectral_olr > 0) DEALLOCATE(spectral_olr_store) end subroutine run_socrates_end diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 7e87562a6..61f387da5 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -801,7 +801,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv ! Simple cloud scheme variabilies to pass to radiation -real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad +real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad, cca_rad real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot @@ -982,8 +982,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg tg(:,:,:,previous), & grid_tracers(:,:,:,previous,nsphum), & ! outs - - cf_rad(:,:,:), reff_rad(:,:,:), & - qcl_rad(:,:,:) & + cf_rad(:,:,:), cca_rad(:,:,:), & + reff_rad(:,:,:), qcl_rad(:,:,:) & ) endif @@ -1131,7 +1131,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg endif call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), t_surf(:,:), p_full(:,:,:,current), & - p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), reff_rad(:,:,:), & + p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), cca_rad(:,:,:), reff_rad(:,:,:), & qcl_rad(:,:,:) ) endif From 62a06634caf1a13df4c7e21ab910e2f3dad5bd30 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 28 Mar 2019 14:27:50 +0000 Subject: [PATCH 111/304] Remove real conversions in soc_interface --- .../socrates_aquaplanet_with_cloud.py | 15 ++++----------- src/atmos_param/cloud_simple/cloud_simple.F90 | 3 +++ .../socrates/interface/socrates_interface.F90 | 4 ++-- .../socrates/interface/socrates_set_cld.F90 | 2 +- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 3e8e3813d..bc967d954 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -129,21 +129,14 @@ 'do_cloud_simple': True }, - 'cloud_simple_nml': { - 'simple_cca':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3 - }, - 'vert_turb_driver_nml': { 'do_mellor_yamada': False, # default: True 'do_diffusivity': True, # default: False 'do_simple': True, # default: False 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False + 'use_tau': False, }, - + 'diffusivity_nml': { 'do_entrain':False, 'do_simple': True, @@ -227,5 +220,5 @@ cb.compile(debug=False) exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) -# for i in range(2,171): -# exp.run(i, num_cores=NCORES) + for i in range(2,121): + exp.run(i, num_cores=NCORES) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index b51cc84fe..184923dc7 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -280,6 +280,9 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) cca = 0.0 ! no convective cloud fraction is calculated ! left in for future use + !cca can not be used in simple clouds as in read_control + ! control%i_cloud_representation = ip_cloud_ice_water + if (cca > 0.0) then cf = MAX( simple_cca, cf ) end if diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 4b219e4a3..f99ea7a5b 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -878,7 +878,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif if (id_soc_surf_flux_lw > 0) then - surf_lw_net = real(surf_lw_net_store) + surf_lw_net = surf_lw_net_store endif if (id_soc_surf_flux_lw_clear > 0) then @@ -1268,7 +1268,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif if (id_soc_surf_flux_lw > 0) then - surf_lw_net_store = real(surf_lw_net, kind(r_def)) + surf_lw_net_store = surf_lw_net endif if (id_soc_surf_flux_sw_down > 0) then diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 index 99fd4a30e..3af8423b8 100644 --- a/src/atmos_param/socrates/interface/socrates_set_cld.F90 +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -348,7 +348,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cloud_frac(l, k)*ice_frac(l, k) / (liq_frac(l, k)+ice_frac(l, k)) else cld%frac_cloud(l, k, ip_cloud_type_water) = 0.0_r_def - cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_r_def + cld%frac_cloud(l, k, ip_cloud_type_ice) = 0.0_r_def end if end do end do From a7001c100bbb450d2ad56b506d1c0a215fe4c100 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 10 Apr 2019 10:44:23 +0100 Subject: [PATCH 112/304] Adding extra diagnostics to test case --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index bc967d954..389e0b898 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -39,6 +39,8 @@ diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) @@ -218,7 +220,9 @@ if __name__=="__main__": cb.compile(debug=False) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) + overwrite=False + + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) for i in range(2,121): - exp.run(i, num_cores=NCORES) + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From 4fe5aa07ceb2c984e06dc1db2551dfb9792d9e7a Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 16:18:11 +0100 Subject: [PATCH 113/304] Add file to paths and namelist variables in test scripts --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 98618756d..14591e570 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -114,8 +114,6 @@ 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection 'do_cloud_simple': False - }, - 'vert_turb_driver_nml': { 'do_mellor_yamada': False, # default: True @@ -162,7 +160,6 @@ 'sat_vapor_pres_nml': { 'do_simple':True, - 'construct_table_wrt_liq_and_ice':True }, 'damping_driver_nml': { From 2b91c142f7af7bbbf51264adf1ff05d589ebe88e Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 16:18:53 +0100 Subject: [PATCH 114/304] Additions to RRTM and ideal mosist phys to use the simple cloud scheme --- src/atmos_param/rrtm_radiation/rrtm_radiation.f90 | 5 ++--- src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 44865ab20..92fdbcf4f 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -542,7 +542,7 @@ end subroutine interp_temp !***************************************************************************************** subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & albedo,q,t,t_surf_rad,tdt, & - coszen,flux_sw,flux_lw,cf_rad,reff_rad, & + coszen,flux_sw,flux_lw,cfa_rad,reff_rad, & do_cloud_simple) ! ! Driver for RRTMG radiation scheme. @@ -589,7 +589,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & real(kind=rb),dimension(:,:),intent(out),optional :: flux_sw,flux_lw ! surface fluxes [W/m2] ! dimension (lat x lon) ! need to have both or none! - real(kind=rb), dimension(:,:,:), intent(in) :: cf_rad,reff_rad !cloud properties + real(kind=rb), dimension(:,:,:), intent(in) :: cfa_rad,reff_rad !cloud properties logical, intent(in) :: do_cloud_simple @@ -604,7 +604,6 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: pfull,tfull,fracday& , hr,hrc, swhr, swhrc, cldfr, reliq, reice - real(kind=rb),dimension(ngptsw,ncols_rrt,nlay_rrt) :: cldfr_pass_sw real(kind=rb),dimension(ngptlw,ncols_rrt,nlay_rrt) :: cldfr_pass_lw diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 61f387da5..b1bfd5c30 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -985,7 +985,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg cf_rad(:,:,:), cca_rad(:,:,:), & reff_rad(:,:,:), qcl_rad(:,:,:) & ) - + endif ! Begin the radiation calculation by computing downward fluxes. @@ -1113,7 +1113,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg call interp_temp(z_full(:,:,:,current),z_half(:,:,:,current),tg_interp, Time) call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current), & albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:), & - coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cf_rad(:,:,:), reff_rad(:,:,:), & + coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cfa_rad(:,:,:), reff_rad(:,:,:), & do_cloud_simple ) endif #endif From 57a45b3bc10c2d1e9f040ef42dd1595a2efc4ac5 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 5 Sep 2018 17:30:24 +0100 Subject: [PATCH 115/304] Changes so code will now compile --- src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index b1bfd5c30..b4fffe0c0 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -349,7 +349,6 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l if(do_cloud_simple) then call cloud_simple_init(get_axis_id(), Time) -end if !s need to make sure that gray radiation and rrtm radiation are not both called. if(two_stream_gray .and. do_rrtm_radiation) & @@ -801,7 +800,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv ! Simple cloud scheme variabilies to pass to radiation -real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad, cca_rad +real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cfa_rad, reff_rad, qcl_rad, cca_rad real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot From b8032341cb0e60915691e6e7c4c284ccc26e1fbb Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 12:24:50 +0100 Subject: [PATCH 116/304] exp/test_cases/MiMA/MiMA_test_case.py --- src/atmos_param/cloud_simple/cloud_simple.F90 | 4 ++-- src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index 184923dc7..a18178e7c 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -98,7 +98,6 @@ subroutine cloud_simple_init (axes, Time) 'Specific humidity of cloud liquid', & 'kg/kg') - id_rh_in_cf = & register_diag_field ( mod_name_cld, 'rh_in_cf', axes(1:3), Time, & 'RH as a percent', & @@ -133,11 +132,12 @@ subroutine cloud_simple(p_half, p_full, Time, & real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq, rh_in_cf, simple_rhcrit, rh_min, rh_max - integer :: i, j, k, k_surf logical :: es_over_liq_and_ice + real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index b4fffe0c0..55ec2a502 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -349,6 +349,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l if(do_cloud_simple) then call cloud_simple_init(get_axis_id(), Time) +end if !s need to make sure that gray radiation and rrtm radiation are not both called. if(two_stream_gray .and. do_rrtm_radiation) & @@ -808,7 +809,6 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(1,1,1):: tracer, tracertnd integer :: nql, nqi, nqa ! tracer indices for stratiform clouds - if(current == previous) then delta_t = dt_real else From fdcf7d993c585e95b780206c7625620a451fd8e6 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 12:25:51 +0100 Subject: [PATCH 117/304] Previous commit did not have all files: attempting to debug why cloud fraction is not passed out of the simple cloud scheme --- exp/test_cases/MiMA/MiMA_test_case.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 27dc00243..fc1dc4a47 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 16 +NCORES = 1 # a CodeBase can be a directory on the computer, # useful for iterative development @@ -193,4 +193,4 @@ if __name__=="__main__": exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) for i in range(2,25): - exp.run(i, num_cores=NCORES, overwrite_data=True) + exp.run(i, num_cores=NCORES, overwrite_data=True) \ No newline at end of file From 009716603c09b22637a04d248be6193a3cefabfa Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Sep 2018 16:27:53 +0100 Subject: [PATCH 118/304] Swapped to using mcica sw routine and added required initialisation routine. Seems to run. Now swapping to lw mcica. --- exp/test_cases/MiMA/MiMA_test_case.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index fc1dc4a47..69a4dcb82 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 1 +NCORES = 16 # a CodeBase can be a directory on the computer, # useful for iterative development From 4bee8c4825409f4a2cb79f9fb00cf4ab18653a34 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 7 Sep 2018 13:02:38 +0100 Subject: [PATCH 119/304] Turned socrates clouds on for the first time, and hit error where cloud fraction is above one. Check this with Penny. --- .../socrates/interface/socrates_interface.F90 | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index f99ea7a5b..febf4b85d 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -128,6 +128,18 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb !Initialise astronomy call astronomy_init + if(do_cloud_simple.and..not.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) + + elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then + + call error_mesg( 'run_socrates', & + 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) + + endif + !Initialise variables related to radiation timestep call get_time(delta_t_atmos,time_step_seconds) @@ -1154,7 +1166,6 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf else cld_frac_soc = 0. cld_conv_frac_soc = 0. - reff_rad_soc = 0. mmr_cl_rad_soc = 0. @@ -1179,7 +1190,6 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf z_full_soc = REAL(z_full_in, kind(r_def)) z_half_soc = REAL(z_half_in, kind(r_def)) - CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & From 00e19da88f5762fd56e19f7c2392821b4812e68b Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 11:15:32 +0100 Subject: [PATCH 120/304] Update debugging flag to get socrities to compile --- src/extra/python/isca/templates/mkmf.template.debug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extra/python/isca/templates/mkmf.template.debug b/src/extra/python/isca/templates/mkmf.template.debug index 15afb1696..45d7e20a3 100644 --- a/src/extra/python/isca/templates/mkmf.template.debug +++ b/src/extra/python/isca/templates/mkmf.template.debug @@ -19,7 +19,7 @@ NETCDF_LIBS = `nc-config --libs` # This suppresses the warning: `warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value.` of which # there are a lot of instances in the GFDL codebase. FFLAGS_DEBUG = -check -check noarg_temp_created -check nopointer -warn -warn noerrors -debug variable_locations -inline_debug_info -fpe0 -traceback -ftrapuv -FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -fpic $(FFLAGS_DEBUG) +FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -mcmodel large $(FFLAGS_DEBUG) FC = $(F90) LD = $(F90) $(NETCDF_LIBS) #CC = mpicc From c06b14adc34d55f61d85f664e0ea46558b82b564 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:43:53 +0100 Subject: [PATCH 121/304] Socrates is not working properly with idb. Break points not behaving logically. Cant confirm the compile is working properly --- src/extra/python/isca/templates/mkmf.template.debug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extra/python/isca/templates/mkmf.template.debug b/src/extra/python/isca/templates/mkmf.template.debug index 45d7e20a3..15afb1696 100644 --- a/src/extra/python/isca/templates/mkmf.template.debug +++ b/src/extra/python/isca/templates/mkmf.template.debug @@ -19,7 +19,7 @@ NETCDF_LIBS = `nc-config --libs` # This suppresses the warning: `warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value.` of which # there are a lot of instances in the GFDL codebase. FFLAGS_DEBUG = -check -check noarg_temp_created -check nopointer -warn -warn noerrors -debug variable_locations -inline_debug_info -fpe0 -traceback -ftrapuv -FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -mcmodel large $(FFLAGS_DEBUG) +FFLAGS = $(CPPFLAGS) -fpp -stack_temps -safe-cray-ptr -ftz -i_dynamic -assume byterecl -g -i4 -r8 -diag-disable 6843 -fpic $(FFLAGS_DEBUG) FC = $(F90) LD = $(F90) $(NETCDF_LIBS) #CC = mpicc From 5d30ba1b9236fd1371d404ece3349a0695ec26e8 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 16:47:19 +0100 Subject: [PATCH 122/304] File cleaning. Changes to fix seg fault which originated due to flipped pressure levels. Removed account for clouds. --- src/atmos_param/socrates/interface/socrates_interface.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index febf4b85d..07d1a28d6 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -618,7 +618,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & !----------------------------i ! Set array sizes - input_n_cloud_layer = n_layer + input_n_cloud_layer = 1 input_n_aer_mode = n_layer input_cld_subcol_gen = n_layer input_cld_subcol_req = n_layer From e0e9dd77fc7bba962aa6235eef7ed9f027c24d9b Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 12 Sep 2018 17:56:16 +0100 Subject: [PATCH 123/304] Added a with and without cloud test case for soc --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 1 + .../socrates_test/socrates_aquaplanet_with_cloud.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 14591e570..3f2934f5d 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -114,6 +114,7 @@ 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection 'do_cloud_simple': False + }, 'vert_turb_driver_nml': { 'do_mellor_yamada': False, # default: True diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 389e0b898..b14b0d5ba 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -131,12 +131,19 @@ 'do_cloud_simple': True }, + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3 + }, + 'vert_turb_driver_nml': { 'do_mellor_yamada': False, # default: True 'do_diffusivity': True, # default: False 'do_simple': True, # default: False 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False, + 'use_tau': False }, 'diffusivity_nml': { @@ -225,4 +232,4 @@ exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) for i in range(2,121): - exp.run(i, num_cores=NCORES, overwrite_data=overwrite) + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) \ No newline at end of file From 67266c372536d01997291074ecd27dd4023f8dc0 Mon Sep 17 00:00:00 2001 From: sit23 Date: Thu, 6 Dec 2018 09:44:09 +0000 Subject: [PATCH 124/304] Small changes at James Manners suggestion. Changes results A LOT, so this needs to be checked closely. --- src/atmos_param/socrates/interface/socrates_interface.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 07d1a28d6..febf4b85d 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -618,7 +618,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & !----------------------------i ! Set array sizes - input_n_cloud_layer = 1 + input_n_cloud_layer = n_layer input_n_aer_mode = n_layer input_cld_subcol_gen = n_layer input_cld_subcol_req = n_layer From 2994de3a2a20ab7052fbefe2046c9479832994ed Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 6 Dec 2018 11:23:24 +0000 Subject: [PATCH 125/304] Changes to simple clouds for more fields to be outputted --- src/atmos_param/cloud_simple/cloud_simple.F90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index a18178e7c..3b6b261a7 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -136,7 +136,7 @@ subroutine cloud_simple(p_half, p_full, Time, & logical :: es_over_liq_and_ice - real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging + real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & @@ -267,6 +267,7 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) rh = q_hum/qsat + if (spookie_protocol .eq. 1) then cf = (rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) cf = MAX( 0.0, MIN( 1.0, cf)) @@ -286,7 +287,7 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) if (cca > 0.0) then cf = MAX( simple_cca, cf ) end if - + end subroutine calc_cf From b16a01ed0aa796b5a2d37972223934535c213a4f Mon Sep 17 00:00:00 2001 From: sit23 Date: Thu, 6 Dec 2018 15:48:09 +0000 Subject: [PATCH 126/304] Made some changes to socrates cloud test experiment. --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index b14b0d5ba..8b779aff1 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -81,8 +81,8 @@ diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) # additional output options commented out -#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_flux_sw', time_avg=True) #diag.add_field('socrates', 'soc_co2', time_avg=True) #diag.add_field('socrates', 'soc_ozone', time_avg=True) #diag.add_field('socrates', 'soc_coszen', time_avg=True) From bab6fe3b5f773d4a9cab9cd9063a42663f287653 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 28 Mar 2019 09:27:12 +0000 Subject: [PATCH 127/304] Adding diagnostics for clear sky in order to do CRE calculation. --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 3 ++- .../socrates/interface/socrates_interface.F90 | 13 ++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 8b779aff1..87ccaef95 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 16 +NCORES = 8 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -227,6 +227,7 @@ if __name__=="__main__": cb.compile(debug=False) + overwrite=False exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index febf4b85d..21a503e76 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -56,8 +56,15 @@ MODULE socrates_interface_mod INTEGER :: id_soc_tdt_sw, id_soc_tdt_lw, id_soc_tdt_rad INTEGER :: id_soc_surf_flux_lw, id_soc_surf_flux_sw INTEGER :: id_soc_surf_flux_lw_down, id_soc_surf_flux_sw_down + + INTEGER :: id_soc_surf_flux_lw_clear, id_soc_surf_flux_sw_clear + INTEGER :: id_soc_surf_flux_lw_down_clear, id_soc_surf_flux_sw_down_clear + INTEGER :: id_soc_flux_lw, id_soc_flux_sw + INTEGER :: id_soc_olr, id_soc_toa_sw + INTEGER :: id_soc_olr_clear, id_soc_toa_sw_clear + INTEGER :: id_soc_toa_sw_down INTEGER :: id_soc_surf_flux_lw_clear, id_soc_surf_flux_sw_clear INTEGER :: id_soc_surf_flux_lw_down, id_soc_surf_flux_sw_down @@ -79,9 +86,9 @@ MODULE socrates_interface_mod REAL(r_def), allocatable, dimension(:,:,:) :: tdt_soc_sw_store, tdt_soc_lw_store REAL(r_def), allocatable, dimension(:,:,:) :: thd_sw_flux_net_store, thd_lw_flux_net_store REAL(r_def), allocatable, dimension(:,:,:) :: thd_co2_store, thd_ozone_store - REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_store, surf_sw_down_store, surf_lw_down_store, surf_lw_net_store, & - toa_sw_store, olr_store, coszen_store, & - toa_sw_down_store + REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_store, surf_lw_down_store, surf_lw_net_store, surf_lw_net_store, & + surf_sw_down_store, toa_sw_down_store, & + toa_sw_store, olr_store, coszen_store REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_clear_store, surf_sw_down_clear_store, & surf_lw_down_clear_store, surf_lw_net_clear_store, & toa_sw_clear_store, olr_clear_store, toa_sw_down_clear_store From 10082c1a4eb3a8b15eba798f324f31526fbd195d Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 28 Mar 2019 13:40:55 +0000 Subject: [PATCH 128/304] Implement protocol 2 for spookie-2 and debugging clear sky diagnostics --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 6 +++--- src/atmos_param/cloud_simple/cloud_simple.F90 | 11 +++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 87ccaef95..c189a04d2 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 8 +NCORES = 16 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -81,8 +81,8 @@ diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) # additional output options commented out -diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) #diag.add_field('socrates', 'soc_co2', time_avg=True) #diag.add_field('socrates', 'soc_ozone', time_avg=True) #diag.add_field('socrates', 'soc_coszen', time_avg=True) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index 3b6b261a7..91f81ea67 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -136,7 +136,6 @@ subroutine cloud_simple(p_half, p_full, Time, & logical :: es_over_liq_and_ice - real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & @@ -267,6 +266,14 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) rh = q_hum/qsat + if (spookie_protocol .eq. 1) then + cf = (rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) + cf = MAX( 0.0, MIN( 1.0, cf)) + + else + cf = (rh - rh_min ) / ( rh_max - rh_min ) + cf = MAX( 0.0, MIN( 1.0, cf)) + end if if (spookie_protocol .eq. 1) then cf = (rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) @@ -287,7 +294,7 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) if (cca > 0.0) then cf = MAX( simple_cca, cf ) end if - + end subroutine calc_cf From 996899ab06199e211b1d19a477b6ed26cf6a311f Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 14 Apr 2020 10:43:15 +0100 Subject: [PATCH 129/304] Correct errors made during rebase. Code runs but needs to be checked for changes in the cloud scheme to make sure all changes survived the rebase. --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 2 +- src/atmos_param/socrates/interface/socrates_interface.F90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 3f2934f5d..3f23ec6c8 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -208,4 +208,4 @@ #This will be the name of the folder that the data will appear in. exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False) for i in range(2,121): - exp.run(i, num_cores=NCORES) \ No newline at end of file + exp.run(i, num_cores=NCORES) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 21a503e76..e5c4920e6 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -86,7 +86,7 @@ MODULE socrates_interface_mod REAL(r_def), allocatable, dimension(:,:,:) :: tdt_soc_sw_store, tdt_soc_lw_store REAL(r_def), allocatable, dimension(:,:,:) :: thd_sw_flux_net_store, thd_lw_flux_net_store REAL(r_def), allocatable, dimension(:,:,:) :: thd_co2_store, thd_ozone_store - REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_store, surf_lw_down_store, surf_lw_net_store, surf_lw_net_store, & + REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_store, surf_lw_down_store, surf_lw_net_store, & surf_sw_down_store, toa_sw_down_store, & toa_sw_store, olr_store, coszen_store REAL(r_def), allocatable, dimension(:,:) :: net_surf_sw_down_clear_store, surf_sw_down_clear_store, & From fc6ee77a13e8baf8b147169a583b84a49a2c4de5 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 14 Apr 2020 10:58:30 +0100 Subject: [PATCH 130/304] Resolving push/pull conflicts --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 1 + 1 file changed, 1 insertion(+) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 3f23ec6c8..14a163bd0 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -59,6 +59,7 @@ diag.add_field('socrates', 'soc_olr', time_avg=True) diag.add_field('socrates', 'soc_toa_sw', time_avg=True) diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) + diag.add_field('cloud_simple', 'cf_rad', time_avg=True) diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) From 009c1cb73b24041ddca19a8763632eca67fa4858 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 07:40:13 +0100 Subject: [PATCH 131/304] Rebase was a mess. Commit to fit test scripts --- exp/test_cases/MiMA/MiMA_test_case.py | 37 ++++++------------- .../MiMA/MiMA_test_case_no_cloud.py | 15 +++++--- .../socrates_aquaplanet_with_cloud.py | 1 - 3 files changed, 21 insertions(+), 32 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 69a4dcb82..e35ada72e 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 16 +NCORES = 4 # a CodeBase can be a directory on the computer, # useful for iterative development @@ -19,11 +19,11 @@ # is used to load the correct compilers. The env file is always loaded from # $GFDL_BASE and not the checked out git repo. -cb.compile()#debug=True) # compile the source code to working directory $GFDL_WORK/codebase +cb.compile() # compile the source code to working directory $GFDL_WORK/codebase # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('mima_test_experiment_with_mcica', codebase=cb) +exp = Experiment('mima_test_experiment', codebase=cb) exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -43,10 +43,6 @@ diag.add_field('dynamics', 'temp', time_avg=True) diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) -diag.add_field('cloud_simple', 'cf_rad', time_avg=True) -diag.add_field('cloud_simple', 'reff_rad', time_avg=True) -diag.add_field('cloud_simple', 'frac_liq', time_avg=True) -diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) diag.add_field('rrtm_radiation', 'olr', time_avg=True) exp.diag_table = diag @@ -79,16 +75,7 @@ 'roughness_mom':3.21e-05, 'roughness_heat':3.21e-05, 'roughness_moist':3.21e-05, - 'do_cloud_simple': True, - }, - 'cloud_simple_nml': { - 'simple_cca':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3, - 'rhmsfc': 0.95, - 'rhm700': 0.7, - 'rhm200': 0.3, + 'do_cloud_simple': False }, 'vert_turb_driver_nml': { @@ -136,14 +123,13 @@ }, 'sat_vapor_pres_nml': { - 'do_simple':True, - 'construct_table_wrt_liq_and_ice':True + 'do_simple':True }, 'damping_driver_nml': { 'do_rayleigh': True, 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 150., + 'sponge_pbottom': 50., 'do_conserve_energy': True, }, @@ -155,8 +141,7 @@ 'solr_cnst': 1360, #s set solar constant to 1360, rather than default of 1368.22 'dt_rad': 7200, #Use long RRTM timestep 'do_read_ozone':True, - 'ozone_file':'ozone_1990', - 'icld': 1 #cloud overlap method + 'ozone_file':'ozone_1990' }, # FMS Framework configuration @@ -181,7 +166,7 @@ 'valid_range_t':[100.,800.], 'initial_sphum':[2.e-6], 'vert_coord_option':'uneven_sigma', - 'surf_res':0.2, + 'surf_res':0.5, 'scale_heights' : 11.0, 'exponent':7.0, 'robert_coeff':0.03 @@ -191,6 +176,6 @@ }) #Lets do a run! if __name__=="__main__": - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) - for i in range(2,25): - exp.run(i, num_cores=NCORES, overwrite_data=True) \ No newline at end of file + exp.run(1, use_restart=False, num_cores=NCORES) + for i in range(2,121): + exp.run(i, num_cores=NCORES) diff --git a/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py b/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py index 645a589ea..0ece0f029 100644 --- a/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py +++ b/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('mima_test_experiment_no_cloud', codebase=cb) +exp = Experiment('mima_test_experiment_with_mcica', codebase=cb) exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -43,6 +43,10 @@ diag.add_field('dynamics', 'temp', time_avg=True) diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) +diag.add_field('cloud_simple', 'cf_rad', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) diag.add_field('rrtm_radiation', 'olr', time_avg=True) exp.diag_table = diag @@ -75,7 +79,7 @@ 'roughness_mom':3.21e-05, 'roughness_heat':3.21e-05, 'roughness_moist':3.21e-05, - 'do_cloud_simple': False, + 'do_cloud_simple': True, }, 'cloud_simple_nml': { 'simple_cca':0.0, @@ -151,7 +155,8 @@ 'solr_cnst': 1360, #s set solar constant to 1360, rather than default of 1368.22 'dt_rad': 7200, #Use long RRTM timestep 'do_read_ozone':True, - 'ozone_file':'ozone_1990' + 'ozone_file':'ozone_1990', + 'icld': 1 #cloud overlap method }, # FMS Framework configuration @@ -186,6 +191,6 @@ }) #Lets do a run! if __name__=="__main__": - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) for i in range(2,25): - exp.run(i, num_cores=NCORES, overwrite_data=True) + exp.run(i, num_cores=NCORES, overwrite_data=True) \ No newline at end of file diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index c189a04d2..13b5bd19f 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -231,6 +231,5 @@ overwrite=False exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - for i in range(2,121): exp.run(i, num_cores=NCORES, overwrite_data=overwrite) \ No newline at end of file From 2b35e13b4f61aefc252fb945bb447b60ec2db6f2 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 07:58:51 +0100 Subject: [PATCH 132/304] Changed socrates_aquaplanet.py to be more consistent with master --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 14a163bd0..ba2d0d922 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet_without_clouds', codebase=cb) +exp = Experiment('soc_test_aquaplanet', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -60,11 +60,6 @@ diag.add_field('socrates', 'soc_toa_sw', time_avg=True) diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) -diag.add_field('cloud_simple', 'cf_rad', time_avg=True) -diag.add_field('cloud_simple', 'reff_rad', time_avg=True) -diag.add_field('cloud_simple', 'frac_liq', time_avg=True) -diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) - # additional output options commented out #diag.add_field('socrates', 'soc_flux_lw', time_avg=True) #diag.add_field('socrates', 'soc_flux_sw', time_avg=True) @@ -161,7 +156,7 @@ }, 'sat_vapor_pres_nml': { - 'do_simple':True, + 'do_simple':True }, 'damping_driver_nml': { From 57db0e4c363f2882d4bc6a79f74e302aeda5bba2 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 08:07:04 +0100 Subject: [PATCH 133/304] Remove redundent line --- src/atmos_param/cloud_simple/cloud_simple.F90 | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index 91f81ea67..431c5909c 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -136,7 +136,6 @@ subroutine cloud_simple(p_half, p_full, Time, & logical :: es_over_liq_and_ice - !check initiation has been done - ie read in parameters if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) @@ -268,21 +267,12 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) if (spookie_protocol .eq. 1) then cf = (rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) - cf = MAX( 0.0, MIN( 1.0, cf)) else cf = (rh - rh_min ) / ( rh_max - rh_min ) - cf = MAX( 0.0, MIN( 1.0, cf)) end if - if (spookie_protocol .eq. 1) then - cf = (rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) - cf = MAX( 0.0, MIN( 1.0, cf)) - - else - cf = (rh - rh_min ) / ( rh_max - rh_min ) - cf = MAX( 0.0, MIN( 1.0, cf)) - end if + cf = MAX( 0.0, MIN( 1.0, cf)) ! include simple convective cloud fraction where present (not currenly used) cca = 0.0 ! no convective cloud fraction is calculated From 259623ccf80c65d35ed041000c66ddf808caa0a7 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 08:12:12 +0100 Subject: [PATCH 134/304] Returned script to original form --- postprocessing/plevel_interpolation/scripts/run_plevel.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/postprocessing/plevel_interpolation/scripts/run_plevel.py b/postprocessing/plevel_interpolation/scripts/run_plevel.py index 5a04db3c1..334c15950 100644 --- a/postprocessing/plevel_interpolation/scripts/run_plevel.py +++ b/postprocessing/plevel_interpolation/scripts/run_plevel.py @@ -7,11 +7,11 @@ import subprocess start_time=time.time() -base_dir='/scratch/sit204/data_isca/' -exp_name_list = ['soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo'] +base_dir='/scratch/sit204/Data_2013/' +exp_name_list = ['no_ice_flux_lhe_exps_q_flux_hadgem_anoms_3'] avg_or_daily_list=['monthly'] -start_file=96 -end_file=120 +start_file=287 +end_file=288 nfiles=(end_file-start_file)+1 do_extra_averaging=False #If true, then 6hourly data is averaged into daily data using cdo From f7af8a9d3aef1bd4dfabaac5e418aa67723940d5 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 08:12:43 +0100 Subject: [PATCH 135/304] New script for running post-processing on cloud tests --- .../scripts/run_plevel_cloud_tests.py | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py diff --git a/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py b/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py new file mode 100644 index 000000000..5a04db3c1 --- /dev/null +++ b/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py @@ -0,0 +1,108 @@ +from netCDF4 import Dataset +from plevel_fn import plevel_call, daily_average, join_files, two_daily_average, monthly_average +import sys +import os +import time +import pdb +import subprocess + +start_time=time.time() +base_dir='/scratch/sit204/data_isca/' +exp_name_list = ['soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo'] +avg_or_daily_list=['monthly'] +start_file=96 +end_file=120 +nfiles=(end_file-start_file)+1 + +do_extra_averaging=False #If true, then 6hourly data is averaged into daily data using cdo +group_months_into_one_file=False # If true then monthly data files and daily data files are merged into one big netcdf file each. +level_set='standard' #Default is the standard levels used previously. ssw_diagnostics are the ones blanca requested for MiMa validation +mask_below_surface_set=' ' #Default is to mask values that lie below the surface pressure when interpolated. For some applications, e.g. Tom Clemo's / Mark Baldwin's stratosphere index, you want to have values interpolated below ground, i.e. as if the ground wasn't there. To use this option, this value should be set to '-x '. + + +try: + out_dir +except: + out_dir = base_dir + +plevs={} +var_names={} + +if level_set=='standard': + + plevs['monthly']=' -p "3 16 51 138 324 676 1000 1266 2162 3407 5014 6957 9185 10000 11627 14210 16864 19534 20000 22181 24783 27331 29830 32290 34731 37173 39637 42147 44725 47391 50164 53061 56100 59295 62661 66211 70000 73915 78095 82510 85000 87175 92104 97312"' + + plevs['timestep']=' -p "3 16 51 138 324 676 1000 1266 2162 3407 5014 6957 9185 10000 11627 14210 16864 19534 20000 22181 24783 27331 29830 32290 34731 37173 39637 42147 44725 47391 50164 53061 56100 59295 62661 66211 70000 73915 78095 82510 85000 87175 92104 97312"' + + plevs['pentad']=' -p "3 16 51 138 324 676 1000 1266 2162 3407 5014 6957 9185 10000 11627 14210 16864 19534 20000 22181 24783 27331 29830 32290 34731 37173 39637 42147 44725 47391 50164 53061 56100 59295 62661 66211 70000 73915 78095 82510 85000 87175 92104 97312"' + + plevs['6hourly']=' -p "1000 10000 25000 50000 85000 92500"' + plevs['daily'] =' -p "1000 10000 25000 50000 85000 92500"' + + var_names['monthly']='-a slp height' + var_names['pentad']='-a slp height' + var_names['timestep']='-a' + var_names['6hourly']='ucomp slp height vor t_surf vcomp omega' + var_names['daily']='ucomp slp height vor t_surf vcomp omega temp' + file_suffix='_interp_new_height_temp' + +elif level_set=='ssw_diagnostics': + plevs['6hourly']=' -p "1000 10000"' + var_names['monthly']='ucomp temp height' + var_names['6hourly']='ucomp vcomp temp' + file_suffix='_bl' + +elif level_set=='tom_diagnostics': + var_names['daily']='height temp' + plevs['daily']=' -p "10 30 100 300 500 700 1000 3000 5000 7000 10000 15000 20000 25000 30000 40000 50000 60000 70000 75000 80000 85000 90000 95000 100000"' + mask_below_surface_set='-x ' + file_suffix='_tom_mk2' + + +for exp_name in exp_name_list: + for n in range(nfiles): + for avg_or_daily in avg_or_daily_list: + print(n+start_file) + + number_prefix='' + + if n+start_file < 1000: + number_prefix='0' + if n+start_file < 100: + number_prefix='00' + if n+start_file < 10: + number_prefix='000' + + nc_file_in = base_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+'.nc' + nc_file_out = out_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+file_suffix+'.nc' + + if not os.path.isfile(nc_file_out): + plevel_call(nc_file_in,nc_file_out, var_names = var_names[avg_or_daily], p_levels = plevs[avg_or_daily], mask_below_surface_option=mask_below_surface_set) + if do_extra_averaging and avg_or_daily=='6hourly': + nc_file_out_daily = base_dir+'/'+exp_name+'/run'+str(n+start_file)+'/atmos_daily'+file_suffix+'.nc' + daily_average(nc_file_out, nc_file_out_daily) + if do_extra_averaging and avg_or_daily=='pentad': + nc_file_out_daily = base_dir+'/'+exp_name+'/run'+str(n+start_file)+'/atmos_monthly'+file_suffix+'.nc' + monthly_average(nc_file_out, nc_file_out_daily, adjust_time = True) +# if do_extra_averaging and avg_or_daily=='6hourly': +# nc_file_out_two_daily = base_dir+'/'+exp_name+'/run'+str(n+start_file)+'/atmos_two_daily'+file_suffix+'.nc' +# two_daily_average(nc_file_out, nc_file_out_two_daily, avg_or_daily) + +if group_months_into_one_file: + avg_or_daily_list_together=['daily'] + + + for exp_name in exp_name_list: + for avg_or_daily in avg_or_daily_list_together: + nc_file_string='' + for n in range(nfiles): + nc_file_in = base_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+file_suffix+'.nc' + nc_file_string=nc_file_string+' '+nc_file_in + nc_file_out=base_dir+'/'+exp_name+'/atmos_'+avg_or_daily+'_together'+file_suffix+'.nc' + if not os.path.isfile(nc_file_out): + join_files(nc_file_string,nc_file_out) + +print('execution time', time.time()-start_time) + + + From e63e099e7e163b84e612812edec73ef173e0ae62 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 08:17:09 +0100 Subject: [PATCH 136/304] Merged back in stephens old changes that were missed in rebase --- src/extra/model/isca/path_names | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/extra/model/isca/path_names b/src/extra/model/isca/path_names index c147c0ba3..eebdfd2b0 100644 --- a/src/extra/model/isca/path_names +++ b/src/extra/model/isca/path_names @@ -47,7 +47,7 @@ atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/modules/rrlw_wvn.f90 atmos_param/rrtm_radiation/rrtm_radiation.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/mcica_random_numbers.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_cldprop.f90 -atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rad.f90 +atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rad.nomcica.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rtrn.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_setcoef.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/mcica_subcol_gen_lw.f90 @@ -83,7 +83,7 @@ atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/modules/rrsw_vsn.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/modules/rrsw_wvn.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/mcica_random_numbers.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/mcica_subcol_gen_sw.f90 -atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_rad.f90 +atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_rad.nomcica.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_cldprop.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_cldprmc.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_init.f90 From 3bf24efe45dc260234c0ec81abcb05af8e93923f Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 08:22:47 +0100 Subject: [PATCH 137/304] Resolved filename merge errors --- src/extra/model/socrates/path_names | 92 +++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/src/extra/model/socrates/path_names b/src/extra/model/socrates/path_names index 1a143cb31..0305b32ba 100644 --- a/src/extra/model/socrates/path_names +++ b/src/extra/model/socrates/path_names @@ -329,6 +329,89 @@ atmos_param/socrates/src/trunk/src/radiance_core/monochromatic_radiance.F90 atmos_param/socrates/src/trunk/src/radiance_core/aggregate_cloud.F90 atmos_param/socrates/src/trunk/src/radiance_core/radiance_calc.F90 atmos_param/socrates/src/trunk/src/radiance_core/ir_source.F90 +atmos_param/socrates/src/trunk/src/scatter/conjugate_gradient_cloud_90.f90 +atmos_param/socrates/src/trunk/src/scatter/method_weight_pcf.f90 +atmos_param/socrates/src/trunk/src/scatter/select_weight_scatter_90.f90 +atmos_param/socrates/src/trunk/src/scatter/measure_particle_pcf.f90 +atmos_param/socrates/src/trunk/src/scatter/prec_integral_tcf.f90 +atmos_param/socrates/src/trunk/src/scatter/def_s_scat_prop.f90 +atmos_param/socrates/src/trunk/src/scatter/db_scatter_integral.f90 +atmos_param/socrates/src/trunk/src/scatter/weightings_90.f90 +atmos_param/socrates/src/trunk/src/scatter/def_db_ss_mono.f90 +atmos_param/socrates/src/trunk/src/scatter/cloud_fitting.f90 +atmos_param/socrates/src/trunk/src/scatter/shape_particle_pcf.f90 +atmos_param/socrates/src/trunk/src/scatter/number_particle_90.f90 +atmos_param/socrates/src/trunk/src/scatter/db_interp_ss_mono.f90 +atmos_param/socrates/src/trunk/src/scatter/db_read_single_wavelength.f90 +atmos_param/socrates/src/trunk/src/scatter/get_refract_index.f90 +atmos_param/socrates/src/trunk/src/scatter/read_scatter_block_90.f90 +atmos_param/socrates/src/trunk/src/scatter/proj_area_particle.f90 +atmos_param/socrates/src/trunk/src/scatter/line_search_cloud_90.f90 +atmos_param/socrates/src/trunk/src/scatter/volume_particle.f90 +atmos_param/socrates/src/trunk/src/scatter/distribution_pcf.f90 +atmos_param/socrates/src/trunk/src/scatter/size_integral_90.f90 +atmos_param/socrates/src/trunk/src/scatter/particle_size_90.f90 +atmos_param/socrates/src/trunk/src/scatter/max_size_acf.f90 +atmos_param/socrates/src/trunk/src/scatter/write_average_90.f90 +atmos_param/socrates/src/trunk/src/scatter/adt_mitchell96.f90 +atmos_param/socrates/src/trunk/src/scatter/get_db_wavelengths.f90 +atmos_param/socrates/src/trunk/src/scatter/decompose_phf_90.f90 +atmos_param/socrates/src/trunk/src/scatter/cloud_fit_parm_acf.f90 +atmos_param/socrates/src/trunk/src/scatter/cloud_fit_90.f90 +atmos_param/socrates/src/trunk/src/scatter/ice_db_read_geometry.f90 +atmos_param/socrates/src/trunk/src/scatter/def_sct_db.f90 +atmos_param/socrates/src/trunk/src/scatter/open_average_90.f90 +atmos_param/socrates/src/trunk/src/scatter/def_size_dist.f90 +atmos_param/socrates/src/trunk/src/scatter/parm_integ_acf.f90 +atmos_param/socrates/src/trunk/src/scatter/bna_factor_ccf.f90 +atmos_param/socrates/src/trunk/src/scatter/def_db_crystal_geometry.f90 +atmos_param/socrates/src/trunk/src/scatter/get_wavelengths.f90 +atmos_param/socrates/src/trunk/src/scatter/weightings_single_90.f90 +atmos_param/socrates/src/trunk/src/scatter/scatter_algorithm_pcf.f90 +atmos_param/socrates/src/trunk/src/scatter/db_type_ucf.f90 +atmos_param/socrates/src/trunk/src/scatter/scatter_integral_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/voigt_profile.f90 +atmos_param/socrates/src/trunk/src/correlated_k/adjust_path.f90 +atmos_param/socrates/src/trunk/src/correlated_k/func_scale_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/read_pt_line_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/set_condition_ck_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/caviar_continuum_v1_0.f90 +atmos_param/socrates/src/trunk/src/correlated_k/rad_weight_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/select_weight_ck_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/trans_k_dist.f90 +atmos_param/socrates/src/trunk/src/correlated_k/type_residual_pcf.f90 +atmos_param/socrates/src/trunk/src/correlated_k/map_shell.f90 +atmos_param/socrates/src/trunk/src/correlated_k/terminate_scale_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/ckd_continuum_v2_4.f90 +atmos_param/socrates/src/trunk/src/correlated_k/write_fit_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/ck_parm_acf.f90 +atmos_param/socrates/src/trunk/src/correlated_k/fit_parabola_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/func_scale_derivative_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/optimal_k.f90 +atmos_param/socrates/src/trunk/src/correlated_k/open_file_out_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/residual_gradient_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/scale_ck_fit_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/read_ref_pt_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/corr_k_single.f90 +atmos_param/socrates/src/trunk/src/correlated_k/planck_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/exponent_fit_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/conjugate_gradient_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/line_prof_corr_mod.f90 +atmos_param/socrates/src/trunk/src/correlated_k/set_extern_ckd_frn_data.f90 +atmos_param/socrates/src/trunk/src/correlated_k/set_g_point_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/bi_interp.f90 +atmos_param/socrates/src/trunk/src/correlated_k/residual_trans_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/set_extern_ckd_self_data.f90 +atmos_param/socrates/src/trunk/src/correlated_k/line_search_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/read_hitran.f90 +atmos_param/socrates/src/trunk/src/correlated_k/read_nc.f90 +atmos_param/socrates/src/trunk/src/correlated_k/ckd_extern_data.f90 +atmos_param/socrates/src/trunk/src/correlated_k/def_hitran_record.f90 +atmos_param/socrates/src/trunk/src/correlated_k/d_planck_90.f90 +atmos_param/socrates/src/trunk/src/correlated_k/scale_parameters_acf.f90 +atmos_param/socrates/src/trunk/src/correlated_k/offset_residual_trans_acf.f90 +atmos_param/socrates/src/trunk/src/correlated_k/hitran_cnst.f90 +atmos_param/socrates/src/trunk/src/correlated_k/ck_fit_pcf.f90 atmos_param/socrates/src/trunk/src/aux/qsat_wat.F90 atmos_param/socrates/src/trunk/src/aux/qsat_gill.F90 atmos_param/socrates/src/trunk/src/aux/write_cdf.f90 @@ -351,6 +434,7 @@ atmos_param/socrates/src/trunk/src/general/make_block_18.f90 atmos_param/socrates/src/trunk/src/general/remove_negative_gas_90.f90 atmos_param/socrates/src/trunk/src/general/make_block_17.f90 atmos_param/socrates/src/trunk/src/general/make_block_1.f90 +atmos_param/socrates/src/trunk/src/general/solar_intensity_90.f90 atmos_param/socrates/src/trunk/src/general/make_block_19.f90 atmos_param/socrates/src/trunk/src/general/make_block_0.f90 atmos_param/socrates/src/trunk/src/general/make_block_10.f90 @@ -400,6 +484,8 @@ atmos_param/socrates/src/trunk/src/radiation_control/set_moist_aerosol_propertie atmos_param/socrates/src/trunk/src/radiation_control/mcica_mod.F90 atmos_param/socrates/src/trunk/src/radiation_control/cld_generator_mod.F90 atmos_param/socrates/src/trunk/src/radiation_control/open_cloud_gen.F90 +atmos_param/socrates/src/trunk/src/um/out_nml.f90 +atmos_param/socrates/src/trunk/src/um/def_um_nml.f90 atmos_param/socrates/src/trunk/src/modules_core/errormessagelength_mod.F90 atmos_param/socrates/src/trunk/src/modules_core/dimensions_spec_ucf.F90 atmos_param/socrates/src/trunk/src/modules_core/rad_ccf.F90 @@ -411,6 +497,11 @@ atmos_param/socrates/src/trunk/src/modules_core/vectlib_mod.F90 atmos_param/socrates/src/trunk/src/modules_core/ereport_mod.F90 atmos_param/socrates/src/trunk/src/modules_core/realtype_rd.f90 atmos_param/socrates/src/trunk/src/modules_core/filenamelength_mod.F90 +atmos_param/socrates/src/trunk/src/scatter/grow_particles.f +atmos_param/socrates/src/trunk/src/scatter/mie_scatter.f +atmos_param/socrates/src/trunk/src/scatter/adt_integral.f +atmos_param/socrates/src/trunk/src/scatter/gamma_fnc.f +atmos_param/socrates/src/trunk/src/scatter/refractive_index.f atmos_param/socrates/src/trunk/src/aux/output_vert_cdl.f atmos_param/socrates/src/trunk/src/aux/assign_input_opt_cdf.f atmos_param/socrates/src/trunk/src/aux/assign_input_ss_cdl.f @@ -492,6 +583,7 @@ atmos_param/socrates/src/trunk/src/general/calc_planck_tbl.f atmos_param/socrates/src/trunk/src/general/read_word.f atmos_param/socrates/interface/read_control.F90 atmos_param/socrates/interface/set_atm.F90 +atmos_param/socrates/interface/set_cld.F90 atmos_param/socrates/interface/socrates_set_cld.F90 atmos_param/socrates/interface/set_dimen.F90 atmos_param/socrates/interface/socrates_config_mod.f90 From 7ec0fc5a429a6c1874760a99e59d9710262ba18b Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 09:03:13 +0100 Subject: [PATCH 138/304] Minor fix --- src/atmos_param/socrates/interface/socrates_config_mod.f90 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_config_mod.f90 b/src/atmos_param/socrates/interface/socrates_config_mod.f90 index 90a712da8..a0d102d5f 100644 --- a/src/atmos_param/socrates/interface/socrates_config_mod.f90 +++ b/src/atmos_param/socrates/interface/socrates_config_mod.f90 @@ -126,7 +126,6 @@ module socrates_config_mod hfc134a_mix_ratio, & inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, & inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, & - use_pressure_interp_for_half_levels, & - frierson_solar_rad, del_sol, del_sw, & - account_for_clouds_in_socrates + use_pressure_interp_for_half_levels, & + frierson_solar_rad, del_sol, del_sw end module socrates_config_mod From 67475802a0d2baf0b999864e87c22ad5d2ba15e6 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 09:03:33 +0100 Subject: [PATCH 139/304] Minor fix --- src/atmos_param/socrates/interface/socrates_config_mod.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/atmos_param/socrates/interface/socrates_config_mod.f90 b/src/atmos_param/socrates/interface/socrates_config_mod.f90 index a0d102d5f..8f9e9881b 100644 --- a/src/atmos_param/socrates/interface/socrates_config_mod.f90 +++ b/src/atmos_param/socrates/interface/socrates_config_mod.f90 @@ -126,6 +126,6 @@ module socrates_config_mod hfc134a_mix_ratio, & inc_h2o, inc_co2, inc_co, inc_o3, inc_n2o, inc_ch4, inc_o2, & inc_so2, inc_cfc11, inc_cfc12, inc_cfc113, inc_hcfc22, inc_hfc134a, & - use_pressure_interp_for_half_levels, & + use_pressure_interp_for_half_levels, & frierson_solar_rad, del_sol, del_sw end module socrates_config_mod From 36959ed5fb2103ed81e3bac2a0528024e5d7e107 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 09:10:05 +0100 Subject: [PATCH 140/304] Removed redundent line --- src/atmos_param/socrates/interface/socrates_calc.F90 | 1 - 1 file changed, 1 deletion(-) diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index 5474d0d5f..c4a6018ff 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -183,7 +183,6 @@ subroutine socrates_calc(Time_diag,control, spectrum, & t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity) -! call set_cld(control, dimen, spectrum, cld, n_profile) zeros_cld = 0. ten_microns_cld = 1. From 00a4e3d7dc7540223532d7d96ac5f2b9873c9bbe Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 09:57:09 +0100 Subject: [PATCH 141/304] Removed extra variable declarations (merge error) --- .../socrates/interface/socrates_interface.F90 | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index e5c4920e6..00ca66b95 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -56,23 +56,11 @@ MODULE socrates_interface_mod INTEGER :: id_soc_tdt_sw, id_soc_tdt_lw, id_soc_tdt_rad INTEGER :: id_soc_surf_flux_lw, id_soc_surf_flux_sw INTEGER :: id_soc_surf_flux_lw_down, id_soc_surf_flux_sw_down - - INTEGER :: id_soc_surf_flux_lw_clear, id_soc_surf_flux_sw_clear - INTEGER :: id_soc_surf_flux_lw_down_clear, id_soc_surf_flux_sw_down_clear - - INTEGER :: id_soc_flux_lw, id_soc_flux_sw - - INTEGER :: id_soc_olr, id_soc_toa_sw - INTEGER :: id_soc_olr_clear, id_soc_toa_sw_clear - - INTEGER :: id_soc_toa_sw_down INTEGER :: id_soc_surf_flux_lw_clear, id_soc_surf_flux_sw_clear - INTEGER :: id_soc_surf_flux_lw_down, id_soc_surf_flux_sw_down INTEGER :: id_soc_surf_flux_lw_down_clear, id_soc_surf_flux_sw_down_clear INTEGER :: id_soc_flux_lw, id_soc_flux_sw INTEGER :: id_soc_olr, id_soc_toa_sw, id_soc_olr_clear, id_soc_toa_sw_clear INTEGER :: id_soc_toa_sw_down, id_soc_toa_sw_down_clear - INTEGER :: id_soc_ozone, id_soc_co2, id_soc_coszen INTEGER :: n_soc_bands_lw, n_soc_bands_sw INTEGER :: n_soc_bands_lw_hires, n_soc_bands_sw_hires @@ -1177,7 +1165,6 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf mmr_cl_rad_soc = 0. endif - n_profile = INT(size(temp_in,2)*size(temp_in,1), kind(i_def)) n_layer = INT(size(temp_in,3), kind(i_def)) t_surf_for_soc = REAL(t_surf_in(:,:), kind(r_def)) From dfb4e639368d11dddab6d5b3ae3c906df1ef5772 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 10:45:38 +0100 Subject: [PATCH 142/304] Cleaned up var name cfa_rad to cf_rad. Cleaned up variable declarations. Removed ref to account_for_clouds_in_soc --- .../socrates_test/socrates_aquaplanet.py | 1 - .../socrates_aquaplanet_with_cloud.py | 4 +-- .../rrtm_radiation/rrtm_radiation.f90 | 4 +-- .../socrates/interface/socrates_interface.F90 | 26 ++++++++----------- .../driver/solo/idealized_moist_phys.F90 | 4 +-- 5 files changed, 17 insertions(+), 22 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 58b713f4c..955b1df66 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -100,7 +100,6 @@ 'use_pressure_interp_for_half_levels':False, 'tidally_locked':False, #'solday': 90 - 'account_for_clouds_in_socrates': False, }, 'idealized_moist_phys_nml': { 'do_damping': True, diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 13b5bd19f..865a9d18a 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -231,5 +231,5 @@ overwrite=False exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - for i in range(2,121): - exp.run(i, num_cores=NCORES, overwrite_data=overwrite) \ No newline at end of file + #for i in range(2,121): + # exp.run(i, num_cores=NCORES, overwrite_data=overwrite) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 92fdbcf4f..ee4859d1e 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -542,7 +542,7 @@ end subroutine interp_temp !***************************************************************************************** subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & albedo,q,t,t_surf_rad,tdt, & - coszen,flux_sw,flux_lw,cfa_rad,reff_rad, & + coszen,flux_sw,flux_lw,cf_rad,reff_rad, & do_cloud_simple) ! ! Driver for RRTMG radiation scheme. @@ -589,7 +589,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & real(kind=rb),dimension(:,:),intent(out),optional :: flux_sw,flux_lw ! surface fluxes [W/m2] ! dimension (lat x lon) ! need to have both or none! - real(kind=rb), dimension(:,:,:), intent(in) :: cfa_rad,reff_rad !cloud properties + real(kind=rb), dimension(:,:,:), intent(in) :: cf_rad,reff_rad !cloud properties logical, intent(in) :: do_cloud_simple diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index a868486b3..4adffbb89 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -124,18 +124,6 @@ SUBROUTINE socrates_init(is, ie, js, je, num_levels, axes, Time, lat, lonb, latb !Initialise astronomy call astronomy_init - if(do_cloud_simple.and..not.account_for_clouds_in_socrates) then - - call error_mesg( 'run_socrates', & - 'do_cloud_simple is True but account_for_clouds_in_socrates is False. Radiative effects of clouds NOT accounted for', WARNING) - - elseif(.not.do_cloud_simple.and.account_for_clouds_in_socrates) then - - call error_mesg( 'run_socrates', & - 'do_cloud_simple is False but account_for_clouds_in_socrates is True. Radiative effects of clouds NOT accounted for', WARNING) - - endif - !Initialise variables related to radiation timestep call get_time(delta_t_atmos,time_step_seconds) @@ -840,10 +828,18 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf integer(i_def) :: n_profile, n_layer real(r_def), dimension(size(temp_in,1), size(temp_in,2)) :: t_surf_for_soc, rad_lat_soc, rad_lon_soc, albedo_soc - real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc, output_heating_rate_sw, output_heating_rate_lw, output_heating_rate_total, z_full_soc - real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: cld_conv_frac_soc - real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: output_soc_flux_sw_down, output_soc_flux_sw_up, output_soc_flux_lw_down, output_soc_flux_lw_up, cld_frac_soc, reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: output_heating_rate_sw, output_heating_rate_lw + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: output_heating_rate_total, z_full_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: cld_frac_soc, cld_conv_frac_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, z_half_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: output_soc_flux_sw_down, output_soc_flux_sw_up + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: output_soc_flux_lw_down, output_soc_flux_lw_up + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear + logical :: soc_lw_mode, used integer :: seconds, days, year_in_s diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index e914db31f..36efa6f85 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -801,7 +801,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv ! Simple cloud scheme variabilies to pass to radiation -real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cfa_rad, reff_rad, qcl_rad, cca_rad +real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad, cca_rad real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot @@ -1113,7 +1113,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg call interp_temp(z_full(:,:,:,current),z_half(:,:,:,current),tg_interp, Time) call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current), & albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:), & - coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cfa_rad(:,:,:), reff_rad(:,:,:), & + coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cf_rad(:,:,:), reff_rad(:,:,:), & do_cloud_simple ) endif #endif From 2608ff93c0fe9719e16e1f232678f038bab57de8 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 10:55:33 +0100 Subject: [PATCH 143/304] Soc with clouds compiles and runs for 1 month --- exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 865a9d18a..013b4663d 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet_with_clouds_post_jm_suggestions', codebase=cb) +exp = Experiment('soc_test_aquaplanet_with_clouds_post_jm_suggestions', codebase=cb) # need to update after testing is complete. exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] From 8b6606f402f8f9f4c21d9991e01296c3ac5e680c Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 11:02:28 +0100 Subject: [PATCH 144/304] Changed error in filename --- .../{MiMA_test_case_no_cloud.py => MiMA_test_case_with_cloud.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename exp/test_cases/MiMA/{MiMA_test_case_no_cloud.py => MiMA_test_case_with_cloud.py} (100%) diff --git a/exp/test_cases/MiMA/MiMA_test_case_no_cloud.py b/exp/test_cases/MiMA/MiMA_test_case_with_cloud.py similarity index 100% rename from exp/test_cases/MiMA/MiMA_test_case_no_cloud.py rename to exp/test_cases/MiMA/MiMA_test_case_with_cloud.py From b63f5eb5354bf139178b2dfd7ea25b1f40cb3486 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 11:10:41 +0100 Subject: [PATCH 145/304] Revert some changes during rebase and update to set cloud scheme to off --- exp/test_cases/MiMA/MiMA_test_case.py | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 420fc1a3a..a2c0ce518 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -4,7 +4,7 @@ from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -NCORES = 16 +NCORES = 4 # a CodeBase can be a directory on the computer, # useful for iterative development @@ -19,11 +19,11 @@ # is used to load the correct compilers. The env file is always loaded from # $GFDL_BASE and not the checked out git repo. -cb.compile()#debug=True) # compile the source code to working directory $GFDL_WORK/codebase +cb.compile() # compile the source code to working directory $GFDL_WORK/codebase # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('mima_test_experiment_with_mcica', codebase=cb) +exp = Experiment('mima_test_experiment', codebase=cb) exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -43,7 +43,6 @@ diag.add_field('dynamics', 'temp', time_avg=True) diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) -diag.add_field('rrtm_radiation', 'olr', time_avg=True) exp.diag_table = diag @@ -123,14 +122,13 @@ }, 'sat_vapor_pres_nml': { - 'do_simple':True, - 'construct_table_wrt_liq_and_ice':True + 'do_simple':True }, 'damping_driver_nml': { 'do_rayleigh': True, 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 150., + 'sponge_pbottom': 50., 'do_conserve_energy': True, }, @@ -142,8 +140,7 @@ 'solr_cnst': 1360, #s set solar constant to 1360, rather than default of 1368.22 'dt_rad': 7200, #Use long RRTM timestep 'do_read_ozone':True, - 'ozone_file':'ozone_1990', - 'icld': 1 #cloud overlap method + 'ozone_file':'ozone_1990' }, # FMS Framework configuration @@ -168,7 +165,7 @@ 'valid_range_t':[100.,800.], 'initial_sphum':[2.e-6], 'vert_coord_option':'uneven_sigma', - 'surf_res':0.2, + 'surf_res':0.5, 'scale_heights' : 11.0, 'exponent':7.0, 'robert_coeff':0.03 @@ -178,6 +175,7 @@ }) #Lets do a run! if __name__=="__main__": - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) - for i in range(2,25): - exp.run(i, num_cores=NCORES, overwrite_data=True) + exp.run(1, use_restart=False, num_cores=NCORES) + for i in range(2,121): + exp.run(i, num_cores=NCORES) + From b9c466618e0b1d1b208ecfb1668aab3778e3eb02 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 21 May 2020 11:42:57 +0100 Subject: [PATCH 146/304] RRTM not currenly working with cloud scheme. To be investigated in seperate PR once simple cloud scheme is merged in usig soc --- src/atmos_param/rrtm_radiation/rrtm_radiation.f90 | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index ee4859d1e..daabf3f00 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -552,9 +552,11 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! Modules use fms_mod, only: error_mesg, FATAL use mpp_mod, only: mpp_pe,mpp_root_pe - use rrtmg_lw_rad, only: rrtmg_lw, mcica_subcol_lw - use rrtmg_sw_rad, only: rrtmg_sw, mcica_subcol_sw - use astronomy_mod, only: diurnal_solar + use rrtmg_lw_rad, only: rrtmg_lw + use rrtmg_sw_rad, only: rrtmg_sw + use mcica_subcol_gen_lw, only: mcica_subcol_lw + use mcica_subcol_gen_sw, only: mcica_subcol_sw + use astronomy_mod, only: diurnal_solar use rrtm_vars use time_manager_mod,only: time_type,get_time,set_time, length_of_year, length_of_day use interpolator_mod,only: interpolator From 93c8933c30ed469fca390390433bfad587e18507 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 22 May 2020 09:23:35 +0100 Subject: [PATCH 147/304] Change to namelist variables for cloud scheme --- .../MiMA/MiMA_test_case_with_cloud.py | 7 +- .../socrates_aquaplanet_with_cloud.py | 2 +- ...es_aquaplanet_with_cloud_amip_with_topo.py | 2 +- src/atmos_param/cloud_simple/cloud_simple.F90 | 162 ++++++++++-------- .../driver/solo/idealized_moist_phys.F90 | 14 +- 5 files changed, 102 insertions(+), 85 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case_with_cloud.py b/exp/test_cases/MiMA/MiMA_test_case_with_cloud.py index 0ece0f029..e544c14a3 100644 --- a/exp/test_cases/MiMA/MiMA_test_case_with_cloud.py +++ b/exp/test_cases/MiMA/MiMA_test_case_with_cloud.py @@ -82,13 +82,10 @@ 'do_cloud_simple': True, }, 'cloud_simple_nml': { - 'simple_cca':0.0, + 'cca_lower_limit':0.0, 'rhcsfc': 0.95, 'rhc700': 0.7, 'rhc200': 0.3, - 'rhmsfc': 0.95, - 'rhm700': 0.7, - 'rhm200': 0.3, }, 'vert_turb_driver_nml': { @@ -193,4 +190,4 @@ if __name__=="__main__": exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) for i in range(2,25): - exp.run(i, num_cores=NCORES, overwrite_data=True) \ No newline at end of file + exp.run(i, num_cores=NCORES, overwrite_data=True) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 013b4663d..c0ac93c70 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -132,7 +132,7 @@ }, 'cloud_simple_nml': { - 'simple_cca':0.0, + 'cca_lower_limit':0.0, 'rhcsfc': 0.95, 'rhc700': 0.7, 'rhc200': 0.3 diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py index 0c88efd1d..ad5632df3 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py @@ -118,7 +118,7 @@ }, 'cloud_simple_nml': { - 'simple_cca':0.0, + 'cca_lower_limit':0.0, 'rhcsfc': 0.95, 'rhc700': 0.7, 'rhc200': 0.3 diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index 431c5909c..71f1eb20d 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -8,46 +8,49 @@ module cloud_simple_mod use fms_mod, only: stdlog, FATAL, WARNING, error_mesg use time_manager_mod, only: time_type - use sat_vapor_pres_mod, only: compute_qs + use sat_vapor_pres_mod, only: compute_qs + use constants_mod, only: KELVIN use diag_manager_mod, only: register_diag_field, send_data implicit none - logical :: do_init = .true. ! Check if init needs to be run + logical :: do_init = .true. ! update to false after init has been run - real :: simple_cca = 0.0 + real :: cca_lower_limit = 0.0 ! simple convective cloud fraction min + ! the default is zero. Not being used but + ! could be adapted in future. - ! Critical RH (fraction) values - spookie protocol 1 only - real :: rhc_sfc = 0.95 + ! There were two testing schenarios developed for the sppookie-2 project. + ! The first was implemented but not tested very much. The second protocol is + ! what was used for that project and what has been more tested in Isca. + + integer :: spookie_protocol = 2 + + ! Critical RH (fraction) values - spookie-2 protocol version 1 + real :: rhc_sfc = 1.0 real :: rhc_base = 0.7 real :: rhc_top = 0.3 - ! - real :: rhmsfc = 0.95 - real :: rhm700 = 0.7 - real :: rhm200 = 0.3 - ! Critical RH (fraction) values - spookie protocol 2 only - real :: rh_min_top = 0.9 + ! Critical RH (fraction) values - spookie-2 protocol version 2 + ! initial values for RH. Updated in calc_rh_min_max real :: rh_min_sfc = 1.0 real :: rh_min_base = 0.8 - real :: rh_max_top = 1.0 + real :: rh_min_top = 0.9 + real :: rh_max_sfc = 1.0 real :: rh_max_base = 1.0 + real :: rh_max_top = 1.0 - ! Pressure (Pa.) at cloud bottom and top (very approx) + ! Pressure (Pa) at cloud bottom and top (very approx) real :: p_base = 70000. real :: p_top = 20000. - integer :: spookie_protocol = 2 + namelist /cloud_simple_nml/ cca_lower_limit, rhc_sfc, rhc_base, rhc_top, & - namelist /cloud_simple_nml/ simple_cca, rhc_sfc, rhc_base, rhc_top, & - rhmsfc, rhm700, rhm200, & rh_min_top, rh_min_sfc, rh_min_base, & rh_max_top, rh_max_sfc, rh_max_base - real :: zerodegc = 273.15 - integer :: id_cf, id_reff_rad, id_frac_liq, id_qcl_rad, id_rh_in_cf, & id_simple_rhcrit, id_rh_min @@ -63,7 +66,7 @@ subroutine cloud_simple_init (axes, Time) type(time_type), intent(in) :: Time integer, intent(in), dimension(4) :: axes - integer :: io ,stdlog_unit + integer :: io, stdlog_unit #ifdef INTERNAL_FILE_NML @@ -98,6 +101,8 @@ subroutine cloud_simple_init (axes, Time) 'Specific humidity of cloud liquid', & 'kg/kg') + ! rh_in_cf is an output diagnostic only for debugging + id_rh_in_cf = & register_diag_field ( mod_name_cld, 'rh_in_cf', axes(1:3), Time, & 'RH as a percent', & @@ -123,50 +128,57 @@ end subroutine cloud_simple_init subroutine cloud_simple(p_half, p_full, Time, & temp, q_hum, & ! outs - cf, cca, reff_rad, qcl_rad) + cf, reff_rad, qcl_rad) real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half type(time_type) , intent(in) :: Time - real , intent(out), dimension(:,:,:) :: cf, reff_rad, qcl_rad, cca + real , intent(out), dimension(:,:,:) :: cf, reff_rad, qcl_rad - real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq, rh_in_cf, simple_rhcrit, rh_min, rh_max + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: rh_in_cf + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: simple_rhcrit + real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: rh_min,rh_max integer :: i, j, k, k_surf logical :: es_over_liq_and_ice - !check initiation has been done - ie read in parameters + !check initiation has been done if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) - - ! Get the saturated specific humidity TOTAL (ie ice and vap) ***double check maths! + + ! Get the saturated specific humidity with respect to water and ice + ! this is set by the namelist variable sat_vapor_pres_nml call compute_qs(temp, p_full, qs) - k_surf = size(temp, 3) + k_surf = size(temp, 3) !set the location of the lowest model level do i=1, size(temp, 1) do j=1, size(temp, 2) do k=1, size(temp, 3) - ! caluclate the liquid fraction, effective radius, critical RH for - ! the simple cloud scheme and cloud fraction. - ! rh_in_cf is an output diagnostic only for debugging + ! calculate the liquid fraction call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) + ! calculate the effective radius call calc_reff(frac_liq(i,j,k), reff_rad(i,j,k)) if (spookie_protocol .eq. 1) then + ! calculate the critical RH call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) else + ! calculate the min and max RH call calc_rh_min_max(p_full(i,j,k), p_full(i,j,k_surf),rh_min(i,j,k), rh_max(i,j,k)) endif + ! calculate the cloud fraction call calc_cf(q_hum(i,j,k), qs(i,j,k), cf(i,j,k), cca(i,j,k), rh_in_cf(i,j,k), & simple_rhcrit = simple_rhcrit(i,j,k), & rh_min = rh_min(i,j,k), rh_max = rh_max(i,j,k) ) - call calc_qcl_rad(p_full(i,j,k), cf(i,j,k), temp(i,j,k), qcl_rad(i,j,k) ) + ! calculate the specific humidity of cloud liquid + call calc_mixing_ratio(p_full(i,j,k), cf(i,j,k), temp(i,j,k), qcl_rad(i,j,k) ) end do end do end do @@ -177,19 +189,19 @@ subroutine cloud_simple(p_half, p_full, Time, & end subroutine cloud_simple subroutine calc_liq_frac(temp, frac_liq) - ! All liquid if above zero and all ice below -40C - ! linearly interpolate between T=0 and -40C real, intent(in) :: temp real, intent(out) :: frac_liq - - if (temp > zerodegc) then + if (temp > KELVIN) then + ! All liquid if temp above zero frac_liq = 1.0 - else if (temp < zerodegc-40.0) then + else if (temp < KELVIN-40.0) then + ! All ice if temp is below -40C frac_liq = 0.0 else - frac_liq = 1.0 - (zerodegc-temp) / 40.0 + ! linearly interpolate between T=0 and -40C + frac_liq = 1.0 - (KELVIN-temp) / 40.0 end if @@ -233,29 +245,37 @@ subroutine calc_rh_min_max(p_full, p_surf, rh_min, rh_max) real, intent(in) :: p_full, p_surf real, intent(out) :: rh_min, rh_max + real :: layer - if (p_full > p_base ) then !surface up to base + ! calculate RH min and max as a function of pressure - rh_min = rh_min_sfc - ( rh_min_sfc - rh_min_base ) * ( p_surf - p_full ) / ( p_surf - p_base ) - rh_max = rh_max_sfc - ( rh_max_sfc - rh_max_base ) * ( p_surf - p_full ) / ( p_surf - p_base ) + if (p_full > p_base) then + ! For the layer between the surface and cloud base (default is 700 hpa) - else if ( p_full > p_top ) then ! base up to top + layer = (p_surf - p_full) / (p_surf - p_base) - rh_min = rh_min_base - ( rh_min_base - rh_min_top ) * (p_base - p_full) / (p_base - p_top) - rh_max = rh_max_base - ( rh_max_base - rh_max_top ) * (p_base - p_full) / (p_base - p_top) - - else ! above top + ! correction step to update initial values + rh_min = rh_min_sfc - (rh_min_sfc - rh_min_base) * layer + rh_max = rh_max_sfc - (rh_max_sfc - rh_max_base) * layer + + else if ( p_full > p_top ) then + ! For the layer where the cloud is (base up to top) + layer = (p_base - p_full) / (p_base - p_top) + rh_min = rh_min_base - ( rh_min_base - rh_min_top ) * layer + rh_max = rh_max_base - ( rh_max_base - rh_max_top ) * layer + + else + ! Above the cloud top above top rh_min = rh_min_top rh_max = rh_max_top - endif end subroutine calc_rh_min_max subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) - ! Calculate LS (stratiform) cloud fraction + ! Calculate large scale (stratiform) cloud fraction ! as a simple linear function of RH real, intent(in) :: q_hum, qsat @@ -263,6 +283,7 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) real, intent(out) :: cf, rh, cca + ! The environment RH rh = q_hum/qsat if (spookie_protocol .eq. 1) then @@ -274,41 +295,46 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) cf = MAX( 0.0, MIN( 1.0, cf)) - ! include simple convective cloud fraction where present (not currenly used) - cca = 0.0 ! no convective cloud fraction is calculated - ! left in for future use - - !cca can not be used in simple clouds as in read_control - ! control%i_cloud_representation = ip_cloud_ice_water + ! include simple convective cloud fraction where present + ! This is currently not being used and array are zeros as + ! no convective cloud fraction is calculated + ! left in for future use - if (cca > 0.0) then - cf = MAX( simple_cca, cf ) - end if + !if (cca > 0.0) then + ! cf = MAX( cca_lower_limit, cf ) + !end if end subroutine calc_cf - subroutine calc_qcl_rad(p_full, cf, temp, qcl_rad) + subroutine calc_mixing_ratio(p_full, cf, temp, qcl_rad) + ! calculate cloud water content real , intent(in) :: p_full, cf, temp - real , intent(out) :: qcl_rad + real , intent(out) :: qcl_rad ! mixing ratio of cloud liquid real :: in_cloud_qcl IF (spookie_protocol .eq. 1) THEN ! pressure dependent in_cloud_qcl + ! bounded between: + ! 1 g/kg at 1000hpa + ! 3e-4 g/kg at 200 hpa in_cloud_qcl = 3.0e-4 + (1.0-3.0e-4)*(p_full-p_top)/80000.0 - in_cloud_qcl = MAX ( 0.0, in_cloud_qcl/1000.0 ) ! convert to kg/kg - qcl_rad = cf * in_cloud_qcl + in_cloud_qcl = MAX ( 0.0, in_cloud_qcl) ! in g/kg ELSE - ! temperatue dependent in_cloud_qcl - in_cloud_qcl = MIN(0.2, 0.2 * ( temp - 220. ) / ( 280. -220. )) - in_cloud_qcl = MAX (3.0e-4, in_cloud_qcl/1000.0 ) ! convert to kg/kg - qcl_rad = cf * in_cloud_qcl + ! temperatue dependent in_cloud_qcl + ! bounded between: + ! 3e-4 g/kg at 220 K + ! 0.2 g/kg at 280K + in_cloud_qcl = MIN(0.2, 0.2 * ( temp - 220. ) / ( 280. - 220. )) + in_cloud_qcl = MAX (3.0e-4, in_cloud_qcl) ! in g/kg ENDIF - end subroutine calc_qcl_rad + qcl_rad = cf * in_cloud_qcl/1000. ! convert to kg/kg + + end subroutine calc_mixing_ratio subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, rh_min, Time) @@ -349,12 +375,4 @@ subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_ end subroutine output_cloud_diags - subroutine cloud_simple_end () - - ! If alloocated are added in init then deallocate them here. - - end subroutine cloud_simple_end - - !----------------------------------------------- - end module cloud_simple_mod diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 36efa6f85..7b28fabc0 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -18,7 +18,7 @@ module idealized_moist_phys_mod use two_stream_gray_rad_mod, only: two_stream_gray_rad_init, two_stream_gray_rad_down, two_stream_gray_rad_up, two_stream_gray_rad_end -use cloud_simple_mod, only: cloud_simple_init, cloud_simple_end, cloud_simple +use cloud_simple_mod, only: cloud_simple_init, cloud_simple use mixed_layer_mod, only: mixed_layer_init, mixed_layer, mixed_layer_end, albedo_calc @@ -970,10 +970,12 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! Using start of time step variables ! using soecific humidity NOT mixing ratios - !Set to zero regarles of if clouds are used in radiation code - cf_rad = 0. - reff_rad = 0. - qcl_rad = 0. +! initialise outs to zero + +cf_rad(:,:,:) = 0. +reff_rad(:,:,:) = 0. +qcl_rad(:,:,:) = 0. +cca_rad(:,:,:) = 0. if(do_cloud_simple) then @@ -982,7 +984,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg tg(:,:,:,previous), & grid_tracers(:,:,:,previous,nsphum), & ! outs - - cf_rad(:,:,:), cca_rad(:,:,:), & + cf_rad(:,:,:), & reff_rad(:,:,:), qcl_rad(:,:,:) & ) From c9ab5bee3eed2f4662a3471e684d01d66a47b56d Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 10 Jun 2020 14:51:24 +0100 Subject: [PATCH 148/304] Test case missing zsurf that is needed for interpolation --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 955b1df66..1ef82e914 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -32,10 +32,13 @@ diag = DiagTable() diag.add_file('atmos_monthly', 30, 'days', time_units='days') -#Tell model which diagnostics to write +#Write out diagnostics need for vertical interpolation post-processing diag.add_field('dynamics', 'ps', time_avg=True) diag.add_field('dynamics', 'bk') diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf', time_avg=True) + +#Tell model which diagnostics to write diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) diag.add_field('dynamics', 'sphum', time_avg=True) From b99f12e818fdcc2298f2bfee4d0a3da8ddd623b5 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Wed, 10 Jun 2020 14:52:18 +0100 Subject: [PATCH 149/304] Update vertical interpolation levels. Bug fix to clear sky fluxes in soc interface --- .../scripts/run_plevel_cloud_tests.py | 24 +++++++++++-------- src/atmos_param/cloud_simple/cloud_simple.F90 | 14 +++++------ .../socrates/interface/socrates_interface.F90 | 21 ++++++++++++++++ .../driver/solo/idealized_moist_phys.F90 | 4 ++-- 4 files changed, 44 insertions(+), 19 deletions(-) diff --git a/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py b/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py index 5a04db3c1..95b120485 100644 --- a/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py +++ b/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py @@ -7,16 +7,16 @@ import subprocess start_time=time.time() -base_dir='/scratch/sit204/data_isca/' -exp_name_list = ['soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo'] +base_dir='/scratch/pm366/OutputIsca/' +exp_name_list = ['soc_test_aquaplanet_with_clouds'] avg_or_daily_list=['monthly'] -start_file=96 +start_file=1 end_file=120 nfiles=(end_file-start_file)+1 do_extra_averaging=False #If true, then 6hourly data is averaged into daily data using cdo group_months_into_one_file=False # If true then monthly data files and daily data files are merged into one big netcdf file each. -level_set='standard' #Default is the standard levels used previously. ssw_diagnostics are the ones blanca requested for MiMa validation +level_set='era_int' #Default is the standard levels used previously. ssw_diagnostics are the ones blanca requested for MiMa validation mask_below_surface_set=' ' #Default is to mask values that lie below the surface pressure when interpolated. For some applications, e.g. Tom Clemo's / Mark Baldwin's stratosphere index, you want to have values interpolated below ground, i.e. as if the ground wasn't there. To use this option, this value should be set to '-x '. @@ -46,17 +46,21 @@ var_names['daily']='ucomp slp height vor t_surf vcomp omega temp' file_suffix='_interp_new_height_temp' +elif level_set=='era_int': + + plevs['monthly']=' -p "10000 15000 20000 25000 30000 35000 40000 45000 50000 55000 60000 65000 70000 75000 80000 85000 90000 95000 97500 100000"' + plevs['daily'] =' -p "10000 15000 20000 25000 30000 35000 40000 45000 50000 55000 60000 65000 70000 75000 80000 85000 90000 95000 97500 100000"' + + var_names['monthly']='-a height' + var_names['daily']='-a height' + + file_suffix='_interp_all' + elif level_set=='ssw_diagnostics': plevs['6hourly']=' -p "1000 10000"' var_names['monthly']='ucomp temp height' var_names['6hourly']='ucomp vcomp temp' file_suffix='_bl' - -elif level_set=='tom_diagnostics': - var_names['daily']='height temp' - plevs['daily']=' -p "10 30 100 300 500 700 1000 3000 5000 7000 10000 15000 20000 25000 30000 40000 50000 60000 70000 75000 80000 85000 90000 95000 100000"' - mask_below_surface_set='-x ' - file_suffix='_tom_mk2' for exp_name in exp_name_list: diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index 71f1eb20d..64c6e262a 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -47,7 +47,6 @@ module cloud_simple_mod real :: p_top = 20000. namelist /cloud_simple_nml/ cca_lower_limit, rhc_sfc, rhc_base, rhc_top, & - rh_min_top, rh_min_sfc, rh_min_base, & rh_max_top, rh_max_sfc, rh_max_base @@ -128,12 +127,12 @@ end subroutine cloud_simple_init subroutine cloud_simple(p_half, p_full, Time, & temp, q_hum, & ! outs - cf, reff_rad, qcl_rad) + cf, cca, reff_rad, qcl_rad) real , intent(in), dimension(:,:,:) :: temp, q_hum, p_full, p_half type(time_type) , intent(in) :: Time - real , intent(out), dimension(:,:,:) :: cf, reff_rad, qcl_rad + real , intent(inout), dimension(:,:,:) :: cf, cca, reff_rad, qcl_rad real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: qs, frac_liq real, dimension(size(temp,1), size(temp, 2), size(temp, 3)) :: rh_in_cf @@ -213,13 +212,14 @@ subroutine calc_reff(frac_liq, reff_rad) real, intent(in) :: frac_liq real, intent(out) :: reff_rad - reff_rad = 10.0 * frac_liq + 20.0 * (1.0 - frac_liq) !units in microns + reff_rad = 10.0 * frac_liq + 20.0 * (1.0 - frac_liq) + ! units in microns this will be updated before passing into soc end subroutine calc_reff - subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) !need to check p_full - > p_layer_centres - ! get the RH needed as a threshold for the cloud fraction calc. - ! This is only requires for spookie_protocol=1 + subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) + ! Get the RH needed as a threshold for the cloud fraction calc. + ! This is only requires for spookmie_protocol=1 real, intent(in) :: p_full, p_surf real, intent(out) :: simple_rhcrit diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 4adffbb89..4afcaee31 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -1330,15 +1330,27 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(id_soc_surf_flux_lw > 0) then used = send_data ( id_soc_surf_flux_lw, surf_lw_net, Time_diag) endif + if(id_soc_surf_flux_lw_clear > 0) then + used = send_data ( id_soc_surf_flux_lw_clear, surf_lw_net_clear, Time_diag) + endif if(id_soc_surf_flux_lw_down > 0) then used = send_data ( id_soc_surf_flux_lw_down, surf_lw_down, Time_diag) endif + if(id_soc_surf_flux_lw_down_clear > 0) then + used = send_data ( id_soc_surf_flux_lw_down_clear, surf_lw_down_clear, Time_diag) + endif if(id_soc_surf_flux_sw > 0) then used = send_data ( id_soc_surf_flux_sw, net_surf_sw_down, Time_diag) endif + if(id_soc_surf_flux_sw_clear > 0) then + used = send_data ( id_soc_surf_flux_sw_clear, net_surf_sw_down_clear, Time_diag) + endif if(id_soc_surf_flux_sw_down > 0) then used = send_data ( id_soc_surf_flux_sw_down, surf_sw_down, Time_diag) endif + if(id_soc_surf_flux_sw_down_clear > 0) then + used = send_data ( id_soc_surf_flux_sw_down_clear, surf_sw_down_clear, Time_diag) + endif if(id_soc_olr > 0) then used = send_data ( id_soc_olr, olr, Time_diag) endif @@ -1348,15 +1360,24 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf if(id_soc_toa_sw > 0) then used = send_data ( id_soc_toa_sw, toa_sw, Time_diag) endif + if(id_soc_toa_sw_clear > 0) then + used = send_data ( id_soc_toa_sw_clear, toa_sw_clear, Time_diag) + endif if(id_soc_toa_sw_down > 0) then used = send_data ( id_soc_toa_sw_down, toa_sw_down, Time_diag) endif + if(id_soc_toa_sw_down_clear > 0) then + used = send_data ( id_soc_toa_sw_down_clear, toa_sw_down_clear, Time_diag) + endif if(id_soc_flux_lw > 0) then used = send_data ( id_soc_flux_lw, thd_lw_flux_net, Time_diag) endif if(id_soc_surf_flux_lw_down > 0) then used = send_data ( id_soc_surf_flux_lw_down, surf_lw_down, Time_diag) endif + if(id_soc_surf_flux_lw_down_clear > 0) then + used = send_data ( id_soc_surf_flux_lw_down_clear, surf_lw_down_clear, Time_diag) + endif if(id_soc_flux_sw > 0) then used = send_data ( id_soc_flux_sw, thd_sw_flux_net, Time_diag) endif diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 7b28fabc0..a82a9ca76 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -983,8 +983,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg Time, & tg(:,:,:,previous), & grid_tracers(:,:,:,previous,nsphum), & - ! outs - - cf_rad(:,:,:), & + ! inouts - + cf_rad(:,:,:), cca_rad(:,:,:), & reff_rad(:,:,:), qcl_rad(:,:,:) & ) From a83d94e06ba8bb9b03b9c084c15e14f5f4db9824 Mon Sep 17 00:00:00 2001 From: mckimb <35553666+mckimb@users.noreply.github.com> Date: Wed, 15 Jul 2020 11:12:27 +0200 Subject: [PATCH 150/304] Create remote_access.rst In this commit I created the basic structure of remote_access.rst --- docs/source/remote_access.rst | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 docs/source/remote_access.rst diff --git a/docs/source/remote_access.rst b/docs/source/remote_access.rst new file mode 100644 index 000000000..9969fe722 --- /dev/null +++ b/docs/source/remote_access.rst @@ -0,0 +1,37 @@ +Remote Access +============== + +Summary +------- +This is a guide for how to edit remote files on a local text editor via port- +fowarding. By the end you should know: + +* how to quickly login to your remote server using an SSH config file +* how to edit remote files in a local text editor through ``rmate`` +* how to edit remote python files in a local ``jupyter`` environment + +Simplifying Logins +------------------ +If you use a Unix-based operating system on your personal computer, you can make use +of an SSH config file to create shortcuts to your frequently used remote computers. + +Edit Remote Files Locally +------------------------- +As an alternative to remote-based text editors such as ``vi`` and ``emacs``, we can +use port-fowarding to set up a local-based text editor like ``Atom`` which includes +features such as syntax highlighting and code completion. + +Edit Remote python Files in a ``jupyter`` Environment +----------------------------------------------------- +The ``jupyter`` environment is a great environent for data exploration and integrating +your figures inline with your code. + + +References +---------- +.. + Add relevant references. This is done in 2 steps: + 1. Add the reference itself to docs/source/references.rst + 2. Insert the citation key here, e.g. [Vallis2017]_ + + See the Contributing guide for more info. From 3a830c5cb3179190c44f93e8a822821c7c78614e Mon Sep 17 00:00:00 2001 From: mckimb <35553666+mckimb@users.noreply.github.com> Date: Wed, 15 Jul 2020 12:05:10 +0200 Subject: [PATCH 151/304] Update remote_access.rst Added how to set up an SSH config file and set up port-fowarding. --- docs/source/remote_access.rst | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/docs/source/remote_access.rst b/docs/source/remote_access.rst index 9969fe722..068883af6 100644 --- a/docs/source/remote_access.rst +++ b/docs/source/remote_access.rst @@ -10,10 +10,38 @@ fowarding. By the end you should know: * how to edit remote files in a local text editor through ``rmate`` * how to edit remote python files in a local ``jupyter`` environment -Simplifying Logins ------------------- +Simplifying Logins and Port Fowarding +------------------------------------- If you use a Unix-based operating system on your personal computer, you can make use -of an SSH config file to create shortcuts to your frequently used remote computers. +of an SSH config file to create shortcuts to your frequently used remote computers. We will take this one step further to simplify port-fowarding, a method which allows a user to redirect data from a specified remote host and port, through a secure tunnel, to a specified local port. Port-fowarding is helfpul because it will enable us to edit remote files locally. + +As an example without any fancy tricks, let's set up an SSH tunnel that maps ``localhost`` port 3039 on my local machine to 8450 on my remote machine (the number is arbitrary as long as its between 1024 and 49150): ``$ ssh -l localhost:3039:host:8450 user@host``. You will then be required to enter in your password. This is cumbersome to repeat everytime we log in. Our goal will be to shorten the command to : ``$ ssh hostalias`` and without having to enter in your password. We give some instructions below: + +**1.** In the home directory of your **local machine**, create a new directory called ``.ssh`` if it does not already exist. Navigate to this directory and create file called ``config``. +Put in the following contents (making sure to replace the text surrounded by ``**double astericks**`` with your own information):: + + Host **hostalias** + Hostname **hostname** + User **username** + +By using an SSH config file, secure methods for copying (e.g. ``scp`` or ``sftp``) can now use the same host aliases. Let's say I want to copy a file from my local machine to my remove machine. This is now as simple as: ``$ scp localfile.txt hostalias:/path/to/directory``. + +**2.** If your local machine is a Mac, you can eliminate the need to enter a password every time you want to log in by using an SSH key pair. To do this, on your **local machine** navigate to your ``~/.ssh`` directory and enter the following command to generate a set of RSA keys: ``$ ssh-keygen -t rsa``. You will then be prompted to supply a filename and a password. For the file name I recommend `id_rsa_hostalias` and for the password I recommend it to be the same as your remote machine's password. If you use a Mac, the operating system can use its internal keychain to remember your password, meaning you won't need to type it in every time you log in! + +This command will generate 2 files:the one with the ``.pub`` extension is the "public key", the one without the ``.pub`` extension is the "private key". You keep your private +key strictly on your local machine. You need to copy your public key to the remote machine you would like to use the key pair to log in to. First create the `~/.ssh` on your **remote machine**. Then from your **local machine** enter: ``$ scp ~/.ssh/id_rsa_hostalias.pub hostalias:~/.ssh/``. After copying the public key over to ``hostalias``, you need to create an ``authorized_keys`` file in your ``~/.ssh/`` on your **remote machine**. + +**3.** Now from a terminal window on your **local machine**, you can try logging in to ``hostalias`` with the following command: ``$ ssh -i ~/.ssh/id_rsa_hostalias hostalias``. This will prompt you for the password you specified upon creating your key pair using ``ssh-keygen``. To always make use of your private key when logging in to ``hostalias``, add the following to your ``config`` file on your **local machine**:: + + Hostname **hostname** + User **username** + LocalForward 8450 localhost:3039 + IdentityFile **~/.ssh/id_rsa_hostname** + UseKeychain yes + AddKeysToAgent Yes + +Congratulations! + Edit Remote Files Locally ------------------------- From 31580e0922a0568e96f6e4d9c5c3555723112db2 Mon Sep 17 00:00:00 2001 From: mckimb <35553666+mckimb@users.noreply.github.com> Date: Wed, 15 Jul 2020 16:23:27 +0200 Subject: [PATCH 152/304] Update remote_access.rst Added to the sections on editing remote files with a local text editor and on using jupyter with port-forwarding. --- docs/source/remote_access.rst | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/docs/source/remote_access.rst b/docs/source/remote_access.rst index 068883af6..6c97cbc97 100644 --- a/docs/source/remote_access.rst +++ b/docs/source/remote_access.rst @@ -15,9 +15,9 @@ Simplifying Logins and Port Fowarding If you use a Unix-based operating system on your personal computer, you can make use of an SSH config file to create shortcuts to your frequently used remote computers. We will take this one step further to simplify port-fowarding, a method which allows a user to redirect data from a specified remote host and port, through a secure tunnel, to a specified local port. Port-fowarding is helfpul because it will enable us to edit remote files locally. -As an example without any fancy tricks, let's set up an SSH tunnel that maps ``localhost`` port 3039 on my local machine to 8450 on my remote machine (the number is arbitrary as long as its between 1024 and 49150): ``$ ssh -l localhost:3039:host:8450 user@host``. You will then be required to enter in your password. This is cumbersome to repeat everytime we log in. Our goal will be to shorten the command to : ``$ ssh hostalias`` and without having to enter in your password. We give some instructions below: +As an example without any fancy tricks, let's set up an SSH tunnel that maps ``localhost`` port 3039 on my local machine to 3039 on my remote machine (the number is arbitrary as long as its between 1024 and 49150): ``$ ssh -l localhost:3039:host:3039 user@host``. You will then be required to enter in your password. This is cumbersome to repeat everytime we log in. Our goal will be to shorten the command to : ``$ ssh hostalias`` and without having to enter in your password. We give some instructions below: -**1.** In the home directory of your **local machine**, create a new directory called ``.ssh`` if it does not already exist. Navigate to this directory and create file called ``config``. +**1.** In the home directory of your **local machine**, create a new directory called ``.ssh`` if it does not already exist. Navigate to this directory and create file called ``config``. Put in the following contents (making sure to replace the text surrounded by ``**double astericks**`` with your own information):: Host **hostalias** @@ -35,31 +35,25 @@ key strictly on your local machine. You need to copy your public key to the remo Hostname **hostname** User **username** - LocalForward 8450 localhost:3039 + LocalForward 3039 localhost:3039 IdentityFile **~/.ssh/id_rsa_hostname** UseKeychain yes AddKeysToAgent Yes -Congratulations! +You should not be able to log in simply by typing ``$ ssh hostalias``. Congratulations! Edit Remote Files Locally ------------------------- As an alternative to remote-based text editors such as ``vi`` and ``emacs``, we can -use port-fowarding to set up a local-based text editor like ``Atom`` which includes -features such as syntax highlighting and code completion. +use port-fowarding to set up a `local-based text editor like Atom `_ which includes features such as syntax highlighting and code completion. For additional instruction go to the ``rmate`` `homepage on Github `_. To specifically use Atom to edit remote files, `click here `_. + Edit Remote python Files in a ``jupyter`` Environment ----------------------------------------------------- The ``jupyter`` environment is a great environent for data exploration and integrating -your figures inline with your code. - +your figures inline with your code. To open your first Jupyter notebook, log in to your **remote machine** and type: ``$ jupyter lab --no-browser --port=3039``. This should function because of all the work we put in during the port forwarding section. To shorten this command, add an alias to your ``~/.bashrc`` file on your **remote machine**. I personally use the alias ``rjlab`` -References +Authors ---------- -.. - Add relevant references. This is done in 2 steps: - 1. Add the reference itself to docs/source/references.rst - 2. Insert the citation key here, e.g. [Vallis2017]_ - - See the Contributing guide for more info. +This documentation was written by Brett McKim, peer reviewed by Dennis Sergeev, and quality controlled by Ross Castle. From 0f36fd34d64d48e16891cf12a44f799d928a37d5 Mon Sep 17 00:00:00 2001 From: mckimb <35553666+mckimb@users.noreply.github.com> Date: Wed, 15 Jul 2020 16:39:13 +0200 Subject: [PATCH 153/304] Update remote_access.rst Added a recap and updated some text. --- docs/source/remote_access.rst | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/source/remote_access.rst b/docs/source/remote_access.rst index 6c97cbc97..705833c5c 100644 --- a/docs/source/remote_access.rst +++ b/docs/source/remote_access.rst @@ -46,7 +46,7 @@ You should not be able to log in simply by typing ``$ ssh hostalias``. Congratul Edit Remote Files Locally ------------------------- As an alternative to remote-based text editors such as ``vi`` and ``emacs``, we can -use port-fowarding to set up a `local-based text editor like Atom `_ which includes features such as syntax highlighting and code completion. For additional instruction go to the ``rmate`` `homepage on Github `_. To specifically use Atom to edit remote files, `click here `_. +use port-fowarding to set up a `local-based text editor like Atom `_ which includes features such as syntax highlighting and code completion. For instructions to install ``rmate`` on your **local machine**, `click here `_. Then to specifically use Atom to edit remote files, `click here `_. You will need to add the following line to your ``~/.ssh/config`` file: ``RemoteForward 52698 localhost:52698``. Edit Remote python Files in a ``jupyter`` Environment @@ -54,6 +54,24 @@ Edit Remote python Files in a ``jupyter`` Environment The ``jupyter`` environment is a great environent for data exploration and integrating your figures inline with your code. To open your first Jupyter notebook, log in to your **remote machine** and type: ``$ jupyter lab --no-browser --port=3039``. This should function because of all the work we put in during the port forwarding section. To shorten this command, add an alias to your ``~/.bashrc`` file on your **remote machine**. I personally use the alias ``rjlab`` +Recap +----- +Your final ``~/.ssh/config`` file should look like this:: + + Host **hostalias** + Hostname **hostname** + User **username** + + Hostname **hostname** + User **username** + LocalForward 3039 localhost:3039 + RemoteForward 52698 localhost:52698 + IdentityFile **~/.ssh/id_rsa_hostname** + UseKeychain yes + AddKeysToAgent Yes + +**One final note:** Remember the port numbers chosen are arbitary. If you choose the same number as someone else on your network, their files may open up on your computer and vice versa! + Authors ---------- This documentation was written by Brett McKim, peer reviewed by Dennis Sergeev, and quality controlled by Ross Castle. From 62a70d721ed65c01138c20b8a80a2bf09dc3b5a6 Mon Sep 17 00:00:00 2001 From: mckimb <35553666+mckimb@users.noreply.github.com> Date: Wed, 15 Jul 2020 16:51:35 +0200 Subject: [PATCH 154/304] Update remote_access.rst Stylistic changes. --- docs/source/remote_access.rst | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/source/remote_access.rst b/docs/source/remote_access.rst index 705833c5c..4d37f0730 100644 --- a/docs/source/remote_access.rst +++ b/docs/source/remote_access.rst @@ -10,14 +10,16 @@ fowarding. By the end you should know: * how to edit remote files in a local text editor through ``rmate`` * how to edit remote python files in a local ``jupyter`` environment -Simplifying Logins and Port Fowarding +Simplifying logins and port-fowarding ------------------------------------- If you use a Unix-based operating system on your personal computer, you can make use of an SSH config file to create shortcuts to your frequently used remote computers. We will take this one step further to simplify port-fowarding, a method which allows a user to redirect data from a specified remote host and port, through a secure tunnel, to a specified local port. Port-fowarding is helfpul because it will enable us to edit remote files locally. As an example without any fancy tricks, let's set up an SSH tunnel that maps ``localhost`` port 3039 on my local machine to 3039 on my remote machine (the number is arbitrary as long as its between 1024 and 49150): ``$ ssh -l localhost:3039:host:3039 user@host``. You will then be required to enter in your password. This is cumbersome to repeat everytime we log in. Our goal will be to shorten the command to : ``$ ssh hostalias`` and without having to enter in your password. We give some instructions below: -**1.** In the home directory of your **local machine**, create a new directory called ``.ssh`` if it does not already exist. Navigate to this directory and create file called ``config``. +Set up an SSH config file +^^^^^^^^^^^^^^^^^^^^^^^^^ +In the home directory of your **local machine**, create a new directory called ``.ssh`` if it does not already exist. Navigate to this directory and create file called ``config``. Put in the following contents (making sure to replace the text surrounded by ``**double astericks**`` with your own information):: Host **hostalias** @@ -26,12 +28,13 @@ Put in the following contents (making sure to replace the text surrounded by ``* By using an SSH config file, secure methods for copying (e.g. ``scp`` or ``sftp``) can now use the same host aliases. Let's say I want to copy a file from my local machine to my remove machine. This is now as simple as: ``$ scp localfile.txt hostalias:/path/to/directory``. -**2.** If your local machine is a Mac, you can eliminate the need to enter a password every time you want to log in by using an SSH key pair. To do this, on your **local machine** navigate to your ``~/.ssh`` directory and enter the following command to generate a set of RSA keys: ``$ ssh-keygen -t rsa``. You will then be prompted to supply a filename and a password. For the file name I recommend `id_rsa_hostalias` and for the password I recommend it to be the same as your remote machine's password. If you use a Mac, the operating system can use its internal keychain to remember your password, meaning you won't need to type it in every time you log in! +Set up an SSH key pair +^^^^^^^^^^^^^^^^^^^^^^ +If your local machine is a Mac, you can eliminate the need to enter a password every time you want to log in by using an SSH key pair. To do this, on your **local machine** navigate to your ``~/.ssh`` directory and enter the following command to generate a set of RSA keys: ``$ ssh-keygen -t rsa``. You will then be prompted to supply a filename and a password. For the file name I recommend ``id_rsa_hostalias`` and for the password I recommend it to be the same as your remote machine's password. If you use a Mac, the operating system can use its internal keychain to remember your password, meaning you won't need to type it in every time you log in! -This command will generate 2 files:the one with the ``.pub`` extension is the "public key", the one without the ``.pub`` extension is the "private key". You keep your private -key strictly on your local machine. You need to copy your public key to the remote machine you would like to use the key pair to log in to. First create the `~/.ssh` on your **remote machine**. Then from your **local machine** enter: ``$ scp ~/.ssh/id_rsa_hostalias.pub hostalias:~/.ssh/``. After copying the public key over to ``hostalias``, you need to create an ``authorized_keys`` file in your ``~/.ssh/`` on your **remote machine**. +This command will generate 2 files:the one with the ``.pub`` extension is the "public key", the one without the ``.pub`` extension is the "private key". You keep your private key strictly on your local machine. You need to copy your public key to the remote machine you would like to use the key pair to log in to. First create the ``~/.ssh`` on your **remote machine**. Then from your **local machine** enter: ``$ scp ~/.ssh/id_rsa_hostalias.pub hostalias:~/.ssh/``. After copying the public key over to ``hostalias``, you need to create an ``authorized_keys`` file in your ``~/.ssh/`` on your **remote machine**. -**3.** Now from a terminal window on your **local machine**, you can try logging in to ``hostalias`` with the following command: ``$ ssh -i ~/.ssh/id_rsa_hostalias hostalias``. This will prompt you for the password you specified upon creating your key pair using ``ssh-keygen``. To always make use of your private key when logging in to ``hostalias``, add the following to your ``config`` file on your **local machine**:: +Now from a terminal window on your **local machine**, you can try logging in to ``hostalias`` with the following command: ``$ ssh -i ~/.ssh/id_rsa_hostalias hostalias``. This will prompt you for the password you specified upon creating your key pair using ``ssh-keygen``. To always make use of your private key when logging in to ``hostalias``, add the following to your ``config`` file on your **local machine**:: Hostname **hostname** User **username** @@ -43,13 +46,13 @@ key strictly on your local machine. You need to copy your public key to the remo You should not be able to log in simply by typing ``$ ssh hostalias``. Congratulations! -Edit Remote Files Locally -------------------------- +Edit remote files in a local text editor +---------------------------------------- As an alternative to remote-based text editors such as ``vi`` and ``emacs``, we can use port-fowarding to set up a `local-based text editor like Atom `_ which includes features such as syntax highlighting and code completion. For instructions to install ``rmate`` on your **local machine**, `click here `_. Then to specifically use Atom to edit remote files, `click here `_. You will need to add the following line to your ``~/.ssh/config`` file: ``RemoteForward 52698 localhost:52698``. -Edit Remote python Files in a ``jupyter`` Environment +Edit remote python files in a ``jupyter`` environment ----------------------------------------------------- The ``jupyter`` environment is a great environent for data exploration and integrating your figures inline with your code. To open your first Jupyter notebook, log in to your **remote machine** and type: ``$ jupyter lab --no-browser --port=3039``. This should function because of all the work we put in during the port forwarding section. To shorten this command, add an alias to your ``~/.bashrc`` file on your **remote machine**. I personally use the alias ``rjlab`` @@ -73,5 +76,5 @@ Your final ``~/.ssh/config`` file should look like this:: **One final note:** Remember the port numbers chosen are arbitary. If you choose the same number as someone else on your network, their files may open up on your computer and vice versa! Authors ----------- +------- This documentation was written by Brett McKim, peer reviewed by Dennis Sergeev, and quality controlled by Ross Castle. From cb033a744aa29bf1ef411feb8060101435f74d5b Mon Sep 17 00:00:00 2001 From: mckimb <35553666+mckimb@users.noreply.github.com> Date: Wed, 15 Jul 2020 16:52:47 +0200 Subject: [PATCH 155/304] Update remote_access.rst Stylistic changes --- docs/source/remote_access.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/remote_access.rst b/docs/source/remote_access.rst index 4d37f0730..a98f61c6c 100644 --- a/docs/source/remote_access.rst +++ b/docs/source/remote_access.rst @@ -46,8 +46,8 @@ Now from a terminal window on your **local machine**, you can try logging in to You should not be able to log in simply by typing ``$ ssh hostalias``. Congratulations! -Edit remote files in a local text editor ----------------------------------------- +Edit remote files in a local text editor using ``rmate`` +-------------------------------------------------------- As an alternative to remote-based text editors such as ``vi`` and ``emacs``, we can use port-fowarding to set up a `local-based text editor like Atom `_ which includes features such as syntax highlighting and code completion. For instructions to install ``rmate`` on your **local machine**, `click here `_. Then to specifically use Atom to edit remote files, `click here `_. You will need to add the following line to your ``~/.ssh/config`` file: ``RemoteForward 52698 localhost:52698``. From 6e43a896226854a729ad17ee039e9499da84b594 Mon Sep 17 00:00:00 2001 From: mckimb <35553666+mckimb@users.noreply.github.com> Date: Wed, 15 Jul 2020 16:54:32 +0200 Subject: [PATCH 156/304] Update remote_access.rst stylistic changes --- docs/source/remote_access.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/remote_access.rst b/docs/source/remote_access.rst index a98f61c6c..1f194139e 100644 --- a/docs/source/remote_access.rst +++ b/docs/source/remote_access.rst @@ -20,7 +20,7 @@ As an example without any fancy tricks, let's set up an SSH tunnel that maps ``l Set up an SSH config file ^^^^^^^^^^^^^^^^^^^^^^^^^ In the home directory of your **local machine**, create a new directory called ``.ssh`` if it does not already exist. Navigate to this directory and create file called ``config``. -Put in the following contents (making sure to replace the text surrounded by ``**double astericks**`` with your own information):: +Put in the following contents (making sure to replace the text surrounded by ``**double asterisks**`` with your own information):: Host **hostalias** Hostname **hostname** @@ -59,7 +59,7 @@ your figures inline with your code. To open your first Jupyter notebook, log in Recap ----- -Your final ``~/.ssh/config`` file should look like this:: +Your final ``~/.ssh/config`` file should look like this (making sure to replace the text surrounded by ``**double asterisks**`` with your own information):: Host **hostalias** Hostname **hostname** From 2b6be132a93168f7288c86dfbddcd154d333683b Mon Sep 17 00:00:00 2001 From: mckimb <35553666+mckimb@users.noreply.github.com> Date: Wed, 15 Jul 2020 16:56:20 +0200 Subject: [PATCH 157/304] Update remote_access.rst Changed "Summary" section to "Overview". --- docs/source/remote_access.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/remote_access.rst b/docs/source/remote_access.rst index 1f194139e..468c26bae 100644 --- a/docs/source/remote_access.rst +++ b/docs/source/remote_access.rst @@ -1,7 +1,7 @@ Remote Access ============== -Summary +Overview ------- This is a guide for how to edit remote files on a local text editor via port- fowarding. By the end you should know: From 949b55b41e1a0c0ee54f16200795f8c9f8da7dea Mon Sep 17 00:00:00 2001 From: Matthew Henry Date: Wed, 23 Sep 2020 10:36:30 +0100 Subject: [PATCH 158/304] adding intro page and change in index --- docs/source/modules/index.rst | 5 +- docs/source/modules/introduction.rst | 114 +++++++++++++++++++++++++++ 2 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 docs/source/modules/introduction.rst diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index 1621c7fc9..88af81dc1 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -7,8 +7,7 @@ Components of Isca .. toctree:: :maxdepth: 1 + introduction dynamics physics - output - convection_simple_betts_miller - socrates + output \ No newline at end of file diff --git a/docs/source/modules/introduction.rst b/docs/source/modules/introduction.rst new file mode 100644 index 000000000..f78e9b609 --- /dev/null +++ b/docs/source/modules/introduction.rst @@ -0,0 +1,114 @@ +Experiment configuration scripts +============== + +Summary +------- +Once you have managed to run a test case, you may want to run your own experiment. The model configuration, diagnostics, and simulation parameters +of your experiment can be configured with a python-based run script. +Find the test case in ``Isca/exp/test_cases`` that most resembles your experiment, copy and modify it. The important lines are described below. + +Setup +------- +:: + + from isca import DryCodeBase +imports the Isca python module that should have been installed. +``DryCodeBase`` refers to the part of the code needed to run the dry model. The codebase object is defined in ``Isca/src/extra/python/isca/codebase.py``. The different default codebases are designed to avoid the model compiling un-needed parts of the code, which speeds up compilation. ``DryCodeBase`` can be replaced by ``IscaCodeBase``, ``GreyCodeBase``, or ``SocratesCodeBase`` (provided you setup Socrates, see Socrates documentation). + +:: + + NCORES = 16 +specifies how many cores should be used when running the model. + +:: + + RESOLUTION = T42, 25 +specifies the horizontal (in this case, spectral T42) and vertical (25 pressure levels) +resolution. Runs at T42 by default. If the horizontal resolution is not T42, make sure the +input files (such as land masks) are changed and add ``exp.set_resolution(*RESOLUTION)`` after exp is defined. + +:: + + cb = DryCodeBase.from_directory(GFDL_BASE) +tells Isca to find the model code at the location ``GFDL_BASE``, which is where the source code may be changed. You can replace ``from_directory(GFDL_BASE)`` with ``from_repo(repo='https://github.com/isca/isca', commit='isca1.1')`` to point to a specific git repository and commit id. This should ensure future, independent, reproducibility of results. But, the compilation depends on computer specific settings. The ``$GFDL_ENV`` environment variable is used to determine which ``$GFDL_BASE/src/extra/env`` file is used to load the correct compilers. The env file is always loaded from ``$GFDL_BASE`` and not the checked out git repo. + +:: + + cb.compile() +compiles the source code. + +:: + + exp = Experiment('EXPERIMENT_NAME', codebase=cb) +creates an experiment object which will handle the configuration of model parameters and output diagnostics. The output files will be found at ``$GFDL_DATA/EXPERIMENT_NAME``. + + +Diagnostics +------- + +:: + + diag = DiagTable() +creates a DiagTable object which we can configure to tell Isca which variables to output. + +:: + + diag.add_file('atmos_monthly', 30, 'days', time_units='days') +creates an ``atmos_monthly.nc`` file which contains output from the model run every 30 days. The output files can be found at ``$GFDL_DATA/EXPERIMENT_NAME/run####/*``. + +:: + + diag.add_field(MODULE_NAME, VARIABLE_NAME, time_avg=True) +determines which fields will be written in ``atmos_monthly.nc``. Find the available VARIABLE_NAMEs by going to the MODULE_NAME documentation or by finding the relevant source code (``cd Isca/src/ & find . -name "MODULE_NAME*"``). + + +Namelist +------- + +:: + + namelist = Namelist({...}) +defines a namelist object, which lets us configure the science options. +It is only necessary to set values that are different from the default parameters, which are defined +in the relevant module documentation (for example, ``atmosphere_nml`` parameters can be found in the ``atmosphere`` +module documentation or at the beginning of the ``atmosphere.F90`` source file). + +Running the experiment +------- + +:: + + exp.run(...) +will make the model run for the amount of time specified in ``main_nml`` (usually 30 days). + +The ``use_restart`` option can be set to ``False`` to start from scratch (isothermal atmosphere) or can point to a restart file (``use_restart = $GFDL_DATA/exp_name/run####/restarts/*``) to initialize the run from the output of a previous run. If unspecified, it will start from where the previous run left off or from an isothermal atmosphere in the absence of a previous run. + +Output +------- + +Output from the experiment can be found at ``$GFDL_DATA/EXP_NAME``. The atmospheric output is provided on +sigma levels where sigma is the pressure normalized by the surface pressure. For a planet with no topography, sigma and pressure levels are quite similar. +If there is topography present (such as in the ``realistic_continents`` test case), you need to interpolate the +data onto pressure levels before analyzing it. Top of atmosphere and surface values are not affected, but in-atmosphere values are. + +The details and code for interpolation to pressure levels can be found at https://github.com/ExeClim/Isca/tree/master/postprocessing/plevel_interpolation + +In the python code, there is a convenient function which can be used to call the interpolation code: https://github.com/ExeClim/Isca/blob/master/src/extra/python/isca/util.py (line 134). + +For example:: + + from isca.util import interpolate_output + for run in ["EXPERIMENT_NAME"]: + print(run) + for i in range(121, 241): + try: + infile = '/data_directory/' + run + '/run%04d/atmos_monthly.nc' % i + outfile = '/data_directory/' + run + '/run%04d/plev_monthly.nc' % i + interpolate_output(infile, outfile, p_levs='EVEN', var_names=['slp', 'height']) + except: + print(i) + +Authors +------- + +This documentation was written by Matthew Henry (heavily inspired from document written by Neil Lewis), peer reviewed by Will Seviour, and quality controlled by X. From 7aec5d7b4d4206d0f073a66bd06ec86868d36a93 Mon Sep 17 00:00:00 2001 From: Daniel Williams Date: Wed, 16 Dec 2020 14:39:31 +0000 Subject: [PATCH 159/304] New contants docs (relies on introduction of updated constants file). --- docs/source/modules/constants.rst | 86 +++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 docs/source/modules/constants.rst diff --git a/docs/source/modules/constants.rst b/docs/source/modules/constants.rst new file mode 100644 index 000000000..2b386393d --- /dev/null +++ b/docs/source/modules/constants.rst @@ -0,0 +1,86 @@ + +Constants: Atmospheric and Planetary Parameters +=============================================== + +Summary +------- + +``constants.F90`` provides a number of controls that set the fundamental parameters of the planet being studied - it is used by nearly every other module in Isca. By default, Isca models a planet equivalent to earth in terms of physical characteristics such as size, surface gravity and rotational period. In addition, water is set as the default condensate for any moist physics modules that may be used. + +Planetary Parameters +^^^^^^^^^^^^^^^^^^^^ + +Below are a set of controls that allow the physical size and rotation to be set. This allows us to model a range of planets, including others in the Solar System such as Mars and Jupiter, in addition to exoplanets. Rotation can be set by two different parameters: a rotation rate :math:`\Omega` can be specified; or alternatively a period in seconds can be given that is converted back to a value of :math:`\Omega`. + ++-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ +| Name | Default | Units | Description | ++===================+==================================+=======================================+=================================================+ +|``radius`` | 6371e3 | m | Radius of planet | ++-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ +|``gravity`` | 9.80 | ms :math:`^{-2}` | Surface gravitational acceleration | ++-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ +|``omega`` | 7.2921150e-5 | rad :math:`\cdot` s :math:`^{-1}` | Rotation rate of planet | ++-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ +|``rotation_period``| -1.0 (inactive) | s | Rotation period of planet (overrides ``omega`` )| ++-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ +|``orbital_period`` | 31557600 | s | Orbital period of planet | ++-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ +|``orbital_rate`` | :math:`2\pi` / ``orbital_period``| rad :math:`\cdot` s :math:`^{-1}` | Orbital rate of planet | ++-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ + +.. note:: Whilst the rotation and orbital rates are set within this module, other parameters associated with planetary motion such as axial tilt (obliquity) and eccentricity are controlled from the ``astronomy_mod`` module. + +Dry Atmosphere +^^^^^^^^^^^^^^ + +Changing the dry atmosphere values allows atmospheres with a wide range of compositions to be studied, including both terrestrial planets (e.g. Earth) and gas giants such as Jupiter. In the case of Earth, the reference surface pressure is taken to be the mean sea level pressure. + +The dry air gas constant for any homogeneous atmosphere can be calculated from its chemical composition. It is calculated by dividing the universal gas constant :math:`R` by the average molar mass of the atmosphere. + ++------------+----------------------+-------------------------------------+-------------------------------------------------------+ +| Name | Default | Units | Description | ++============+======================+=====================================+=======================================================+ +|``pstd_mks``| 101325.0 | Pa / Nm :math:`^{-2}` | Mean (reference) surface pressure (SI) | ++------------+----------------------+-------------------------------------+-------------------------------------------------------+ +|``pstd`` | 1.013250e06 | dyn :math:`\cdot` cm :math:`^{-2}` | Mean (reference) surface pressure (cgs) | ++------------+----------------------+-------------------------------------+-------------------------------------------------------+ +|``rdgas`` | 287.04 | Jkg :math:`^{-1}`K :math:`^{-1}` | Dry air gas constant | ++------------+----------------------+-------------------------------------+-------------------------------------------------------+ +|``kappa`` | 2/7 | dimensionless | Heat capacity ratio ( :math:`\gamma` for an ideal gas)| ++------------+----------------------+-------------------------------------+-------------------------------------------------------+ +|``cp_air`` | ``rvgas`` / ``kappa``| Jkg :math:`^{-1}`K :math:`^{-1}` | Dry air heat capcity | ++------------+----------------------+-------------------------------------+-------------------------------------------------------+ + +.. note:: If the mean surface pressure value is changed here, it is necessary to also set ``reference_sea_level_press`` from the ``spectral_dynamics_nml`` namelist, else the output file will not extend to the pressure specified. + + +Moist Atmosphere +^^^^^^^^^^^^^^^^ + +With the addition of moist physics, a number of additional namelist parameters can be used to change the primary condensate present in the atmosphere. This allows atmospheres in temperature regimes significantly different from Earth to be modelled, including Titan, which has an active methane cycle. + ++--------------+-------------------+----------------------------------+-------------------------------------------+ +| Name | Default | Units | Description | ++==============+===================+==================================+===========================================+ +|``rvgas`` | 461.50 | Jkg :math:`^{-1}`K :math:`^{-1}` | Vapour gas constant | ++--------------+-------------------+----------------------------------+-------------------------------------------+ +|``cp_vapor`` | 4 * ``rvgas`` | Jkg :math:`^{-1}`K :math:`^{-1}` | Vapour heat capacity | ++--------------+-------------------+----------------------------------+-------------------------------------------+ +|``dens_vapor``| 1000 | kgm :math:`^{-3}` | Density of condensate in the liquid phase | ++--------------+-------------------+----------------------------------+-------------------------------------------+ +|``hlv`` | 2.500e6 | Jkg :math:`^{-1}` | Latent heat of vapourisation of condensate| ++--------------+-------------------+----------------------------------+-------------------------------------------+ +|``hlf`` | 3.34e5 | Jkg :math:`^{-1}` | Latent heat of fusion of condensate | ++--------------+-------------------+----------------------------------+-------------------------------------------+ +|``hls`` | ``hlv`` + ``hlf`` | Jkg :math:`^{-1}` | Latent heat of sublimation of condensate | ++--------------+-------------------+----------------------------------+-------------------------------------------+ +|``tfreeze`` | 273.16 | K | Freezing point of condensate | ++--------------+-------------------+----------------------------------+-------------------------------------------+ +|``tppress`` | 610.78 | Pa / Nm :math:`^{-2}` | Triple point pressure of condensate | ++--------------+-------------------+----------------------------------+-------------------------------------------+ + + + +Authors +------- +This documentation was written by Daniel Williams, peer reviewed by YY, and quality controlled by ZZ. From 7b93f1db75b915b8f50f34d7843c5827182eb65a Mon Sep 17 00:00:00 2001 From: Marianne Pietschnig Date: Wed, 16 Dec 2020 17:42:37 +0000 Subject: [PATCH 160/304] Diag_manager_mod documentation PR --- docs/source/modules/diag_manager_mod.rst | 162 +++++++++++++++++++++++ docs/source/modules/index.rst | 1 + 2 files changed, 163 insertions(+) create mode 100644 docs/source/modules/diag_manager_mod.rst diff --git a/docs/source/modules/diag_manager_mod.rst b/docs/source/modules/diag_manager_mod.rst new file mode 100644 index 000000000..a955778f3 --- /dev/null +++ b/docs/source/modules/diag_manager_mod.rst @@ -0,0 +1,162 @@ +Diagnostics Manager Module & Saving model output +============== + +Summary +------- + +This module handles the writing of diagnostic output to netCDF files. The user can specify which fields should be output and at which temporal resolution (e.g. monthly means, daily means ... ). The source code is located at ``src/shared/diag_manager/diag_manager.F90``. + + +Namelist options +---------------- + ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +| Name | Default | Description | ++================================+==========+=========================================================================================+ +|``append_pelist_name`` | False | Decides whether to append the pelist_name to file name | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +|``mix_snapshot_average_fields`` | False | Allow both time average and instantaneous fields in the same output file | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +|``max_files`` | 31 | Sets the maximum number of output files allowed | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +|``max_output_fields`` | 300 | Sets the maximum number of output fields allowed | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +|``max_input_fields`` | 300 | Sets the maximum number of input fields allowed | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +|``max_axes`` | 60 | Sets the maximum number of independent axes | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +|``do_diag_field_log`` | False | to log the registration of the data field, put the OPTIONAL parameter | +| | | ``do_not_log`` = ``False`` and the namelist variable ``do_diag_field_log`` to ``True`` | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +|``write_bytes_in_files`` | False | Write out the number of bytes of data saved to this file | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +|``debug_diag_manager`` | False | When set to true, bounds are checked in ``send_data`` (send data to output fields) | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +|``max_num_axis_sets`` | 25 | Set maximum number of axes for output (e.g. time and space axes) | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +|``use_cmor`` | False | Let the ``diag_manager`` know if the missing value (if supplied) should be overridden | +| | | to be the CMOR standard value of -1.0e20 | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +|``issue_oor_warnings`` | True | If ``True`` check for values outside the valid range. This range is passed to the | +| | | ``diag_manager_mod`` via the OPTIONAL variable range in the | +| | | ``register_diag_field`` function | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ +|``oor_warnings_fatal`` | True | If ``True`` issue a fatal error if any values for the output field are outside the | +| | | given range | ++--------------------------------+----------+-----------------------------------------------------------------------------------------+ + + +Diagnostics +----------- + +This part of the code does not have its own diagnostics, but rather handles the saving of all variables. See also ``/src/extra/python/isca/diagtable.py`` + +Output files +^^^^^^^^^^^^ + +In order to save output in Isca, an output file is created first in your experiment runscript (see examples in ``/exp/test_cases/``). Commonly used output timesteps include monthly, daily or x-hourly. + +``diag.add_file('atmos_monthly', 30, 'days', time_units='days')`` +``diag.add_file('atmos_daily', 1, 'days', time_units='days')`` +``diag.add_file('atmos_6_hourly', 6, 'hours', time_units='hours')`` + +The frequency at which data is saved can be set in the ``main_nml``: :: + + 'main_nml': { + 'dt_atmos': 600, + 'days': 30, + 'calendar': 'thirty_day' + } + +For example, set ``'days': 15`` and ``'calendar': 'fifteen_day'``. + + +Output fields +^^^^^^^^^^^^^ + +An output field is created via ``diag.add_field(module, name, time_avg, files)`` in the experiment runscript. +The default for ``time_avg`` = False, the default for ``files`` = None. +``time_avg`` is usually set to True for most variables when an output field is defined. + +If ``files`` = None, then the diagnostics will be saved to all of the given output files (in our example monthly, daily and 6h). +An output file can be specified via e.g. ``files=['atmos_6_hourly']`` in +``diag.add_field('dynamics', 'ucomp', time_avg=True, files=['atmos_6_hourly'])`` if 6h zonal winds shall be saved, but not monthly/daily + + + +Below is a list of commonly saved diagnostics. See the relevant modules for an exhaustive list of available diagnostics. + ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| Module | Name | Dimensions | Description | Units | ++==========================+======================+=========================+=============================================+====================+ +| ``dynamics`` | ``ps`` | (time, lat, lon) | surface pressure | :math:`Pa` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``dynamics`` | ``bk`` | (phalf) | vertical coordinate sigma values | :math:`Pa` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``dynamics`` | ``pk`` | (phalf) | vertical coordinate pressure values | :math:`Pa` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``dynamics`` | ``slp`` | (time, lat, lon) | sea level pressure | :math:`Pa` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``dynamics`` | ``height`` | (time, pfull, lat, lon) | geopotential height at full model levels | :math:`m` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``dynamics`` | ``zsurf`` | (lat, lon) | geopotential height at the surface | :math:`m` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``dynamics`` | ``u_comp`` | (time, pfull, lat, lon) | zonal component of the horizontal winds | :math:`m/s` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``dynamics`` | ``v_comp`` | (time, pfull, lat, lon) | meridional component of the horizontal winds| :math:`m/s` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``dynamics`` | ``omega`` | (time, pfull, lat, lon) | vertical velocity | :math:`Pa/s` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``dynamics`` | ``sphum`` | (time, pfull, lat, lon) | specific humidity | :math:`kg/kg` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``dynamics`` | ``temp`` | (time, pfull, lat, lon) | temperature | :math:`K` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``dynamics`` | ``vor`` | (time, pfull, lat, lon) | vorticity | :math:`1/s` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``dynamics`` | ``div`` | (time, pfull, lat, lon) | divergence | :math:`1/s` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``atmosphere`` | ``precipitation`` | (time, lat, lon) | precipitation from resolved, parameterised | :math:`kg/(m^2 s)` | +| | | | and snow | | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``atmosphere`` | ``rh`` | (time, pfull, lat, lon) | relative humidity | :math:`\%` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``mixed-layer`` | ``t_surf`` | (time, lat, lon) | surface temperature | :math:`K` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``mixed-layer`` | ``flux_t`` | (time, lat, lon) | sensible heat flux at the surface (up) | :math:`W/m^2` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``mixed-layer`` | ``flux_lhe`` | (time, lat, lon) | latent heat flux at the surface (up) | :math:`W/m^2` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``rrtm_radiation`` | ``flux_sw`` | (time, lat, lon) | net shortwave flux at the surface (down) | :math:`W/m^2` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ +| ``rrtm_radiation`` | ``flux_lw`` | (time, lat, lon) | longwave flux at the surface (down only) | :math:`W/m^2` | ++--------------------------+----------------------+-------------------------+---------------------------------------------+--------------------+ + + +Relevant modules and subroutines +-------------------------------- + +The ``diag_manager_mod`` uses several modules and subroutines, including + +* ``diag_axis`` +* ``diag_grid`` +* ``diag_output`` +* ``diag_util`` +* ``diag_data`` +* ``diag_table`` + + +.. References +.. ---------- +.. .. +.. Add relevant references. This is done in 2 steps: +.. 1. Add the reference itself to docs/source/references.rst +.. 2. Insert the citation key here, e.g. [Vallis2017]_ + +.. See the Contributing guide for more info. + +.. None + +Authors +------- + +This documentation was written by Marianne Pietschnig, peer reviewed by Stephen Thomson and quality controlled by Ross Castle. diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index aee2d373c..ee4e81ba0 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -14,3 +14,4 @@ Components of Isca two_stream_gray_rad convection_simple_betts_miller socrates + diag_manager_mod From dfff8dfc2c371b3cb65a7c2ab04f93b7673febd8 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Mon, 21 Dec 2020 10:59:19 +0000 Subject: [PATCH 161/304] Run scripts for testing cloud scheme --- exp/spookie2/socrates_aquaplanet.py | 231 +++++++++++++++++ .../socrates_aquaplanet_with_cloud.py | 238 ++++++++++++++++++ 2 files changed, 469 insertions(+) create mode 100644 exp/spookie2/socrates_aquaplanet.py create mode 100644 exp/spookie2/socrates_aquaplanet_with_cloud.py diff --git a/exp/spookie2/socrates_aquaplanet.py b/exp/spookie2/socrates_aquaplanet.py new file mode 100644 index 000000000..ddbf5d2b0 --- /dev/null +++ b/exp/spookie2/socrates_aquaplanet.py @@ -0,0 +1,231 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('soc_test_aquaplanet', codebase=cb) +exp.clear_rundir() + +inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Tell model which diagnostics to write +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf', time_avg=True) + +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'omega', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) + +#temperature tendency - units are K/s +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates + +#net (up) and down surface fluxes +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) +#net (up) TOA and downard fluxes +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) + +#clear sky fluxes +diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_olr_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down_clear', time_avg=True) + +#diag.add_field('cloud_simple', 'cf', time_avg=True) +#diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +#diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +#diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +#diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +#diag.add_field('cloud_simple', 'rh_min', time_avg=True) +#diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) + +# additional output options commented out +#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_co2', time_avg=True) +#diag.add_field('socrates', 'soc_ozone', time_avg=True) +#diag.add_field('socrates', 'soc_coszen', time_avg=True) +#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) + +exp.diag_table = diag +exp.inputfiles = inputfiles + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False, + 'solday':90 + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': False + }, + + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 2.5, #Depth of mixed layer used + 'albedo_value': 0.38, #Albedo value used + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03 + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + + overwrite=True + + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) + for i in range(2,121): + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) diff --git a/exp/spookie2/socrates_aquaplanet_with_cloud.py b/exp/spookie2/socrates_aquaplanet_with_cloud.py new file mode 100644 index 000000000..bbe031042 --- /dev/null +++ b/exp/spookie2/socrates_aquaplanet_with_cloud.py @@ -0,0 +1,238 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('soc_test_aquaplanet_with_clouds', codebase=cb) +exp.clear_rundir() + +inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf', time_avg=True) + +#Tell model which diagnostics to write +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'omega', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) + +#temperature tendency - units are K/s +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates + +#net (up) and down surface fluxes +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) +#net (up) TOA and downard fluxes +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) + +#clear sky fluxes +diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_olr_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down_clear', time_avg=True) + +diag.add_field('cloud_simple', 'cf', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +#diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_min', time_avg=True) +diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) + +# additional output options commented out +#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_co2', time_avg=True) +#diag.add_field('socrates', 'soc_ozone', time_avg=True) +#diag.add_field('socrates', 'soc_coszen', time_avg=True) +#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) + +exp.diag_table = diag +exp.inputfiles = inputfiles + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False, + 'solday':90 + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True + }, + + 'cloud_simple_nml': { + 'cca_lower_limit':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3 + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 2.5, #Depth of mixed layer used + 'albedo_value': 0.2, #Albedo value used + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03 + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + + overwrite=True + + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) + for i in range(2,121): + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From d33580332ead6ca20752ccd4120b7454cd31229c Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 22 Dec 2020 11:23:09 +0000 Subject: [PATCH 162/304] Updates to test_script to be more consistent between master and dev branch --- exp/test_cases/MiMA/MiMA_test_case.py | 1 - .../socrates_test/socrates_aquaplanet.py | 23 ++++++++++--------- .../socrates_aquaplanet_with_cloud.py | 10 ++++++-- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index a2c0ce518..9ea39f279 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -178,4 +178,3 @@ exp.run(1, use_restart=False, num_cores=NCORES) for i in range(2,121): exp.run(i, num_cores=NCORES) - diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 1ef82e914..f70884719 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -40,7 +40,10 @@ #Tell model which diagnostics to write diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) @@ -48,10 +51,10 @@ diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) -#radiative tendencies -diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +#temperature tendency - units are K/s +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates #net (up) and down surface fluxes diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) @@ -63,11 +66,6 @@ diag.add_field('socrates', 'soc_toa_sw', time_avg=True) diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) -diag.add_field('cloud_simple', 'cf_rad', time_avg=True) -diag.add_field('cloud_simple', 'reff_rad', time_avg=True) -diag.add_field('cloud_simple', 'frac_liq', time_avg=True) -diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) - # additional output options commented out #diag.add_field('socrates', 'soc_flux_lw', time_avg=True) #diag.add_field('socrates', 'soc_flux_sw', time_avg=True) @@ -102,7 +100,7 @@ 'chunk_size': 16, 'use_pressure_interp_for_half_levels':False, 'tidally_locked':False, - #'solday': 90 + 'solday':90 }, 'idealized_moist_phys_nml': { 'do_damping': True, @@ -164,7 +162,8 @@ }, 'sat_vapor_pres_nml': { - 'do_simple':True + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True }, 'damping_driver_nml': { @@ -212,6 +211,8 @@ #This will be the name of the folder that the data will appear in. exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False) + overwrite=False + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) for i in range(2,121): - exp.run(i, num_cores=NCORES) + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index c0ac93c70..fc6bd015d 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -32,10 +32,13 @@ diag = DiagTable() diag.add_file('atmos_monthly', 30, 'days', time_units='days') -#Tell model which diagnostics to write +#Write out diagnostics need for vertical interpolation post-processing diag.add_field('dynamics', 'ps', time_avg=True) diag.add_field('dynamics', 'bk') diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf', time_avg=True) + +#Tell model which diagnostics to write diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) @@ -61,7 +64,7 @@ #net (up) TOA and downard fluxes diag.add_field('socrates', 'soc_olr', time_avg=True) diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) #clear sky fluxes diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) @@ -227,6 +230,9 @@ if __name__=="__main__": cb.compile(debug=False) + #Set up the experiment object, with the first argument being the experiment name. + #This will be the name of the folder that the data will appear in. + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False) overwrite=False From 421d21905fb2db7b485c53fb0d6255c3100d7600 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 22 Dec 2020 11:28:39 +0000 Subject: [PATCH 163/304] Brought exp into line with each other where relevant --- .../socrates_test/socrates_aquaplanet.py | 9 ---- .../socrates_aquaplanet_with_cloud.py | 8 +-- ...es_aquaplanet_with_cloud_amip_with_topo.py | 50 +++++++++++++------ 3 files changed, 36 insertions(+), 31 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index f70884719..2a3b010f4 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -66,14 +66,6 @@ diag.add_field('socrates', 'soc_toa_sw', time_avg=True) diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) -# additional output options commented out -#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) -#diag.add_field('socrates', 'soc_co2', time_avg=True) -#diag.add_field('socrates', 'soc_ozone', time_avg=True) -#diag.add_field('socrates', 'soc_coszen', time_avg=True) -#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) - exp.diag_table = diag exp.inputfiles = inputfiles @@ -163,7 +155,6 @@ 'sat_vapor_pres_nml': { 'do_simple':True, - 'construct_table_wrt_liq_and_ice':True }, 'damping_driver_nml': { diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index fc6bd015d..fcdf0ce5b 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -82,14 +82,8 @@ #diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) diag.add_field('cloud_simple', 'rh_min', time_avg=True) diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) +diag.add_field('mixed_layer', 'albedo', time_avg=True) -# additional output options commented out -#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) -#diag.add_field('socrates', 'soc_co2', time_avg=True) -#diag.add_field('socrates', 'soc_ozone', time_avg=True) -#diag.add_field('socrates', 'soc_coszen', time_avg=True) -#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) exp.diag_table = diag exp.inputfiles = inputfiles diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py index ad5632df3..aafc5371e 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py @@ -33,14 +33,18 @@ diag = DiagTable() diag.add_file('atmos_monthly', 30, 'days', time_units='days') -#Tell model which diagnostics to write +#Write out diagnostics need for vertical interpolation post-processing diag.add_field('dynamics', 'ps', time_avg=True) diag.add_field('dynamics', 'bk') diag.add_field('dynamics', 'pk') diag.add_field('dynamics', 'zsurf', time_avg=True) + +#Tell model which diagnostics to write diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) @@ -48,30 +52,40 @@ diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) -diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +#temperature tendency - units are K/s +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates + +#net (up) and down surface fluxes diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) +#net (up) TOA and downard fluxes diag.add_field('socrates', 'soc_olr', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) + +#clear sky fluxes +diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_olr_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down_clear', time_avg=True) + diag.add_field('cloud_simple', 'cf', time_avg=True) diag.add_field('cloud_simple', 'reff_rad', time_avg=True) diag.add_field('cloud_simple', 'frac_liq', time_avg=True) diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) -diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +#diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_min', time_avg=True) diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) diag.add_field('mixed_layer', 'albedo', time_avg=True) -# additional output options commented out -diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_flux_sw', time_avg=True) -#diag.add_field('socrates', 'soc_co2', time_avg=True) -#diag.add_field('socrates', 'soc_ozone', time_avg=True) -#diag.add_field('socrates', 'soc_coszen', time_avg=True) -#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) - exp.diag_table = diag exp.inputfiles = inputfiles @@ -98,6 +112,7 @@ 'chunk_size': 16, 'use_pressure_interp_for_half_levels':False, 'tidally_locked':False, + 'solday':90 }, 'idealized_moist_phys_nml': { 'do_damping': True, @@ -228,7 +243,12 @@ if __name__=="__main__": cb.compile(debug=False) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) + #Set up the experiment object, with the first argument being the experiment name. + #This will be the name of the folder that the data will appear in. + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False) + + overwrite=False + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) for i in range(2,241): - exp.run(i, num_cores=NCORES) + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From 35b6631bd4b2f6502d50dacebc9f9d53887e78d8 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 22 Dec 2020 12:56:28 +0000 Subject: [PATCH 164/304] Minor edits to cloud schem while checking merge --- src/atmos_param/cloud_simple/cloud_simple.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index 64c6e262a..347438f02 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -219,7 +219,7 @@ end subroutine calc_reff subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) ! Get the RH needed as a threshold for the cloud fraction calc. - ! This is only requires for spookmie_protocol=1 + ! This is only requires for spookie_protocol=1 real, intent(in) :: p_full, p_surf real, intent(out) :: simple_rhcrit From 3cbfaabaf08581a9c75d380ffe2aa9299212c563 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 22 Dec 2020 13:05:04 +0000 Subject: [PATCH 165/304] Removed mp comments which are not needed --- .../rrtm_radiation/rrtm_radiation.f90 | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index daabf3f00..48fb8049e 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -161,15 +161,10 @@ module rrtm_vars integer(kind=im) :: dt_rad_avg = -1 ! If averaging, over what time? dt_rad_avg=dt_rad if dt_rad_avg<=0 integer(kind=im) :: lonstep=1 ! Subsample fields along longitude ! for faster radiation calculation - -!!!!!! mp586 added for annual mean insolation!!!!! - logical :: frierson_solar_rad =.false. real(kind=rb) :: del_sol = 0.95 ! frierson 2006 default = 1.4, but 0.95 gets the curve closer to the annual mean insolation real(kind=rb) :: del_sw = 0.0 !frierson 2006 default -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ! some fancy radiation tweaks real(kind=rb) :: slowdown_rad = 1.0 ! factor do simulate slower seasonal cycle: >1 means faster, <1 slower logical :: do_zm_rad=.false. ! Only compute zonal mean radiation @@ -210,7 +205,8 @@ module rrtm_vars &h2o_lower_limit,temp_lower_limit,temp_upper_limit,co2ppmv, & &do_fixed_water,fixed_water,fixed_water_pres,fixed_water_lat, & &slowdown_rad, & - &store_intermediate_rad, do_rad_time_avg, frierson_solar_rad, del_sol, del_sw, dt_rad, dt_rad_avg, & !mp586 added frierson_solar_rad, del_sol, del_sw for annual mean insolation + &store_intermediate_rad, do_rad_time_avg, & + &frierson_solar_rad, del_sol, del_sw, dt_rad, dt_rad_avg, & &lonstep, do_zm_tracers, do_zm_rad, & &do_precip_albedo, precip_albedo_mode, precip_albedo, precip_lat,& &do_read_co2, co2_file, co2_variable_name, use_dyofyr, solrad, & @@ -621,7 +617,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & real(kind=rb),dimension(size(q,1),size(q,2)) :: albedo_loc real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: q_tmp, h2o_vmr real(kind=rb),dimension(size(q,1),size(q,2)) :: fracsun - real(kind=rb),dimension(size(q,1),size(q,2)) :: p2 !mp586 addition for annual mean insolation + real(kind=rb),dimension(size(q,1),size(q,2)) :: p2 !used for annual mean insolation integer :: year_in_s real :: r_seconds, r_days, r_total_seconds, frac_of_day, frac_of_year, gmt, time_since_ae, rrsun, dt_rad_radians, day_in_s, r_solday, r_dt_rad_avg @@ -677,17 +673,14 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & Time_loc = Time endif -!!!!! mp586 addition for annual mean insolation !!!!! -!!!! following https://github.com/sit23/Isca/blob/master/src/atmos_param/socrates/interface/socrates_interface.F90#L888 !!!! - if (frierson_solar_rad) then p2 = (1. - 3.*sin(lat(:,:))**2)/4. coszen = 0.25 * (1.0 + del_sol * p2 + del_sw * sin(lat(:,:))) - rrsun = 1 ! needs to be set, set to 1 so that stellar_radiation is unchanged in socrates_interface + rrsun = 1 + ! rrsun needs to be set to 1 so that stellar_radiation + ! is unchanged in socrates_interface else -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ! ! compute zenith angle ! this is also an output, so need to compute even if we read radiation from file @@ -719,7 +712,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & call diurnal_solar(lat, lon, gmt, time_since_ae, coszen, fracsun, rrsun) end if - end if !mp586 addition for annual mean insolation + end if ! input files: only deal with case where we don't need to call radiation at all if(do_read_radiation .and. do_read_sw_flux .and. do_read_lw_flux) then From 671d81cc249245f26998d280f82562df8347ed0f Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 22 Dec 2020 13:10:05 +0000 Subject: [PATCH 166/304] Edits after compair to master and asses diff --- src/atmos_param/rrtm_radiation/rrtm_radiation.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 48fb8049e..0f58a75ca 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -57,7 +57,7 @@ module rrtm_vars real(kind=rb),allocatable,dimension(:,:,:) :: zeros ! place holder for any species set ! to zero real(kind=rb),allocatable,dimension(:,:,:) :: ones ! place holder for any species set - ! to zero + ! to one ! the following species are only set if use_secondary_gases=.true. real(kind=rb),allocatable,dimension(:,:) :: ch4 ! CH4 [vmr] ! dimension (ncols_rrt x nlay_rrt) @@ -631,7 +631,6 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & real(kind=rb),dimension(ngptlw, ncols_rrt,nlay_rrt) :: cldfmcl_lw, ciwpmcl_lw, clwpmcl_lw, taucmcl_lw ! debug - real :: tmp1, tmp2 !remove tmp1 and tmp2 after debugging integer :: indx2(2),indx(3),ii,ji,ki, pt1,pt2 logical :: used @@ -889,6 +888,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & endif + !TODO PM: the below code changes compared to the master need to be discussed with ST in detail. if(include_secondary_gases)then call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & From f521c4d1b624fb4aaa016f58734ae0cf1f335d27 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 22 Dec 2020 13:37:29 +0000 Subject: [PATCH 167/304] Start of clean up of code. Removed unhelpful comments attributed to individuals --- .../driver/solo/idealized_moist_phys.F90 | 210 ++++++++---------- 1 file changed, 95 insertions(+), 115 deletions(-) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index a82a9ca76..8479126e6 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -8,7 +8,8 @@ module idealized_moist_phys_mod use fms_mod, only: write_version_number, file_exist, close_file, stdlog, error_mesg, NOTE, FATAL, read_data, field_size, uppercase, mpp_pe -use constants_mod, only: grav, rdgas, rvgas, cp_air, PSTD_MKS, dens_h2o !mj cp_air needed for rrtmg !s pstd_mks needed for pref calculation +! cp_air needed for rrtmg and pstd_mks needed for pref calculation +use constants_mod, only: grav, rdgas, rvgas, cp_air, PSTD_MKS, dens_h2o use time_manager_mod, only: time_type, get_time, operator( + ) @@ -40,13 +41,13 @@ module idealized_moist_phys_mod use surface_flux_mod, only: surface_flux, gp_surface_flux -use sat_vapor_pres_mod, only: lookup_es !s Have added this to allow relative humdity to be calculated in a consistent way. +use sat_vapor_pres_mod, only: lookup_es ! needed for relative humdity to be calculated in a consistent way. -use damping_driver_mod, only: damping_driver, damping_driver_init, damping_driver_end !s MiMA uses damping +use damping_driver_mod, only: damping_driver, damping_driver_init, damping_driver_end ! MiMA uses damping use press_and_geopot_mod, only: pressure_variables -use mpp_domains_mod, only: mpp_get_global_domain !s added to enable land reading +use mpp_domains_mod, only: mpp_get_global_domain ! needed for reading in land use transforms_mod, only: grid_domain @@ -199,22 +200,23 @@ module idealized_moist_phys_mod dtaudu_atm, & ! d(stress component)/d(atmos wind) fracland, & ! fraction of land in gridbox rough, & ! roughness for vert_turb_driver - albedo, & !s albedo now defined in mixed_layer_init - coszen, & !s make sure this is ready for assignment in run_rrtmg - pbltop, & !s Used as an input to damping_driver, outputted from vert_turb_driver - ex_del_m, & !mp586 for 10m winds and 2m temp - ex_del_h, & !mp586 for 10m winds and 2m temp - ex_del_q, & !mp586 for 10m winds and 2m temp - temp_2m, & !mp586 for 10m winds and 2m temp - u_10m, & !mp586 for 10m winds and 2m temp - v_10m, & !mp586 for 10m winds and 2m temp - q_2m, & ! Add 2m specific humidity - rh_2m ! Add 2m relative humidity + albedo, & ! albedo now defined in mixed_layer_init + coszen, & ! make sure this is ready for assignment in run_rrtmg + pbltop, & ! used as an input to damping_driver, outputted from vert_turb_driver + ex_del_m, & ! used for 10m winds and 2m temp + ex_del_h, & ! used for 10m winds and 2m temp + ex_del_q, & ! used for 10m winds and 2m temp + temp_2m, & ! used for 10m winds and 2m temp + u_10m, & ! used for 10m winds and 2m temp + v_10m, & ! used for 10m winds and 2m temp + q_2m, & ! used for 2m specific humidity + rh_2m ! used for 2m relative humidity real, allocatable, dimension(:,:,:) :: & diff_m, & ! momentum diffusion coeff. diff_t, & ! temperature diffusion coeff. - tdtlw, & ! place holder. appears in calling arguments of vert_turb_driver but not used unless do_edt=.true. -- pjp + tdtlw, & ! place holder. appears in calling arguments of + !vert_turb_driver but not used unless do_edt=.true. diss_heat, & ! heat dissipated by vertical diffusion diss_heat_ray, & ! heat dissipated by rayleigh bottom drag (used when gp_surface=.True.) non_diff_dt_ug, & ! zonal wind tendency except from vertical diffusion @@ -231,7 +233,8 @@ module idealized_moist_phys_mod avail, & ! generate surf. flux (all true) land, & ! land points (all false) coldT, & ! should precipitation be snow at this point - convect ! place holder. appears in calling arguments of vert_turb_driver but not used unless do_entrain=.true. -- pjp + convect ! place holder. appears in calling arguments of + ! vert_turb_driver but not used unless do_entrain=.true. real, allocatable, dimension(:,:) :: & land_ones ! land points (all zeros) @@ -277,11 +280,11 @@ module idealized_moist_phys_mod id_cin, & id_flux_u, & ! surface flux of zonal mom. id_flux_v, & ! surface flux of meridional mom. - id_temp_2m, & !mp586 for 10m winds and 2m temp - id_u_10m, & !mp586 for 10m winds and 2m temp - id_v_10m, & !mp586 for 10m winds and 2m temp - id_q_2m, & ! Add 2m specific humidity - id_rh_2m ! Add 2m relative humidity + id_temp_2m, & ! used for 10m winds and 2m temp + id_u_10m, & ! used for 10m winds and 2m temp + id_v_10m, & ! used for 10m winds and 2m temp + id_q_2m, & ! used for 2m specific humidity + id_rh_2m ! used for 2m relative humidity integer, allocatable, dimension(:,:) :: convflag ! indicates which qe convection subroutines are used real, allocatable, dimension(:,:) :: rad_lat, rad_lon @@ -310,7 +313,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l real, intent(in), dimension(:,:) :: rad_lon_2d, rad_lat_2d, rad_lonb_2d, rad_latb_2d, t_surf_init integer :: io, nml_unit, stdlog_unit, seconds, days, id, jd, kd -real, dimension (size(rad_lonb_2d,1)-1, size(rad_latb_2d,2)-1) :: sgsmtn !s added for damping_driver +real, dimension (size(rad_lonb_2d,1)-1, size(rad_latb_2d,2)-1) :: sgsmtn ! needed for damping_driver !s added for land reading integer, dimension(4) :: siz @@ -369,7 +372,6 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l do_bm = .false. do_ras = .false. - else if(uppercase(trim(convection_scheme)) == 'FULL_BETTS_MILLER') then r_conv_scheme = FULL_BETTS_MILLER_CONV call error_mesg('idealized_moist_phys','Using Betts-Miller convection scheme.', NOTE) @@ -377,7 +379,6 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l lwet_convection = .false. do_ras = .false. - else if(uppercase(trim(convection_scheme)) == 'RAS') then r_conv_scheme = RAS_CONV call error_mesg('idealized_moist_phys','Using relaxed Arakawa Schubert convection scheme.', NOTE) @@ -431,12 +432,12 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l allocate(rad_lat (is:ie, js:je)); rad_lat = rad_lat_2d allocate(rad_lon (is:ie, js:je)); rad_lon = rad_lon_2d -allocate (dt_bucket (is:ie, js:je)); dt_bucket = 0.0 ! RG Add bucket -allocate (filt (is:ie, js:je)); filt = 0.0 ! RG Add bucket -allocate(bucket_depth (is:ie, js:je, num_time_levels)); bucket_depth = init_bucket_depth ! RG Add bucket -allocate(depth_change_lh(is:ie, js:je)) ! RG Add bucket -allocate(depth_change_cond(is:ie, js:je)) ! RG Add bucket -allocate(depth_change_conv(is:ie, js:je)) ! RG Add bucket +allocate (dt_bucket (is:ie, js:je)); dt_bucket = 0.0 +allocate (filt (is:ie, js:je)); filt = 0.0 +allocate(bucket_depth (is:ie, js:je, num_time_levels)); bucket_depth = init_bucket_depth +allocate(depth_change_lh(is:ie, js:je)) +allocate(depth_change_cond(is:ie, js:je)) +allocate(depth_change_conv(is:ie, js:je)) allocate(z_surf (is:ie, js:je)) allocate(t_surf (is:ie, js:je)) allocate(q_surf (is:ie, js:je)); q_surf = 0.0 @@ -467,14 +468,13 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l allocate(dedq_atm (is:ie, js:je)) allocate(dtaudv_atm (is:ie, js:je)) allocate(dtaudu_atm (is:ie, js:je)) -allocate(ex_del_m (is:ie, js:je)) !mp586 added for 10m wind and 2m temp -allocate(ex_del_h (is:ie, js:je)) !mp586 added for 10m wind and 2m temp -allocate(ex_del_q (is:ie, js:je)) !mp586 added for 10m wind and 2m temp -allocate(temp_2m (is:ie, js:je)) !mp586 added for 10m wind and 2m temp -allocate(u_10m (is:ie, js:je)) !mp586 added for 10m wind and 2m temp -allocate(v_10m (is:ie, js:je)) !mp586 added for 10m wind and 2m temp -allocate(q_2m (is:ie, js:je)) ! Add 2m specific humidity -allocate(rh_2m (is:ie, js:je)) ! Add 2m relative humidity +allocate(ex_del_m (is:ie, js:je)) +allocate(ex_del_h (is:ie, js:je)) +allocate(ex_del_q (is:ie, js:je)) +allocate(temp_2m (is:ie, js:je)) +allocate(u_10m (is:ie, js:je)) +allocate(q_2m (is:ie, js:je)) +allocate(rh_2m (is:ie, js:je)) allocate(land (is:ie, js:je)); land = .false. allocate(land_ones (is:ie, js:je)); land_ones = 0.0 allocate(avail (is:ie, js:je)); avail = .true. @@ -557,9 +557,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l where ( z_surf > 10. ) land = .true. endif - -!s Add option to alter surface roughness length over land - +!option to alter surface roughness length over land if(trim(land_option) .eq. 'input') then where(land) @@ -570,17 +568,12 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l endif -!RG Add bucket - initialise bucket depth if(bucket) then where(land) bucket_depth(:,:,1) = init_bucket_depth_land bucket_depth(:,:,2) = init_bucket_depth_land end where endif -!RG end Add bucket - -!s end option to alter surface roughness length over land - if (gp_surface) then call rayleigh_bottom_drag_init(get_axis_id(), Time) @@ -594,7 +587,9 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l if(do_damping) then call pressure_variables(p_half_1d,ln_p_half_1d,pref(1:num_levels),ln_p_full_1d,PSTD_MKS) pref(num_levels+1) = PSTD_MKS - call damping_driver_init (rad_lonb_2d(:,1),rad_latb_2d(1,:), pref(:), get_axis_id(), Time, & !s note that in the original this is pref(:,1), which is the full model pressure levels and the surface pressure at the bottom. There is pref(:2) in this version with 81060 as surface pressure?? + call damping_driver_init (rad_lonb_2d(:,1),rad_latb_2d(1,:), pref(:), get_axis_id(), Time, & +!note that in the original this is pref(:,1), which is the full model pressure levels and +!the surface pressure at the bottom. There is pref(:2) in this version with 81060 as surface pressure?? sgsmtn) endif @@ -645,33 +640,27 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l axes(1:2), Time, 'Meridional momentum flux', 'Pa') if(bucket) then - id_bucket_depth = register_diag_field(mod_name, 'bucket_depth', & ! RG Add bucket + id_bucket_depth = register_diag_field(mod_name, 'bucket_depth', & axes(1:2), Time, 'Depth of surface reservoir', 'm') - id_bucket_depth_conv = register_diag_field(mod_name, 'bucket_depth_conv', & ! RG Add bucket + id_bucket_depth_conv = register_diag_field(mod_name, 'bucket_depth_conv', & axes(1:2), Time, 'Tendency of bucket depth induced by Convection', 'm/s') - id_bucket_depth_cond = register_diag_field(mod_name, 'bucket_depth_cond', & ! RG Add bucket + id_bucket_depth_cond = register_diag_field(mod_name, 'bucket_depth_cond', & axes(1:2), Time, 'Tendency of bucket depth induced by Condensation', 'm/s') - id_bucket_depth_lh = register_diag_field(mod_name, 'bucket_depth_lh', & ! RG Add bucket + id_bucket_depth_lh = register_diag_field(mod_name, 'bucket_depth_lh', & axes(1:2), Time, 'Tendency of bucket depth induced by LH', 'm/s') endif -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!!!!!!! added by mp586 for 10m winds and 2m temperature add mo_profile()!!!!!!!! - -id_temp_2m = register_diag_field(mod_name, 'temp_2m', & !mp586 add 2m temp +id_temp_2m = register_diag_field(mod_name, 'temp_2m', & axes(1:2), Time, 'Air temperature 2m above surface', 'K') -id_u_10m = register_diag_field(mod_name, 'u_10m', & !mp586 add 10m wind (u) +id_u_10m = register_diag_field(mod_name, 'u_10m', & axes(1:2), Time, 'Zonal wind 10m above surface', 'm/s') -id_v_10m = register_diag_field(mod_name, 'v_10m', & !mp586 add 10m wind (v) +id_v_10m = register_diag_field(mod_name, 'v_10m', & axes(1:2), Time, 'Meridional wind 10m above surface', 'm/s') -!!!!!!!!!!!! end of mp586 additions !!!!!!!!!!!!!!!!!!!!!!! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - id_q_2m = register_diag_field(mod_name, 'sphum_2m', & - axes(1:2), Time, 'Specific humidity 2m above surface', 'kg/kg') !Add 2m specific humidity + axes(1:2), Time, 'Specific humidity 2m above surface', 'kg/kg') id_rh_2m = register_diag_field(mod_name, 'rh_2m', & - axes(1:2), Time, 'Relative humidity 2m above surface', 'percent') !Add 2m relative humidity + axes(1:2), Time, 'Relative humidity 2m above surface', 'percent') select case(r_conv_scheme) @@ -1027,69 +1016,60 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg p_half(:,:,num_levels+1,current), & t_surf(:,:), & t_surf(:,:), & - q_surf(:,:), & ! is intent(inout) - bucket, & ! RG Add bucket - bucket_depth(:,:,current), & ! RG Add bucket - max_bucket_depth_land, & ! RG Add bucket - depth_change_lh(:,:), & ! RG Add bucket - depth_change_conv(:,:), & ! RG Add bucket - depth_change_cond(:,:), & ! RG Add bucket + q_surf(:,:), & + bucket, & + bucket_depth(:,:,current), & + max_bucket_depth_land, & + depth_change_lh(:,:), & + depth_change_conv(:,:), & + depth_change_cond(:,:), & u_surf(:,:), & v_surf(:,:), & rough_mom(:,:), & rough_heat(:,:), & rough_moist(:,:), & - rough_mom(:,:), & ! using rough_mom in place of rough_scale -- pjp + rough_mom(:,:), & gust(:,:), & - flux_t(:,:), & ! is intent(out) - flux_q(:,:), & ! is intent(out) - flux_r(:,:), & ! is intent(out) - flux_u(:,:), & ! is intent(out) - flux_v(:,:), & ! is intent(out) - drag_m(:,:), & ! is intent(out) - drag_t(:,:), & ! is intent(out) - drag_q(:,:), & ! is intent(out) - w_atm(:,:), & ! is intent(out) - ustar(:,:), & ! is intent(out) - bstar(:,:), & ! is intent(out) - qstar(:,:), & ! is intent(out) - dhdt_surf(:,:), & ! is intent(out) - dedt_surf(:,:), & ! is intent(out) - dedq_surf(:,:), & ! is intent(out) - drdt_surf(:,:), & ! is intent(out) - dhdt_atm(:,:), & ! is intent(out) - dedq_atm(:,:), & ! is intent(out) - dtaudu_atm(:,:), & ! is intent(out) - dtaudv_atm(:,:), & ! is intent(out) - ex_del_m(:,:), & ! mp586 for 10m winds and 2m temp - ex_del_h(:,:), & ! mp586 for 10m winds and 2m temp - ex_del_q(:,:), & ! mp586 for 10m winds and 2m temp - temp_2m(:,:), & ! mp586 for 10m winds and 2m temp - u_10m(:,:), & ! mp586 for 10m winds and 2m temp - v_10m(:,:), & ! mp586 for 10m winds and 2m temp - q_2m(:,:), & ! Add 2m specific humidity - rh_2m(:,:), & ! Add 2m relative humidity - delta_t, & + flux_t(:,:), & + flux_q(:,:), & + flux_r(:,:), & + flux_u(:,:), & + flux_v(:,:), & + drag_m(:,:), & + drag_t(:,:), & + drag_q(:,:), & + w_atm(:,:), & + ustar(:,:), & + bstar(:,:), & + qstar(:,:), & + dhdt_surf(:,:), & + dedt_surf(:,:), & + dedq_surf(:,:), & + drdt_surf(:,:), & + dhdt_atm(:,:), & + dedq_atm(:,:), & + dtaudu_atm(:,:), & + dtaudv_atm(:,:), & + ex_del_m(:,:), & + ex_del_h(:,:), & + ex_del_q(:,:), & + temp_2m(:,:), & + u_10m(:,:), & + v_10m(:,:), & + q_2m(:,:), & + rh_2m(:,:), & + delta_t, & land(:,:), & .not.land(:,:), & avail(:,:) ) if(id_flux_u > 0) used = send_data(id_flux_u, flux_u, Time) if(id_flux_v > 0) used = send_data(id_flux_v, flux_v, Time) - - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !!!!!!! added by mp586 for 10m winds and 2m temperature add mo_profile()!!!!!!!! - - if(id_temp_2m > 0) used = send_data(id_temp_2m, temp_2m, Time) ! mp586 add 2m temp - if(id_u_10m > 0) used = send_data(id_u_10m, u_10m, Time) ! mp586 add 10m wind (u) - if(id_v_10m > 0) used = send_data(id_v_10m, v_10m, Time) ! mp586 add 10m wind (v) - - - !!!!!!!!!!!! end of mp586 additions !!!!!!!!!!!!!!!!!!!!!!! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - if(id_q_2m > 0) used = send_data(id_q_2m, q_2m, Time) ! Add 2m specific humidity - if(id_rh_2m > 0) used = send_data(id_rh_2m, rh_2m*1e2, Time) ! Add 2m relative humidity + if(id_temp_2m > 0) used = send_data(id_temp_2m, temp_2m, Time) + if(id_u_10m > 0) used = send_data(id_u_10m, u_10m, Time) + if(id_v_10m > 0) used = send_data(id_v_10m, v_10m, Time) + if(id_q_2m > 0) used = send_data(id_q_2m, q_2m, Time) + if(id_rh_2m > 0) used = send_data(id_rh_2m, rh_2m*1e2, Time) endif @@ -1165,7 +1145,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg !---------------------------------------------------------------------- z_pbl(:,:) = pbltop(is:ie,js:je) if(do_damping) then - call damping_driver (is, js, rad_lat, Time+Time_step, delta_t, & + call damping_driver (is, js, rad_lat, Time+Time_step, delta_t, & p_full(:,:,:,current), p_half(:,:,:,current), & z_full(:,:,:,current), z_half(:,:,:,current), & ug(:,:,:,previous), vg(:,:,:,previous), & From e8a14cd9b79480197881e8d2d109f4703b54b8cf Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 22 Dec 2020 13:48:59 +0000 Subject: [PATCH 168/304] Further cleaning to idealized moist phys --- .../driver/solo/idealized_moist_phys.F90 | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 8479126e6..3bb6d7eed 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -173,9 +173,9 @@ module idealized_moist_phys_mod rough_mom, & ! momentum roughness length for surface_flux rough_heat, & ! heat roughness length for surface_flux rough_moist, & ! moisture roughness length for surface_flux - depth_change_lh, & ! tendency in bucket depth due to latent heat transfer ! RG Add bucket - depth_change_cond, & ! tendency in bucket depth due to condensation rain ! RG Add bucket - depth_change_conv, & ! tendency in bucket depth due to convection rain ! RG Add bucket + depth_change_lh, & ! tendency in bucket depth due to latent heat transfer + depth_change_cond, & ! tendency in bucket depth due to condensation rain + depth_change_conv, & ! tendency in bucket depth due to convection rain gust, & ! gustiness constant z_pbl, & ! gustiness constant flux_t, & ! surface sensible heat flux @@ -216,7 +216,7 @@ module idealized_moist_phys_mod diff_m, & ! momentum diffusion coeff. diff_t, & ! temperature diffusion coeff. tdtlw, & ! place holder. appears in calling arguments of - !vert_turb_driver but not used unless do_edt=.true. + ! vert_turb_driver but not used unless do_edt=.true. diss_heat, & ! heat dissipated by vertical diffusion diss_heat_ray, & ! heat dissipated by rayleigh bottom drag (used when gp_surface=.True.) non_diff_dt_ug, & ! zonal wind tendency except from vertical diffusion @@ -269,10 +269,10 @@ module idealized_moist_phys_mod id_conv_dt_qg, & ! temperature tendency from convection id_cond_dt_tg, & ! temperature tendency from condensation id_cond_dt_qg, & ! temperature tendency from condensation - id_bucket_depth, & ! bucket depth variable for output - RG Add bucket - id_bucket_depth_conv, & ! bucket depth variation induced by convection - RG Add bucket - id_bucket_depth_cond, & ! bucket depth variation induced by condensation - RG Add bucket - id_bucket_depth_lh, & ! bucket depth variation induced by LH - RG Add bucket + id_bucket_depth, & ! bucket depth variable for output + id_bucket_depth_conv, & ! bucket depth variation induced by convection + id_bucket_depth_cond, & ! bucket depth variation induced by condensation + id_bucket_depth_lh, & ! bucket depth variation induced by LH id_rh, & ! Relative humidity id_diss_heat_ray,& ! Heat dissipated by rayleigh bottom drag if gp_surface=.True. id_z_tg, & ! Relative humidity @@ -798,7 +798,6 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(1,1,1):: tracer, tracertnd integer :: nql, nqi, nqa ! tracer indices for stratiform clouds - if(current == previous) then delta_t = dt_real else @@ -1050,12 +1049,12 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg dedq_atm(:,:), & dtaudu_atm(:,:), & dtaudv_atm(:,:), & - ex_del_m(:,:), & - ex_del_h(:,:), & - ex_del_q(:,:), & - temp_2m(:,:), & - u_10m(:,:), & - v_10m(:,:), & + ex_del_m(:,:), & + ex_del_h(:,:), & + ex_del_q(:,:), & + temp_2m(:,:), & + u_10m(:,:), & + v_10m(:,:), & q_2m(:,:), & rh_2m(:,:), & delta_t, & @@ -1095,7 +1094,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg call interp_temp(z_full(:,:,:,current),z_half(:,:,:,current),tg_interp, Time) call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current), & albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:), & - coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cf_rad(:,:,:), reff_rad(:,:,:), & + coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cf_rad(:,:,:), reff_rad(:,:,:), & do_cloud_simple ) endif #endif From c4362657b6b263064f8417abaf8142a514ea1ea4 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 22 Dec 2020 13:52:57 +0000 Subject: [PATCH 169/304] Minor style editing --- src/atmos_param/socrates/interface/read_control.F90 | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/atmos_param/socrates/interface/read_control.F90 b/src/atmos_param/socrates/interface/read_control.F90 index 755a10357..92c8cec9d 100644 --- a/src/atmos_param/socrates/interface/read_control.F90 +++ b/src/atmos_param/socrates/interface/read_control.F90 @@ -30,8 +30,6 @@ SUBROUTINE read_control(control, spectrum, do_cloud_simple) LOGICAL, INTENT(IN), OPTIONAL :: do_cloud_simple - - ! Local variables. INTEGER :: i ! Loop variable @@ -102,7 +100,7 @@ SUBROUTINE read_control(control, spectrum, do_cloud_simple) if (do_cloud_simple) then control%i_cloud_representation = ip_cloud_ice_water else - control%i_cloud_representation = ip_cloud_off + control%i_cloud_representation = ip_cloud_off end if control%i_overlap = ip_max_rand control%i_inhom = ip_homogeneous From fc842756c519542d09c1eb370debe842b39df88a Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 22 Dec 2020 13:58:35 +0000 Subject: [PATCH 170/304] Minor style changes --- .../socrates/interface/socrates_interface.F90 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 4afcaee31..a5abe3219 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -1080,15 +1080,16 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf !Set tide-locked flux if tidally-locked = .true. Else use diurnal-solar !to calculate insolation from orbit! - if (tidally_locked.eq..true.) then + if (tidally_locked) then coszen = COS(rad_lat(:,:))*COS(rad_lon(:,:)) WHERE (coszen < 0.0) coszen = 0.0 - rrsun = 1 ! needs to be set, set to 1 so that stellar_radiation is unchanged in socrates_interface + rrsun = 1 + ! needs to be set to 1 so that stellar_radiation is unchanged in socrates_interface - elseif (frierson_solar_rad .eq. .true.) then + elseif (frierson_solar_rad) then p2 = (1. - 3.*sin(rad_lat(:,:))**2)/4. coszen = 0.25 * (1.0 + del_sol * p2 + del_sw * sin(rad_lat(:,:))) - rrsun = 1 ! needs to be set, set to 1 so that stellar_radiation is unchanged in socrates_interface + rrsun = 1 ! needs to be set to 1 so that stellar_radiation is unchanged in socrates_interface else From 1a4ccdb9bfb2febcfae18133b3ae21a9c4eb00bd Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 29 Dec 2020 09:00:05 +0000 Subject: [PATCH 171/304] Commit for runs completed on 24 dec 2020 --- .../socrates_test/socrates_aquaplanet.py | 5 ++--- .../socrates_aquaplanet_with_cloud.py | 16 ++++++++-------- ...rates_aquaplanet_with_cloud_amip_with_topo.py | 5 ++--- .../scripts/run_plevel_cloud_tests.py | 4 ++-- 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 2a3b010f4..24202debc 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet_without_clouds', codebase=cb) +exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_without_clouds', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -36,7 +36,7 @@ diag.add_field('dynamics', 'ps', time_avg=True) diag.add_field('dynamics', 'bk') diag.add_field('dynamics', 'pk') -diag.add_field('dynamics', 'zsurf', time_avg=True) +diag.add_field('dynamics', 'zsurf') #Tell model which diagnostics to write diag.add_field('atmosphere', 'precipitation', time_avg=True) @@ -200,7 +200,6 @@ cb.compile(debug=False) #Set up the experiment object, with the first argument being the experiment name. #This will be the name of the folder that the data will appear in. - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False) overwrite=False diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index fcdf0ce5b..00d632346 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 16 +NCORES = 8 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet_with_clouds_post_jm_suggestions', codebase=cb) # need to update after testing is complete. +exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_with_clouds_post_jm_suggestions', codebase=cb) # need to update after testing is complete. exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -36,7 +36,7 @@ diag.add_field('dynamics', 'ps', time_avg=True) diag.add_field('dynamics', 'bk') diag.add_field('dynamics', 'pk') -diag.add_field('dynamics', 'zsurf', time_avg=True) +diag.add_field('dynamics', 'zsurf') #Tell model which diagnostics to write diag.add_field('atmosphere', 'precipitation', time_avg=True) @@ -82,7 +82,7 @@ #diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) diag.add_field('cloud_simple', 'rh_min', time_avg=True) diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) -diag.add_field('mixed_layer', 'albedo', time_avg=True) +diag.add_field('mixed_layer', 'albedo') exp.diag_table = diag @@ -226,10 +226,10 @@ cb.compile(debug=False) #Set up the experiment object, with the first argument being the experiment name. #This will be the name of the folder that the data will appear in. - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False) overwrite=False - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - #for i in range(2,121): - # exp.run(i, num_cores=NCORES, overwrite_data=overwrite) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite) + + for i in range(2,121): + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py index aafc5371e..4a00e15c4 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo_with_land', codebase=cb) +exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo_with_land', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), @@ -245,10 +245,9 @@ cb.compile(debug=False) #Set up the experiment object, with the first argument being the experiment name. #This will be the name of the folder that the data will appear in. - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False) overwrite=False exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - for i in range(2,241): + for i in range(2,121): exp.run(i, num_cores=NCORES, overwrite_data=overwrite) diff --git a/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py b/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py index 95b120485..949e6eb75 100644 --- a/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py +++ b/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py @@ -7,8 +7,8 @@ import subprocess start_time=time.time() -base_dir='/scratch/pm366/OutputIsca/' -exp_name_list = ['soc_test_aquaplanet_with_clouds'] +base_dir='/scratch/pm366/OutputIsca/validate_clouds_soc' +exp_name_list = ['soc_test_aquaplanet_without_clouds'] avg_or_daily_list=['monthly'] start_file=1 end_file=120 From f6e2d13d2b252471fb7023f4052568fa5076d638 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Mon, 11 Jan 2021 10:02:02 +0000 Subject: [PATCH 172/304] Run test data to check if gibbs ripples are fixed --- .../socrates_aquaplanet_amip_with_topo.py | 232 ++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py new file mode 100644 index 000000000..1ea709e0e --- /dev/null +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py @@ -0,0 +1,232 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_amip_ssts_land_low_albedo', codebase=cb) +exp.clear_rundir() + +inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/sst_clim_amip.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/siconc_clim_amip.nc'), + os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Write out diagnostics need for vertical interpolation post-processing +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf') + +#Tell model which diagnostics to write +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'omega', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) + +#temperature tendency - units are K/s +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates + +#net (up) and down surface fluxes +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) +#net (up) TOA and downard fluxes +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) + +exp.diag_table = diag +exp.inputfiles = inputfiles + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False, + 'solday':90 + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': False, + 'land_option' : 'input', + 'land_file_name' : 'INPUT/era_land_t42.nc', + 'land_roughness_prefactor' :10.0, + }, + + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True, + 'land_humidity_prefactor': 0.7, + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 20.0, #Depth of mixed layer used + 'albedo_value': 0.2, #Albedo value used + 'land_option': 'input', #Tell mixed layer to get land mask from input file + 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. + 'albedo_value': 0.25, #Ocean albedo value + 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land + 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes + 'do_read_sst' : True, #Read in sst values from input file + 'do_sc_sst' : True, #Do specified ssts (need both to be true) + 'sst_file' : 'sst_clim_amip', #Set name of sst input file + 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03, + 'ocean_topog_smoothing': 0.8 + }, + + 'spectral_init_cond_nml':{ + 'topog_file_name': 'era_land_t42.nc', + 'topography_option': 'input' + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + #Set up the experiment object, with the first argument being the experiment name. + #This will be the name of the folder that the data will appear in. + + overwrite=True + + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) + for i in range(2,61): + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From e7f8f465d5ecf12d0c5e57129353235eb29feee7 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Mon, 11 Jan 2021 10:03:09 +0000 Subject: [PATCH 173/304] Add omega variable --- exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 00d632346..4a098757d 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 8 +NCORES = 16 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -47,6 +47,7 @@ diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) From ecb3a18fbdcd5d1131e370c2c57e281cec12328e Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Mon, 11 Jan 2021 10:03:39 +0000 Subject: [PATCH 174/304] Added omega and update comments --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 24202debc..9158ec862 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -42,11 +42,12 @@ diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH -diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) diag.add_field('dynamics', 'vor', time_avg=True) diag.add_field('dynamics', 'div', time_avg=True) @@ -117,7 +118,7 @@ 'constant_gust': 0.0, # default: 1.0 'use_tau': False }, - + 'diffusivity_nml': { 'do_entrain':False, 'do_simple': True, From ecd7db3757d0901cad4408cdce8c0bc6fdbe826f Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 22 Jan 2021 08:55:01 +0000 Subject: [PATCH 175/304] Clean up original test case after I made modifications to it --- exp/spookie2/socrates_aquaplanet.py | 38 ++++++----------------------- 1 file changed, 8 insertions(+), 30 deletions(-) diff --git a/exp/spookie2/socrates_aquaplanet.py b/exp/spookie2/socrates_aquaplanet.py index ddbf5d2b0..cf96251cc 100644 --- a/exp/spookie2/socrates_aquaplanet.py +++ b/exp/spookie2/socrates_aquaplanet.py @@ -32,12 +32,13 @@ diag = DiagTable() diag.add_file('atmos_monthly', 30, 'days', time_units='days') -#Tell model which diagnostics to write +#Write out diagnostics need for vertical interpolation post-processing diag.add_field('dynamics', 'ps', time_avg=True) diag.add_field('dynamics', 'bk') diag.add_field('dynamics', 'pk') -diag.add_field('dynamics', 'zsurf', time_avg=True) +diag.add_field('dynamics', 'zsurf') +#Tell model which diagnostics to write diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) @@ -64,32 +65,7 @@ #net (up) TOA and downard fluxes diag.add_field('socrates', 'soc_olr', time_avg=True) diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) - -#clear sky fluxes -diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_clear', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_lw_down_clear', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_down_clear', time_avg=True) -diag.add_field('socrates', 'soc_olr_clear', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_clear', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_down_clear', time_avg=True) - -#diag.add_field('cloud_simple', 'cf', time_avg=True) -#diag.add_field('cloud_simple', 'reff_rad', time_avg=True) -#diag.add_field('cloud_simple', 'frac_liq', time_avg=True) -#diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) -#diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) -#diag.add_field('cloud_simple', 'rh_min', time_avg=True) -#diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) - -# additional output options commented out -#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) -#diag.add_field('socrates', 'soc_co2', time_avg=True) -#diag.add_field('socrates', 'soc_ozone', time_avg=True) -#diag.add_field('socrates', 'soc_coszen', time_avg=True) -#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) exp.diag_table = diag exp.inputfiles = inputfiles @@ -179,7 +155,7 @@ }, 'sat_vapor_pres_nml': { - 'do_simple':True + 'do_simple':True, }, 'damping_driver_nml': { @@ -223,8 +199,10 @@ if __name__=="__main__": cb.compile(debug=False) + #Set up the experiment object, with the first argument being the experiment name. + #This will be the name of the folder that the data will appear in. - overwrite=True + overwrite=False exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) for i in range(2,121): From 7939dfb96c46cc798c97af876fb5b062265b81fe Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 22 Jan 2021 08:55:36 +0000 Subject: [PATCH 176/304] Update diag outputs --- .../socrates_aquaplanet_with_cloud.py | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/exp/spookie2/socrates_aquaplanet_with_cloud.py b/exp/spookie2/socrates_aquaplanet_with_cloud.py index bbe031042..8fa76d3e3 100644 --- a/exp/spookie2/socrates_aquaplanet_with_cloud.py +++ b/exp/spookie2/socrates_aquaplanet_with_cloud.py @@ -32,10 +32,11 @@ diag = DiagTable() diag.add_file('atmos_monthly', 30, 'days', time_units='days') +#Write out diagnostics need for vertical interpolation post-processing diag.add_field('dynamics', 'ps', time_avg=True) diag.add_field('dynamics', 'bk') diag.add_field('dynamics', 'pk') -diag.add_field('dynamics', 'zsurf', time_avg=True) +diag.add_field('dynamics', 'zsurf') #Tell model which diagnostics to write diag.add_field('atmosphere', 'precipitation', time_avg=True) @@ -64,7 +65,7 @@ #net (up) TOA and downard fluxes diag.add_field('socrates', 'soc_olr', time_avg=True) diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) #clear sky fluxes diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) @@ -82,14 +83,8 @@ #diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) diag.add_field('cloud_simple', 'rh_min', time_avg=True) diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) +diag.add_field('mixed_layer', 'albedo') -# additional output options commented out -#diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -#diag.add_field('socrates', 'soc_flux_sw', time_avg=True) -#diag.add_field('socrates', 'soc_co2', time_avg=True) -#diag.add_field('socrates', 'soc_ozone', time_avg=True) -#diag.add_field('socrates', 'soc_coszen', time_avg=True) -#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) exp.diag_table = diag exp.inputfiles = inputfiles @@ -230,9 +225,12 @@ if __name__=="__main__": cb.compile(debug=False) + #Set up the experiment object, with the first argument being the experiment name. + #This will be the name of the folder that the data will appear in. - overwrite=True + overwrite=False + + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) for i in range(2,121): exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From bf2f1bc58da2d2f85e09b1a3ba4c864f3ed6af07 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 22 Jan 2021 08:55:55 +0000 Subject: [PATCH 177/304] Update comments --- .../socrates_aquaplanet_amip_with_topo.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py index 1ea709e0e..0b2c22fad 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py @@ -27,9 +27,10 @@ exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), - os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/sst_clim_amip.nc'), - os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/siconc_clim_amip.nc'), - os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc')] + os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc') + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/sst_clim_amip.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/siconc_clim_amip.nc'), + ] #Tell model how to write diagnostics diag = DiagTable() @@ -45,8 +46,8 @@ diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH -diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) From cbdce6d159b31a5a95369a6cfc1ae37e9088f107 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 22 Jan 2021 08:56:13 +0000 Subject: [PATCH 178/304] Update comments --- .../socrates_test/socrates_aquaplanet_with_cloud.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 4a098757d..95f08dc15 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -42,8 +42,8 @@ diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH -diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) From 2c103aee0675bd2fe52fa82551632cfd0fa2d6a3 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 22 Jan 2021 08:56:46 +0000 Subject: [PATCH 179/304] Add overwrite option --- .../scripts/run_plevel_cloud_tests.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py b/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py index 949e6eb75..29f45da06 100644 --- a/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py +++ b/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py @@ -8,10 +8,10 @@ start_time=time.time() base_dir='/scratch/pm366/OutputIsca/validate_clouds_soc' -exp_name_list = ['soc_test_aquaplanet_without_clouds'] +exp_name_list = ['soc_test_aquaplanet_amip_ssts_land_low_albedo_gibbs_fix'] avg_or_daily_list=['monthly'] start_file=1 -end_file=120 +end_file=60 nfiles=(end_file-start_file)+1 do_extra_averaging=False #If true, then 6hourly data is averaged into daily data using cdo @@ -62,6 +62,7 @@ var_names['6hourly']='ucomp vcomp temp' file_suffix='_bl' +overwrite_data = True for exp_name in exp_name_list: for n in range(nfiles): @@ -80,7 +81,7 @@ nc_file_in = base_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+'.nc' nc_file_out = out_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+file_suffix+'.nc' - if not os.path.isfile(nc_file_out): + if (not os.path.isfile(nc_file_out)) or overwrite_data: plevel_call(nc_file_in,nc_file_out, var_names = var_names[avg_or_daily], p_levels = plevs[avg_or_daily], mask_below_surface_option=mask_below_surface_set) if do_extra_averaging and avg_or_daily=='6hourly': nc_file_out_daily = base_dir+'/'+exp_name+'/run'+str(n+start_file)+'/atmos_daily'+file_suffix+'.nc' @@ -95,7 +96,6 @@ if group_months_into_one_file: avg_or_daily_list_together=['daily'] - for exp_name in exp_name_list: for avg_or_daily in avg_or_daily_list_together: nc_file_string='' From e25872a04179177dd707fabe95c7d4b5f0ac68af Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 22 Jan 2021 08:57:33 +0000 Subject: [PATCH 180/304] Ruth and Gregss smoothed topography --- .../input/era-spectral7_T42_64x128.out.nc | Bin 0 -> 66524 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc diff --git a/exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc b/exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc new file mode 100644 index 0000000000000000000000000000000000000000..a85274e620edc22c0b761c8e31fe7e28d97ec55a GIT binary patch literal 66524 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 z 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 literal 0 HcmV?d00001 From 49bafadcdd96707768b1ff9a7364ef1efcbb93fb Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 22 Jan 2021 08:57:56 +0000 Subject: [PATCH 181/304] Testing smoothed topography case --- ...tes_aquaplanet_amip_with_topo_gibbs_fix.py | 231 ++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py new file mode 100644 index 000000000..4cda51916 --- /dev/null +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py @@ -0,0 +1,231 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_amip_ssts_land_low_albedo_gibbs_fix', codebase=cb) +exp.clear_rundir() + +exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/sst_clim_amip.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/siconc_clim_amip.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Write out diagnostics need for vertical interpolation post-processing +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf') + +#Tell model which diagnostics to write +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'omega', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) + +#temperature tendency - units are K/s +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates + +#net (up) and down surface fluxes +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) +#net (up) TOA and downard fluxes +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) + +exp.diag_table = diag + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False, + 'solday':90 + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': False, + 'land_option' : 'input', + 'land_file_name' : 'INPUT/era-spectral7_T42_64x128.out.nc', + 'land_roughness_prefactor' :10.0, + }, + + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True, + 'land_humidity_prefactor': 0.7, + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 20.0, #Depth of mixed layer used + 'albedo_value': 0.2, #Albedo value used + 'land_option': 'input', #Tell mixed layer to get land mask from input file + 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. + 'albedo_value': 0.25, #Ocean albedo value + 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land + 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes + 'do_read_sst' : True, #Read in sst values from input file + 'do_sc_sst' : True, #Do specified ssts (need both to be true) + 'sst_file' : 'sst_clim_amip', #Set name of sst input file + 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03, + 'ocean_topog_smoothing': 0.0 + }, + + 'spectral_init_cond_nml':{ + 'topog_file_name': 'era-spectral7_T42_64x128.out.nc', + 'topography_option': 'input' + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + #Set up the experiment object, with the first argument being the experiment name. + #This will be the name of the folder that the data will appear in. + + overwrite=True + + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) + for i in range(2,61): + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From cefabde42308bfdd5a3bcf97fad1923d92616ca5 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 22 Jan 2021 09:11:35 +0000 Subject: [PATCH 182/304] Added t_surf and removed vorticity and divergence --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 3 +-- .../socrates_test/socrates_aquaplanet_amip_with_topo.py | 3 +-- .../socrates_aquaplanet_amip_with_topo_gibbs_fix.py | 3 +-- .../socrates_test/socrates_aquaplanet_with_cloud.py | 3 +-- .../socrates_aquaplanet_with_cloud_amip_with_topo.py | 4 ++-- 5 files changed, 6 insertions(+), 10 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 9158ec862..23ebebf55 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -49,8 +49,7 @@ diag.add_field('dynamics', 'vcomp', time_avg=True) diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('dynamics', 'vor', time_avg=True) -diag.add_field('dynamics', 'div', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py index 0b2c22fad..dc4677185 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py @@ -53,8 +53,7 @@ diag.add_field('dynamics', 'vcomp', time_avg=True) diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('dynamics', 'vor', time_avg=True) -diag.add_field('dynamics', 'div', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py index 4cda51916..fe893eb14 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py @@ -52,8 +52,7 @@ diag.add_field('dynamics', 'vcomp', time_avg=True) diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('dynamics', 'vor', time_avg=True) -diag.add_field('dynamics', 'div', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index 95f08dc15..a55aedf63 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -49,8 +49,7 @@ diag.add_field('dynamics', 'vcomp', time_avg=True) diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('dynamics', 'vor', time_avg=True) -diag.add_field('dynamics', 'div', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py index 4a00e15c4..45d1916ec 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py @@ -48,9 +48,9 @@ diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('dynamics', 'vor', time_avg=True) -diag.add_field('dynamics', 'div', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) From 228a3d7eb946350b6c0791217d56a41c04eef5f8 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 22 Jan 2021 16:49:52 +0000 Subject: [PATCH 183/304] Fixed unit description --- src/shared/constants/constants.F90 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/shared/constants/constants.F90 b/src/shared/constants/constants.F90 index 97c6d87d5..42ee900a5 100644 --- a/src/shared/constants/constants.F90 +++ b/src/shared/constants/constants.F90 @@ -58,16 +58,16 @@ module constants_mod ! ! acceleration due to gravity ! -! +! ! gas constant for dry air ! ! ! RDGAS / CP_AIR ! -! +! ! specific heat capacity of dry air at constant pressure ! -! +! ! specific heat capacity taken from McDougall (2002) "Potential Enthalpy ..." ! ! @@ -76,8 +76,8 @@ module constants_mod ! ! reciprocal of average density of sea water ! -! -! (kg/m^3)*(cal/kg/deg C)(joules/cal) = (joules/m^3/deg C) +! +! (kg/m^3)*(J/kg/K) = (J/m^3/K) ! real, public, parameter :: EARTH_GRAV = 9.80 From fc8982f996bd91f89a209c7fc019d56517b5bb33 Mon Sep 17 00:00:00 2001 From: mckimb <35553666+mckimb@users.noreply.github.com> Date: Wed, 27 Jan 2021 11:00:05 +0000 Subject: [PATCH 184/304] Update remote_access.rst --- docs/source/remote_access.rst | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/docs/source/remote_access.rst b/docs/source/remote_access.rst index 468c26bae..b763ca067 100644 --- a/docs/source/remote_access.rst +++ b/docs/source/remote_access.rst @@ -1,8 +1,8 @@ Remote Access -============== +============= Overview -------- +-------- This is a guide for how to edit remote files on a local text editor via port- fowarding. By the end you should know: @@ -32,7 +32,7 @@ Set up an SSH key pair ^^^^^^^^^^^^^^^^^^^^^^ If your local machine is a Mac, you can eliminate the need to enter a password every time you want to log in by using an SSH key pair. To do this, on your **local machine** navigate to your ``~/.ssh`` directory and enter the following command to generate a set of RSA keys: ``$ ssh-keygen -t rsa``. You will then be prompted to supply a filename and a password. For the file name I recommend ``id_rsa_hostalias`` and for the password I recommend it to be the same as your remote machine's password. If you use a Mac, the operating system can use its internal keychain to remember your password, meaning you won't need to type it in every time you log in! -This command will generate 2 files:the one with the ``.pub`` extension is the "public key", the one without the ``.pub`` extension is the "private key". You keep your private key strictly on your local machine. You need to copy your public key to the remote machine you would like to use the key pair to log in to. First create the ``~/.ssh`` on your **remote machine**. Then from your **local machine** enter: ``$ scp ~/.ssh/id_rsa_hostalias.pub hostalias:~/.ssh/``. After copying the public key over to ``hostalias``, you need to create an ``authorized_keys`` file in your ``~/.ssh/`` on your **remote machine**. +This command will generate 2 files:the one with the ``.pub`` extension is the "public key", the one without the ``.pub`` extension is the "private key". You keep your private key strictly on your local machine. It is a good idea to change the permissions of the private key file. You need to copy your public key to the remote machine you would like to use the key pair to log in to. First create the ``~/.ssh`` on your **remote machine**. Then from your **local machine** enter: ``$ scp ~/.ssh/id_rsa_hostalias.pub hostalias:~/.ssh/``. After copying the public key over to ``hostalias``, you need to create an ``authorized_keys`` file in your ``~/.ssh/`` on your **remote machine**. Now from a terminal window on your **local machine**, you can try logging in to ``hostalias`` with the following command: ``$ ssh -i ~/.ssh/id_rsa_hostalias hostalias``. This will prompt you for the password you specified upon creating your key pair using ``ssh-keygen``. To always make use of your private key when logging in to ``hostalias``, add the following to your ``config`` file on your **local machine**:: @@ -43,7 +43,9 @@ Now from a terminal window on your **local machine**, you can try logging in to UseKeychain yes AddKeysToAgent Yes -You should not be able to log in simply by typing ``$ ssh hostalias``. Congratulations! +You should not be able to log in simply by typing ``$ ssh hostalias``. Congratulations! + + Edit remote files in a local text editor using ``rmate`` @@ -55,7 +57,9 @@ use port-fowarding to set up a `local-based text editor like Atom Date: Wed, 27 Jan 2021 11:00:49 +0000 Subject: [PATCH 185/304] Brett's quality control edits --- docs/source/modules/introduction.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/source/modules/introduction.rst b/docs/source/modules/introduction.rst index f78e9b609..0455e671b 100644 --- a/docs/source/modules/introduction.rst +++ b/docs/source/modules/introduction.rst @@ -26,6 +26,7 @@ specifies how many cores should be used when running the model. specifies the horizontal (in this case, spectral T42) and vertical (25 pressure levels) resolution. Runs at T42 by default. If the horizontal resolution is not T42, make sure the input files (such as land masks) are changed and add ``exp.set_resolution(*RESOLUTION)`` after exp is defined. +Other common spectral resolutions are T21 and T85. :: @@ -54,7 +55,7 @@ creates a DiagTable object which we can configure to tell Isca which variables t :: diag.add_file('atmos_monthly', 30, 'days', time_units='days') -creates an ``atmos_monthly.nc`` file which contains output from the model run every 30 days. The output files can be found at ``$GFDL_DATA/EXPERIMENT_NAME/run####/*``. +creates an ``atmos_monthly.nc`` file every 30 days, which is an average of the output over the previous 30 days. The output files can be found at ``$GFDL_DATA/EXPERIMENT_NAME/run####/*``. :: @@ -111,4 +112,4 @@ For example:: Authors ------- -This documentation was written by Matthew Henry (heavily inspired from document written by Neil Lewis), peer reviewed by Will Seviour, and quality controlled by X. +This documentation was written by Matthew Henry (heavily inspired from document written by Neil Lewis), peer reviewed by Will Seviour, and quality controlled by Brett McKim. From 9f8e45d58ff54349b99211f82d96a90ae7ef49ed Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 29 Jan 2021 08:32:56 +0000 Subject: [PATCH 186/304] Running amip control exp without clouds --- exp/spookie2/socrates_amip_with_topo.py | 231 ++++++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 exp/spookie2/socrates_amip_with_topo.py diff --git a/exp/spookie2/socrates_amip_with_topo.py b/exp/spookie2/socrates_amip_with_topo.py new file mode 100644 index 000000000..79ab3b566 --- /dev/null +++ b/exp/spookie2/socrates_amip_with_topo.py @@ -0,0 +1,231 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +#exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_amip_ssts_land_low_albedo_gibbs_fix', codebase=cb) +exp = Experiment('validate_clouds_soc/soc_amip_no_cloud/soc_amip_ice_topo_low_albedo', codebase=cb) + +exp.clear_rundir() + +exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/sst_clim_amip.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/siconc_clim_amip.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Write out diagnostics need for vertical interpolation post-processing +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf') + +#Tell model which diagnostics to write +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'omega', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) + +#temperature tendency - units are K/s +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates + +#net (up) and down surface fluxes +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) +#net (up) TOA and downard fluxes +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) + +exp.diag_table = diag + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False, + 'solday':90 + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': False, + 'land_option' : 'input', + 'land_file_name' : 'INPUT/era-spectral7_T42_64x128.out.nc', + 'land_roughness_prefactor' :10.0, + }, + + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True, + 'land_humidity_prefactor': 0.7, + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 20.0, #Depth of mixed layer used + 'land_option': 'input', #Tell mixed layer to get land mask from input file + 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. + 'albedo_value': 0.25, #albedo value + 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land + 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes + 'do_read_sst' : True, #Read in sst values from input file + 'do_sc_sst' : True, #Do specified ssts (need both to be true) + 'sst_file' : 'sst_clim_amip', #Set name of sst input file + 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03, + 'ocean_topog_smoothing': 0.0 + }, + + 'spectral_init_cond_nml':{ + 'topog_file_name': 'era-spectral7_T42_64x128.out.nc', + 'topography_option': 'input' + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + #Set up the experiment object, with the first argument being the experiment name. + #This will be the name of the folder that the data will appear in. + + overwrite=True + + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) + for i in range(2,61): + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From 5b4749e42b9d46be5c11dad75fb7d5d03d0b228a Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 29 Jan 2021 08:54:32 +0000 Subject: [PATCH 187/304] Remove duplicate t_surf item so it will compile --- exp/spookie2/socrates_amip_with_topo.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/exp/spookie2/socrates_amip_with_topo.py b/exp/spookie2/socrates_amip_with_topo.py index 79ab3b566..a0fbd6bb2 100644 --- a/exp/spookie2/socrates_amip_with_topo.py +++ b/exp/spookie2/socrates_amip_with_topo.py @@ -23,7 +23,6 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -#exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_amip_ssts_land_low_albedo_gibbs_fix', codebase=cb) exp = Experiment('validate_clouds_soc/soc_amip_no_cloud/soc_amip_ice_topo_low_albedo', codebase=cb) exp.clear_rundir() @@ -54,7 +53,6 @@ diag.add_field('dynamics', 'vcomp', time_avg=True) diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) @@ -146,7 +144,6 @@ 'tconst' : 285., 'prescribe_initial_dist':True, 'evaporation':True, - 'depth': 20.0, #Depth of mixed layer used 'land_option': 'input', #Tell mixed layer to get land mask from input file 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. 'albedo_value': 0.25, #albedo value @@ -224,7 +221,7 @@ #Set up the experiment object, with the first argument being the experiment name. #This will be the name of the folder that the data will appear in. - overwrite=True + overwrite=False exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) for i in range(2,61): From be502eae5c197851ce3557c4ddb034ee500a5fa2 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 29 Jan 2021 08:58:20 +0000 Subject: [PATCH 188/304] Reduced albedo --- exp/spookie2/socrates_aquaplanet.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/exp/spookie2/socrates_aquaplanet.py b/exp/spookie2/socrates_aquaplanet.py index cf96251cc..c918942a8 100644 --- a/exp/spookie2/socrates_aquaplanet.py +++ b/exp/spookie2/socrates_aquaplanet.py @@ -42,15 +42,13 @@ diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH -diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('dynamics', 'vor', time_avg=True) -diag.add_field('dynamics', 'div', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) @@ -140,7 +138,7 @@ 'prescribe_initial_dist':True, 'evaporation':True, 'depth': 2.5, #Depth of mixed layer used - 'albedo_value': 0.38, #Albedo value used + 'albedo_value': 0.25, #Albedo value used }, 'qe_moist_convection_nml': { @@ -156,6 +154,7 @@ 'sat_vapor_pres_nml': { 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True }, 'damping_driver_nml': { @@ -205,5 +204,5 @@ overwrite=False exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - for i in range(2,121): + for i in range(2,61): exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From 6408a4d6060c249852709f092026534157f8457b Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 29 Jan 2021 09:24:04 +0000 Subject: [PATCH 189/304] Testing both gibbs and clouds --- exp/spookie2/socrates_amip_with_topo.py | 1 + exp/spookie2/socrates_aquaplanet.py | 3 ++- exp/spookie2/socrates_aquaplanet_with_cloud.py | 14 ++++++-------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/exp/spookie2/socrates_amip_with_topo.py b/exp/spookie2/socrates_amip_with_topo.py index a0fbd6bb2..fc87ee6c4 100644 --- a/exp/spookie2/socrates_amip_with_topo.py +++ b/exp/spookie2/socrates_amip_with_topo.py @@ -48,6 +48,7 @@ diag.add_field('mixed_layer', 't_surf', time_avg=True) diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH +diag.add_field('mixed_layer', 'albedo') diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) diff --git a/exp/spookie2/socrates_aquaplanet.py b/exp/spookie2/socrates_aquaplanet.py index c918942a8..7e3d5de57 100644 --- a/exp/spookie2/socrates_aquaplanet.py +++ b/exp/spookie2/socrates_aquaplanet.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet', codebase=cb) +exp = Experiment('validate_clouds_soc/soc_aqua_no_cloud/soc_aquaplanet', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -44,6 +44,7 @@ diag.add_field('mixed_layer', 't_surf', time_avg=True) diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH +diag.add_field('mixed_layer', 'albedo') diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) diff --git a/exp/spookie2/socrates_aquaplanet_with_cloud.py b/exp/spookie2/socrates_aquaplanet_with_cloud.py index 8fa76d3e3..0edca431a 100644 --- a/exp/spookie2/socrates_aquaplanet_with_cloud.py +++ b/exp/spookie2/socrates_aquaplanet_with_cloud.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('soc_test_aquaplanet_with_clouds', codebase=cb) +exp = Experiment('validate_clouds_soc/soc_aqua_cloud/soc_aquaplanet_with_clouds', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] @@ -42,15 +42,13 @@ diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH -diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('dynamics', 'vor', time_avg=True) -diag.add_field('dynamics', 'div', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) @@ -141,7 +139,7 @@ 'do_diffusivity': True, # default: False 'do_simple': True, # default: False 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False + 'use_tau': False }, 'diffusivity_nml': { @@ -165,7 +163,7 @@ 'prescribe_initial_dist':True, 'evaporation':True, 'depth': 2.5, #Depth of mixed layer used - 'albedo_value': 0.2, #Albedo value used + 'albedo_value': 0.2, #Albedo value used }, 'qe_moist_convection_nml': { @@ -232,5 +230,5 @@ exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite) - for i in range(2,121): + for i in range(2,61): exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From 718c4b883cc4e31607068610572acc162f0c8b1e Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 29 Jan 2021 09:26:32 +0000 Subject: [PATCH 190/304] Update comments --- .../socrates_aquaplanet_amip_with_topo_gibbs_fix.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py index fe893eb14..561cc14a9 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py @@ -24,6 +24,7 @@ # and output diagnostics exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_amip_ssts_land_low_albedo_gibbs_fix', codebase=cb) + exp.clear_rundir() exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), @@ -144,11 +145,9 @@ 'tconst' : 285., 'prescribe_initial_dist':True, 'evaporation':True, - 'depth': 20.0, #Depth of mixed layer used - 'albedo_value': 0.2, #Albedo value used 'land_option': 'input', #Tell mixed layer to get land mask from input file 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. - 'albedo_value': 0.25, #Ocean albedo value + 'albedo_value': 0.25, #albedo value 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes 'do_read_sst' : True, #Read in sst values from input file From 454659aa53eac7bfa9c5ece37829e4b0d05aade2 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 29 Jan 2021 09:27:39 +0000 Subject: [PATCH 191/304] Updates for gibbs fix --- ...es_aquaplanet_with_cloud_amip_with_topo.py | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py index 45d1916ec..556cad4ad 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py @@ -23,11 +23,13 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo_with_land', codebase=cb) +exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo_with_land_gibbs_fix', codebase=cb) exp.clear_rundir() -inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), - os.path.join(base_dir,'input/sst_clim_amip.nc'), os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc')] +exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/sst_clim_amip.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/siconc_clim_amip.nc')] #Tell model how to write diagnostics diag = DiagTable() @@ -37,14 +39,14 @@ diag.add_field('dynamics', 'ps', time_avg=True) diag.add_field('dynamics', 'bk') diag.add_field('dynamics', 'pk') -diag.add_field('dynamics', 'zsurf', time_avg=True) +diag.add_field('dynamics', 'zsurf') #Tell model which diagnostics to write diag.add_field('atmosphere', 'precipitation', time_avg=True) diag.add_field('atmosphere', 'rh', time_avg=True) diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('mixed_layer', 'flux_t', time_avg=True) #LH -diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH diag.add_field('dynamics', 'sphum', time_avg=True) diag.add_field('dynamics', 'ucomp', time_avg=True) diag.add_field('dynamics', 'vcomp', time_avg=True) @@ -128,7 +130,7 @@ 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection 'do_cloud_simple': True, 'land_option' : 'input', - 'land_file_name' : 'INPUT/era_land_t42.nc', + 'land_file_name' : 'INPUT/era-spectral7_T42_64x128.out.nc', 'land_roughness_prefactor' :10.0, }, @@ -155,7 +157,8 @@ 'surface_flux_nml': { 'use_virtual_temp': False, 'do_simple': True, - 'old_dtaudv': True + 'old_dtaudv': True, + 'land_humidity_prefactor': 0.7, }, 'atmosphere_nml': { @@ -167,11 +170,9 @@ 'tconst' : 285., 'prescribe_initial_dist':True, 'evaporation':True, - 'depth': 20.0, #Depth of mixed layer used - 'albedo_value': 0.2, #Albedo value used 'land_option': 'input', #Tell mixed layer to get land mask from input file 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. - 'albedo_value': 0.1, #Ocean albedo value + 'albedo_value': 0.25, #albedo value 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes 'do_read_sst' : True, #Read in sst values from input file @@ -229,11 +230,11 @@ 'scale_heights' : 11.0, 'exponent':7.0, 'robert_coeff':0.03, - 'ocean_topog_smoothing': 0.8 + 'ocean_topog_smoothing': 0.0 }, 'spectral_init_cond_nml':{ - 'topog_file_name': 'era_land_t42.nc', + 'topog_file_name': 'era-spectral7_T42_64x128.out.nc', 'topography_option': 'input' }, @@ -249,5 +250,5 @@ overwrite=False exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - for i in range(2,121): + for i in range(2,61): exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From c4dbeb454a238db0064a8826b9e2f0fa471e4506 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 29 Jan 2021 09:28:06 +0000 Subject: [PATCH 192/304] New exp for clouds and topo --- .../socrates_amip_with_topo_with_cloud.py | 253 ++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 exp/spookie2/socrates_amip_with_topo_with_cloud.py diff --git a/exp/spookie2/socrates_amip_with_topo_with_cloud.py b/exp/spookie2/socrates_amip_with_topo_with_cloud.py new file mode 100644 index 000000000..ecae39dbb --- /dev/null +++ b/exp/spookie2/socrates_amip_with_topo_with_cloud.py @@ -0,0 +1,253 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo_with_land_gibbs_fix', codebase=cb) +exp.clear_rundir() + +exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/sst_clim_amip.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/siconc_clim_amip.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Write out diagnostics need for vertical interpolation post-processing +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf') + +#Tell model which diagnostics to write +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'omega', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) + +#temperature tendency - units are K/s +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates + +#net (up) and down surface fluxes +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) +#net (up) TOA and downard fluxes +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) + +#clear sky fluxes +diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_olr_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down_clear', time_avg=True) + +diag.add_field('cloud_simple', 'cf', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +#diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_min', time_avg=True) +diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) +diag.add_field('mixed_layer', 'albedo') + + +exp.diag_table = diag +exp.inputfiles = inputfiles + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False, + 'solday':90 + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True, + 'land_option' : 'input', + 'land_file_name' : 'INPUT/era-spectral7_T42_64x128.out.nc', + 'land_roughness_prefactor' :10.0, + }, + + 'cloud_simple_nml': { + 'cca_lower_limit':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3 + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True, + 'land_humidity_prefactor': 0.7, + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'land_option': 'input', #Tell mixed layer to get land mask from input file + 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. + 'albedo_value': 0.2, #albedo value + 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land + 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes + 'do_read_sst' : True, #Read in sst values from input file + 'do_sc_sst' : True, #Do specified ssts (need both to be true) + 'sst_file' : 'sst_clim_amip', #Set name of sst input file + 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03, + 'ocean_topog_smoothing': 0.0 + }, + + 'spectral_init_cond_nml':{ + 'topog_file_name': 'era-spectral7_T42_64x128.out.nc', + 'topography_option': 'input' + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + #Set up the experiment object, with the first argument being the experiment name. + #This will be the name of the folder that the data will appear in. + + overwrite=False + + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) + for i in range(2,61): + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From 61c095cadbf5e3c05e6f096d8bdfed2d931859ba Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 2 Feb 2021 08:53:59 +0000 Subject: [PATCH 193/304] Testing the Gibbs fix --- ..._amip_with_topo_with_cloud_original_era.py | 252 ++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py diff --git a/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py b/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py new file mode 100644 index 000000000..b22cb1a6d --- /dev/null +++ b/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py @@ -0,0 +1,252 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 8 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('validate_clouds_soc/soc_amip_cloud/soc_amip_ice_topo_low_albedo_clouds_original_era', codebase=cb) +exp.clear_rundir() + +exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), + os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/sst_clim_amip.nc'), + os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/siconc_clim_amip.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Write out diagnostics need for vertical interpolation post-processing +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf') + +#Tell model which diagnostics to write +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH +diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'omega', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) + +#temperature tendency - units are K/s +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates + +#net (up) and down surface fluxes +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) +#net (up) TOA and downard fluxes +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) + +#clear sky fluxes +diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw_down_clear', time_avg=True) +diag.add_field('socrates', 'soc_olr_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_clear', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw_down_clear', time_avg=True) + +diag.add_field('cloud_simple', 'cf', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +#diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_min', time_avg=True) +diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) +diag.add_field('mixed_layer', 'albedo') + + +exp.diag_table = diag + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False, + 'solday':90 + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True, + 'land_option' : 'input', + 'land_file_name' : 'INPUT/era_land_t42.nc', + 'land_roughness_prefactor' :10.0, + }, + + 'cloud_simple_nml': { + 'cca_lower_limit':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3 + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True, + 'land_humidity_prefactor': 0.7, + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'land_option': 'input', #Tell mixed layer to get land mask from input file + 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. + 'albedo_value': 0.2, #albedo value + 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land + 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes + 'do_read_sst' : True, #Read in sst values from input file + 'do_sc_sst' : True, #Do specified ssts (need both to be true) + 'sst_file' : 'sst_clim_amip', #Set name of sst input file + 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03, + 'ocean_topog_smoothing': 0.0 + }, + + 'spectral_init_cond_nml':{ + 'topog_file_name': 'era_land_t42.nc', + 'topography_option': 'input' + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + #Set up the experiment object, with the first argument being the experiment name. + #This will be the name of the folder that the data will appear in. + + overwrite=False + + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) + for i in range(2,61): + exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From 5ae287e5a279904d8a0d741772f6f06c1d4bfa4b Mon Sep 17 00:00:00 2001 From: Ross Castle Date: Wed, 3 Feb 2021 13:38:46 +0000 Subject: [PATCH 194/304] Documentation page on the structure of Isca and comparison to the 2006 GFDL spectral model. Includes 2 .png diagrams. Index file modified. --- docs/source/index.rst | 1 + docs/source/isca_structure.rst | 29 ++++++++++++++++++ docs/source/isca_structure_diagram.png | Bin 0 -> 988588 bytes docs/source/other_model_structure_diagram.png | Bin 0 -> 155978 bytes 4 files changed, 30 insertions(+) create mode 100644 docs/source/isca_structure.rst create mode 100644 docs/source/isca_structure_diagram.png create mode 100644 docs/source/other_model_structure_diagram.png diff --git a/docs/source/index.rst b/docs/source/index.rst index ce87a3fa1..1d8c63175 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -124,6 +124,7 @@ Contents install examples/index.rst + isca_structure modules/index.rst python changelog diff --git a/docs/source/isca_structure.rst b/docs/source/isca_structure.rst new file mode 100644 index 000000000..128042bc4 --- /dev/null +++ b/docs/source/isca_structure.rst @@ -0,0 +1,29 @@ +Isca's Code Structure +===================== + +This page briefly shows the general order in which Isca's modules are called when running the code. It would be too complicated to show every single Fortran file, and the exact formulation would be different depending on the model configuration. The general structure for another spectral climate model is also shown. + +Isca Structure +-------------- +For ease and accessibility, Isca is controlled using a python interface which sets up the experiment runs. This then calls the atmosphere model (``atmos_model.F90``) which essentially just controls the model run, driving the dynamical core and calling the atmosphere module (``atmosphere.F90``) every timestep. This module in tern calls the physical parameterisations from the physics driver (usually ``idealized_moist_phys.F90``), the spectral dynamical core (``spectral_dynamics.F90``) and the vertical coordinate driver (``press_and_geopot.F90``). Most of the lower layer code, which is where the Isca's many different options are located, is called from the physics driver. This includes radiation schemes, convection schemes, damping and diffusion. + +Note: If using grey radiation, the surface flux is calculated after the up sweep in the grey radiation code, but before the down sweep. In addition for any configuration, the mixed layer ocean code is called after the down sweep in the vertical diffusion code, but before the up sweep. + +.. figure:: isca_structure_diagram.png + :scale: 20 + + Flowchart showing the order of modules in the Isca code. No particular set up has been chosen here, for example, all possible calls to the radiation parameterisations are shown, when a model run would only call 1. + +Comparison To Another Model +--------------------------- + +Our comparison here is based on the 2006 release of the GDFL spectral model. Because these models have an atmosphere ocean coupler, the model runs in a different, and slightly more complicated way. Note the multiple loops that the code must run through to do an up and down sweep. In Isca, because the mixed layer ocean is defined on that atmosphere grid, we can avoid these steps, meaning the model is easier to understand and use. + +.. figure:: other_model_structure_diagram.png + :scale: 20 + + Flowchart showing the order of modules in a 'normal' idealised GCM. + +Authors +------- +This documentation was written by Ross Castle and reviewed by Penelope Maher and Stephen Thomson. \ No newline at end of file diff --git a/docs/source/isca_structure_diagram.png b/docs/source/isca_structure_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..83f7571c95b5f1d06ee51e6a8bc7cdde41b690f8 GIT binary patch literal 988588 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νkS_0SfMI?A8bp2&!3#xm!Evo63tiw0)q+q71W>c7ND{6AZc8s1S}2sY z{<(iqf2F-SAyV#-9z58DydN7#TN3D2gjGZg&n$m$88tQMGJt=PZY)5t;6!!4k|aPd z>4;)H(*hUSyrvKhq$1%=BBbQKFCVda?oltRD|N>%NA4Qz@nIW8Cm_s<|hr&3l zE4&Fcn{*yJsP~EVUudZnEv1q(QUo;V7cmw%YTRN)=HV;YPO+BMK;hVHRRM<)H!fIHtfE}g-bxTGSW1P%DP|X71@yMy5UjBiL?;hAh<=9amp>}} zdl=6{3~77og?PILY^vE%Axk1gLa36oXGlmd*+}NQbWtWKM5JI>X+c_05Ui>3XfRNT zM6jw9I7IbJRc&$UKss-hYW(Z zt$%8P6GMMhr3_3gEcAPO(=!ICnxhz!*v}6+>E)_A<$cY0dQM|G6+zSNG$V+jv5z1O zhe^{x8dh#`=aB?(M5}_*vHv8(!06y#(oq94BV^Ey74k(<+_4OU=;02}(&SjoS zvO^Ck7cs=qcZakm5?75tv!Tm6!VDg44;7(VUXQ`!T;ubwwtE8ynmO?2S^}rg9f?D~ z0H3&F71q4ANf=hRwLHx8djDoxI65;iTn9Ezw-pIsR8vgWKct)1WvKfLnW

zHwva zh(#avh~rOq;(L}f7=@!p(7{db(J!r3NYq9J(sE|nOpz7-Iqb|dyd=^SFMpRYBKft~ z9wLjFK*t8ugO%{ZU=@+3Z&*2sV9Jb-5ndA_o!wj_lW3ihYdM2jz_{aLL=9O@@X1po zW=nL?ePb_*Q$AYEJ;+5C-ogbJk$3^h*a06Gmq2Vw#4g5sLY`4xjcte=GmDFav1;8s z*U{q&$!Ed(fJ)X2t$WcM4dtWJpvXn=k~|ZZo`OGb;yp(;ODA1=>oiG6%n1B54*|}* zXA}zQ(iJSG(&$270sm0F^QDL#l?XzUvM=W>)!2mS7&`NW?7H;F4rd@d9iQ#*-L`dW;`ml> zc}2yr0)HW+x(s_iA+w-52RgS?-v_q%p4AOTdi9=mi%F26ifY5bgU^8j1GiGaH-w_= zN5@^}1(u>1xN>niLp6$!_n8?;21%U z+8rcp+^6y~8UU+b(WzIdsL+sOT^F4y*wGy3>(b7LTS*C&SmElZ*H%>hKy=OjQyWM+ zP?Zx>YJ2cTkWCwW$>tSccf>JIkS>uns2&7%w}E#}x{eIq1ZYbD7Q_Z_3vVMf_9+)A zXpZe~_iYOzO=5V@=o%!LG0_F(Z{>Tt!RC3x8(kep%*AZb(}ctf2lWQ%&yl0$TB2OG zfn&`6Mf~YzRhy9PC?wj_Wr9(=f`8xnW@*fy4hZ*qcydU_){nOe`SIzwN&cv;tXxCC z_*YwE&ZX-l=LN3vX=483Oa*cbgStopv0EJD`wfDLS(>grN`nU*6AzGAP8!}=qeYKy zE#y6UuhH_9tv>)ZYVrrV0c{rago81$_S&^9SG|ZY_n}@e_(z1Q;z;;k3AAtQC~Zo8 z_<&Qf#VbA6)&*k<^k{Ca<1-u(i<`H@{r;1ctp1@#dir8#)sjH~lV$*bQmHdpA=R@F zbhyR&E-|D01{}c8LuwmG51p>02jvq>BcFn|ALL2Ym-{BwvYD7}Ua(3L2tdlul8+Ef zkNP{$XI9P#Pi#y0)KKxe^Zpq2uOC0EuCAWe@zTF6LH|^eVd-}0z6*C^Y+NoA9t`o% zTR*-qsg{)UkLs=Zz%|CY*glJx`JhKD{BiDYC9&i1jpNs1eL+0KqK|~lCh>8}OeQU> zLbz4l3Wbvf8@eOu5A|;>-am>4ky@l3Y;QA~$Cjhy=~wG{%y&-slneM%_?M5k^nm)w zBa>0~dg9(aBQzb5zGqYB1HgnOAG3#ew9Zpj;9oB=((~FW5LG(e5%hoq8S|_f13(H( z{*?9cMVyZ_37ItGGEYa@3xD0zX}T(pu?q?-f`9A9{OxumtPx6^)0QWuMfJa?(J$W< zSE~c+>b_sTeAz04fm*lk;@!P__kOobMXvmBD`G~|f6PY?U2VMPX)D1~dqEAf7;~i- z6A}ujJa|-iqwtWj`Qr2F=`*)JV6S@`5vGMTgF|QorjaB+;$oSE*m|wj9K(;v3Ar1a z!H@vLUu`N>e_c4kARJsQ1n6r#nQvZ-7`GR)pS5lRX=tH_e(cdocy3r&lZZ9&@%?6E zrZ(TnU+>c`&BxdPT&fUz5*}Rq7&>+lD1_2RN{NU)W1QoDJ>t~Y!j01*pSkCP#bR~l zxh!d;oly(Knyy`3)j&>sopP!{dqlkFoSPDZI@EPOqBbYZ1|5GW+wqIqj~`PitS6qb zc>P6t9V{G`EXEp{Yq7{zW84K`c~TN zAF5~S=5t1Ho2(06cpIoDuu5+@X*(0PtP5OSPKwx%-`dXXYJAp4dY6LtV_fBSc>ZI> zKVsGZ{~2v9)6m#h$zRaqTuTdmRJ`N`Vdb*Ux zpkG@gxK?X?6iYWRI(dp3*#h_tRE(FA~~oj6_2jC<*jM#;I(h_O`BAg4{olypHI10f6k=+BOrjF47oImPU; ziOXXa-X;BF5ipIm-HN1sIF03GqFmUzr``@Q9w`(I4eROuVa@Y99Fa+>2AruBvcKve0orSf5YoA#|QU=2xN7G!W6ijMhw+3zrKlxxIoj z(S_+;PNj-S3{5cVC8JCVzI-WBR@HtnIWZRHH0GkBC914rr$YNH;5aI30wemYbhgru z>t?%SC6`yq_p%8i5jnJ5}`&|*udDXW22-kFE#mhDdenxis^NKz;&pbh8rL1tccS&oR?(#iBDKqJ=dL8 zRYk>T=G>_|nIjy9gMrvJlA5dTgwClTOmXI7@wqBrNqfDe*AlI;U)I$n0;8L@ZzDbE zWKM(D<>rL8VcU!~v7FH$;fhiZjlJek=!(^1>j@txx8Hr6i?x!v6*y9W*<-NiIuOc| zvTCZ9{-mNRk}t&hqy3Y2aEKS-Y zV=6-?SUh#cg1x?}?7&z(lSA4>*f!$pYgl6GuKkx~rJBO)7bszzSDS3;u6GyzhLf_5M2Sk+Enta}zO~YMq_-ARKRxml0`(A$i)aG~vF%OqWOz6(wLU3pF@NrK zQ}~&UY1U!3nRr&(8her6$GgSe+m0vNc59prme8&^;~2w}`Lje#h~<_q8?*U|1`j6AUkS-sgxCZ&+Yk}pS72p0L+`bs($_q z!?J1l3T7-9IuGg8;ds&=dk5j*`t=p-sNmW&qlZ2~_P~-qEiC%B=?j=F($@EoTS6!? z%4G968+8f^BpD=N2tW`Oz<9jhT!hbP)mK?_?L|mXG58JZd~~!%%s*K)05(9s@O4yT zhb!g!2hM-s=L`n2hM*t(M%3LgXEHU8`|K`mFAghzahxquU^cVuW#2=Vd?Mj9ZYL%L z^JDg@He01OEqL}Z1&c{TnA_iU}+2x4O ztLL@bDqnRE$`JT+(^ynfL)Nnc1`b6M1!>O5iE=-;pQyCwZE$+b{93*uJJ2dnw+cc= zU{zyJ2v-KbMscD~qakkp8etDXHYXl6(SX)3NON^-Bj+-zCC(6483vWM0+q#B==D_C?+=O0!A1rF2O`p0JPJmUg(2)4d@Xa zkYJa+a6Cm=g$gddy|0kJTwuuc*DGQGBPE$9fDKI@(>CqQ4y)Iq zZ2`bt{O2_S#&b`lcw}S+GxkX!1w+~$IAvqu@oOI-UjgAvZw3ZOK7am9!gX@Ab8&N@ zG^tL!ZS&AIj+EO`U0<$rfuwMtsIGl?R)v5c(6GU43(OIy2TF-;?cX(IfdMOZEaWKE zKBvCc5{Y~{X=qD@d-}PxUx`aB$RX$#+X0RgF%iz!LswY|19-ddFd4I@hkb+4hnFJ(=NhRV(%f)3CJV&Z31PvdjRf=;7I( ztqk_x$K?P$WyVj?b>Ji>tMhm>hf&p=3l2@UIe#)IT$sVrCy2pzonwZ0E10aJBHQuG z38*QUI1PqqhGACe77=;jhoWrKyOukd2xP(hfa&M5A+b^pjYd`ja9-qrfhf>Pmudp% zH_P6T8|yUwgo-rj^Qy~$=+p?pH2}JYq@5ZQT?moHrJGq)$8@(>t{7=%O1Uc^`?z-d zGPlDy%T^t-m|ekt(d6;-)mATFlnrhcJfS^t$y?Iaq<->Pzc$4$yMDx{WVKWJ$ra(9@c+U0tjkf8ru|`2{c>`ia_}AXX z-k#An@pZPR_R+f{n|V@(XshleNBQY)GrFu_o_+CvmP3Akfr#OyDm~6X=ZgVO<%8l2 z|Fw0JTIavrN1WoUcHMQ$uYu0U8@k*UXjk{yVJW^PT2gCQzrjm#@^V#k>sQ}|f{Nj{ ztjeao> zu^}$|!Zd-XbLB3)o&sD!Ubk*N@tF`=A~C*Y*)qP-2)!_8wOqlQWfbegyxxj9kJhB9 zb0hms9Xb5|hk{5%YpE}x_MMs%x*pK-75&0$@;VapOxvCetrY+~Ut zHhLKu{WlFZU_>!)ok6lIW)n_C^4(gA=>4_$#Li0UP~*gjn0dY50iXY z3gRap3-oQrXhN+k($5HREUUoN=@$a(3Nq%^p1w?J!_x zPwSm{Z>Y}tOE~vTn#9Jg+I5c0ENj$BEZMd3zp|aH_J<&K)?Y7h`fH{5pH42bX8HbC zR-F0Cy~Ui_Y?*;EZ(qb3EgElf=|7E^M5xhI-^VLzq`if zF!_&~``_Q4WlPql{;xW@?Wvgp)~}yBu>HSrnEsaQiRn=L*AM*vJ^7|T3kb8$ANs@3 zbk?j-zpDPfKIQ&`=|TAQ|FiyG;q+$80j$fD%v#MDf6MN)gM;d<3o1V+CYj!qw6;Ec z`288Dv7=1Czm`2}!6ddZI@zNW6tV;%z66$jzBKy6hMiMX$Z`;1e{@|SZD_VAV z;u1xMa<6&5hzk6iYSx>J_c<@?B zMmO8CUX@__M(^0znEdYMA`Cj`q0qtHb)k`wr>ME-INx9?-yUiY^NeX1%WnMjo-$8O zz1cb`byZi5%yWiXKa*E9g=PmX&1aj~Oz)VrPz~SQ{ONL;j>}#KgQ5~ls~vZqNIN{% zkh?x%<8o17)iVy8ieqUm=2ceYlFqrDE|VMyS-%#htM;@3ZH9Z$NE}DoWMSy+GOylr zE(W6^BsU>w$url~WEU=monGnti1kXrMsd!%>P?lhQAORRY3_%&Y+fRE-kK_Pj&p$4 za(sFBRVgI(`uNlec4d6>@f><;S09)<)aPRN(a~Xo zY-E<7L$%T!%@xD=80t9u@pGYPQqvxj#0_sJe<+zU%Al7!1Dh{c279mORfQ2NBoV ztC5e_)MNDf-+k)nwBleF+e+Wm`-qyIAyOP$Wpi1UoSHgxFf7lsLd@3I^d42{OkB#k^A#C(iP;;- z?P2MerN;*Mr0Xy{&%BB#e-k3Cp?L-ekzbmflmcz^Yr?mxQ~?T7(oDf@?Or{*OzpoC zjhqMi>Ioqsa(En*>$%iw3h;<_@LFiPlJt4i8Goq^wLy= zqhe#C+SPj_dM{PjJxgjCjCi$v%~)BPDWjTxPoM%9QD8}MR+I7yl4j^vCD+fV7%o990hpgFq?)+PUkq+jpd3y(I zJoMg2Y}u8S*S1>Xfq|EB+NxtjHCVOWv#L;Fr*Wy_Q|WYpj0WFbFU|yrWk^avC_)1BFwcc|)E)=qy9@zm9PlKHU>MwE{1olOwzjqKRIvXNF^((4 z(y|hHvRP3NC7E8uds;tjytyLSsh@LOwpSjrcCEOE-Q(EQQ$Z48p(Dml&4XoP0zTs5 z-ex`V!G6nENQ#<-FHBCt+so@o-O@YJySL-#zUJoe0BTs9X1iv+Hnx~Gj6NCr`tftI ze$JMrF=ebqw~m|nu2{B=PK~~EA$#1VugpavK7GM9Gzv1*7CV91Mn)6Nx$GD%GRw*DoIc*!{vIXapYi&u!Shnik z8>KJoyVI{mbXKSBZ|hv|;TENm{d)J*rb$jhI&VObUDwqutof2IA4-Okjd*$2)OASs zX!45kcDf6^_hmL$zX^%NsYE7QOZ7uJ$pnLj=ZNQOoIiZ^zM6jPR)N1pQ{DQDAGX-l zu4bB73Cz7N*>ON=r*?Vm=Kfrc>+Va67Dd`{NI(*iz zeZjR-1Vg-Uk+2Ob-v+$9bH}9}Yx++y)vRNz3-ZXlJgM6o9{O5dWL)*@mu((Rql?0& z@fL<_MwnV6m&dC|4?BWMU;HK{wLw(ap#61*$)b(^>sgDkUWJaRXPkBB$DGP$_P1;c zF6QFRyl>E}s7PxTsH;j%>ROjQ_-3H#no+j4!X7hRw`!LsT}S<)ftN&QE#(v3s(fZ=}t9tWa zCkdrsIy7~yRgM3*5HCirq(lEG1}Vdd+|nSMoR^K!LU-djgGuesOuKBSrXjA2tsAhH zJYgI4vtu%vsQHCl8iBiG?7JgVMuH1(W1ej5O(VapjkZ2-Y}f%iJ8d9q~Rq#-LXyvnSFczl>saY@=Sr zZhmdRg?^!}MLheE^U(D%D;L!Y>Z--9FLHft##jqQFKT8-RRl~_h1Qqfvdg_yp`$iD zrqr(8F)H|Yp{AXa)uO5(0Y<+^e!eGfQ*Ccf^xEK^>&?4NTfC3(jddR1vilO3H%AO973Wxi! z=-c*Ymzf#Aa&5+s4FpYOYdhMLu_ZZQe5O(k1DO-2Gnd5BE5$FK8)l}8YmmZcIQY7r zh&~g~&wFd&16Qnv)Os)3zXM-t_m>+~ePd@Gk2BkTXffHNNu+uvyWLJp;u*8b7Y#w^l=tbDKiF7k|02nUDE4-Ri14 z*;pQ=n|kcjFWBu6cWOK@Gd0^^&QBw8b{Ss2?B6@d=awzXT0Y-XZ1=KHyH|Fmv}vm5 zr6!ol{uJs-S)o^B!TAy4*zlKE!JkaxIH>aGJ!#K#Imi}b+Laf00Y*c%8!=Eyzkrl^1j~-!?LUyh>03_=Y6yFJPG%s zhEguS9Vh$x+_9{QJHEI1$fmJVU;AmhRf(a_EpkM5j`P`>l5900Wo#RO?g;}$LZci2qKJrMgV+bQY-tb(&9vcnQ2|G!O zpN@r-uTsAcwWT8ujww%a6su!`A0cl=6&Rs(ZRxOhm|Y@_o36 zM40uzot{xy0rc##bvnrxmBl0&LGRZw%bO*?Xm1I9BanrI+$EA}LnY@+T|9&rETFYsPw>`*^sEAQd z%B5;e@ z$7?6XH%shVPsO?eekF2@_5Mo)C6j;L{{Pr}@2DoTH)@m_N1d_2paLoaiem!>5fP+1 z3Zfz+B7#%}5tJ^S5I`NI6B|XUf`IhiOK_x!2%$(Pgx(>PK!A|sdrmAf>we$5-(7dz zyYBsCSj*p!QApmL_nfEfXYc(!3U=9Cuk=%9o@yF|EgoDB8~Jh<>!3Zdt&X7wC0Kym_@f@P*(@l=61;V z;#u_Z7{>8l6|dw`CB?N5Che7PTgq9j;AYAcvB2=M^z>%2$r*u>MfKEcq`zy*W6U7z zRgpYa<||jpCyc&ux-6_s5k|PC3L0H?P;!krDUn_}NmC-#`rOGpJV3OWsTFS!l}>;? zeB-34m(XUb-Y?tGrzn+>zvFxk?f!udbc#^ehm%t{G;(@<`!f8JTI35xZ#;csu4bE^ z2UK^P`9ss)L!)!fl3I=WKf(XPZw+I$U~ku;P-oP=zTLf~ub9`V$JchI-Re_B_gT^e zMdrFyJ$BA-a$C1wT2VS}tk+uF4YdQJeNs@~E{DqS`|SI`yKSKuPN~>%>MProDerA| zdC=IHq%6<;I=(3ux-VQ#MzK7(L<&AH`Wcs>%9#d~h0>x6S~Ag)p3vXMmBzE4mMroX)V%D z6x&So>`nCKX>XSO%U%SNHhF~>pXI1ZK7?8`8Rn>ouO(Xe=fUBqLW$KsTDkq1;ZH*P ze+o-3wYMF5#0O}H|BWM);kcQ7FMJM5Ke2zkUyd=;{P5!g<8edry%XNUT6HCGf0RCG zN;s_380>wiAix{GAY^U;NM|-zF6u!9eR2UGLHNT!m?l9X)GS7Ja4mK+uC9`B#UFtR ztZTHHE*RV%6Twf8Kf5pHEZ1uBB)q;D0vk>pOQ2S2xFSJ;Lk{4v&+M@J3a1C%W~ znGkAry7l=~hBd4Sw1>zZ;@c~-Bi+x(%+f{9y8CSl0T94*Pb7!xjTI}sn6AoAm!9dj z9w~V%eB2S;^$`VUr*!O8V#1D60)-ak&fG5;y-M)jJ`Jr;+{^SvTPpcJp3&-S%wIYk z;d}g6Qr{h|nDM7wlamHVY!o6~b4S?sxM*J&q|4Xl`Sx)W1D!KK0pSEE?6=m!ietOx511T-9nDvJ~bCSgjv0-S!ji!B5dXPQo`;0kd+RZp~}L zC!9iCz@YEM0P)PFc&^vgd`?CIGBcGuJ#QbM_nPvk$OLsHA0Ma0N)3dkakd*yUdg1z z+y|NvZ=VyAwh`9aaoeZu(#x|fD#QkergpFz7k{yW-d=RqWtXA!?t#YrIH67tP0g6> zNjqg7=KO?W$#aL@b5>(Hn8V519abpK(uq){TRcsCZpx|dEEk{hlsg+vVUd^v?AN9I zdXtPIHC4-4{ll`noGc`_+Y!=6_8rpr{gvMp=RcTJF4FQwZxJRq_ii+m+(S+v?I;r=~bc&nx zAx8@vkn|yGUAJ%0RXQ7Z&-{jLj9IAepssY+LOxyfl|=cfmx=F^`=Wr5v!1k#B(!k; zH@08)7Uz%}ds=F|39IGJ@1|XwoEiW2Lv`?z((^cl1m*VBJM~|Ukw&6|B4i<>Q^ zucO{i*qz)`lc!lY;(AVZvbxmIKX?N^BYNS2+?p=P13lR;D*k!>J$8JryV{800I_J= z-F=d`_KeG$iBG6YHOWvvyeBHeAi_AvD%tEaD$cuaOi9jVVP-D$Ok#GKeTQv2h*NIN z5rig}c-acXywp-1N8N6>rFFGo^zkCI#>AKQ&f_l<35Q+Wq)%Q`NPScDQ>sxjS7Smn zX6_VKoaD_o)D`^K>6V`|?UjlF5>xx@X%PL( zOaA)KjjLqc2Oh-NtMAg&RP^GYxeCKB9+)c-7wMQ0dRYc*Z#^lU_IA}U6lwvb$B&1j zZ-*k3Hx~!hUV*vDrND7K4_&tDiq`Dpb9d`cX>+6u!%#D*vfLxe)x1jA2Il>erOpp| zkT$UI3U|8vhCJbfcf1#A+Z2pyD*iwjzEeRy2-V8yaY`~zXvc)wdsQ2?ig}c{U5upz zl)P=)o~!18rmPb<{t^WK=<;y+n`Ge>lfsZ$apz|=;U}6_9&_wbKk+oo{ciAv^)3Bl zXUPw!c{deOZ%2@70Z3Z!u^lrh`F(=u`H3|acS;=d&M;x!gncOk&++jWu%qv zZ9=^{bfW5Cu|&KDS2i?kzDv+Y);)1%fdtr!KfNiRu$JRyYJUYB1TelXItL+g4|Va+ zcq)><0PeooN^RqipJsvoM-IgsC%nghuk)_)NL?$FU$|bIm6+n(IwhH@Z1*hPS#lur z!$MFJ?{xu^b6?_IjzEt9f-|zLp*2DXyV$p)`!e9^of9u*uDQw!y&5#y=Ye#*9^pai?|%dn*iJPjA%@BA3b8V{zuSS92AS>u~9ZWt($ zbm=;MU^K4TR;^?xMeO#xsnBXV|LOkaShBNpMGtTAx)MrtxG=>a(PLvXWQMf@Ej6Jy zs|-rcR3Mupm6~#hY#K@-Yr0+@PY(AE;44t2hNoAr%zqjpUx}x4UmH_+k_n~uT#3zm zz(PTh$M;Mv^fj_4u!h9YL8t2G2=T{Y)C}I;gAc67m5r(*02bBgwPHt`)$>_Zx$J=pb9s%A3-{F%PR}rE0f+ zvOkletyJW*c4jCn?hwU|UHI2O5>h6!ivu=<;2efbs z+zSGwGNQRT(EMscF^`~3agpNen&1Z4bJ7-V+sF4>7oRXqva!^9Y6T-j7p}b}y|p4< z(HPgB_@DEMa#w5{I{W3_nO869%_c}OT&FiN%G$NcBP=8&_Z6OpSww|dw zqPZ(iGX6sZgx&6rmLQF>f&=(BM!-I%SMAE8bgkD@2)5hYDoqsz-N(s4|}j zz>VgU!+yUhC339EqT?ng7AtdA%6G@eFk_5c7YJ3xPE2y?nNJ9BYB$j5Wp&&u51}fc}+hMS$PAPRTe@UL7l^WFWcz!qixnnD@W|Fz?`wtF6#J- zI2Uf8;K1X@@;iceicR>SKL}ObLr^H&8@-IfYI{kbn@1?Y&Ynlf( zd#!E43K-I-{e2yaBv9%fe1~TYog%5dc|9C7>m3xNh|x_J3CUsp^ug8M&As(=^>dms zgzjgJO*j2h<(7TGzkwpR;))5moNh!}Hb#G9P0rcr z*)5rFr}2n}32Z;;aZq&jCA+BRwaz4Fd7iIhmY;_lnjzHD_0xa;f)?XvWf;P~v+%J5 zOxIvGP1`w(W?S{>PyOb8oP8@k*WSlu_Tm0d4FugJp+Mz5w7KUsPMVG>*WsL1MlPM) zauSMa)YwHrE3-`H&8SWBbRra_2ichtzr@KGC>JN+RI_)qQk7-en>4T*Ek~%6muaGg z2B#Wx0QZ7x8jUtkgEOL!BCcY|_}e5duYeHxJo7+Tl~7Saicbipy?H?aiomgvro^+>I5kGXPPh)@3hWh1)Q zwqK7W(y+>28L3;OJQ*lt|vvmA0dkfxg6Fk zeuoAiB8dLt(%sTp46^~1@rld9W9@j?lIre%H(f8ckl%jT0li$t;Z!tYQY_JS7UOFa z;#n5vVO+r28LP11%xq&r`rp}#C3;o$6uV=G_$q|8_GN@6C(F-K4a;RSHW^Cm701P= zglk^gnpIaPDx#K)ip(Ao6bcKE&cc33i1jmpJ$t-KWXD;dlUl>ch4Jf>IXRU*23oiR z?~Q9HsN|w*v{wv%W4orJaMGu+XeLzm`b&`%>Jfd;JlJ4@vQjX5t6S=9vAKH$g2axs z^n_6ckYb1<<~v@nZxwKwPvVjz9TITa+a!`d(o7FcDb^`q_8H)7_--p-54cRIhe~p3 zY>gs*Z>Qaz*eG`np{?o(kCV$*0&d7L^P?pa_HbFYiX~Q> zzLj{21vpH-^0gfQy%L2F=cMPJ28xQz>o#u}1KaDO(HvA{wfncZStl#MVSjf{C?4!+ z(a^jY?GaEI&V7!}i%;IooxFVGBMZFY*({o{P6us$s^-NQqNU1VA-+;xsXJ!9Vl;u- z(M`{ZqdD8~k<<@8q~Plxg%P6hc{$Wt(ZMo%chAywt*In?%^XT(=={KQQ~w5~H+k}R zDnDjpxsxHJIKPUHyY#acuyHT7%f$W(^mKgcYCQ>jTpPWj~_lQy-L5Z zTivyuMc>0CZs`b4iQ~ds;cpDUaQ$QJ+rUS z$EV=h?e~{{cI8~r?9|cy6T@;*_ zlV1XF%m4ic_DdGsAwqAuldsOcgTAtJ0gXE$DIGn{a}UcH5WO@*hTY?Yr3<@sD@ZwC z=*_2;T)+4lr2v#|G9Lg1sz;_%|IH=uaX>%O4i7J$CzR7@ugbllX!0F>0A)(uQYgDA z|4CPi_k##L1-SB9w_)f9g;gymFSnVmVxFz#&MY_`dV~4G;qjc#@_CL8_ zun)%z|B---m2LZqp=CkvFXx<<*WWY!0XXc$%j|YFt=$nATEQiLyj6Yj@=Uu(+F0+V zBV3JLA$|^%h6Yh)Eht23Jh-yi1)}Z& zssbS5F8kj2_$XM_W>hQ#rR{RA@NYX3NHrsQ!{;zL8Rc&WCPK!AVuSyB(6V57ShiDN zn$4*)OF%8R#GBDOBUkvnh{Rb)reJxpWW!yT#Br{BqoMrvD$+{n<@nJvh{ zoRQ&st}rvCQ5VGXEvmk#Xg7d5^>YamvtD?k2;6$b_-Y@Yq)~%NS_$S18m}m|CN|&xj3%fseSYqw2enQZ z8gQbiG29=7S7$K;N9MWOAaPxT@pIeOJtuPS7>-vMDZWf|4NkwHb#xgOX}&gf1M3$y zH>iZ7BmS$@dBsTA_gdTDgu{7N`Rjz1$ju#S$)@BO-Fcyh@&ix1o;{#J6!t4aqvs=V zx-=<~9{9QNO3W!3Ik*rKu4<7569sYx6 z-EI&qnE(J)7HYVPMOASK`1ZmJ#@>o=n9)?+|4A!Eg$li!))K#gA@x!$QSNC6Y|RWm z;{)$ADAZ&6T;gS7k!$r}FXlt) zBf@={){t*pDJ3`Tgh}dqhtQDpqq?Bed%0Y^>d#0DgNMg(=2Nhh)8JZx0x5hgiwC2Xxya+5b_&3`lso< zn(ua-Dpo2V!b)5Bcs&Zz55~0MIrNJ&2o!7QqBG*(YmTzXGGRIRj|wYmfcIh{(h0iR z4v#7z=-L=M5?g3f6;+892o6T$9R!rS{2949o$hFGOPJ3f`R!TVP~dv(S3hFWi*>3- zdl|7R0RtSI&X*iqN#q&P+>YoiMXyzgfBpjC`*r(iRy?e@P+9V4&M-lii*9}&F->aF zK>7L$ns;5gZwTP$4K5Q30zn0m1=SC|1A_J++GBVU^r%~N1_DP&RRE0ng&OMdquRMU zG+kRu1vjxpSfVCC3T(_NZ5V158Bn|vYN8P1SMi=bk znw!~uWXIWX*O@Bc%sO=K@oMy=?DC~z?3S|9Jp8&)HkG>IoF#kgrw*wd!NimeLqkam zf3Wm2rU_7MT_|`ZQDkkf_!C*?kK_upa}6v(3hgdKAjG&_9r^=#ipxhD&pmS%KH8hS7Q3C z0ZrHXK)!YFm*bT{}H?sk0k!6uO#w$RUd#$O#S z7l9$^AP{7tem#&5fSRaTi+)n0YGnywHNZbT0Hu}gw$de{jf%8$@C{%sG{9uUPl&u2 zLMdkSz2>MYGAucQm>NCOM;3cuZoY$^S@Q^DF%;yBN8+>%H8ruZuwb@V+U>?SF}RaG zwJ(~q`1su8F$^xj&(M_>-#6YX5{p8BCNyOR4sDM)tf%JIw6=Y@q?I|f%8lBv>yM(~ z0GkNMI7YQ&_f!e(wjww!0>@4(_rz_W1-p=MxA)k4;QZu5b6=Q7#_;?toIe7L1HYw~ zMK|bg!*%V5w4;k#Q<5jP^Drj)Y#|%J__a2ew&7)Q2KCd+9Fc&0Ny%aC#+H4g8PxV1 zAmL$rG#KcRac~BI-6Qz3QgQO#1HpRx=RLIiGzZbKKyzXjk{|5ndH1@KYFcfJ=^t&j zR8lHfiWDVV(=#_{0@M8K*NM!p1mIiLW*Gh=*?<__W3HH%j+0^{G4!kN{p`nQuVwvy z^@!?=#A+CN$|ResXhi^@<##mRQ(Rw(W*!x_f7Ql}H|3$k+*$Mv{xP&i_7IQaZaGF+ z7%Y!VO?-_Z?AeB*)#^uBc6l4c8M1v<#igJ9GfF9EV~Ml<^KY^MzkaYUgEKD32Sre& zpI!lk8?r^paTl7g!k|=$orvI6m^Sa?Av%v@_^mE&^a2e4|F@x}wqukU%$%|xrl!BX zT2ziGEHFy>wCFH?%x+V;FdA|Q&I|8FAejvxeluG`D7|mc?cIQc{r5+UysI zrZaGdukFjnyvwA?y?u;DosHkfetogU*Gm;w#(+9aKx0A9lI;ycG8+QC$O7mzxflZb2yn^q~z!nWg3<)O>|W*0piCZwV-)q z?dx-pTNQsdLrRJC-CC&`t)fT$QM$2Ai!frYd%{XTsM5XT>^?hz3Zc#C7BiAmf7y#c z^g1LlaE@DXngeP`oQJCA9_No^?|^*W^c1yE&Mw27n;2~)=x??_ZPZt0J#L1B*)9)( zVPWvzh1lE_{p)Xl)9Ie_>;Mp&(b)9NydA(^3$}Ndy?KWSNzf&%-JKIhFH))JR8N3A z+M6(|PIbA+i~W+N4q;-$R=$v%nd8ahhYmfmZO1ZAeX}g!O&n6Rs_iz%_~f^#iXom8 ziXd+Sl^2~qBQh!^-O-T(b0Xrz_UVi<(iKa2*`{ne($QvEJk|Do6rFTug zcL}4Qe)H*f$@wi)mS|#X{;xewGf($FMWjTx;V)`KU5HKEtlP^Z9cFXIeKSjBW6MnG z5dSJKdHSVnKwGi$y|?6Dxj(*_Pi!6gR_~ztiOrMh4-o$xU~_zJOnHes7D)+>@TNEN zpOBu^-B=7*YUw#z28U)Iillv+Kx%%d}7Yf^9F6!vLNaDKd26OPrrEvO&yV%Jy zlJJ_t?9(1G;a#cLKb|q)EB;l8!nOMwKFQ}E1-1PH4@5LdPF~x;r{fj6kW}yQ*UMHC z@C~M7^JoLKq={eF9@zLlbT*!RU)}a^eUmc4-fVEa@Z+~LKTv92S^u@x31qR#txTue z{}Ri1Qvdp4lK1s@{=ZYk{QpLx^WTLiv-W~>OlP5qUE8_un`w-TwK63S^CH?!}D%NY8x-oqj?(4w+VD_wo~E2cax0yRZDihAGmA-fut8mVF4(5;Fbo^;lncKdoShKY5DTpO)&q zk*&f}yWCb4EpI=YCC*fZ1e(yc@ z9IaiElq`Rf-J+@5)_fV-xy%p#^KFMi@(Y zKYqKpXR0?jzCV%ZR>U$v8Zf=7M-5VM#X_vzjv3sm;}Fkxvhpp$(=&EzI9)wCMSJtE zGsS~4nd8)UZUft1lLdiZzd+qnH7yy(a3RO6x#g@@-w60Vq_3LF>3v%TPfOM_wKF#- zci9mNmp>+i70ouq*2t3PyPeC23yK^+lnZ=v?OKFX!`B~Y;m5jEmLUmTuIKdEOZBH|(`TjD9zP!RI7U;F zC1vlM?1%dpl_0SCOse1Wv8D~|Ki1bb)ltbqEEr1~?xMEOEsRJcOaIJPs+QFI-N$9h z@9R$6FOVX@FTiJi3+}s&K@a78>U}!)C}~-zw7D&Ov5}4K!Y&QT!_`~Yu5RgeI`hTj zwe%7(#rmIcJLd59^SnxyqXxi**HpOE2aOj$ZO+;(lT4&|k}1 zAu=84BwX_A$Tl9P2$+`b!{szC+D zw<`HHZ{oPwI;v9rjR(A>jxh$J@^>yLn%K_9xNEQVwUd2!x>=#p5u5^Y|K*h6+7y$o zxW;%GTVmL?(2|u(cr~}g|9JhLpFH^{a2N{CL9?c^1uGJ$p!n>5AfNF5uIPH#ckm)- zp0G+Q_zrGV_M9?jRK(^Pof{HzZJK;97JvQ8llVDAZbN0ps@^r(vE}MAPO?3#6lUAI z|HqEX6drd@>Kkcak`g>M<6_npw~ozG!=uYML%YlL{M@>H=m^ja|MzdCz)l&!)vtFd z(_Va)s=SeHYNWT<*k;X&AgCE%klNttjIQnczphRF?a$5Tm_3~6bUoP$oCg|hWADpX^Tjl9& ziu|8{Za~d)y`)oh?@inmw!Ncya_}2yM^;=>{IP}MKjG{DrIYwS*?9a{e*SL@@>sQh zd_+9;JAuFA42ne~UEn{bdRMW3ff=O^$+@hr93Y?bn!z5HEQMAvoVBmFl8wy**>t#c z|FYb>^;EhmqsV#w*+#@dSdS|L5%|b`p4QdsN#v?=tdL;05q`__j~|DdO{f{(z`)(s zrL=IUb9s9HfYJvHCnr*pJU)*Le6vx28zz%^x|-=owQr~}`UTB_Cf|S`5~z_mJVr+V z8AD({AiLS+s_2rO4ZE<6ak1}L*KGk)QZee1wGs^0xcKnM4C2@9Z|X--zF!W4(Qw`B z4aY(l`E&hL6ZKg@TG|N2onYkxqITbRwW};I#ycL``R>0rwo|!L$ZF#DUi|uKcXVBwzEUp4>>@q{dLb5q?fX1Z5Fq#; zSC<@pyiG~h?G2Hl4#94twm7|54A`L(6_HQxg}O-~Vk@`-)qwK}f)Q_W>_RWF*Y4Y+QsDciriecc ztkPJ-`x8J4%`N=W$U$U*A8=f8mK;n@wBUXO3eG6j#p5QN<%$Hi8#SQ&z z2||jX@ZyK+Ifm{IACN*6Dfw@Cu!xnO6EN-9JE`sRfvF!>kOm)lFg!;=cYYaB(n$2K z_@ZfjIu3Bz=k1f}w3YaoL>LLkf`}7M9F2el{Rr!TH$eLml%AHGLXZFmtuNu2n;?i? z3&w1L%xVj=t;&7@dJ6wWP9*w6`uNz>$?0kS9)(lkrG1k#u^rMt{oaWvyR~*IX@eAL z%v7|DpF9rfDLbhw`4u`y@3Al=4g@{f=es|nvcj4454y0I(06+y*OpF@fFe3nnv~C} zZ-mPmZbVLRzUalYLvW*VZ=JDK21*mlwxG$zc%MJdXB;TVsZx4vFU&20T7f9-BSa@t zB);HMAfT1t=vfW)Bb&nKMRIwgPo3g%_vXL!M(I6ZFzP~URO;OIXNzQQCM8*uB(wN7 zxQ9yXf)LaX+FesD2Hm$(j_FrFszSDol|8`TYQoxCGjG7`v)h);Cd?hI2^r8^|7P!vv@zU3{0SvG=rHV^5}ZxSO_8dj_pkJx#}R{;tZr~ zkr))ua;<7k^)5O`pV~;Zwj0Y#M54L_8OZbKAQ++neW!d(4C%_dbRav+So)fI zCH%*3#?%W1q~73?9YwY(Fo?V($HGfX)mGF@(cMO0Pfh!tzBxdJ`S&(NFhWcsB+`|# z8Mhw?$ya9mIj zK0!5N2Sp=07Bne^S5Q2Ak3}{tu*O_vB(x)u(GZB^U7Rj&7Qi7A z)^WGfhz$qsBHX~t4=u2snI;Lj1R{axXA%-=!Kh)04in?n07}pU z5MFM-?;BWG;J%+R9JKKPp#XV#AT|#j)F+o^HPGiCJMvF{oCn9T-{Bw}yZKC15M|Y( zr`I8N?m?a#6!n_(pe$SN>)W^foK3uaE_)1iL(0(FEn{CuqpuM{R&2j+6 zirGkrDNlLMx-Hel?AUVjJj-CK^tc|pgKblw6HE3{&<6AcUvQ&4Sgk}(g7JKdNV!n@ z+FIhm6565)#iK!bxAHr>&~+k*kDDZxdkWbObC)&rLMy=Lcm>(zAl}{F91_35Z5u>< z4#c)c9KFIBm6mTT(i@szl(RhbLJ)leO_fSLjjdgbi78F66{&dGr9I_%+1n4^+p+JG zN$*>NyMv5`dY90#O;HMh{cZL%6NqX}60_hUp_zMZfG8A(lpcNMXete|A?}_6u*#u+ z+M}TjA9N0Om2jaoYjo-627_e8 zCU2wSA=Ce#y8d-4;yEDao^MWr$P1Bc%Uew&L=@X+TvG)*nle^;Ef_|M;0I&LuZ29G z{L(wSkt_*#=r|Zi*MR+(Kj=mxoGy1qM7Vw#T@BUZA-3zbE<#lAY`p&4oB=6{|UcPj$jur0fKe@CJjcP}w+e^Ra5_;$#N73aD{Yc?{QW_a{|>V=^X(ziVv~)K1fSCx1PdXon0uj0? zWUaJg8P-k$kR1HWQ;2dX|2ON7{Lu!JI%t7#{~m_O6d)%RV1{)xH}wwM)xcH&k=Ef( zCnq2rh`3q+ku$qp7szo>#9Qrl*0eE0>a&n>^Y>np_T0$}~nS$$Kc~Dz`E`HhF z55pMuLc*z9;}C^~FOK@gU@oKxjhIU}7%U13&L?{!f*QB%se-9Ow2-g2{eVl@{@Ahk z4|zu_GYG71{F0NS>B5K52~wgizP&_3gcAq_hl@R6Ka&Pub-4rOTi*ukLiKBljz}bW zv2qql<2?mn0(0q!mLW8mO%hFV%hF&s^&E>*1>Xtp5>QJTFcCyU25aBPy!%j8#~HV7Ljq zssnyp%XcfJ!%(4P6RvB+6tl3Kqdzv8U?C;L;{>R2oum^qm(q78wMeyDB0~E zQj)94w|L>O__6XQV#*_objYUA8jCvj056}rEXKzvMM-`wD#8fqDG;Mq7U=RuP|qM= zts$3^=X8$4{M+cQgE%fC6%?HK`t}}Zqfx+rL_<6;Xa>NZxnk9ON944!GEwI1%j9jmj|OSW_!cvclx_EuqHXQ8%*C^1x@!mP6&howg16 zew0o;N@Oq@MPr4?L&`7xRigXaV{MR9A^qtOiYEkX9^~mX9W_8jfWZxW5*U{G!OM(T z#sHJq@5b%aO4Nq*VKkub0|_C4@BoTMZdnhg@lkxrj%2wzI{x&{wiIndHknYg?Vx;! zee)iXSN_a}je_{LM)*~Z;U!VjZN4uQfmF~0hvX5BeYae`S^VEn)K;bLit#m8kT~!J z_b|_5m<($O1|a@^=d^!$X0|2Wsx2Qnmp| zWQvfwkb@IB5=AmdQZy48K9AY-*Y2}FG*%R6d8J`zuf5N*ft&7#aA#(Hjake#(TWVzAzpn#@)1!w~K0YV_tn)|p21`Eqh$ zA}?Yi`jxk!opAM2^gkBDo>6M3*oA*Zy!H$#9rYOdKKN5hkm?T?kzmcpvo(?%A!kV7`W}l!q{udCtjLssGv91Q0xW7~ zrLC1beFqgNnRWjvpk5;mWGpW^05K)+gr#4Dtur{^$-$MnE%ek}PKy!PSa4CX2#^BH z9TeB^NSk&W!GT#aa~B07Eozzs1zBDRh8a*uATOY9%4H<7H8pg=cFy)A3RY@~M@O7# zM?9EUTj_FTCjQif3?)0Y^aVK8ZM7XC4S>*OC#UVidP83T;Dk??8|~{vivkVi-II1` z-AiNs@oBz#9X8fZL}*=%R7T!^WvZGROa2Z-D1u0&R;>de%0Z(u`7!Fk!QYqi?m4j` z0jR1h>mbC3l}$J2FCk4L<0Qk7coYpj^oucV&r6Jy$QhXMgGO{H`u2gr z?=)TFslE;q5VH=z0tH9rKs1m-HX)lL9Sb16qcF6d8VDUkEZaQt`5Eg#zy(OhlPy@5 zA&tcUQx2&R`ji$iFsyJkx9uHCr0MO}UFyKDJ2$lxRkzUJ4+MuA_@F|yqX0#ovG?9p zpy3y0mk7y*6askGjub;}Ze)}#e^sAPU<_{^02IhlhKx+Xd2qPknM!QbzQl(IgO=K4 zN4fEoyZDD(UQH+fLjfKOSsHNx5u1L$Aj=DecWp8}G1?#p8YE;>Vdi3qRa9ibVL$rV1!9{TiO2GbdOg-+il1;K9e2zpd=vvS3)^F`Zql)3WQ z83~7=z}dvFfv_>Cii{yLxGt8Xw{iCP2b}D~rhqirpdt$rgqwYHqH(?7C<2IYa@ZE+ z0@_x}Mg)ofAh6;Gp~$WVAN0F&mBeOPa=&x$SvVj7stC=f`m+Wa36x5Cz>D-A6aom> zLN1}z5XYV_=Ay;^Zb6T}?=6T1D{7W--4+_^IOtlzu^@bL)=?KhkFm!-hm=8KHn(VZ z<=D`;Ea>;6Y6pJix%Yug!WWh|3-g zR4NpjzIz1S3Pm!LwsU(;Aa@l#SgiyQNe~VNli!T9$Hrh~p1PNR#PqP}X z4V)f~7=;VJ?145mCgolD3`-%s#TX7`6kR%qBzWr&C+fRt*7_x*p8REw>A`&Z znu5pE#gl07JmviQR9g6!&C&K7uJK?R80i7%c@W6N3VF1|Cfk1J({~})q<7MWtEJHG zYCF0SX$H`}A9b6e6=7lUaol~ON4#hW>cvB=u7K42(FJ7h(lNS&K5`dTh8xzigr2ql zaUbnVlgGE>zwzR?iHf+KLeE@)ivFN{qX+4^v5*PCOvv{g6{6OkX#&TOvNOjFO>}Bc z$Wir?tGTsd{AA)}Ir5H9*B`gL7!w*zrG&A|&A;;#`t4hnm{m`G;RT;YEmti}IxThq zS&z=mPDKa`qQL^nLN0cAWY#$i7)PoZKaM_hq^NvP<90h8h$!g9ce=-{&T(uTg_=Shj>%e3RL}HF_H|mjpICyu z_kaO1JnQXYLQmoA_`#c3cmjkoYN$M>1|gIjLY4T<610!*n13BsX2wnDwHw^zK>N&7 zUt2{*1)d4HpFv=*D9jD`i;kSdJNyC2LSm|;jOj9Ccs(pwG+%es{qV@H?|ChvVllzoV`#E=nQLW0u8CK3z~5h(m%a2 zfrC+lfiPABFM+|%I7%QG31Xn#G{khj8*x*}2bO&Ea>;V?yX3ASrtU&;IyKk6&jvu& zg`kUCd20Z1b5RvQmFT-vCv5ofz90IK9~&F!YVGii>w5-`9J7d?%EH#Mb&Zm!5E#Rt zByw`jHR0S(2Ep?aq^2@I7?I1Uz=D{15)H<@NYTE%8}-0Qg5vp@-517Ys1eIrdzCl< zk7+=m9*oN}2NC3KEj!!dmohc|E0kL|j$dva1|8jJIvq*ef3MY7;^OGj=;)v!T~Dc^B5QI4$kEHx6I7Uj)NZao_UYf$C_zX@N-i&s zZb1RQ-4Fr@vJF014a)c73cPH;^@C|>{X(645h#v=CMsrkf?AA^Ubv|NOWov$Dqui$ z_S;T@U_{1E7GSGTxx3()S_O*W=!ij3|8aTqyIgM?bpv;lhLTaL?(lmkY^SC1Q1uCZ z>BM4hw6`sebtBp6A6?VdmJP0~3hSdM0);c{Cfh|zJUC&F@5xlaQ27&0^ha^b`kv#* zw|w66^zgxrrw{Ds|DD6)(ZSn=lR;nHW}2f;ezRAbyRn2hR;F+~;Yv!d z*Ik`c=QrNu@Ex%I{psT%U!$KS6K_A=a56#&Lqk~OxD|%GgY7cp`*qS4N zI_bWSas?;1q%FJDVa&;?uBW#Lp2-tkvERFuU`4-M?OIK0@NM>3Rjkf>qa5UuWQsqu zd$(iNVklm8|2xXsAVJD*54MBANIEsCCpZAC198BWT-;>N!15+30u|aaosvSHDzr_F{k!-NW#zh zU%fMz))!S!`CChaUtCQmEsRjcF#I)jD0^meC+2S z%%Z?k9v%aC&FZYsXx*-nUK0McLG`MDf(*X(H;<(2q%hYdj8Wy-=QD$LIJ&$su`x46 zNjopi)3`FaZ!}Mm$ep8LqtudhEaFsUxCz0ri$0m;r$$c+J7IjI#dTO*WuTTs7m7=8 zSJq#f|DOGSAvsHkvxjX92N zv{_&5FT%sa-z6pa`p9kPS35oYQfe?jJofeLz2j|Tf95Ah-c8-e#qL{9U(LfbH11cf zTr429Ung_Lqb^D%O5qoEIVT;J_t{oqBsPkYLUucfY@Pq4;^w&pxyire|rwRjpI~>19E?9W2fl+J4}jG#Y!h|HOT660;>>ah%ME zV5iDCHv5W^M+B4=72R*E`&a0pbCXIE8xBZaRgGV*PNf=hZ?;Yk@R8H_tsp_tv8cTu zgR~3_nQ{Di(iSB&mrOuojf_^CjbvDJ?9#QKIrfNP`rFo($WHxlZ75COV`8Q zsQ#dUFS%DX|LVZa^?W6MoN+Y{{_@l=Nm*`A+bP>acN`2B_I8!$TlK!olD|I`mP*?t zb$Efy7a?i&`-9Ja!;MrL?@>FsUNKaD?dp!0rH19sG?GQ~F1?ev_XNk@ob;Gc+UUS& zpV5!Za<6&Wa^i1-?kP(%D*3lXnTdgiGUeSPl;(!#hT8TQsEG6Q8Z#!3-wNHVROKn_ z-l=oO=;HrKcj=q^qM;U;qyhQx+5Q(+fmTBSb}A>%2618@1+|xx^~Fr8Q^Qu%JH_t9 zlR8cXzE@dE?OCn36EJ>+eg&>zlqK&Zcv}r6$bGv)7+O^)F zP!-M-Q#a8wqOrHVtW+q7Up##~S&y*Tu+YnklXEuID9l*-`x!cpHzQ4d43-vf5aiEJ3!8bEm>IoR4NJn%+<*t^3g(xy4-ST8QhL|53O9tD<0 znmwLW2;c1y)Y5m*+`+?B<1!k>^Wu3;dlmG7DG&1U^3-*8c{lTj1pNK?-(jci z5-RrJJnj0quyEpubrm`z+_+=dXCCsPrm$|s zCR>O6$7P|g+&X*A`ST}Lv$r}qKDnN3{gRF`aqG{1&W#Ihpeq)z`$x-S?|zY;yHGvU z1TiI-)?19;Yk=kvZa>MoDjU|&fri2XLOxMo)fpTo#bwKRDW$UAjyK(m3{A=tn=uxITY?8`~)t@+qeXTYxhjNEyg}pC$_dx z;88Lu?R?ou_EA;#C3m(8?b)Vr_w)U^=$I39qIa6NizKtKg?brINPN575kEDI>5Vs? zxHVm+Ju>5!-1}-Ek4afjANHDbkI2t0zLJE8XWe8<$u$&PxK{iRp4uQ1A+t{AK6qm9T&X{f=qCpDy`B5JqXSJ20XND&; z$Fo#3to=xCWG7Be+s}aa-HX={U$P+glo8syifBu&f2Y=px$E2w!;tJm*Yqw9y?r1} zR$>(mEa#ZUCpG+-qvPCYjbCflufrwAxVuKWua1kQzZSc8QBpbd1VpRPQXW^(pVE9s zO<4o1p=_D6ddkBZv^mkAT^=%rAl+^EPEAZ35A?kpm`YM_pRg~7qh7TVO1Il1@!+yz z?iL%O?OQVV@0Vtp-BeVxAYJDXD4lz5W?>c}phx@Ak#DQ3K`j5X zYE-~=U$pje=<9*<{*OToX)E>F38UujGx@6B;`|ue+c@L-)InW2r|D*`fe8U@>XAJi zZAFt>890)Mhi&zO(%OM{&dfl3fP`9_r4E_*`qWqtHYQ`GXuQ2e6^DoSc3WkrDOnj< zrHr!kN~9_+BPE*j;~!Igd*g9?X~wL#Lgni}9}m2H;i&Xy%wy7v=U97z@U^fRfK%-G|Kg3s=UPp?U*x=gfT{XH97EXH|XF9+ndO3qxK$NpHcAF5?o0(r%I|-W}=%SUe$#q|SqCgcKYKTe2%9hE=FW zqr~&&GS~mSXLX>6Gx;mFCgylNaW$SpA=i-HDj_N#n#C{mZtuA6Ii72HtZ7OO zPR`_Vq({9=Q%B>@633ZO&K9@&D*_ydA)kG_=^NG#l(sh&)lXxr?CN6@i}YojOn%vz zbK1$2w_PCX&`@XeIyp&?3+|C5NGQ@LV^d_7c{P zY06kzQP?{ zors_UiLyDHo&=Gk6-tFg8pfs7J!T=!+Wo+w1hX%({OR19!gAMQ*+ibRiIQsdDxXG! znR<)cr?DrJZ6;+Ntn|!5$xARjytBE3vfypC>K%~e$B9YU&Mtsa+;a4je{7te;Gy8{ zMJ`2R)DU4oScE+acGoWBDgT4DHvxxo{r|_O(`h+vaw?LoDB2`s&(g_~Y&i-Ml2BnJ z`!dF9BWtBnSw<3-E!mf$td%U0-Iy5Jm&VQ*^LyVzan7gn`F#J^^`Gm~h0HV0b3gC< z{eCU)`+hzKIB4yQ*k(nijJ@N%%R5Z>RO@7??|RqxDZ5r!PArHZ{i4oc)PLoWw8Tz@ z%9*lWju6%`f-D?F^p9({5we~G-=?ZH85>zyQIO~cPvBsaIElo$-4U9)MN|nl-gp>Vl-ZZ{*oV!(3z0c({_vh(|XHU%Z{mpe_ z3vz2`c%3_2#Ojk9l5EAFH?~4jZ_GAV?PO7OQ98-FX_4fByG-A$|`tdr~2+8~c>rz}-4GG?{dPHKts6+g9HA zoYxh-*Q|^sH(3O{3vZ=B^{^%90>z`Z|_tv$OQT?#c_+vE=GOLd?i0Z}zkh0*k(_USTStr>|! z#_A4Dzpli4R2iQhQ~)f)(NCri_~>}{nWlSa(SvfP3N3bVl+96m>NJxZrZ&Z%&*Q0* zo1jU#YYc~936(wj#*0vkc!FZGoKY<&#e?BxTkC%LQ?)C88u<{Ar_Leb=Y#ihQBp!F z`|wD)$GOsJhr9XWv}ZsSY}D=iAYrf%OHHS3U~B_|Q0G{|$|^SJtQC(};Bc9}7cd@D zfO}OmiB~GW6}(AHCSCtm)m{Ttvz&~p?t>SHsY%XQj|Tkq$*vQTMy@B#I$7Qa+j3^6 zKXgX=6s^ea1{xQ5MfvYJa3Bb_4iOHL9m?t<7vO6Kt1DWe2z5N`j`Tyc#`hDYL)Wxm zSNxZ12&4cfuhbI=-f;8_dX1Jp#J%@vA&nx;+uH)|6*uf;qwD%@g*(&5i6T6CqYv21 zTt3^{+1mg&WOAaDIZzFIFEhH9RRiC6%(`8ccGX|(7fX~>^7@IPj#~|FFEnm3rFFu? zGVMEL$y)?9WaC?W_`}F$kV-e>8SmW&^OFfCdAl=gns1Lgv{LK(MeEs3$Fl=G5UJzv zIFOeu8l*7(F+q?`AQ46Mj!O8bZ59psKzfcU3CRVU#8X}_15u%DPvj(nV!1-Fx z`t`XT3JN%j(iDV?YBGOo)aDoD-9(sue@YEKzfqCpw!=50`H{n5R>fy!Ny(4D&@QQv zBy$m_KU#IfglPSKxzl@a{W-{cr}T~#sd~9-t8BM{o6lyJ!}?V0+7(2ffEQeHDu4-0 z{bI}@n(jzFx(8S*U`R_Y8rih9){+iH1GbD*_}ph6Z(`8gNA2w{5H`n^=_gxH&K<%V z3lK!)%;m=3v5L@^>!0V!9WN(XJ5&+py8B1X0cSI@_FGxITc%{3>e#OkAL8buwtJ=P z?GmiVaSQ+pdi{i1Qt~+ zudkN4vilHAi`?vJE+vSwV6*iDIZi;tqC72++qR0U^90_I)VJhPaGUwaMjMK#&uDm{ z$=T7>pL7eIwoHBXt9>R$xqGqsLyuj*RT`Z`W7_^M=1@T_BJ@1@jG+LJ*X@B$)Ngc` zvOs-2ijR%x(vNq0@lo=+c}>IZD?GRXrUqCW!?hq%DLO=hvQu)+h3;|&KTR|IHLuOB z&BJJ5I%(46F7t|~ngx@68|srjtZqOoTD&|m@CM^l6X+_*HTWEvUL*3J$J(s3ZyS<= z5!w%+y@GLzL}NSG>i^iJ0B5UdcPV8UeF{syGww$oFdS@O$O9J*GuiptAV2R1DiOfg z1)&i3$wR3asVGwu?DDK=XaF;&plj0x*Po#?aG7=9`cS;=>(-M$WOXA= zN7967^`W!v#Mhiq{q&sSQ<9$hR&Lp#HdF87=b|Akw32;&#cH3qFV+oKziyrsr`UBD zXAd(@AhIPfX#*)HbN`f0X^KBAgY(}LOUwB(G7>QP3E{*_smz^0JhkG5d4tlEblwj= za?zB@9vE)>LCs93t%`{Jv})IWZf!nv*{bap*Ts%yGrm&h{6~S+_z3qOvf)v544rC@oXn@S-WyQ%ZisZcCzk#?aSOgDbhZy{M%U z%Qa!_Q%VkHWeluuT+em#_Sm4WuiRg6@v{T7TY=S=m{%M%L7ej$W2EF5oDY(H23XE~ z>Wg%0$vDr{gR1b8K0*SkGb~`DWOXUn`2#h(klF?KwiF3OeUUJTb(h}Q59h;YQNNLU zj_yR#naSk1o@qhX#7ZaGHLmhdm_&!j_c&5T|A@C8rv?)u2=)WHrnBe$_q;Iv6jitb zjfsU53;#rGnYCSxP=C}wTadiQA2uGVK?>PaFt1+O z%Wgst&5ofJRy)TxaXq(9uDd27_Qn0VTEPy$g}%IA6a`U%!ol2z=}?oV&8?g=v(K4T zgp$2{Wtvo+TLlm#3tR-ynaZ3AbY|o*N zR8cbTg*8fAQoWz`Xam5Fx?sRv-Ko*f-8$~L_GZT!w#K1Q|5!jf>)(B`9IjDh(qFQ4 zoK0K$o7}f?YKgloV>YtevgX@lKQoDhmz-iZN!0a+Wo_U#Sj` zCacVh!-K0e4md%eQqIbVr>}gG9y38u7ZJU9aHjfsAL8%1TP@EkRP}-@YMM)jpcMKyDB# zc(r?m<(=&Q$%K8rA zW9h3pxgWf#d*T|2Gp%atyG-j^a=@5QCL^nPXzph!P3Lp8}^2Z!UCtxv~W>4*h7IP)mZ#fw9K0>gWq6MiqXeTk?) z|Nb$prPlzzQ{018>u$MMfOi;NuZ*2$`1v{2c zuouCRg;$Ss{Q=yrZJgWS^3ne;?Kttib_L`hR@OTTI~BUxt|)iLcq##9_8u71%vp#D zbd;P-YHevr+%V&0-l>9pBmOG|NNB$qlJ5_h0^`VvDleMyN=gBb4oO>vD+u;JaKDdA z`L}|()QcpN>9tkEGs6aqzH+$^L+_y-lERW#Mz1WK)%-4E%u~+sp5b;%`PTIz)`@y? zSR?0|N%#Hx!lg)wHVlSC_deLrIFDo6YSJRT=4f}(Wn(ag_d^`v3g=&n#dgEl@x9$| zm5);35ji2)7Y#3Py(IzTBIbeuq?%>9jG$o&`r&h9SyG^x&r?!NqUaA70`ohX&gOk> zD?&q6_kMjU=hM>n*h;isl}k<(PT&|2qkvoY96rqL>V4pCa<+ZegK|T;9Qe*%Vbjf& zxIp!sU2q~fzcFbr^OUxmRVmC}E^Xdib{?^yQg|=f?{Bx|j)}Oru(B%prMp&VRnt<27rz4zPPA?YtSd zjg6HR@zq{ucx%t%`gP3qBNcH{6TG)W9o3071oD)5>CD5FO(EEe1>&Il11NoUkq&uT zyo6QC2BubFAiSSzW5HY0h>BiO)7{_$VCG6~KWj=i@zBuJp3_7Hem;r3lmqp7Q)g=3M>xcy zk*Cw21clhwcengtgvj{7WLl2TizqZ)j;f1E!cm&D&47K9OeGo2d^;+{(=yqJkQ-pW zz|+G8`(diZRnQ~xv+Yv=%DS)Z@!*hLF3~anw!uM^NIu~FL%d#H14?t^g08uqXH-`sFCJUQ|7BYT26P>^_!l-XWE(MlSKVAUPjHF)<_fW<9A zzA%)2h&BaWCg;a~e7L3C)ZM~|D2Y!_XAeR^RUvmgjQXu=7)xzzYcL=7LXP9doSvEu zrommqlgXr9DY!ETG2gSd6_%Sk8NZ{9C^u-acQ+a}(v8K8Wc&dL{8W{;X_MuJ#Owt; zPSH*#ZUY~ z-I4g-`?mG+KsGWtUfFmFdwomqH~*yVwUID0BV@a>A5^Il34186K(c71-9{?>!j0kxx=^U`f za@)g{Hd&#x#AX{Z3ph^E@z#;IvQ6_+NKq7Ulj_Ds0SA2ol9*4oBV3>!22#}2H=UgD zT%?5c*vbE0K8#hYm%Tk8Q-$OTHH$6`Kyi@Sx#KGx+UJ;lxBHQiG z#z^Khbu=S!#kIvZGgC(GV6=q+_4yt1*Y2dr^;619oAU>K*~H<}-y7g3{RtnlZla_D zl_TIuQSc?Fj<3kN%9@*?8Aeo3by=r#^tYD>$>2ukw2xCAus933T4($&hJvDPoB`_`m4zH--_{K zx%EC^-rHfCxmrqs<>q?1D@yC&OGAz(hjJ7L=)E(a1`}^`g=y1hbL&T;l3XLq{1FZY zS^TC6kl52#FRz??vqhvoT3xI!IKuJVY{fJEjE4bJ{kg-w>dDi8#y4aG6y-?o#(f#l z>*txFa&tJL8Ge8s7RT9k0+}08R*rNe1qCIWG<5J} zN?2U(xx?Rq=miKNcT$ECkw?x;{EnP1vy%F&VHM&mQy{7))iqGYn_)PK-JYG~y~rQ_ z;5yJ8hV=&p!{3O_Q-a^d0JUPQ_mUteN<$JBx`ZT+d}>p$C6{%7TLfGi@{MMJwMudu zfk@$MJNQ!XT5?NGm}v6&eesmBb{`a*B5?zz&EbmK4RabRR!DIzz!`o)sQ0MKIWC_Y zLz|hPmtrUt#Cvi2Vd(leGb3zjlj#LBFbJ9bX*~GCJxJ$yY6;%CVR)uR?M)OG$i=uQ zeuABqSzr0SNYU=HWEzqI1Lk>DKI15RtZmxbKzH%X?Cl1ol)mj;3%D%-nC>>(r~2#p z9lDIYD&R9!6EiF=N@wnvwuP`x+3bsH@Fe4g?Ujmoy>NK{occn)rm4~XWQ&AgaPQ-t zDz3rvbo5Ez64{oO5pVKH^I6W3R*3~6vFIsO8UJP*ffGZV1_6y?LMe$Jp+}?eUt{zV#LC=h)0t+OFhBil|Tsc)GjWFZ8DPB(Fez62j z=<@+JB&;541^6gg`lD(g)}eCbkx22iCxaBsj{DG5(mX5tp`!aguD|;7nS;V7Gt4&t z0vGJ})8izKxcV>rVlk?A3yH#K+$%z5@?4GvbKPOxi0fouYn12#=8C_$1;gY~opmaj z1w`=qaNLp0FYiX2Kpw}4J2xbxuLR=z0$T5#$~^mhI4(a#%@>E(Uq;PCR4PjeJC=Si z*DN{c>RG%OC77ch4KY{*wL{Vc`Lv*b@f)G0_fIj9c(C=h|Z8Qw0TCf)saE z&HY%N+QTPZM#dg-ujJzA)51?q+kb4lr6V=w%XWm=btLCvs`~3SpCEBVHl?A@N*f6U*xa)cvy*jdNuv)hc4ZH{Gx)p;Heq7w9kyo8Wmo|6RRz37ATwZ?S3LZ|a}+~GAe)KS zqc?{o=L$f6;rnuqL(XtV5&77JeSSG}2;9cq`4+8l$CrYMeCL>KU1uK-$__%9X zshKJ_DLU5e#CQbW__5P4Qe`Kp3I%h9rS3LVHIDwSziMIBEw)73lvi@giq=DhGSo;t zJeo`nt1|&O6k2!k1iF7cA2fb!q!U#R6(nBl4m zG$D!Qj>kvhWz2~Rf8_+tPDJKD_5v$3t?t`7C{nId-7Z#K<<5K0WlWkCs>NB#?K#NT zkvQ}5Y#WS(kUN&gbN^P+v?3h8;YtCcwZ0N8FCz~QCM0;^K}TuE<+;7N+&M)Nt=|{v zCTfoR43ES>-BA7A$$;=vcKE+7h zLx4=I(CWM5hDLoW)X$G_he}aPlgtWxQ!re_(A-R~*yHaZWIE$o>W=@#Y49T8C}!gl z@-3~?8C_2@p(Z-HMsQ#B;)Q@D4>U|y#IZ;avYPU`ec$bU-jJ7^5qp5A=X`~)+;9X= zoaMa)%MKne=}X<6D#V1`FY<(wcq_>G3c=G_Fstk2fwVXudb0V;2_q>+o2%KU*S@}4 zo#pH$Qx}^UMA&`XyG>{b2|a6y#MLBXZw9lM#P^fX^52oDiL6n3`qyE9Bqk%@r_01H zUoR|$$H?9E9NtPoLghNeD2%4MAAw(V#T5auApxy4XDZFbG69mOg~qxFP{g>09@%=Q zidPgpVHFZo-XPo8laORhF5o$kl{Xs|hx^4b_657vt?+x&==rhd%j`1H3_-7+8USSn z(3hpL<3&VXyxh7Ig<|{Z-EqkQ!mTs4Y)6v2cH}%&32GYdwi7y>U4U4OxgRCB&EvgU z-Zi13Na%WOOde&V4M9Q#0K3DS89J2r*IQ^GB1_We>-Fv*p(I%bTpXJD(7?N`LYa&q)$*mHbFcEWv7aFq|z! zK5UhF7&)%;VMkM>q-lJG0gHmAqfa*iS<$*jkf0Nly0~($dJy_0*-;e>FmK7Uff+(5 zl!UUdp(opL?E#5N)ZmC_DD_79@#qc;?}vwfx=v;mG>?tK{ghc(X(6^EB^zNqJI{%y z)W9mQLrFMtZpYi)IavyIwlMnR%y_aDadN(sROdNTsM*X4yWk=-O2*1kN(9rNTl1U@ z^li*{a?ryS0M<~+8iO7?!_Rq0pCB1ZIgsB+s`Gk1uiJRh8pfpre4Y%W+QSc9Jnx>j zW}|nm(o_iRK+sQ7dr`wvj0Q5M3|+WS;hg>K@a>yU`@G{x&KEY9qsF}8=%4RR5xaOr zk0z09G&i|c9z}qL?NbwlH+EO1hhRs z?LpH3M~Yy;6ttEdN=*H&4h1Bs;T6n%PsU9*p`c(c{26ADv9h9WKF1iC&z?X}Yz%{; z9|2J$WoR!dXClf<8~LWx>9MkmBq}lh(QqOdlFs3LCU;;uU_Ae?5A}x#YuuZqyPX=> zzG?rHHXBc!Jt|y0%0k>I+wc6JYTPaNFG0hl$WucM-T7T)!?(AW2AaK!Bt zERPDO^Z7E}5$HsNw93)1tT27#^YC-)^bCYRz0H_Cmdl0KKGH23Nda>qTe*U%X`x1i63YG4>ejbx-$O@WLu=1 zu+70kj^UpB-|~hE`V>xC=;{pwK}5{HJ?nm8nP9Z`Q+h1i=ZDbv`nVni1tE8;)%9Bv z1G}aa>0O9CqApC8H=qv{UmQXtfkFFS&KKtWzfY)2+qo zp9-*Ly4#{=y3*?;apqv1nFis#CALfX!_ne&qpwu+h zhzuy8q?Ytq)nE>G#76k{XF?nbUG=HJ0sCzBjD&`?j+dPI_fyIid{@mK`SnA?2*iSG zm(KY{)~xw7$D}3d%tcKqVUxWhRSZ?np$-SJA#Ll&t4=8}NW7(*gt=}sX%gHCP;rqN zma%OnfhirQltol`jT=*wC6V_lo`^hXNfY{$STyPxG7(qc>N2)n4)C3)dXo`tO^=a! zN%4BrvD#5w@Z)1H;r)he(?>_l5gF0?z=i7DYl`;m@1wXAi`Xh^FrDwXLz0l*Q5!U@ z@jEic2yGt?w2_r}4QtB*ZEIN*u`SK($l{XFiX5>0EYhT_$zbJu@gj%3?%!t)_wwCK zXUMx#pu%k|iJLo>>x7Wl@os&O0_Yj?#;7SBIq4N$LWNMcB(}3r=Z(lY?cJkj7*7!p zj|07*pE3nqKWT;qcG}>1kx@xdEseSpUzimFFuL1wGv z8+&FGdsUYlsP@?v&DS0wO7bs!Oyr01?tS11NC|$7DKn?p_J+x_(O}`qhv%}Ak&+K& zVH*;$kwX(NF58!3rBNCNJ=io-6>wMTi)8ZeNZ~{t1ILb3BGMOYtMI1&y|)U8-AMsn z@aVcx@1gg|9fd}leO|apZfcE#cKYgC)Fl>Map0Cq+8z_9j(ykE(W4+r8}9~X*}C)OLZN`!2#5be%&mbm3J8Z!JjYkk;p(9zc@IDa!jfF z>~C?0hzFRX`Ff|pn89C3zAk*+Z$4;S!1 zU8FAB)9NcYCcjMSR@tOZ%t8D5*yw!D1M`F*Jd|Duh@KwHnSnN4#ClHwdIQGsCdHYwrN~90W#lgrQ}rBiIGydw1f;*41J%1= zWlF=>!ZSdAlr}q?kmim*n{jr3ICO&4eT|el@r+%pzAPZZwQ=bE+!;!{Yp{S54qeh^ zsl_$K7~{$%4h`l)S>g2Lf<3m&G=F!gHYZpY@E*raOC7oDR%qoog!H1G$liw-$F-BE z4sQ%xA2{CuCAqkU0pqxb$+l3lF?fuPEV{zszf14o)d3H6yDTmQi_VAnI%~=#F$X}> z2VY5X)dA?TUdJg8ZZ7HzXLhew2QEGD5ApH(=b6M1PSA0?;C=p905xxxy;oZ_;kdRnEM4$;f3!fsSbT{JKWKeLNeMONWoMpY{poPQPMWs=->u}OW5XQvD3`@`-t+h2 z_fL|4^FiAdZS@1wBg!JsUb%2Zi;IsSCu;qx3kR|Dc%EPdKZo(X9g)AdUJEejq;q@s z@pFyO&0xgpEowus;MIF$mu|4^eeG_@2UaY!zkc!V+_}{9g)^>}U4-WI7jUa5Y|+q! z54S_h0-$l6l~n{9aqonMhAjm2qE&=E@m-ULIZ&NpWi6`;-~4R!fX2KRc`G~y`HBm# zsBVMYvHQ^Pu8{+k0G!IjP{Cj}eE2O@02UF=-JX5uQNHC)$OtP+A+KxyF`_W3*a`Uz zU8){E>7DSlhmNxFSB{GtYr{`mY2g3At0>o;|CmRAI|=xIjJx2{PljJ?XI(m*P zzW)dez5gF4T-4<5W}-|ln^f_?+4}B&c^!Hz>;qoXy_FaYA0MC9WaYcSL?PZ|>$P&k zH`M&kTkEZL7y4R@inf^sNIGa~<;Y^Zw{GNYc0KC}%_+D4*FCS+9pkR=YmX+y^E*o_ zjj8P-?Z8x*ZxK(rNdHSh;Llp(-$ltK^PpPo%8Y8v%1o(nP9sWBslrYYH@tJag(zMs z+14;~%~pfiX6Y{fBVc;eRtDIOf14_$MKgv1)m&C##`JPIJF;%_X3$+ZH@yJL>m8~6 zV|lv!-RRL4&kG-t?8@Gdk_FL;wG3c=Dciibjyfk_qEp|BO=!f#8X-~Zp~C1*^yS){ za%xq<4!E(zn?LUJ*iQOQm32b4<4;-}x5W+R>!WQJAc)d4k9HLA z$XM;Y=ccx>;={?0T|7k@fbQ#*$n zj*zohJbG@;tPk8ecgJ^}te&$8t=IV>Pi_I5rc8I=`>KGj5 zn+ZII{=C4oWfgx=mSfe}ML2F$gV+zO=lIR&cyJou~h2h=1m#A<;x9$mY|WdFN(A2G%q!bu+Fau zUm)JA=RG6#jEtbtByE-M}F?LOQ1J>FGSJP>U9&~cxl%N<$1=;2qsT>NJ}{QsG3XT?yH z&A^gl*4gz$GL|_;by52oGcH;sm@0_g4Cao6ROx7M9h(0;fQ>sLAJmvjRdSZ$-O=I* z=Bs(UxKI$b|0yZi2c25p2m1bdOICI4czlB-eYTURPDv<_MJU0zdg>yjqjnO%x9uf) z%e3Lj zzZVunx^`V>p89;d(b7Y2T1)u&G6@#wKqZ4-n)yg=-gH;Nt1AYrCRrHgB?%Z)?UZ0j zl<#l0DY}grJFpO){|SW;x!F_w=r75H6FV_-4ga&AV7!wk5I#ftbbo*SVpzBsg5~tS z9=Kr4fx}|VjE4D+qa~s*EKO>WutiHb1{J$$hyQoFAFDIX1usEW=@`~PkyK-7Sx^7h7N{n_CUQi+b2 zYC?Ze{NsPn2u0z^GK*yHF&^tkLrxF{nZ94>a>ZYM9-DVhjfPzd>&R-@2jhX;gT_Nq zlDPmBeGA3zOog54z&#vK0qs_dFmN0u$6V5;csm@@O&N^1j72gmZVZHzhVHW=C-1h{ ziD`X)y1NV?pFpJa4rYrVvn_G469VI&!p@%D^O-)EHIR!G+b>}~4P zS=MTlQQz}Xvh71SiLv=CiTnh#J^|OZ(*qG zci|;d@p*0B>N2?E+v$tQ<(2-?qepETU+v)ITeD_OG@dbss3g$@a+!^ngM*S1To)&^ z?m%JbDXh9*{7R8h1YJQU9Pj#GRm`16F*;H zi}DA`G7;ERujVxH+eEx(r+#b+p$@Ie6qFfTLL70a#BU3A zq+Ga6U6{BTKTF|#nvs#AtZ8p=zj^cK;`f3CE=pN&Fn^E~UoUJ<=3R8w?iJOgfMy(z z*Sk<<9xPWs#yEBAl*pCNcT%*0)D=9-z8pk}JzzYxK~fo3cB^GFr^wiRd$MAjLCQJh zRxjG%Y21nI*jNF0RQ-;x7i(in;0e{&Vbr61+(#=UDMPu#*cmZJtLMz^5njf=p;&|( zvuzU8(wO;kS(K^_RW5`wNjBvICKoBHf{HTC!jm}X;WnaduK@h8;h8Eg?oj?{#IU1* zON(vhF4A5{b=oHEfbT1QSku4Xhp)Af$4nI?<(OgH%mWqlR)>RtvesTfXz%Q~dWnD+ zuSt&M=R4Q&XcHfjk{+NBU}i0E9)Qgo0%vAso+l*OJpR!5=(xK2)0mi@f4(?b6AJU0 z%e#mhYopZ&C-vpqq6;kb_u{h9M;t|a0hj3K=XWfw*5^C}*6Wv!d@X;Pkgy-Z=59Vb zD0I7e1S>XNA_-sW-ehg3oRef&bz5`VBNCHV`&hY6hXUa#;0>R^9%J*0R1c{O=12 zj16%(+(|t>75HeM^jfWVfdvtF*i{RJw!Ao5&a$^*xRqPDAb%g0F`e-o_w-2-eaV2L z<#vr_e_iKP-Jn^b9Jl_%-p0lU#J|c+8$Oqq$M>b;vFIjlN7c|2mkOD6CEJF8CjAH` z066MEwl6gr&*dw)aJD89MrT1?l8d~}&z0BQ-2D9cb6-ap5|)&<>56$}?y6GOqpw-` zlU%9MU?u|kauGqPuV!=YB!rbpMzJ9M%mTFM{X%%a^&EDXY2UM-jM z?Y-+a&N|J0lnmch^ta+;nHiAC+?2kW@|$$w+ZRbmK`&uXRO>aX#&3=IuPQ6np>LRV z<4N{^xhf-*arnj!9TStGYwsYB+)mnzwfPhVk;)}nr7-pf@^2p3&(~~4E2f&`et3tf z)InG?taJJ_hq$=-VEvZhL3Rs=mC8rFDvu~w4RYp2cT7~=X=|QK-uGiX2Lx3hVpb*X z^Wiia+dHrt6OjZZ`DMX)|MTfVf06E-8fMLz*U07*XjIvzE7$4zu>ZxDEnDtr#kC~v zlM@s^ZrQ24w=S+WGS{nn=y{%l`sW0%cv4PBN5}4c`~0t7y&7Z34%5tlw5PQ(+68V= zk0TS!%S;K&E|0SM*UZbTggw;jTxN`u`ueJnS#rg1T$@pvE`ecx?&XsdT-G1m_t)Uy zq>jPXuV25)d&9$YA`)cbdd~Qxnf=Br#qOO5EY3JXe;WK7Gb`U;$jXlEe>z-qPw2rl z-H~_L%L04Zw`AG{jn&r|JlzwaRd#j7+UT^jL&uLF=evJ=moozxnqZGwdnqw!Yq;O* zM>j;e(*}xyV0Vy|vu}TaYlM~dhX7Rn5(JTUzG5f*BB~4+os8a32e13pxL$#S%gMIv zU6=F<>afO;a_`;0uYBalTeE%;Qr!I_w_*hsm7OZ6Sf~Wg5 z+e_IR4nRblj>pZ_WermB)7%|-$^=cOLWYT2#bnJW>Mj^B&gNXF5_6hzQ}_{`+k_Cu zavfS}((^2wLri7{qd%agre^n^J-5&z!g82;yT-dNoBMn0fY0Ebp%40_{N0*%fI+|q z!P@Yy@a| zA+QHQ2%@Y<<~7Jk&$nIkEP8lmbSFf@D(0gGm@yqZUo-+>!xra$zp@Gc*V5Obw-@x| zPrR52G}f`Fbse*_Wi)U;d-hD{&p&^EaS|xyGR&7(zhe(yhC~A^wyhQgzo|zd(T;65 z78L3QMc4aiaz=*4-o1PIBD6A%^xd^g?tOgcfAXbvjgXZ^=N;VBj=mi_Zru-_pQh`D zIiVeGzLtloo<4mViv3O!_$6Fd3IkUS`@Vg#JM8pU2d#4X0Ry!44cq>W&Ok2QiSwXR zr52C!z8~rcQVh1b%TF|Ra&m&r4bzQurJifwGd(ON5Y!jyn7hg=BDg`hZh1>fL1kg# zZeiicBj#|J{q3bk%g&=2GeHFYkkvn`5VTNHn7Mk1{D2~vcoy}!3+-m6sK2x3jGCm&mI(&=jwDuZ4%9R9|F* zZ1=+o~EqdwFC73ikEy5qV*7;qX4UaLB@4Q5A+%li~Ch&B$MaZsQyY3u+ zb{7i(p?Ozpqtl~-)r#5~utiVSG=HWFQ~sXn)J{77AKAhE+LE$r+$-&-Bg!xQ=L>nY zOwY#8Q0VW&Bhvwgq#NnOCU_PW7CI+R+-9bStC!6uAvY*$qf{sTB9ig-B8KbXe_h3f z(!`y}q@QKE98&Q~1rzpDEH-wTv9DeoL}=&LR*d(7qgg4m--4On#2EqEU#dy4`-=+c z0XI`J(8KgZ!^$>uDhto8|IllgL9VT9Y|IS>cCdc)hQ3W-*;#^aJ)PM_!iJuryBeRA zdqsrMoS(9Pode`2-Co*uw2{?&=mJPWQ*)cr;GZgeU7OH0I^C8Gu*W#yRKUg!SfRqy@pa=6_&KCYJY6>Ii?Npf=Dm-$uKX(=~- zEPUu-IAK->F>CPZ>|gNFKBP~ZRL>`ju4Fm(J+_$!d=FLQN=$D2PcYnFY-Y<#ue<{< zc^ccWnr8FWVmnj|$Od;Z9zsa#XCMg$L>9C+$vO_5@2lW)qUOaakNj5-OrB9iFh^-M z=r#ZuRGn&!>wX%EuspMMur5Dk-(D=4t2c3wkrT6sQ%ItySMxG|6Enl{Cn+>u=oP{JHPeg{T(hGKs{b$Q}vs5#Hw&w2p%n@7dVi!qqA?XAbGM4EtA^&Bv9 zw>i~1KFzE8-G)P&>E9{ZoguU(Qt z%*LjI>cocSm@&S>z@6ymMZIV%G_>hf?M#RQJ?l4P=5gZ|&;R95VF_9CsbJ#L>bmFe z)m2LAI%n@*Ktr(ZB-w;l65mcO@J_pI*Oz%Wk5KxPPM%Mk_HYT-p{>j>AW>rY~d1x6opZJgDW(IIGD)Tz0B$mV>Ip=6m zI}_b&7aUT?wu{6@JAzpJu@Ct>$^f3&j|a;OaKV=Iih2uWe2nd$e({exJAEjc$ zi=UQ?fw-evu&r56R-fx69SsR?bX}42)o*?F^!IUgyp5}uOtj)+WN7u@DWd!vD4Q3c zkfwH9dlyt9-OpCihz z;rhywAbObXjI$@-q+gO6#8V|I&`w6q%q1g6Afx4cbJ!(f^Z6C*=GXta_iycmJ_bLB zg#&SO*|-id-o3sHp=(=T_xW>ip4(`2US8{}8_U4VILeJ3=o^`dJ2$bXD6C#}eJ{aL zoogpdOqrs}oCqpCe#mz`o*a-mXP@(B4JPq}+Se&71hQ7m+bcJ9SAg%DQZ}-!%X5hYuf^+qi?}Zi?_uKNYi$fdk8{iF$qw#+< zHo5!$JY7gDz2u$O9E@}g<|*Lzb(q`UF-3t4ciLL&7v27_dIehMMfl-0bW zDWmpN0FO8$*B^hs8TAF`d;h_`MRBVzUrwmYw5~P|d>@24k9xZVs$}HBO6ci8{jKvm z6{6kW?p5Y4Ed-E1KK~0;u-I_zj_O39U%Zdf*9fC%%W)&ydZ9B}2OkKV@_fgoFtT!g z+O3nE>mL+8MECqOmRa`R+#gih-ny`ko4m=sq4l=lhE0dEmAUB#2l)C18o87PDi}BQ zxedCxkH;F!l_gRK9y{(ooxNu+&%&zKoTA#P+AA9zv{s9k)r~GYcPdu-}% zYyC0zY3!cWO|86oHUSC=ja#=UoaQK6*z z(#-VOt)u7OMahM91#hdt7fim4xARq>D-bl~Dwr4+C=Tc_)9fGbotgTGFSyNmy_Iw8 zM~R-P3Ys3QIrUQV3gEm$jvg)%$75M9=Z)lv*f$sN5OJS+vsHArqy&^+;k?(ocs%Tn zstmf|vn8~`q+;sc`)en+edhb(`u;RLoGB#uLUU$P{*DI>d-cO(V_`xQ+-}8h5(Ey& z&lVCMn-FRRH{4oVxs_EgXpe8ZGTodWJ7YjEotP@FsIm+nWek~euRS2^RbZM+hfD^p zCoBaoH6}3Zm6VWqgtikDi&*Qe_m#OYuxf4;bz(-$cgRfW{(O2kiu~8<@#}KT`6F2= zI5eC2_-?MR3}om#{~4g*UVUUxe>_azkc-w<7MHeq4UgP@;UPwisq$B1yy35y)JIpc z&VP-a8hsEUVsjbm`L(DlbDI)0PnXQ&K$<|Hl*RNLt&7^u4ak?vvI%tQNP0H?ioUlBI-zT=iRNe2~9C>{|Jlh`U zr1B;uDgQ}{V^KZYr(N@FvG{P<#`_N1AEoB1Ywet;&UgqaX0StZxj{PCsJ04ai9G*c zYZrLDAlIfiZLZ&8mw+2_T3dh5-L}nWY_dk4mcbToGeoGAl|b0$DWmLx-N(NC4V>Ye z5Fz;$ik-KQWOI0^D&>9q@E~DgNCVcoNt%f6j}0uxuIXueMFE&{4qUU-5z7@DuC$I7 z{8~5a)43J_Fo>8Bh~8k{{b6fsd-CK-C2;35lg7gHc0anq{^BHIze}tn=l=nMRquM( zn#F+An~ho?#3~dgWkPe=)VzNCkT}uRAb|G{c{A7S+)-gvcHr4r5c;r{VxSRYWVjaJ z_F4>05ua|){-=VOv?+A2&2dn>teo%%9?wn0z7Jq!CFj|lg7B$tcO!TXPi?Ta1dtg( zWK4DEB)H3L)^Pr{#~501ct+W95}+dR3x1WYTXuo;uYJRa`eUm90>H5$PLge2PLLqp zq1P*9YI}AaU7@ppx+`)(`g|y9XMz;f?FTW{@#CK_Q|Q`xJp92@-)6oVGO{9ZQnP4eK&uKD9QMkuW$Yi_FXa!L$u<| z-(Fp@sHIJeo(8U*9JvkK3X50Hc%0~F43J}$O&AkJSIvVDf7|#qUyn}SSxQu4QTT>y zi0hYKCmksjOS#;hM!9Kuor{0sSMGh?kq_%Omvl*BE7nO>%3HYl>?k45#9l!VSxn$S z68SUL$ubphMZD>A6`3KglA$S=6?KJdx1PTQzkgHbG*}Lfyvx_IAHV(G&8f)wn;H2! zOaR0t-77d2@-{s#OA>*$R=yx!JXU#FB0>&rkkG zm+Sn_PP4GP3G#pcDdkgGnhXDunGDF2!fF)ETOmW(bb)^W+T(-WserxYh~lkNsrayZ zp+7EjW)5lO+>k)&&6pr9XF_u@Zexp8%^RW(GoSIT*f5U>Qo5Jl`%fzmXi@J9 z6`m%^y-7U3e-~*_XI^eEG|2aKoA;%T)YvY^aNTa(h8_5=%hb^GO*aJSD1$!UW9CNH z?&jv?m3MJG%oyo%Jy!yI7Y3uc_aLElvkR^(ZL4UH@bJ^8H^-`;draL>D1pRv__|9< z_a;a+ZRn)Iayq5iKf;){VshB;gsQs#)K7dswM=#4+W(eYz6fKg6IV+*3%k*cv{(pE zBdnh!>&690lQ6ze20H+(GS3)>J)kVqE+Cma`lrelDgtFq3=f&1nUB4iWjEO;6mG}a z)IM45;H(eOi&P7HIa?;s)_)r|!=%lx6~I-o`)M6^xT<&<62<&xXi*I>laqsi)4|^S z7c-MwZ3=dWiS1r9lH2Cv+$&cp$1fbjSt~p*-Q^l3s>RiUe|UAbkWk>=yLXR0`;#`k zAA|7;20c7&IIW0SZ}&3zsn6G4BttzSL2~?^6b0tj-Q>e}SRFktk}{q{npFb-~t(YilR_wqWA})x2)VkwxJg#$1ZUcmuKhjR2@Jk9+NafE4 z8=>K6{dDEr*K68|!Ts`5d*W~1hvE#2&6JA2MOQ|wYYKtZ21gd?k3sVM{<*Oc!nvu& zcF-1JbL{!0c3Y)S&q|}c3TJzP*m#@7ftJ`+5!QfxlLAiORKvbC9mL^nyT2R@tyu^Z zDhs}LF7s={ywHFuI07IWSv?8^$#WB#l*iUd?`6J7UAeG#EmY6Sz>QKqg*l=#!qx|i5G`G@xf-;_(Q6@q(E4K`SRsaYvZWrRO_dO zeDYch_6?JsZJaij4e!db@2|}2+^1bk$Q%ejC^}W!)d-cuYeU^n$?h`dS2`x;<)2;T zGdFS;KUA7ba1*06PO(luYLK>eJUsPzCU(4{;0z~ursqBPMD5|R=_daTqAZgm??Jq%&Yro4SAl)`6 zBB`X+l@gfZ=HMJ+g&qX(K2T1dd{WDEgh&w!!ex!TXao^0tb5?ng@D(LNk`p-BT#@4 zy>dFPfM+D#;pnfLom@LO@jELOU}LFze})AYr^ETKRhP?n<#zK=P5Er$q!f5%$C7Z2 z{!nYtt9O8`yKK#haRPG%*09_Q3*Co2n>SueO~ae#XZCve75$!V|E(_RYQmnIA396h z%m9NFHw?eGT_ZH-R$eLP(#9xF$4l;r4ch0I$snIB`-*SCD(zH_4WDJA zl~}BJ#xwX$tduh!l*99NvzDh5OzD>8n*-qn>zF9DVJPm7{VeXrRxifg zp!QDVA8|L@6$65_ySF6SQ!Jl8XjcZiqy9g_-a0JGb!{J}K~lOwX%rEVPANfA(uD{P zt#rfC-5^7#pwb`$(hAZY10p5TT~b3!*Y6&}wf273{=WG`k3$4z?zrNN>v`o=XE)pZ z_{ieE+V|5+12ov!AlL;pr;cp9Iaj04k|v-qn*j|Og)ElS>ary0*+%c!Xn&V{zUP(b zjO=P3JxLn0p0sz{D9lRoegO*mi^>VSfQFNO|XX~iFdTnBHH;CS*%2?|m z?SNE{!%h(Wd`CRxP0d_IAepVmsH#Wj>pwm?)OAA9Mrv#RY0SQ zrC#3p$S^b|0z&0R<^1W-VoAG)(sUAB1&v$CMnCfQ1XYQRb!0|P?*_PX%!XY*TQu0o zn%_>L8+C#%h1^;^swQ5qvFoIe+iQ0;`TfD*00JCy@bwwSPU;f9U5_WSMrUP)r;(>P zX#Ne`zCGHQza?gL6mmob5HDmiBW$jC`c}LmrIGVZ$J&;f?172E_Qu_=<+kzBm}6sj zHE3~!d63#Far*(Ijgx(EN}wlY1;aZb-G90qq{$133xp@UzD)y2&J-hL5sf5I2i-4X z@_!tBc#fyhlXGTx(_EO`pOwUVWYUQP2H0V`mQP>Aw=*>IlSbg;7K|EikfxZuXqlI?fpZ8=KlvP zJ7d|dkXU250nL<8CveSEc|Y6H2L2N`@2d%hvu!|*DZUIcKmcOY^*;p}sY+QBkx?zd_EJA zpRK*Zzrx{b@lB}`B{qn#Gn~=lu$JM*pP~?1s?ecXZ&2SP$h%0G%AK9uhJU|KI& z!5sx4T|TlKvf#DfvnW=R5Gb;7(3+o)c?_p0%s))?O1` zuF@0~EYLPN)Vz~V1VQw9g~jeC+tHdi@<39=LJ~U23eX#3Dr*)dnk)EXBt0(9hP#}v zPbT=_o1~}5R1It@B$dDne(}P+T5m`RfLi1W0|gMRJXH9FT3ifpv$*@wu`GddeA0-R zP_!g-a~}N2o2q-(wB}0{W3Z8GcOh`pqu;#2eD{zIIt0FZhN3Y-PL7$KPsT6za8^-o z+I_I7riNjEe;>RHwYyRGMp?87ugoz6U+=7C=}DKc!yXsPwXI!?6y>)!q4&?;f!r+n zU>lf63tngpVj?h4KoW6qbMFY>V~|80q9zVWqGp1Y%gv|{+1(7=b#|d+j%$xjOzgmR z2Kt+O)W|mgrpwTWnu>ptbirbbqid8}_6}(4WebN85)(&A12vLC7?1c#<|CXKj8F*h zC?j9{s6lk#`@tC8N#0pus1p>LR#Jm!ZgZJhp6nQOWGKCk8fU>T5a9Rp|1_)#w@1+P$vrB+kN6Sns64A} z^5iz|gq7?gNGaToCISoS3!~bM4dWil$&uNfZNEDe6sT62n9%ZfpTT=h52#S6Y|s9I zDGk-2^>UeIVMZ!I-VAP<1S~pO@RdmE-32xKk$1w{>v&CUQ=6! zB%Dm8>}V(x)=y);;&ne@;d&}e?fjk4B#MR57>!WDJEu?)(REaZ`PV%`sL;2=;Y+CLT2I!vjO+~nav?AEt*?z zi}Xd=RN}cV&mMSZWOu3TFIGqm=&OkQ>ruj+r|lA;@5s#Vt1GgQHgUUlKfE;tzHIlKhv03ZR1RfXgqN$YJ zpCzr@{B~0pUcKF~V;DzM2vV`?vu6mqm*O61py#|QaYqhePmeXy)jn{J=0D$ zfuiozQw38}lpX5`XWXmWwTr&x+apo&G89Y?Qoh*au{)0~L!V9Xu%J9t3t}3K^e-`z z{_l--0vlVUUlx5&-M?+g-c!MZh(<@0*JOz$(<*E|G%5)8eRr3D?dB)$Vl3t` z{W0a*w}q>D?EO-M+wX|g>I;EOW3R5~c_p@m*2aa#vuouo$J`nx^1gzF6hh1@o-Y;i z$1h)y4^jYt(1x(`9d?YTi&Ig75i8Co)gd{Z)S5i=b7#R+O%=|~JSLACRwpUmgb?wDI z{_bU~|9sHTb7a}fl^YUH_oHa#CBe#|10t+TfP-Bw_4Z%uOJ`5{n;bbu?4A(tXh9!xjSN!PyO|au>OAd}OZhwwRVCtUK+VA*I-x^1I zI=t_(+$>U?E9fKWp4Fx_VBPVohrpQS-lbC2v) z1GZ)&v5@h)l@YR54r@1|P0{9&MW}~_n7$m&JN?2uOZ5?_amIT%AjQBXo#yNYFyVUq z+49Ex++2Jh4`zV3HnLw6V@B(_BiqF7+ysK;725vq4OQjDgGYzvaJQLe3sXKPSX)Yp zRHaMv4d@k&YmU?e ze)8>Se_%&}X6ky6Rp#QukPI8wkUM|glLCQ^}5W_@Fk1+&i8jHj3%^Qqrr!QNbOC=a>cL? zgk^E~Szc`Amn9USzFC^~!RB2R^w4*qNS+}H^2XcDuzchu09B|J8*^~5>5 zF*7PXFO#xQ?`v97IVt$7Vbm>MY#g!pD&;*}b8)LGR~bYwD?jRm5+%28QQA%p^l{%; zG?W+$PTpI5WOlrps2$IbKf={$Q8p(oobl=aCfFr#`z&A*xuMXN$?(JrY5 zF3~f8Fg(9%5ytn^E)kp}EwO^i(O)a?-)UDE932YOFB=r>=MT22wpL>kT1r%#@_8Pj zSe!0DujSq`0zX^Jw$f6uVAoWsMk(y=(Dk!CTRkvG^`9Yr!>j8m!RtQrX7FI#^-i(1 zl(e*lIjRix(BHoubDx#Rq$)7ckmC#e(E7Y9bR|Un0mS+Xbf*rSNKbZ}qUCg~OxwvX zYhJz*6&Q-L65fm^mZl27ypwFTZPswgO;?TM9Nvyp+7@M_uhCZ{$b`A}*GZOW3JjKS z&v=M-r3^!{XQjcF7 z2gLh+24@K$mt`rSd@s&ZC9SeIsIcu-6L;`=^g3z{7zeLZ71^^8#t-$}Y-4wsd-J3U z=DwU)+Qi*g0I;7%eV#hQA{V+$2%Efi3>k?Oj@d2cQ`JHb`+;izB#U{y+l_@QRYv=Z z3cr|Ud>5_ZBW`X*$F-+0NCp80^HoS;kgPzy_Ef^Je-Oe@oOzX%E?;i7IxWRQEVgC}n1D zb5O_zVK^s=+-sDRnT;@uG#&g9hMS-4mw2*k1n^nQHzYfxXTyI9PBg-xpin&zr^r8} zYiSv8-8tVVQ#qitmd@;T#TWhtBF!2xwdQFrOD&Etp^&Rfh<^D=Sl^14j>>I@-sF2d zo#DFZFcf|B#UNygDOk@PDB3Bn4%`NHL#xLU8CaPD2g1j5loZC2PTw-YbZoMfs*n#Q zj1h{rYIt<3g5JdAGM{WzNtR zJZtpTcoIC%L^?In3B!E%faN>Ewi%wl_s3-FbWm zf8z4|-ISc<{A*gD*d5NcA(M2hoP_RqBN{I7aUmzs*c71(XQ#B2#4h}!>| zZLmURTIE8p?39ex&&eLFzv0)WsQp0>6yP8{rq%R>r6p2g&TQh=)=`YfNC!6!iWzrH zF`%O;4>Z<{D__T}zl$u|zh^3o^u>EPvrvq3JN(o+etz?tq%|}^edW5E4L#Ee*UFg7 zL+{}t?+1n~hHFtG4MoRY9Y23WOxHeZ2om@bv{FKC_RorUx1xrS0&jC`E49x&IyM$7 zv}reZJQQImNV~bYsj8+n1%0WW9UznH(_`u=_5yIUF2~ygLp{+UK>>-hoZX7Dtb=bw zY2~rGh5O%)jMY+ymVCj^NEW=(pD`-ZY&5T+LN-O3+FsU}eRHOUG-5EyExz3o+_!p8 zWZvLp=;oV-pa5uLvk~re&|T z#QP+Qcu?$`urph3ez@NG;Jiu$e>$SeUL-Vrj`Jpnp;8FV=d8y5VK-D=RM2G}FmPYu z&i6UtFB$EelUd&4SRi%<9CqP0hE*~nV;eUPy7h^tfbwd^z}zUoqX}V5I=umJY&%~2 z`l?Xpam2!&mR&`2rgcn>+eyck^1Rw+u)Lqsj_Ty+J)OeEp&Rgxo64n=gYz$>L++S= zdj#8<%Y5j!wd~!2HPbfVi4!|RsSL%{z6a_E@QVxgr^=O4`{Ks;arfirT_s=!BN5AK z33PrSdfMa0eq?)8Z?Og;tLg^@mEjnX39dQy@?#Bu1D9vM4bCH~8uKSL!~f`)UlP6S ztrOoFG~z~wZES3~fSAwgdEf|0Nfe(xb9vAy5Hg5|#Ke$fdfGcU6xmEjVqk9#WXT!2 z?M($oCnUVw+jIGzC^m3gW*uKh{o1R*{gYqUn-xx0i@E26ONkcu)E;oEuO=|zs8GaL2aAm-j()M4(=l)zZPzlm%?iqd|c#)d-BKr8G!b|5wL zed-H}&-aM}Ur~enLDut-7@a)XD{{VvMygMTBCziPAL>aF$k4XaesW}dVoP4x$hO2)u6I5J7B38*nE77|8SMTY(Z1??C|PzxYy2&* z(p6i8)GoMBafyuB?FWw{d!6>Su}VfZmYy28Oiz_}A8+8nD~#Ugxg#EnB;2Si#OZ`c z-2Bctxv=v74TDw7M{Jv|?D%whdz_srDx$?l`HW@IZEc}Eq9n_5)`DMrlwZj*2>dN5OuFd*I_Nex{8^>(g@0rj4MvBw&_L}#lWTKg zI2Z{(ExsZhbFE0}yuD;K|ISKFJ7`p9&<6_jpm8t9rbsnXFWiq}C2bcv)9r~{F_Hg#vywv-} z1q>V%r#R6BKbw9VHw*|0s=n1Qe&iOG65HKM!}t2DsXwF`{FiR)7+9|a$xuuS8k?0m zhN>4ndotnMv&mRMjoCgVRo<~|F}3u*dh3+?`ux1P%c~@kIl)QOfzy)wPgdKNQR$FP zhg`2xtXe#)O!e(Lodf zCR$(hY&kbK(b!u$SS8vko5FzJ^)mu{EL|`l)=wL84_@U-FX2YkC3(p8knNSerJ9nti&mS{vff%C`{+2VEe_T~-ZzPZA~?;&88ZaF)+tsE}3@ ze3A2#X5Y7l$Uf)s4KCd(s&I;1GLIjVvBdPa-`(naqPI)2;isp>aHKrOZta zTK=@lLgS~EDKkll;8yh?cYDr9l~IXI8_u@6=vQ<(wKWDpu8$N9CA7TN2`tGn33Mg+ ziF)@3(_CR7U53zo01{z>@QGEdqIWDN4I|T0DbT=fm!~OLIUM(P{xJFe4Z>!fb9UjD zBd&05|8_*bS~&x=ynp~z5S*ODqm)3vY0MhFGG0xqk*VCgTeB-sr1X*ZyQLtWUobRY z&}!2a))6l>Q;*Fk_xSNoADHLn?0tTI{xWedJuprHZ0Lq)a+|S?y*;0<_puY$NK_O* zfB)#DBp5IN)(;L3Ys253C?^O{6~lZDaQOk=2U}BV#u4WmRh+r+--dhKsa;?3S}ao- z6K}=*cBx2SxOxTQFQR)tj&v}t!)23&jAWOr{CI!uaA$gkpf#&D!hpRc;6Vn-A%9CA zY?b?M?tpFQD8ACXkm(|#uC2ulrA{HPR_03y1VIuSa-{j=rHJY{8CC{A{zRhvjC20h zYYk!szGz>?G_`gA(^pt?-)U|1UC$82^Zr22E8qe_WRlX*(*s6lH!yXT7K}28@~K>_ zp)DPQ(i-y(h0r^9B}p(aj>rB%^YHaGPd_ikk;@M2N!-N0eL5mjFovSwSAFM0A~ev3 z{_#5rdvTZbl#!^Jd`Klm`-6-h&rKer-R+TD zcUi06H9R@mXWo(61V72|iLPt&{06>Ij1+IFbN%oTI+)htINgU%scNS@n0MdPg38{@ zrE)}srlVmk`wcO(``Ydr%@q{(T1#TCV5R*`HC%Cj0jsp?*w_<02@<&2D*d#c=VGc|{+{`b=BL0ulaa=k>teMea4O}^;`s9boh z=r;WA2T(}Nf~p1-8UDD!f}m{tSRmFjI2yXC!Iru5LTT4$9x*|z$^~MkzV*tzzpQR9 z(dHSk6%R;}eTpJNxPksF?YHSx>HLr@J??EVyl?JT&*B5tpxMd~A@AtX8ey7R!|o7R zTUVEYt}cT=Y*yX9(jk*H(D3(o;)E$b8j2uDdv9(&K|>K0tvOEk*t?jp!^y=ZX9%7^ z@1?GxQRKF5ZaG|hg{?QDYn$!W6*!FE;iVb}Sx980f_!sn>LG}Kmg7}J!~qDMNKb~! ze+>ki|V6J1CT}%7sTRXeNI8mlEdyj(AMSZZ0D{eDy|5A>};u+ zeToyicXDTPdW44^Zyix17Z!|qZoiw)} z_FH6GR=lk3qqXZCZQ@}j?xE_lw1P9tm}PG7tj~l!b=FU^zhV7kv|;i*rvY%7!|($4 z=I{ZD0oUv96x2(^N8o)ovO6T%66b1_uOcv zEPCEfQKZBwMNCU8_6dHIlhba9v&WQQR3-}g?%g}sdRn4(9(1XHZ#w)oZi~dhLb@NI z%D`+6F((Ic``Hi;`rQfd(=1&gP^ke*1t4C46k)KREGj7>7fmFj2yb523ZmsywR)Hs z@kZ$*0SA!Kgso2e@Y8T z&~t#K)($pCdP-$>Rl45L?CiT{cRZMFOh7V@oxB86)_xGeNE-M2huWe;#P;8L5ksFEF zB#gHa+NXi3Ml_+t}^2GTjN46|y%A|o05I%DOG-sIF7J$#4{ zMrx=Wo(^~)#|`)}H%5>xgb_Zw+vAI;IzfYVtRkSQ5Eu^m5dyG@R-cx&<40&|uhom% z+3cwl2YU>Q^uaCZUfwp0llZv3^0RE^cU|Qq332qP$l>;13C9OFaFs{*#%;$tG&V>( zm^^MT2}0di?9*!wNVp<|yqrlcKyHO|^r2PgGK(LB2M{{XtWP!WZA5zGmuN?Tx|5pZ z{^XJGuwhXO07C&^hGOmLTD8?FRxSAx^7QGVef0}voF6fJC?tFhAWSImR#5_g|wcm_hWk?B`a2{_NCrt)x+?93LtG-@C1>d^4&C z%qn|Kja#Ez60jLu>Q)4w_+~keyJCAEFY6`t$9KHQbkfY}BUZ&HB!n*QXsN6Fft=1P zyw@`SJ}3xF8ixdh!DC&z=r(cBTO%TIG$EOu-7#lIid)*VJMJ@`oyv4#za+csY?=3S z8WfCpO+L*F6_{OSgw>G(jh36BpHF5lWRPhe74a4B;zOs%S-%g)YD zS8oIZ#zw7kK7F#+exjy^st0PSE28&zh(yrtIysf3#~T6PbT6H!m_qEEH{}TK`}|2y z&!R9bpva)KE=TLKyEau(;(B3>>;bYQO>2>Dr{CX+wpm~|aAc6_cvE9LxKl#ut6!#} zQ__uq`&jpRP_clXUd3yOFBjyP?eRQGN$u-6FEk;h&r9WLN|7X>t3Ka}`jGEfW_~%H z!_rUAAUf0p0Z6l6?WcO3KK5=)E5>LemX5dRbB_$Pc$W!L>SD}<@+;M8g6?1UXvAP* zQt_f%Id)#z&J(J^uCmV~j~nJH>o)i6IU@3K+|MyM9<5pV&8y%%@qyZ5-4rpV_33?k z9dplV#rn{MUG==EAB(hMoXmLy_42u_--x&)@P1TD z2CabkCyZ3meUwtM3OzZzhA{F>9ov+uHVei4qt}JYv7i*U_mVu=mGS-7j$P%z773`kWIqAjjr0UJw<+pghtOpSg6ih2BA~r91FMSIQ1r)>O z_|z3kVS`T|JP7Lrhq{YssV3%u0yj_3;2?*V=2?2D#9$?25MRI%0hw2aNAk{{-kv$) zvL1rJUar}M90lgorGwH2jQxke^xU0=W9GlalSB{!Di9z?w8jS4d8$q`fI%!yN@4NK zE>4TGMgVT?Bdf;4YR}3(HV|$#g(KeGx%Kd>Jsl2+rwpZW$@|z3q^xNA9hhj$Vp6VX zd74mJSF%!d#fdu8P5=PqjBkHgs~^nvkj`00#|)41-0ITYg>k!~)1?7Go@hNyzjefMDao{mYVCuhjLu?BKH+h6NX12`Mj z7rrW7QsYd?yqAokG6)5zDAm=~+@&hXd?yT0TAam4Bnym@zDR()fAM4wb2TgxKXCNe z-}0}L2AJa_r`o#wsqKfG$6} zuj7~E?cWV9YJ=oPfHawr{Hr7n^i`r*<~zUZ2p{u2e1zUp+M5cIm&eT2%o#y3^zy3d ztw6^n1i%Hs-X3nC;oXtnZW4w@)y@pIrKjnUk~eTfVqd@32gu*T>M9i1EMK?UE$Yde z5QHy0EDX1F%-_iRxvFnV^2-m@eo^UwsOaxxP?W7be!2nJS>?lbBb6yQj7gF2mckn% z+txbmywKkSyp31eoMMIB@4xfD=G5~z`Pc4qI$79kfw<>N1$2eRnD5;nD-3sJo590v zo8-iHGlcmyAK8|5QrH^@fj#9}$EHW`2s8LCTOCM;iqtU~KubWdlz;RnVvsdL^v#3745hf~{K{3ohitMI7B_bgLo@uVgNxk8 z8R3wX!C26lx)TYdfpWtLqB})7c<|E3mjXqL!aIC`7YQdiDLQ6&n>5566G%FRiaU6j zuIXAmalSt|!~^IIMVn2ASkJY)jfHgHJg;BL(m}W$-5LYXJ=QkY8d2I~Z%&UvZO~`c z$3$OQ&i)wjY`&~0WoUH9-VCe1N~4HpCGJV2l=TlqQyqy+0=qGTn)PusD{&wIZH zjgM1|w0n<)G4HD5{VL1PGW6RkwC@1ut9tJtnWOEf({DbI0R?A`bi~{-rsPqyrqf={ z9KCBudA^wWsQY;nPQzQdnMWqhw{cH1o96`IJP_bUgRw0OR5^V_v-vBTN_~LaJ!`{v zg#Rt8MxiV-addJ#86PodT6tAO$ffk&`sB4)s7{!-gtoYWHcBk3+vrOPJtjLWWwMDl zSMzpL7e&*TO6CYW(hO2wwQp+?7tD(OW%@hNOHEDP8{e%7Uh`aYhdJft$#dw-;6>iMZU&TO8TYlLIg+5p1nLIouua9w@3&)(4(fhnLPCO?Sggb#6%zGRHDLb*=7&|{i}ZVs z`RkFNqN{vt-AH_wTEh_5y2jZci_s2>98le&DAuy$BGLWWaF7{?pWg|l8V|X&tkYqv#uEyy+yRKS-j^5P-oOz1rSCUR>7|4}bUusZ zdRQlw{c}(Er)3aLXh;jHI~>k<4{q4L$vCaFCAAK&?q0!r4dKJ>KGcp9xC@Q@%S>WU z0{9*0Ov5*Bl79Yszi2P}2Iyt|>UyoeazKfN`7qe3{2Anbqs18Y)Qz=GerKTc1&VO?1w6hg#eMxb7O?hqz)zPMqzP8&-8e0{Iht zLx9k1DDAAoM~(FyMSND8>GI~+P;LKcl2cf~QE%0~Ub4%LE2>5q2q4Ac{DXGQrsh@% ztl+4@Zxn4{?6Jk|;>xjtf(vk;pyC&~v%+*>X{VT9DiY3bYiMJLgzN`mvL4p1NM?gx z9ekazU4YI;GJ8pG$Zp^|9GGpd@x=_hNsyP9FGu`(`|e$6X0jIzz=5rItxQdQbPE*Z zqbb1yfxuz37DEf;uD7o~D#uyBnzDRr*)FHWJ;b64)GXXXJw z{inSw8l7fv{;Hclq!rA0K9gh12nKwT40 z!Re7T4(KsIp_eYR3U^YYCR|$U!RF(|iKdKfV!os-Kt=f-3C9s7e6L-hwjbEc`O^7x zEE<{VGH4?gRc6|fJDL&HujmZmpr={yJguC?S>9el5uy4K&!W6lRk6jy(D619v$P!p z&Mo!a{^z?Gsw;t9a#!iZ_w2stGgbnU&#&8LvFAl@Z)X$BVg&Y8^3PY3Mehz{DzOPW zIXo*kqzgQ)Kndr!uYdM6Ntf<$^kqkF0mb)?rbY(|Xb#Ij=W#V{LDj@6^f3477c3sy z2qDqLPEPPFM=XC-o2m^gircy`KYU<;AAn%-w&O+V)V&P#MKU@%jzAgT2wEXrv`~P* z+r0)Yy;WIkZce~Z=HYS%)C9+n;g0aFv6`+>7VZZjjpQ{e?z%-5vlteQd5 z+=17oEPFK87}g$Ebgct&AV1p9fL3UIvP%AKX2Ojfv#S86$#@+!HIGM%Mekzy^=mrF z4`d0#ehIAY$hT3Xb82$dC`Iib3aGMwC$Bsg<&4l2f+c89^04JKpbW8EpK}df%^62kO=B8s>NGrM$Z7ptY8It zCgm+D5SM=H72(PR`S+cQBB^=sHI8$pSQ)|z_`{YpFLHl>Mj`aQoxL54OS%wDhc;sq zqyMtD0gmc5&}aFW>)JW9>@Zl9ITjaVQ-da(=ZU}-_8gsOL3cGsn1`C}u6~2*s8!WA zuIvN^1o*hG#|Fhcz9Da5a9z-598uh1%$HhR{PQ`^k2io91XM>QB28G;Vj!P9fNo`b z!BMmdSpRwAJN$f@Y?<}UaC=`9R3B>zBE*dX?Q1zE5T1P)LdBuyHVM4WszwDxrkC7_-@*}n$4oTH9bN_mu`uRUpn?&u5Ri;Zw{u0{ z#RVD^A=yi#pk;2CuP!M89Tdj6AQi3%9=R$4Xi_y{gy*z;t^l zi+LybCWt%FV6_U^xJwSYU`L8VD1`9RN?nq(e>l z@ByQ~K4~J;8aU&*=P|4U{6bqQXJ?IP=jI67cbh%ufB!zV)7vRbU-cyI6yUomf0Fk( zAJbK=^BU)_Y-Y-ojThYvR7!qNj!cqfxwvMwQAtb3mZSx%i^yxlEq}%|;!0aZWCDzq zG4JlZANU0&?B=gqtDXpV0(IQ?Q*qw`LJv#}lgI%Ppl)m(vBN@Yp~!4sMrxKJjPLUg zzaMd1-!#CpfACNelWxvl1Sl5@-L{vmdwbI1b-vFx-0zGlbn6lXY7>CF&vHEt>XmA5 z?krBee$xLGUl<&XDA3-Cm%C6aOZ+AqKRMCUyT=s_HVKkgBTj1*=_ChG#}8rd!3}e+v_=2YxJTQ%zYR5 zMk#X|NDhPpZ>+$*0L!gq=lp^B8WrHlZ&d_xcr1&5lROc8oRvU_X0}ke``&YO=k%m9 zMJHpdxV7HI9!QLbhIb#<83QneodFbA z_V)H@)Ac$u^uT-p2(tQf*_FpIJAiF-H1hz|aI-214_h`*(+E&V0KjCZy#J}s9IR0? zT5NrNy`qYW^AZVwtVNjS@ACJz&DoDSPk3q-n-Zs`rQJg;2R+E}tJkkX-ajKa%$2^Y z6UHCA=-e+u%rFf-+`l=H&=BYe)FzmrG_2zHe{!UrW@A;9T3{?kJjuVlC8ctgnwL1- z2K1-C&3ynCobE#qX`C!8-Jd1HDcy{mpiZ?pMF>bcNw1d{52*{e)>M@WyYs+d;xHz zLU0IU^!Ia3xsu5v4m9uR<{e;+D7&BT6QejP?9N1HN;Yk^YZ`(7P^1!QdiTZm+6}Bb z^tUu~zuzan6fJEsle)RP554d|3rc9imt56yS?Rc&5<;C`*K7ZIGDEB;fO#q$Iae!| z^VM8ARsb*5+SRrD4|~J(OzvzbXhPoVRQ4FG)U#w`XuM99bixKm!NI6}H&B^_V&>Hc zA%>-8+9WzNWTVpgh=yiXL%18z6CZ?Jy-|A3rRZd!HfbRW0OHR_AC(nW(p@{y9u3*$ zz*i&cBI?3)3y4C3ZSISM@&Qb+M?(P?7xc0XCo+_ekK%*GR?E=Uvwvome}8cYKo9zm z$3N@*rUc^&z-)Q&zh#`91c3h;1tlaRf`0v(tE;PWY8$ZCOFMsNp|N1_+B1k8ImDt} zVH`-$E-$C9gsyBZ9y$YU_x*?ALX6a3%YRGt>B~R+(1ltHBnq?EQZqlV*rgzOprD^4 zSS4$nn@RvXnv3d!06x#FnvKTJfsM$OJFTAPVVPQn`c!H#gN$SGDK?wsfP3LwFOiyU z!)})a5(>(0Zolfi%vIFR&Xi`Cm0pQg;BnI9Qv>Y)q{g_%q;!_?_yj%}CU*8}{e$$N z-tLxxfwCI-n9?aM5e0x_!Sb)SQcw_E;p6-f^C4=Fs+c)#BjZaBW#HP^)Q|ZiGi7&| zxMlcBXlQ5(&HHZDivlbj@L)ws%rt`eGB87IT8P15^ii{_ENn@qF{N4zch}n)muw2X z*4av8z^?E!^=$+%p)lgD{XChawg|S`gNgCCb%{W#czY#hYcRE^cmLF~ITtlhEHr4u zg-8gkE;W39eKuOc^y}9{eynB~1n^ae?Go|s?L#wgfBTUvSBZ>BoN)XY3SN5cw z^XfiaJvq9N#>@GJUI34{F1`S7vmml_{ulcNkL2EcxrtA;=Kg2mi6rk^85cq`V;3XpjL)m@o)UPhn9o-3sLU%!L%_sWmS`(P#|F{vi24Lx}5e7}0Hj zu(EGu4;20ysN|1y3ve{B%g~65Ps9&_Y|_w2m>@dg_o;wOc>j60#scqLC$021a=Yj< zBe$kP`jO7zA^+iaD`C6Nmw1opl~Wa-H_36;c=7?ITJ%+iI}{y>;s}AO1Q?AGJ^&P~ z6{%nZZKx+rmn~rYBA)LQ8ttS)BqJhU2hHq1&nfcI)c1f~HY7{of7axL&i*0L+5E^* zg3A^5yaDr@$tWq^>6nR@=Bhjn6pmi7C66&$tz!P-vZafD(TKz{3G# ziUVZIfSM7*qyt0j&v|WqK={!J0zxLuiI))uE`hq%;o|# zN%NVHybk~M>&2+YR)<$lb?({8MFs8QjPS+LRb&f+@DYcm{NwBjN8IxV&%UU|`+PMb zwyH`T;7}D~x}c0G(Y^(JC-)N@Y1`q~!WSCv?imYo!XB3f;Aw#o;6Ge$v7&F3c9K+D zG64_K^1`Z2=fnv@18xX)`cPzkY3kBH@!U%3JHCsExwvR5JQt8EY8Rs{?BrjK8knKr zZAPRW|V_e4vR>-mO_IasTTBKV8>tort+FXlpd!5m-Y`j?UNTZM<6m zuU=rJ_bdqpP@pgfUxdSewrKb9BgzWV3fuNvox$dFLs^JN%Y}ptQ#^=HLC?g59TyJ| zOsSr+O8`vd=O2yN@n#r>L(%RZ|3!;0rfp!hdt||WX{-Sel#PjrgaCO0XDAyZItd}- z!O5$)cSKh~Tyy!gN``^GF@GNzp%{^0VUI*ee<>N8DFcf-`1vUKh~~maDCZUY=XT?Z zgk_%jM3NXEzWO7H34w4E6Zn6g(Ii`2TNl2^9mgytCZ^B$jTQWCeB^CyAqt{}xSz}- zo6~8#hhSL>GK{Z*GSo0m30#jQkCi1VfOk#3e5CrI@yrBxo>eX-S88=et!mHyhs!V2 z^y>fIBoNX=4HTHt>Y8oSEs#g2t)^7XE4%aTQ(hjOaUf>c+nJdE6y<3e2j>OF^6L*0 zFI~T7pS`=YerT5T0wzb=8aZkJSqi-7X&*nf%m{ZRTs6)JmOb~8@}vC2*ZA%~eT}By zk%~bMTb|K{BxHaU-%A?snF(+2-Dq6U0`~zd)*Yb3*qg7mnMMpek$|}$9$Fydthbc3 zQM>hVvK?SpQ11R(8@QXu^W_NX4M3uk?NN=VkIpR5+4vjAOLE`?%~G!XA8_mJcacq|0o6t&}~=Z#pS3 zAB7#3O`)+pM5&>4iXUX{6<%)+E-^h>Vnjia|7pynTdnx_b`-ukSIA(BL+$C@Ma9I_ zw6sFrzo&_u;dhWZZ-^$Q-k5S_|6Lp8eYmI%0_t%=GMH-U1XtFGQcURJJ_M`hNryc>e#*%*2(?n9%;~phV^bJAwtdM~jRiM%axJHCwEcd()ea zM?9jM2zBtKBN#Z$yDJ`T7MZiB+WQ(<=eAwoJNy10##kMo2f)WdN0PO6!_U<}u-?BO z{qSm~ahhHB|IMeZ#(Zbdi-r=Jok)lpBhY7*>g>9f6wYc=C2(0b&r-p~eO{sZ``2<^ z>XOhHfFJi?gC-t0PHA=-e|x?KVlF-3l5{{I$UltywKNj=LWBvWK1Lv3v6>MXCE0%( z%s{Tagq}Z4tk;VTnth4N6JFqH$UxQO4W^H!mX!_8P`U157@Gh{`9;X!97zP;e-=GE zWu97bV41i;bsJ(j%QGr0Z1U(y(UHpS@-c>gM8h}060JX&zpLM#$(RNJzEUIm%e#03 z^XNxtuS&EV1akBvW8`d|Ct^K+;#{7hs& zuws{RFI^hh@*ycn;DJ|TMEZFM7=viByMSu;5Ly%P!lJT$w$emYVFzAlH*LNAD z>VV5qI_J>$Z^3)i(N1aYao(UjNQ2-N@c|(8Q?qTabm3+t+Mv1{UBCg|@9xym{+6k= zHB@Xh98b{Wsf{dRnj6dFN?tDb?H=0 zIXu(z@eOjX?HoOWj`sqpH{KW~`(>T+*CZ3WY1WMaSL)ydl+UbB!Tq;>brbM&e<9R4 z?|N()+;hdk&R zy~jh#Kk0MKd7#9b3csc=O9#w4BB1!57rU1kSo3dS`heN*uk~1sf?iboz5H*x zM@B|&LW$4MEA!$j70LRW1y$2dqdGR#tN<31`Il3%KBgavmHxjkXPPwFsumzKMaub; zchxQllwmn!(@3M%VI?u>ltvHlbUvtxe2~!~OC%AnuwYu$&Zxn6vdQ-Cc3=5uix2a@ zKcH^-1qDT8-+#uo3w6 znFkJ8Lb;SO)Pa7zsGWuwbn;+Ao)g#FSS2Muhz#S%y8!~gty{%`6Ngq;Y}U(T(Vy#6 zJrHv571&m<&udnZHgdL0shL;lnkG)qdlTZG1*3n=7V!P|k4zygsrp5D*Ul5v=3ju!0-7v+9xDAJt!J>J;$0?hotyut$A{#M)c^OS207+y ze0(HebOS)vc0~|cr%pthr#~7B(-}W+KU0`W?n(#vEBbgT_>%*eQ2`#mq2BMD0>h;| zbPU0Ym}-eO_^i7{W$R(*DvAz6%}+~117jxvw1;ZT{5z|6@#r&pniMwwu`e(d+1c@e zM<8Mq>zSExfHj|y6+LlaM26%3U-J@&s$p29>Su&~p zG5`MGQ35PX;7|kuH{vp`l#}+F5_^mO{i`Gb55PPDmzBCF9HO?;g~x#s_qZUocpp*` zM~{q18za(ZKs5;f+R9N1PU2vA3^WwN7~4g9 z>40b%*zAf_LgjvTcl!Xqu3l76)Dt}A$N)%iw94&SL4sy4E7f&dWCcuGxTm?Cml?o) zkvxPSsY1e60l;u?l}Z^|Y|<39vq({VeB0!6p)KEkDJ6X#0i*RavLAz`=r-kNfUigz z%1hhPY8OB#LHVZk#Jevj^VD<)IBv{KTHD$TkbeIVI)ninxT{!LSoVq|B@kKe69Enp z5X0n#vfZCwdwEJc4@JR<2*WiS60A{QJK#D2K2DuNB;yjd(??*+kk->Z+V3Anq!XoK zxG6FTRQFMFaoE+mT|P4?;O<=8x@}WFrW>=v^ZEx*QTqqA52_qd(b2wfx^DLi#{qx% z^{XagQ_&bar^;^*kcb7S@EU;U7kVB->nnczPzPqVB9(|%8wu!qHAvd(_)3QR$cn?P>05^x)iiwG_>0zz+H}v>6F>~m6$qps7~TY){VV1g_a4d}NT^*>*!dj*N+kMp>U;2uP$9ze`M4PR z&1t40{aE~ZUD43T{Uwvt>2dV!B2rcKVe7QJHXuZSnE`eSTQ8^zo;kd{U+w_lThb!4 zIXdW9GGZ|ySk0|uuMlKGX?4)F2I_2mUvpeK^AZ}sj`-z!MnptNu2_5-QiVVwT3YS_ zEq^1J>EqxAo;cXh*cc5QJCl>XQk#Z?@piwyQz!gC!mb0J%D#USmCTe3CNb8P?bje6ey`#$gUo=@-R^%Mv9{ky;8 z`d-)dm2x}C$P0UDtD~ft;i-i{Mzu?5SQ}Sg-?xa?IOTgjcCY1WK0aq3IvDWp+qdtm zSuIO6#)VeF!=u3P!D!=0vM8=orzk;Ay10x-@k7)4t)imTQds`f8z7s+CMA6*Eaf$N zv9Ivw^TRCIX7Ke%^{yTn=y5@!=+|J*(ABhnFEDS2lXDi!(n*DRF;e&~P21u0oF5eI zN=thTKS8s`&6`hPJ+P=pSM__Ls)VJx!!xxsD&-1;hu0%W~+78{Z5%>-@G?$;&-RUaPqN?leW zS&p$I#XA{50$c57W;jbXu}@#WGLXb*oSFvqh9UUkO7GlHuxC7QAh%0jLxUW2 zgu_v8w6LBu-p)hu^r38+DqxGC8bNGl!fX7nY;M$$*_8(fB^vO#@aXQjm*v`aFJt$w z@n3dJF+=Tnj>%Q?V2JNM8x#`aEYS)p`RZlTE^IT+><=@G zvh6~rwV|9%O^+iq0{i;bPAMAqmFayz5;=1#+a&^%lyu340Q}OeNctiyY;?w?(Q|x@ zWFRm;f`wp`zqXdOIO;hp@&bq)TnI|o`b)?-^fw4cT8l2C-YyH5_G}gnBteP;wp|lk znhXr+*!d1e=$M(D0Dp2>4lzZMDgh1{5y7%4Uoupn0TKv3A-=p2+RebqVJ1m7e(`!(wC&-CF`1QptsUX6{ z+Mf1C*6^C+Ii8?sQ6?>g#0@SdjV8qzC`ew2hMY}CdA!;*Q-$czi%+*3yc|804RL~a z2&B|rrlvy=hY~W(AcFw`(;@eM$h08L*q`cgZZ&=MJ4Lr$gE-?J?q_0p+SR4I4FeEz z-sf43WM}^|)d@G({`W#A1`3$~zraXVY#PK>4sEu3jM$RK$<@-6mWSC>i{q0r`7f}I zX%ia@#Y=Laj=3%Eyko_4MGCFQhz`|L`0gJXG2}TFt?^F4@uf+(1iS9OK!Gerj+;dK zAJG`bM%76U9*|&aL|~@tJ;B;zs`%&KcQOJyM0_tAT1}RMLxD1BWx)Zh=Pv|Jno&fT zlG>o3ofeXhGYv4b68Sljte5Y;Ydh9>2n;ZGR%K*lSYf4Ss|A!}F>r$2iJ0DU&;*^m z^Me5vs)Bw&cP|rCP}W9Dym;|~KPDG>@?O6thq2zmf>VU3?GArhR__M$Z%{D7qi}Lz zaQ0q0$9F;}S|ZIKJWF7mcp=|sY z_a(cM0_XnHogv*P=vc*neNBUHTqd}Nb=H$B{vymwOyqj>gzML@pLJWXOw>3b2kk!)g=VRKp+&CMM1uZ#`@nFXL9dt&L^%K?&^rv0(>E zK;f{{)z>p-p4-`*#w&R%YAcZb?>a9|ZghO?0%+g#F(UT_nQq^?li`L`NHnMYSg}#d zrv1zY)dh}oWJ)y0ldB#Myba1wE-7F29~yX6-ZV9iF%Zo=_r4>~2C83$pvJpaz$8&m zukY?c(sJ^CE8htM6OxWo_<+}Hd9k1d|DcU57}W0)L7{$^GdSjjtHV#04QUk-mgg!q zbZ=MMk^@8~?BL+s@666_lY1W&R~eV3ydDZ%kLiH0X!u}xZj={$GgULe%GtG`=j82! z2M+i)H)|X{b`0!Z#9EoDcXfGftntbl71pvcGWsL-0OBk_vJdcBQVc9u>D?Ymm1GA7 zQUhi0C^t7%YZ0igptd_alR=0)xZ*beUDs5*Su}@?jF)Qn$(38#mSHhvv0&1{JSGrc z6Rh+4@<*k?`r0F(5%uVjT$dT3;H@aKvk(a1CsQpkd>c4~2tQ+z_vn@nF^z zEB@-c4^T5W`1x)7_*jDWygGmUC-e}&+YD{W2Juq4{=i{?NuBlzG`ZOQcg>QwpY+bH zAkxtG5f1*@Lop5JlEIxG-=2E^6#lA@;RTF~O!IH6UBy7Dacx!AhtQ%&FJ$<$I!=b$ zq-9(gSEo3{_}+&D+pd0`#_m&z+g*c5!*)H2241!JZ-u>{bUy;D$xwXjgZWh%;C3M$ zliQ-!f1>s#wPSSpa9RkHA%2=*Rt$P=7ixv$T~MvuzlZnEjU>+6+y!!LmH(N_ll)68 zHXyXAtg3pfk1{K^eOEBEq{J&BNm?9ECs|3WLQW#;I+v)fRJ<;C76YR5J#S%}tC^zR z?=%5tBB5SqqdpWih-VmzffnYze<6&~EZe`7C-6G2*WT!>RgP8do5vY2rhvfnQH?3{ zTa%4tT#*wZg?a=8EZF|sH_{NFu9NyW$_oSu-h)8%M4KQ&$wg;?5fI*H74R{vi1^Mm zwNy>29S`BZluL9}a1ug72iz9M>ARePW6X;T4}?V#f*ey3kI9n(N>&>!v%?9ad&$+l`IR-3B$bXP=M= z7`GBZiXNtQU^@%+b@gIABEl}Z0~lO?KdZR02k(Ro!9h=~iPEQe;zJh>S-zptq|J6* z?Lx3sWkXlbU~_qcI@~<46ynzOT6tasDAgfmAEQ%X0SK-XUM{y|RqQuhYtTj_ZV49+ zfCPaZSb(+2Yuo}pXKGS;A?%pR@d&3;3SDZ09 zKhn9xKmy!=;ijzW>gu@;z08ftuG6PZ`7vDom=SB3gs*i2qGLWBNf;k{9v#&BPVsVz z{>F9`zBW~#@EdfZ12JI0lP8ZhE&go9DjIv9t=>PoKtQ{3LT zZarrT_D?d`Tc{m1a!hiQE*x@#?#f5787(p!5H4^teHHgA=wkB;sfl>-)Ka^ggv$kU z5-RUVM3~_CY7$6)>39W9U5R3!V$L+scZ}0*eb$CXJkgy9NgVVriVyi%d%+hP$)I5K zm_tZxleygzDn&AsRu*^Keu$!MxTU2CtYsz2neg zJxokIkzfl#37CWn|-k#adL!`Trhc_G>dk@GUcHX7m zmoXxE1A_XVw^}HDLQ~iEBnEf}gF7JB=lgMyx{N1wI8PKhcA^?=x=$aa1!x5hux??7 zT*(uz#d7C~5}@ZqD5iBsM+V-(hsGtxQ=zN#E{xl4J&u(jztLfZfv20CI$7ZR!cy_B z%@Eu1On7sATj3n`F=KlowCSO=H4wsxz|;6*dZGhRE8BCtSp zv!drX@qzS(oT;qB`eqL8iIH)79&Rt^A2D_Fze3OGW2*~W=S3IfNJbj@lVsg%`OJavP%{7_2zm6i-%wb>dFcMVeV%7-<-264*ymE--}!Pq zR#F8?eJoYb*&b>YZ@wpV`SRs@xZH^T7p}II{1+$1czXB)L9H#vmJ7g_;V*cz4MU?F zH{PgMHdqQv1e?(n!zOgmY+$T&%EHyvo@JA$4t_=T#%1Vnwj^5#8Ya1xW0vS0Sr5M7Y*mG_-jari|0=a;IV1C6D#32 zpKrVakr*GZiV_g9lsnsMwn-uZihuMV{~rs$``_OpX;c0Se@Qq@d{Lc5Ve5_6?{?e(ZO$@)6&?QJ;_FS+CqVU75l}x zK_j^(ST(N3R35mGV9zzuOvnJNJw$5ZP_|X~m>>=s09FnxXnVx(Z{Q6!#ulB=pZ6Z< zMY4ns%Zl^EuR5vT^@C(|l1JWUdJ$E@i6By0ga`L&ql?5(5Zz$z0|pS7?j~XDuC=tt z)w)yj?yD06WWe^5xNm|u;BLN{tbR)%8gf2uR$Z!Fb9(fE6FZo9#?fqg-U5|MI7r|( zsiOclAo`nL@1uXJ%$QuTCB|m7ENgjT`?cHv9kX&-b@9uEj#=>k{ z+=XW>8xy^xUjU7?2`n@r9iE6?x18w8ecXfo{FxHuRL0ReXdc6?0(b*0_eHSSiTqG& z2U%q&{6?UFf87p}b6!Qe#(YY=q_@nh;--JwRd6y9&&$id2oHa@MIgX{-7Ai!yY=Aj zLHC^|QMFBHuqgJ6p;d#GwY5WKg%AUNp$|E+cxGh!!mTyPUd*=!F$^18t4D)mtbZAHxKhL}Y?p0&L4DWEQ$nfHc9F%X?t1fURdoJU9|P zW8`C-TXKExm1rOGYprpkkKUnpPNADG10ZN`_klzM873y z$5}{m^8U196)?y`Wx*`er5=?ba{SfZZ$rECoo(k8K3)&f))QRzetgu$rDPvM7W+yd zVt+tE9a75h>MvROH21}=r#Ma;ruV=q5o8L&+G0Yq)l|FuS}kzpykR?3ffEIKxC ziDux`hQ!Wa8D{=L=)b{PimU6|VO8^VeA=bF!M~7+C!`tdm+!YrS0;-l9gFCs7mM$9 z!x1fTsTYCChpuRY?O%lq9Ti1hyifbP0Xl>(&^`fO#Mm2+y>BIW%WJqg6dg5Xj1Q*&7>@inIV9rm#BrsZ)TWMrhf zm$tDOvay%v^qb2{XgOEcJ+?YH z5$e0=!VI%?BK3RMA6+8R{&M@tK=0t-Ajv}kvs#LZIl6`&#UL#tukw(8AwM`a&pKNC z88u6!+e@T#d%1z=wSfeyXSIUY0+bf6>^=ggxuZ<63gx*?)>YMS7r@eO@(uk9W@t4) z2lBjX(CYVC&uzW+QB+h9X|?iEq{$fWxpx64#EYUr8Ii<_=jQ0<3v_+-DQ;k!X_VRCHDNOO(hLpSc@#E7 zC-uasQ#0aeULuuH3x;I1(R>&fkcEjKI1^E|LJnHeP&WXl0OkH%=*OdpGGIEUG7!uv zaa=n}#JVS@P6|>NILm>CMHYtSBse`uj}{plK;iWKOb$@`9tqUGb?X@wBQM2*{Q>EM zfnW((f`scNB4BP_%9U7E3i0by% z6FCM&*!#1{48(S_fkUK=aaOupnNdcQ4KM7t@BVJ>xpU%Lj>N&a$ofZtkOC{0tpAl2BE+BE}a`eaVZWl?7 z;L_$5w;`3Nl9C}Q$XwkA3hx~@T+egC$y_0af+{WG8H0m8&)U~LDAq;FY&N2`r20*q zH{yALzr~QsBO&M+)g($ZT;8ZI(!=J=A9@s1MIZ!t>A)LmOt( zaA}V`!*+F&I+zb-;q>j>%Nz7UE7tpqU@8zoio)r;)imT<9|hruxFd$=)TvUF5UE|s zE%sA|U%nucFl9ZKc~>cz8}HIkGBS$A#tc}X3XW5xm1D6IjukA4pjW1Nd+qps%~T!V zc%_hKN&j}sijFLc$h49?M|{^rCO9TwivSTnI^sDpx>8x#UkQz(l8uz)PHC+aZ4QcM zO$`mh;o3;Hx+>F5u{`;=Z{He2S0w7Wn$wg6IGEgGM=!~mohMHX1$fPnZ*AqQfHzI}ALzowQqW;Ij!>N}FIG)hI) zdh(2_PyC;Om*#cCsw|eWj&6sAAk(j*A=*VFA@~k)(?@uCsA2LeXKc)=bL*Dv=u09k zXKJhd>*$qT3B2x)4~y)UKg_mh%^4d^i6tjV2t4CGKMW4ro&I>+#aUBb^D$Wqe;UYO zEF1S_TeP1jq=t9>^CK6z zFV`D>`5B*SV6sy3tj#t@|15Tcn7Q;$N~rqoL`=+{fY<&%ZEj?mbe}Y#g5@6P*$#U5 z!QZ}P;C#2@D>b~+UUDtIlU~H^OH&tu_ssSXBQGY#>pG`Sf9(wkt+jExzpD2S#Adn0 z#}#R43+286KPqKBLfMvT8m4wXKSQ;Kshyu>8K#0E46yBV3*Fl@CZO`wE^rm{_V$@9 zX9Xn#y4UkodRjpNtNN#_B{d?w)P0K2p?jmJz|i;q2}cjRrsbj$=OHr}cO zfb$`Y8QlWc1Hk4cd1zg@v@6?V zAk#E}Vn+arFz{N-GVBDnp`6`?>&q4;_~mAGm0TL@%SZPqrFuv_1kvW| zB35R>B?`t_qV9|7Cf!(euR!oBF$9}V?}4xyQ>fg|qi|H-;lNn{kU$wnnnUj}&U{_c zaf|_wxT)?*Pe#a4-ng0SFaZ~UlF3W-VDj9%u}%zj>rG2drI{>TNo$&>WtT?YR~A~@ z1>hFAEDeT6o-e7BB1SZIF^HP}U~tKu;Yyf~7Sbyncs6mNo_yifk-n*9CDp7s`togx{BU5 zS}l{_(_)ZSk{;h;LIjj?Q5=@Kb#Gd8x;KO4J>Z@FP~b~X#^>Gi_MdnnJNNYkendnQ zcprvqZ|nRdLtuqTly+*x)0~UsS0p#`P4KzFggcC^tPHzye zBwf3h8kCfo!TaEC)$&SR5{Ouno_%tS%-rzw4XNN%+pld@h!A$g8z$^=e;`ksqRdzK z;VWR6awB1Wi-uX?b@jQI4nSsx?V%ze_8((oNkN6XFQo}TfAQKiM<#rlM7)$nTakqU z{KB9Ce-RoA09l+)sv^t+O_m_BwdFs^tOC2Ek1_J>He7;W90Y3=@>`{~p~``AkfZp5 zES&HB)tM?#C9z@Wy{^Fta!fHO(og4wG&o!r?VQ)TfX@K_laUm09m}2qqe5`=Jd7ad z*tMC^A_bU68%ADFnrq8yg4}uXe;SEBa0@Hf__a8c2M%P`Q7v^bv314_lRf2&vMa#QT1;gNh>!2n-tQ?H|UJ1o#NJ6^VNo7yH$s6w(J+;_o z08KJT#Q|Iz`Ql~^KG#*xW29p61jm}nN?BwKovT;y7GMQv?pReRY=JxH?bdwzTyAP4 zDRz2*`~3x8+{S$JqoQeworOT_7C?3vAunl@ZAuuW3+(XWO8PHq#U~$r^S5j5M{dM7 z965cO>Ri~>t@>$|O+q5i44%%hXQ|t=P>_yNUANq)hm8kSTHU8O36hx}VjnB>UpT|wu#)oPiDAx$5D!)resc-|eGWwNq7 zdsEFZwk3l_;+EfukIfb|kGrjTOol6_@%82Qi=*qt3G;|MQs$FhMvNqrTv^L^aK)>! z8vOCbTUG=3#|R>5w+a*2>G90EJZe>VHVh%oBZ{CDk?@)mCr<2j_;uydB{{^4 zwEUynLI*fmS_U31cl^tsrvVC~=#GzE<@d6TAzcB7Yo_f+gTB_5t@+S7_YndUkxr;X z!rQg6s45XX5i${60OMrc9GenCAq+6I!MydMyf;+blSLbaSbTzJ@-)DiOjHMXrd)b+ z#(urqq9cKC>QBhF4wNd8X?UO{S4HhvLP5i>y`B&n(TbSJ(%!M$2bYKJ|5M=q%r&Hc z!%K+bMX>R==7_0oQX}QJ!TjRx?&(ikf|q|EZ_v{SfJkqbU%%q=op!f26G_6?b;2a7 zeCDQm(B0c$rVoDJVsBS=Gy6XV#)QKgn6W<|3lP1&+-fRv=f`W(oy;pU2XzT<1?7bY zVam#jqZ?esGG(??C$~@@(?0V}z2A3x<)EvYJGVKN%bETu;o}_V# zHIp>8A??0k8X8q`nU(8OtZJb4bB7O;kr}JD^6_|}OM~ci$?Ws&nGM5jR(=5R#yPeT z@YBP$*8A<&x|^)`V+0{-Fp4&o@`R_&%S#HIinrd8%X( z)ibzW-1YECZog0QvLgCy`O!^&9o)UY)&tN79r*`Nzt_~f$lr|~cTAgdQ z|A;XE^Le1BA%&lX4}O-|Ji8jlO52R^BV_bJ9>7NhY}FGo{EU7qsT!hJ-qzU#?4bUG zYQ+DqyRe4(_t3QmIb=Hz!O=@G&UxWi^-=g))%+`Y?k9RoNKE5+bzXNvcNW-Y-*|%* zG`E&G_Npsxx)}hf3!ek8CBNVCi1P)EI{)y3@%|M5ISX9KY5DJxKl%m=5GGbo`Z3@A zS{?BG8M4v_cG>_-yY1NXO63VL-_1c0!dKVnru)Xb9l%!=p11AXqOH>hnQg@*rl5*} zoNlF*6DO?X@mYA|P)S~BF#1Pj-WTj*0iy({kG8OVChouGslu>oDG9oOeD^l*h<&f> zNR_~p6u=-DGwx#fo?7>wH&@ro;*eJ@Af}wLpkL?3b*2#m^q7L^VZ&qjJlne7wo!?D znez5XT7i@5pXDY}R{u`YRDA~zqj`j}nG(~P@ve(pHMa|nJMDo-=htxBSM>Q~>H&JY zf=EvmT~>VV;~@&43$MTY#_5CT|L4Q8J7p_B3}v~2Wfda8+~gn7(?e7=hCQ?y-AuL7 z2%SHm60?%|D#LQ^`nDV{09ne5yq4(y#KDTa{}6{Jy(PK;2Q_SKpuFOS!rE>bL_EKE zbW3%pU_t@kQx{Hu1|m5oA{qIGv(YPV(s%#DLjUW*H~Ak!!QFxXe%xu0L2Cc=>aC>yLv{^VC5OlPv>)>&%TLy6n+uxg zm!5o&9dG@;Ahztc%>kGOT>W^x#PDp)*6LzdoC3-d!Ug6{!v)X|TNeHCf^q{_h@vhUU?Ev+BEKsf8s@)lR1WMT z0st#+OT3S4RC1I@XYKsGrMcZR{@+7(8S)l_JRnn+fCn^1t%m`QBJbfKMKG1Y+F4ri z05n5Ff;jnFS~^(X0-q#+KM*NzfAJ$S??Is8Wn78lukDsH$=SR^>eDa3!9-FIk0;gruitZU5u#=jN})nE|T`|1-~;X#VXebNh^u`oR{SXZ?zt zy?~)??!|buhh#5MZUNsE%`O5r&)*WtP>5v-;V2pnn=F;T5gVyURpsELjXYj*#Sajs+2^OtOiDVF@`HEJ$CvAWhqGUDzlhjxs z!BP62A8!mGH?58)B?0lP@g3T-Zscc!6CklZ6ulWG0xIkNfgppprLYNXI~NWdf_@xX zt*U@bgB9YR8ezfQf@=wLnvkmcT~S5>u^WJi4R+=VUjf5jBU&iJp%f>1ckT|Qe7Gm9 zGc3E8wSxqX2QvGsh=u7o0%=rMSNi~s0CxNU5i#4cy%fbI_=%^1w-m-&8CBb4Ihk+0 zHrt_nDG55HZ{NNZZ!Xl#VFB033+vgM=6`KE|8k+}pOTAcdAdm-lvt}l*O}nx(kg|p zT|khSnxXR zPJ*jv@9K~UU^oIKu*h@=w1HSZ8s=}j*ZNv*)~zD9E_1-H;6Le6=AT&~3yJ?wDWD z@wutH`Pj3MBz*g2UkpBA9DICqt_4w~N=%u&SvM8uU3Sy4!FjObkpYPf1ubm^(Z-Zp zcB8Sm`6!a{cDNSkr|YV!!sZ29uuI9f62l*pl(y%Z-~LD%AJ95(k=_50k|0ZrkBd5G*mLcCdYIlW6n{%xLNOKQB~Kak zT}m>*Rju2}c1}q%`NrP94;iS>pD&N^3kV>GYYfa&RUI8l5(p#ZaF}2PvCuss2M3HN z*BiG_y~h^@IbL|=44ja5pFKg+*MG($R_ClqfWTJw+2HcqFN0o<1RRM#h4|mA6CBl;UogBpmKx<~hh=Se# zl!4e8kdj5fD!3*Qa^o$%8*J86dUq{W)evNCs>v?cjg_ z*;}{5O>Ulgb3RseQL-ojUmv|GM_;(h4p088@8m%89UHq>;t9%)iVZ%`NNh9s)_Kn zHf7y;E;~3?TW*7B)>J;93eN zfx`oP1cz-m3fXam?i15ayoK&;Otc;{$5&eKXSUl+^~t>s4K)EiI5N%0Ss(%uSocdI zJ>*{CH$hF5GC|*MI<8a+5L34;zBQH0vw#4k=y)fd8NN?NUMn75w?YmK7*wtAlzUmc zBEf(paFAQb{7KY1uKsgdJ8q=DMSYUEx@BoK8*99I3@oT6p8EGIQfi?6FtlQ=p521Q zVY{rsnL5}DXbY%EFA)-UB{CLKe)MA91i3X3m^Cytfi#ITF)IhhV&m>SM|sLIz+#MA zKHuO)-|xu>vamG_XBLTG8_w7-TTnK3iBA_~dev7;@<7Uh;t++-DTfz$4a&oJ;Ya}t znc)XIR7i!$iXo6u6qh9So6-pvfF?p8V+t>05Y#CX+ktRR5~)0F7rl-egfPpxG2w-Z zlzgzyH1jZM?9VaTSu-vcaO^eO^MhXYbfxIK%$2Ig0X1Ef%-!_@nO5ox$qiDMh;6IZFPKL zr3ng;=_PwVj9W#Et!}pfeD}`m`?JdrcH~Si{lXQkXI0@{mS*mh4ATQ+E3t|hzBgp1 z5^=3)bw%$@yYQVPN4C5Q%+1Ym9KWG3y;+8&)a zj8LQyVlws`EQ_c%olW$hm2S|Uv|EEESb;yLzsr1BJrzd!TaJ6!%lmhXR{aNhhx7u( zx1YIa9cXyKI~1gV>^unG5%9+aMc6QV<8{GS_u!6x|S zFW{5o?N*VsK6{T!NqHy)H#Il=z+?}`5j_?ZX^>ayBxkD=BVuq-cxeN^ip+ym>}5bo2Zpo+d%Qy)Y3~a7T*BXz zQ15z-wFe$~31GRbS$9lLT?-TuN#$D4%wSd$$il~4uzh9 zOhJn9OR-5fPdIe67GaXU-)5?xPfJTX$YW+|8mvRCS&x-YZW&{+aY%rf5BwC;yTyYP zxnMLtnBygtl#;?S?RH#3;#T@9B4C#X>F+*CgNG1?PLOxkvGQusMgz4_Ja zk0V)?XeD4ro;ae9_NQgFBX0(UWh=^n?=nsbu3s}L zNI{0MYjy`m7mzRRsemcJQBVE@n3g!?(=Omryp)tyTn$(xoUTskxXx4y)QRp) zg+vRy@n_(+PV%ta7?c!y0~Y6m0_&<>YcmNEYe5{-kv$^85)-m6E}{@O7ACq+ zA3~&B$TBNiz5J6v!fpnT95yl|JAA*Q(GoRlfcnQl5sg%PID~9+>Cz<%Iyx*&jwAEr z*0Elz{&kNE`)_CIbbCqyV2?~>w_R1iMuH_at3=dk{GCdyw%fHeG6w+V!Dh7_*mCtf zJ;5L)PpG>Ka4Ec}a&(jDLT2=y2_m5J%d58TkV;BsfZFE2<~Vf$_)Dh1l2?O=dJT(4`JGV!{*%k4M0*;jlPi9 zDm*&=-{|oQq`d!(*=5&3^WC|wc} zIEe*I^}U1DtO#3>g7%=ac!qH~WrAuO^aVbvtE+OXDyQCX3JJAjbcs}EgWNSC2JEk2 z9;qBU`3rt4J-?Atr%o9HAHB9F%`2vvEe`Ki=yCGR`NAgs6R8MUbcDVJz60yE5ZYm!h4q1Hv79 zGt#+&T?}i9wi~gxVI*#JjE0^haFIy46>Ah2a#m47&`NH;XpsF5kSu=L<#zIKRn6s5 zMUF8E3C<*$A%y^UApYh!#NYgpK5Ce(V)I-~Y?b}Nw0C;oqdej@QC!=xg_8lF{%v%Y`_2ox6SLmOt38w2s5C-XNpa&POfd?*!tdg%Mk z(v(WNrZ(9h+260f7R}JDIZt)${@tCFHJZ;a&|E!y}Q+#|OuC&j}_t9HY(Zw872YJ%Clbbn9s=7%%BoZ3jF9&h?fuW(HcPm*k zpSrC?d>)pPIcMxJCk$Hlp3HDL^gyWBw`E>6A7qn&;v&NR9%bSjU9 z)?b%b%Rf@KO#WlWj^M_RwJ}gC>A(sXqX%c(4ovtm>IWopYpOOGXP855^cz-rI=(vWiLtuR%Hx2f!Z#+J5ycl?^U0Trk?C!D)8N?#Hjg>AG8d@V_Ka3sXbJxhR9Twu@6nWumK5^TH?` z^K#&%Ic?eFdDv6QF9QbB7T=<&U=y4gnudIb>sV3(b(Q!sbN= zUgvvTY+7xu?ngd-JjUfH3G#YabOg3zz)M!<<%<`wEy-FItBcdDR%m;a!GT-Stx9Hm z@Ad37xTPt~%Zpa#Oq+aZ(cwZCZ$W6}&~ig7Oz#|gtszrs@HAH!#YGc8#mQfbGj7;d zu08NgJI@vZ(dU(GA(%5d2Psz)NFr zjFvrONFkaf6UuNn=T?r5QMHZobGRHZi>0Z`w(jk*m_1Mf3JHnS2f$1FoRXq(|9&cn zMcPIkovewatO{CpD7QGKwEr8Zi|0E$|Qn*RI;v*KOSt93i!cFjvU zBX>{W)vH%cqh?pYH60xt2K0`yoR1%mP48zKI@9Z~7V0&<{Nj>~$a10jnS?prCs*p; zxJqdk010mv?mKrVXo_N}SYcjPWd%eL_gmj)FZw54i|=~&zr9k2XO=P+@8MtXOt z{NeuCAcY^_zmKM4wCdmSn^2n+^+tbvUwSQCy8CQ!%Ny9UYCv58+-nVJ2+UcM$!;%Z zl-3>S$(n)u9gsXUbyf!|mTDW*bAe1kKhElZHCIburAXCGZft6j7+-ALPwOAwWR?os z-Otw6)rDZ5jY0u(9#x=k-JIqI?Zc@PCsbj7A!w)uD6i8TKKJcx@PYS~bXHJqI6mMV zt`2MJUzU5k>u^QEVd1x&n4h4?KApDqvzu2}vM%uG0S1Oc6Bd#yKK|HvU#&9v2yljF ztry>EawqnRoDW9+pJYxQG$7zk{cN%Ex?4h> z`{x;MnZ~rU=LcR`)42ySJ!E@#Q{SbWJ2#FE4=tviZ0&$Sp zDll*LfQo%%?E~b5lpiWN7DFXv`%Da~vZKn^(Of z`m`j&h>hsa39Cb?>bhFuBn!>Z2XnqXqn#duleZ;YdoP&ObYD4I`u-vCx!|7|@ZU|+ z>o!@SUr;!uGmuo^LA-Q{N!U``ztbOO&7O#->7QJgI%~~CzfwTgT&) zdmn&aikHy4KVC8DWw%u*4o`Dt*0tbAU0rC?s0KK|KpinK<`Q~h+Go8~-T_F|s$lx0 zii5H;v@_#olGUN1GqU;AmJxRbd&D224o-{M~1d5eer_bXYriCUQlrd#*^j z$zr}`wWRkhv4TV1&m26G+}k(Lx8FL0)6p)9Z`>AbG-{zTOUs^XM~TU%p}0Hpe$@Pd z0s;axyeD}<{!in}lAN4;Lto!YyLWvy&to@~OZlpmLm(XTD^@wO_pC$dX&xRymdvE2 zld-ryC(NskHY33y=kKbv!shnLZ{DecM;3B=dX3# zrK6$Yd(*5O5b1d5>V*#@jPj6i#F%%V|KChWw@AZgupswX@FER!8!JpJHr|OM(0YZu8;|&ex*eq<+u* ziFc(!E}N`dL9grPu_u|k^gBNMH29nNfcqUE#A!r>*=6*BIOg8JdHrGy+d%tx9x(1F z7SZtWoR)q;i(Sw7m4MN*kj}ZqN#*2kgFzB~?;vB}NYphMHPzX=$m? zE|$lpwGnp@fup5}ari>_?T=SDuo^#!D>u~C=!FhNUhI!NXfj&En<+Kj749F$TQsY< z9X?~ssyF6uZXLC{%F4=mXsoiphq(aODe)mr@?T;N>-aOf0y^Pc#^O@|U zb78@cUjvJ(5m&e%^zq}zFeyiPlj1uAc4OlghZSR1Oal+2xVX8%L_RM?OBbXzv)*t71QZMV?jb4ILE$p5_EEGVxd4`o-c$) zo_|6)meyaM)}MKObGtEK|OKNMGIG0iI-uXpWO9w4wr3F%}cj=p+AUjU;JXjzT!tZ zxpp5x^8OVz9lh%;*eWINj&{|Je%hE1^NB1PqFYzSh#++YsB8zXV3Fg!@1tGY3mdL_ zd*>ce{R6u>C7f@tv?bp$SiE&}*Ibc-sG!SKpT3Nln%WCp-q52-AT@>F?d1oN9v7~! zK~Ubd)r~s%d5hN6)WoLw5hNrO@p%VTL{Gc{eCLdQzBVxY-_{K`!G4?A-t`4EJ;yN= zE*UyN189>(Ft_3IA5V!7#|}KnX@vlA=H{0VD&*oAu8!HLtFMk<8?#Hi_7bA&E6pa* zd2yCLfM@Exw1=y|QC^zgbKv5#Q(|C9!7A;p4dup5-kmcY&YK>@kzetI&n`QB0axU& zj_tO>LBQ=CWvSre=El|w0gxh;Ms)Zh{^NL~SB^nQ-s%ea>S(AJpR8r-wNPm?|DeMB zb^XnU{$koUH25wfuTWobn*osfZsl_hezcg!kop^$r58?X>k%Ct(uC3muD^Nyr#GMf zVZLdPb&Y zDbmdsESF$RL(QH-8$?_d>-3t)rqjuyiy9sryfBU{j5kPkgK|QI-1@jm6ibFdoJ7V2 zJdgQ7=u<$0@+LGC>g03A9$HXE0+GteS`tiZjKaZ*PjQ@)%`-VIP4md!08GymiK+oj)5nAa3#dHlt2&)4 z$Irm_p=6`g9=FM3<84qy_}PA)h-^@xdbFU`AAN1wPj&xcO&Z2^>1PSgjNv^_$Kaw` z?m=i&Gat9hJ>R{{d7|sEjy{;9Og+4#@~w%UKY#xa6mmbstrk6}1JKE4&e360s>2^H zy~=ZpsD%_BL$_uYm$p*s$o0}r`NQ!^39kpyl9`szc(e5cF`GS|?9=U*jznB=t5diR z%@W>bGkf2zIVn}hwVpn3Yf@KrbXonB*9=#r^nT3#U(Y$@zk(%RO@x>_>;y4Y*#pS0An*l$ks^sPepOVET}_=YlhGIi6| z%G!9#h#t$8<0`N2kZjbjHHb}q$2}A*jH5)J+yFWmxgE#{4|BkzG&v>ZD%35bHkdV3 zwAT0c>PStm0iBlq-PKI#xvWungK%Z{z4fPqyjr39r}AZ1aj&;MVu#fGOPkO0W7mC7 zy4iy&9rI&1BSjB;Ij6^jtTNu1tq^;&{^Lpx{l#;CvbX0tc0+k2xAd_il#UlW9FGae zw%_QFT!;%3vH$~x^|ck6717Ar#1+^|GWcut*oTg;t`q>&_yu`+cmf|3vagLO`Pt@^ zMuIYjsRF7-YwN4AN0VUsiL`=nj9?VTNKYO#2xb)L0^=Rg)S)A?4KQH5jqa2;L3gqe z1#}>@Lu|d@m7`{b#x$jc11>x^_YUxhXW9p?>*wv}%K1DS&N}7lM%HFRjc`x(>)I^m zCF`O!C;!gfJ4mILN8-E1L(BTlMp(laxq_1mH9mf4>I(GCcqpoAiPI}<9qC5$-)7A9 zn94BtR+t~phwa(0KPq`UjAEEK0te?z4cGl(V9_UI$qe8gYaI`ksY_{6KIi4^s6O^ki9ta)>grb=~7TeY(m<22v&Lxe`ywh>b1T zO9E8^lC)4Y15^EFH}v#anfRcqYdRZ;9cX|WiKeQwEW6=td1uYFrznfWa^oiyKA_Z7 zBnad5q1=G?>as!$Teig@RjcLxb$3Lk#~-p)vl+d^#();uN6-3m29ylN=|`m&`yTV7 z>Bx8FZLF`n(rJP-LOl@dT`3){0#DAfj`EB(vr9?`!C}T#&j3J^;Gw$c=w^#+Z>NZk zE*CLU(RB&1pI1Q-S150#3N32?qCQFsJf4CdtVT%-^cOK0E>89DiAHG`wHbD`;O<7O zB)k%L`e~oy`;7ypef6(VUx+UpAC_tMh0E6y>E;Fw$MXbQ5a)Pq3lB zy6`sgY}$?}x2Y{(>6;#QlWD9YdVbg!ikm7@`mBP7zZkoouEyC#ar8%XAb(z~xTx`x z|GL0uhoTqhvruTrr>7Mb7B)>8oT8*_bt%v%07lIg0)M#grJs@HX_EFi*u$Svu+R@y z6?a7Szbcy&eEla5p3(V`mzNi?yy{s5o>pJM94TP!%)u+D8a!y`XzD_6_!hvJ*|UaZ zj~ofXf-B{hfPpTXG8+0SD|j}_TtLNPhv|-WYn8rw*i+^wp;8nE8f6|31fl=94tV6Z zmEwVEb3lksojD`K;{~`R=a8i2_^)|a$QVZN_80Y{0G+A{7vY3&jha<{&9ey30YK=VmY0_U`kXj@{k8OXL&1vO)a9UubTk|| z@b6~$%)J_hN=us%yn6bAljnW*cb4p*l#lgK;-Tb)naL?*TJXGn9UaYw?mXjPM$hjL zLSf@(F={$5tG0BGyLDGrcne+%LXGSL25rXSQDW{##`3g_C^l~-NsNT+WYGySg%`y0RQSf`8|!NYuIrFxU{QH5R~yCA zfIG79C*F(Rgo+cRyS6xZ>VWw1%5z8fi(*cIY0=&a3oEPOj+=aMf|!I(8Q)wB?#C`4k2bk|D5@?4V#ND!< zL7T+s15M4h5y}ZhGNDz+LaPqATKm>v z0iiwLE!o-IYj_6oA4t_~o5f!?$N{7ko39Xl?#@#v!_L>KuRM6o+Z{dipbO+^{hr4g zp~s(}Yf@pZ&2^o>m#SZ&0|l8l47K|6oiK2huW0GoUig+VGt1}O+?sN8|NP;X$WK1a zaw#+lV?G(Can`y=lF*h>Hswj>c~ByTZ<$d^Y;{5qXh`pb=y1KHm7<_ub{UR)^nBH+rW+9O~ zd!rSY>c^6Lr|_=y_o?ajOlEWIr>Xm#m$sn#S6jd_Ox|$k5LScSz+2M}j{Tk?Rovd{ zywKy1Hz@mYadE9?nGVUMc)D(AK>FIr8R@?D6L+wHxv;s3x-ahbqNf9%c4iO zwfT4)HR~~ebG=4X@vl3E69ai?PF6lV=I`}V-P9>BFWl>tO?39N_M@sPRTiInOsR{` zef=H>^&cIvkBw5oYc+C5nsQ))DthFJ19cnZ4$eCbNi#cSDtP*d8L_47so5XjRDz_fG8d!Gek^Yg6+zFg^Y|sk&t;;S#r_p zh*eBW!w>5cZ)*Tn0c3f+7HvV=$i6gyJdZ=j^lh1-wj zjN~5qbMyepBbZ2gVmemzQBAMKdIp9Fq_?z{-?JmJ4q9Yz812#zluudb6BQXLm@k79 zgHlYkxCK|T^}gkj1gjZ;0IDWW=>CYiwT|Y!#X4Ue9-gx(0|d2nqu24w*|XYKQn`c7 zF6y53MvCJKsR;D2gUV&27AHU~Y0+E5^|)Yz%7%XCB>|66I;4z^cfu1Ntep`buTvL!~id;DQ0X9v~!xLK=iKhYT);7eXaEI(%{ z#-=ToaC4N-?a{8BGBeR_UT!As%@~Ilx{|3j*y7|j3oR6uft0>28ujMHBoaru643f!ea8W{q*zf zMFGM_bz!udgssN&%Ww}fk6anLEc%rwFj)kJszwPn#&2wDQRj3FQI3RL{R9G zQe*B?)b82XPl&k9Gfk~;8<%%=TGtlc;*=rLk=NSs9_jil@Nijgzrmh{$FPcM8wwi0 z*jhnQo|i_8Y`ofU$ZZ{9e9KPzUB4VEnE(p}yi^gJFw6Y&yI{RY_+a##jsOd@d6MwoqH-M;BgMMsa?UM~vw z2Y&ss?X--1>}9(RxR`S+UMI_)9N76B|7?4i4bI4J33fIRAD}K4(%ga;`cf$yt?%7m^ev{G^LcaEi_FPh&pgmteO){*2>Kn0P%{3Y4E?X~*djiyuMY_npU$$kJK_N9-iA!~8e1I8E-v|!X9;&|Ce6I|}O zn#=Zz`Y9}Q+iI3t@9Y#@+IdX(%|NznhR=drkB_Cx_CA&I)X_5d9(g$~kN8$nNZB9Qts)`mf1S}HY-uw|13pWYLnfwe2sY4ly0t%#Uu$C%q6j2x(EepMA6*Aec&d5?% zRaJG@;{vajEwd9*hs!f+*O}K}Q{NGIXHMfCVY*X2XL+cXMsh0S>ktSi$193U7%UG) zikW`@<4j6pai#I6o&jsr1EIAzVR$>0DtEYKZFb4h7+Dv12ky{w@X|UBK6G<8~7t6&=nu=e&3VrVC02~X1e1Aj2x-MpI8HQ#=o~BKeuABA*NU%=l!tQ?aYx3AXLr(;yKI= z+PeTa{vlGz)4LD0k4|b9hNB{ZJa)PM-R^UB0of}TEu3hgcVz5})Jv*GmYwGg*A?~I zo#WGv9Wt|z!n#=>OJ49=fLQ+zr8n|L6`jvQyE)}7qx?c$Z*k=F5D5U%y)8?8$a5Du z_xBMNyu)Uq&^TAsan!$eh3e(*aqC?hkUPpVN|N_TQ;Q+YKFYWw>yUm~-Sa~JO`R&p zt^$c2O*5)bx!&N((C8qaS{DQ9D7|tA30eW$75BEJ^;^lr1e{Mi#8Aug>--geoJ#@C zeK$oe=L}}3_&>k>hb>11BqBtoac|%a={#=J#RlMa^Y!oYK7>z_3GndaiJvcPu7YVOF}-oP+i+qY(I|0++_yldD%A^ z4iL6&|JS5U7vNdGTGpp%{uFoIoF!-Mr&@IsxvKWvquU6~ zGTP@oOnctE7p_m&vCSWLKlV6$f53QT^(m)yrnx0{$1ez;X)p4t6yk{CPh}>)PI^UC z<=46IrT*>26GwBzv)jP(y{h_9KoOF_1{RN?z?>6eGD2!BA3u$L+?jkR$vy33&zk#} zqM1dH$hgp#zx+#A}t$i zt~Cy)>e1)~y0h<%nsTwuxuF zeJ7?TjUN*?HLZdmrmrE6O!aRAL@vc|XxQ_nhO+&5P80A>v7QFArg%;{d zGpV1Xs@x?NF+_xtv3=De+3mz{=pEf>*{qWIEzA*l)~V$mN4|uKhVQq7EHW!L^A|9B^l( zd2POaQIi;-nDObhESSpZsn|(e*o-a^YFS@w62b8a1vFy=W4Mg>U9 zQnkGzD&$TLgCE|ezu5ayq-`SC2)rK*(O9bQO-)n^>grA8z z9;NL~eajL4`R`S7jZ+UL3uLmH+4FT+Wl#Q9{cIu0Bpv3k*t>&U$oYEo;NB+;_-f6$ZEL?hR(c9((dp*hN!Pnt{Gb3?QcXxi#-FQ#i z;&sQ;C!=2t{v#+D2>sjAkiL9ppb;&s8~!uj&?_TZrhv^lp=YI|JP8eEds&b)emZM+ z7!sXb*M`c)=WFVw-`jV3bRn_ko2dJuFhDHE;INve#XjPioYuXI`S|;1r*FZ%PGnj3 zl|yd%lfw7DR3=2(FV&=>#}v{y=rDaY*l4yjh3*eGF3-?TxIkQAZib|qcCbTkPG=pa z51upGf%0SARKM!Stq=LSMqHk#uj67_!eY>9Skfq-bXYcx&4fK^~I8od)!$N@$X;-R!~-cA&EL->brLM#|54?>_9itB}H&HLV2$H^}ty`f|} zM4U_#pML4~#I?S6Or`r``d9&1iv8E)+TM2@+D_+jODH#&m~rutFQ@AMT+I2J(C6JA z_T#k~!s=X}Vtso6PDq()doA?Ban_Lf4eN;HC%!Ua=sgRIk!6(mO9v6lTZDy7{c}jh zR;0IdK>4xxRJpc9=6CN!EYw}P!ZA;;9W!qX(VKX$+-{y+0EO-Qx?4`-#ONlf(gs#5 zz3qKcBXy-=fGv~jkLB(b9ZH|X`srDGbSm^0jaZ;(cW6DaHmlg?J6NPT$?sd!B^{q- zoF9*Odosn|W}%poq5iNh%jVCTWA%74E^i5mU9XV5H^!rJRyMThu$)cLNcF_T@kiR; zt`0`o*H?Rl%sJT?|9yFemRoc`eBnPhir}}L*e(8~$zsRDjnf4i3Mh3?Z^umeEwOKl z)Apt#Ngp7#ceni&+0a_D0n4t+%Dxh+{-@D}$Bdf1p~XhxE}Yg0zUiT=YT_s2adp=p zB}1NdFt*6bi>8u^RQ4aEHHQ1Pye3!Gig;pV3FNfLR=tuv88TjafEfDCh$e^ zJD$(@?TLQ%h%8AW`H5OKr4f~bv+w^(zhWo_uWCoecT1+BM@7D5(N$**PDOC)Rdr}+ zds7$U$maRFF<@l)@g5-|O;_T)S-e*7H>rgh8+zZ)S`P7;kWzo5P_>#=ybUrGUNU_+ zbn{FgmTmY${G&P9r^_BHi8Ht9>=czNAse)FYc?;7lc#=D$jx67%iJ9mZ$zadswf~> z-Ok(}UPB*clH6B0Onen_(waE}s$2g+w560hKy1cjbpYy|Q!~3y4SlloT5EDJpxr)q zlg)JgtKHNjhzIpkxvwe^Nu{3;b}d3sStc5$RVKUSVTh7Sdo5q96GeqjoA^~m6@8x* zHpzZD>~crljll^bSc{fQy_!R|_w&yftfg=rK5E+F8M8odsEPWa*)BhV)w!=Y!VMQV z1!kvSXtOMR+4N!JD5WU&rXGJ`pCs23ouM!*$fbTtAO{J`0wNKk+NNOlwRG*>n2wK? zqq*rtg#E{n5f$0eS{Ey*Ub^9U`M6m-xPMTmrv_U04$RkY5B`LH8y+{K6fw-4l^^XX zMyx>beq$d(dyR!U9%U^Z3YtCUJ+k|e_;JVCabAOB9Z7=`t+|gK5}kKu zzP!3;HvNIeg@r48q<$-$B2KvpVv~EXR5R&h7WU*VAcc@(W+P{^rc?ZF2TypX3Lm|` zY0fBd&i|x6rS&g^IpMuH5PzTvB2%|2ob96x?)E~wRG-EdF0=|Y(dC8ktEgg86tC~e-h?o2VKt@oGlL?bE~PN&N7ak zlDDN-kcI?^JRMtOz|ie>tE6iHu9>tT{yY(+xv)DgjcmQXi*Z_*)076){T^72Xtz>qQq?IVQ_tb6N{uOohP;(3=j^&I;f1?$SjXw zON$6#t&6}(PqBN#u}zAQsp~1?OJv*wGDntZ(WdT)F4k7xK?+<+X!Inh@15(5uCQF* z_qpW+Qsf3Ld*?KOKlSd421T{9!;Sqc{ic?UZg#U? z+!HlE%PEEjGX<^BCT=bIB>e9}J+T{VXLp*`Z8-CX;9_(n{akZP7?cTLZ@X2NM3OCbO@fQv7mi>nBBSJ`B@?_ zmzB>$4Lbg&Y)F(hh>Q>*$`OAExg?a=UtVi#21ia_bs?EN`YDyB#*9(7Dpg~s0V>x5 z`-cCTLzt({NR<5uej1-uW2C2#W4bx-sI3=eW6bsil zEFyU>&T^%z6=E`fNcMEm>6mz{yjpjW#~W)!$putzT)J-lWpbW-S*uw%T!O2l*)0VN z3#qlq8x2yJ9bfA=F}M#$VYA#s|EOCx)MK3d(k*rA_V+Z>918cr`aLB~&B)H^2lY13 zj97#ZcnBhlUgFpm_bK_4wuSW@t^WVwe9!k61HEaG=oH$%>vG&TFYc2`!-#ibvb4Qv zIv(|IqG^$`Ygfa!ao+l}r8rl0ALU-iehEoBVrc?r=SM8XORJ;2Q|>R&er!^^H+>+L zBWR$#aQdM$9h<(z`8k;-@vQwLf6l@F@rz&o8&agq(_45#+Wm?CzGwC8&v=9wOH3W7 zJrYb$wO#CzQ;VpnqhD_(Ik8sH&!U&TPrQRfCGm^(+-*Q>MKC>fW{?`9` z;?(@;nfjp#!U-=D!pnQ$P2<6xGd~g|es{!>h$6lHqdht66D<7qY<2r(Yy#(Qi+I(K zhfVhX9w8Dh<#ZkNx1&AMvhxM;lhfF_e{K~OD)Da--G78CKi?`4?||39uZ zB=O&H&CBKmdc@}qefWC5+E;vM?a!Umb()t@{`H+sGq>hxnO{%vE&k_+o`bWk@>u1k z$X)uIOON+Dm5uy2cX`>5+xqnlq(IqUs_*x_=s(5s-QIZ!CinOAgC2b1y_&vrzA<`t zo_9^X9!$~xDx~dAJr;ip2Z--3=1`_%;ncfVJ?FkD6_fsP2_h< zi)BWtZqQ2Hc>tBWKV!3JM7I+m;(#~i);R$Bvl?cxL;jce{m+&c$4TQaX=w~X(IX|_biS%<8uCKC`PJR+Zs0sSqS{Y2o^ z@&BJ9B`AG13ygctvO+fkVPRGi8SWDHe^$`uyE)E3WfeW#_AUr&)G=jaW!3<$L zNp;<707@vs<;n(KW#OL+3%#zf_V4=z+NGGM z`oQ0xb#!Wc+JQyF=JZlJ=3*54pW_0!rKHpeWD6*mwGvchY7;X9JkXBP&^lROJtd5$ z5J1UZgohIa<)?)Pifw!-{T2C3*bIG^Z5_7Zl0)~Pvkt$V1E{k@IAq~ivj^f9KK5G3Uf#6( zYX|NK<)UIC*|kq1(By}jmaK$Zf%eLR(6Zrs%^BI@+4713@M0qh0fq}QrEt?lhDUa9p)XfoNy>~^yS{ap#A-KKk)@gLC& z2>9W;)g#9ix#zB3ZBiGn=LvivO{Mq4htELB;k@vE6Im#jteFh--1X=Ld|O)_5T8RG z!R}06)x7}gM&Imvi0+CCG@ejEy1!9$FN(23mn1PePp#6a8=1O{}yIGd#&)KlVeG|H5 zy@2QvO&{s2O1DkY02tu%vb~8qvFGA3C=D3MqE*`;grFPL+$Q=W!~1}lp-`3vcjDqj zFXaIJMWFOy#B9KRA=4y}elZ9)W8tZD=X96t>#K?lF1@FT{<1nnH2SuKfr@wx>HHpw za1z+BBFC9Qo_>ZRNgzn5d9q?!XsmRLXlQ1%ktSssqFEJ{b^mW>5PC7~H~hMockFzk z4%K50QMn8>M35!>&>^wbLEcY_k6 zXX-Pjg_7(0ZVux#JF|xX{m|I&ZnF!(Ai!RWlQEp6l;^<_S8xBQ(zSQ|ONc+Wvig00 zR!8T#Ytpm#T;1+`T&4gm9;kV332hhUFXP7q z#abFmKnQMXHC3)Lu16!MVuuiB&_&lyx@{E5S+zyntnFCnWcHwC-?w`$F#2e*c#+(_ zBEUGH2!vhQ=Mqht4gkI>Dkw?mxCf95hnsmv@#ZY6w){u+{=AgCqkfr`K|Ag04b!Iz zq+nRn=M1ag??s!Z(Do&&fU9_2*;{+ zSiVagd4CCq81yJWx`ibtpMywsSpYL0p&WA-CkgP8^{bmx>&EOduCwxTaB%b)da~R+ zhIYCgXv<})tgMvHe?~NQ>l2#GqI&uhi~L{$rMt0v>EjJMQoo&zL-rVtkX642QyoIL zdeVG8yy3(%%?u3*F#^Jmj}z(;m_eM2K#U>Qr8XFIEfEt(Lqc}>e!lY_)ziExI(hyC zPP?vFSVRQ!9#d>U@{0KnZt z@WapGa-Ql`^Yrq14oD_eU})^zEt+G5z*&OdhHDPWy=U3FO z8MiF35>wCFDehEVRi(RZVt6rHT~6-bzyF>4-n)G69=DCi9(#{8% z$ZNZUSPt}2&&z%|%>YHqI5;>+a084y!wZJwUFg{qK3oBk27)*YXd4hcn<}i+)vU!? z<9N&2#Z@~7$D3>60hp$CM&+&&{g%Nk9%SY6dx$S&7V8a4$jBk~`tJ*r>xPW8tUO(m+6 z0CjGS+A1e%_3ff+?F|>wTD`9y?o*-eaHEt8&p@dY{in(vL)eMygt&0QHMj0niYJi6#%ELZz(+XuOnr90M(}F$eB=2Zb%5h@sNX{5@hc8b98aUYpnO z&O-|B7HHq;$f?Rl4CIeTqZ*EbxWq@ch{&<+&E zOmXf1m(*m3xkP6+#spvrrC=N{u9&^`#?poKpux}^P1j{%$U;!53&=Ijco|rY;9fB( zOEj_2gT1k?#XuYm*1I+XU=f`M06G0SIw@Ay{&8Etv8wTFyEe!l+>I8iUK8AgciBA@ zRsh*^9+07zSXb$QMt0&Op^MS{yBdTp7_NC;4Nlc`mvZKw9tKIN4tr$o%KzC%MaUnC zdf8Q;PQ($M!IZGWltp!!j*j`gBEYetp+do3jOd2|Z(Hm4aXXg2Q@HNW119gTFPF&3 zv07+0fTe~n!HFJX2N?f*wY?R^L>DkW4PO9odr@UuZ{?Qgb|yAC55qs>bZRj&tRTLqV%U%Vg=*Q}p( z99TqMQ)<)2!7-`e(0dD!M|r; zPf?=N9+QWLZF^0>9wAT_q$4*G^k!9Q z$Gxu;77!?XX)jxAAo@QuX<8UQi@Pmd$}4qX`$46%9a02DKA`*R9)j2nWN=h5 z5!`iSqWstCI52!>I;0~z(O}yzfk>siqCy|dw4c!Mp{@NKG%u-?{OH0%k(!9M55b(A zm6yMR&NtekhgnSoqYMS%vp!T)J>6CXKhg4U#|nJ-IW)}f^ywMuKjfs{?;P*S%H(HxW@yFwdQGHAbX!-DZZ2WboUN;JMZr>-Q>6zwNE< zZy6k?ykDN1x;&%5)x zyiRP(JIKuIOC%45YJmQnw!i9@K6Ken%_c>`gHl;z{mEzVJ0#YK2lu6UzIR7vj_bx? zw5nw%7{1D2q{X&2=)_g0tTQ>L1->EY0ikq0~M$&Zs63SfpZiB!rM_QY2RV)G1G#gEOa2 zae%$3$pMtd^ywCRnU^oOv=L{;e!Yl|Jqb^zv|L#|3g_t4rCZYvrJ;nNjf%%GsZr4O zXzFfchcIl%Sqt5YLaDprThg|v|54JBMU~N;^uOnPpCf(MC-|SOQKDWCrhUU`zd)8J zJ~Axq2#@zp{o>F4qXuBVa=zF^@XNfk0U?YbqcQkO;qbVnL_xtJzeSU`^_b7aPvRq| z!I1z4Io*!tb2uo*qSr>WEO!-D#veLmK2v8+7WmHeOEo(jr&heEn?gE8G=rk!p2g_Y zi4zy8Ktd;|C0b4J2q4IW%#Pb-6n}>*Av&FLVe$F!h=GD%9?pUI2Ax69TF7D+V*(tK z0_&D7;v}zFgt>?aBtEQKp&EPXP$HTc#O<)QqCGE4P3z6CJ}+c1*n zAdBP!+o+a%?xLQj_9oVf_Ow|I7Kl71Z^17EhlYkujOGMhERGdGv!vI1kK~vhM74_4 z3~DXW9s9}z=b6YQ@)oI%MyVuxTBT2uL;$D@cTzvK!+z=o725jaJMsz(-Ch$cLri;3 z0*Oj0iR3}VEJXh@eC$4Z=&fLU?ez+c1eG)A&vV0_9+d>$1h~!8g_S>|1Gv@nHIBoN zx-e;I)x3>HS64Bb#Ggj*+`gSJRU9ABo_#4cEHF?SU zKJ!9q16ednCJP#i03T8AR}<0PbjOgP;3ooRe&NJ} zQfru`huM^?^DqxkJ5HV`U2Fk6@=wwTPB^JqDGfAhmt?u&hQ3cu!-)toheL@W);*nF ziC@eYw~Ksc;lIE42ab+Q4i46{jNxx0LhN_ds4MAI_S zCQLMEt4yG zeafL=dy@_ob16MFFHjaRO6?Vv5y_<<@Hu63#YcSS1z6}bPe?hB-ziJkn21@ zATS;5^F&S>fs|nCI^rXxpQza+D)35>x5=d#^ona8W7hc91oZpius;fRDD47Ytsj6r zo^Kf~wCN6rdFRyuf4$|%e#7>uiNRD>zsUei(cu!u$3!r{TtwQVwg*S+$jc(F`lm%& zjW7P(al>{SGTLPWN^=)A66j;?n7ou`SRc3T=wT)+P2irj@+y! z!aHb#FIPuH=!#~dF&mkAI>y7cqpM00slqTQL&3tlygOAns2wHVFAJ5q7JimD|J0c? z&xm#*wHT53U1L2zYL0=9UovkK$^{Q;wqZT?z+lV9Q1=nGpWE(X|I$2F;cRADetqqa z^)KFuK#JhOnJdJTd|ZDe5{FJk)mpBm0+yT{zTyJiX2&+~W1We`Mf3kKYaU3qghQ3Y z$sbrzn{I2FjnwC!xV!@*e=8_%y7)`LexdRw0;MuXGa6=+WJT+q8+IA$Pd2Z!7uAoK zOrNpoTp?;ty^VmfiszXVr7jZ@BJ>7tX2rJ1w-)+5_MbAmt1xXG>fC1kvFF9-+>p@F z?l1cX9XFO>2H*j|QFv09oS7$&rgzlB#lOg?eD>^`C&x8@S1NM%KUKj5W6^UR^S8Ep zx>8mSwslVx39p)4_0z(XFrKLkH+ZJL`G-aDS}AsoxwGv_Jv#Ih{`w>GfjYDx-8ea+T`lqpv)J(qh-{y4+bwd4>@bk?S%2q*+XJu<5-DMl z(<0rSPo6C>&IpRP&%ATa@_UldMEukO;%JQq_J4!Uwn+zoKhPaz`FYxIKz%<|cfxSe zzcwjhu&uwQwTNnIzw9y77@uY;9`l{~#4tYiWt?8J?9HZV5eziQL$LuSU(jDb#|;t# zTOO}d#40g8REjoyj}WxEB6`@_bp`G$qO87ve-^1il}sk^I- z^7X^&^pP5a7cnvPyLor)Ao{O0E7lbag9uR{DHoQ$waXS!P(Cnh%s@S)=)^T}2q91w zL>D7r)z3x}(D zvGLj>`AMXk=qCs#zDbvU)yBj z^k9{rbz_oo0A|ic`uZ}Vvl(B07<8q1{q@+?lX%T+&AO>$9X)DPEnxDxIaGt# zTs%5tB&{b8mbL!%?)=11N|QE`e}+bm-x;}LT|uc1>+JdL7w((XwtcNykcnc^3K(iR z4=6S5WrK1`^78W8GpHe>S?uD$s<8AgS5Vjnu?+a`w-R)mhJGw?P(HSrA|ERY2Cm+U z;iFxAVHL>UfvP;GCk<5CGP!V_u3?Bm0!AZ*Er>W**<_I_v%h3yG*E1KV%nkJadvw3 zC{N8e!H+?7|1y=`v2cL*iyB(k;2LoU1jsIfpEq4?%0Ue*yG|RN4MD>Y2n0~xNa0i= z2W`=*79X?OfBKz_Es{6j=kW95RX3`N#tL@vU#pSw+~2f0_str$}om32?`1pH%=gp1M~y@B>og1|1fMXoBgySqC9vDft?&`DfF$*4>t zY)2i~$l_sOuOmgBPH=~HH!LP711uZulcpRT>n0a1Tmb)aN3?Y{7Ejo?;qoWDIJz6J3dYd`&$o;+xhZq9#$P>6*s~cy40d}xm!C- z*!PS5Wj0m?A@t+u8|n-F0A=0|`W1c;ZDtcm1BYHHW|>mmDiXV#WV)nHQjU8!J)jXs z_g!hezWK=mPtUbo&cZ-UWF-=mBFoCqFmCYu>qn-2rXk2vf}O3wVY2t8(M^ocEbgmM z)wCG9W6^_+-41Sdf})W#Au;gPtm1gwI63Zwfn8`)0A%rS*UAYlk` zIfjIEF*r6uWnAd=Q0EQmy=unL(97$Kv+A5;hj#bfs>vs+tE*F*oHu<%bPC0B)5uoL zqNiin$PJQ@>EySpX9@1OP9^1Rd`c%cqgRyo4BHH6vCW*|@s6nMqHRZ&+PwR$OfPc3 z_d`xhzimfF_2VjMWPDB{W1p`X17?u6NicH6g4qyGuuaQdks;53scaKo$FVFneN@Hx z`?ccf0u(||Vg7q42oZOq3Q0^&;cN5&t;v=j1@hIokuP5C5s&d0sHR)tsE$PNf2ya? z>+|}oI;%y~hbVrWozV${5BRTK|7UyCkp%&2W>M8#gdmeVT319!CR7h8Yxw2xSSk9F z&mUdxd>xvP)%xpwx~%D`}OR#iX;(P$#E1Okk@RX*|OcFomYgZ8aN-GqosMWeF1htX#a z^1r-R(~WLyPafB&S{i@^|4M!LpL$>)>6l=UWP59kH>R|>iGeYNO{I@oSUyIZyI98S z2NT`FmwacDnc3ZzBF(;Pb%X102AJ?3=C$s*zMYg; z4v0qeeGb{DMyUig2NkvLh}zVEXgQF&_h<=bP}36ULgo#B9e@m5+Cr1Yre|)R=)jVS z_AGmZ`ZRzFj9$1lo<1|9hO~Wc10c=GPN&NZ{kTDL7Hr8KCX$zhFX&1_5>QcR{SdZ$v> zDHs|fE$CeI2o%tWuqlSfLMem_#OK3q^p9@)b0+^w+O_~pWX6Nt=x>l#lk?koc>3b6 z)zga91p)|#GM)l5#{@Ym-=ghuL@LBJ>yP96QCsoR5VxNgQZS&CvQU)x{(-|I1U=-* z`Y$0jqJEGVy4~GT3QkRAW@J{ISG?EK(b<#(JO^lfdWR%M{R$Ogb|Q(#XQZ!xbV8i+ zXJdx_M2<+t=ccr;ZEao1*QB?w3o0-#?+0ED?-u?JauBBPR!a0Ufv2$^3)|3(3A z#sl$iB~HrZDvA$W*AUk!d_w1Lfao5@@($Kbk=)zU?zF)Ci_%0K^=`NW{lcHd0G~$) zv~$-Bwf5BiU%F37q~u-49t%g68iHJ6J9D|@gR*MLUf_}Ng%cR5wh9_oqeGjs|3ipBk4xFccpDTv}AIPxq9<@)>n}+F_o}k zDCpN1Ssv;!5_!|-&x`7{1`G4GtNpbHr79%@c$-;4U>sXI4Q3MNxLOqLZ+2|h)UN}Q zIV$PTsp-kiN0Iok+uNnL2C zqnA&h-(kKLbx!WVror){ky_)3XU`5{S3&1SlVRRtOak&_H||I-xE2k*;9L!UeEwy0hH$Xr|hkd}Ra<{UJada3wJn!!Bbf^TjMX1<(1DDpOMKU|F%hvA*@8ESfz zF2Ms>E};f^PPO*~KBTu*kP|DLgjs5ZWzxu6B1gc3K*`4qiUo`6^mi=-9T}5-^5@Pa zfyK8;$k}rJuuZze3XO^BnFq`F`On9M{#yt~y)NlbcSIJgGbR;xQkZgXb*=NhJaGLD zGzOBcYnj-@txl-LRQ8ml{)tkgw)ef$gyKZGnm`Z{`o3)%*(Wf9V7Ul|hA#Vj9trN0 z!HnT?J3nWiq9^+_N1l<-{vSGaNX5p`jr+P8y8oFQ}UeVE2aY4&?-Hp{{X z2Xf+OD{L!VlAG1N#;DGuJJ`dI?EXB{RR5hv78A*^YT%b8uwN^A(*i*?afr4LnMssl z3G!xwi8|bTbg1F*+HU*FH-FF*&I}@mOF)vY9iA>$L(oyu&cP_%8-2R7nXwPF+jFrH z>2JNDq(Jp$ix$=pJe=pTCva2205PH*4w)_Bk>I%ivQyVyi&S`gk<{q=PVr|uOW7Ao z-lmw^V*$(SUYoU!PMQyOoJ3e7vE@k$xTau6xxV__iu)V&S^`IKy+Iw0&}x%ih%KQ0 zZS4I2T(l<(F+#KvhC;($wZI_%wkPLgd5Ay`|$E zh;;55xz*E-PS|CH`K?dw2E2219!N&K?~O*G%2RJdZ_k5CHIccw%#wCi@1iBj|JN>o zA!k%X2vllz`2rJ=9FZl#`~47*2!q<_MO(y5B>A?>Vf=hIg^gGXkM7+~W{!}<b8qUJFW{D&yX>DMC+7B_xa?*0n^RPy6|VhB zIQdKmTq~YknVA}Qz9Jq3627oN>@=l&;@!0~1QVr+Eh_9n%QiGD=ktnQl=SqGqj zSK$%)%}|*Z^>aSAZ4`o|^6^aV&$xisgQ6Bu5^@cMfh58o1Ujt*p-(zN z{EIi~DqKZTYSooOWF7G%PzEn9klP8oJW*7_GT$iVC9n9txIYhQ3!2((ad$M0SJKzY zl>l>Rj)J`bmN{q~nmDMvV`dT|OdY_mhndC1mx1Xh3gp`WAcN)h1JYHHS0G(!BsRe< z=CeJ@DTf8SW7WuW{?$SJ{sB-mX~sJFKC5jSC8xe+t?nmagNM?Lg9{YDrLVQ4LkK~v zP-tm5Knf+%-DKH~&1O)c*%s-mu(@8LYPqGG$q zv1@TIFpNQbN+>%cOy5ia%i2?m%MW;N3~A#A%8|goR zGN%5?5f}^p#-!eURFM&sl_2mtfXRjZei$D6w0M$3bqV{g4~sQ^8ArPmvwDzc7%;8~{h0-bRnC>@1pS;~z&Ir<6ufDl}{!DD7> z8gDhwe7#T}1ISd(m;B*|P#rzBD3%ZT z#&heVcI>&+N=hZIJhurV`JOvk2%xW+(_)3?Y^>rVV27|#%{C)7MOj2}k^Dz7ih$51 zPYwRug)r4`$?BCWR-8U{YV9chGx-29Ft004#QD(><=2uZ#~8NDDq%hE;6YH6d-o2^ zbd@SfO_ve17erN$)T~?APfxW=^;1%H{H=3(l>W*q!2sL{DoJq$eAVIfe)}TyZw3~b z#@L-8>MXHSo{b<6Dxu1l+|VPJPY)7#zw2Z^$?-1WIWCqrBV#<(cSJW0AU^|?S+%{n z@aw;`eYbRKjc@|47&B6fy%kb`t9i^$ZwA=QkB3T>+b57#$WC6x79>F@j|iv}F*^ zXe7jSfdV@@I&39QV4HCPoO*ym5IM1fIz&-@TY#Msln)$rXM+{2NfEO`MKmnL@zl zHVIbbDJOc39XAbJKISVZ2XPl+-swMj&V=>qa|J)9%IVHR0nA`X(8}9@P-9a=(%W{9 znn_`l^^ruV$#l%bk>tc^J>E8Z+QLbo=xGD!-;TQt`@6TRC88pPj2X~kG>dhw_2-H8 zr=22DG#^c+SDsP&pE~OT@8GZ; zh-oi)tYfiHI>7XQ>^)Q}m>BLxGf~H>!^apm%ZXZkirL8Zv&{OheRh9i_+$SanYb#n zMV9GI(q!ey$^w-sdM5Gg4Y6q!qjW-S`F=axLjmgV?4l|s$71>& z<#=Z;LM0{5_e9$p6+Div+o)bSo1$lzxh!v3D0Frx=#vBAw#~T{-9?He9RmTC#{-Ja zPTX~j`b+s-K?VUUK${zC%>*1s;%D)c`?@2`9O9jL`rVVMFZL4WXE@SlM`C&UCsle` z)6b^L25hoP$e^_EvL7#egvHVx;R@O`)9$`>Sjtg6tgAiX0fqa`M8UJ2%f&`CTt?C_ zGAd48VjU&Ai>1BO{u{{W>aR*AiDVNQwL8!|!a}cot$~eQq`RWu>ES`euGYrBvfBwo zt0-wSi~fi#G`3eSe2Psk2b#8Z6U-DvNg2 zK6QLCE=zj^aWAzC+i9KjuhJztbHBGMPN__~J2po3-DMdcE0dcZ9L;!c%c>HyDObza z{?QR9+*g@UWn*AZxTO#IXcFz~i5i}M0fPZ4-5kq19A1vt()q)c54pNw?2oZ8k>GovGwa^acc<;wC(vhhgkmIeN{ zU)3os1xZ5@ll!c09%s5_u|76^s@6~2o7lcDdrbZdRo!nGU?-ypyDt9eA~t%94kxn&4j)=nOMGvpW2$_4kyLdPzs2mOYZ({5I~HW1D{(xk-{5=vRk|d-eV-%O z_RWTRJEq2!lDa)xrAn{`KKAGDebtlPVEKjM-6x6ut+DwxaEEjfbIs^g{aFLq{9!_F zZaYqemB`+`^}688X5oEzHgx1!7M68sS-z*aK!_HOz>|A@jyejH2ip5yc(SD#Gt$3q zQ+f7`JTv>%qF`8rB08$9Zke8=II#)u{(yr}B=Mb>U(C+p*`SWCq2U6*nNk;Lv#lzV zW<#w;p1lF@{ma0(=IwE|ZbXj&{c!t~aVp zaSTr`xUczO{8>zg7q?@r zhU^EdW3aPtj^d057BXCfKI7?esq>$o*@ze9#y7pS6-!f)o4^4*BQ+cHBEV5;R6Jf% z|IMzdUVfFk9zzcw9lBEB9Xft4U(>EV!?CYqn5*_~%O3OT5B&Tx)}e|HRT|p|iZd8a zkC$os70yl?vz6k{sb0t4;wbCV)Uts%Y{NDO)e;T%{^=z5PU1j9(PY+cE;&~e8lrIR znlY>0p<0I#<0}#_G39-q4H9fcpSTPL*sY248hKhEC!3ISLFZf5>|pM-n!!AsGsz}; zF8f;w+xW&<>6hFROG*4P^>w3w|*+{N~^~@kG>4cl&fd zX`FEI{=;p*h+AG+B-^e^;!mddWPnQS$VNyFh0&zP6}Rub&<$syw=Vhc`dJfY)xV-f z97cju&2<}Bo~&#w9J9%vc4INR**yj;!rhi~OFh4PgqbUEU3=xFXtC;=HD=@lgE&I@ zq=?TFcbPe>84GP;o?kyN;TWt*DsYk4;|y|U*4ksTG{52i0Fs16pNa-7MI zQ9nJ^XjDEv5bkNyci-`I%WPU&ZGykp;C)VWCX>rCBbgT2J(0vw3!MBL+oSpK~64|sZJ|>Irv$FPv;f^ss^Th7kW;&83j^e{{JiVu|n=htgSn4I)&D^K%6#9*C z$6yyoPZ4dpsQ#*+;{FIBhmuB$O%K$VK-c#RgU>C+&iNj5nLWW^RzJ)Uyj0npO^>iK z7L!ld0z|{rr-pJTnld9XizIpx^EE=w+9f6Z(w47$>@q?=p4u|7)T=u~HsF{_?mHan znFK2%@2tB`gb_@zsU}Z^($=O-F^jP6i`;)L=C;@u#vzqne;)JcMWi8n;MI|_d01r0 zy*B`G8{~oz70G+V8`cVAsGM^mFE=-OkOfkE)DkczCM%hs#`REALs9~RIa!&CKzcru zzj&^tosxW9eVv-+PXN>TE8RT;3qD%@<~#jPn@Ki>&v7Zb+dw0Ax_mZ#v{7=y=*TuH ztIRB?7DA4$%c*;DCOpxtNDP?1Q07!wxUFJ)`^d)CW&_W}bPmyeBNTLFMpAqhpD%I3 z_|D6cw-iwKWmVJqiv6qe2)#2ARN^yP=PN>fEszmCv}snQVT1cjOL)K`iQL(#fk3)m z+x>(xw0Q!bODwYY$Kl_ebtP^}N2=oSQZ>389X4y6dT+b6HN{9t$(>r+uAiSBN!Q*) zoX6G|Wal@%Ix)!ylG=`YbNY>UoX)o%BRrfh5zfvz!8ylWtJ?4)mL<%_aEYMm^z*M@ z7@n!kr5R-GgOMGcB=ZpGM9;s_j&k&&qQr(P4PKURmJId`OzceUv;Oa$4GmDbjJ$U=E^a@xmuZUc5(+4uc#-f1ycz*y0HRS~NXC*tx1meKFqmpN>I-2ZH#*V=;b0n_J18tm?9 zO!ui@zG)qKh(1!7av^OZr90tLufW86MMq|#?G|J739C1!QcZ~WJIe-}Q&0@9)-#o( znd{8Q+nv>-X3a~jJhk^G&d&5k(^blL2aXnAFwUVtx=W;f)e(6%p~F&EFAuoaO-_et zB#O|dF$;V>2UnQCoA4WNcPxA)F-%8j40o}eIT69q23GcOt#6h;`u>fri)M2!>|v0# zI4shR$+u6!+8?FmoaK7rpv@_n7wwEH+5&%FrmD+ zD(>u1vV1>M$vne4J-E$5VmM}YoAx~ce-nOEV7~$SFqa7|=*S#9##i~b?$~+!A?yj1 zGL|S_=iU%`zwx61RXjSM7n1Gkhnb{0jUV9JWqi8E?gLNN2F;nVS$w^q)y>^oRxzw= zAoC|3NOx`OR+ z_u2o)*IR%^*|lrK11cq{AV`NG0#XJY3W#7JA|Z`{BHayx(ltnnl%N8Fbax2@(hAbu z-Cf@``s}@*cmLn_&*1@xcr*99*ShjN&nqVCWtZ9L-sA3N{oxh~~_-`n|vlHDe zLO|^>mEikZwn7$HTdxOmt^I`X&%cldyw^6*Am+qK#J1jHIirY@ckK^rq7ugL2-P#>QhIW5f%#+oYLde~{&Js+fm;Kh_dJwf}23S|{SvQS! z*IQrfv|7$jy*{Uv5R!E;oSpCs4()9&8c~C^cCX=jwei{=ae*ykH^Y~Te^Q!nmq)J? z2Yb>9ur?63c{@xJCKki3`xt`prLj4jA3f6cebbd&{P^)yL1V;eTRCA;!_Fot=Y3I8 z{b#L{@ke9F+;*}{z;LU2zk2}YA{poHAPit!#Q1c@#CeE6jDAlb{Yot8O5La4zweOc zMNo4tIUSu=CUll!A-1?f&@3=`f_iY-9!67WTsp7gACQ7Esuw&yFD$&OgQOg|N*oyC z(67^w%JPuF^!7va=|S@|)C=B+Nsm9UfAV3TAoxUK6N;Z?(qcUR_KU_y-pf)W$DXW+ z=Z?5)EG>m%uul`E%R z4ITQnM`yH`Z~S;a#*dh8vfcZ*v{7}YPE19f_L578>D=O?6z-J{x7l}ka}>01A5hX< z8AKj#EB5Eoa{;i+l#Z-Z*d_h9**OIZ(G%06mXGP1xdq#O?q$vtco%ree{OwhS+4gD zu^!Zs^dM-&ReEwD_eNo+F0zI(*l0+8W_$)3Gg%@IW$mfG&Bddx)7Ha%pLMP+=$rn` z&M`B~YB>=*$4d9;V0m>YizFn-zO;RKTT)tDOF>?q;0#Lo%G%Zk%cDIjB*}W2?fCa| z2+6sRPmm{?Gw6mCJd9u3IREOg zT-3RF(!DoxK5TmTaU2(oHP`WHM00)uxiYH4zGs2oQgjuq=LG|cVc9*IeZCfuo|FW#SD=pm+4(tU^H zDcjiO^SkQ!AT8~KzS*NlQ-)7L_}bn$$4RP|cnPC>x$Fh=ayI!yE)J#+&!@99+udBA z+V78r@&)WLIQIJ4UyhFZnf%rs0jKlW~(J5@z8j1 zg>fTyH9mDQ-nfz9V^eH9|5VWh7-i-dj80#k;d!9%co|*_JO{vm`*L!3Oij6%Sy(9O z9%#Vag{9GI1`q}Sc#DsAwydM0;7w{Gz+92d*$QVLWMpT{0-X~8p?(`1)?LCNh7f$u z^Q%%Sv#@ZPR!B=Y81Fa{2V%GY3}^A`KeBOb)#YUr7pDhOmbNe1Besjgw1OTGjwm*D zz&{8HUB<`9fAaNNK-O_lo*EZBJG&%cB(GQ+Nnl#G(lG0A&}n1lR;_!sI@hJ*LFY1@ zp?HQ$?T~9qDeU4BsNIywMd-RvXuIzlzJJJukW^P!kJUaSto~EUpHT3^pVJrm;;5JY ze?42vr!K0FCc*90XXALyqD-4|)0b=%o7VSgkMj=EkDSx$8wVUD1rLUVI;Wj~jq?B@ z*wbMDOCV7i$DyXxTH)8Ow+=d5BUu#ZwUoUHD?n2q;g?2lmU`}b^-1Sz4uK-yc4wUn zWQwx@oe_%e>3zr+PKuMa$u>1dd!U}9`zHBg^pN|`SiE+&Z^H{R@A(KXo=g=^ZRdGb zMN19|iRwo-v!WJRcTqc*`p|Z5sR9uJuWcyt2b@V7fpN1KW)LfS*)aha*-5>Nq4DuV zmD;OC5`hhGVaV%)EHc@hO#>38ET91`l78Vq9fFid)LGtm^mA=(R4|ReM5L;=B5jjq zv3Y#Urt#`#VXw9n%JwAvB7d7o-y6m{?#NDk`Hd(J@(Tna6V1B zcOKjGvkqyMO%v}H0dc6;nT#Le=!nwG2=#R8DEFs~A}J!igo`;sC8y)E!wK2p==Al2 ze1)bg7mJ=iKU)1QDq|D#BE9K4v_XBCJ)GN*3a7kXxu=#pBIL-NJMNk~bWzVP+1f3a zrLVE~uh_<0TvcscI6aDQ;eBZ`lf-hZ^z=>C;afkyxqIs{TjmAeN$=`f0pE?6I@rA4 z1^}AL9+S}e5%t+~tu^3h0`YFMeD`aX_FCvBA##NK#C44g_nn7q?)7!es+N_5%brI@D+ zVs3m@kMz$;P^A3+j^*Eu$?5t+!l8kb+K9@^BG-^|YIn%qxt9i2W1F*tcu&R?{FScM z7J%!0qN93VOHHsnQJl4WRqSFaJ3*LT#2Ye2D#M4CmmeOl1*?j-kFR@DaGycB;d<%s z{ETLOBZDv!ME=gO)JYV<{h?jHa@QO6Et;pW_a?Rxeoz_pgHfz;N89zyPH*pGC;EX0 zlO&@p30Gf9XjLw(Cc(*}q+nnOsjIt-kOV9WJ038OQF7sI_+}QKui>Vb`Ck^Q2dip3 zorC5qSrpK^r~sexMxOQfp(=2j)0a|u7uR7{R&h%oEuhl5)N&*XFm?#c4Xh#_5z#qB zcTdlF&6_iQC03tEcK|=CR%Uw*!_}R!0vjmzj_dk$B0#D&fD)G8?buwGU2}4Ba=#*& zAB1Z8I0+<7nL*=1_0|u!&V%YvBb~z#R-rl(oIjAmVq{^F>T5T>Jqf37r`gKsMWMP( zuir525nkslqpi8F3$!8tSpNKD_D3WqR!NqoI?yli1yjC!VPay!0wAxqdgeWVAE&K) zpQkKpu`&k*stcA66%=GmO~3J8f?opYLOJY20B1|X;>=a8?|^*_b{Y6Blml=+!!tGQ zv$L>A!mI`pWnXu$2Mdgl(l2g1d-)c-o`eJh7)RUO{d*R>FWYYJBK|t`zaP^UFY{X$ zwAgvmj7r+%w~b0|1*CF#E>Dm6hZ{ySjO>yiB$q=y^A`2dkJefohhzA6ce#7%xUScB z{XmutpVm+|aQBLp?Kwr)mNxpVifjo&l%rL?qocf2+G2NYGck%t(7vG4{fuT-xp8H3 z8i~W8w~X|`A*sJ#+C?SMoSCQ8$=eR#kBjMVVQj8Rd9aAEusZoW{+Ne* zEjlO6{p~OF$75b4kX_dR*1Rdz&t71jT%lM1DCisfi)@mqzwUf_iuse>%W~_M@`VpD ztHrnBXOVH+4r9!uAe@xYm>7SMZ!)?`4P1cMco9m#g4~CBM$4xgEj$kn0N2YK^Dx;E zz~6U`jXAcQD@lENjBfe`2G#?Nl@+b5qcgg)Sq)9I<~*>6=O+tvdV$x-4&eH;E6`ZS zi+yy`p$F6hio#z%f4+lXHaBN9zPIc)J39-lD`(}`T{P#;O~`NWaQLG1yWq+wR3kJG zWhfp(+O&9mvzm(_JSf z=H#qw05xhI0?E)rC4*vsQ#C8XYZgHCGFa6>51g|tBNjRVV442_*jRJVWa?lXK*E95 zZ-beBa(BZv}x*FR5_Ck-to3E7K zOHoK%v33DF12}KZf~E4+fn8bIslACK#P#0dt2_Hn(~+v0JEJjLq7G!MhBK3ut*%Gq z`=bz^{xz|7OoT#zBapv;5ADUqes(`$`*X|oYNj(;!+vZ<)?D9^sg%_T8!gxM`89p& zo2H+aHo)MD`iy326()}#^{a@jdcDp!NZg#tHFmX0dz!ZbIl=N;sp3Kce)zDD&gqGH zLW`SL{3fIbczEx!HM@sQFJdRje|6chE^Swm%!W`UKUEZ$X)tghB~~+wb7;>;A+bfv zXrsM0OA005;ak2uRTpQLxx((i1Mk!BW~4kTeh7e&&xZg#M5c#~2*-1fSKEb?i_7-; z*I`1~R{e{auGvAnXr$r^ApGRr_qR*7erT^yvS)E;F$gF@uE9Mi`g;7*DSpxf&gxO@pqs!+FT*=A3yw>t!o-0{I$y&O*2&>GN=x02S8Lyum0RByYex=?TL*RV zY<`l4RCB&X$ELJuD;zuejiPGgO&%>%%gc<{_vf@=5aU=6RXximtt?K+^9C2~W_>M+ zd%Le$pKM+0pO)o3o!=I9+}PI{u_@)|z3-{mc(&gzn)~*c(X_1`UoK67#P8W(~+knu&e34K(9s1JZc zc72{3cXM|ChfDm2U(2y0}9t*zjYp{d1!bxvGh5dLBQjesC@UT>2beM4n zy_ouX6)KV#&e&(+G@DTn8ByxCke3hW2vN#Z32gTcV@$Nc15D*4vZ8MP2;JDoG1B{M zf4x9K)qa1%(DwY8>a)MO;{D4f_+kI{H|ng6lHTaVHv9560bh>wBMT%e!EwB(O7KCM zI&I(PW#XlM!qu4y4_1<4-(8i;Ili>%ECL;k;h$Q;pI_%2_C~rt^_Vz%w6PdKa7B57 zTg$Yj_U8q{3KOqnr;1k-eLQpKf zbFF=JijUN#;6=7UKP1Pz;&TV*2RSLl*=TIJ+DE;9Di92~oeU{+4OMSil-T!hT<$%H zjw)IHrL4<0S2U=#Vzcw?`eS;VW5bhC(fyznyG0%K32PmP*-S_U-Gx|&WpBtyOLsec zNlB^G<;7bD)-C||1F+pY#CBsQDIOu*<`*wssP`-N zPSOsQ14TrAxEFY9(#wEKQq))xZGrV%+bw8bmltdlXE`>PA9;nFap?Hs;ZJ z?a+9T>7Sk{Hoi+r)qR274^=*DsJs5N0q2|M-usEoC6g77O9Qh^uLn#u1#RT{Nh;q; z8K9lu2?T5k$jvY@N={p^AjY;|C6XTW{0(Lqzm!;?eqZE%CNC}hIpSyM`%l0JW8~vgGy*q$J|sLWjFghHcO0Gc^y|C$_+WT= zT^qn;01;9MEc8K~gi6f$CV;p)l9=AA9lU@`C6t0r4GJLoNDf9?Z_D z3$`eU$1Qa+TWg|f)rj(hbDQc&k6;uR>RGmXl^Ejrg*Ev&B4~T*t9pOHXX^uEJTw$o z2F$dzzKW=vnfx44dl?R9iLPJBD)U$ewS()llH}&ey-n@PL1>|30 zc5LBt1)^eNbO73Y`#9AkI#*goX1_opyx9v7e|ujp0E=^bJIpZt*3xW?zBXv_ToLWN z+^o!Jwz~O?;>`Ddmd>oFZS)M|zv=_YSv=Rw*k(kF^Oos^FvUk%N{NtJ0rw#$ELoAs z&*Y-p8`O}AzV12M$$2j6;h^&{9%=}K+q)0rChQVV$mtv;;JzG6-RlEhb%8e?D7IB) zarzyuE#@os(D{MGEu4^`b>mT|7VC+)4hPoG+pAlb&CRO zFOWCdX^`>q@Q^^+1(Q2Ie;(6;CL<@G3U~je!U7ngTseBhOXcb= zdZL@(KQQ7Sg3brZ;FYUa%LxUA69Yk;v>Mg_B6n|l|DS@NIl0!X&Ygc(|I(CbF4+j2 z6xdy@>Pr|+Nk>7RUBi14jXAy+NmXE7_Vh*)-3_KjdY#+Y_ z%!Tz>Ob)9?bB>^$=u=zUYTkd>VY29FE~a3Qhrk!r|3GJ@lk^4|nc^$G{QewZ7dAun z#oBbZi~^{W?sSQeoM~#(PE1TZ(a{M3>@<+1al!e9nL%xfpPwINCGan*pT-m_B#I~R z0A$n6nhPS>upcfEn0AOCVoGg>88aY#%OWIHDwd+M{$8Uc7yIR_47?I(jeuqGj{?m% zF7*Pu_4V~UEFFNk&2wlREF5WObH|myC`CGQ$dUgmqyJfYa>?^QjClbRSVALiU&L2> zHFh+wBv`S^kT!DYJvi3Su8)oF`IZbeD8%TKQ7a>=S@?l|rqTK_q5Ig4sjZeyv|vv^ zGOVBXl98_Cb$^=CXiiD`@oplPr-9T9Fr39Mq)V8}xe68`{_>=u#dWAigWsT`Y>x}m z(sB59kKf|cBtuQ-oZ8aSnpvEP)>ZtG%M1_ixLT(hh~IVIZJ6l2J+@a%5O>>+)ww;# z@BS9eO=q`-HfjB&oV-YqPtO*P^ABxRN#4 zwNAol9Ylsi3Mkmq!%4x^)d_=0k#fQiHtqAwOhCj$(c$Tqc*aG%zAK8fMEtft zM?XA|q#t9DuIt^T28FL9v4;qc$Ei|~7Cu!{0)ZSW=mod}(K2l8xr)jqU>ThWzV|DA z7N3X$HyNz@fane|!aup!vDH3;Jt|u!N8r1nf0j7jV|DZf9 zd1yQC-Mh|t?9cHH5+m2@C2ki#vv)Jyw%rO@nq6i3n@uQE)=Ip-`1k8SA45B!jR3pf z0>2boZIpn(VCP=_t~klk<*Q%(IIs`GHm#u8rfXJq#cRZMdO$g&Mc#Q=;>f6+Huh5u zBhjC-k2_sQwSayMzkrmHz%6z1HV24k>tC!i=DaVbkWhucoMB1kJVhaJ{04>$UPOx7vPN#vu<&-0V6AI}}X{(S_iu3}($Dg&?;g zaJfu~1Bh;a4qWcPrJH%%I~~7_c=sXpbF4~Rk?#_r=qI*Ad2;hn+l*hKc3@N0+JGuZJe${0 z|Nl?j|D(+*5!Sz!kxWY!(zIpm&>R+2Z7(Qer1k48SZhsDeX1rI%pTCM(!$4k!o>K| z=H!O4Y`bT+CdsZS8Cj?Z2nS^>L-`Z{<&5eWVK}HOa6QjE3u*1y&I`PQ1+OoHKFi{& zlr4ts{r=|buqSUWAVB71@R@ff-#b-J%^;9pav`h*H7txtdGqEC)lDPPZsS5yQs9pk z7!AS}kx428ixV=q7a;%Tt#&r0H$mIW{EoY*_T%pEZbo6@fk}6e#uOKOJX`Y>DA2Y+ zplv8lCu<^zD|6ZU8Qc6q%?*(a7&H4}$A90(-MQZVb);wtpaPJN(PU zT&gcqJ!v>wmGoezf&$Tb`a5fPHyxaEa{GR^%|A}_?om=_% z_~?ss)iaZA7J1rxr$M>qGdnwhqqszGEN;TX?!moEQ9UIWj86!d$i@X0t@)5K4QIw81>{!A{7a)Av175D%*@y| ziOtYr`=8fF_{>Whl*-9P$U{npW+1jcp=X2r*F}_saTrCZ#_sSYF+8@3la?Ppq{oFk zYZ=p>)1H3K0VGYAI1mLr+FqLM>ho}NN~36tZRG{U^ggza-Sx)_Z%@luK#8 zA_obFH9GXaawRQ9e-Wnmjc9@7mz^1W<%g?WJyP2H|vKF^!?;{~1UniX*|jYJEv#5WE$+BKL4 zL&I|tz2gTDETN^dwDWBOvt_%ja0sawjmyt}z!Zx?cHvoM7hOhAK(w~AT*1Svryzb% z59M30qJGmxU@r|E_W?te(-<-YC=tVq&|EdHCeVtwuJrU;7af?ff`UZk6pRC>g@n$g zw9*FeF;;f8D+Bkyu2rBYJN~6q6)qT6%3Gha|Iq1)NaGl{nRrrK@ep|-@+0i z%KV`NGB;XLM^Xri;XTwrLY?!suz&wGf^c&#@$^U6v?FzK`!7NR6;yeGVGjI23~-Yd$K;H<8^AXA@spHIlM=U zI;R&J%T0Q@yY>pyuhYBl>GfAJAdjpR84F=+011zLh8zL&2i^b?5#MIjm8T%`-lsQU z)w4_x@BeA$y#9H`%f}}fL;^rBxCY={-ufEV?qcExb1YqIx53t7TCX>6k_*RYDNo`P z5k+!=u-`pv>%30;Zv`LTy<;5O-PsI(|K1M-?Mp-@Q0Vj?V?IzBPi(tNwm*uoXvp8a z;SP3*Lw|+i=R+vcl!cNA97`!=1q5V_q3lR+EFS~ zMIU%)YLEz$qVhv}F1qk4eF;0=l)8Ht8+r%Q=t=X(L^x-F_`LE9aQw}7%c9xszq55h zAS!{L_T!sTU@Mcf)YSUYKYjxL3z0|Lo6R`EkyJQs;8orOSDd|KE^yOEtkiLZIlx*y zz2>pYw7?&nffVz`SN)mIy{#!l@*a8$Z*6EOHo}VI(-5!L`_vyI5M)f1eAis5*obL; z@XRcbBq4rjE#)Vt-4Flge1WC%4&rAU3zd2Px4FIlMof3N^+w12^s~bGzT-n+h{E1Y z!FrPivw$ot-j|rRm!cqHrI!ElQ8`_?{FgfTH&P0UFYG0TssG(L&d-IQOCKr?Va5U0 zuvLNmI>j$YO-bnsb@*sKWwbknrp3e?9UA%un(~f>ss~|U5us81E;e>CS2#`U>C+2P z{u{!12&WPRaxjS||C2dE5)jfckCsdj*j2T+FCtZcbpO62F#I~CqJgpa4n$0#>w$qI zz($_3qF)XR3xhUEKX;FW$fx1O-La`?JA?;G!v4EEvI`rgr{;~(vmGCo$}c*Wrz8(& z+@d}tdRye80G^hQqaZOy6g+Qpk(hbeWpz6Rqyofbqni7@3Sg}sM5)G!To)C0947>; z$E#Br^z+75S8*JdFX*^{;k%J&9d8mekMpi)x`sz}svoTT{^`l+=^^s8W7P9+Wx!bB z6j*BOvl6HMllGu9UR3QXZ>!}D0<}4Cz>~y4YxW4Fkhgbp{QQKk|GLrAxiWey7rQJVz-|4<_Jjzs}kW=mJ4M7qJbf3q-L82*!0V`q&_<|%l28Pw!M=6V{{m73949 z23FGL;M)*Ge*FAd`nD--4YG?DJ-xin%56*QfG`kf=?bD4Bv63c7}tbunU}9GI2!^8 z<#LiG6MBprU@u7bKm>mss+Lz~yRGP2{Z=Kw3jaVL`0BhXX75;ny00HC@)_Jq+>o%w9ummJ{9o2F3dq59n#TW z2;Fa;lMT!em`^a61y7WXm6eH$ix2{y=t>Fbqd!qpd;m ztDd3-hY7 zsffo7+4iv?GMsFNkH=ij*2C-__fo6qflWuvGHkEAL%lG5K# zm@j{u-KqV+;a$J>zNj5F(M23+(s=3|ElvQXRvWL?0&YXp9-sM>p&m~=rN z5{$uxXldzOrF$&)Ka7who=u$7uN206ehjmV*(5(Y9?Bw?&J(||yWOkrH)Fq59VtN| zDcv0j$1X{E*DHx-P!!hykqI-4mZKl*00@fV%^?eqk z38>4yI$JAff+}fgek$uLm^bjhU&%Ce7_W4cU1e(1)7X4K=IGdTU)p!1c0m&&4yMeq ztBoX7Z`aTGAUxQ&O2*g3vky7NY_K6#!Rw(z3T$X&f^Q@P8<}Ei?SD3Z{yQqv>IEy{ zcz9n3-d3?O(uLh{qDIfJb7yCFoRmxv*M?B6ihTD0?Ttiq>eY~m;*#FA|{$ru1&QLzqL?9s8-QIoTcNP(KklB7dIg(}x)={?Az&U;OsV%}ie_8MdXu#MAayl4+>_ z?{B-CZN{RlZnButyq3Y?Pz3ZIGUHB|NdXbkpwDDW$Z5AXz%Jh z5?7}aLha0R3f1 z;kVN+4r4AR;mL01s<&l3vMVco`mH=n_2u_9?aWClEnJ?-H$5PL&NXvGZzjL zXiQx@4))99{Lij7CUZ?4KYDJ^5zA2kC0bsV&2vbSK+L{PYbpB^2iYSKDU};Ew&&+& zR++l&8e1pB#6g?T=lrbeZ=L%_41__Jr-4gEvmFyts=n*>{i~Mat=FKdeg~?FbFxR+ zZ|>Amh3|3B)zxWiAGNjJb_Fc)vq(2oN@E}|-N^-LjOaqk;_L`@P}eRilPEtm6zv`6 zL@@<6#o7FS`pby5+8Ye~bN9ukA8j|b_F3%>H@S5EiHl9)CbGqDULj~c7*{)Zf8+&h=#I%EaBA-^o|%a+U?h%o>d&S%$I1<&Djsa zwxl|4&k#KRlvjPq!n|Or*8JD+{xz9dF0!0E2QGM1-cWC8Pe|Y1<@NJ(O%x3zEMA$ifj-AqS30gsO zC5M>uxw+!*_i?vV$?Xvy>FnNYiNmv;!WgK>aLtR#s>#r@6#}sa+T>>eTEi`YL^MebXSY?8 z!UAJPTFfv9I7|th>wF~j#P0msZl}K=`TWc(*5955=J8`n>j1v^{FB1Y{A#uE(w`dw zY=be9BuN?e3*@Z9wJp+T%!ZX7v$61cpdyaQQhn8&A2&|Kmb zf6uI5lxmq#o%**cRmKR0f8D67oc;_7HvU?N>S{sYoJSGMDJ{2JcRBLIlNR#(~5!64%5pMC>t7k!6X6@&g(NEozQ z!R+x}6XOEEnZd#Ja%)&qYwkhMQ`N#&*2pkZf3ZOF3_F<=8fMtpw7Am&fZ0^ymoD zML9*kyshxJi!ZDE=MM7q(Zt`sf5$rot<`!=>dugsolQAB_#m2ld-t8W8iXS?-WMs4 z#0VGOf>XsD7l`TVmhHj6)&ABIL&4L7rH2Q(|0pEZyz#^Lua3LXzlP0KooCLjj2^Ig zqNKZ7(~iUt|K;^CpLI;2qSn8e@*~Se`=k$9>^9~u@$)O>&W~@!!o+#6>LdQLO&Iq53wZr*Bm({L| z8&UskG61AJ4a=Y8R}+rXrbo0Mrj@MY5&rZ;^*flvos(FfvP9$+c}g!8T56win@G;|PZIM}WA! zQ^&O!DWM&k((FBpy6p+02tKSyrI)rJdfR^+l~_LRrUwXK^05ypfTA#PWdDXw!_f7W z!=vY2x4u9RPp0=793I8pp{pM@55h+s?Nd;FU$G)*;RC>m@4ib5WS4Lu zun8=l_;Y|EOqvMyok>2;q~>vkR&!ZZFaz&dUj`)3u7%sL>BBjUz3Mw6C{joug4pAP zo}VoA!O5wr+`spUM4A4WuHqmtd(dviA@_@gkOvXy&LI8wsc@L(EWax~>Fff~Pw3_$ zn%7VpCn)^s(QRZxoi%Fm80=J0W?RGGx>D*ewypdusS*CxQ3o=moK6H0C#D<-Xdu50 zEu^aG4&Z+R8UdkyW<+C~nLwcG&DM0b6J1r<`Qd^7*~+PUhqa@|5O1sMQ}v=j%jfI3 zG?o){N%mq2@+BYYG2rF{IV^dJYmyKsa6Lc1jqQ0;aCccQ#0_Tz`Zp>i>qNzGWXfTq z{pRio&LW^Ms|BE0P_I!2;uGmY55;)ISh!I_=T zA=CPFnS2b{i%aX&xM0TA>0q3IhnUK>}uI#LceM zU>`7FVT+iqbc0O+a&}aD8UNSILg%W%g_?wp0b0v~>X%JzF9#?4#WThDa>yv|`Pg3BH`Bx~GaC`n2dQ|Ev^V?>F3)=NCQf*LV>1m?C>9m&(7h>Ey-7_gAabwtJ%(C!piuhpqM8 zMB*-dD|wk{5_yfFu{-go(Qy0g%*$9)zm%8An8AR6_MY52-;fK1)qM#(1V&gjakDDS zqWtR5;+NrB8=Iu(yd#zl1O6pKPWsNXlP|1wc^1UV$uE)D?x7_*lQuP>k#5kcP+5Uf z_QsP{KTBet=yr7+>sbN-KuYdsG3&L%&oKreG4|VSpySI=zJ9<3)W%EsU?J|_ZP3xK z24LL>DYOv7C7a?-bMqp(^rLt<<;4jtH2~OXK_z|dV#c5S2TL$F5DS2X$MhLdtu2Sy zhWfxP3qUyl#RHl;XE4o&g}1Myj}sw3=uLFHYZML9GkxV-uUrf=oiG?hkzUfQd|?>C zY*!w}ca8VZ?ymH4mv&%~C(LLnZxa)^URrjB%t)RLCNjKmWyxk%GNc28^Rsu&Q8c;= zUSaTH1WVGn4U7mcQ(%A}tGz`d+ zP=!z;*(6WZ($6x}p}=Mo7;v4o0={Sxm8Jw$^kQeb5W6eb2di*;>-_=E{OayWlR5Bd zo!v&Y<=Nb5u$D5r=wN0p=BKu8@ka|eb9VJYl3$lUDGe2G3f-hT`8n$QKw8{-e}Y1> zJT>L2xytC$s-7H(z!L#M43Ps}>4rmZAD;u4IcaG@%P|D-RIm`3j^e#fuk}Mt)@#E3 zsRXXlOK9!m7Za60u#@!ITzT4j>KV*sCdzmOVVlz{s4MtYWM&UCkTr1}ig0V^WAbMt zNwnX6FA3P||ML>4Nb1T>-T_cY$R`{5W!9)xEw0v0LO#>!eXL2h2vCG8 z=e_lqi)YibBA@>gq~IEWO9QC(Q)NspM&J zvXh&9m&rxn-JjqKqWE-V@wqAhbw zqtk`~CkHgd2rm;XxGuT->8R7hF&*~(guXK<2s-Z{Fi??sU)$uDZdvN>SK`U81+1EM z(r370*w2>%9P?U$=~cG7qtma-mG$)fO|#pWOzoID(}LosEiTDBaJgtVA|k-;kL1zz z2ZUKnCS65^_XG66;d%Am2wOLY&48i#l_~^2o8oSYFl2(%~kPbBc2Zn1LgdxaGa#o zIL-0IXqMyIf_b|gEcxCj^3wG|<+ZG(qIRsxspkr1L?6AkRyYZsU`y8T=RYz2&2T!E zcdBSL$=U)&!ph}asQ&lJo0-u(*XRRzZpKM)rZ@FMga*&HY)BliM1V^+|7DXRzKvVl zONdaMmPXurJyPkmCvN^>Rn@y1FIf5ry?Q=Bx@ze*sRLvH{J7yS zKbJ56;&l&8TTbU6gM>ZVQe6LV1q(4i104Q>;% zT?oxb3Y^j)HTE64@@n@@}PC>#UrG-Xritfgj(gck0wG&_aaoYsc~49Iil2lKO)5JfdBHw7v@ zwi}!UcCw7wZ2Ft!%on@FiXwo)5?z_pBJYX4q*YW(lsUbhU< zWg&I)+oH$=a$CI##%74V6eX`fw_s?fvb-~^Uk3-kr*fn1Ky$3At<#?ka2q)rwL;7P z5O!g9L2(nGRq_whoqZcsyX?w&*`SS*Hj-D>7YpNOyXa;YKNqF^FqB+@47(Uh+JTxo zPKmq%L$vR8^Oe2lQs|~M*`PuvWuhg>LVPZS>X0E|ryTI}a=L2xtW5H2!8 z*?#5f{H=W!9EC~7Dkbwq^{-p6p5!ij7(EA;FW$<l6dwcyB4c;|a{W(fINR@Z3N_0Y3Db zdy|6<*Nxg}*@rCv!2z1Emj+s*d3>Sg`?uBgcfXBf! z%Rm*A9O&42cSZo`b>+$xN7u(fAd1*mY{7uR2mp4Y`2e7}590*MtgI4{qIEsDlmLJV z%oz+~^fwUy0KUV_&!4B2jf*a|b+8Cwkf6ul6SP;$gq5=Z$8mAvJgsc}N zP72RjzJ|8!oUpRBncXGI4lQZL$1Nni5C62RYlLaH@;CBRc_&vjG_wSDXuNjW+B`4~ zQp|p~9frD2jZ65;v94qXMdul>rQ1Rj<$N1EBD_%7!UO~6mj7AjyhCl9A!hyL0)M*1 ze(+kKc2XPPyS=s~d4MEd>A^SIiN+7X4GAJUCmvTX{rbkq#z zc>R|*brU4F$9{ad7bJH?;k?T*wkaQ+AgJ=&wn0c*U@eO*;E;r%RI9s4yK1Uu59m`9 zc@K>`g&e;|2$XB!2`&;g6GLO!%)(* zyll|OYkj$IM<5Z0LKNbiiiau2hX`UK0Nyw$YiJK>2Wv=7 zP}bQv+ytsKIJKx}9h@Lj@gLDp#J18qJR?S=Mdxyk z+eNaW%Oa1V%G{F!sFd_lI+70=DYVh#>ebV?| zKnoNzp#hiqAZmH2^dg8>n4`;Ks9G}>9q9b%fdG(p+Z~uG25J&>d|XESF*yJml9_GJ z0xA?RUX{jHLNnt4i8`eDjq6bu#Ky5JF_EEhIec+J*&gKL2?p^{ipo=_e0kyU(o3nQoPWN zA9GaJw%Q!~!DTSh14qS~`j__-ivt}BC5Uffl-NdCQ;?U{mS zxu6|!2^?^1b}eP8)q%Rwr*nh9j}^*sX(DkD%N1YA2c8$~sIS{u5*vMuDAQ}mH%tF9 zyFj%XBPfGMs8iPGVNos4kv@WpfLd=d^f^z*H}y@4EYi`xdwZBI`jd%ENkjrc6KBwN z)!S<)RI6&QkjU}0(6o866%!pB0#-lAV0%zdTX}qSo-tYFz+tm`eR5agpkg#J>&WZ; z)he{W;X}cVeZJ^HRJ}L_H9@4jHz!DOiA9Kq-EEo}col1Kbn@ui(d8K=Ufni6vz_?)Q69gchq69Em%+I8=x3ILuLwr!1t z9vadlq`rw~Tu2SgKba8s0RyTzz~=Stb)iP%c;xDec)zW45Qvn}znQ(taOE)tjos_l$`}GNA5W zprySEK>GJksPTc64?_$iM4|ZEbX|WC_8XU>R&@~46v6&!n@v@xhSg#Y3Xc>-%lIjh zJntTh5iNtZ6|H)vN>ScNz^r-UU+hd(U{Ks!nvT|qB60g ztn~L^K0k;&ghoZN1@(fjt*W92N-gXtxHw(~Opq%lB*eb1OoKtEdGQXzY%3rHUM&x? z*+zrvVZZ?BPJ}M82&BRW1o`dIvxYE}43q_~(d2P~2I5)T=>uQ}02TKfX2=bJj5EQm zFi05W?MD1X@TY4DYwvw^%1s&!mfSC`{K_ceXTg z?w7c6rJ1}#J zswJ?)6B7Jldjt+$*q6<_l4ZCvR#fF=mvil7Z2TfJyQYa$_0c zpZ0q?XvvwIXAL4WfeHjeA!I19-RRg{Fv0-sw>mEnyTVsF_RH$P1p#n!*8zsdt}LNC z3$Qr6+2^ne0iIoF1;f}o44ZP3?`kSKZOtWm>cY^U5}c)}yM8FZI_E&h1fkUV7MMeH z<&AjhTIT=Z>rKF^T-*15rBo_u5M^poA|yrTWTuibRfdE}ndiBIltL*f(-M`Lka>#I zB4sE;rp%Ukp2y$$)c*dyd;gCA@$cC0`|fvdtmRqHbKlo}UFZ2ZqYI{-#c|8?21g-j zM8PVs8ZM>m{Ag5$=aJOitc=AH-pKWz=Y5K=gJVw5AkmTSYDXk2XU*8J;O#$J1@ET0yIa&EWpI~}eX z-7SL?17iO6xZmN`pt}9><0&k`4<;I98@Sy@5Gz0V>hn1;Hx3>o{yk*Y{nn)K55-h* zUhppS&rQg1O=uU}IXusFb6fPhON@-|JwhAzzkf=L0GL@{TSGMb;w)Gtv-Ey_$^OAq zwaxW|cMS+MYf+sMUDWdd+NIUP+L|z(scrc2487FJndgelKXiE35VpQk*o;RCac1ARsTm6u2m+N;A-MxGrzJB6)Ha!K#O?wyrhik(=g$vTJ6o?hN!f#~ z_eE1xSPLScWLIV47?@dfgv0da70nF|{NMUEQ{p_WiKy3L>FlGIt|aK>)|tiZFxilh z6Zag|y=?74*mH~utK1P)+irF3+CEsAJ*RO9@lx`tK*Ab_m>|=p$Wxv+S2>U#p&D^M z`sYI~MWSZM9UCc(Qz@x86ynRn{n%Ug<4dvxThx7Q-_#F?)2xEB`-?w2AMK98-}z0H zz4BzLnA|a9)kEZ6WG5aewuQa>QgosVC4PiI zRH6RK1402A-z+X)-o0(xHhTDddMDWDfXyNfw7mkcEbx=fhh96%bkyRvSc&B9sTu}I z6UUtTR|iQE(xnG|KiSjd9GBDBwmwb%e{nY=&-U*3NP5@KG)aKH9K~>o3|L~h=btW5 zx0;HW@0*0c>;7zzqP?N2>HKq>z$|d!+=GSdF(riJT|OgD6P-m?2{ww=?6F>3NRCvS zE>3;PFkO6YS5#1O1~qx)w2EdjSL4XHhsjr_T!WbToSVN0M=+B@<6>(ga2hi!%1)Y&V%AzRwRsQA`8NjcfC#KR*Ju+%ZJ{zESW`E?y^x_YsB8j z=^H;a*%s2%3TGP1miAC>P5%zVe`9yyilZ1Ep%0X0=ldL4DCTweQelDqYQIy;jwvVf zWC|_Y@5Y#=H5_O^^_D@e#`MG{ntN6DNxk*Elj6>Dz1m^{cb=@xNd&2q9#>Zghiagp zf&r!Y`o-y8#jnmq!}7q;2%j0!MDV;jib1Fgq)PiD#O4iOkzTBBn+MZH z&kie5%{K`U;iiWKf7a7N6JosP?bRP|6eFjh0u~<@F#5Vf)(zN*9M()eqF+*N57t?v zptP@ynE`Z?IOSPoyDxM#^m=gLvs*Si_UcJckoV`$GBD+)*N%iOcg=>k>>?;QI8rc) z+8=?xc~DvIVbF2IxrZII@>>hZ9l@J16}UOwY-% zdP_1${ol4V&>A0wADC<@KS^WT6=x_+!;T(B5y~q)c9A_tp2fdhd+NgLVf5>LxXM@Y zFbs#<)wNwjFF+t%_kQ3;_U+%hiSu22WK2zj{(jl^v`-7mt8`vk6qH(sEWVB5(aitZ zK&&qj8RDQPsj7)rsz#9Rr9ldl(7U@qb1~E2$vrzl$I*VCrN|{-t59 zzA`99)VC#jFUsROmR4HCRt(2+brQ=2dAhA9Mm6fZt}b1~+aCtnp|j*QP>A!Iy5tPg zY~KCG@f$KPx26LbVqzXj{ao6cZpvAA@El2E$cp*xjGBpwNj&-W^B*@WOpg1k-U3vD zN$pgpzrlh2TZGWxf>tP3o3u-m?tTIFqWHG~l3ET+#;U0qcU8hH&WeTyhN*PMgMOQx(9-z5FWH9>zELP_B z4807(&XB-%t|pLap6--=Gv8D7gDVbix47rgt#e;E{zspvwl8PZXiMP#?oba(rSL&x zM_7L+k|>!H*^SOTX{qEtKk>JpbsnP*{a5IO>PS#9#^&tOxN^};pWnfSWuPckC({1M zhXz(b71SZFdLFwsGgh=WCHr6d+Puks0ouMNqam%=z-rKcH8uX0jybIb$HKjyrBqi( zqMM!^wYwkb^JvO0J!|&UT2Fa7ZrbO+BZvE}LNM%dm}PO4R%H4fB-a{rAcq~>CxNbP z9{y>$d@DNstLA83d}8AWI9{^#(GzaJG5Mn2|6H@RFAke2C!j!)W|++E&$&*ZL&r`` zq76|WC@A{qre-2%tGZ{7!3jbp=|;1ucoDSm;h&hcqi3;U2*ZEHQZ|zfUuRh9d7D*m zgUUevK;Gks|2C0Wpj#g_M0yY-U`_WRy)KZuqrVNFp2RpG6T|_oC3z-@S#fS6+50DJiGdR={4Mc-jvs z!^H-GCkkg)?A`pfsJhNFoX=u5wJ~yH4hFmF8z1F(*Tg@!nJTZ#+4^Zq^v#O4-eCi( z+xngR=zs970UvMHMXTn{ixD28T238+bVC2nJaa4u_MxcR^q<$$^jizui1R5&Q6d~b zcyDK39xZD1u8DOFhB@D7q+o##`ATvKp*k@6GBD5!cNa~^;y2TDC5aWd$!;}%DC?$} zg`M-p$@}BqhS|;*0bGbw(#(ULREV`B$D40Jm+>ND0TN8;?8YuM^IfSH*!t8VXU>J{ zUyG6qYb>TE{!J%owiPbTa}q^TLIA9WFSf61p0>9WSEJz#)oeytKV@?*%fR~?kg^qrSwC> zDa+7FD5ok$*gpY!)3zn{p;q=Nf0@${|5>k?A#LIB4a8vUR7eZ#`%``V4jdKg+t8EB zO7sEP>QkMN-i^#L%x|i=Ps)5qzzAYU;;ro3)YrcJmb0R zEFF4!ZFsi;WNjlrO4bYi=ykqFPb~OF;Z*Uc5q4Y1@Zy`6CtmPuyhK z-MTf{+m~goW-fW#$BbtsKi_iWvfb1npmjy6_$Qno*Hy7^A@r|8H|`gDJ4#=SRU@Et z!6$B>2jbaDbuP2*+uB0)pT0xnK(GyG3cx?+ zpLX9q`Gn}A#+-hcdp^9=h9Q5#xSc>XWHKZI?7-kPjIMYIG^V`L$Fa06YC6Yp$^;%a z%ZU7Xx8T^pG0gxcJI2&ix6ubsIIS#|*}~h9G(t5Nr0T$sH!v|Ky3Q5qt;nW`9^9^w zdHKvd%%MmqPLaWgD9g*r`Ry|y)Q%gMib^$R^X{xn*CA~FHk5yekyiqWu%OP$a3S?cJ&-CLY9_y0 z)8(4GEvcZ@a`{*^(63%DpLwAmZfJ`oX4utvM1RkBWojKUS8m84)GOzw!OFqW*FB6K zGh3~DG@CEvnO(VSoCNn>6hVKgPnN$NJizV_&}wOE=||waQp{UK8q5au*XFt{eAW*` zN4|Xw|JZ0IP4o7LG`QF4Z=Jq7YomPSUU&rySs}5L>AKlQ@<5y1^J%?{)%zc)vsmna z3Y<{p=4!8$N!z?8Bw_kLR?q=)L@?)paxmWVhvUJ(o2?8=cEJYQo0;!H|B-QU?+-u? zmFv&|F~AHgu^+Q8pPpZ)Q;QBqb-X%L(kWJOj-9DFr>Ll^*4|W297D|hbPVI@LgF*5 z^GL2sb8o~KXheoZ_MWQcp<+KMIc&Yu(b8nqt+%*p<33Zp1h;?Fi|S8Mu5PAESgve+ zT^UBb>VxMG2m)mWsP7&BAO81iF^3|0GR1lmM~i@!583Km@Kavei|%;l`6`^(Lyl?C z8^e!g!zNTwkI`E7K~sXGv%i!Jb?=GKMf(k8ie63e@oX*TndT>n>UjTrmkcG~-s+4~ z%2i*453K*-xsH`mX{Aeb^=or$?q**u{Vgv7Kp&{>AOt&r$Ch5_b+5 zaJOMYKcyve0Aj1Vyx(T@Xhy!h`?e$warcg%UMyi^D@}T@p^xm9e_U*q;|}=5LG6oZ z^gfxdVSf+Z)oJ#M_N)vh(lKdk4_>EUi389g5x^{r_&ZEWbgKnz!mm7RYdTG+Dm{&+ zr?5E`0ml+lKL)MUhGZ!}C?EQ&j;8SuY;ze31;Ycp_Gg^Aua=fp6Qa^%-h_;+t~^LK znH5dMsMxVcL%OiaYP6h-^NqJeh!(m_Ku1MjAN1L?`$NJ4^%oCd5%%k4OYwdOiB1H* zqn9m}8SRzn^zw#0BjHHPE<)%jZV@-SyERIae%d|f><d_Ce z`vQ`=&N#LS@Do=SfW!7}z1XeKs{%58ar^sHhZ-2v{WDS-^n&m2GqA+x0ZV zCb+t(J|cdYW8mGHS9js+{_0ns!qtJUp6mc|5cS;U&mw#ms86boW1VE#CSeV?HG4!I z(A!81U#DUd3=^yR(b|xLWJbBDl%X&xp)SU;5w|Y$8rH>~ucKstef!l~UH$_JgJY zj=;Y#AGyVF4YOfHfjYGq%cp6+3dbnJWDei^G&FQ@EWZX7$6wc?%_ZMUe<@>*v+drm zFDR}o<^#>7dQ}pE@CGrJPMDQFKv9v^LcW%==g=W}d(vCwAlmY%$jB$b!CZqE&!6Ap zy3^*xix>AFKi<^PX_^Rcq^hW(VBLTO0T#K6KvP*0lbEAlh{5$-Pl)dKun7sO_n?aV zlZRZxwTFli^GvG;I|_9AmQH(YDTfaqPNa2htbCn&^Eh@xf3figWXb&}^`rr%#cz51 z@A!ZKmsk6Hft0y2JJ!h$%7>!tWm8ccyM8l~?gHkZQ0E4l5@|Z9?QNFcyvs`&Th`9P zBmXi8RNEywtgH%nU)69iJ@V)yo6@Z&8xD$S&RZw#I5?wiJ$Ogh0sD?@U8Db~94)adffhJdS2qxq?MiV85q;iZ&24YQIAemu6_6EoCF zdfKpUpY0|NVi`g4`aE&`x-rQnn_lJW6S-}nss63P2^&6WUz~Qbr1Nc@+4War-st{O zM*$RgWsO2#9QJHnMpjFD$02(_y_uX?B*E;@dxQm<0|)Bupf)y44g~IsABr}@yO6j1 zt8xG`EdqOHNP_B@V_|m}WC{YRWbQ`~bz{S}B2XH=2 za`9v}@Y(w#+Jw}4=HPZ%RdL&xn4^VbSorIgR{O>UWL$1P?Z?3(>9LcaX_L>ryF+$M z=m*AJ)DEdwbxO}eu|+sSiIq^1xv#XZrn>rZjK+Fiexo4E??bs2@PuCXWg0N@uThor z-OWLJ>eZQpnaN~=nz8Gg4bJ&TK{i2|lQ&g&#pm}(rg;n3V(INrOmQ&2Cb~}3^0Xq` zHKoXet$1@GkXi<4Pw{?=vWMIe;GNINm?lJzWs5Xx*FG#Z#+tH2A}FgvYz9gTwtLQq z$$lyZ{mLv4uxS_{;gD;-@U5~^-pJ@}$AH`hiaS6HQ5s%GIzv$qd644`hXL&2usIG$ zfj`NcrSh3>vcoQGI|sg1JfyOT@o@-4Zi7lKJLU=iH-YNtv?mCt_=!Z9_+}-shZZeM zZ^!gCpmLaam-x%c$qAfOx9BYr4zgP|KRjI)+X=tjkxQ8{BZ_U~-@Uc*H-U)JiJpyC z_?NyuCkebKV*Z!Pz}oV3+?;bwI6p>OPaVsP}Fk`$gP6zrcnGl+c$B^*?_tSeLi z;{7ln;lAs9Dl4fu^D6TQIl6Y8Teo*w>s+_fkQ5n5!5|yquP<-6t~ls=H&a8k_ZfG( zL+)9k(~2!)Zgp{!W0f z+I(X>6YucXK^p_tqa~dg1j7&=SlzW9LrdIFI{l)12vKxS`$^5qw#%ojZ*uLM4=K4e zHbdX&1v1z5>jwepH~@%iE8nFaSKgsOrY$Td(YRT-TVUYzB}~-etAwAwe-LYwM!Z>O zCt^LerL)Gbd|1b!{*kJ0YA4%pQ~y->>V1B@nVFl6cpF`kMB~j@wJ=%c6^SkPE%4SS zD!%L=X@AOGk?a9d6K|#+qvdg?O-GqF1$5&hB?gS&uiJ?FA#pi-lMyznhrbWu{&)|= z4n`O981DpBvLT<>J{uWkqEA9Yk1Q-39c427WPxKL0qjGXyUE;3egl~yw}me0Qu{w7 z!)bPBOLDdzncc@yO!^9x6_==g937;{_4ROU zaCg=aac_nkA{BLid318FR-aH;Ls~CmQn;!&xp1S~y!T#wPkw)GTrha-Kle z75@O6t|QRc9r4Je|KFC(1~NUl;IO2b;(ENu9)gAk?*A=rZ-U183O(AnJxP@$rF zy+qTNQQ!a^o$5A0+V$u4afcR*tv*G3SJFW1yH2|TKk*GYL-y4YLJlLtQ=#)p*jHk% z-H?<-fmI#t!Q@P{Hh1$aujyyW35|_655fiV58e)%fRkqPv>@xPrfQ!u?2XYXJF$)F zP0@JfMp;TaDnyfotmJT;pFAB-g~lDv&)HOpR=&P~DFf4?w^!Ag9jo&b4e1Ef9cCsR zYU8#iyuogJKis!b`YBP6j(t9BQmjPS2r zI2R^T8%N16ff*hMui z2ZH3Xal#yeA$pR5R{NcGUEEG&3_Rj~q1(5R(0ENv?Rm@yP!E{{Vj~DaQdR$g1^vUo z$=fgXyba(wUmbWd8^$Gdv9~1Slp9GhyN3ys;U#QnZM59eW{= zb#}9q2X!ySoKiUxjE=oBlzaxw6hX3k@ek3ir~a>w0HS(&3B8xVuS|Rs026*&#!r*u zRi^31f}-eY2(R28IKPZyv_+%LW^wO2q<2i)jDXUFtO1C!#(F|5I{ZY3=`%7LZfRxQ zdeu9j1aTG6a&6BlrTrvj^fRH7NI<-YF)6d7vs0GD-|{`|`}OT+H#4EHK~hYPs~--F zs!hUbIfUY>aC$%?s(Sr|j=H)Ra<=6rcb(wo#`833CENpzhvMk@VeLBXo?{&)k&@n+ zZW2R3pXEIK-g_RG&z(Txcn9h@$GPqxj-_&S?_xZWyhaN9d^07o%XE! zXcfKDN}aS!mv6;b^3{KLt%i=^#zqU2+GIob;RXpjZ^@)XM-`~oq`T$8XblvlDTZV5 zCV62}u&GF}T3mhd#Xzqh*uq5*2uRGD$IJK$88CJS+{ITzyRv@-hqb=9tMygMJ?p{VFe~ zq)~&y`+<3EhsAeVRD|*A1?9aW)#d$mv^k^Go&Vs$dXu@1_nkpQEy9RvP$_60WU@?a z0(3r-Z(=pio!jl7ycY(`v)kL-BU3nIlV+;re=nW9uY-d?q;8mGgN65tQi zQyY#a3JMCNjujx}0F^_m_(yEi^R3a}EN0B!!Y0N!cWfRf7NZ$vN%y>?BPdO_CjK-{ z=dB!pUQ||Zur<#qt>Y$n*){2|mt2&pTJ<5&T@eAHX6p~+3vM(|FR#M|(HIgRMFNO_ zldz^oFwpmr%lTtCe`IgoNHs1+O_}Iww$IDd2KbJbJKQPq!|vyJvZ+ zvnK2PF^%ia_3MF0^fZBe7{%FB#Mg99eapU(-eOF0J7@|K4_K9@1wx-oO7==h>Zzsk zNlLaFl_o`;Vu?T%m^yM1=q^W(vhwnYxNFIUoEw&?KY|c*z~;U4lxZ0YhDBH|^xawS z`C*C_dHeFUYmuXuzASfcOp@^4v2!P_f46(Dl;4uT-7p(<5>LkU`HhNK0EN_M6LT{Av0!7=gfXWx57Izas6vGqF{aI$y3 zX^Bh0N-8Qrp+pt{SWrYY8acpze)^Sv-V8_yx5Sq@lqwZGLc73pczJY`_YbRL%d-bb z0*gQY6SuO}PKnSbgi6MnG$9^C)(kV6Wj6PCom|tBKizbwX)Yc12M%L1MM=U>k7fEz zY;2ivr&hXYV9ZkE&18s_oSH3Ka_rC_I)$k%YMk>L8g)G>XiBSscGzN`nG6T8+gQ_; zionrO2xSP}^M_kt079q;*%pKZ#E=ZMx?->~8HQ$-7e*d6M#=dGv{a-VgUT+uH`tm{ zO7Ti{Y`uIdn&MZp4cM?{^;pvaYT!g^cPxTOu`shx_p1 zv0s^pS(s1PF%0EV90kivN`fkYDrXc{V&bZkq_!`U{7}iVJBrY_J|gU89LnC z+ZS$Wj1#W}>5*S5&qA`}(Cb>_KeKJGw*1kvxhOym;4!zw)gsV?y+v$nYfR4CS(gW0 zFwOl**C~fKNBe#}L6tP+yZoWlY*r_^UU{{3U% zpy&ITO>n${y@U!57m-s+_fqXa3xgC=K}Cg;7jWA3QE3Jx3?F~1emaE|BTLAe_H?GYv-hzWc8w0*j~O)%uF8plSe`I!;E+(ervB|qmdqI5*K8Hal6a}66?A^YqC zY~VX)hBp5XBvB;z%t5S94_*l07iAG%cTF?#a(8Mg>hQhX+{$Aosi~=D0nzW!SbOAw z$PWTF6iPcswKTZZpn64P`Mip;LHgws0)LH+k+_IemX~g9HHrPKb?MSWOm(m}DXq4( z4&`1bQ`fa!)~Cg%lXC2Xc5B!rN5?D}90K@wco@G(l+lKXt@s1~AN5*~*?f8I6LEaIQdBl)rY%-ak4V8o_M$uFcp za)EOsH9;(V_^@cZir5|KUyJc5&c9wqu6!^Z_t=`{QxrmtB5(KJp%9u8 z27D;8^?&-ZLs<061pP?&R<#kqUutv5_U@Ik^%a@v^og&$<_GDAj2UHsru!Yxti#BdStf0iRl*{SDn-eiKTesezbXF4koiuNj3;jpA4Hs(3n-Skh0ob;De zwD_vEFtLXwkKlr#khoeEA(ds>zM6}Ri{P!5F}D2t`IEuz#;@%zMyFg>pm)O4r3LjV zQIHafP>|6%@lkvU2@m%}&nvm`y!lZk46FUn9gNJ$*$p_Fswxku37RccEiKMCF={G* z$z{h7KNVbi(PsR^iN<&uF^yLk|JAB!M1#_fGDDFq$PkT!JDY$BcZc z3Oi?8)LCl&RCq^2z6TtYH#B^sN!dh&=Y#sM52QL&BwUEx>4Zj}(L%;LOV*i72vY+d z_a00l*bb2kCEc3~vFR~)&DY`-_n{$-MAxhDL8KOM3$asg|{FBZOiLS+qCKkR)_=?BV3&Bfn96_THp=A6^Fio_17n zzfi_l=3^&RI{n+bhQjC?!q^5ZsAID2+#jwRh2US&`6v$TL}fh>7u=ctNrI#cf? zACIxz-rov$%jX|&m0QdWJa}vmiHcsSrfgA>5|o#cl8VeIGYnY#Sd?u;kr{&6P1cPW zvNz+~NeMYQmuob(?MYWwRNR^`qz;H3MFHhLsrvSdt6|!9Vt6*(mbY);?!|r|+S;r^ ziV1nf-9eH{U&yLM#=nVkLso_tq@ctQ3^gnk59d5S+#<3~gcSi2WM1+s&@ShteDP_Q zov^@`L%J6_5{t%AX#qvlo1K;VwY8Mm+nKl}Z}C9`E>6xT+J`D8x>)4wgj#_mEl%&a zQ83i(CgCvHG$#;a6R0*G*6N$bXi=|Ls$rpfWl1FuOfZivPah=h|F5w{#~8NtSp-Ac z53B%xRn9KGZ z>fk$w6pVWW$HgUQ$3J17tEhZ8w??%kYRc-LrFxk^X|!gI27yvkoQ9(d zr{~acp7oHjE-&hyU zWhO#H%|g*sJQ2ooC1a0}kmiTN3C6*0++aj?WKJ@GycXKOZ93FS^L3`_MAy5ct!TWv z-0PHYfDJ;c<^|QKY>oc*S?v;69=ok*ELidyk-cE(&KNBe7{xlrU1@1!^HD70(c~AUQhI&L$@1C1@+(5w>B&hsge>M#G>)HqnCec z^r!HmL)*tyW%+gh#J8v9ug>e7x|K}TxA>}JOiWl)%r2>JSnHDR!_iU8>Mc~MHPNP|AZz~dTapNlGd!S z$jZwbz|P~?^UC;uo|Ziblb*ntXZB?Sdj9Ck7dhEGf_fUYz^L+GGcXuKz?#eAwHzIY z`mR@o52aiSYz}&pemRj0@!cwWY<50h-XU-WVq0jeJKhHATD$xnB*G1e#_L`sSP*Jz z)E={m@5V9vd`;$$Y-{)M+IUTa_F^wK>gSMfvrLV&>W$sJhua;-Bk_uM-1Jr$csg%7 zlX0*#1j-)-WpWqziKdl$wwsN3ik#5ItQ6Ff%ufbO;$j!}V6*`N5wUmI*G>?iO?-e@ z`pY$z%^p?k@Vv=K9G-K3hfpC6IRZPsy-kv1pLSsN^|Xh-<3AM_Q$6sgl1f_r#%4;9 zBXB8igM~=I#_RJwa#2!$!y`Nm;4^i&V#jI{`ymV-tht0c=qMN=FmfyK0 z<)j7&6xe;P;i25&BHoV!7keLw`bo)93J?$n&}L(|>o3Y3k!Zsu%OkD1(iy>>C=K~` zk{?gZ&_C=I`G5I`b|OSJ0~Vc#-WD<0*DaWcjt*Q>X@4<1G*J@mH%&P3kM8^0`Uyo^ z|1o0LWcZNxvE6BvcZ3M#wA+F`UhVIW{U?q`TAI4})2FTAjpB6wm{qiHK)7~b z3hfyjh8ST3^~EX?m6UWYi+6D5tgEYQy!2XB>(KSz!Rq7p>31Qf0O&$h##=%}+u(vk z!rc%#5>^+9rOAs_^uy8%TBoI@87ia1IZcnfBJ>*C6uem+*pFHG8CW|kK?!~f;AnJ& zi-lKRUQM5%Bop>9m&>nw_!Sj^YzUOTe{JRU8V3SM-0lM1FQRN5mv&=AL&|H*yU`lo z7@ol0;$u5#YZ17nR8+B-jB5(vN$m|X?I&x7J*?c8BAN`gZ_`Pucy=o1da>wyhh$S4 zYZacvjaaKTGYcxXf4l~lAfU^+hPV7`1z=f7!I-3a9#uH4KkEuhhgM)!_UboF0(Uwy z{8%L8=YzEaHFEf4bJk`h^t`;7!d%Gg#1}8T?WxLt-R8Do$P*d-v2>BLV_V}otUs&^ zp&*cfr}6UmepZHD2f`co4{wjkB(~WRsn=N!9foUY4kz>eyhIqCk4D2wUIiOIfx%ku z|9Dy?q0fH;T#1?nTsuN}Ww!Rj0%K5qZKJ6T+6?Pu=5sDY@loC;l5a%+>^o5FE~4Zj z=5VtImYjty?f6<#gxmlNPSO+Q3XH3rxhsTK3pZQSl<;8l_gw62TqoxGvk>nXInnVw z8)6%Gm#{q-Ovz=*hC!_a`!rl#O!PA9dvZO3T@JPZO?!Iu>n%ZO46ke}u#S$4`)Xul z0-FhKSrdAjzen#VP`>)ywm`TZ6hpMD^0ART;M%C6rncTc%;QOsl_bUTO{de;v^Pr* z-v55JhKkZs`WGSJud|%AJT=}>obCM1KwSpS{Ty!=NpE2qwy?^dDD6GTmlHEuBnyR2 zE2-WlpAZxT+^$~Sp_XN$aDH2w++&D3@z8(#4>b<3#lMaqf=6eJR`^_E>Q!{uKzZvM zIXs&EH}`{zs(9r}If+6rY4Kc8ovRNms%{}uQGNO%yXTGGdO-X~XWo~3{}$8Y%3Yj^ zTDhmrBAP-dqF_rP63NcsRIK{4)inJYdJB<8xTZvCCOpyQv~JNVr0E&`1;RKZV@5W8 zSYV0N6aOYSoY(7@V3POimZ1J7=%u!0FpE2XFe$`>PrIOwi&d`#7rseuod%U=+1hw&os?^neD#^oPSO`c4mQ1TOzJqDfh78 zYrgBDvqaF**|}gtMJ_>kl5*|<<1!mtHu7NJ8o;SEFCkzHCM0RR~@TjcEp)L^O#JoH8gT*qvXVC~e_|33d|0OtzhU)9EUvC%24>GfLb!#)*ReUCN)5BAO5@p^432f# zFXLWR-=KlKlpY?To7%n@waKK z)J?2@Wk8>TGn3<>*4hih+QPhPq-ZRM)q)i>o2aVYHh);N)lC-SP?76;R-0^{JG6P~ zoY-RA&_3EDU>`b|qsi^C@c;MQH+KD&AC`kPji6N0l+bvpfY@#{OkOs^txIUuG?udYbB`zC*zfuiEWL1%g5RMH9a>?f2I6*q6)xq^i04R59N$h1*ZRZ;6av|dMv2{!M^&71tTL3@rd-f_EX(|;HC|J%$r z+a|)fqj1G?)nB4(Tm8l4Ln{f%&ve+f{$O6RsCBI0HRp@mc!XG(G$8pJ{WsTnF+35f zAHr-tS^zTdGwlK`ZIjiD#_L2Qv%LJ-5j{kr4^CGUeKu>#IPA=ZJ3rQ$!qtWK9y;?U zk)7J2_Xo6xG*wmi#`Yi9RDUmkLqfn4-786~2h=kL|EHL$j8(dFQ+6=tqsvP5MxA>075D9>SVr zC_dF1-%LjVZk^J)r@?Mc&#iBy9f{OrN!foJ=l-WBq8ehivG>dEPCFB`Dcy$djdHv4 z2Oln)VSmNA=QI-j_6rHscTZQ`NodJ+$Q^1mJXUspu`BL4f=+Q8+FtEn%GEt6ko7J$=c-q>FzqvSz!&x%4aK^>5*;OpSzeJwJvY);RA)o9s&PC&HYQs z@Q{0Degjy!rAZ;^o+J4n?~O+MShG##!x!BY3M^wiEVsEiIW2dcYRs{VKY#d#a92;9 zQfH?>>;}dN&0|EpSPznwvyY>|fJNVE7oi8)LhpvBF z`b(S|fT52{Ncd*(vO?Wa9WJ-MdyBf={iFy%0WHJvRX5gNl=o{d75eQc?U;bXLYsaC z7^ha3VSPkMp*6GI5pM47tU(R8UL^L%YQ%HY65~hEWkym*FosLe&i>IIngy8{fqw|1 zyn}OLTR)4Cd1z!onZt0MR~fHloh92JT&e$qoTGAe|IXn1yKpN!Mf%ZI!WzLwW4A4j zt+b*0ktP*Yzi!K_+ZgXq|9Mu;2Zh%EIWT{U(!c>*`oe_(PDiBrdf_myu-XD|HDJwa zoO>U^_IxH>Y!{x|PuQ1<*4y6DmuRV>E2sJ%5$6Wr*r9|cPWr2D{a*9t;v1MY(ZCRm z$kO4D4y|t9#4(zI1v#2mQ?wfMBMq#qQjW_1DdFXg8;Ab`l3>eBTQ|nyZ;bMRm?iWK zpdLTzFwBCuUk>t6l24QliV6B+I9ND^R{U6!x4%_iD;o08i7(Pg;E!OI-j5$HMRcLo zZ`vet@#1!>t8hE=QfCtAjHa)5ru$!APrG!yb=ofJda79R{jKkj4E1<_<8~;gU{v36!O2z6B?F*vDTn+W8lH%bDS* ze3(`S@+o3)C1q+FXCex}0YYCC;!^Ppm22?gb2 zjTw1)+Jc`=jxrI_KZJE9NK?u~PQArC4nT}%5u(jBv5ILPkM`TEtO;I#xQ5S~+vqob z>O!pHJwJP;o`#C6M~S=8$4@UQC)yxgR=6VY;t-Dh;t~i` zlE&*2DaD?f5MNgAQmcyGqpsf$cE*-;dBA+hgcK${rmUxyG-9gF^#@= z_NG^j7_}$p=3iEA?Q$ukW#?tKZgyT&#w;YJc6Ph)|J|wn{Wk~pGG3*+-CHHPD1O`& z*?jkKhOJH|dcjaWr<%dMi(d+Z_m=5b82Qt(;F59E&ZDOWFOkb2Odi+pyPS_z3*$A6 z1~Uau0L0PU66W%MXE^~j9X_~L*v2Do@2}c+L4c3}C7rgjS5^HH5fBh}w_?$)0Io=M zi|%2JfLqNezYv;H=nU|WqGq+=Y&=kohB(>kYglw?se)`}?B6+L2{{HaEhJKMOh*jn zRA_$^wPuN%v9U1$U@?!^{VHAwqq}$k8<=&!C(jlzI9<_e=*DXLaeCxBks_1BSrA81 zL;v~HvWGz9Sa-_4X8na^M2IvIO3VDl6N?VGWI465nIAe8|?WdQ`U~n#|=- z-KHc51Jpw(M|4M!IxVAf#Xo|rxU=k1S?{jqsLlDR#+Kh)b?u#y7w{+eERWgG=4c8= zMP~gfyq}vKfS_ zm|a49`WH%QqJ8(z5gxnaDP?*-LBX96P!&%T+EdQi?nm@t+M_=MCEVsA;@AP#ca`Se z0^+4G<#-7elHhLN;)$FilqYwKemmvrq;pGmAA$fuiM{Sm+MDk{8hbQ?~eJ-eBJY9z0PFV3u1 zcyDVzU32S#Z{~;TXo4X8u70+ z;@#YR8$Sh{Di`+g^E01Hmtoz1c#yZ@i2*2OyQ~jHYWzQdaMcB1rZpzlPQksi;G!T? zQwH8Y&l;9hZSb%Wzx2Lw0dl4P?Np^U%+z<7yGsAza$d_VRL|v`@H-z^Xjcm{{L8re%!ey;ADs4U-((Y`ZWYHXG6zu=y_>}jzj>`U1G zh0g0!-|^Nfv`wGuu-V7g5xJ0ON?mwk2BN3W9HO+6AaFyltoRdYasEZ|b5wUKV=G z)C{xS%b(vGwJ07sP@HX{;?o%Jo=_}&oE>qv9_$3=Xil}I$YSi-RP?#6bpu>U$91Ka z*(Fy~5og&iZ$8hT7}Y{r(BSwliKQh$VpXrno*Z(DAGChfy^hai-@a@A<}$2@#mOpr zY+prK()PQ1AZGLf)>CEP!t_I1bi8J@04Ec4T->|;=d{JCB64%q-8Ik6S8xCLkF}6^ zG!wIk4@7pT?r~AJkKq;Sb$?ME`5iu|rkx5+^H-a(hec*<#>G~zw!6wl@)TsQAeE>O zFleXg%AHqGc8o};G_zx#{C;UbPa;HbVX3#YUOi&4{{9aqd$wnMdh9IeJ-b(`e_TjU zNUwLi7$vJ_cEV`+XMhu7d@i*HlJILCY7g{hg7m$Z?mWRe0+cr*Ht^SC&H90I9 zq0>|0{+%=bIxE?zK6s*^Wsp_G^o+|HgOG+~eUHKw&TR7#kSc`L#|;?5Pfy4!@7%t9 zzp17Mur`NQQW|b?9zI+Ih0#Hga3Vr8xgM>E`Y=>Kky%+{x=Ia7&zi18>CVV1jX|sHzj(P2O2dxS8WHiyy z6M49t`E^C7cE#P{M|t>z2mf~XMKagG_vV@+&Q3&K(2kshteVB(nfqEeW8n_d=%O$dGJy_K*wWow9iN8 zb7PJ@87tZWSSgLPe2LN*>ks3kU-R>%0~03fg;p1QI)n*>ADq)Up+OjA&DVfw7d1Vx z6Tj^zgW)Ns+ZpLyzxhHzR^4O%LptDQanebTXPjEYrDJwZgcrnvU-J*?iQu@tliNtV zVC3>+P?TXe&zu+)@b`6}G3TLxoSZ1%`Dy@f^xl z=Q^cQzRg~xg(kS+@aptK{_0T)y#@_d1knkr6M?{&pkz6>ICS*~H_Wv+MNT{i4;d(3 zrRhvP0a1xxoX!>wZ@Q)u5Vt__Sm1838_>JF&(t_^DMotOK{I*EdPFkmi=l^}<;=1G zJOr>X=S#eMMvgP0w2ZltmnGU*B&H?}7?AMeyy-joQ|NVlBT2GDKSCwbE*e!`if!DE z7Wk;Kg)NL9r=R(*l4l>+Y#T!+Q$x47c}F(KzQ~N9eYQH|WMhSXL|YbQ3O;-xoQb`8 zbfqxvU(O@D_W*a_x)L&AMbMX1%*=SIw_Rb(ClJlT-oulF3~wB-GPDY))E&3qfX#&2g{X=}g; z4PU-V27}<&te(gD$z|2QW=w_2;2}T0)({r*fTP)DA3JhDLdp#+^E6nftHX6Ok>>Cb z^bH^X^!%)i1*TyZHsSj78}Yvh(ZD}&>QrQA#Qa|n4OHdoYSE%^?c zKHLA)hc-d-vbF|t7y^ENZ>7fc^?&~KE1>EF!49m6J@6JI`ct6}H_mNP?N{RoET6t1 zu@V;30viF5WH87$8&>$n0}CY)4W+GNVN1}?mp!J3#d&=uezVU;rz&cfl&5asdbrA{ z)=@ekD`1C`@5_=#>*FP-AKxfpKE$7HGI}8KKpoAwbkh%N&m!e)_;+%j75gA~VQ(Gv z+4a{r9$bDVn{se~6!3`~Tj`6c!rS>+K>|v)cF08an6Q`wG~+ zmqxgBJ&c?RTHRbHrC7P_^XS@~9cu+btD_v&I8XYWzjbkWA&6n`W)=L{j<*!+l)kx= zxY|APhoa*uo(bvBatIzNpUBa(SS3Fr!Q=l;L!6@S!CP|Q$jRh})eW|$tN5S8^EvvL z!uPes)EVp9e7@*Zwli7kwR?36@pevnuZ!mz^|s@79iGu+XHz}ml0CYsB$X|H{|>2? z@cEUhVkbJ+l@hr{WRu z)l|zFX)?bwU4PuWaAhcXQt+U)CZET!O~{0?O8jpdSDhfL^YcGUUyEPUPMvg6ezY+; zd0zHo{m>QWy7@fwrf12wqZYy=1Pj>R&U>#^lI zp?zG|yJN0vNGzMA^16+?N>D^ty*EuXl(&$kmTRWW zJ5`i-LsxPlCQNgN!j>*<^EGZsz&rV>>(R22sZ56IzsmudB-VecO1EtdZ0!pTfc9Lb>bGszSeV#QM))KTkq(pxUaJ43jBEarzc;S z9*t3J^wMGzDjfXb{PmwSF!Nm*JqJq|^C)7u+oa|E84666wSI#Os1R82VfUj)y6S_P z%U;tXV9{$9)3Co#ppTc}t!i9Ib}6e7C;7h&HZr5ppx1uPD;e zYv)+9c{t@WU8M9li)&OKt?KPk^PIV`^0p=@{JXm6<{rG@3|)@OFFBsa6Z8E>j*CGz zz0ABhn*AAurrPd8*C$HG;D`IahGbklSYT~I(|Jk46 zOIJ#sUYkOT%dg4BYd0EjJGA5fFukxWyw*D2HV~n@!ErG5ZLtK;rH0v#;O%F9r+k){ z2R`j*z0A z`mUn9r1#B+AI+*8s{~Kfxv;Xg&1=ty)zz>sD_F6sg>+t|bnkPrrg6O?(b#JfrjyLL z|2(BKd}orrlilUHrLqZa7u|v1NlnxX%Rc;vx2$bW&N#m@k(bw5-Kx+W55!>Xv(p?| z%8V6J8P-9^EAUz8jY`&1J!deR5E>l4yfm|zEpU1v?I(WMVsW7sv6nRw;y%m|4~G@o_vlMtIW~IMgAOBHo?dYVATA^4Z0Lj=BBGf{S(c)0x6Yd6Mh1T_s}NlB_&_C(M4j zdEu%S+w6&H-*M;WzYjK&+qXAjOMEHnU>=ie_lb*ld49qK;MbU3Y1^N&|;BFXXQq zXcaG=eoyAf3tE-tzRcae@prU}U{PH{g4%&Ce1R*=Mvrl`C1;Ejy?pLXUmeZ9Z+>!n z!Jxr@b^!~W-k`!jPn({h**7)T2Fn}{fNAs_!XOH zk>fu?jWw^~<$Ru;)p|)c@giy4m(Hjy{dpSS0@ih%*ZT7dt%Rm*l)jIg1^?=*IGRhx~_r2ewdWFB#4~!e?jjvFhaE=hpI?;`l6m z=ttjfq^KwFqH^@8Bzb1IoDriGHr;-0^>SiRNx$JvVPO2QrkRBLQudCr*7A>)k1}2I z57vGGpyJ3ozHc*)(Rj~?j>I2PPi}l?A4V){HsLxCV{L30Y+U=BNwfpu5)GbbEBWMb z)Ba$Y8FX>vqdw*_E}$P`u&#B+$-P_u;Dl#c+&~%i*)I|fQ9O7Mo)5no{%Ur)^xo6f zR{19tH{=T&pfTOHejg5&gPe&$*fa(u9Pk*Jz~$kVG2A4GhwO$od1#g^o$ zDoIcKWYLlF#&vV~?-ytIqVQJ7g$AGWyj$=vH`Pygb2Q8Zg(n)=S}xuovnVB z^C?{0glcBCiQ0L5lp*Y1WPjQ_9kjj=3rpw4x=?eo%Jd3{Q-1WGr+yD{IqG#U&0@KB z7O&3yi8d4F-3VRgBRN-kccf&xe%9AhQ}=N|4j42uObdPL-e-&WKV0daq0mq zD!%Y8?hN8(LMH!Y{85b|v)X3v_wDjtx{foPUhrZeK2gM5KT&CfV$rv-RhjMY8IHTQ zG;i-f!iFSH`kmV*?`tmXkCpZQ8)hZ0Jv@ROUry&@vr>{oNzz=ISQRv7>~y!_HCOA? zuKz70dtQOp7RvqsB`do*AST^2!xO`Jns#($rgz7i&ofckePl+|bZQly`tYH|>PI@u zkNt8COq4&acMPgei)6pxFY~EltRTDiWyl2TsgWUA;phhsMrj$FiswKoOxWtFZ?{W~1I!?OWU8Mdw+_kh0 zjV(OGi>o_GJAfwgp5h@s(hyzWHk&x-W3H2AE9`z?5z55OD)soWbmbk0x@$r28V1T< zQFv(bTs-Jq2xYb>*EqA%sovJwnhALXA5`iu9&+PyxSM-W){HV97gUYlP_)%cv)uES z*gMo-DkLFm$N%|L`lf~JyW%+9pFg_F%jHX7g}z!pA*)3Ov;t%LceUm3`S7budOzVY zTtC6%g0lFn%cDS|-PwrvR_z}=wvpGo*SQS$SzS#h-^VF83>=@gF9Tx5q?6f*W2J2M zKjf3Sog!JzIwk9)FW8XkeMaiv;o09D!(dPu?TK&^k0if0hAv$x8tJDdC977T&lxj* zm%cTG7Zk2k``LBON?nR&agzANIx!>BQp?e@5~=dLXn4@^v?nkrn%9cA*ZOo+clDzy z(z4Cwb)cJXYl)>K@?+31-WhzMAH7y2#HJacuHH@Yq4LO-nKRXGGkdq-+#S&{e9UhS zk3P`Kfo@??#^ZQ$ic*%W?#v%^Pv7&A3s*ZxXn|9nJCEOuBwM0x80z_bZek->|9E@e zYRlV{uj@(}&!U^D=cyyh{Jyp}&IdRz45j#p>J1?MgEeOB8*TT5J&bDG2zV|ReSgy&DPY*LlK|iKS9JhZsMpTV>3?20yP_i}sBhd7_BTLe0@=s{3L;rx$v8 z$!}4L%eXT*Gjjt~@*>?XO)h*9oV|H3<75h#f|kn0%c$i$1CsBQh7yd2Utz9Hd{>C0 zrJ=7m;qQFnkux!qT4sttWmevXN9$VtH-`KhkyUYJMe@ZO6Wv;+eUlGR%rV6G-v`sM99=yjR8L2o!uYP5G~ zLf6~S-e2`5KHqLByqjB*hPV28aX}%lWGd>95BV%E{6vn^*JJ!XPKwsZbL{Q2Gc2R{ zLBW>xkA{6lzzbxmzwGs_cDKvRtXn9oxv4%I2B?6)3Cnz}1CJcl~VEoboN~)r*ZSjo@-?Mso4N&LC5)($`QQ&UUJPs*+*GjRaqTmbOz@45qY zGa&WgTz&vg1{6y2Gxx>IW>g`{%T?YFM`!_q%YKe&V731Q6Wor$!8bsLZCC)N5Kz28 zg{3Fg2K3gd-Hicl8E`WN5i}81K~SK9yk84I{(Z>vH?FZV(340cnvmXe%j=(<35%d| zJn)Fo8?DgP)>boD_lZh@tP-u=ACtzqttb`^zX@#5S^`QAMk zN|++nXL%17HCsY~4hX$-B0`}XySv5gkg(l*ASHK0#Y6E#H3&j{~RMZ4?9!+1D< zKFViFG=`IM9iixwt7T~_9%BBf_j;i3E!f6mf{N}uwK|j^w|XNt5t2}aE$5%XNtfF#TX4hEZ1sG;$a~eS zCQ;4kWgrO^62mVT$tZE>oX>!x!W8XPc-QjMNI*&HJjy6@NVzRZ=1kGRPR^Pe0Y6-1+%mput5fQ3K3&t~v~c01@0e<%`CP zO5TQs2GErK7;kv}<X1P&ea_QFx3FX5N-$ht~>Um_v6{v@mBR6!6 zjb8&f87QnEVk=Q~Q#7CXjWz?XB`v_bmdTYSmqbh}x)wYm`K=y2_&Dzz6dcS#20`o! zaDNIO1&^b50}n!WNWPkSTdzX60RAcq3(MH^awJa%=Q4m+$O6fts#vwFs-FAbBR%^^ zs8L=aJN0->K*An+H`wkp<8Yv7{8QMy#Z%YW)+lAxLF}%qj|axs4mEU9_B4l%(IgIT zB+U+$mUiX&Oqf!L!rj;bpE-(lpF7HapreZ}!raY0E3f6=e;f_F%>Eb1X8Z#tv3%Lf z##&F7au3?AAhR`D9KH&+Nb!Mv3fqSI7T_H`14^xkEvXd+7pu zqAmlx{~7W~APh!y%vNw)>+zoVWPjrN981`3q>s{~XV^B`8~2oGXWy)Kr)=o)O_vvr z3@I7&`PkTr-)x;A;2K;Mj${k?z*<#)C;1SRliJBOO~l#Si(mCPcrVAJI4!y-QQuGZ>&OwfB1BjyzMD#wIIIj$yifbb$tD zN*`E$rtHXYiHeTL`c|)hk!uv@rmIoTdrl%q+72{h z`UKjornq`PW#$eBPN#*17OZDD?j7%*BF*R-zf7>bH`baY)&A~ibO z#QSoUGj5IRjSg}YfP$N2jvsa`(-6k&0>ARNXW_sics6M3%C9#(EfkQE8CWRa9K=(u zL&Tkc?nPb+CCVoF(taV(d~KQ1KB#~7+BGtd0^wd5l&Kuze76xH4U+4CFw57zH6+x= zyT_5it)Q>_%oT;QFF)Ow={BGdudup394lWb5^zw?KZsS}NBwwp0@`elH}1=D!^XW{*8;YW^{*^$1yLH*hsh`4tlHH<2Dh-R9ex z<>Fl^eHpg<_q@`8LG5{V*d;QLwIZX}(De5XhN`c!_-?%nq?vFlmvtHyo1DJea@@z8 zqMVW|_;?Ig@llpCp8GJWXE%HQuR7F;1lQ(7w+sp<+#0U$Qxa`YIhNneZAgXL2KKdvT8mQb)u-S4T`tDHq3*2xv00Iq zkR3Dj88POQ*Isy?TYk5UxSf6B;z&kmWYn?$Jh?k099sm_W(KTgnQ$${{if?fbn~6v zElDi)=uN&{`I;Ukmd>&AR>xE*!pP#hjLQHPE&xENz~=k0EcN{e>ZR;tPnvrGq5K@% zEpGD8A;~^M-%Bsbu+o=1^TYKUBUGVT!Z}Z9(`jpA_p3BuZo#iE>ss z<{*&MXEO0L0{4;AlaH^)BUy39z{V_qL=#Iqd^OlF-GVZ%*&zXLT3Q9V)i;y$*;7c$30jXq!W6=Vy4AaX1# zb+X|#S72|~&RK;+)n;tKn^t*!?0|rhsO3$Jwzf9-oG{QJrWs}~V!aPrVnj1@a|1i9 zzXPTFHK?QR`DsGG1^R&lj|_l&3ua9?TK!F`Y*yeZ`4J0P0~ z1U8=P&ly+gm8SDaqk&vzk#r$OqDDpkFiBv;lE@VU`Ii1&T$MxNhzP$o2r>_Vv)u!> zIZov!X3F`kt*zJ=Fq9jWoHW!E)PElvEG#Dnx(sa$&|2R>2MDbqus5>WSfFDCQ!L!( zTjRTvwUzBd?Yss&2Fr^d?}kQ>FEa*@FU#ENfDcCGd41L!psS^S@XD+-jK_m(=lgAD z++LYAgPCc*p4))sMDV!(P_WZDf9qm}eI}s=J;L`AGc;Ehlm4YAE~^j5G`Jmc2?2zxUMS*O@{Hg@=o zRBl_R^~KU)MYc($3Fa8fJScxj=6RdzPj;aHnne+50ygJ!nK*c0>dOx+wY^KK^)qU0 zRpSfk(vH@W52C)j;d}Yl88-S)PT4C!HOo3g!knESj) zoLJ`18n(1-o_e=MyC)_sMa;Xm1}DeP6xZm+)Lhyff_(~c@b_1ZYv!~!3AW~b`z$H@ zttU6>L?SjfF+-2gB-LKz{Bf4B-5gX5@s^z8Kg{`H+7do$ZjJn*-BASQhKT zmGWSlS*nRX%7|{-Pd|pGYwGo(D!?NaH=eyUc)EU#O~E~6lU|gQZmJh`N1yY(f(B}> zhp#7=QMy}5DtkBIKZbo9-td*@W0KfaD*#CXHvfh-qEa~(c9x+h)BL3+MIwKRA?#bc z>9bUb+giLqvGE~Y~Z{SYvy%VA`#fKAm>rWnNFd|5Y;qrL($6e?aHQsqsW6SK?5v-oQqgq)BGXg^?Gd zeYCSjdQ?2B_d-zOj-4Wd!;3E(N=)l2Mx!_tzQf4V|774!j7B{%=}$+>OiE>nOb~iT z{(CrYh|lKwyB|BPY$r#hvrP7se`d^%NP2V!(<2EJ;DnP^4JK`KUNH&^V9FI>C45*b z6OhbXTi#lrscE0ltXSWQlT1|jDu4+KnZ5nd;g%todbcKBeC8md8 zBJ1YsK9lsa)RyAVMPmrjwgB+x0OyJ}X6sDSH~-YV9SxN}3)kmDK3kKW^2(P;SO?o~ zX4)r;OL>`8v(1aRXE!{$j^lp{vzcwPOlRs{TP;;fzJ&3)$#YU+?1X#1&HZNOe5q?= znyq_6SZ-wLucxpp0ekn^<@tX|kx@p;?eYE1_y*|>6B-&{n!C4d>i&ai@z(*A?FZ}^ zlnh6B2SYWy+83J(&Uls%s)n9~}U0{Wj1Kz-=06+lV|1lhaTg^k3n7^vum&7l8L zjr@mCp8JZ>&0>7wj1(YM{Z$$oHFPf%EgN9Xg)$`q6dy(Bo%rn^MPuLFcHQdNw%txz z|8x1n|E%zX08WM5a*I45gDmY1%#6Z*-D4uqTxp~_cz%%etVIUvtsS_W3{S0JT#VhY`%EuiUB?fzKr=1jDzl1yYXI;mg1 zsYI`hahpxXdRyyd%rP#XRr4F6H03z{NGAaF)U8o0V$BMr`^npRdUi|eu&TU37j7g} zns~kcR8jZzD$-cm@#c{$+x7oF%Q@r!T)SMHADsc2n-Dvw&P>zO(^EI+Dn#c3a(1r% z;W}FfI8J>PZo*H0eGu4R3p#<$=~F>QP7dG24vk@%QwkwJ z#we+aE<6z|x{#DQUDLq|H#GJ9Pg_Ge_n=4Bkay?)JV&`)>s(?wBH z6_9xlXc83whu?Zx1fFW}-@WT@(!BaOGf}<8wFcPbLCov1m|SQ}XST8yF(9qk`o`vS zig%{Wc_P5xTkpvrWJ0ZNf`{Q3vC!V09a3nL{wcH)#(I~0 zk)CUve6hQT6;Qe68Tcc-|LSv#&%M1B0d6*>_F!Yg;8B*~6-yer( z?ylVkQiy=>QFzPX)SZt1fx|-=jaCCUHZ;w5!`rWFeE17HR3|1HlFzCTUkf>qV4(

p*nu$M^;7uV9%hVDj`UoNBb-dS~y?>a1 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 z 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⪖&^+rep>TRnj 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�V>5oXKyxhnMG5kju@dNYozI5srw(tX0i#t;736lQG7 zpKX%)CQ8Z!M>Yo>cG zxJ|3HF8B+Ut3K<%46yf=89uZ<$Wx%?hroq-yatueO>izX#nR9_?pw!*u}VtMaKHBfUXmC#$Q^U!DO z@&PWceNFAmPoN(WRUxcGwL}&O9ZsZs2u>-`%TD@Hc;IQOy3ZDPUbkAi>QSBfvTd?WLv)HY&~@iQi0I?d!bKWD`5F0aHRpS3L0D7j90a zG4RK9WW2hwRd@OU1k=r?ciLEpN|)5Ra|2mMs%o0eDS`ywR7wAGee9FvuCpT+0gu z$eqU(QqESj6?8wq@Q7boxHy+d{Ett%J^UY^bS3BD_QuKufIJ;mL7tw!@0`{iBhP?o z+sP;%6Oth9H)WD#_9~xe%UbND4`D%KF!o`B$LBMtLVCb z-n}%Bqc(>)89O0PSTFkFo#Xwu?RRB1shV-dG!n{@bY#FDyuCf^%ja)hT7XQtwAF`x z!miTbua#E)VNAQUn|L0TeM!M7GDsPpgjnm;ht~9CXd#N9E64!88p(x)91=2>F_Q6H zY_Uzo4(A=~gP(gH`Z+7%I@#HyNvp;ZsxkZA=bRX9a?Q%ma{Eg>hB!*L&(i9#HgI)< zBGc!tOc+Ykz!-SWgl>>qs1c5FPrFTL?dj>JjV`xLm0|{zgS^@eN_*TQg6iznJdaoh zni8b$dec=OdYfRvf3!b*|9&@uAuD(??jM2sKUdrJB0I!49jRS zDN{Oe)mg^_eBp>HtU;5cf8@C-b?OPeN4iPs2`taXdBEjAX9K?59-3wgzpBIVxW`_K zR1rkxO8xEHe60Gp6U(aRe|}XiM?Z9I2~95H_~hNGN*mG<4=8>8IyE=%vh?DL)a)O& z??AdeKx zW#w!p%qe`buy7^=U$OqzU@Mm$g&C6SRmq5JH+D^>-4P7YyCh?Mz^@9Td$;yu&DsC+%%hn9NK*euhWjbF`&;nU%KN{ zF>9r!%?2|BTKXyvLU2Gg+l5E_xdwHMb@0)&$2Zj&XVVy)yw_Q$KA@PE8|ema@uu7& zs6f)vApChElKTu;qk})HD0H(72vU$lkpH7?;vDZQO?!H3_T9nmX4#jYATubwn|Jny z>c<{q&?t3$7rk@$$w2m-Awea-$ii?w>>{r93FwmxOM|$pu^Oh}!;wE%2DeXXieSL* z9@@Ukss2%Q_ml^yVec$nFm08}l zKTaag6`u7GO+oy0@8cTzfuxyY?=5YZ-W%Hew)#+oGA{>@_V?J1uZcQ?T1g4GZGY(f z6^^vS(N#aFESzz1Z!f-9&Q@iMJxaHD?)|K|$R^^;J_Zzs|4vsM5S>%dN#CgQ@X+Ch z9E6}l6Mf$vPEakowEr=WwP%|y?61e31OyQ(wcQ4wzgrk+4g`Fn?B&~6Ucgk7mj{L8 zN)srG;Y3gLBc7)})Y4#-A|D;NBkR?l0g?uLWR_d|p)!x9@<`}>0CxEYND^1UEsc0* zfi>}TF%FK0=cfAM&_U73Rt_6}sZ+6%UWj&0xv6juNoa89j~;Jl1~D`-ZWYE_oGaNJ5XcrJ>DWMaSE}23uWhmN)DSIf84@ zn+6`uQE>LH@4Vvm8D6=>w1^DXT^OT$;PNw}9bdcJ%*@{QU)3_~-|am0dhv^TnE7S~ zy$S@rig-Kpf7ty_`zN4IBmIXFm%1_MK?Ow4j!dPo?){_-zAJ&Jl*Jf40P+`yztgqU zQ*`jeU*l9Yz8?mOfxIX%oin>EROz&5!#%%oTxGw30l5VFYFdW+3s;%}_tl+Gtzb^1 zvbX-l>l3_jza1KRL+1Hi+$9C9>Zi7DD%b2kv`aak~J!4=s6A^%WND%yOf zlflOzek(|-B+HIFH{Ao2eZ*{0I1d-PP-r1Tu*ir}en>$akQZ81Qx}IkzzC*GZU~-2 z(p{Pzdbn8G~Z*FsLVLn8K}gP3vw!Ty zm-Ktwj|Z^o#$p^-JdNOtFcY~^6Z^yrNBl4xm@ND%LyURWR@p@{T=+K4g=ZaTYPIJa zAv#jegg=ht#BEUqC8vE-DY416*`BF!H;vizUtHfMEyZX*j({(}B70-ZGs5oO7r@A6)cgVLtw86=TEjZ364wsmds(>`o;*Cf@Sv7XXY6Ddj5 zdKD9rC#{Wp{$hQB&?X}nc1^Ve<7xv6$v<|B-8$ckZM zvs8cAjJqqj=l#SL*O?-$hm0J8lOt~(ria?r<}083WL$#D^=>+Mo%1a(EjzM*6L0X& z@yev@h-+2mrdXB2{lRCl?BS_YAEUv1BsRW9M+m2z%!!gAz-m>R$+Qh1UL2D8*TcjG zW7__tFu&14Y?T2=sNg_^S3pPj_ig0T8|=e0MA%EYM<4V^d(0s7I63TcQfH6hw=Xf; z95vHh`nmEk-ys-w?!aA8<62%_J`4}0bx8h^$vK98o6!T-S5}h08Veu(UJ;1Xwn=v(6VeagQMVXrG8kzPr-Ha8Lq)EoZTp zd%EhKb@@(E0FLL~(6;AZXPz+C&n$Vq9}=+>PDV$Y3J{%TBKC^Y%!5mnr(ZnxaXLnp zzV}Ncve`Ao^pdp6ah!6r_x@Piy_Dg5cE(X1aYvSFw94Wrvg71)m6!b)_b1y-X5PA| zb*)KC*7A`;NXG9Zlo`niF9rjH;Q;6Xwrjuh;=Cheez! z%rTF#pHyA!xCKx2z7QoDt%AX7?`N}C@I7E0gAIHBj|c60AriI{0xzCJ=0wPKo_$X9 z@Ox$6G;i-_<%TxpR892C{+YP5L-r6cDa{dO)B)Q2BG5-X{g?OMZv*NW?^Cv#8jrsf zItaPDRH4_O{T+9<0V2n5cdH;oh6~-G^1Wbqo;Ga?^ogJgup8SBIYPAPXpCj1gQ3l( z6PP^mk8rRn0+*dVNCqeP%)s+5+_|ZDZtZvWhN^1+8E=fTaf=dc7pu_VLpoNLWg~`KYjHfA9(?&A^FV)Hu+zw5j=C>-Kkd>lvvLabm zD;)Zo|W!lU+Vm&iCH}lCECU(8<~}Ena^ojM@7I%f1idjqPBTl zhl)}GE$iCeI_QC^L(JaW=co;4hw2V|f|mq+ZC7KI z7{RY*{9JBv_On$LwwbCzp`+iz`C;Hfh??->ugD;-QsL?}F)B+MI``e2GP7aC{SK3J z#$XbfISj53rVizm)gx?4z>LrmE|$~zZ>Y$Oj}7=p*J&J-Em?dg{1(l~{?epQMV(>?VY+3e!IGIf9>8qv~nvb z!Qhir#+jEN&GcO6NwTm9FycWq@L-PQ`8E)Ov9VycarX7;ep_MkSKfKCY<*Z zAPJDkEroC27vmlnztkz+zlt@4??``PUd--Afr-K0@6wNQ^2U|3L)~Z4JCAQq`{Itj zyBMc+JZ@b-TsSuF;T_GvJKpVZnc&erv3i|dSta(=6}Tem4kRf%;AD;X%5}&e71Z3m_ebey+V^Ofh87}EAXn~>tTkCaftoqDI`m`D5*NMaXS>b&KVPMrUST@M zlD^%K?q)!DyU)g?%se5B@(@&d$Xk;DhNrG!V-1|ZT_{vCDr$T(@w=z0rDo;oWw0>j zhe*hX5*!IRgpNxxELmX_UYbC<{h9p`n9A8U<3(s`3x2J3jPiyocV31haJ^sKjfe{I zw`1Su2GI#4@&;hxA&HI~r2H+S4q($bU&IPYXs_sL$Laq3%J3v|0pgB`fDwHOuenJR zXgP&Tx|$Xvyf~TlGErDP&Z%m-E@Kc|1GFO{dW@Bw_xk+VVxaBzLS}tql`!&gv>apG zhMCirw-7UZnzj0pVuEZ}dl&ANe5;0zaq5?#MN#1DpI&e~cNqnkLx2SxomtwzO&Y0v z6oH5`-)c6)#QvXgTrvldc}0cFp(*nA=a?Gn9;e;^DAV_>x>jI;(~zt{*VCUpwn_2g zLmt}DZ0!~47;gVQ)g-+&OhF)#K;fag7oaPQx8iSqc}bJnSQ149YTN3Jm&c?@);Aep znwAlPf49r)8vmaDs^T$@2E2u7z`#RriEvbHijKtUYtUrg$)nKv5H?OiY-#r{(@%{J-Yc}RgZ`zc( z9fEgiZkc=vLdkdm;_&^~J_R{>w|EE0w|I+B4fBQ^MVoWxs%K^xB!QfZINJ2mPwc(y z;FcM^O`N18gJ{umxf+ZtLS~A+7OBXCuw;yPBW<80j;T*H zG2FkfPnBN%&c3YA^$dy%sx+D_&rEEry)6>06V^nee`?2DCdON*W}Rd&Pm@kNyA^lC z@(?Hc$Lss9pA4lvf1%;k?%t0oYzfwSn?`h)ZGkw@J}|!`D>sr)yx%bY!OD`Uq0QNE zWoozVBq|Mb?>~=8(!Y)x4NZS^l$vLxQ5= zCGNz^_?BwjMCt*H6h{{~Jl^s4Y$(1<=<@!ZVE3Um-@VKGKX2w_8z*=FCH%#~@3pDb z^6Sl({np=6%!1;!$!+;^!NUo!@oy_;ld=`;EXymZtrTfk{ajZN#^X2L(kgyfUjH1Uxo|r>x08(LW5-N9>B_lU5-Mh#NYri|!pj|dK2g^_CmJ3U zOk25jlkSH_NJ8T5<(?nko6!NL#%miRiAJP#+w^o*v4x*&&CL^O6C8qRx-pOILkCk) zMx)6TYik^hGIHLuu!`f{pyN~|BfAQ|J~3wTaBAa^*t|7zIxuvkmt7+ zES5O9(9JY_)5kI-oIR?$!^AVZb3+jve@Hj-piao&Hk=2_8%0QPvL(W^dkXY7R3 zrUk{^MB5vb8%kt-{iVlPbHb3}qG!kJ*Lwua#1oI#<0t{?KD~*mhor~bXjwcyfPs#* zJl*9wA(NSeMR zb`%RfV7^VSHmzW>AD$8Gx&l)pgLuZu78<2_ldE`4o7-gt(~6zF;Q>u@bkj9-=;|Gt zUoyP!JV^0w^m@8gm3{OLV+REqi=`Y|6HRZ5Wv1^lsF3UtDZ{pXyvdndZ!>(0)L3YA zzw6GqMF zH{TUOrn`DAkBsMMJb%O!GSZ*vM0{a+-bR1hl2~KpzcOxHB%iTa*<+DcCh_=H+x9t4 zzul(t6`zq-?-MR=kA~n4+SkZemRm#w)Gj_Se@#@eWU6i&Ej7ZUCBhqS(q5~k^xq2V zsvg4?GJCcCrMhrt#2D= z-!HF1h-(tf38?$>OQ6I1{Oo26)0=@eWC3|c3S6=+8C=5&yWhI4zmIopv`!ouwfr*o zW_x%h(X#BdKgn3%IM}5o<4QwVusd~oHAVYS!a0j+qECD4jHh$Y6>DPGbi!>L7)G*w zK{cs^hJ5nMc&d*%?qqXwjhIm!aXY8Y&uy@#{EJ^tPRu9xjr19Kc~UXP-U57VGlCExlOBovQ~=rVfjE_&$S&o3$A_x}G+5t5~jk@G~Zkk!NvvtRvUPN%x1 zSgG%F@c3mZ3U@*`dNac9o=8G?Olue-#lbPQt`|kFQHPT42YV)I>eq@>*igm^f6_ zXMb5rPxQ!xy7jVvv~XQmg4j=}JNa%MZJW+`x&S6e0WWTm{89Z^n^SYupRjGG?_K}= zPWL;Bq+RReGU3wMwbtg#A;KhyotxUKGL=bkcQ~4qH)1TeV>~n5G3W5wOHS-af@s%B z*Gg^bLId(ua<)tF%e_7&ez?XRS(+a^ayLf|4#4PA`_9V#ZlUQHgOgGoc=eRw@ z2F_ue3k12$S~Abz;wP#58IG~pjHH^skePp@C79jS%$unwRq$^(|deHR%~sJb$pn^IN3e&1&fD9kM}m6w79)=`jE4x z?{bT?1S)xJD_jVk@1lBJ)o?@eVE3P_1`_AznIi|iY-vuqUGMm4ub_H(vYmhG^~Pk_ zs%d>&_jGQ>(nyi*O7f#Up#YP9*YVk6&rd4WqeafgvAhqBSa=7j3};sQMMOUQ{^j?Y z{5v|=QYYI!q%3vTsLIkIFDW8hKs9`2^9{<2@;ux^E93!?^hJx7-mglk&n>KXx89v}Zem8`(X2R86f$ z?7WG$_V8N9NPupSlq8o&LQ}l^pk3z%3qwM@$o8(H<=d)KOYMFU4tST9M4P?dh9ewF zZl=jTzi3ru)xw+29lBrW5r-4s5X~$zuoIOA4$~aYWW6U(8THAr@BR9oRnXGkO=ym@ z8aZ(^NnQyxRi`$mGbj|l6FBv{J8rHtn>}oyrt))?+S+rhzq6K&f5r>v@_Ed&G5DV} zR4X=MzkPF~R@%>RTC6#H#w)$mv zJg%-bnz1^p*OeoADSW(0KCvQi4cR|n%Zg*E;vbS~rnJR3t6&A%`h-?y@oIbI9kx=(_STe}S8rtC3m3kJhN=X(-sngq&Ka;!(oDy>r+iJw z344C0clDXs5oR23Po9^YJ<7Ds-z;{a@1lQzskXQAcr8c64Z2V@4lzC+in$~=xnI-* z6S&-FlW#S;3B~68riDDUk`CWFcvwWeulB6;s%x6t>eit!(@(D`HK!P>jMsEerw+^YXF_*IHjsg56sZ%p=3tD*}aW?N~ZpyF!FD1T74F*hA&J)W|e(&~ExDJnz+ z@JlSFB;V1AHV-=&W5W^S59jT@N5ayZ?H5~WttU%;zhE}@0${{QN0kyW#keq~G2c{9 zC_DS1!x(B)kmv5!_ImSK&b?7iB{Zqf%F;7yNhtBk z*p=oqRnl@*LL(eTjL(^>V?_fx+T=c$Os12%ca|ni-cU%2}MT9>SA5Fk()&%wz|!w66%~jGP&1^%;x%$vza`|?`g7`vr{@bf;#jf$-qtFiNb`e+^147)@@83HwXB2%f7aCxCgub^qtII?O<*{ z_?U~!e(uVM;%j3zv5YDU%Y<@MV-Lj{7cXqs`G$|-;iP3n>+jz)ZbwWLN8;Qr;k)x9 zke4auzx$@xh1I8DLSld4>r*C%%d#D-_zaGbIeWwJ^PSnCX-aJd0h z#H;n^Nn;_;J6^!wXJMtn#8%>m3i7?i{F*nSLyN=6=6rj*QB@!Bx%pBNsc&$V2bdD# z8!hB2e6lIEuGF2!<|ZC3Q>_$7{=T$58f3f(w7S1&#BcmuU>n$&1*ZM8h<4JLzvV*@ z(ql>{SN8Ba_TfjH2dz2h+N=anke&31<` zhiJFG8x(aXNJlBjL=U#-ZT-@H6!HMsmyk!de0xjDY~oB&(Y^>|n{ugJ+03EukaEl* z-Hoh0cwm)<)p_Hw^MnQWga60gdqy>xbzz`5j{1!X4xmj{#%tK=#M!#o;So-=ps-jC^_+Ndk-Ly@LL4E!Sv;DVV^Eged zg|T8+?MGF`nM0v6;^anvDPiJY7W+DcNm&j)q7IxN*&p%0EN*?6Pha)Efeb9us#(@d zuViY7O5^+WPRk8Xb!DHaTI~>f)1@%`tZ$l5&zN~w6g6H(<7bGCL^TZ=8-#Hj&Em>) za2DzlnTP}Xhmo5sIllP9-N6hy-jteV6)Ek|{x`l!JihU~jg7o^ummSQ=so3bnekA{ z1Nxde7W zdxDbNW@I+(s}eBc?#J>lXW}Vz)il9DDYo zL2i18|ErG`5tc4zqV**XjcPal>A&M{*Qtdfr^LI1DaL;dz=;#NdFNf9vB)v5_Nohw zY4Y~xwFAV(FZcEO_pF|3Hd%QP1y@`bg8Vsadh_tssZ{<9XTQ^JL&hH9IG z*x5a?w#%GfB|EbHC!8A`WznI+Ek7HC__Q(~tyL&i_n=0bB|JHoTZhNUBt*%HU z#~SQYI*Zu_&O#|;O@{yb^S=bWqTSRwmk=eDN8>IBb< zsUF;i5TESquL^x%(D1>`H3q%`hu*SgqgPYtnH!j8nf{d!*3{e4@;G3QELT|QP&c}5 zQJgwIo3rM)LTS;z{T1JrPELnqZL2_cZWFHIR~Dmxr*-O zEf$v9VXrk*xH9&5C`Azr(Ae;QKL0W$H@Tm4jb=Ult}wS@RK8XF=rJ0ZrDZgRnt#>8uF}#Qw9QR z7FFeQ*B=JQ&NsK#pNk(<%C0qcYUK4^Ny(iE#y!7iwvBbbwO68QZYq2@a>!HKb_mD8 zpz=R{KgrdLsjiI5rq4&VGk&OQ-Kq$fw1=lclfb?-cDcs!S1*0otxgn7(&XaXrn4Y+ z>~FU(0jnf>b@{P4JVWyo9Qo!P2C^9M!xdlsNiO;1WIuGP#|pj{yER)MySG;I-Kb{h zw|H92{Z>nYfa{E>dY~FMh<~+JYFJ9iUBJ@n%xx{d$--2fl!g-I;ZdMAI5Rb5rXb8K zYrj9~6I(#@7Cr8PLR)Juh7@Og=Ro{NeJv7OaC6u7iXJ|8_UVttLw`mO8T=4+TG=u7 zdvxF1g6Y}C8qN62nbqaC;Z2s+(n4%9GYM`Zlvgs1Dbu*q;x#XY|Bl(0*i55*ob2y6 zP-*(qzkSSSxlb%4kPsv{GL_+0^VG<(Ju>u(x5pGOV8qM%-JLkIy061CnNUt_GRM7*tlvh z@$*u(t7BaZXZ-K(mkpKRIPl7C44y>IIA{Gf=V5*mXEG2!NB1$l1(n$76n(^f(wf8-xGi=J3}FI8gcOQ&DG-YM$9QUXS?Gyk;Qfzj=E zzO|<(JFPT+>q%+JJs#XDW~?q8v36*FDL9gxB4R80<+;q7x(lB=uUOIp^F~6DRy;q% zBAw)!I1c?idxWUE&*pvh16~kjA;vswjN!t$^dAzr%#%N+Cpo{?#Chk*dmnyFtc+bw z9641f3Oo6*)gQYVBeJ{N(fqRPp-S63wYb7*7tEbLO-jf_HP%A=sp!xm!L#;;^{mqt zEAiZOukW>e@~pHCjdP^DkgAigjECL<>A5nTMzq4_@zec!`zg7fTp19s>5}BYZr`r6 z3{my;C2v3JU~h6}cK@E4Z7c$k{s+Z}n!!q256SIG%(8Vi@R%hy(q9<2%FuWrGj0j7bPX<^(NU|Fk$R$Likl)T zR!o)ZB;HE-^i+?e;YFY8_tc`{;IJT$#ny>ar7q=wergy&Z_j%>IQh~O(eXjQk$E|& z*+!B3gU}uG#mar#nZ^-08L^Nx*?+62XkL+Ce{~uTT>qpK8i}Pk!g}5Lr)~SM&~9aA zt{$+hEUa28m(G0L@}j(G&W8Z!zXgMMmLv_u6A}c6@1qQE`_`N{j@?p9oR(gs#iA?b zqb{vFYNp#ldaDzh?A&^ay2{M?EH4lqO;Z9TuF~E+RMLym;t~_FrxrR36C2l7qp~cmzP;pejq=z!ee79dh{M(2 zbJEfbGj+eji)f5L6hax`iKIyIOIzy)jYeB8tpkPJdCb-t-vx=gQ{sdb%VKI09AQ>@GPj=Pr^a!3Z`&1=Ub=eB;d=&f)lcL|!dD$XKec!e z!Os4IbhPeXtrCaW%8+1T#n!#27xbGlzBRR{aLYblpeP*^tz4qGEiEaHW>w#kXXBDh z?3?JV)VXNj)S7f^ic^Zb^Ao`P`rj;lB_2MJ6)4W7R0<8hoABAIsZlOIRb|by|Kp&J zT0^cYjIN~`BuEc1^@1j}Q+#+^uXL7mjn%ddC`*<_QKjE$NnP5OQ>$mUE=~>g-=0_F^yGYeuSA%F;U|=2wE6TEQofe4m_(3`Ppz1}VdO(|CO#5W9 zo%N%hPaZ7{in=2;G^eFv0SE@%MbqwUD2#}#a`KkH(?lzb%l|~Pt6h#<9ih05zr}SB zn^>23^6@psV6j4j{fiUYj@G&@mM%`4lU~t0YOAWf>6@nkbcE`xofak+N`MiFTG7Kv z1S`yEEq3M$HpIs*Vzhft39R~jn!F5w=_cI?OGPn%tl200R)1ovxu>P8_wk}8rxci( z+wHNt8l5!PB!zz+yb1Bl%R6gQx2vl*N6Bl9dS;|6?aV*oTer#24ut~SLaf|r^(EJ? z7pYD56&HQ+)3^QggcP}qb-Q8pL9WtD8|l_=#YY$ygVVUlZ{u~G`Ns!)_R~xpKiFS2 zD9{gTNcU68PBNjh;YvP;>%xVD;%N)KSj@cbHWc1Y z$}28VeHrv2RnASok{1tR2Qbsnk)CXTr4d{O4T+Mb+VjtE7GRCKS17zuzNEx9Kj@OL<22lol%g5zAzM#}6T1IQ%RR#c>A>vBxV zQH*{po=Ls+iTnN`URSXYdj*dp{U1&UB#uv~Tk{H5&&5ud*8Hd~=+@W4$r23~^_(Z# zgt21B36r+^fWvKu3^{}&L>|MRNw^P5mAtn1jwWaZ53x2Y1O>O6lB(B=)d?gC;Y`zM zTd~v>CzoV`_L(Q{YSafMX{JlV{#UPcADOmv1o)VLYn9&i#xwMOW8y8ILwb8>2zrP; zkIrosTP*)eua<7DMs$=5YZyvWR?hSi`D6}UL9${bEz8QWv={TXAym6@W?ss&nR-KB z`qGQ|2xs@t88fT6rMafYIzDq8rh#u$Kk<`_Wg}vXBvygQxK!`w9WJ`VBzoScd7I;q zOP_Dr5_HZm+!rPxQekQ6`H*jw(ejx+~gFjmh;0@jf10Dc(KYMOJuVO zOpl06Xvu%*c8{C)^(5Q1yez%JJMgjRL9@HmnJ1)@jI=a@qxk#TL^*Ki7 zDJx4+HfNl7u{urZ`)9>Au&dLdTO3lGhkztc*5pOQWwE-4nJ9(cbMT#u1Ae8n$a)h$ z{7~``m+PCXPV=3QC9A-0ZHRd_t2G-aN9C(OBHIcX9Js{=WfWDh9M}Xz%$`C%-?HX~ zA&6eC%GjT`OVj5Eh9Y^C2Ecnv>rtIuHaW!ZMyO`R0-1xEISn>+XmRn{A zoEdLCr`T<6mHv$GalO)-tjUe8&ti4(Afkx;;L($X0s!5tI!v#JME}k($d|_u1-I_h zSnfP{N`IpK&_LLh+@i7GU0kQG!H7(_i!6KEC6yXHGke~s^8>jTt_V%-;g#V3HxC>u zmOoC~&9$9^FN{yj_?w{i6gnGU#9aD?+a=vjDkYC2jW~9TRSJ!rhSl680(={$!ZTM? zH4>?Ldhg^`I3Q7}Le}`d{(60MP)CZ~ z3uldr!|>}?5=o)_eDD?Lybpea3-0~>F8YMtd%V+29a`~l%3_=WJp6n;y~LbslWmeP zZq>+*w^>-+r^1}kP5t|-X<>%D|GvTU=ikgR|NG9<|1hWa-!~4hGyUnmZ=4lapR0e~ z@l*Z}%G~|e>+$-4|9$6=gJ|pj*X!_k=Ai$5=YIqFe|ko+e=z#F8}4Ue$sU=KA~wtTQY&d16=%>VW3Mr{npt0=H>J9J<*P~) z`aG7Big|A1R+;J|@6u$o2iiSv)F?_Gv)$a(2Bpj)wF-Iojn5NKLxJ-Xl4i|f$B#c= zm>Li?tA1<#9GS9_wQI;&qX2X;LzvU3E9;FvL0+i{U3*p<1OuE5=*GnG z@~?UtcCWM>;_5~Dh2aubyW`j9Qk`0itL-nyuhtlxQvsa$xmt0MOWa3XkUDcHRQ~kX zALz2ZkC`+6RI8M*&?>`-=U4oLf0bUF+_ag+4;o7+b>%PD3f>i+s2C6o6W!JS>DD9O zh|*{hw^$V~ZH1;a-8xPS6Wz_?_lt;O-f0SsGUhfB?CK<{H23*J5`faIX5-2?p6tVf_L{a5hDo^PwnHp6B_{A2`J)7v zY05xx{zw;xdu=c~`;j9@94Y1GqlREQVOeC9tihrkNcEPT4>GEMVEUooUAJjmaarYh zZnen5;QZg;ds~cMx3ZWt&a5>=4##uzwcxxy$C)NN(d}W37@JUqg@9bIZ^F~F@eFyY ztV89reR%cBUGVYLf+o?R#KgqpCiF=rf`ZJgY4ixY>Xo%%2qb!{sB>xxTrda7JS}gyDpO*29LPb{vm* zu{T$yLw%nt&5{KTx3jQdOjZ`B+maqJa(BTeo}FQu$M=~8QC!0gCF3=m|bu@x2mR(dM;T-GVc$BE&I8tRC*fNDX zVz~XV1iFgcT-n5=dW^A5J|UNnK7Jv}PwkoBEz;GP~15<6|fUs&=kj9=+I zUNNQ3zAeK067ACaq_nhS70zRS7*;qxu4R)uF?JUX6Hz=bnP*p|L^IVVAHGgytQ4gU zl!+4QJ-GY|d-tpi{V1k!(5-O(zAskJIkaGbkOYf()R3u9fon{jVJ>a20B^rbAlsB| zJ(1V5e$%Pb8=rwbr#EEse_r>0?*D%Q(f=v({9lOp|4z`Xj7tVz!n8Zjysm>#sdT*3 zZQ?~KX=+Q8=@?#$6ziMySH%hN8k;?R6V>K;@WzuJ)t-}{pB3{}A{A~&3i#IYF#kM% zBj_u-4-rtHOz5ZJu~PXL&d0$arV^JLGu+7hnZy3pPS<7|jNGp8l)IIdhtLj7UhN-D zbONUDysdWD<88T%{Jh+o05oDp_%KKtG}fqw{9Z%m9Dw|3!S24 zKcPp73U!4PdtYwM3vX6>Y-$Lw*Cv+UhuOM$C)RGz&lOHop2TSEGM*R)f^RlM7xWVuWjL=7sOYnnlBX=uc-5!HoL{U@MA4n3+vc?L z`f7VA4q64XY!M#+F@0=oK*1wK=?wax)6-#uyE(MAaT+N-ULn@G99@tldjl3EY=Kpf zn|@a$BNO?8ulEpJ<&s+4Yc;eV$pS!^7o=&{(QzxIu3(H4Qm@k*+HDo(V z-?*~CPat?Df!5>o)M<^Pun-u^v6PQOB9iGvTphgevHZjkEe&0kWnhOAhRJ`i9J|u2 zFCjywO5A23)M2tMlIq#wHI&4hZ9B1zJKTO9mncbI2{BY-VijJ4Dyqz^cj)>cEC1)1 z{{Q2c+WtA(EF~#XFS?LA2iVT#BjLAuzbA!@=Bqb@5U7mWV0%{-H|<&&CYsw-)a_yf z@*4cg3O}h_Fr^-HL+MM9{K;q3JTM)8qw|e`1%1a$xrs41pXH>hmCjfD3tqo4y}c4C z76?M%aJ~#lClHm?4`%Gsods2|_1!_{HuQ@P+5pgY7m!AAxW}laJj)KAN{3@4VD1im z?gf!DBs4R&8&$)*h>84bVf>Ga7Y7RmM-R2B`6FX8@nPK zK#?*_@rCzL${`>uxs`baSq|t9G-y6zemaXERB~kNz9?-n0{+{;n|3I=lKLuC{`VW9 z>doboYD49UV_KHmW_+fi@HEGRh%w*Bds>K%XDuCZjPGRzmnt2;u}VvlpUF93PJdaa zVrm#0hT9MGCw1*XVp-7%%QBm(s3@dRa;DyB8(!`1arnf2=Se`CwAG*Osa1VQf`p&# zZtt8+a}*r=t2|a86!j-!q~wrt66G46UR9~PYAh`d$rqwfW3GqSxW%JA6kj;rS5ZNReh-)=b%Nh#pPW^ehCnFkV7?^Q9+y?hf9| zGSu1)cO0D2n9_jc0jC5tpCl%h(67>9?oUmHM9+wdfym)eh=L+^qDaLnk5ZZSZP(z; zDt=%u4DF>@%(H%M4;ydE_|0__Z5QAyGWPD*QfvnDIq*9BdgWKd0>G=}9LT``S^?4AH-iNlr*Xioq)<^eqtUEqqJzeH!_Ep;1W{aPImfTU$nL%5-u-r@_7viHx}s$IM|g>t~pT|`3R zW<%rT`U-axYYBr9uW@bpOa&lc#nad%RL*!WVN8&Xp|;hC4BB zoWO0Zvgs=B+z;DJ35z&g#}DL75}r?xl8Azvj*6k%=REW>-0GB`JH+KsrKl7abJvm> z5{4v6kcIn$V;ifrng-bN{#h~g1h&b!7Jm0MQ7d1~zFTL_fn3xv!CXz%$8D1BRlsRXZ?E+x3p%lNsB zqovs}1mAf2d3m4K*667?q-i=7%F7=wyHI!k7k?V@&W)D*@kOv-#_O!k_q;p$ZUjii8p*#fEQ)55?%vxiqhKvx> zdA48Z$Utf4CZD^mVEw)slBYd=;+$V$Y%UO%B?ny5+Ko;k=}u)2_L4@jVg|z5C0UuN|uC& z;GtLV)qnSw4H$-*hqzIBxyl4@6g4b*bFH9nw=RwJ_;g=xN5+N>toIU`Qo?Vk3aMzh%?wF>)?y`8aL(fHM zjECX4RO}w9BWAd#DbjA>b*~6Ic9MNmI2ewzQmwYrPDB&9A>`IdR6jeyBsBZ%x@cD+ zn4>@&LGsU%w5kZjAT+(%dvj1ugT*iQ@jsq5DKN0V{=I1<*+85@O(Ts$7Z3qd87^Ky6AiZ(0BTZdg;>7RB@rEy2yNKuj8bt`X$$ zlH3_K8JV~0QWCmglpol%g(nEUSFZC(9i+~ryu+IznID>pW<>{3(VQvAAM73M=flr$ z)1TwBxia6|=|=f5WZzu^R zDW>~es_qOFCKQZjgDp2pBcs$i67_)-emWFV#mGF3271}D9OkkX6aR(uuxdLLwwo|r2-_a#yBp>qFahYgXF+H zR0(uTrr*;JC26UW)8G`MIv^@^GyOt11*)9VWv;{4;M5Yw^V4M_E5VnG^t+PifUgvw;+%#d3Tz6EiPRz^0)dpe>5iS*y+IIDdwqPs=4 zK{AcL$gm-QM|XERVf5o#_@>7E)Y#of+aOBtR93D7*}_csUUuZB+gnnvpz0B(lIWDx z$k%+GCB;(=e{xio0}6vc*QAF51|D7}mIpQxM+13aZLSgv1u`NbCktG2=bqEz*i)NnelQQluIw2ze&v)@}LYM;Z^UI(BCe>|(fJBV?Of_faxD?8ezR z?+)ft{qRkYs|RCYs`?^SENd5e_Z`1 zQ#L4jd;;=qb?mzpdXQMrvfO&$hc&|;He^mOz`vqHioPB#OG~nm5-6IHA?v`=;COF) z1st)1YXK}`xYT7CsNO+7ta}B5i$n|ad5c);8!3nJ^SvmIEo8%KZrC(%`1_5t(fc|` zYNkutmw(*rg{_@{q>EEl?$Ap~YQ1jjh(g1u)Yw?3wSy|W@vhMz9N5iWSn|~NNuNAY z=e8_?BxGO&OJ0eexQ%u@NXyWXhyfXW+1w}&?ektC7qBD_(UT|puBUlIkydwVI(bUQ~WqIrlB`ej5l8M54%Yr2_`AFJgv&+>< zf`duR5}NR!3m4;K-Hax7ec7wWSnJ0(DY}nXMh}+2W*mgzBHCqefmc>?U&0fs3f!&v z_KO1sCeCUu1G%M7P1&Fb5Yx6y-^CN<$|DHg2~~SZuheNpS2FZEUmgJo>%z*dYJ1^e0OMG&Q zB8xo?P}ZkV_ErucJsQDH{c<%UM>4mVM5)g%h~G6a-jDA-9I}pH25|p6-#saCjL`xE zLU_}h3jq^~1pv<{L2N^OI(Y8U^^(PxaB>_$%}j?_wFQ}{uSF+1(~;PeI6EyGiQnBux->T@FHPi$x97QzQR^?k>48FxO{GU z(HFMe1{~4=w_ECFjOt{n9z41TaJt{lOE0s@)YjFg*^5)Eiuie z&`@jF!RHc;X8+uJzpsz#KbosK*-L?`EuwzTuW!`Hr5r_)y0H$8>$z*&irro7Ate3C zeP-;rNPGFKky}KD z9DO18h;&llyUKyJu#k|Uup+P!2;T&Vt#fh#2A2d73E_Cx*wVFW5287U z`4%*IU!nr*n772O5ZYtEPg{>yJr2OX9TfrP{6(bYAsahs88ChnI*v8Fs(f?YJ(FYn z=kEnFphSys?L#^)D}D&&XSZI^7gk2;ZIIt6#xgZL5H-jlVKb`i5x!moQ-X@8j65iP zF#}UQu4lvPm<;`|5Dd1#FSVz}y-cb2wF=_qB+uNHujx>gO6qsgY$>;!v?kZ}YPALi z1RU96)R#r7mZfW|?$V6b1MQlR3xPvDNBrxG!(l^S_T5E+2I6(*)J211r{UNFSRT)tQmYXnJl(Oaaz5KTQV)lW+JXtgwLm8|z zBPu#-umqVG&m4)kQb5;Xg(U$2sC3R?Asjbb^#~QIQA?1tfAZlgHE^HmSnJ>bH*iiO zik8d`dzM+}2;cTnP*G0b^a-8CG?>l41dRt?_YhNv7H3~mWb&gHs2&OhG&8zWTC%vh z`!pB`qIu|$r)MVi#Uz3oq-LNOx_`?B9Vf4jag@~W+U|pY7g3^uH;3wy@3yv@!ct%B zfYV4Ka_88TJQ#w$2tsLcL)}=|opndzxj7Id9|Sk+2;l#Tnxd4DC=?BqeN7ZM?dO%^ z*mFmIHB2>oznS{At5DngeAc6^BWgdW)v=&S`gCgoNbi4$D3GRzx_!y{~gAu=r?vhi+>nSc8NvdS@bQHc!XsrlMPqLYsAM z>r%elBAM$9PJiCpBMx!e7XIAh$Om+Cwp@1;9GGQ~l$;W`!NU z_mWJ9H0OdL+Q+mlm6n`u6pln_1`0D`=Z+U;ppY3=j{+1{kdz?1h=S`OEKC^waFgsR zc7f?aT_*y6R%V?tse6xB-Hn|6W*U4)6L&u^cClBR`w`+V5yG9lDdG(%*+UWg{3N96 z;5C`%{4<;4H+6+(#BtR?uY1ztf(mb6;%W#)^vx7k07^$6Ttv){n9pjUB>#iJ2M>#u zPVKkNXfjYUn5!K?F-nm;!SjYPgqqQVqB`GgkwpXa5+ik37YN47I8w^X`Ndj&m#qGF zq`-axs_En=D;HS4HnU!d_ztmGdr(BwCW+ME;jK%+rk?^}j&2*G@*@2DZi{I3BC&T^poqTZ|DYi`4Ki2Xn z3Fbfgh8B#KG$`y405%lkvo=C7zgLMuDeFb_N za)KNS+-GKfWXrOtazR1r^y;=ao368jl4MZpBlNHrD3yAAPta*WCp4P1TQYT8 zp*PBd#=oa$aQ6G&E-3_@K?Dw}R$l!|MdnH*xctMkU^B`^gOfC+%?lUwLFwM$yEMGl ze+lBNI;e;1x7pOVRV2GmVkZOzL7Q(QC~}mrbY~7IHL5JqxO2G5U;pfbVhp`9J3ubQ z(g#WvHZYDC<6bK2SupkEUNI8s1G#3i;3Fz35(JCTIkMUr1JMj~V$jdSY+(=u)gs@3BAsP&I9!b zUJ%`Ft(BGGAhM(4Bjq|j_CraK_}KC&8<{GdwQDb&bg4d@XQBS*gAcj-hk>&4WTivv z_k7=KW_;zNU-%GRD^Z8s03zKHp6C!9r%L^~3wmC>$aE5y8z=HX^^A^8kiCKuI|RSM zn+{!)bT>rl6rdw6HOmQKn?>`_7u$5rP{DR1Ewc*X+o5|=%0)ph(Y5+sdMilR`x2k_ zj~bCvN^B{w`ol2XnLp`CsGJ!{_cVceVU^Udc4?FE2T|t)YtwLQRLMx60l50n77tk$ zvFhoWq1#|^0s@LWm;DYN+D`c$huS#MhDSTQPUbXmiai0$uIjn#1uZK83Jf*6y4%UF zYC~J}NxJtNi0+hPx2Y1r!ck~jP9i0o+IDnZpIBqD8y$445Q1*IKB?&YC>!x zHVH|%CUPB(Y$arutgU$nNS=6Lxxz~q8 zH;?g3R0oVuK-M>eArB^n1b`DOUW9fz%+iiP%QbRU8UQ3)cZl)1TpM%}hZ7E-4`qJv z+2{=m4Y~=$9{0QITvVQ%Bg_M^wcNr3S*S#CDp`I+sCfFYT^f>V7nSX<{+NdHkNf8% zL{5Q|Wk1q4i_YgZht+e1jhO%>uY-$hh{I|i?{YsB2OOaRqgXteClt^wBF0Z3gI*9n zNHF8t%^Ze_(?4=@yINGdwfN0dEGQrVxg+F(omI0bU>}97DjOkRf~i3HwuRE_c#aid znwSk*`titHn`*>yLH@Nd^aHXC%|r6J7w>(7MR1Vq`Q?6y|F1mU2wfrW_de1@LTW5? zK+(qogplZ!7p}L^V5=JWc@&DoIg5-eRB9g&m7TVLmOrsvz5lH<8Efl=c6W*J%q6xWE5S((<9utgFvA z5LGhmZHeY(-x$xj`g}FE>^LOp ze@1Ni>y-7a&p&YpWOCW*K8X$}zmaZ^5UM7x=WXJ2`IH=I>J}boclA5eZ#nkMLTr|F zcku5t9;t)&(aw%~pB*9Q4S~?Q>nLd*VoiGe6rrLSx(hb+vL7K4QWLQMM7 z3?&Ys8hMYG=;ADXynk;%h8pZ^2((eoQKHiJ5!)8m8C%o_#OtO`WE2r<>rmy)q-17< zSWuL!cJe4Rp@O>M{q2(_OCbZ&dD=i^qFkko2LdaA!jzS>Zk8OzD4`NtJ#DL1j5%=e z(8TAP^}X_$xM5vgVCq<}dfpLCJ4fpJ*iV{ip&DCFnZw;268cc~3CeFTdFE z4eBJ%@Mg6=#=w*E!Fo2wcd^f6vtBS^AvUPvygRCPMci+<2Rg$KO4kmcf|t9#KT~3z zcD;9DnKTA^f~%uBkd2U1s*;>QMZ~c#ajYqtuXtd|HPlfvl5D;+sPGDHdFyld26XV0 zM5`sqWuxKlRZ?sA+C+0!*n6?Ax=y4B_a_)t3oa*SCyh`}i0q&OQZv>PfJ{Evnyk;( z7Vq;vU$Frn-;o0TJ?7`Fd=^^YB7WKFWo6Q+`oORGPCbWCotCBo2T1*m+TXDJHV%ny zP$|SoQk#3oocL7$?X1A&Xe9w{~wUB>diWJFwq`*D|bM7cHtKc4P`JYrdRp$$M#uyO`VQUO)Ib<3F}exxxl<>xTku}Wo5aiI)qQbqwafKQWCV_X-iTG z1<6rK0m`95&nFG_YUrwPUv6tl?7VaT93-qPUEW7SldI__s!>ES24dKx4!$=GT<#OU z9>A%;qpV6poQL+gVw4&|29Y`g2_6A~+o>aL1N6uuIWtm1!JJ zxNxZ+c)tLkZ#hvB*7eUQ-nN@|xVUvHdR$s<#DWIKV{c@@}5es>UEwohcOk9IYLBQ^LF9U8QAk3DJov0FN?;2DwwVj z8EWmPpzxd{nFr)7FIR>lQ@6CEU5F@k?M9pdqE6WJkEgjZFOjMaZZsf($tnO6h3<(^ z;?!~8R=)!>ZE=#wP7GD8-m?N;+s5bu24!M@ZfW8$N%F}>WsmocXaYoRvtZKD0UD?) zE4~iSt!T_ObBH+Uo$cwM-ai-d>#;)xxW9aE>Tq5St2w|te=Ks(4Z}pi)|lAZ3{`pW z`z|5wBOj~ok%}`wd18R7jvqn=QLB%?q8aZP-USJ>H^Je+sbf}}LXfHga*|Hp zfkcQo3M-Bo0V?VEB_tRXuVzgs-;#A66u~UVmPYKwV=&DbMPm(w6Z#h{j@_*IgK$x}EvwDtzl7#iuX%vNUeIv==Z~oJ7qblMmovC#AdOPhnKPU+ z0p*aWOOT|PaZUa?!1P>_%ij?kk#GPC8oDCoC(KHJd*{H>dGD_N52&%#jOK&3Yu~T8 zmw&*7EWdlD8d+&51R0M0Ic_mV_7~6bY+pPv(bOCpY?nSy%_USkSofrpPf-Nr7u$01 z5f2mxc~UDQk<9+Au=RiB*J!>B*BI}GzUc{LhTa!;>;aS>1(2RT22_hA_b;9x$Fc4} z=^9BxIwhk>Gz1YUK!RXL{(fxTfdmHU23Wa#db|1Y&2vCxzEP*~%4hXqkPc<|cS1`V zK*0XhN@y^5?i>;3*|gyS?M!*g3TK>Jbj#%ab+`8P?g4H^TYD1 zMKfyo*G}eCEsq})68ft`87lc+D1f<`?$pw}s9bkdg_k3KWke847T(bqd9gx}2SXAE zWNw>1q4}x%g~yOJMy&p|4g`__R(5pjuJkuqcR(h>=#GLXb|Ox4l~(R+Em_lBMkg(p zKo-@y1Lok$XDpI2AxS{{x6<_T8{$Yb)=cz)B+5(Z1z|m_Ax+Oj%wlp1V$!}tQU}<@ z*78t9?~`d&FZOn>^W?oo-%$p2^0|imbX}HvQ-nwmw|&_`ZFpET0)1z>J;u{h+hyfj zqNT(n?RuX&>z>`gDnHj@-J$MM;R&_nDe8#a?Uv=w@)WZ*0v7Q8nrAguy&pSqI>l+< z$=hb_7jEXE9X!gx!LdMdb_MBG`!|P3wC^&bNvI_bq!1252$?#Xn`y{9Ysrwwk)bEw z1m#%2B>OW7D4>E@o=E!#5d9`RgQ}XwH<3pB6+Gqw97zrJZ@2ODObwK3A{BE&@EOVv zX_Fd1>Cu;_iD0YNcv%MS0bovq%K3~7rayVrC~+^^;O>rV@n9bBVh_Cy~1X?t*;VKCcNgbn76w1pcBx6E?3mXrnVc~~c)a&^G38uq8 z19TQ92rECKUvk1{Z8lzIeJjA-Gb=lb^3ffvEX^J||AoDTb7L88mciAjKwhA|TNmVY zpk)h>LI>(T?)Q>61(i^5^Uh)dNd31HAS60Dc6Y!4DPe|ZQymr-mMH!|NrAxVYImc4 zg_u^sB}*Lyz=mch)Q#~5gQ>kee21%QBXXe}CpB-!K6{Nk=|5Rm^Z*@LMj zGV5XssEC6D!Upt}zT9ei@nPNm`EQYkh&^8BC<=ICixinxF7tP0%$s55ry!XU9V4~A z#!k%K$D(hD?D(-;P(O4)?ZTJ*(7dnDI>6GD3BEb z6a*102LenWhPzsz6PcBh>@oob#YEa}?~arv&lFe8r^!#fF)q|>)o5bzg(g{*bs~O* zsa5{LSn*{HF*s9Wv3e(rtK>&Nz1m%9*&1Tr6mbMqEj>;687i2*e|oU(jasCec|+#( zwNJ2N6P_VncyEP1@XgND;^Xh3$yXxs0mYLbQR2i8ft^%e?kw5&>YQv?7i1%pRVn7L zV%1OrN0RWGWN+P(yJD^l>5wa*9l>B*Y%xGp!XDD=>&xpGe+ex9nQPat??I;pjpMOk z92bhR@XOr=Vp|e`;#+Wg=W9 zqzM;qw7M%04#>3*k*PbSg?*4WVFuS84ppLDRmGj41|2tuat}t!>}ahkv@#Hu69cID zuV_BKblfTCus+K&5pz^tBcEp-s#HW}YIz;D6Hk*&4%t=1^|%l;1^a$Uxz0)RauD>u zc(FW~05DGd;S9jzWiH689YUYl$I3o$DO~YI?+`Wb0G_f3^;1Gxuq&ZW@_>%4JCAdjg2UY zN7AtGi>Sc8!^cqzsk0!>RF#0SvDM}%B961MMRL7*q#Z+Y zC?v8i9Qfq1^0ku;kuOkB0WlL2K1KopKCWaD%hZn>UA%%HV;WG0UYS=bP z0(z~_{K`!&BZVyHLIok0yjz~hp-Gn0n*))e67>bK$nJO!DA4hv|IlC2w2|j>(X1js z#`BgM_?$ywD3XQ^qb_DB7SwkFLQQhQAbu&H-tT;3b_rBu?J236uLjM2*h8AQZ1rQV z;I)ZS)HecI^m*ggn|ewLK)Ykzfs(c1=ju?4z;5f=_0-nX-JAhP>=cpB;W$qZhF3S^ zsK`4(`wxvBS!_Vnn^|6G-jQE~Rp~d}`ug-@Ss@M!kr{pYy(ibW$YDrv?5>~W6(C%Z z9stFD?Ch-yr$jJIDAmoqXk!QJL}dQ2ixKt^ksR5Jiq}Gf0xwvT)a;GE5>mdi_@X7) zdGGaH)t=L`{*2B6Ac~kqAb^YJw@M43ow?DxZIl36VG=&mmxti_rl;&DX;GRf8WLpe zDZ_+vs9~7C_Y>}>$uK0>T^VicX#i1ly^r@cWiURS3ed^Q_bJv8sj&f!5k}S+q#0Wh zz?DDMHGv3NG@0t>a{Hc|1pSTDSF1rug~)hox)_kYpd>k#pT8cYV&$3c1}r!m8MbGj zrq4`xTcM@q+e^KwJHb(-<6CC`<#oKMn-XH3?W<=d(!G&Z8sR1sZ305QolBuN2>ZTz zv3J?#3dGb%_wlw-NV$hkp>R}!Efo?cyP>l|Msq`Perv4vt-(8Oub6!|*CQ9@WS8A1 zU|dL6gM;Lz2Om+C`v)zU_R5l-7MiYd(c^Dq`B*2(9guH^}#f zMDDY~;28$5jn~&)WTUoc^7sAsgTZ@Vy?*_`) zsXMEe0n8W5`k^#C^s-YaydNHnxZdB$zK0ejY>Y~Ho%yz(twWp=9}!f()*GvK4+Zaq8$u_bS$hIp%Svk~|n zaRGEwC|w1Qd}q#Ce;u?Zf+jF>V*>DV*qzZ=mMQ8(-ZTO;@EB?PvFiCRV9WbXtfXu2 zlB_yS>ROzl@ij*=i+HHdR>Sy?CIo{mNBmwr^eel)O1C{EfT;3(pjY%I=88d~j5o#| zMYPHDDS}9aGxeF4#+>4-YFfEy6h>j=sCs%XbW4FJW;6RToR6EGES z4le3?X{G3jo~qVw2?y_$%(pn@*4vgUypmwlIq>su3zj*#-WG*LGWsXcQzPjBh17sG z^8k3O08b$I8jRP~?qd1rA4U*7BN6E1p0?hSlcI7#B~`nS&+oa2qlW8V95ilQ|BJO+w=yQ=!yCH7^*2}!C$3k=qaX9!kzKGM>b6qYE{Ln%>X7VrPO9{NX4aN`4izWM)Ir;dRClH%Ai zJL%BY$xlJUKk`^n6k)WacEe^l;erraL)FNOJCLxRDbH`2&k-|=^`hI`L1hM_mt!XE zp+yX}Cr33}2corOLLV8KN0FO_$Swe2btMj|Yr^<6n0H;W`KNURu>_JQpmLyV9gy_B z(tc#qz)NVz<;G-P=jL}QMLVk&eaw`5}FX z6rJr%^)xwd1=GLAjoN9cKNN5%U%B5o2XOvp*-XNLe?R)A$3W<{cqkZZt7rdH>!-xR z#sjFDGkq?hm=4HrC9AtmwAmJRTi-$ID-apTL{0%^+V6}+;!DwFRI4P@(+X|#0*crY z+1Viro8Q&QhVIgDDm>m|eUWRhCZP4O<}C|}Iq8_m=Zm!bc{!p2=ga;mxr&s&A~D#- z$EimRuL+>8yHmJKV3}xP?TA2WKT`as#eq{ja-~mQ1O!H*D5tvu#neDO9TI^4*wDUx zoxf(1(G2o0U}h)AgDlWAGT2DF_IN;whHQt*s`6YNo6^z~{D>6CrKcIa!68 zG%*QeB6JoFfu@2l#r>qAb235%>0>BNqK@-(&dpz{fyf&s<{u}*GEfF3V%D)`M`IYl z*&Ztpo&B|i2Np!tL)woA9cK}<1t{^kT#;ONhRqX;dh^`X8;KW=NLBZ}UGpVof}{N^ z4Wyla;sk*ndkhA7CWo=8prjeS7TT06B7H^7gjs1@6Vdyx3@WABYvkT~L&QqqKJ*w7 zZ$5;GYd4LYoG;;jqqqzFDuf||upFmr;|2z#&;0t4d-6tAs|D4zk307b6I&BqAhu88 z#T_xWJ>BR9O$_@oOt+%jt69+8$OM(#0`?bmb=6`%yFpvQ2kCJj+Oes?Ti!CP^vh0l zEbR&ifL`-zaEoRS6-uRMjom~s6<~y;D|3B6#YajKDqZ986Wu_hV=7?LcPMI%zT|8- z2aXnA`)wmPx&`GO`MGy)L!Yh2Z4<+O-k)7blvG*flkrlHt)zqcftbd+l z9;llTRNo@Kzh`!IV%8Lj5)whS*9Ij(&D(vLowpGh9|l1vaOM!c->h=Gg}OIM&r>q9(BG*9D;rie>G zMo+)3pxrLj@KgpOdPfHI4c*Ot6@*97Zc#4ZINnFUa|{D#oE9HUfL%Y?R-V;mV{?;uCzOh`Wi%U-=L%@)QUCrZ@9L3`vH=^!2P1)ZaqA5S zwN|OwwGYKUwX>gp3`#z6c}*Q2ZIJ1qmwk=Bu3so5GFeWmQs^M+G>pnP(Gokm zp%+&3eKj zgpk84JL0AN>(5imx?!&DB2kLo($~}Xa{TG?5A!HSglaF-Pak$i@8m&BdgRk=mK%ne z15rBkt-kM5$!d@h=Ty<3WlbUG5FKYIT95!e><9NJpkO@(nk;3o%i9$j8_0;-#mq2I z9V%1Mt1L$<46f7T0eHH{H?bS*ia2c3H_l}BAy68px0ZU7hp+d(xfO$in@S4P18!sG zmL2y`vPZwW881Imh^Pl$@^t1z&U?8Klo7e#mrK8Xl1*t;1?y$xvS)^8$Q>q;zt$|q_sf^rTqV!FPk(t2q zW!_j$yg2tENpg^c0Lz5*5@lLOobh=Cmw1HcW>MM&Pe_rQFP|=U;Ho_j>DJ3~L-14p zhbp;=ehEB14p3MWegU{pRA8w8+5MXbKfu9Q7fk>!0lBL`$hzb{ByP5*en!$5u9GWy z_Zt%=MsVF7l(ORj0z#12Q}O=#2^d=$IL;}-w}4QJX*D6uf_j%7byy5|??a647iB)V zgH*4p$$195k*VnRfUa%Q^W_KEjUI~#vjYnp(Y=*m0EHWNNNpoA)pa)uRNf_4?Wr5ySP3Go z?c483a7NhW0nv+qEmYA(ZQnGCJTa2*;qQI843EF51F!48`8);#47znkC7tyNs&q1w zb^~FD1@&12aFonEai3#IuX8BEK#1r^^(fH>rPEx|_BiUzyyS>(W5p3NtQ4zJwY}mqY z-*$0YDukCz0i2ZC9OAFI3oy=}l}SmT$axU33KU$(WoHMS{eEa}hfkP&9B{p~J^M|$ zr3f@t%uk<&GMM3kQl+Qe=J{V&PMc#L?eH2FrR^zblU&UGB;vNpN2fLEs*!BFq&L=b z19;V7j{q2Yy?Y2jR;c$Go_BW|=AR|M*>W4{+)+zjByTQw=db(q&8i2I_`TmZ2=dK? z)*Xl!8OUAn(0-r(Iwe5;U_=92U6l1lx(Ga37iOLhi0RHb1k?9v*a(?*BFOgr>D7Gw zRE1$6LsR`D(8r(?)xzcm?n50}xUL&n%v2Z%&n|oaAMCw#RFvQMKRVa}wxS?l7o}3t zC>AXu&47qV3>^c~78rygAzcDeL)Q$YC?g^r0}LUO!;sQ3@Y@fFA3k?|?_GDT`{(^W zYrWr$6VEx%K099fbzry+mKfaM5y+3ACWObG^%wG&3)0->9>qa26;VYE`VOf&O zFB`a3x~8Qi&}@4&>oWwjWkOtj#fyJWME2jn0W{(2y2;2|OsEWf6e*zIalh@)>5yx0 zf|zhKuxUbiJM(64sm70tgO`DQ>QU(rT6{xiX1mUYGr_VV*_|ufki;(Cx2SS- zf|*{kKP)hPcE5dAJH%p1pe|rkeC$_NFZi_!pXxghB^-@-`4S-zsLgX5!VyA4-qG*o z^@pN65!UDZlRDV80M!PE6`7Etiwj~MX-l+wzl0{#g02pwwCG=i=^#iu5uVE^jGF`l zBwRd`l3X$ZO7hS&;)qt2R(w||PiLoBs?^uG8M|%?$4A89w5_b6E}>#A$B9mKnk#U^ zaJBLpyv|`)GG9<^wZVB?FkFR0vZ?^+B0J?XHkiN}PzdX~`CS<-i}Mue`x<&Y6}p$X zLA$%U@QS;)(B+hkWMrq-8|}xJI7N2TL`k={(L@B{7&Gj?~#HaNasO*YCPl2s&QT`TZiA9yPP)d zR1medD}Z_320qcjod$8HO0aGKG3|y)WP?67HUt(vtJ4t?UyJO9S1GYYwjVWiD=AGu zC4C`Qo7?(Lcx2NpCYgsYjBKSv7Vaa*?x=i6VuQ)l+ivl`YMBtTPsJeMOUQ{u*K|B0 z?2Q+vC`4pl>f^{eWK9h4>LIx!KfRwLi&blPn^*66uk0Q2mX8(L${rfk{c>m_!E)Q! zq|6y)w|x(T_R=7pJ;V4%%~A4>tYF)g56T2Fjgt%dYRfay(ByeC+w2W82@I z-gIr7%&WY}tms|Xw81;s{!QK~rYVgH!*^H$xhB3PX610z*WfQU{5WudEB5~NsC{%B z>9+3+*dw`3>Qs3cO8q-SvH0xi%KTC5k<(Sbf4Se&ZYq3VzpXyX5dAAh+r8NYd=bhn)G#x(o`k#;MNp1sG)|^(dB6njEuA ze~ulESBs=iF(YCbxa`^dQB?tG;h*F3SB39&S<|8Y@BvWD~HKygN5a)oF5zo2$uJe$Pm5 zF%c8O{;^WFO>Rg#DsZ{hN|W@<%jWoPyP1;;!BxcM%>sv;Odnf&F%24L{mO~OQ$l9) zhxZGMbeJw3jZh_oP0ZGontdjWF8#3!{=i4J+GTx+3oATLW)bqsKF_rXaM~+^%PuK1 zW=^0J*Wj5v-Rq8L@*nDq>3G;g!Hbj9Q=2HZ^3bKli5HtV40YeyO(?W8 zn;Y@rl(gAtM#GbxLa_}&W>g1p7LK+AkU8ylwpXy&s7A%i!}29jv#`y@Qv>w@sr64a zi*d6bUAK5K4;sskvQw^oZ&a?DdShFySDn|c2~7o0#D>sQ`ID=ZCDC4H_ysY}yeX>L zg6GlqCLh?!3uE+eRmyp}9}8>Av=|uM)IFXk|DBoCee*iec&Rd%IY)h}LC^g$h^|gS z+rH8!T+f3@{j5{`F=V8uI&Ep}EJ3b%)InjmHKRPf-*RgFa_OJES4Xr{v(H`$OEDV_ zid~+Q@jCi`NX2nz%pPf3!-9ObUhl=N8-x^V2CiFZCIkFvRN-cKeTC`^qX^7=iO&Ca32$26fuq-9o25Mivsy;ni3)fgX!xkKHlqwx@rwpNP4&67_5$ak@H zyfQe=CiXjhi^A0#sw@N>sc^~5xF@%z@O|ud8bxC7Gm3uYm}yiwrCJYE>ZmT2r7gDW zELCMJJiMjK&F`M4CA?kQc=QYDk-MZe$s@^Kmzoq1F_Z9i1b(?5TY&_c_a6nCYJi?+n2 z#JwC)>(wf5&d@Xt@tZW#_Bk)*F^%`|O(oDY1IY2!_%>6t=APCcZ@(Kx7{BAP(KOi) zW|Cl?YDIo@{rBP0Km7-LwSA~eV};{5M~2aEUz#KR)vpbn9PPC4@3nP81a-7Nz8q+t z?)4Eczt~>IVNati&pah{vkBidQInS)UtAhGA90ZJNO-5rh-))uMmAHvaBppT9I0)* zU*73%28AaF4EN46%uBLAW|j}zyv>Ikve~4N#<7xY!_bxNcd4LX8&fxzlNXwr(~T=a zFub-S%G%HLI6#drv+!mugW%J{~V6>4^%57`qr;|rMl@qN2$6@eHwA;k@D#ZKdyL5topH?^>Ec0spaWs z`r0$h;U9YH$3gGe4Z0rqM2V_C^SC~r6-K4?$lQ^|?=fZ-)_twRH&^$hieh3*y*Q9i zns}W7ep+SY;pYZ{?ZIgNoMY%>6En3ghAPm zn6y;2jb=X+f6k79a1qP4G?7PN9{Tj#F$6g5EM3^Q&ddIzNMTt*aTinbyN{hBlcp@< z4te`;5lT1;c)NdaJG2qAl~lobIPaQko2*pQa;B+a2b4+~yC z5_0>F1Z1Xa8{*OT@4t<5{Qat0T7-3mGZ5yAM(3h*Tc+j?MEDIUp=zb6Et&56q+QQ_ zZO>||;yyRy8XDE(k7m2OP5KF{LZ2|X-(K;+vaN2WUAa33@Jq7Hd}akiYr+;8(ao9A zT}f5VBsb1A1zq|jP`UORH6XBI<1=2cPR$R!FK)R+3hLmcbY|;L6chUL-2l6%gd9jM8E4*;l z>MxC0n7mHeTU>4TLoq2J?o8M@;l#3fhB$H_R?gO$;q=5pLMB~vPO!8X1W+$bNySiy zs3Nu@O$5463f3Z=IinDK##~GIWpLx~R;eaUi9EfT>!dNwTYUZp-3_Q&p>t+ochC{e zN_|>g))pF8uDc0M&aJvfeH5gpDM1}=4TfqX32$)%Td|`TITrqCVY-wZ(z0+cp++)%FAlifxY3Dpkll)b`6Zg3}y#i9^%2{!bw0`@oyr_Fh}I z_)KNCCDX7!0?9Ln?`P~2HhE5QAi1@@{CX*XXu;4S8!kwqK1M&&FZ!uVB#E35Y8sxh zWiYhmvlzg;LPT=zj<1+nAhOvcC8gwqQW-Izz|D0xs{ApBnv5URrcV z=veI(oBJ^&I>=Nr6@N0`rptMdhnzi(4$!Y~Xj_>G_J9jkXFl zBnE6GU=R1TYThcpwEqmVv5}cEZ`e#*gy=&xernku(_K@?5iBFAe_VMP|23W_AAZG5 zZMxxc&e?qTowvN@rXK5%`t2UdCX@Mb)%uxl(|R;5a=oZ+UO^XItTbIW=B&wa_VwCg zS9oXMzog_?`$RL(g_h!5nw|4+G~XsfPo}AePJQ^elg^X3Ns)st7mzMfd@rjDlweFo5#f}pYx5>1M&D6@&PIk&fxuk}wK)3>vyG2^1*lk-f| z2S`;|^mgaCM-TId$%k<0h2K13xY|U$P|Tg5N+nI%adN4}b+I*QY5ZKFPZ?M4s&zUuGRT2>7=(UHC@}?d+WW0a-F58M=y!oI@FfaFe%#UZ{WqA zxhEbIubvbcpNki<4Ih?bDSa_6RSqS4gKg7n7^;F+ksSsA$dXJ5JB2Pg^>Ah}C=SVPa!Er~^i|6h}pHp;5iy`Kuk(9?j7K)Y4 zu13ACE1j>D>{Nl+JMwt(Nd4mxDO`KYVi!}7?eI@^faIWLJ=jW!(Fp#tF>-qP<;%&o zJ`19wE6=7qDcW|f_!`?}qi?QG6`VFq5q`<%t#N6|0>r50NfLbECP?sV$01!z#yRW@~D)0Qnp zkf`uMuw%TIsM*b9%|u@Y(^3k$;05p#lnc1*BMhNKdPpruB$eEx_L-wxya_! zWb7MV;>F*f8)BO!Vz~I+n~W3X4-0v^z>_dcb=Z>%WL$o6kaFgb2vxzr)^sJ7y2e{EZTZ_f=ovDwZ)Sdtz-qw(p+B3-HHWkYr zLtVU8_SK=CsL5Cw{9{LHn@-^@HkIhdCBl3%din8^_o#S$X5*O1D+TGMhJ4jIo3@d@ zd6DVt{m~%G2#bey#v<+a)u!V^lBp9!j<3T^lQ}!8=Ia~lBJNlkZ1|sj?3U11>Y3S) zADU4W1dSOgaOgI7FKJ(a&rwlfi3tEShZjxxQx}vLif>&fI?x{pvueO^#@893N0b;G z#oA2Na&~af@AtK2D447BAHS^#P$m$EVcBQ}j>;^oPiO&uoAIeOi?CkV+0%AHCHopNMj$pq?0G+<2)?p(5l#Pl~V82nwo0iymb3++xP3a!&=We9zD@2FUAEF zVTXrJR;Lb;u%xqAiUD4ixMlrnO2vT9m*N4ll>RA~*1Po?&dl99>9pM@NPTXCjoKw_ zR`X}HJ%Q6a7}1iK!#B7t zZ8`zSr+T8vwvz9t@u3G+&giPp#2JlSA>cUZE0AZXUI;$2?_i9%=zNwgns{Gb!J6Uc zT(@6LQ`#t_Iicd>$h?C>ko5}%BF(Vdp)^C8c!fmz5-8DiKJaY_cl-6z6!RoirhpWo ze7t)_fvvtxm@BCy=?JmE%@n5B0=jnl0K@X^5UD}c2iay)oUPn!84 zepMqrGn*D<@QrWVkj#AzUj&(fwmo}bXH{rN$cSjE4)RVdRz60em`o*s^`adK>wr7s z%7Q;cpkTG!e!wGSFHd+v$QysmM%p89e=ke71%l9YhE0Sw`BIjRq4^WiSQT+}xlpuO zRnb9hj=3p!tAdtrg1$~+O?UcHzOsw=uG=JQREJOHRiD3=qHW)^)r^|*rI8-D^87GH6YF9?ohz?Ff}koTxw5STw+emUM94N4$2Wr z?rWx*PT<9lbWnGiF9(piZJd0-r{oODQwPCM4W<){k{Mj*pFs!ZaxI6)24(KIdZt#7 zkMLhP@gr?Wrlxgj?qrboesurO!EmeM84` zOw{CN1EQJl<_?@YkUTd_D`v*u18hUEEwWxSNYbEDiMew3YnuzPtBA> zb6<_qyY-r(A_h_*FZ5KZOzUzXKsb^_a(zo;ZzrMtq5zIA989Iw$2|WgM#t%R6+n`%ANg8P+q7oxMQLx451)m#RsNXAz^w?g-K2D&9-1d8A3DUp{8 zk#u_BuzkeBk11#D;(%`HQI0%Qqximgw$bDXd^HT~Risxyf0?RI@173J`o#AgkfFHuBB}Jj;kLe zCWbyL7Z{&p17MPdi )|LbQI+JykjkK>{rb1a%c77Cjd2Xxb0Q#7 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 Date: Thu, 4 Feb 2021 19:10:00 +0000 Subject: [PATCH 195/304] units correction for ucomp_height --- src/atmos_spectral/model/spectral_dynamics.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/atmos_spectral/model/spectral_dynamics.F90 b/src/atmos_spectral/model/spectral_dynamics.F90 index 7bda2f077..ab2e0b9ae 100644 --- a/src/atmos_spectral/model/spectral_dynamics.F90 +++ b/src/atmos_spectral/model/spectral_dynamics.F90 @@ -1668,7 +1668,7 @@ subroutine spectral_diagnostics_init(Time) 'height', axes_3d_full, Time, 'geopotential height at full model levels','m') id_uz = register_diag_field(mod_name, & - 'ucomp_height',axes_3d_full, Time, 'zonal wind * geopotential height at full model levels', 'm**2sec') + 'ucomp_height',axes_3d_full, Time, 'zonal wind * geopotential height at full model levels', 'm**2/sec') id_vz = register_diag_field(mod_name, & 'vcomp_height',axes_3d_full, Time, 'meridional wind * geopotential height at full model levels', 'm**2/sec') From daded8f96188205743faf88ff54ff6e59ee11ee2 Mon Sep 17 00:00:00 2001 From: Daniel Williams Date: Thu, 11 Feb 2021 12:16:19 +0000 Subject: [PATCH 196/304] Updated to include file in index menu. --- docs/source/modules/constants.rst | 4 +++- docs/source/modules/index.rst | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/constants.rst b/docs/source/modules/constants.rst index 2b386393d..52fd2ce2a 100644 --- a/docs/source/modules/constants.rst +++ b/docs/source/modules/constants.rst @@ -79,7 +79,9 @@ With the addition of moist physics, a number of additional namelist parameters c |``tppress`` | 610.78 | Pa / Nm :math:`^{-2}` | Triple point pressure of condensate | +--------------+-------------------+----------------------------------+-------------------------------------------+ - +Relevant Modules +---------------- +Since this module provides the definition of a number of physical constants, it is used by most other modules that exist within the Isca framework. Authors ------- diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index aee2d373c..f8cdffe68 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -9,6 +9,7 @@ Components of Isca dynamics physics + constants output idealised_moist_phys two_stream_gray_rad From f4b57f63290fd016cdaf39f3782016598f885592 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Mon, 22 Feb 2021 11:19:32 +0000 Subject: [PATCH 197/304] Testing cloud scheme in Isca --- .gitignore | 5 +++++ exp/spookie2/socrates_amip_with_topo_with_cloud.py | 5 ++--- .../socrates_amip_with_topo_with_cloud_original_era.py | 2 +- exp/spookie2/socrates_aquaplanet.py | 2 +- exp/spookie2/socrates_aquaplanet_with_cloud.py | 2 +- .../plevel_interpolation/scripts/run_plevel_cloud_tests.py | 4 ++-- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index ea7c8f958..278b2b8f7 100644 --- a/.gitignore +++ b/.gitignore @@ -110,3 +110,8 @@ ENV/ # mkdocs documentation /site + +# personal +exp/test_cases/socrates_test/stephen_topo_clouds.py +exp/test_cases/socrates_test/stephen_topo_flat_clouds.py + diff --git a/exp/spookie2/socrates_amip_with_topo_with_cloud.py b/exp/spookie2/socrates_amip_with_topo_with_cloud.py index ecae39dbb..5066e4d1e 100644 --- a/exp/spookie2/socrates_amip_with_topo_with_cloud.py +++ b/exp/spookie2/socrates_amip_with_topo_with_cloud.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 16 +NCORES = 8 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo_with_land_gibbs_fix', codebase=cb) +exp = Experiment('validate_clouds_soc/soc_amip_cloud/soc_amip_ice_topo_low_albedo_clouds', codebase=cb) exp.clear_rundir() exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), @@ -88,7 +88,6 @@ exp.diag_table = diag -exp.inputfiles = inputfiles #Define values for the 'core' namelist exp.namelist = namelist = Namelist({ diff --git a/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py b/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py index b22cb1a6d..777e5f592 100644 --- a/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py +++ b/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 8 +NCORES = 16 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development diff --git a/exp/spookie2/socrates_aquaplanet.py b/exp/spookie2/socrates_aquaplanet.py index 7e3d5de57..1619191b8 100644 --- a/exp/spookie2/socrates_aquaplanet.py +++ b/exp/spookie2/socrates_aquaplanet.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 16 +NCORES = 8 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development diff --git a/exp/spookie2/socrates_aquaplanet_with_cloud.py b/exp/spookie2/socrates_aquaplanet_with_cloud.py index 0edca431a..a10d50fa3 100644 --- a/exp/spookie2/socrates_aquaplanet_with_cloud.py +++ b/exp/spookie2/socrates_aquaplanet_with_cloud.py @@ -5,7 +5,7 @@ from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE from isca.util import exp_progress -NCORES = 16 +NCORES = 8 base_dir = os.path.dirname(os.path.realpath(__file__)) # a CodeBase can be a directory on the computer, # useful for iterative development diff --git a/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py b/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py index 29f45da06..2cc2d16ed 100644 --- a/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py +++ b/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py @@ -8,7 +8,7 @@ start_time=time.time() base_dir='/scratch/pm366/OutputIsca/validate_clouds_soc' -exp_name_list = ['soc_test_aquaplanet_amip_ssts_land_low_albedo_gibbs_fix'] +exp_name_list = ['/soc_amip_cloud/soc_amip_ice_topo_low_albedo_clouds_original_era'] avg_or_daily_list=['monthly'] start_file=1 end_file=60 @@ -62,7 +62,7 @@ var_names['6hourly']='ucomp vcomp temp' file_suffix='_bl' -overwrite_data = True +overwrite_data = False for exp_name in exp_name_list: for n in range(nfiles): From e4e8e7e11e88431792979ddc102b27d3057dfc9c Mon Sep 17 00:00:00 2001 From: Ross Castle Date: Mon, 1 Mar 2021 16:28:21 +0000 Subject: [PATCH 198/304] Changes made from PM, NL, MH. Typos fixed and clarifications made in text. Main diagram changed for clearer gray radiation call and LLCS added. --- docs/source/isca_structure.rst | 16 ++++++++-------- docs/source/isca_structure_diagram.png | Bin 988588 -> 0 bytes docs/source/isca_structure_diagram_edited.png | Bin 0 -> 1084922 bytes 3 files changed, 8 insertions(+), 8 deletions(-) delete mode 100644 docs/source/isca_structure_diagram.png create mode 100644 docs/source/isca_structure_diagram_edited.png diff --git a/docs/source/isca_structure.rst b/docs/source/isca_structure.rst index 128042bc4..649066176 100644 --- a/docs/source/isca_structure.rst +++ b/docs/source/isca_structure.rst @@ -1,28 +1,28 @@ Isca's Code Structure ===================== -This page briefly shows the general order in which Isca's modules are called when running the code. It would be too complicated to show every single Fortran file, and the exact formulation would be different depending on the model configuration. The general structure for another spectral climate model is also shown. +This page briefly shows the general order in which Isca's modules are called when running the code. It would be too complicated to show every single Fortran file, and the exact formulation would be different depending on the model configuration. As Isca is structured a little differently to other spectral climate models, we show a more general description of a spectral model at the end of this page. Isca Structure -------------- -For ease and accessibility, Isca is controlled using a python interface which sets up the experiment runs. This then calls the atmosphere model (``atmos_model.F90``) which essentially just controls the model run, driving the dynamical core and calling the atmosphere module (``atmosphere.F90``) every timestep. This module in tern calls the physical parameterisations from the physics driver (usually ``idealized_moist_phys.F90``), the spectral dynamical core (``spectral_dynamics.F90``) and the vertical coordinate driver (``press_and_geopot.F90``). Most of the lower layer code, which is where the Isca's many different options are located, is called from the physics driver. This includes radiation schemes, convection schemes, damping and diffusion. +For ease and accessibility, Isca is controlled using a python interface which sets up the experiment runs, e.g. ``frierson_test_case.py``. This then calls the atmosphere model (``atmos_model.F90``) which essentially just controls the model run, calling the atmosphere module (``atmosphere.F90``) every timestep. This module in turn calls the physical parameterisations from the physics driver (usually ``idealized_moist_phys.F90``), the spectral dynamical core (``spectral_dynamics.F90``) and the vertical coordinate driver (``press_and_geopot.F90``). Most of the lower layer code, which is where the Isca's many different options are located, is called from the physics driver. This includes radiation schemes, convection schemes, damping and diffusion. Note: If using grey radiation, the surface flux is calculated after the up sweep in the grey radiation code, but before the down sweep. In addition for any configuration, the mixed layer ocean code is called after the down sweep in the vertical diffusion code, but before the up sweep. -.. figure:: isca_structure_diagram.png +.. figure:: isca_structure_diagram_edited.png :scale: 20 - Flowchart showing the order of modules in the Isca code. No particular set up has been chosen here, for example, all possible calls to the radiation parameterisations are shown, when a model run would only call 1. + Flowchart showing the order of modules in the Isca code. No particular set up has been chosen here, for example, all possible calls to the radiation and convection parameterisations are shown, when a model run would only call 1. -Comparison To Another Model ---------------------------- +Comparison To A General Spectral Model +-------------------------------------- -Our comparison here is based on the 2006 release of the GDFL spectral model. Because these models have an atmosphere ocean coupler, the model runs in a different, and slightly more complicated way. Note the multiple loops that the code must run through to do an up and down sweep. In Isca, because the mixed layer ocean is defined on that atmosphere grid, we can avoid these steps, meaning the model is easier to understand and use. +Our comparison here is based on the 2006 release of the GDFL CM2 spectral model. Because these models have an atmosphere ocean coupler, the model runs in a different, and slightly more complicated way. Note the multiple loops that the code must run through to do an up and down sweep. In Isca, because the mixed layer ocean is defined on that atmosphere grid, we can avoid these steps, meaning the model is easier to understand and use. .. figure:: other_model_structure_diagram.png :scale: 20 - Flowchart showing the order of modules in a 'normal' idealised GCM. + Flowchart showing the order of modules in a 'normal' GCM. Note this is a simplification of the call structure, as the subsequent parameterisations are not included here. Authors ------- diff --git a/docs/source/isca_structure_diagram.png b/docs/source/isca_structure_diagram.png deleted file mode 100644 index 83f7571c95b5f1d06ee51e6a8bc7cdde41b690f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 988588 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 z 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ν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

p*nu$M^;7uV9%hVDj`UoNBb-dS~y?>a1 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 z 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⪖&^+rep>TRnj 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�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 )|LbQI+JykjkK>{rb1a%c77Cjd2Xxb0Q#7 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 O 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%0A4Mjp;`!bPyLBPeB)<6%3z%&6Qy!Cmr2!7n(0x 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%0Do1Mj5V4l# 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 z zx8)dDe#P^B0Tf3nlVa+f3&Ewf z1W>E~5>uh0q)~<&3#Bd&4iQQPvQUr$g$;M>o`|E?D1B(fx=)HDCpI0Q*$Bb=`<|!H zUOIp2(g_9zhA2TIFrdSN>#?t|&yo$+N^ah{pL_Y7eCjbpRN!P>>Vo;^|3A&nkgEsx4rj|mW{f)~GV8LhLI`l}Pwm*(!Y;T6BEfYqqXu zOz`U&2BojFee72^cQ$j~VbmQt{oH2xlK)zvvi(nVQ6%=d`GzB#uC&FY&6)qKPuLIf zC17e|fjO{m{=ivtW%5tjX@2>WhyMwXzAaWJ=lVJz0<`$TO^92t94j-cmTHlb4&ZP$)zoIr{6kVh5+uVElrqh+!a3v_~oc3$**AS+a)r+Y~wGeG|7=zo{-?%{oGD9kd zeZ@s5jE?x-S>!dRt2IXJXsT=>=JW8LFC7UQV zfHPigobd@133%0tfbUakU;)e+GyscAM`#N+%Hx{ry&`5kGr_bmr_fLU=x(=hkR!O3 z>NqH{E@&N?(b5^3uuF>BJ;S)vjlDOZXb#;s+DY%T!b1TG=qnP4)xN^c93t#Jr-<@7 z(RRZBO;s>$DYj-01o_yuhC>h-Z)QN5I;KHfgtReh{Wm$wRbicjip6;e5Ii98!L$AO*`cPr3GrV1{7 ziuR$O2Be`QS)q$6AT7md6V{nPy`4Ajeln037yTBbh=6VlaZ6Y68@XezPH4MK8VzCg zRK^dZxa%B7mre1eOnkgEe^Bl16*tm7aC8bj%F`HBCh7bl*-Z__2($sXv76CqDJD5o z8fA`_LERPmMfgY2Ok@sA5C4}WU}ii{cH$+N%-5GD8sxn$@q^32qq0-kth*V ziD=Y77<*s9y^1H-IXWT30+r_TlO+$a-oa)6Ay2p9IqBUTOw&)|1cWQNgoGjI9UoU+ ziRGc;(rYn9a;h5{K=~;!;a6bmqboG8s5LZ0%67=}%kP_H0oVq4^E++?LjX#9IfkXr zZhG}}hYK=y!+rxm%OvMENb8vU1ER1BUfo+gfeD22v1n=!$H(iOTkiJNZASUJ;;Ha# z%8NCI5b(wNcGp`MFT6G7T1a3y?YR6YRq;4l#4dm&+&Xf~YJOtg&~_A|EexQMqj1O< zXNRDd0w@L`8Iz=If38S`bPz2hbBKuf8;eiG@)(o9bxPJ4%^6~UzAXZwB&L1nrE36V zinHH{A9xC_rmEJ`a|93r`8J~gUBG^Ln3(u;$OLh?qH7JkAi6_V)&%t$;K3el3Fp5r zT$ZZZf^1jE3O^)~Ai$@T?ShJJ{&X`jQ+8)rS~*0^q8w;+-HZDPd7~M(x{3+h>o+#6 zhg^>i`^xOO9z_WPvv?HKDpj^S9Z7~2@H+-NICo5PEyv~&Q+-W6kH^wiirsE&#*_G! zXRoH($ctGu-Hpg5cE%+E3Jq|AH0|h3W5MZ)5AJX` zUx2ob2}@^*^XK*xRysaH_IsWykc($VuH8;U{U)_JPav7$ZH14#1SnkAokuZR7SZJg zhX6h!T}%_SSI%CVnDzqv2SiUjp|^yDp)!HOu^V4^M)A-;UX=-UB49=1`eE1x;js8w zMgw^g?>|fv7i`SfJ{Xy>K$5==4-IJ}lMm{JN2OxVA}@F^{30T~Hkb{rLU zPcQ)TDtrA|RPGY40AL8S`=mj3Va0X$ndS^1*w~PYY9cL%I2tWjuF2qbi>H(wv+Y~leG*-d(P{J(qxMRR`D#N_nZk4Of&gkzB zDH&N=lOt=Lb(?36S3rsA-zpDuJ!3q|@HlRDcDq_2E2T%XcLYBdvv{yqCS^4~*RknB zk~QyPFLzU=`aQ$3>MvTIwQ2HVlc0(hNa^7SFP;A5SNIgO;fOHnk{?A`Zpr*{o0fQj z`V7`TmOf<60Um`aG4wRUZd@YF9{yCY;LQp9;;JG=WCvul>?PpLu&Bn-k-j{PL@OKr zLYrO2A);h8QcXHUXcn(_w{Zuc4dv@-l^ccjTv z>^P(EJcHgYcXZlT@K{ngBdK!O442&Oa5Axz2Q17my{~!u8UXsnl&73r74hZI26Jb~ z<0n3LNi4{`1|5>Uy*nXYRl1e&Q`f zW9A~l7~j0L)S#%nWopaand*CZLWQ_=>nSrlTUIAFB<}>shri18^Fp5r8A}|&UuHgXB7XLW2f{IH9o&}u$Mn^T` z3*t;Ky{x)DmRMR^JeIyNyllyABY7%YUpqFP61Pf!Zs1DXWvsSHnkREj+yqQy*Fr9k zk#J{Z_bNe7p0;NjE_i_1n`5jgxo3=;dmbq0QfU=z7IS69_H7kgVM}IA`fd_>m_UmI zUF0`R84y->oKzeFDWPq(n-#trOkHgQFqXYw#+u?nKU%gFv`W#s72w5RqY((pS`27o z9p{q`Jk?%)y!;*E5Al7Uk)xl{>!W^_H#r# zi6_*)y*_){eB$dV)R*=+2~PW;&k1PwWpdyAup4#0Tq3s1Yu8LM%EK}{eErM83M-V0 zALN)W#?2MtjCm4PVvaJ0_l-C%++@;UAE_5Rg`P}se!f|*Z_9l1_#*z-2rv0k#?Ho2 zG?k0*kE?m}L7BU(0}nt5$hUu{m{)xIvI|E{>D$ZF7cO4>+F$dR@`Lv^Ln1&B5@|y25!h!1u=A5?bGXIeVv_7aJD^ohmMo?SW(UnGCcQ z#-(dZS>onR4$~oiKPsL^iWglAn;ymb3wE#7vOEA`8+rV9{j5J!=;%raRlJGaD4bJ6 z!(T_&l4kO|dcYL@OujT=YB}kK>bt@myvb1MwCoL+0!|u`AMvkpw}w+)q@>}A@*SKo zwNxyq0(D&6rj_2M#I@j_Ga}ygo6V+l?0^s&3va_WBRGG;sv^CE(wh0}oyR8{?zBM?~dw#o$Ai%_UHU44g#v}=-ZT$f%b3%m z7&kWGVlqp&?fCGI+t(%+)Ge^`GY~|!6p6^>(svd!AFjpM+zik>^gQHND;qGd>Q#aw znYTbpb!cpn!OkZ(@@q_tQE%ok6jlJA5Bz2vv<}4rLsHb2+FBe73kx7&SZuZb^IrV@ zd&4p0O<5-*n9a8;NH)BP+E`vU`a#)gXbzn{9D9Sqg$5c8eOce}p*#S@9329<-t9i} zlPh{C2f`=x$Oz{G0048j;-oq^_EX2X`FI6%hG^x!{RF81^wt*RN+?X@7~_HJO+a4Q zlX}hczBJ%oZzh{?r~T}gD>y1%m|T1iR11I%(JFUa*9w3L=&5^1T~p6p@}3pC2?Gb2 z{>`s+>p_!o#G=W!Oa~gVWU^7C8J<(O+1e`E`{k!cl<(4`t(4o|YM%0=4r4f_fF$$C~ z9bw?gaIKL#D~rZdSoDA_F}8ZlvxKal^n{dz$!kv9ZC?gf91%F(um?x!j5xe#M)!9v zPr5*N>>GExv$&mG%{^hq9zTr=Mr(~FS#WR87i3I=iKBricEAWUqAHp$qiZ#iOe-s| zB_AG7OsabHq=0a%C2LOAmPbwGp;W8Ik4Dmi71yJhI0^679u+eINB)1yhCjdSdPE=) zf;_SY5Bv8Tt;hnw5=v$q1NwBsr#0J{HsyvTq-=9?831g>9nc4nz7>96@nx$Njg>4n zfxY5ki=bYb_%Pk$lR06LlKVG}l6nUXCgmLj%i2KY1{ln}>^69F-iBU7D|W8{3NE?X zohHC#dEhL~;@zZ`OsHI1j@u4P0gR%5#lI=+)p+-o{9=ADOqsGl@Pr}2sWj>LU{JLo zoX_|7F!YmsYg+i(3|bF>HNqwVZa70zSg(oOk8|eT&jrcev8U2RfuG}r;;rPePUBq+ zLP7yXMsiL4E$ec{vKO4XEfJouko}{8)rnEpBaufR`NtPEZBpR}rS)^_8(iIPX=yCV z%F5X`3-WokyY<(!*I4xed#=;VndJrbKcH^nFf1xuj8#&B$@mM+m)Vxijf+5yGZ(X~ z+B#X9+MFtKzduxksSizNh-Hl5@~!)~Hm=!}ELUd%k~TA#bi_UD5!s}#jSb7wb<}0Q zhMv>$es(%1;%(scnM;@_glj=N+YCNN(V=p{@O>*B0C=en5MRYUrce7u_UaLfb4BHy z9-0rWJSgn#x8$J(a>k$RywxfhySf%`Z#&xC$K~X7^w%(6F17rDN9VLEeuDOI)a{>p zxJ1B<=JNvs>SuGf=%)nd(tdUa!xkMs(h|TFX~Oz}sx^Q#QIwj~K`}05qiVV1h3k4( z!K$LJHCow59!D4&dhza})Q~4j%j+mLXQcdFKxHHVq>`%z2X=9#dltB7Ivx@|t^ z6fO$EUV70q5s~2zjL`6WU0w%(lpiS_h)iHZl}C*e%>T zl>NBP1ZzjW83x?qUESXHuB;S`Pe}0JH#8jB-llf+!NC{0|M>A4I9C0t>d>lcYNyYf zK_U!!ZKP2pezU8YYUTVU?#d*V=_W-Uh`(VsKaSUP5Kr20Rl^}zWAqazM%VeP4RI{!6r^)?Lgl-$AH+NO z?fPdukAW-516&}th~$-N>N{2na#<|iaAsU8akk?@G+iD)C5^|m79ET2L|KCUazE(w z$%bQsf>3sLcGQju%kv9am3N$-%V#)*y7rd6oH`~uFow3yQG-?a+-4P?HC z$_xOdF}?ad*bbhLdbRO0o;w44AYib2#1f;rLXVyk>{~NkGp(lI1AO4s{XDJhVYRt# z18rgeAf`_wb?U>?q}%dAPg93?JF6Q-5oHzkso&g8NywJ4otu4PYd}iu9B$I~=Ta{& zsc&kXON5t&-u$V1W^zq#tV}8F`z-;`#=396A5;q9-|LQlSx;^KDWqQ~**9}htio|(ck%_3$o-$f;AG#K91XzRI^2!pNNyeU!F_)|efLLP%-U^C zTiv9E?9Wt94E!f?{taoPM`KZyf%z0PLwibzoF7WS+B>zBRn^Kj(J~F)&eQa7{5kpqRZYSd8ZN>cZ&2Tkk~;L0KEl>n~}xNj7*%|=#C(F+H| z!;3Z7QOMy8OZ=L z>#c+dp-zF2f~B&&kX?7ydtO+lv^XCK1DA+RZK|MCbYu*Dn5s{Pih6GzQV}EUdiBn> zf=ASWOi9P0;Zd#QDSvEz-_)UnwuSqhiVEg!cN?e;HA2K}wUMrhen3Z~7>sTWG8O{v zW7;7?MLs`M^QhcZrGI}Y9Brj=rSv(^W7O(Dyas^K!D}pth|HIrnn{a^dX%8c`JDV zneQIn8h&{{@g|%D(Jp%iWrtgXANb7Z;OC^{c|}`G>tditskrZ(b%iKrdormtlWAwjRH2HFdyx)Yozou=! zcWeffY{cUY2S}_@5B2s!#3pFbK5(*pkh927Y&=_@g^E&z7jRv%W*)asZ&4T#j>-ye)UhbsOrOyy~%PcoI$TmVRvzLR7_Lm z&0?k{%0KQ3Y>=pMEs;rk=RPqN%UBC&+wuj~FtDpL)K!Zz_>pbJl#D^jZg zet@S5QChA&SWGJ%s^8F=RVtZ82yglh#G;RSCYMAoWxt)jZjuOl7HLux9{SoC7G=N1udVS7${X83&k@}tDZn$@pP`MiED ze)q1=@F6x1j^=E89KXfHtJ$@UULM%{_qwB|bef$D<>tL?N>~$qg3P^V-XY^y#nrS! zaQa>oezvBq7Es?wqV$66Wa{aLsd0^MMJ0y(mpA;A1<*3>rQDCf4kVQOuij8JGHd z+nfk1v*Vg6%06<}(YIZr)#?;Jv1wB?kbD8Bn-a0tf4r=GL_|XV!-S^tGkEStPGZm|-|50{+fUDy9K5!s$GzlKSJni(;_bkxPK|P{$@DQvG;Ut2cRW0EYbHdMPkXo#%n?K?ROOBD;&7crPCh1jIpI z^zpzj#=;TgcUG6J+|2%+R-ASR*K}cNL_@urx<^dlDN;8i1_;pp2nD9mU9I=3X7^}J z4)jb~+B{YQMHWUwHxD(HZ}(s3Z_hMhh+n>!_?SUJfD(Sa`0-wWL%Yt;7Ki58jW`+D z*4CmW)=$r?d5FFIBP1cC&L>VBDD!8xjIvH36sxC2pMBbw2XeP74`@|B$Uph=9<8@OIXu0T|RTabZ3b$=2)rTmIg~ zL;M~9{63AnF%Q-v__-mIHII1}h^O!uu#Zx_x}Jf$l9YT?Q(n##3SnfoO&;DGxW*2w z)3HHfKD)u`kZCQK0sP+D06(6(CGZ->j;r#VnI2|Li3Uwb681bkf^8$>vn{Zj1pmHg z-7S1HVq*dnVl~JK*H#4`%nhRfaJCOlC<3Mwy08(7&i07P16Lac69$})3XszQwfcc9XM1=cj4 z=eP7(iv}kWkVJ1H?QMV2Kqh|9*br=K(w=b9AuG2wKR>SG38iJd z0Sm86Grx5R?iD|&uf<(P%qQoa9+p`Qem^X*qxF@0b1rSV2%IWl5xJrNFn^2-u0k0V z%vrdeFT60rA@&U-?Sa|nlA91?8~kKo=MuHV<%@XJYv80s2>e>+y&YhQ(JA1{$Q?j` z|1>Am{my{tt^_}a;rAuo1yX&&RD{6aza4mVe*b0ws5jU%S+KYU_9^(laGbh#9t6;j zECT-8#p<}N3z?7cGTW@_VA8R8W|aO`*XFBNuQY~=EGRg&un!JRh*!VG$uMU-?OKBO zNg|=c2mMXVmXb+tK4(Il^uW19_k96qRxfPlNDkIU-1}5ye6xtV?|U`Fr5#H&_pt z)}4pYV(1%`=#x2}<xr71u4makL?U)*hvROLvh1Us__Y9Q z#tTH``={&@!)BFX84&E*8~tfu>1B<{_;4f;|8&>G5*_Q$<$m{h?!; zqoD%=KNG8{9iJp2=_?x8nzpz_R?BmEy6$+ z_H3Y#8%R+)G*c6neRkMeyxY5PFJ`_tF@JSW4OVYP>fh*o3Y)Z$9iJrJ+(S=lXiyvr zqZ;668eRw1CWnwK*s$t&OsNJ;jRt;7;`HjxMQP18U1n~d*sk}}3mvqfg}Z~&!$0AU zzsKW#0S2bT$FKeT2zYNr6q+Mq($Lh=;lqGq@Ctg?K& zd!)?ehLMHZ8*9g_5vg;{E))4vEk$R79E$8XVx zQ6wFN8TXz9E*&}b$2o&vp8_(dA@wQ|Hq4?$yvU>^m;j#-J6$DVS8eXzG7QUMfuw}Rh=K>6!VRMxDb^yad@nmN{yg`0)>y=a zWk|P48bGQJai@TC24OO%^z_OfoeqZ4Ly1yMPaQ$Nm&w#quLV{Gm219j?%(kdPAaU; z!#i$-x>&;pl{tX;1Ht>l7X3uz>Iu-kbql^HmxI*`=Dx3D-&}5YXsc~SR>8uip@;b; z8j3e*z`YTkL7KBq1F9=RSVa+(JF`Ao+`VJ%Y>h*^I|Soo1n^s$*ojqBt(~+* zrB`Ukn0bDr*rP9ByrQ6&S(Ck`K}+-}3JCWgVZSbaHB(cvrv=up4A#kyovHNB0C3P60KC4nMYFKi0Ne_a;$M(l zETCokXS#v4&?0Bx(f(Wo%%%Llp^}6MnGPXXYCimXFuFmmTLW5`*!dZDs-5G?611=k zoX4xo7}+8SYnv?)-y7+1Lef&GAhe&zU4u8GSt*a|mld5f7l{IB4bUPsGVaw&Ju}52 zo%|bBl4KIRa3w$k_8M5uN^(slZ(zaPnd#A&u_`(@QU(FRQ4;oqESi?~HrI0m&i z32^hhsJ*45X0z=w!6#+alU@hALn7r)@`%84ytiyF-mt*g1cM1$FNgg|HGgJ}@XY#B z;CoOm^ZBV(cd8uhdJ=#3Ec$urfp(azWfC21e5xAtUb%Q-Pp;#0Q-ecc2dq%(dg@0f zGSFX>cr8<}EgE*R4Wdo78-jgO-YyOl;Lpv?c{oFz{6VV%`=4Q-5Jb5lsAtR&I5dkPF)OnU!eYP?ERDh5nu#uO4{Xoy<0s;7o z48P)8RDehHbA7#K>u5_lkl#^%I0W{dN6ZYweY7#0x*wa{~IEsQrM&1fp zkc9wryxYjKskw!f(e@5(cYw%~A3Q&coaWA;Vn@e%V!Jk<+Al!G6;U8XRLbtPPXLyO zHX?lYh|J55D}{5L5EW))*-7r?9XQu)6B_Vh8S+fWtQQXpwgneh+9*dg)s_TI(m%u2 zfl7=_IFdXOD{D_DM5(5mxm}Gl3wx%W)cY1TDZ#eV!D015y_~t39(x41?i;C+Jlq6j z?PT8f=uPJYCs%8)Bax%jS0WgV3UsAtM6cGQJn zB>(!$lA(A@?Iwg9V3ox4A@n)RPwL?n3T{1i4;(LwZG2ENH(zNr>BCGb=dJsN+mb)6 zz^uyHC(Jh+e7t&yR}`RKT0vqwdL8Xd z>V(}E@Bf~UwpP|?_RcO?Ejm13z2bMo&AlZlsXbg`0~mcU$9TfVG2%#>7xUKvrXMG> zf#C8RPUVwlG5p4~fMvSAo)OtbCZBjI+_ZdCJ}-z-R`UCtbwf)FsffI?vLV?r*9R`W zRvYTowA9q6?P5N8(+ug7lq(?tjxjQ(E=0;z(S}4GIKU;jl!}=|~5I_e~QneGczLe${;}^b%vZ<_&y(HFZ{V0%mS~k|Z5t z$_Zx(8chaA(Tj}^NsG;SIX(3g_Zk`+Za6pye(&sDt2#;VgFc0e`{mQUx7e=7k01Xi zVvT%l^EXV=)@6G`wktSp@B`ON=}S%qkQo@4bjJ0Frkz;_&;TWu-(AaT=EH`l%C_*& z%RnopDg*!xf<@Pp{tIxhkv$;&24`PaBIvJ(?OtOPo)J+ZtQRii-i(vc7%8)d?Vv~s z`MJ=47Ly;3*~TwKJv+j;v}9*k(a3`(9`Et~?rnQ`s|(_l4>+CotjjigRE8_Aj|i=l zz2qBtQM24eFKCSm{ypYr_CHAFtrxYd1!>`;cwR8K5j<;d)K6;)xr_|mW+K(cgt{p*pfLM&H65xoTh1}KMN^dge1VXr$28f zV;4t-qH%F0(B}PEQ)q^Qdy|N=G=axpJ}x7R%M0%$&}$1LBPFKeMYfl}!iE|XqOUzK zffQ8}eYr+B-DcO+9Y`C0m+d0m6M+pq~`7y-+us^=)y?*-s*Ei~O5;$>3f z(ZWT_wDqa^>42ksE3a7Psa_%U1@Qc}MqfqVF67s|M@dg*922s=L|I#k4c6~Sg7|6? z0|zj`7k}OM&))Uo5(g+&9ky6+d(O5_E%2prkx+5;`p67i7eADK@DK>VnAO)NY znTRNG{3=~FPI;VYI5Ioal;SQ*BF18PHuslQXGH}ev>1Bf$8XzxxCj8&{YU=)!9EF|*t3F)>2;<3jP@B{uq3d02<`-?gm+zIoN zzRF!^)D0``v!HdHqp^ej(RN(;ml@6Y)6=UthTT`Erl!ubvrFe9rw+5glR#49|BtY@ z4vVt;+J*-a48lYjMMacUq*FveKtj4hy1P?AP(e^6qy`Y_?i@mHLAtv|7-|6No^Orb zzvua$<9pusn?G<49IlzU_TFoq=egECch>Y;qbiQg)CQShEnqFNc zO^^-hh~t@E87Za^_T&u@4{v|$k3=GI8Uo8msYUdNu;ydW5e0I#Hj;qrO_aB1qwr`oNLUZ2>ZEe%d0h_nbvmy#y!bvx3)95&GMLV^dneKm8Ben}opG+ONwSWsog1!_()%1OC^>R>U*4 zIBVe1Dc~*1QHH}Q-^-4Uc*I%NO6b!*= z2^3e-eB^(5Cr!ZFXOKXCaRQ%BVbMJjxq&;&2>R@xvmikTcv6x7yClmjB9`O?4l!Y)Ec=eB^$|R zWQ`zc6(eReZBVZ@tt$!MzJ1%|Rasg2?Afz=X?9e==%|M1AF(>b|D zSHzF36E~RLHJhCR!(~=+BW`1%e7A0i-M21u;bFR3{(9rN%;8lP~1(qWm z5m8YZHJud|yn=@-#b5NFBaG4UoMxBBLnvN-`}VkJpHO3H!6F}J{9ETmHvHlj8jX*D zb$XGUyt)3?B`1rt$YWx#FnR#ae~3pQcQhe7!O$+`j{!@ibIoyr$r0P$mDBQz-yd^=AaTzK-SOw@5aO?l-xx=Lu56me66 zA-2>F+{z6XI^k>%{TFqji-l{aHzUDjO(gzq5!Ex!+}k70bb=@^%UT!OPb6Y6 z^LK{xaCw`XM4k%iQ5nb>Lf(#T(m_x0_cd<;Lnuz@EVE;ZYOj`{4f%LM?|opk3f zT`E;{bmWB6dr*7(b7&2FR@Qb>aPD~2%UZ}ZgB18;ZWU)5tp8tw)Xpp>W=JAP@URi zx!PF1?jG+>NfXZCNK3I7T!ve_Z3i>fu_Lrzj}O+Qk1XWZONVsCL`CslzI=IKuO89U zwdlw%`1_wL#>&@IYu3LJ4cB@JzyUMtlpz+`B_&r=Q&Yb*DEb4+roVLyzf1TqXBtkE zw}*WHj1Y}m3#VM5_s{Q`{ybOOU+>fWsvG4dC7cRntD{#hWWJgMl=~OF0ubjDs#RHR0nqYc8j_ByVOF(m7>-Q<}0m`3yh;x93i)!;8fF|<@PMTGT^0trC{-9Xi6BD=!JrDVxTGX9Q0 zku?DgZqT^p>CvLwzN!x>*VS$RX2a-s%~N7cxK0%`&Z`lfjSpnDXnGc49iM zUaw&%=2LUkQ`?CDba(Op#~GidQD*V&xlE!EpFkNJ@Vy@qoCopz4FOgwc=nA8ChAEbHDKb z-XHM-G@!q;G6HG-6S26lq2U`sn#OP6?wj@A?&*T?_H!{kF^Ve?uGX4$F(xi97+Usb zcW7Nc2VMNGVn<>oAx`%4i*!$>obk62aD-O1W#cH@c7J-2dcHL zO-x1Q8VHB$N1I(KpiQu{vUbv4yY%rX%%Wl@_m_B3R`?MG?w=iGt;EF1NwA^kH<-cU zj-8qT)CcBg?~}_kZLXZy2Mb-VWzJsH=CgtJ76Bvi^v-0nXVxta`39ydrlJV&v8NR? zkeJ1u#OrgjrzuZ^>+6*OA>7$NI~(FH-P3SI+?jI(hcMNXQb#tXQt&7m&0iXDha7@~ zB>nJzS>S`&euCZ@ryz5x?G#PWzRS)S3w38tG}2VtCdXK4|fF0jz_tP$b zo6%-E`NwVRls_cWVlby+p=Xep<|5xWm#G%4sPLE0{&E}Lp5wvCT9Drn8u26$o}IvG=bC)+PTxLFdg&CycOnXw!Ps}?p`y&DXX&i&y(}dwD0J1hMN(3z!>bee zlsZ@K=tX9lXx8hSOcB{hAJ0j`GB%^)DUHca?{oK1^jos0CkaLxtcz4}c$ zSoQBQl~Nm;s4ER)g$8F{Ng&c+UzpS}Gc}QoSuJ<}+}QJ!=XmJ&Rp9n=Q}x=ey3vC& zlbWBOYWH{J-l2@}8lTF%Ckf0lKUVBxQ6A#&-Ps*d8|>EoUQ_EINY(iwoI986B*t`3 zVHW*+kJ?80@pUXV59|Qtjbvl2d5vppYl*uk)?7OEwHqVt-v4eBBaK*lP;%wqHnrdD zMC*}@_YKWRN5sXOm%icolX!9GYg=VdEig};>JT}6?x#tMkX8A(MJF&D+u}V$51%X0 zB!q`%tn4IFG}lh^GyXdfcRkU1p-Ff@u^W{yZDO3)#;N+3wFNNNb+d6(>ESHNLw%y! zPDb*gdXoGlb>nNZk-BuIeOlkDf6tX6{yffxKmh_C(-D#~GRpe;$(OHOIo|PDDs>mC z%#mdqdMhtS>3gA6B6K-9-9l-@J7vlngddF((~m!Y{(LNC6ff$$GMo&4>hf~<1q;2Y z!Cmj1UTrN8$uXc zTq9Ne-%vkOe*D-kotBO+4^)@FvTv!{Nu8ZuyA$b*NY}^b&YgSr_HECtFu^b1gUK}y ztVT;(x=(t-ybTvO;ZM~=m6es%Ple3OFXnr1Gq-Khx&68%miYNIMO*Z1;Azx;k#KHn z*=ex}k0unl%5m`v$afk$dVnbE&A(XT4qle7;C}c}(Ph#tJspD_YmH=P6>SCvIJT5* zd`lv9t40F4_qafg%~daMDzmviKz~WlVfr^}cT&;H$|@tB01^HbvzE_Qa^`F3*}eE- zWh*+Y?x$Nrc1{7nd>-gis5MsviWnMuI0Sa6xe0 zx9eT7SRnC>-PH*a(IVw+6|><2{Xp-wXm*~G!|mmvpWSmNiC%-r%YEbHmg;A&ytUt#c=EN-pqVO^;0hC0 z5LP^tCi63eg>sCr*MV9n3VU)G%WL=L_F-$Ns*YPKhU)6otES5;29a@~^g8D@En;Aw zSqV+`Odz%8q4Q$z)4nvBK7%kJW8PZWtK#e71kD~%nyJ5!k70%j z#X!vXaGT-I9dmdI6_`={dhca8h8@;qleE4&MEZ@{NcCBvrzHYTNd!p&0!DPyW$37N& z$_B-@vRo-l=FvuMF=NlA*~Gmjq-(+D)XA<{qmyft_c_L{<5$vSWVqw+`?DVULuEc^ zJUiDze&hN72=6!Pz9>dfzR`y7ovl|k*!#N9vTw6v$b9ANb*g!7t*sn|-n!*-g{9cY zHWrVk;hmV#(uuAiOdI=-^YHMW$%Nqbx@3PE_cY#~G)N2%#*mVfd;yAHmp9ioBd3X7 zseOJ}_d>FMGLqZ2$)Qp6=~M7)`5@c!_+oy8O06ah=izvCQVdzSA{{CIqai%S{sacfuC?qP77 z97-j>Begl=6B&KbY>vDfHSetfI=;Lka&u+x?zwVZclRoLd;4Fu@~_Ae8gW?w4$dQi zt(=e-R%8O=E18mRZ!h#Tt~tPJrnJ>^`0*kfEJRk%Nq9qzA_}eLfhon<%NiLOSzZ5y z9ez!NPjCT4cj2o2bLq|FwpHgyY&%?@WvJH!<$o@cPRPBVV|Au62*0*$3@PLxC^ANH z4j+@P_}#keOjgn2nwHn%M72wB=xl!xksv92jJI!JH9kUgYcx|)j|o2`BA`A`#Wiz? z{E%|nN~e01`bZ3#bF&*gp?v*=3YT8=(2k0HV9u+1%1$P@Vis*RWvSWG zng)|gZwf%0-b$Hid2@$vBc%ztlvCrtni9_}eU98;VMY#08? z{QC7Dle+D(P&4!@Q%7}UW(CD5ruxj1)UD6wbAZp1kTP1fRVD)4x zU4-%=jE0Y6dU>>vs57R~)5>nT9>M&m za+l{(i7S2q38G?RVq<4s*otcC9**d4_kc_WreUv*?f4%=w+-xw9@(CuOZ`MvpI`Cw z{CkQAez2rSc?1nSyS)rNPUn?OT!TnSGBAi+N<*^MV+ss*bJr6$jx1qB#`M-x4Mw+) zngUb2udh8cefHrNfys}%vx&E+w12;|`tciL=AIYw_JEQ`Hmh@l_dTp#t4=oSx9X>5 zi~ADhSpr7irF1pybnC{+PAIVQU37BWeQ(4`_W`|=Q)A(O7_BDM2iI*awb~- zevRBr-8%0Bz-RqG_fIQ&aa`57^0o9+eEc~5rpIDx^xpFVJ0>v9NlO!lj6Sq6*LF_u z)PfRKD9z&f(0$d@M}~btfdyJ#GLej@7gxig1lYe==_ zv#>$_o(({ov1#qO=rgD4^oVHgPC1O8(QmAFBHF$xo0;k0JwiX*v=cIPgg*H~)+Lmu zJ;qJB%3%FlvL)8hBG2ksxsQ2l@`Q`tyJWADT5iW+!arl=Ys30D6!*+m_SSzzDpfbP z$}aE!PpsNg$r7^H+Gp?2I!eMy3B#&rZE5+~DEeC2kq-KWfX;~4cU_rQ0sygbniM7T z`F`?*j=_%)^h?0BfUK$WC3P?P|wDEMr!RMDD=ngRMma)41JA5zTUIlI_bko;km2E|v{g z{zu&;$lV+vtB7{Sn47MR?yMyxdN5^$5@emNFvE;_A10oki0{D&r&UVLqf-SqUydv1 z(&bz1xuv_SbK13XioLPJuF3%w;?dQ6feU`vVM&n^+GZM><;2*um<#OI(R{Iup>cyb zO9hX#HHm8-L%4I*=gd^S-RcXXSdF}=5?g3O*;=a{qHed$nX7cDPAQRM=0mto+b~~H zp+E{4_N&zytc_G^Q+~R0MkqR;X@_$3w)h;y-g4tMY*9Hmy141fpOJ2-H;u20L$oiizz zpEt%$_p&gVL}Ao~PP%k7Tdd&7UT_+AuUVwTZdSap5cu&P@n?eBQH%Ui8fG@OL2x+4 z7j^-l5aM&@Mw?$*Il?_oe)rcfT|>EkV_+t%(?A1i z9_x~va>os6y!OkNFS9f|V@BsTwT>(Ieg?BP!_qYv+s!SXQ~<29TD8n3v^VYVzTR-g zzsebCRAztPLE4ze$?pqo4;+;1N=i6q#w=jBN7dnK^)|4sMBiJ!+;45EMEsYsn8kz` z{Qp3V`8bj4O6F5lx$Gy|Xmp6hoiUYDf@BU`&eNL{R&;%o)F!4wLrUcf``e|g%Tt%w zX!MS-Z5)T3*8uHQEu3>|Y)>)0n7T6S#j5Vo|hdBp#+b$nsj<=W*Fwd=f3Cnm5T zJ`-5R$2k_>U2)s1%pf?K_MI)q-*Ms>VfqUQ_-TV0lOe08e*Kz}lvHn07kh9ewzxv0 za!A5-tGfUP2{4sfj7mzLN(^f}2N<*?KbOsK8}n0u+AV+m57JYu|~J0LM6=$ z?n+kn@?I;;p7Y{RzHV@0Uw3yB8MBJ%{>EIHGJ3UoO?V8UruiHxs4gdRT#}B0LIwjP zwNK?f1WB7di-4e@<=Vs5VkL)~*-!z;DX-ndv^eV`ugR0+LoSaU%eLR%#|Jo85-v-~ z1(YORyV{xZAV;@O$Dmmw`z<_~bgn52;MM$AGYLTsw;M3I3%J9IgRnEY3Ko2uw*{yf z&~zb0#_O@Y1Yi7i*GVA}pYZOuL)B7NHnB%eWu9cRh$sUe=*3uOxp;UiMv9E09*DoE8rTTF5-?bk-*vjQv^0Hddt8}X0>VZ> z!0FmY_>Y3@D`V$uPoD@rRHa?Mn{vlf*J5&SzIe^QT$Kq@)xeNaCP)d%x*0g>BC|xb zu$*OqYwNofZBc6SQ-_Q960tZj|LV=i~ z-JPDKKF6^Ni(v`)E&aK+1A{!{k?>ul%Uv~o%DYdOUC%f$WSYDTPnE;=b9PPUW#=h* z$tcSwD@13HtRvrqgq8-}`2$!Gh_|3pOkW)&6?J^DZ4s?Ev^}Jok4AcQUY_(^DQqr*4u5U8xkxHb(+_M_3pcGMs+55y z1l~_72c?Q)6vuE^D`rU>3qhi~2f_m+>)!!8;J%OpzaXH=zoiW=d4Zc8XRa|URxRgk z?t4}{pulmgRIlOG`|Bc;S59fwxEAVo?;DBL!K8K_ya_zzp>g~D_Bl|GtKgN}AQUsx z(>Gj+;M6S!etc&93Q*%gsL}}O_eVXGlT*cU>wHZutsD|+?gda$wnIk7$8)YjREyd- zGBz&rpcuA-=z+)lBk?WLbEAdShh$AJrBZqsuAge6D0<86hFVu`+a5FP9o-r^m2p{H7IX@S0Q8k;S zmHqzxV(lr7m(q(5$ZD=uWI;1;9)u{`f8HQ$jd8sR^PLIQj#wC-<$ZMGT7kJg9Fro9 zAEmCYj@h8nu5#?TezJb%Px4vTC*LXFY=79LcFGxKQAJP}QV(?P>)lWJ1Ur z8-gx4!PJ5M@#Gh}XzIIL9u`J(6AQrlF`!+@Bg!dsvqs%gf z{x%LbXahrv`jA}iwmCnNm$L7KYWxh1Q3W-%?6^;n5+-bZ&Vf$YQ_W@EE(kzoI@FyL zJ<1r?SRJiTQ{x4Ed+M)9k{n+Y#!Wy>yb2?DHo>XnUv9&)Xqfs>t3R2B?vZNO?5s`A z_SO8@p44bLCA*$tr1N6bdpt4M>nF3UVijx-t&WYefSReBi0^nZN{$U;`?~2IoDPph z%D66rZhGon+)$p%l&Ba9+3%m9!tqzjK{TNpe2HnTJ56TqSQ%UTv$EOgH+WMNU>}VY zjC^=O8MxEr@(w?5Qy{<2vcef6)@rv?2!_(;?7^V2syP-}l;nq+U-CC#JT91>A4yRS z$`kV#*;}0|oo#eNTDUgXG@sJh1ZnR<2|LR3i&dR;Z*9t)^fiysHsn#RF}wSqjge|} zwmNpL@^RyXznBq$Sf5*wm-{<+9?_5nfjto}Wz-#;FUgs9{xnCGm)`4FB$Op$8#;&D zE58K@1f&ciayHyKLzwCLIGaIGApJ?-lr}+l_Y`)<4lSi| z2|5RTQ`Q1e34mILL!BUtlrK|340ygf;gX0ksCLE_k??{5qTMC98SX^yO0TXOm6QP)?T#?Gdnic+8a-$lBJ&U@br{PN$SuAAS9kcP~ zlk{znR1^XK(<{Xx_m6!ILhAIhV9g6*WGqznwROvt^VtSsd7>6$bSKjH%e{5Kvy0d) zUIBj4_^|1WP+8l6rTT1eP}q6iXubL6u3s^`RHL{Ns?_Sh)9v%fo&6L(mU}9V*2FR% z^BX>nmFMmn5<6OT&5CR+C7S;0fz(X?ao!wgE<*Gcl2phCI)y^Bm}c$?BBq@vv+oXJ zhY4L(#cgt(Di)QZc!$VAK zGXJF$cs}=bGKZG7e--fqtN|%KsSlT!E(mF-gzr)x??}tZ4SjhU4B|EUuOA460JJG< z6ux{t-yYMaPewC=)39+xnNT3rMHBc2AcVO8e9Ks(*Wj0w_z;RCIGx(0{zW*H-~H&y z0b1g!DoEF#Z()Mu0lZKVn)k|Muig8C;VRawhNQFa=?P#4$La71VG?Z!gB70;kfe8aX^>b z!(ldxiU$6v`E3I^3~mm@ui_QyA#NvYAYJP1fU&)HBJrB``FVAgoaboGWM=u`3LEPw`c@u)_Z)#abe3u?NGsmOmci?_B( zt0Wnj4@#fng2`H+T)Aa;cnzO$qg%C$wK80VGBn0NJiYZ}tT{?)y#QT@Q^~{KDztg^ z3g|gCRkbrkST&MB?IK%7+j>3P z-24G3Q;r7O7TX)|=hj9;S*h`a$#Xg{DQ_aA=4l!FK5*woL0lZ$xlo%)D(updEsUOR zV=YEo%*a`9mWWIgiS8b+bC7gVN@-}~cYH_u#NJw;BU~Fb@5X`?2>EVqt^3Kj>(DR@qFF#$ZD|39V zLtQI(eEAlqyQx}6I!Qo$o73Z`-zD%>Y#jdxV{~LLh_-&7%O#@c| z2s8k_b_h}_zoQi{asqS12~?OW@tK(!E2{ETi_zGnR~V;SDc(C%@L%UQ!SvXsB9}8naCs6RLCj zW-`qBjWR`7@c13_a4nJgu?5tJr^{pKp~O=4d-YIE=X*~F%@?PKs&!kG?uStjs1+9Cu`PrqG@0{Or9WUo2ce8J1f3WO=Bz!O%G7MGGZoi`8(|?drsi z`={4y@ZFs`(w`6QQKyw1dbU$hhdS?Bltcq!cPh#2RKO^PV>ED8X^9Ig>u#tH0PN=H z_@x+kBl0btLf_P%M+2`w{}lwHq`g6|ZB+Q|=)_5ww3rY90@3*_Gc%Kkg+=M*7p$(} z|EwgRjTybwyxrZ$1$gIg8Tk^P1cLWHpo(t$m2{C~v-(yq#Kj-e4gNT|1ZJ8~cBg#m z6ciP~1DTh#LX7VO$_h(REX5VspYr-=H;p54dbyZK`+#~G*+sGMaBteZyt*EH)?LrWwlPAUlHFnP@{aSYgA|Bf~11Idu(2f zg?mQ2W0SzD{bI~m-M-f6jWGfxi_@}KuyIQxr+J9ba7oRT|e@v0#?ywKL*= zvX2%MVx5i{t#K=cCK@GO-Fyb=s0IHE!UbFEux*T90wMYUJNCKyce6nlToTbp0 z`MM6UuCoW<7foi*1iHr{;+p{EIhy)Z*6!sfNh~ipdVAV@-&sf{Iz!AIkjivH#noH5 z+(LD1I>qI>q;U2%!j!!^G)d$T-N~%3*yS?I7XCpMZwBf7YzKXi+N6KBL)seNo^dTLyJWAlM!(-yuoo_aIrlB@X1hfc#1;yNn>o$F= zWQUGAhF?2_-zZpy=}0Y%)yar<0T`qeE|{{#z;X_M$es7pW7va6^8DJhOr5u0#0LFC zO5kb2qgyc${u`9YjI@mpGpJD)J*nWl_a3wpeqPoET^23g4|lB=-Ahye0JWCcs5E}G zIkCQ9qxlt(hedR~EmYt!C$4d~&6RKX)|yzuzsC9pDQVl)-%no%&xds`YTL~$^3;{z z+z<{!#g%88U=0%zBkr2y)8%UT>>g$9C}-?+t45WE$*f>@_en~f%&qzFNHQJjrJ!96 zv{6f>v^yo$0SVN$-m6|N>wO$uv5X`F`{cf;AmZ}}M>Xi%Ed|I`6tms`-|E}|_BT^?@tJpKDa54ySbi!8%TkRCiXijJP_d>&2rejcsj<(KXvvqw#if}|bB zj_A&nsCs1r4wuNvQpOJGVJE<4G*WIXz$av{JsLYtghK zU}~D(?8sYHvQ$;Fop<7# zRPvnRwRFF{;__ytLE7Y3`YUWiOHMGtW_`L-3L^(3QO)hm;)dEO$y3y8JdRFZi!`3@ zc5avC|3GOUH-+@0nJeWvmX+0%`Dq-&oILrxg(Y-CURiB<5P*lu z_4wUYX0UR&V9@9W2PCVxEEMSY@J>1Fx`olk4QqZ{#Y)yAV%=oHH|I7x##jxi-124CqzRYa#q^!h5zzH8p52J_9%2}$ zOkJMGvSjF)NoWZm5PlzHW3!;WeGZMzuBjO}sY}<%9-8kpXl;4-q0vqS0E^=r$bXU8 z$GNQ+s*Z3BPgPbnl!o=_F%hDEQNO{D0II0~Z1AQzIY1ATm%~GJ^5XOk=;=roS{;ph zEX43PQ6LbqnZ;s4cnI;xxx>USByU~>|8@?swnOUr8?7n)pnn2yZ zoyjtlp6Y^q4xd0{i>g_hE!TU4PprPMl*)X0Yv)Q=*1}{Z-cWvWn#!2;$))}SuKq!@ z5q~1T^YE6t53wY<-Nod0j z*SPt&vJ-n>-*3u$xtz97jws79Bg@FA^R(<4O{uU&HIn9)tl^lZP4b!zC)}x1OtfRX<&4DM>(RIo23t?vdD*R8zD0a$>uh?hG5NRdDh1EBa`YVC48pmG0 z6=NN-a(+mU-#;1sm&i?JU)Z6ShkH`W91fcMu*=0#$?6cN4-S8(3ntf2Micjcr%V}e z{gq+FS{{8QM*fv}uoC^+Vxm{|wwI!Qo`n5%FZD8sLlHKv)7540f<_Kc$hJ3E8FB<3}mR^ST4Q#BLv4SANwgxVY@9NSbMavqKAe~0^6a+)yc zc}2TI=_-U@_fGvMgIrV}xmxa%SC>xx-Vq@=uF3UYa%(HJKzA0lAOBnn9TZ9Q>bbaw zo4E&&Jd@WxoQpR55zwXtLG|70u`%j0A;~)RQI3G)F!wa?{>REF-+AA{MJAo2uk<

K5ice49={#X?)4_dcfTvaI2WfHn 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

DbrOG z2bIM%w{o@_cZ(&x#s+Mm?$AhFf8}u&qmJFMGEB|?NILJ&aiZ|iv}mk?GP>pHu?eO% zHRM`043DgDVljG8)seSZt1%0o_HZIvWu3cW*l;(5|Ev>Nnh6We1OG|_u zMcvHowfx+VT`&yff<0j|-)}SPOPC#{7u&9(q;x0Wwmp$V(qrDe`we`2R#w)R>gp?2 zRw=l`?u}JFjZIC1FgH?yUqxMA+tah;OI1}KY#|s1c@%aJ3@>av%k6bgnfJ(%G3n+g z`?A4#*_+=K@A>-|ylt{8gR7;I@!FNaoSWRdt4E$hM|0fs^I%x8(;VpRJ`N69!JIOE zRxl~x##`T2i7oLONow+`QpF1E=jP@@Uv+dCDA&W3l18v}4NKh}v>J)7H}EAeu4|Zl z_rO+A^D)l5vNnUA&u=fYjiXnv%DMVamV{|`jE#-W#qqEjQfBwjrYlma1rAz#s-HjA zzx|%@EX*Z{tg$`Q^z2qv(zxN1)g(cuw^x<6XSr3GXA~`@4IEIC8GKmn8_c6-yCknG?J>pQcg(z{Os;V{ z#l?EhTPi25c>tlA&=sL-B2nAhyG$!hCmu%Gby|F?Z^$9ar^0*}wy<>FoQmnWqW;)P zR%bpz!4??(r`ms=K11~m(a_Z$6yt`YeNk045N7CIW$Cx~o@CFkB^PD1!=O{$9ga4& z3vR(ptV>f8KDAQLeimf+P6B-9SKn1@R70LbMOk~)JPZhM87-wnYSlY;=F~FshSt~G z!c^r@7#*5);?BBc^*H$<82wEK4)BXM=zNk+;Ey(CJ?ESvX^_HW(S_^CdcvRjS6KKn zE7(D^a$ya(4DU&2rq=Zf5yhGPRibj^EWTxan|5InaxXT~h1=za!K>Y3FrskDa$DjX z53HA$OM0L1bD^2i46nNWvY{`MN%^*^Z{8d!7tYDt@eOV7ky2Wx??@ahHJl7Ds~a~q z479G_#?^?vcGYxyfxR|tHa0dkQCpH|!_A0;F|zKLVO;ix*%CN=Myt-M!+69f_`(-j zO6U5b*yKIk6rCK~Z3`l_IC3Yt0|fPgCk?V-5b%q>ei)jK$*Z}Y68ntv(BKnwc_F!2 z-PcvH(=*Bpyr!E@1SJ<1>Y!Qj1A}F}XKj@M2<5T3Xsvd&U-aaUDNFCnu+8u*;;q`-|b2x2H-rH#J$pU~;3X z%0O0ADTRPN0+-$0i%euks&5B?trU?X7X&V;whtq7l(^!{jI`bCM`iEwiM zHu~oXY|N>RmU-4KYJz36FV}5mc@ZIEVO8$8#fVwl7jIzdfWf_a z<~3}}N#*wJ5_VUNjAAWY?Wv@^RUt4k&6|{IatE0Vu-?EERK~xL!Ixlxjqe6eyqjEH@_U(0!_OwmX1C@KNZ(gB@*# zxJESBJ_>*CLGoZ?`{BeyJ`tJ9%;Ci?g6t$?ZBNS^UBafZ`(LIp>>}lCUR@Smns#lE z^T zaBv8_KL&_7^{L*wd$*M=7ro|K@xcC!F=GrS|D+OQ`oPretlJ?T9`=)0Ycq}h5w~gm zR;+zCgiB!1*-Sw_$GpZdo%{Gz-=&3q1*~T1=3Ko&7`r73Z>KFID{HV#VIdRzZfWfz zB-*@EQo8knnNiq6HEGW0QL^sYCc0pcy~hKLS^7+1Qdi`0liMaE)w!?{U}dME{`@9B z{$1)$Ge^g4u-e<}78WML30ELUs&5D)82C*5P}bDaDqbBuqRD;8a-^fkZ|Jd%>xi?V z$Y=b{AK-89u!ZX~*S>tYUrbb#1*ZWogmag0XZ^O~3UD?4BG?@_o89Qtf@v7`s1l08 z064Hmj~;z6YRvRjH$K1k@_Ni7g*)_qV6diMvzR=MRopJ+;YRTy(s~SYN><$hFC8Rv=ikfSs~Ef^qrbSQKN*Aq?MPddX+!Yc4ygwr!e9-aMK?p?4F0y2s8 zSE#G6{N?S*bLZ~E=XY<^J$G4I`GHo3QMxe-U8lfHt6afy(*w6DiKxMn)sd zxzkUhq9}PaufvV3im7AY%NOnX+t%|*bh;%BP7Dv*WIQs3aEOwl+gihW+!ba$x(UcQ zbl>fgihu=@V!i1cOhhr!pj&lcKX_0L*q_YY+!+`uY4FGACpZ`XZQPi99CAtl+6E5y z9Kkll#R(2NAG&1mkJbe4ueJjFt``+%d#-epdBNm8%CU^0h|ixt`}rRFCt^LF zv>pb26)ON!Rb$?l2N6zja&e6?-`(_7b3+Zk?|>2K1iXT#$EcMVWx4&RY#4%0`%mLT zsTo_n_Y-%T@2h@lAruY`=*p!ThE^PtLkKf;>)JinLeMtB4T(JllpdF5e>Y#;Ly+p~6VRj?MmF)y#ROVC-eID4LkK7PFhAE=od2N~gI;q1oAlvU@8_iJ#<@XV%pxaDv9 z`|qZ)2d*r{075W9uR1ViKivf8*VwH_FH*Fi{6}?M`^$~R*KIJkP zhEZF`h26&TDwI=S^GfFDytKqGCL82Eik-eUkg~^_@puHF!s8o<^T^`vUu(dR*1)yH z!Jo@})+ECP+(8q##W&EB>XN0U+AN16X3x}ca_5L|+9zDr!(^XDumDu8U&SpbFfuqIpR zFq)V=EhQn*qS-bHnOF-fts(P2F%T;?{K)$7;lsdSQe5-9JL~hD`qdyL=(J#RgCxLX zX|5l6U}_h^7-j?3vOagnO|&nY>kEvolp7mZ@ZW$d9^x&FTg4=hn3wXm-`%@b6{b}# z*L@yz8kD}DkgcsVz3!YgZ>(@qp==4*l^=7@#{uxr&fCKwF}dpXG<8&@b-=m3<21xm zw2e{~m_X}iLWm^*4@tsr0qISn!RGWR^XljEhg8CJ?0Pn9e(Pvp+gFJq66>~#Aofz; zhCK7PmnMu?WxW;^6?GGE%D_SVIhjzkc8?L*v0I7 zdQ=%Q24dDYt6GaIC(jBCdb-}sKqYvbJcuB0)AnxzLRQa&iFwH zA^+^@(;Jh0HDHwT@hXxk;Ql?<=7WDKT^$TCfW<38fkE*5i6*bXz|MD!z6>}vp{J$O zn#(IGB$Td^+-C!)#$NA)_;zh$ue^Of3SCEywC`UEUAK+PrnOV#dXY)_Iwd?T2ycWhQhw9?*EK%babqWmXYCQfg zCdsodh5X+GqmwS^6lVJeU4bxLTGKdbLTUY#60@9#1vXk2o|Werf@vmJ$KY5)1hmh6 zDw?K9+rEF_Wbw^q2-YpG9q=8Nis%l$hW?q;YokQ%`qr$X_0%O{H&X-lzhPRjP0@n2 z>2Z-O{!h`j*oBg4M=l<$V7G6S=<-Ymk)J;Y{osT&IZUqZspb_BnAV$V*0&d%xAAY)G>2+=oWzEk*7nd&pv)+vigu z+wM8Ljjzo5vPiAtjC6L_ETaH#;h}9lla@IsX|&_!y-KilTWpEvmnX@>W~(*)ORBDJCT?EjNwJz4w{6)p+;E3#A7oRZ12n zsw{>Ll>9bdg89sw-<@G%(mQ`G#K>Z{n&()__lQp0vfSxhefw?_$d@6g7q$%y3U70~j<^l$#z z*qwR^Czs(QyBGHWsi+s8GV6uu&{`1CTWZP^nWCJfKWXaeS+!zdvmsNskI7a1W-tn6 zi>dkTs+9wx=G8124+9`6o3Aon>Si7>$i49xV5EJ@iIv#C2#d|n4nz&XWO!O}EI@5I zGjQ;AkRn961YaH9OS1}Jvu^Y8zjnoh9WzV;tQMfY3Q-n37~h6DR#~^q!5O$UiA~3I za&iRdU5zR60Husc_t_SZ4-Y!OsZY+#tfP=*QqN9!%PHKwdpCDz-2Zp3k=#UF%QR~e z0Qv=5Xu5qGO2)lu*lt&X*2nKYnyztkv*$A|UbA&EQ(W~4c6!irVM9uIZ&BE@;no!S zH5oZrj|E3Rxouv>XUSOFv`i<2$jl{WwN15UCa*|$-5G}BgAY}eu>IJ%^Hs$a_CAm; zZl*pBf7kh(aept0!kt(_E7z=Ql?FPv+XDW+V2g`K% zs1U28aI6e@#YwxxBKSAXiwegc-mt#mdVy+5Yn;`*JR9$=;BkMCD(ma;u<91byQlEP z#Jtqa)LZ2>e4Ul97cLvTC!9E`DRKJZDRlUvSI~n&?W}cH_iv!@;C* z1NKNA#5epcA*>>2ASAns?3!i$L5R?ZBgfXi0$(Cu*}K_JPtzz6Fa{Jc!S|e(Rfjd( z!>?2K@)>`5d3heVpoZ<=+ulnlKz2P*1c#TJd-dJwEiA|1I!29<@lnSZgX%t3#T_Yn zJ&(Y&gO{STgd2N8PSj%E9~L!-w@?VK<1cX0oC6Q0zr>xf$duO68v~T$P(Mr^%i`;hr|?HurYQ7ufcE3 zn_Mj5FCZFEmP}|1y5@=GIPGp1s&%BFU^oQCFHSrOnT@X6!WTQSF%B~rW={DvdhmuW zV}|InG#Q6+UG`LZ4RJ66-D?7<%LV#Hj<3mvPz6wA0=IfaSGR4r$8Ft5_&FEiH5Rp4V|&)RRf~H|gn3V0fYOkPHSJ3koQ1DYNx0o9$jf{F&blp^>i=6uR466L-C@2lvqH34X)jO4m zjbvg<|Kw0|a#LcUBU(}9=#AQIW?g#}_Gdvh_ngbVseAnu2+o@jo}a1jlMdFi=`g=R zUehyP(nN56FTs36y>k7+UL%cDjfADz+yUIUkqQ3$uF;FgIA82ao|pF0H+&t=SU9V6 zyngt(x#^5p?A3}+4oX~&#ybjSa}`PmZqD9tQ67vRrBGZ38svD}vYL()9)Hb>Ea+y2 zs85dz4|oS;l9tb-07sqXI(`n-*~0BCQ&Q6}eGPNXr6mX$IY~~AKf`T|V)C7A$Yk)2 z>4|4+^T_!)2_i569ybof*C?RL3d;`*H8(f6i>pen22)Z=u`;QT3}1L{+OlPfV5kWs!WUnhhX0JSz`AoEP*Gai0d@>X=&V^c~ zaQK}Mg7TVlVZUk1ykf9>KAYpD8?$|z4NDcA45M30u4omeKb((Sbyj&Jq>)eQd)Yxi zuDKPNSw0<0asR(ocDnB*aqS<34bX|Ac*vHQ4HtmE1IU;LNpzljyMyVbR>1v-U*Vkq z;p2HhJ&<7PQWfZqatFP=?Luk@V+9l4;1#e@d~UO3BeU1xiDhe8)9D3JQRF5J2YNBEPw51+r2aNX(vOkH;}DAXQ#=jD}e|y zcGpdo_n?c#JzEbKEe0jeA-SuMh^8LFZE;ugZG-Q>VUa6zyz`~%e4a%+!-~RADLol| zlvS5a(lfW%VrE+Z-Pb1~18ysMRqpxgf3m6yr^Jn@;UheJzb&>aFd*0@k(c9v8y9@$ z8{(!u^Tf@P?RvjF!?^xTMfK$-t3@DUYuDXj6Btd;Z^^#(nL3S+=EA7&g7mkpwe`hN z1|ihB_@t?mWU%(R&=k(3kiE?9Mwh~Kw@FXA9+QNy+&(q+pz_|cr&BNJxCL-^Nrk7o zc*3nSY4u@t6JT#keG*G33MU&bCv&->lcPz=KQ9vfH}d+}w|B+8Vft@cH!w+#!a)(2 z=@|GStER#^YSVm}zeMwnzrtOql`a1*=vPLAUaNe$z>YjT@(a9zZ_WMu-(_L+JHH;Y zCcnF~{d(%>|7}kE*O>a1e{Q|~?~nTPn#{Gox}W`d4*hg>(|?g-R{r_zo>i$ z_;1e4%D?LW&UOF&>r71fD|Ckce3psn|9fBHE{XgLqeU0%%UwK?eYrHp?pdnWBquEe zaysA!+}v~Y=)y&rt}55O${J6_&>xaU@jsAM27YC4U?yd@*`FdbR-X( z9H4St4zRSbsq<0Df7`@$eE9I8#Kd+;X_g;<-T#l<#_%S-Y|xBb1Gz zhwncIf9i$H&v<`=K+ph88k;ocCDbf$hRvnj@aOw>M7gC?vSPaEdZku*{sTD=cPis! zKYa_e_OskDd;`)#LAXJjQ>EJeBR`>`o5At_HaJYaLE<>Qp?MCd$$e;?67g7y86_N2 z20p=HU>v*RRq?VhV;r$fB2e`1>{iJ9Gi@6WQA=k8+Y4IiMjDG!$x2p2{xejFeJ^X{ zN7emF$Y-J z=RJWUaq+tlKz;l6brN>=EyX^51#}V2w$zVl*uG0G{nf+KlU6oAKSg2p-q!!R`zhNx z-I}JQgr#Q!{Wllbcz&Fo%dWz=$#F8N&TbqB$7y?O#mxW;8U1xqCRm##1)mo(YD0UtIjWWm%6DaCdtqIMKkaiF3VpLR z{LmXG$89de;nYWu-ui4wfKu^i4;g7CMsh9QDNrl8Qk6!#7oIVsu($K!X*lHn`r$onCGjK7|;~!0$ zyft2{#o$x0eVRj|^$E%+RQgLAz4Q+#&lh*AfRPTAf2gkd_W;*8I^#-lBVT`FS*n#= zeQ-aFw2S+e_oZ;3sBMPd|Q~xGw_T1+qv;O83oVlOn7P)GW$*I^#RntXsRg(P7&a<;#E) z@)w}*TcN44#e|0sEZ-oBy;5gga&^UbjsUtWB!SmA#1>`X%_?MDI6RD!Uf#ZdbLSK? zD+b`rIXxBFVj@mS*cirJ+)0Sn)Iy!1(zIqPFV&MFVC&OAiU=6ar6M09pnl*$C{=jD zWCjsVr*6R)XB;`a7l;OhcMk?d&*-<`)|Bb=YS@0oaOw+o6&YR0QH#dH7poscF=j#s zy?W#YAx@lc8eZ$&Uq0#023N3Cqv08$&%NC3RRi;SIi=uQ#cn@lb@$Q(vh>{pVkt}W zd>L3-sHso1$Ywz1FX2Tyb*7RRcKDj&$`~p{*)<;5%-))G(j-cT=WX_MTie(ikLEkJ z@AFhKSI1;lJeBW-8=QpE(&7q=o+Pn{!^a#G>=zU@G^rC5w1t$5dDg;l{sJ}*JM)A$ z_@{mA5BaYM!`E4Qd(QB?2y|D3OMWB+|0Ggj{4nH+kvK+kdUw2Y@kU)(5$(5^LPK$% zriO^~7Ly3j5m;lS1~D*H|9RrP$CTMU*BT6w5&bEOZR0NbkJ{u%V)YqM}j~RHQ?Y-a%238l;6D1R+2mp$7=% zu1)dvykp#P@3>=pKfdp~{ICFdl4n1Auf5h>bIv_gUQ_t@+oW@BisNhzDjl5bBIx&_ z`sL{3`KwRDk#PTTMDou*c8q>ROmz7h;I>_1G(agOoNJX&%z@&;{5z&w4X>dAl!q%n zj8t~HQV9i=QLFANG6}+-yro!nNP9ylLL!0143TU)@82ppb;DL1A+9jdIs zLLk%ydmYp(B(@hY26mAs@YGRIsF7ZJUiPlParfX`Qi4KW_R)LOw{!6%KvNZkPfI?s zUa<4e;uw^>L)|jSR$Z?tJzm+?kBSz8v8VsbPa=W!wM@DLsxPnLWnI~xI z37n(*Cgqxpf1k(576?4o;y%&0edN?NJ!%) zreo-lj`KLX*b#VWR41r4JfYb|d#%&|b3~*-z!voaO*pFS)2BT`N*QhoXTN0XWONIn z>hI5P6fSf&PUrN?sn+hm(~qZ@z%W*5C|rN#c8Dl&bL>#ZPtI3kgLNO?nV_Lp#y5&o z)N$%5W+uv@`sU5ty#GrKQ#koFo|kU8RA1f$))a5E2bxK%2rPH56Is>+Oe{3m-XxS}bt>2_HpvCe#6 z*e3)tl@ArcGP@&Xr+MasknSeeC-}MEr3qUWfZghBsao z$e&_=99x?-kBmy;9ny9v{ww>*bb>X=My&L_{(i62eib0L{w+-1wUJw)WwR?Pt06Ha zTzz5Y-rsYG?;_j)METt5Krdmzzio9#p1)Cq2O2ts589cjvBWZJnVvWBv?%i?jm|by zyb!YtH|aC&-muU!6OJwUr$Qmy?oh-gnJR;k0Fpy@-oe9YxAWe{X#;behoX_~?l1T&r0%FC<#Y1&b+j_aK zK|1H&-pU*RDWdn50z`@c0Dlwo`5YIn6Qmyu?TkrJw7SwT6&}*z8`RHT2>Je-2>4Ww zU&*yw;n1gnX^H@`y*IK=x&_U|f0}FeC&QK}QyN_F+xK_|w$E!g=&#nl!RDzkF^1X$ z6LNvCMBAykpIskahTP{!z@yPn$~qm}qeFR=xu4z#(_ov#L%2?hk25PCfn}5b=~lHB zBoHRqXJG4<*f@W#c5x2}jAk1w_&5#)Q}>v0F82ukHaSBCZC>kGV18gxppU3_9g&c8 z;+M^wVV7pz)y2&Hv{NZib$C;Vr*?=lhnOtHb59m-L@k16xHCj83?BpG*b`7@Np1#W zFy|`=^2rZ!>f$Fa;I0`W?sNwQP5$lVIl>cL$i~qX+Dp|Tv4!nj%Z(7zm6}BT^(Agmr+PDnQ$QkiI?jMET3Qz9Oqj8 zewrc-Rw;1%7&0Az*_gPMB5%tIN>0>mN}B;6qs!Dv7y! z9p=sW@QdB-HpHWEWr@r<*dgG?YwwrU3FD8ccsfn6Da-QjuQ0nX+$&3yNVh7AOKoc$ z(|e|VFR?2A;+a!l-0!XjaOW`pe$_GU{Od9cxV>^|X65aZZjv)?Z>3}Szd7`D2z z7DP0tw?4Q0@;~rGSeFmptYmc>lf-q25DYb zWajd1p%L4;q?gowNyh5I|Fl zd$@1ES`Z}}vUlaycn;i;Hx+fFLO~YV$7*zn_~Xc(cn=oNvkSe3_`QdGp^Dr1F-2)j zAVhMb>Z&Zuxl}olDA6kcnlZO%8bAk{cj~Y3p+9Wwl5(i5nM891s2%Vahi7C60WX5Z zfA)?b2nvdqeh9KCHc_tJgXac!AR0Mv!$nb#WuWcxd{sfbt2ck?17koowe}w*4>>U* zp1_=QVL6gC(<^28BSVPk|5Sk@ii){BlW{v*M)J*Jd=<)zkqHOx{jopHfqt+r(!L|( zc;H2-5ZPE{n`x`rG-byr1kt&4 zCw2s|p8}+oedvwxAy#f~E7Hg%!hDX-s&RHK+V@k}nOU~X%Hc~h1Uvh!Jij z*UI<+^0)8p_2;ibX=(b`Qwrn8lZX5C9KN3eKGzrEIgBXq$m;iIRK|abzii_IQ4?so zM6X$B2EK`S9buef6S-G`Xm9FB5QP1V-LsVcfQS5Xlr+EL`Nup3;1pAZ!b?EI>FF<#>wv41HRpb=YmZ>RA<9P+DDT0Zwo>Xc2 zs6nJ$i7IS+J|(Vp$%fa=8M!luR!0E5m)(^&qcD$33GB#@sr8NDZ{v5heBhCJZA;;L zLIw1p=a~H3r#JuDjyMT5lRE;&+5JwRDfP7JHf&Z8&UIGZ;BM&sSVIP5B68%TyYQw# z0nPbP%36ie*S*rEH#=hBCb(Kmo!T{VS}axW+KQEx)fO2~^kGHq73%YN93h7fQ=&OA zlrj&@P0j4a+AbuW{k!(1lCn3Bo|RrWw>Uh97^41HCNTEv%`UrGkby`m>IvmuI2$s0AP{HpXVSQ6Q?)g0a`x0*1tUpzP~29ac%_%pNNB&;{ZFLNyMMqjnq z=4L4B@z@FW5Ezk}jgLH7i{%7sQ3Am&<~A4=NxQA|2+AaRX{KvQD(vnVUQ{oXca(D< zm5My~!0Z;qTb!aGkuXn5hDJhzk?(s{O1ou{Q5jn|WLXr))|ZWA)cIXI&eBeS9hyhc zQx{^*?ZIaroE2M*xHrXX;7$}|--(K(KfWJpUe^P4zT_1HqaP|nMws6HF@%)Z5bcKp z-N@qU%#HJU7rIkw<~XPIp8@N<0U~Mcasr3JF^76fw*X!Kl`L7T;`;(=C!e)_O(11B^&*` zb5QCW?}weMri|*t_I4iyij+BQ!zIXHlU1;(GA}92g9^vKP#g;5#1(>cDD!Rf9C`YQ zghF@!Det?78cJa_)easx1(_a|uHXJj6U<;Q!(#M#F>}I3Z zp*gMlOUj+%oSxrW$7l@qs6YskfG!r=5&#M4&nSe=5oW{$^Sg5Te6t*29aC~RFV15s zJ_$)4+VZN@)}qs2T>z%rT)AtUFKepZ2RdG;#th@O2l~G#hQ{?IE#8(gc+c!h@m0#v zCrVw5`FN{KetnHAhos7-m}<=J(1);-u@9k4s6CljOcl5LBA5%P09wFFiU6g8o&fWZ zwu=z_iKC&ZX|txHegMT=_wk|4?P7#ceOGg`Z57`A^0T#p!3>G#`3c@L8=7(j0p#_4 zC6imW`YdHy?zNW5_>Szc@P&#a^j=2WYAp=A=w}Kq?<2@u0EEo0O|wieTlL+jq2cPO zQ(v+>D3A{uQrpRtX)7EfcRLPI$pKL6~81CQfc z=Bv-xRQOg2>i$e*4S}HQSPHBHf3vG!g>H2B=e5}Bo5-QsA7PW)(2PrM%gj&Id`Rb| zXUM_Q2kNXAjEl=P-B&tIDZuELXVeJkvVr#l9DrVxrz23rQ4L+muursl7i(D#=f}rZ5xJaMUz+_ z4&6ktjawk)#i;1q5D=Q(hXD*$7_!Dtfg^%`A$( zG}KZ~|Jr{2(k?+xWx}x=0rfoq^YPFN`?WAffYLSrn@0fMl06yn*EMnF?iWwBZs#k3 zC8mtOr;%S`Hj#@O=IJ0gafWqk*gZB5sHA_Umiu?HJud-PMO%u4sn&v=hkwqRxXkU= z5;+gwy`AH&gH&(c*4%9{d~=Nt@cjWDBN4xoy<=>9Lovz(zxP3YNmh7lUO^z*iyhBA z9-HPy`McH$iG-5_dZ*J3&hQmsWn6zgA$NN^^4-=utywz4R^oINNTK-BG4CQsM*1@z zo4q$6Ua*MN5;r&pDF78~Xs8_@)ZtS_^)Y~m1P|G>fc`JAzhzlnkY4!Tb%7$H=mMw! z;5;pZ7U7bR9|GeExCHx5c%i^NizWRmi+^U3Kp>8@I$HiY<#^}cWr9LCI1R_yzG1HO zJQ-s@#d_)5cd^PIA{u(xCjnt^6lb22ZQ6q9389!hP_PI>qORukH__@mkn=sY8m!bH zb2DUo12)oXx)Eex)HJgRMIz;INV!2rIhCZTmz&j8lj&)DYkiXps+)_>y*x_Gl#gShnA*YHTS=|Y@OjxLB|0x(n8nOo>;nABduBA z=Mg_Mb4sc8#WtT5YQ9a*?C{)Z58I8^V;aWPYh*7RAH`CIExof~Ci zdieKMhRbQ&ny|AFLQA& zj7cNVWi<~eEg%*GtS=AQU6Ex=^>|{}&VM8>mgRZI=)G4?JI3_tkfSKRwMi$##<5Yp z^nw9~%lW>@6Z_u9G;022D*)m&Mt=2t$Tpuo&I`5yZO69euZhKtWpuY6$Kat|9M`pk zGuY$)-Oa2%46yID*jNg0o1-JgMwR)sp22Q^#?o4M6)~T`d@+!7&lHJiCA!J$Vy|`= z2?%TlfTph%^57AV#Kj24M49pQ6rNMV^Kpq#ejiuOKt2EW(N`Z?_wmzHjP6xznVoDG zYqHq>c{FiK$B2PZ8r!Erw{vfv$l+ge3ADLrrzlCywJWk|Ja+pB*Q#exK!h;3aYPRP zPDwzx5iOp-GU9jkc_huTuvMLOR*?sJ0cwWpNYy6R{(wnY@@j3|4VWo6?>Ner_~UL; zSNcYcc3(~(POYCro5*#ZObb?sd6JFjo_BApLez3 z8afx-HShVyHdX-kRzK047GNBfG91}!%4lTF+CBrAnxOQOF#J~5Xm!%nHBZ$8x0WvM zr4xA?&^YmTEv@eO_zeQr#v!-HBsOzzoKrW~6GUnS$QBV!^cSoRl}evSRrz|A)zE@# z_jh8$D#VT+Qn{zl-tATdXz=b&_fgdM5{-MxU(LqivNW6?3&^85bp%!_SH5hzz}Hz0t~whul>{r!r|Nj1pGNO+mT?! zZftL~B#!bM+wiXz-PMQik*Q_PS$Usyf);G!EtI}T=%v(%B~rKyQ`uH~1l$ieX6*%N zG_i)*c-&|r-t`rf&{o#8j}e86JOhkb+?!$`Q6Q|>k(W&}89hvY0rQVj$&>Q-RVyuKe=8#i-J9fG2K?Ltur99fwD7XVz*qSl`PR7^&8@#aW?)6 zW`{l;(GsS;FqYW#w+C4R_d`a^^i94CQEnhj1JRH}1-<4}Eb9BE8M~O06kuPc}h!nK88*S_x)NlK`k) z!IKvAedvq4@eJ$nesyP!5j4>u1I<2(1>F8Q40Ba(zdq_cKxU(c9X?i~aP!V8ev3LI zqodp;`6oa1K2#^l;14m1-~Pnh{Qk`Bw2aYq{`Ek!*0m>;St>7_ssgAjr z_lB$Ep4RzTnHNDF?^?JJ(%%O2FdmXG!V{f6oPQYvdtE&O4IIv1W=Z{be=kiL%nK1P z6G-mF*V#Djc+L9fGcS`}Eznm%c|F`sa!t6C&kmp|0+xy7uR8X0YJf-q&IlkU)vR>C zuT+mgm}V_Ay$R4Rv5)A6VL&4;{7Up36i=v>Fnm*pvYCcM#0$22KB_VX?gwvkc|d>i zj#BWG_a9J(*EAk)%xi(Qx$DAx;@F&Pb5DDI<}_enZ)`X(1rF^rbI$~%%A!$?B!E8Z zG+OnLLr>g`d$*Bs5gOi5vtWi0T-`wdf>=KTOY^CO(S#1Lu!=xOYI8~u#cLUOqU@OW z5M0T2;qR+qVD3=Yl~|@4>QK1t?rj^>g>=LmN**DG-l(F%0a%)8CKCf!uD<^}=7v7q&s4|qU zBiT5!JTW(#i}(Tf1cMn>P%3e_7s``A(#A~qA@{jVGqTp*zGch67?u~nPj$=|VKSwf zp$7p77O6ROD6UWuqQz8LDv^tG9-mw89xgt(Vo9(GK<$O|%2J2~$7wCP@$+Z?0~Ro< zY9&^!4I7HSP2>PjbA~+aRbiaVs7t#ZS>$&Sc&=P6P~wcrvJx-6)#F!Pbi#nLKDzV+ zo0NKv?}vW*E^!+l9ORd_xycZDpm5h?<#vLKN%m{VPrV2Nblj0W2COo!5GI?{%zzW* zw4j4_R>GE5Ry*)iq|L-JCAF~wP0}d?@sO^vb6&za@Zq)aAmUV&;VE}1GE2nqx#7m} zz=5UU9FAL@U+VwH<174^CY zDBHxef?FZ+0DV;-WH0Mu7ma10t>^adIr{WG7nU9*YHXw1IZ0O#!VCe?~0g@UddtB-V16Ry=NB2x*IY+ zgqjSvOlVx;6q+mJmAnM(3tjv+pGcc&!fRd~8EjP@(#^_9|bh@t?KaKOnX`9NH9=GU4SfZo;) zJY*^qB+ow}4~Yak5+Cdy?1mmeD0i1CL?db%!K`jBf1XAH-p~y3y$H2HhtvlUee{XX z;5%U1IsDy+{tkYY%$TlbjH(e{d+}9uP!PoVBmWorzVN?CX`JO`K@mpqzN;PbMs zgqFNoYApbu`2uSVcW&SAtowl0A5LtL-u1~N%dET;?j+kssA&=TLenDuvB zbGVDlsVjXMiK(;&%>~~jvlKXx;#^^3ycou(?2BS*o)x-;pZ4zyrdW@1=)s5RiXiM| zJ2%qeTO>t|Q|;7VG75ysA#kH_>Hqb6+%b!w<{4ej_15sn_(dqUF*&66(x`#I<$v-D zL76kJjw}#3&S_y71?}xiH1rgndprX3spZb??`>MawgbJDlHl*CN@rr7#N@sT7vGlg z*Si)*H1hHmu^02b4K8Hr2xBrVIq$9Uos-H_E;{JNQuvXD8T5~(uW*+mg-1^n73QY( z=XQxCjQ5$|TFe3M6=IW_h6~dzhFXnt`2Lx7_YSnSpGL1y65J1Vj4NNAiR0gDYzH`dTxK^!TO{~LKIo9OKUt(Z{j{9BcY$nsgP>kM)X_n+U6Kds#kMbp z?Md_5QpKNA6A|t0aAm)H-!_zN+y2S-)9M3<#ec4`+3EW}d45c?ZsLW@LJT=^PWRXk z#Y;2qzYo0JoRIushv4kly{>MHm%7^ZGb=`OW+JP_ZFYBo@30`g)%AY%1&#Jsrfx46 zAC%dug}dD7le|CPPs`fOcJl~kx0w^$drp#VtiJ! zOX|&Gi@EwdY<_$D>gw#8CmY6Rs|uX43{`Q9b|8u`PAqeNo_$B^{YP{L0@R=WdY@lj zQ%cmS$hYU~vhvkI!vX?}i*wk5?VJk)!zt$&m}DGqm8P!VM^ab?ugK&Axkg$ty5&{+ zO#}ihk!WhV6|{S3g!c$YFFtB}UV-`eD;o56Q@7*rgBrHcAl@ej+FRZQwPRLWf1mH# zFwt^Hp?qObFsa$){DRlFH(N8v%cOawtyjJuJK6l;*o+olb^UR4y<(1?%d4$gj6A!* zrg-xoORqQ?Ouf3zNuL{T$a-Z@zkSuQ7rxAlfn6HYZATXRR=>}Bc$q#q;_AkgqGrpO zgo$VvJU+yDEa2oFqY+4IS)%AGtx6u)lBC+2dC~kEWGPDzVEc+iqem~%OJO``zBHot zMg8QZyZ16b$^9b**#-TQ4P+8ECwOQ@8?$%?Khxzbrr6`{2;V|YombZD-z>-sbV+ z3pjbe@126zs;+JEk3Rn3j%Fe{}o2xs3qdk~u{8je74M86ct<>P!J zHu*789HTStlCvDz(EGv9%9e90d)(hi3KqF?aYOGHJ*-v<@1b?6o`3mL3iRL-OTWDM zXXvA4eE{V_@VPM~+o0T|pB5u(B+G2ytqXVWrH|+v!gL+jy?c=MI}Ju{+4;+F?DO{) z%etN)Z)|SKZGmf6YmaPi;I=9xWGzMi(@c#!AsD1UnNG|3$z{asgMs~SJfHB_QUgGf? zYJ2DDMXi0nhdeK-l5BKt%gUFM>WbdVFAb-6Uj(Xow)HHJl>6kP*oM zKrT=5k*Y)E|@Fn7 zKE&dmu%#D$TrSC5K}|BobpuH~CV&J>8U>CDi0A~tkfvR9rVn}!2E5%MNkTpcv^V?y zL|}AU{1t#lp`{!H%GA0EEUO_RzRob?-wU{7Bl;x~f(gw;Pv6yw;;o}bX^Y`}<^4O? zt!ye%1VCLbLvOwTYw!*_j`h&YQw^565)uh~6D@d$7MB2M;SBo)l9n{5q8QNeR;OS9 zk41#TWn0|=53Nk%7;4j`b@3p1P)37Ra1_944awc_2XM`#3l217qA|D7nvF!dqEjX= z)j-Q?fEH_R@0s9zZ{Ie&Hwc9XA^IrceFXG+bB^%u7mQq`5By@$G$$kzcb;SJHryoh zvoCR5KTsx9#bP>`Rhb!hzm*$$5LyB zle7}}cw4es%{ae8P?+n&N&7HsfLVxKAc5c4Q}6-Ec)+K+P~7dHAaW?k*CN}twg}g7 zfk?jgz;CBHO+lzf?ztmZ>&!}BoQvYD@d4++vS&$Qm8_l0%H!V-%uIDkC6EMl`K z!vqK(1yTYn_SOj=9Fuw9nq!CoZacsB{LCkIZ@qjgm+$s;vK%xl3ivp8R@1%dEMA5y zPZ$2)ywZ>F%txUNMGoMNtZh+%PCJr4A0N~NS4({qAanT_(oWa*uX^lda>A_GvN|;* zdhY|6N{d}J*1Wb7z5UVWb-?K-I11jY4_d7SnM8nWL0CP-V+Sf0ZTXo<;?dWaVY1l1 zJ|+@dd@<5ni@F;~UB#t2fQCa*RsmcRRzea0lAJycQ8F&H_zfkW*2wsaMIqxLlL^Hb zr3@9rM=g0W43L>;I^dwXm!t8x5ETifpE_889F7TsKH(<7d zF6>co+XIP{26WPP{IQKaJ+wr+qA@qQ1nmc4CQ;BKiz8z8?A1qWYmv4zL*1Z|P@5Zc z7}QJ+cEc%=C!K`nA~Ip`5iTiGM+A+k1Tz;5JhNUsVQB9Gzi~v`7e_Mx{4;MY+eOw< zOf#$_0Hj}6Cow&Mw|+mq__yblzGZoj=*;it5@kOHfw^Vo>x|!832neHZ^^j9ctccG zh_tVSftX2-J_8`RxRnoT$yxN3oC7|)aG_T|g8$PJo_MeoN!2>Ghdd_y;a!MC21>e@ z(Hec7Q-}3G(vD&qv|bVUd^INMYI54;iysd{+vC#Y#{Cl4N5>BaRq+9RM%dTgwb=Nj zI{BdqbCQ*lb;Bw65X9kD=t&UD50o;FzxU|E zq*=%CP6TIw@!fB&%AGL4ZeOAdigY?OPe(L{g5s*5o)9v#vDwqHaJT&0mmj5It5*3a zzm6y`F4*a&@Y}flS^W!vjpUc$XYbO4%Yik>MX;ZFHc0?6U3bw2xjPNd{m#RXmxB=q z5R=#E`ocEpY1%O!dGZVmNwL@@S$CWniGgJtLPZS9e4*h^%w-<%^o0$HPxBk`Fc7Pf zd?hvDbs>m{{|7c=ahSonB|+<}A&8AY^3xFY0c@;mftEa=iN!pepny&xQSIKg&j06EKor&5{z17`qUW z6|&YJZ0dPl3{V?=R&0g(?*bP0T z^2+KDZKlu)gdxmR88iNBWNrg|7$h#l@BP&KH;@#OSu(|CINWzpQie3*#JxneE?pc&b{`amI%aS^xvNWTEgL_8Vuq6} zakw)+fQrYq*-eQ7*?>NG5k5AkDUZhyK~VdrKsW`_vK8>Jm2N-7k+AUjbXfAQKHuik zH0Y)Q^Fz&(;XN|#W1~BwS;K?{Gs@@eWne}ks;a0Yq@e2F9S8orI*inlaB#EVbS0p(zs|ReV~y5KLbQ9p^-B`<||RN z+LjBu4J-gZ`MOgn~P?Jn?}lu4UqYH`&-D9A=q?Jg z^uz&$Bp%`q`@k&ig%tcUQh&P)v}u(FhFE~>lmcN45)w&lF9agJYAi(2avrgdDb~Pp z1!6~rcMQ#)p+>+)h0Li7iU?|XlYChm&jOXRyMtsk-Yq{mODm? zwHg6J^3|d$ zjd31&)u3mthsxuY436;R5-4Rn@7_QHV<3g}Pp)HZlfVYcL!i-TZHG>JKJGE%Z^I{r zRDQQ2O~D% zwZV!EiMFA(Lisi{kK4>9h{OPeRNcZ7M?Ol1U74E(gwqf@4h+G)3cP^4tXJp-Tbksw z2a!isrQ1{?5>$0y5~YsL#DGdk2!Fh6=CvS@y_`KD5pq29x`^17cd%b4txB-4mtbh? zX*V^azT0tZDzdOnZmkz02Y@sWdaI~H$kjO2YEF`@R;b4%PZbI(ApObKeSKa zD_y>+ejuRQ$&_PvfBYn}$)?TJ`A#S9Ykpn?Sm=Mgtd^0fVh`l=jLH;PUDTk<@TbL5 zXsg$Y|Fd5O+{?vtMBElE;t>DBEaL<*K8W^pZqla$3lS2_8df7O4d$p98Suse5Ncv1;PyrVi8?Fdm0z^5O@ zHA4s?IQe4c@BY9!b5xB3k!xHEs+(6w2vS#eIsa2#-s+o?>`$T2r-klFc%psOdkB0E zwtapYTB`H62%?@|z~w=ygC>4|E>MUAvaC1dDw>{9>K`AI?wS7*!qj6KM=l&8%qcI% z4f0XZzIoY%9uL@KE>0dD>z?*x47xL_BAHJ>yQ6>jB4VAVyc15BeDf#u+c9rW3e${PuCKqkR@(J#~D=_cBbu1BzUDj z5Jqln&c0~v_Di?kxoZUnrRdQ};s1U(cE4<*{N_Mj11Aag~uGSX<I1ZPYRm9gf`(BP%jd358_Pm`K6(ZnbSjXy?64jLi@S}6xA_rV0!FI{aLt`qB?*P@l1!~(C`E*lo zH%MXMyl#sU91~NQD6p1wt2+Eky(+#YmkRvk5Gw4P*v$5cBA+|t`9HRtbaDfmvJfiN z!lOBMKwhfw80WlibFPT+ZRSHyE*OO7hfK!{>BGZCp9W?A#A$`P(3yzFU~jD1c#+R3 zrH@)hBu7w-=ZAof;YLn@R)dxsu#7}8K9ZHojP1qop=@35SNM%-LsB2eJ*DYFZtMdt zX+!9p4F;*XS}@vVrC`M!r_(3$)KVx@;2cun0u(_@N23HD;mcYzPS#L?^nsQ>cD82q z5IN&=UREI~N=XG0dVne7EXKxewGeF1TVH5h2Tms^An<&1=z3L{JXI@ht%qEkBaB9Q zQeCu5tl5k{epgB#FR0%ptfiKE`Q@n!uSUpeIzO;(k(uDkW)>D228@~;WFMeiDx$DO zd%jhy@?dbw>Te(B{>pz~dWZo^`4B1uX-_RCwMqJ8>L>g-Au_{x#%nL+Lg%QhMzEHE z1@)$E%sslOPCt}TW3`8Y|Hh2oP})C^2M~wZX^ze3On4Xbdx5KysM|A*RI#Sd)H{&@JMC+ z7MZ(7+*~!syzesQP&g78yTq_jD{f`oqP|g5iWd&F`R+Dv2vtx8J#(4KCdY&ThPbT| zCf4_PyJBM^k{~+kM+INE@+SY5HTXsUM}e6B9E4as1P?=$gohmc=T4C2)thYMDWJx4 z`C4ig1KR@VBrn4W0_bQL-YYpL#*Ez6K)Es9?uPh%Cfba%H=HYU9OQtjJb%<>+=Iv7 z`mos;mdE_PvLS*J(C=|OOQ zm3G2ru0+IsgDeSh@KhBh*bJc3{uovC^Q4+8$&*M@44Urv+c~t6jrR9)Quf{tE<6Kl%&qNSSy%5kl=P8V=ois+ab8 z$GzJ!8h|^RG9*B7RpA1(eWcTMTKM|aKeCzx5VA=m0qSrwam{|aE1K5v0dNST+{MJ$A(q7Ea6zuTE13ly@pFAe?)9Q~MmKCCqY; zfYhG0_xAvFF!z@PTAaj~fLSrKasG8rE(|ARK<;0eRKb6=VD~G!83vxqw`Gh#3@A(* zYMv}I^PW{li3)IL z#uRM?A)!TmW+*fRJLH zOFn!odGOo_q1Meza+uqq{*8#>3&kFj_aUn@8vnco4U+A{nT7FJXX5>-<0?PaotOam zu~~(SYoV8%wBWbQXea_gN17Zfm{iDT@)Ufj`>or+3Lpe|3T5=U>8q|g7{+WrR5lzq zQ7@5U_Hgp|K0>(kuRW?tr=bLCb28!S$^y^6+!1-qn6R7_1W*ZlHmq{1jZ#20aUx;6 zVk8_hWd+y+0*2!92c7@?kaI2jTGo7vV>=YTyEI=70bGwX#XX+H6fLOIV6!-%g-%BD z*4{A2S?x%u(KWzWpe zlfk?dn?Hdf^u!I>H0k%W*Kq^H1{c2o?}3U-bW6|&()oC1f!+iA5(XD?Etdud{;iH! zppJ?Nkr3Rnorel88ft9e%wS~8;)3TK8eYsJAvkB58}Y~8C~e%XxNOzAxITx^EU(X| zuBPvz@S(-2L1KN54w~sb9*Jvif>K)>;1LC8pI~3(70{&L$U)M|IzK!NJTbtza26a~ z>Uv-g#^3w^p!Ow*E?~W78*A89?~_f1zKA23<(F`pj_pW2yyT~({pA|fFGR2BR6@W_ zcpWm-QM;{KNDG6GScyll7sjI9>{4*Mi7;tC;!^N10ZE26hTq~3ig^S$2jlNZ=$cvCaiNC z2_7Az5ePen++W{1Fw_#L)*)16A!Fiq6x0$5l-d9SrIMT%1IAiOqqOyBroKG&pM-q` zEhXfrgklHWE;3*M+}20=EowOyOvu-{fcavM0+Xq}VY2<_jfpF6XlucP0aDxBvFS92 zMiL!lans&pX6`yLl4%|+KKk4KnxgS*dsRFS8BRiT=_}x*!#)`YxjS(PS!yYls%tW* zs%Jpyfr`Y~U0p`_nRgJxBDKDfq00nCg0NsEnu|~!A)E{}Pui&5Z)N?Y$3qm_6AUF) zVM1J^ma;kD1fH_+bcn5+gr8{N8=U^5@W53gtDB z;W<#bwD}}1yA~svWRbBRs8i=yImWz*>qHsL8y!Pm2f$18OvfXNbO0EGn|TVe4+NZb z$kWL)A0Qk^NslLJ&;XD)jHH%h7+}KJEWnHc5fAHZ_)qYfYoWlZK}6i`Wcd!~B6P0b zO4v6uL4k)IpR`gS3qGS6G+iIt8Vfy~{E!?)Wz@9RpX@w8$NVh2k-o;)cV@VgdOA?x zZK0SEeizh}rVVkPB#-7{=CKdaZ$^}W1xy0o{_8@os5&ig5GpIfY(nR^L9C2}3IuNq zn)L}TT>2%@LOv_~z00h>eVN~4Z}<&LY?D=8fWpF#Vx9}FM%4%zH;MKvRL9e%bpbW0 zzhCBdT(Ic}$|*oXG$7Uq<9u{u8S1)&X+tJ^jUE>mOdvnEXzF5Ndmp@I621u3BDFQ$ z(sEXN52QUUQ38%&3W`q32%+A49A+sU1R@_{%HqCC3P1qd|*>IJ_EQd>O|?{ zn2dM#ke*kbu&dL_dL9<$KWJm?&u`R}zQwjL2wY#(X!l-#QO~$X*^vq}(&eL!v&#si zBNiIr6{`{tR9KmPNfvNYwCv__WM992f?1f(<}Q=q%ep%o2UgLG3L;Dj9S5$ivc_X( zCN;io*SR*k`r5*ouiL&$w$SrhgzmS8)6*d>K2MI*CR-HVA_TJ=S3&yeI#tB*I}!4R z21ty_s@ig}`xHMs1@lT1L^QWLmQNpCT)64^zeLkYsyh(^#()-mEqFvHpi8t$-S!7s zf0jEw4Neq+dpN<62LHi>5hBMV+Ee4Nr8qSrsOC>k-Zev1c$=xVgYdWk{v$L~rlIqf zA0jJwniatNA*_m%-_MF@L-o;G7$5 z07h5I#phvYdz0KxBajI8x`+`UO5p2Apu)t1^U80Oohwvycri%-m0u-7KfTWQ^r_QK zc_To5(NIVxVcsKi%J7Ou&C>?Tux1df3@(%L&@Jb>KyHH(v4AD<7P)rve0FBFT~n|Q zs0h%H)-2*=ha*7N$Rsz9z|=&prf=Uf$Xn~>{t$$4fjTp2>sZvT4*nBU;svq#dz6Q5 zJjg(iTyI&|F=D_Wt@8pKUu3t~+GO;3G+n^BVQw5bjT5t=3gN1s&2#d%%qpCYN2h!hF)}DQL`kShJb(6NY2{|=?lzhd zDIx}-2~;EZzdZOLv?nABhKB8T{*jmc=#XdCe=fDYYBJTbvr2}pAhJ({psST?oIsiZ z3c?EzP7%HK>Ow+-s47re9#8?{i$Ic{FW@S1fCNfT%aEW?9(L{?z)1rDhrzl$s4~!z zM<7d2dWXoBB3B{Un$;K+JEBBob^gPjd42%1#VyWiR#=);^}~mJE{5LzaNj#;mA3c6 z>g#?&SI6#q{h&H-+n%k;9w zS@pEg3P7GT88(j(P`z3QI&8}4>_O7pb8pkmj)Ll(v4(X<-k4S;Tu_L2R%X=NhO-&d z6%mFNW2|kFlRy5-ocOI!^^0Dj;CJRj!K%2;%=p`1NhM2%JBVUP&rwHM%I#n5z;L_4 zg+rvJ{nrN^l}w?MeYn5rNf}l-305;67c32IVL|EQ2z&e}cfA7@7rEaa9 zvRix*;v;pagB(Aznnl{q5_-f6%ts3*gFU31|h-_A|Njt&)^DM-qo5SfiRo@% zO3Laosgj>J_x@%6$K5}|i#4y;YCUIn`SRttOPLy5U4vXy*w8M4oSx+9=kt#5BefhG zu74qv9rX8^*kJW~^Sbtr#p{QQ{c_jt->EF?HaCBjVw=o7>cmlL@8qt)7la-3PA;L$ zT)|VFFm8F%qf4SSrHd;gwsOCxSMq?BZ*05!U-aq=+mbFpm?B)%7%C0^(FwVK%uF6vo|c^N+4 zA?|(2{r#>kRk}Y4xGT2~>B%j8(9JZzmW!>c#1Gc(E!B*d-bKb9+O@mmfq&NVGbRi1 zec#8FFFKs+v1Jszv+&9%XY;qaeffcXo7j~im7VB~$B8X}P(N(M@~v2G3>)aqjN9RC zi9cR7tI`p9U7&$mL~g=eXm;fG2NzZ4YU6Vig4f6Owq74(dG;vfLP zmTNWV8zhXo#~(aEcD|BlY0~D@%{j!IW&QmVy1OebOopcFlF!$wRZS(E1eV5gmDDi0l$#+|rP{AM z@~?N-YwlmvYb7P>ZV|I9P`DJ=>&mnf?9|1GNm3@gZ1eXuChO}B#;p_?QjxJsN+Bh~ z+h-mHY*?5~$ZI&;{N^5iOPr>YoHJ?sb7t*mK=urt9u%-&U~8*bf_&y5JR*37{qzY( z7Vbmm3l7FBX!Bs#X`Vjy`6t!x0gS<0T2aWC{MWt%RNQXDeQME|(u~x~2;_z=53t9C zOq86Udv;!kh>zp|iS)kp#au#H#loxzdiIIN%uTTYy9=30Z6iIZTTYb1WgS`nf>Q&h zNUe6~tiz5@gvN3y9y24uJAa{P+CFCCAfB`Hg{k3C;>OpMwsl2vY40Z!+q6Vl?JOSs zJm|G`=)p^0ezW2arwOSY4$Vn!hcXMM#_+vzlM@XY{YP(nu0HoXXH8(znv)Bc zucrE7F=&ieZoygp#o`$=O^2c`RgHw1h7X!gFl8yil~&E&>n`|p09ED0Lq zyQl4QfR$G^u}-i%BXfDSHWtn}=ELRT0xFNLHL2hO_Rma^d!`4@$%bZ@`e#^mRgsee zT@nmchc$#0jd z&tIXu*s;R|W8Am?-Mds@t?Gc=({NYcr)aWzL;`x9VsCo8KGo}CJC>~FyN{=PRKm@jIraGqNlo?6b|(~LKDU@l`+T3xIc5jvlv2{U6|W6Q3~6t* zetqwCmLZ>&wosXD2U;pW@;C-Bt#Y%gfsgu~=2TyNizq)NBBGv1C+Uz(Sq>N|zPtao z`(xj14e}|ko(;q=*$)+r2K!ekttR?V8K({Tc?- z<~x?*QS$h8BdlvApK}^?wps6c9_BNH;z{J zz8u43pmPljUL+ zMs+mk?#=G5c$qHCVUQ*Mna8N`fbA4*ZJs#!OJn+++k?p;XD3Cb+5$?L2U-$zgw*n1 zzFu8^V*eS=Ha7;Z{5yD3@(VC=_r0*}pd^^C49wurY#kR2j1NJFVEBc1&AR(vzkWT{ zITG$v{a~wx+_6p4Kc8IZ*f^;IPglG613Xx6`9zt(U2@{EoP^MB&>$G{wR{IoRa4{2 z@NnYP1q+Lga*qwZqKE#n7ZN7ie|HZn=Z`xoBe03SwPJ^27^h!8<*VQ*E05L7*?oe2 z+Ra4*{y_>7tU)`uOgQhIHZGAJ>9x}_)0)krQ%Rp)+=wkhdm1n#^|JUqdhomI%!-F~ zLvB=Z`7R1ap@Z^AE!MnG{w^*K#K$@ZGB@rzCJ-p=aGrbm`^OKSUuxZdn2l|rUabn? zAAuNU{AmZFteN7rKvUIox(Km*@pCbCP6y%m0x}4N+!-PTPyRf41Rk?wVPR(Ha3?&u zty-rH{s(*C9o1y^wTt7ZGwA35BBGQLR1^dTP!JGM3F3%~jsnsZ6p$)X0)!B(fHWIT znxcqO4IM&LfvAK4Dxnjpp@q;}D0iO#^Ud$xyVkvb-gVdKS~w1b+og!$UvDt6dAl)0l;}=}9|Y_&_;>@=?pPftJa-LFxUGpj=R~lbk(+~=eOE+vQv)io^d`IH z*ngHL13@C+1+$tsHEbzg-*Z@*nYvJ)t>`mE6X0+=f7ze(%aP+7q|N8;^|eS!~7Fu|zRDZDt_xPEIxx=|GWK$QV= z9^Du&xZA<;MZyU&o zAjH~OQ#<^;+=j4Nh{b%n$duaMs~IPj_1pr{Q_oZ2Gk3S*ei8c7?$H&@xx)sgZhG_I zG!`zTULuOQ4>g`2y7JzP)i#&M%M8qjrdib&K1zxagxr2AFAq-p{WFsRmhJ}~bT9r* z;lE*j{_n5Sm1ch`1C-%y88kDDtG6C3yNoF>uPS|vjp5h6$cgWbQ)&z znGX#t8-;g=Z+sd-|2%1L3^DaKtD|%9bFI9pAU~uOg92{ER8cgNf2EM!gkPAD- zkGu5Fz>8fy8Q=~%v02R;pjG7=1p+Vj$dpOzBw?F&1y5MO0)nD-B6!+e#XC>->}kvV zDL^OQ_@T{GO~~u~nZoNRl_eBf*?*5wBeqHUq7}AbY%Jjy%er|5kY&*tGR?M9HwZRh z{}d#jTA9!*1_#>GT8y3a>`Yd*sGJ}z@A8zC~t){NLd*wnWruWlB0yD9c(KES(F zUwd_C@a&uSnpu@Gb}~i=TY~%#zn;6R$d=yUzwKqsvvalErxl}Et(jUI`D%#LPK)kt zM88$K@~FgMF549C6jDNNuA;4-ow!(MkOI|T*SnMNyq;d-+`jn?Kpkg)E*&lyeULve z#mW)<}4!*kxf?}}l^d$ViBXtSTdyjsHI z3a9&`Y#7`n{I-)15(B2L6Fi+s@ZQPl01^Eg4TKy5M+jg{FMoDtaaEVDEeSxn;fILG|kz?VrVBV{jVX> zgBBN$)!YD_b1JAH#UAIR^ZrGR$xXEsxXS@Y2V6om9_NW!4SL#{2ITxM&HBeTg_Gs5 z<&7KX=NTHI@k{dz9-_jC2gDvssn5a#wFCQ-O*&p3za8SxRG7G{PCdbV$-U;f>|sOu zD1KRE18aL-D>usV+xXbTsYC%@Cgp+O?1bc?@cD2Yy-+V>ck{iwmy9=w$jS3;_r|+9 zkY3cIFnNxS4%g3y1p4=<`F>Dv>tNN5H=`pO1{GCntCL`z&ls_KHa1HGRRqMKu|o z_@H7D-)~M%6z*}i+~ACiGuh^gJxe+lKiO50CY{{+8&$*bHVc&Rc)$LbXYPaI<0<4y{|i`h@8(LixQ5k-z>C!?S{=knwynhHGaHhV{aei zIo?}Q!f|&1q(hdh(k0H$0};#t5HpDoy@zZm``7 zQfo+q*`iy*hXFWHSs#+6Q6V>G;23f}UR9zv4Gw#B!y9w+JhG(OYJz*W>`+~7fQ#g1 zJ~^xMwo%hUbfg`}Vm=xKPkLpj&%{ekJcdu;4ZLtxS?kB6wa5SZD=&X|*l=`ipxI-f zqsdb$Kj*H9&T`e*iLz1g7q7gg>AH{V?bo~P8!w7xEsj>Ii72+zW#dE5oXjsk$tn|1 zf)Ekuy&$b6h`qM-LDLf-vZJwQ&=GK%a|hkWEuv=Wa;S)M-ZbpgZ&n)HbSWiD+tifv zs@36bb>3&G|4yJ4YY+XUwne7xWy4DM9@pXDIViJx6h47Dvr+T1=#7awZPut=$!O)y z{<1FkxaBVRm{(UJ+z_!Mj=N7DA|t9QP|PPnQ8GUeH9PtxFwkYa2+Ar@dp!{FQItg} zFW`CC`)fS`mgczGhFJNMoD}^^H6^o0ImK{ag9Hga@Ub@AIPt*Mv&}rHiD`$0z|U~Q z*8A=vyM2inl7{S5qpW>z-)@_H)m>k5?LDWNw^Oz_dgC1;f?nj9`8~xp6^BD=_|?2< z@7W_=F|bqu2o9wWAGRrf)8}^56TM8~DZ7ua=gMcJ?A)=M0T~(TXR_H7J8Sn$ua+WZ z@tiGLrk=VSHM>yE+^3^8(PuWa>sZ7<`%CNZLGjz+a8`!AW)iP3pP|YGeKkVxz_-$* ze{-fcWCRQj$MM76`O3(p&CRsQO_w-HG)wETnz`>K{#|XVsLfa6;YQLsFuh(=ce`-a zHtExO(YZ^GdF<45!RWs6g-U6X(9I#J5)!IW8M)1SI4)hJS#J)iUnsOJApYihngG-c zaEGJK$E2L=gz(V9%*uhHQYU*{@5M5y2H0SH<%r4R`*n!kvtyTXZ1rGkZo?g}MIYZ@ zN!C~#Jv`NDiHa>Ap3$s$jlTgah|~i*+z#jpn3yBfnV~(-PmDAX=dmu_xuaAWd=x7W3cgG2tN zzZxpqC$loS{kn6#N3#N^{MZv`va_UeWu)?1z|W){A1e8M`zkfp*udG0^BGTc)s@ex z&vyI!d$5Y9Eyy9l6(YQBUu{vmYp6*Q1PAre0Nrv4_`8o@N^oVRTZm`VQc|(=)xmic zXqPp{3C5_-e_9M!*h%BxmTCuQiihW#pGbK6rl^|pcl>f&%&iU;wmlMTwYT@Mj{l`S zOiw7>M!?9~N&DNBN2#-p_dD&-R4$|5Rwr*u)Augtr_DeA*$O+8Ni6uZ$$OiM0ANKH zQEvD*RH;sMx4PmG-4dokn(h+>{^Dy#*W9EVIw8mS)s%{f>UB_`8V?z-zSF~ha2Bci z#;09=fa8Y5Pn|kdn94%SlcYZRcBYZ6ZguA7(H2^M!E;;NwSJpI0mN{$#)o7*YAGaQ>%5Z3_dNHI8`6PN7io$a!~qNkOyr@ zZ1eo4?Ke%ty7N62E#&}!ogFMqxhQmAFtLZfe;^v*+fLY}XGjeEG^^z4n>f#UCS8Z_ zRC7m%kF35_{*qIA2Qwlz`aH8C%=m}8HWfz*KilMCwO)N=ER^B#{h4yZzXDL$g{H58wo3>qI;U@-1{%2dAD;utJ2h@PkcuKqrAwg{}_1FH=4Nw9SothHvF{ko?XT)%&RKTewxrW9c#(UGY zbH5#lICY4O|CS!0TH^iJ0grA!BH(ut!!?%}zhE-Q0*bB~Pc7(8cblw)+UevG`XQe1a}TqM#x3A;Z%vJM@lLISEocFmvVW?y-RA=7eX&DuG@qW3 zxLC-1-wzDw)hlCEL-o4@;WU#+a;j>vhV6q1EBE)mB7v7&n1;Y@$hfK>ZI|Z$S+*0% zyH5p9ADa)64jLdd_v?j>zwD#OnZ_-#8TT}z_z?RrH>vv3G|DAU;_CW?EjTKN2Wp5> zljGS=@h;)v$ts=AQM{7`t3jEaN(*pcn0Z}0#;>e;VX({^Qw}v(OK<)XbGYT^{cGcf zz#$S;)*4##)?7C`O5S zdO;BF6qSp)@Hg5wqp_u=1I|N$R1#Re8o?>J(6|8S6Br8APUlJ80{tZrIU3)k%biI0zgisNJa+g$_~`o}XRx3>fFY4NeJ5Oc#Gg3~2*ci4+TsmX2^7CWY> zINx8_7ueu49InGzMpV**#-M(2CYeQq z50**h;h`4|eYga)k|mryBEWV;j-q=tC>RWvdaV`32OJ0Rc6+Un3#4rudIG$WalS6*dF&!b5$~Xo$bjsudraSfdf!*zUFIo9O&?Dv@ykD&j>b+B<;; z+b?I1cy$a$#Xl-zjDGiR0|rV)(rmeVb>qgpWG6d=SB&d};rA!zb9y$Kmx?nYbxsvl zT+3@0M$EpK3{Z5B;{t)$s>qd&cA;uPh&EZMnP!bjhVbyfRg?4oy1?7<4I;_aw0Iig z>xdAb4LfS^$Euz=EQmO^ef=FM&@lcohqPKQ3siFhx9yK2l$Y@LjEq2lyxE@Z=$<0k z;Myv*;Szeo5!-yvD!TU7&J30=4(5+jRl9C&5b=k9mxl0&pZMkQ@eO*A0+hU`Z=r)k zT>xxiukfQ$KQZr?=6&+S27=KI{vxQjIIlUZ=G802fIHBAL{{OsA^@$!(_f{;Evzfv zdrwaR6xdwTP`2x17mGzWXdMs4$k=+J40uE56?`mkZP+Lvg%OLGC25@70~LQo?Rg1C z8y$O8ue|^bs5s~^D#!CUtWhK7bv`^IxB;JQ)*;mV19WgBo4{!oAQPeC&8 zIg)N*$jbMg3ql9cY<^a^B{dg{2_6)lQ0}^Y{1jRqI(^9oAzh+ly_9lF2cqoGDo=k< zTnK61?K*dl5C2gSygC zKnq6b#`C~QSx5c(oUAhT@z`b84dImwg@ATp(=utF*7&aiIS3a&zEOe5|shg zF?=AcxaBX=ShF8QH6j(Zo34B!?95{q8YZBl@{n-|dsO#n2;(tvH+7x1eT((3K7$A{96Xs5qYrdtFMp z`veMr(CM9d<&cfmt%FaPwZv@Ak-r=W)D@KTMF{T^{VqJ@sC;d+L8^9}NeMOSw9LKY z3Eyb5?djKwPq;3+*cPuZOdvG!(GHgI)Rg2Lv||U!S(C4*;rMYLD_388g}tP~gSL#R zjnl7(Kiql+yTTuOO(fh{buM`yf}<>3jfVn{rNicpRUc08%Sv&hJ!_3{?NMkJXjr`k zWsAcr$Yu3A;4Ao(18D#28(jaZW~!CPq4Yq@!`a)l3XPX6#mW>{-jy{IhOH;S)?ZcV ze2aaT6|;xvm?0@J!pw5MyGrcK1ANlzE0neW_}^T_+hu9*RT$jY)`Q~`rau2f2;X0p zjfKy{;LU+FdX4C}`hr|SfBYjZu0Fr-+9xZr-RgJ#Hxe%g+OGZ_{`s8(sz`#(_ zT^i~bc9Sp7LiL!qu5wo6M+@0Zo5j{kc>`gtq*}T~X~)W&s6Di-^iMsXbr}u?x#}6iIF-uB1W8a&()?0hSY(pT=e?^@B z`M*1text_QLoJq|cKMStGw#WtQfuK##P_AToFj6KA~*i{l*;7>Wb0JlBm*|Y!n9ny z#5SCYuMiABl2`!VBpJg`rVO}fZ((~7{YVD3-qW!dcHfnHs4sC*OYIZ-3HWa94S6_f zMqE_94XdBNJoFDvCw=)SyAm%Z7rfzrj@}g#9$SFF-#7J?OArCX_HRg1CTe8OwE`U` zfcu0?1adRRM)Z(}4biXM%&INffS37kZpvNs<9F*{^^z*!p;xghm-D`fD}X6T}Z+rBOb4^q2WZv zSbN>z!!dvV?NFS(Q5l{=Fq(vy261MB&hIz|FCsH z+jbOkT1FQrM4?E?UIT-~FAo+4L7*#x{7+td1j5`WRb7YbE12@!N>JN-WVM(&vgMG)wSW*o z_6kMvJEWfh(NAO+OV=gQeGl7?)ZVU)cQR8PPtb4O;WiSFG8*oO zcMix^XU;Q^GX3s}dVQ}Nr-0?F?+;NW?!{-MF}mR)Nc^cA|MB%UJt{ZdfcaWX1l0Ph$>z7D* z7QXCZSEuDm^(L!*`I9^7Gjq*{y)L<}iu0S(Mk%%_T^iGgsg^#*B(XZjlsOY?9|MJ) zxR=1&2CHlT7G!p<2VGV`PC*JjR}l`yXotA^*B7i|bZoP?$VkcBEP|3F;#4$cJBO>6 zH$YchZ+VuU=%jA|%%Yl^r}OzD<0XAB`~)~Kkgy2)sC~p*rZl}`8xUo|nrsn4J<*g9 z@EFL>7-mm0Z4F;a)5pVE4e5*O2f@#3#L@8)6lva5>M!cu zb-&yh24hqSzA-{|52~F&k0uto&Afrig$e-$0iJd1)O@mr5^qZ#b$|?t)F&b+cFZYN zC;$;=8l#dgY^e!B_}YOEMUI>YLi*F4hKh{Jg+=$9V|EAz75EHNwz`7Obvej z{ScLc=cDeqC-QQugd^@uA1pSA7b!xtf>=RHBR|XXL1gB5}wBEDy6+ zX!%>=K_dw0vZqq0>WBM``u? zEAcop|A!R^b!3+Xhd#?cMCU2<)d(`iFEzEZo0gDZ&H5@) zqmt1kw+cOku`2;x$OB#()vPFEWZgOJiK@^N&!&5ZdXYx31$DDGY*Lni`)|EYNZeh2 zu`2t=BT>XN*E#0D+_U@e!q;)&UmUTm0Dz8JobDxEt4l#Aq z*=m7bD6Vj(`b!l)a>AA^2>!j*F?GEz&y-wFpsK##t_BDU<&SsL+CY1TioeALRD0qI1j-{92R67 z;zppZN8&d#eaSzTRfZmozNHw-W(Du$Wg=n=*`GpiKZqYQD_!Z?cHANtfWtwr+>D>v zNxu|fV*n)Vw(5A}+8s{)sz5ynCV!d8$fJKBZq**zbSF3NiAe{M!ZLQNZcO!Y?;#b! zL6L*I)FN!nd~CjTo_YYx0^ZCI3e7_bu$t>a=ih1C4I{cLM%C&1cs@|Re`OmdXZ9k@ zH9Rx6M|iH63fFkMgl&2qAuON%Ss+J&qbev?cA9-fR0&qM7V%z9*__&!KpXYegA3H+KN-$D zY0OOtSCgSu1@suZ**6V8*@L;4i(ZaAy?Eht$zpi9XZ6y!29k}%#4?j#Aw~qHwn98* zl#skVLU7RoE)utsU62tLBhY7c&s- z0znYCN&O7bOOENnxaxppQt!@*npcdgAir7kyKLm`NI|lkU+Bz9>Zv;gy@hV^8zREU z$Or~>@d1eZ&K9xA7BZna*QjPzH_GuH&|w9>j-&dQ9I7l0DO)bLwDeHQZ8}ICa*UR| zN~k(1#%@gdaEY{35iN5OE!0H6(jUlE(-Rnfrbq(R?wt~G&S%@LBMaiZL`-%d0;I5Q zF7^Nb$8us6-JfQ;K2uD098p)8e94Eei!hsJQZ9Li;nCz%2M zmu9*)ytJAxM=_uuXJ@Di=;O0d7qSy&R@Cg4JlZ>!V%?jxc9zy!_c6H(KWj2*t))a^*>wAwOH7TPnbx)dSz`GV$ zVIt7sNdM`ap^SW8F#~Bqn1J1%GOlm#1>v9X)Jci+3^aEP;5Jvzng`m_>jx=tvL6zfth( zbq8Pq$M3hvORdknt64HKshW9Q%ThK{NGXP3YhkSODH)FWVAN(1rr@AQ{jx31yQ3gx zO?dbz&osovSf9&4EU?Nz_x3-#^D)=5v{|$Ir=u4x(MA#F5daq9#?*&4^fh{QKs2F? z9xu@lC#oaLMs3HR6MD+n6zDM8moQ-C8r(j^a=I!!Epe>0Ub-`A{bE34sL(fkcr)J1^>kvRR)9 zaj`fr5BE71kf%AGtBniqa4W=w@7k(CyT`kpavV-Ko+C03m_d$%I02lkhU9DaBT(K2 zz7lzoKkqzo9njM+8BfCvuC5a@-U(YKwUz?D*=3tn!cX7(`6L*^npPv7A5u!fmADYe z6tpnJc#Q9k4E2wF5lP#HjsRpho+kda;$n`^W}n2oC_&tbi@SVLy~=#p@j+Q}}^lQQSj0ke&VNGM>Q3YOVRyQnz;JuG0ZB)!+1pwm7nOjHP} zH-bucJIDuPA{tY-yGdbArdk;Nd>ISt?SC3@WrGwU2h44GF2X9n8fX3#A}vo3GkK9r zGcvdcrX$2Nf}me772vLOt#TV_%ya=+wemIuZx1`jP1aDfMI{c&+ToN4#V*+=stTq&HfvRb>x&9EPb-6TE=+( z^w9Mvy*~$+VpE0#cVmxmaEF#i2_A87;S^Dzlc{RS2mvUHe zY{4<(6p#sx_EN)1VSAY14@7@QzklN&%TG6|5-_o4zH(;lzWoT|&4q~nsGLD&w5RgcIoI|ljoTg!e(_;M6^(^F@9_=A4MkqFz8GPa2 zYU>mtE{3WzxzO1U?(s(ki?%}oJy=vMhnQNFY)LMr;0(3C^e)F_@H*s65k=3z+{i zi7L-f9iQX4-vq`?h2fAWmZoTwOvm%qjDXG(F|A7LELWiZb+OYJsIt^k;hc+d|C;nQ zOk|@Whg%`p$%qwDp$N$wmR7iE^=N(-)fVu;26zg?P1n!Q zE0)v7B>dC^o(Al78F0jhz=7Y>TX>z#$_%NRUpz6iiJm(-oSj!%W zTqf;Yyw6(L=#gO3mqa9eK#`KL-oN7bt-Fg!pWid?A9$k~~2 zK)*~*3>RWYjk{DUwB?BVrDF@ovx9^NP);^-|FKQ7!Ao+t|5oC-GAJ`mFXSdAS;E8; zre%B6$O&5R=o4AH@fZ#V*s@W}y&U1vU0J$uZf4Xj`BJ9>=;FR_gq|k?hrxj~ZumZ__%nwp*=U*+ z%U@oV`0#;O6zBZJ>M#5mLE-i(K!>bOX7{_9=Bm=O*>JP1?q`n$?-8>Y#?#LR?V-;X zt{#Yk58z?jpoz zWF42<=LYseC(}!i~sN zhphD)T4PUL2b)@C4pUa9SaP^%?s0jpmM%3IiiKe0rvTZxSm&dM@FQhWo_iVJOn?1N z32J&jJ_V`my-#L08DC9Lf_m#l#Bk|o8`c8iKADwUEC3qxt_miFpDlRs@(cR{1 zrp;g2Yoy`leTB*4e`7scJ7+_$#byCu-zZ{dWmBl28RPJI(`2x^-3Q0%0x*DKa0cx) zx!rS%TX}1#o3vpykPcVp$igOR0gIB8HdOmDGnWaO9I3XB@!++HRZ&`5m!poHo;YY> zGiYev3NWH0T-qqI9hnslchqQ@p3^F%j9kFois6*nK*qZpUG6C$i~hA_iq6-?_}XD* z1uO@J3xV5vbD|6Me?l z*(;<*rc)yE-x}?{_QDR*rrDnDvdYWrtjHHOs_m zCIdR`V#ua*)AR?ZbA;(*paF#kbG@g+ov>I#LD#$nlaP^{m?>7-uHq+pTnd^G(iqpA zkllPQ%=QgxWvVMIRdCI=cX_v`>8?Mekn*c_$r3Pdl6@^s!|Dovu z$Z=E`1;WRTX>qH4gF_-5mFse-6d0+WWR&jN>peO!QxmTi_vYDmWI{$?oRa}*GJ01u zW#n&I0LmYKXJn3@Eyyt8f8NY}8IW0=!qe|Ov$uCd-3syM?=f;c`2DG}-@TuC6;fPL zl2M!n_9aQv<&mdPy6>uaLJlwsd=8bWuVcv(Pt>`Yu@f0rQ`D6FN-{**~VE)v8q8L~{Y zyKxx`r7xpuu-Npd{pN>0r;kiU5Ard+cQu53+63%=`7`C$l!sTX^s2kg3SBr?TAF71 z2s#s7dYdVmzF;xw@9bfxdpK44Ou18a+ebV*0&>d6$oHdUm#`&^=NGs`aXCdioX@|&fRCq4X8A(Dz1`8SHO9u;=cD{I^zCddl5zQL@FGiUXk-0eI0@M7!kd9K zdbqz({b2>42KhT<4xddL3VisG^i#K3-rq&KL0btvzBG=K>6Dc}HxFS<7i11pIdU6&P`RIWpVqE4spMy#^YRzLQOS)e`u_mU9{h(c*!EQNo? z`23=K)WFYwIXRI*HG+j-M=uW2dJk!MYBA zjRdG7`-b~^uN;KO#^FeLM(IOaY}Bo6iVKh)XN8ccn%zVn_NE&V40bBkGg621e{>ki z4ZYIUqOT#$sUu)>JLCKt1jE;mk?p~HuQ_e_Syjw8$`4~qx$4e#2&0<*rB1e|vJqTD zKI~YZc-(RA6q(#42)>%+q`#{J1`-OAf6bc~>3%GT3I3E`ISb0x@EE=X5j8f}i+f-H zU5&cBzA;g=UV-8YtLaO1TcNvajda||P|SwsI01{7nG5Bs%HK_I6_6uLEZYO#e~%iv zAGCZ~fMd{i;qQ;^)^$_?Gs-3#JaiHk;jPw-ZT$6H&gKFrORgYygmVo9N?V1Wo6o~y zitRQ4vwVl|De$DDg)qTRr>6d>dB(4kDY?}>hjR3acD9*BlpYh2BN!6IQslv5Qeg!T z(uJ(klX4|(b1y;14h9)s*9E@?{mziVFF$oWSw1&zDfjpX>E@KZ+j&OgHE>7d2+ZQ~ zD0+a8wrI=n;hWdr4o41><|wVo4sk7ldK+ER3c$Plx{X2V51uq^xv6)tI+copbj_NI zoZfctBCAyxKS#*cB*RA@DvlZ}c~86zScqaBd(l<1DY@5+fVyC_Re9&B^GwS8nfdC> z2=2xI(w*X$(Z9hC&o5DOkX*}iDFf$tc#uQfMu7K(jc3Ulz}x;IFu z$w_nDljDu{&D}r6#{2{n*4}gomQeV;$xN>j1WUfIPy8o7e}}%miJL1(yb`gOO zeEfXb$WV*Tuc|<2>c%Wa-L8CU*d%S9_>m%+z|;$`idh1w&mMaqYF8SCI~)pc3CaE2 zGEZRl#59GQ(CaB>H(z6wiVV-u0TJ{ps9W9tCV$6y_NqR;YC7%nyzt>vr&0(-r?PM< zW`3^TL+CVvhFe5`WR}+Z^5vBQ#M)*neDq~GoLxM@UudOpCpnfU-2pinJEJ3|o~tdr zCjjtpnZoFCTAd+`T;4KRL@-r{e;t+BiLGOF-HWfT;-1RM9i7YxnA%k=)jXK{yjJfu zoF&xZIDg$9LMgPiit?y_3{4}?e9ofUWo6JEaI$sjK&TzFM5c`0&9jpI*Yt(#W$!jV zI(ijT&KA6tc>L;mRTn*@DsP$K-&ol@PuSHJ@?Hk-0&-?;4khLwAqnn!kl*mLxc1zI zg)~yVwf5EZy($(>oz}cA&Zj4Th5b@P8nCQqP8EPkqrWGc^1J!moZzjBOwAS_`ptWt zh?lg{MQ(;ks()+PW`z|0ZM=7>F-xFa(}$Hg@Ho~p7Af5e*cW!$FFPp5gP}BbN>}H2aCgSKJFEow=YOuC{&J|UJFj;~Y&csw0{9z9JXtWB~=rz*6zuiiIO% ziG)s+9(!9ob&larT=jEAjqN{Num)C_WyBCjxkzF-fO!;v=E*$m_(Lz+M*i+qeYzhM zC}eVszS0G`;4OsN=OY(i(+?2dRxcnD3cEO*naV6kuDqttBmGL!vUfhuhdyoyqy&cT z??d1|0r56KGQ?7YUEt2xGtLg5T?jl0D*DIj*@GqQv(aIfz^Azlc?z{c z*w+*mHvLpt8qlG-sX5RDV8~BUNa?lGx27lwph*lwhxzUy>DTO43jfyfC*1bkv@=KxQq3sYEqo9fO6{^foGZAxeq$(f z4=2P5ntkE_=}RJV8JFpxK>`3Bi^#HY+A)o9-1u`T+~*38i$=*yT?D%Dq0-gIfbGFU zfA;4Fqpe24Ls;W+gFh&#mm2i{$kejBET{126P>{auCtQo5Q>6y^{NH=LY4e4f_FLK zsBSv9Cw+k=TY=iYQKth~ppg@}MVJLKHS2gHPJZUGU}T{GB_O#K>Cxe~UTHnalFtNx z!U6vD)U-#fwiM%xP{{ne@AJIn8!qfR)(Xs*;juRoR`h74nHE5RR)ldoWz7f>S{jCP zj~_3H8aF>#mNV&v>SD3-$XOo(@HNb-h*>igB4M^?rWHD+-ws342P-rm0bZ=Q}wJ39K{ekgG z^G~JkegOG+COaOTF7NwD&F`Fkp*2WP1#X_VK^@=O?M_}TPh8bG<;nA^-$3F>c|ePC zqVIsErf}=S2nH03(TOsA|6xEbNg|{=wexAp17r25E9J-^;hLBpUW~`+*H$G2V^5hw(Yq@1{p0NP|uuJ+!!Q+9IJ0J zn`tV-l%{F!isB!XUmIDFz4^ci3`lmg-qENv;gsJk>?Gzv&0?ah7_PqLYC%Ca6D8C4 z;u=BdswSq8pJ9kb%989pQ#3CXFa^CT6|mo^%2-%>ZP1#_QEP$)Zg8Y0?xEmT+h2FL zf&7^HQvs@N!HdyFB1|V@Mw|fmDc?Dcj6rrS1WJJh1kEH(&Orcl%==9pdlt2EqXuJs zZyZRdspm{Tw(R6%9zUMN!=t?=4lns^q}LhRLXXjgC_6`}!Z?csN>5+yv#L$x z9`^m<#R<=V%XGkD7QJZ=*7yx@waAjvm2Q```#8s>!tr7-XidmKjQlH{KJE-tk7Zv1 z5n>gR@Q}bBFpDaBOW9At&30;eNFP*^CH*ONv3*Q!9@;&0C>4nGzn#j{q<3h1U9-Zq z^6< z@HV8Z)Wp#Ye8(WR95_(0lSd{@&PM6I9_!bmsoGNGBH#ERH6HcP#BgR8AdCfh^l45; zPYmSEZD8P35EJ{dS?vIDKwn*Ao2H?|`|)N=EB(|e{xZr_K}lQL#wfwd*9Q@&D#-WR z?8zIGSvW3T$aS>VG^)W#O}pSYUV2vxEo{nYg8?WC{KcF1>!#MwpaLDPyK%wl+#BG| zkPv}n_i~U-`!6%#9awbD(R+nljBll0s3Gk`XQ$i~b$#mvXJ`SfZ23=fK?&3x{lC|l zE?GNcFo=}zjO6T6YwxMYse{PNW4-PhZCZ&zHEtIE23-ZaLzJO4*`_M}=N$QzUqv{{ z87$*}CzQe~y?L(udA_8F+gW$kuZ52_1zYFqi;u@kQVf>H7nE6u1~6oGpsU2n#X|tc zRL=w$wrCUPijbzh(aZ&^g65t>5v-m1pvcIOCWkTmTu{%@Y)k$0b=|`~ts5;ts^YV> zQxhmad_@mE@)7@>BN~FxWl%G(?d4z(nItYcw-+%d^YuAOJwwyb#~9$gE6hYZGbOE; z+d_ND`@TWjVsSZZ0tt%&DCDv&g$MFLQN$=V}e4ro9I-mzP7|fLe_DN0CC6 zisuOZS{q%~JENL&lJ5D3wOb+-r)8FYZZ@Yuem{TXUI~gd(4vpp)A}988Ljc#t#xLI zzb`i#^%(h0qkX}czt)b^iIj+^>GjJ?(R#Rl%?&r4JYZgtMw6HNnuDdI_G@n$B#*8a zLaPr=w6xwv2@usxyxX#4*x*^=g&auP={T2S=k!2rzrvplDXB-0SdrqmWJb%!?sAC#p(gih$ zKdgD{rV8y?(chcVR)qEs7*-=kj(_;3q%mQV)8sv5H>g?*yfT|Q`P-Li^_;ujfp633 zHQp|fvJ-91;OQ8uMa}nnIPxKO-?*{H#NE1e!Ae=pwpR6DX=pMBTEdt?v2UQGUR5K} z==Tv1zkt;ytbP=#FE#P8I4s{gGHR4Zt_T!o5q31Lkg~8o*#*haLBX{aOr@C1FNz=B zE~28f;e%I43q>(Z%r~Zsl>ghdrgd}uWfwsxA)P6s63B8=j;s;Z zm*p)O3Zm+B-;q?xz4?{fYl?Hu#S$Ta1IS=MYOb@WfLu1TBA6E;hq{w*_gX^VG#XYS z!jaMj^CyK)qs%ys%nSL8s#|uqhXET_0Yzni|Ip<3l++^4aV6N&atrU{D~nhJ2}UI1 z!a$*x7d^0K&pKy=3t_u^if0>jBHDKq06H@o}>_5;q9&+~;sQgybZ2lyDuswJ6!Ff$y)#!y{`5-fZPG+gW>M0sDNMA+iL6@XG)k;8Bl~;<xoXyp1)IiuZiKLn@bYfR~npmg5FLsuhs+4oPXibpduB)flQwK=fU9x0@62%KUg_~M@ zo{+wj%u)Vv;H`31TtiP!9nywM!bo}?#3*lat*izeH*(ZEYH~cPi1+yb`PCL_w)WY!uOnkF#bd5Abq~@V@Rygad`7F|h&7c|)4J zMGJIrZ)4ML>7(D)DP0F1Jn7{Y7x-RuSe5&K#UuL&z-(Y&xcsm-hlL%UY)92b|X@^Y_D<3=>&23^^|nr%R)zBu&HLziE8!`|gz z_~$a7?^}Lv|9rzY;XekK!uKDnPV-!S%s%e_evRu-;lL=FNno^r< z3Koj#rRGB~)^OGSx(FS7n2#aTH-}YslS@ZdA^y}lj$ZjL{*8LJ6O}nx%7*qT^wjS> z$+Vaj-C>uD|9bM%9JApR--1^dqjfQUr$OaZFAQ&h9w$=A7Q(#d5jO2>410Zqu+dP* z%5E={;q<)tE|hnO4uoOp3Qp1i8uO!DDn!KKw``h7DKD>(amv$^8n2+?Z#B-4R$oaC z7}tECJ2!`MgA3Tsro3=&m7lnV?wDPlaX8?~sE=XKO-cs7+%kKE=(pMizWTf30$b8U zGPg{9D##cv&g;}p5hy1p9omMA1Oe+ZZal=}<^rLT;Aj#x9ho6y&bMd7YzA)SrZ-~U zmIs;oQZL-BJ?7j+)(y^B7<(JT&P#GHZ>2BN`wYLT&53y1Ovp0%_}jJwY!T^R(gK8} z)Rw9N@?eczY5!0b7E5BRjsJb%fQiX25Noa?}v~qIeM;HvU zabi$!8$orbd!OT>1rI%B`|E|AmK=?Xhz>eLzja(k?`z^j zgu+B6gEb*_qj$mi<14c~9c;sMkv(mlZ@!Kl22bffKZS>EzPw@iJuN>T{atqJuayr_ zS^eIBhtmK5)5`DWwgQ5BhvAVy18Lw0#j% zKlk?#&ziC||K2N&xcMvE<-JS(jfHO-#n*6c{@K`gVZl0#=US51#16xu^YD1Bf9AwYl z?n$o8rLQ@K+wyasJK|Kc?FKx^%veBcK0UYbB@Axhs@nO`e+$ec{0<28$8(KEbuWzO)1@m8-ZP;&b?i{L*)5AKZE>%8eEG4q zKs9@=M%jP2M&rzEjmt?}dfFDIHryu-LY)*5nPA##8U#rtvH-boqbWD}Za{dT0L6h+oe8*?g2m`AizjxkC*wAerv| z@e9|GTq*l#{ES}Spyl|64s$JZtQ8Gfl8h264K*v+;z78MateFTzW~KBIU)^Kfj zr{VqM&S>=GQcCgo!Znl(ha&!k<9yWyr=5CRO$^4OICs#Mt89(q_%U*MZr>A}wJoIX z4P0#D|9FjNq70*VTD`WkQG6|zzrTOwo%Ox#kCMa=alIS-&u3n^rmV#B*Ls8P<{u_sK{lA3GSMoDj8TfN_6q(B1G7i9u6X}!oEIoY@WX=a-2PT|- z)q-xZoybz>LI;cd{;3fdTX6K>-S_Xz5y^nOr=Wx!ME$-NbQs(l3ab82XnyvGQYrB9 zR*f_)&mBuik`bw(nOy(0=^%{1wIe+q%WOquk9Fy zE-b11U%1N5{vCpS@n$P?+9}b>mJw9*m0`$;MTFW6wNO34>zLYttoc(2oO% zTH5m5y!1YRJT1bamGUFc6VWN-+XBo8@SN6b2nwz-o2^HUFhsv!p>F--KYra>8mePd z_x8#GllUNXvoH^8qz3cl?{?;RWuHk3A$w;KnqQ14s3}qz9js5|!#lzEy)f(pLwJj$ z|2?UJoeERIKa(<0)4}4RcGhtm;@@HLchE{-F0w?mtAndlL{mG~WT>Up5)4WQrhfm_ zg(lj-%f72(patZ#kazF?r`(2nr=F4~86sddnWLD(i_}6GG}~mQM}~-Br7m!@71m!& z3|LZX!4ix%C3P2~)rAHJF|p1cnPd1uv2I}dMq#FfE6yoD9)=PB^5UoeDI8yp|IXW6 zl?d|!*7@MCL4d2=ZEFS6+jV4Qb-E>r$KMd_n>+bz9LbFTIP-W=lD@a!W z^3*+ke6er(%o)#k_RQx9t*1G7ALGG%w@<`9m}i5HXov>%?YC@t20b02$id-a4(%0a z+^xk~sC)$fbM(k%10fUrI4m6vV+XDCHhTwLJepL9Ty#CBd`+*zbfEEJbVr9vXPedJ zL*P=;EUWh~KGQf`n>&1V*bW5Gyqz~F2SKDm0vBoxo^FJ}Pr^t?JO*QIp?f>!hn>(q z#S&ur1vVS;{2(sGu+ftixuBkuR6>!QQ)vXjveIleWG$D_r~f#$Xkv_lB%6`Zs|ZfH zp>ws)=99fF0henHKNT6OXbKRhzKuWp-HD8T`Nx`(F~1Yu84*DEOW--9ExDef8Ny~ zlC=FOr$-ou10ov~iWUi=4ONIZCbhuW0S{)6c^=LLTI9-=XM0m8oq2d*P(TD{;s~@k zt&qSRrXIXKos)+$Dmk3($x+l4>?}d+#*3hj$bcbnHsfZfPX)DoBDZVNbS4Oa=wNII z{@joar?F^PfxrLiR3T)oe3rW;gYIq2@?(K8L>~m=o0LNs^t^FBX}Sq)+owS~g&;0& zhgN@O9?|^%z9KO6P%Xt5v28&r1!zLv(aoIdaOJ%ZWrc{k7#)B;8cjy~6@6UII*ZQwNYdPy)h48-T?6b@BJbRzfiQKpl%cSd<25ARG0mP(u`#RBVZ$G0VQ7^UK z-GGvA(jfvD4%MP-2t3lpZl+Q1%i8z7d}xZM-oqsLu2l-k(1Xwo4eB7@qwKx^t)U(i zAmpKnPMEmdV`vS7@^*G@+CGUV!B0g;Pj3k9KGTk8;&0mIQOY{kKN(NxKE@l^oOD29Y-kB_Cn-3+8dkY!FPFFf4*-I4*Gz-RDk1XG(*EBUTkRiO#kUy6`O z7xcyWDqX=@eyQ}`PFIKH^;}Q5XCBQ}na#?x?9u+c4FSeS@B%~pK-NS)FM}v}JDj;L zD~CNupH8AjxtGg%umnJI1&iC249%;S8K7wNn9U!thnW-`?ZB-#-BMzYS%g^V`VQHE z6eZW7H&np0MVSxKlqLm^pnf?uZ|hg)5B@0YbeV!_r0 zt~G(;Ww8%T0x6Iq59R)Wjy^I^Wax*C=^giDk zbAudVghYk~WLScKE(W2(9#aLxl?ZWDvWA#+blcnuc_J? z%oR1H8bxFnjMzbajED!W5Yu(FL0tq>9Ze}%LBqjSh;858(p=- zAVRdIM^nLGj+~!u_JBbx9;~9#&RA>#+puvjOASq?CNOR&c{)!|u%R=u6S~r|r|#v$ zS}5bX^;ms#0H1vw!2HcFTI}(E3a9~)j&w30B1LUWRxnB*-Gy-Y5*|gbH!vp^Bn5%q z2DSqpSNjEvP+o{g^f~j^zzmp4OVE|eItBWYV$zIN(u2>ShoN@+fJm6(8ei&t9vmyy z2d;3jLl?wUz-<5x!x_jG1A?E`Li!1#y5tA{Fa8+vAIL2^2MHDmrm%u;-$tLX^IV$# zX7M>2BLZAX4!7?NyAS2Z>YcPvhxWC}mTX8UgXO41m)zH8Jz2~k7qCfS`;}ZnhC0v$ zV3@dh8>yC*%-?>pMxSlMwE^Sz6TOJt42aqHFXv2{&WBzWr8*Lm*WWYW>V)KOdU7Y= z3Pk?vBI7RRWpDoQh9pkOF$&FBL9M@`x_0dg3r$LnLPN94p9b$qvx*5{YD~DeF@9?n za|@sS&VFm$1Qk*RzAow^D-YzdhF2?@beZN{Ts4eQjq((NE;cv%k)x<7jfRc|V*%o) zET~;gA*K3#2_D+kkQ3l>4*IZAmR6{Tm2^ep{C6v^B8Z@7S~0q>8?+kJ&nc$BO*kFI zT9g}tOam@&sekB1o03Q@L%XRY3J|U8A_&EA=>;?v5vDDS{*s7H0MRRnSO(}3%81=- zaA@o{s}Z_t|>`9{&hAeXX+TF?nvv1rh;Gx2H~O6$j4f5 zK4W8pt1377+ge7nPWM=&&qi9A$XU>=plN^okG7mQSdtHOiU#nr{V)r*I6fSAh_}1{B^40#nU#Etw;9`s@^Wz+1a)U$6JIna^Hw zJQv1F;_PDO577wIhr{4TfqQN+_Ju#KXl`%~7R_vtTlyFoDI(`>qX}r13h1`b!}BW* z(QbSDy3jRGpUE5(iV}oQ`$B6A2z6-8l=UuW6D zV3pAfToY|<;s;(E=wL8~9zwYG3Ed;X%14(c6n=RNXR?y-rJ`lK-0exQ@-gLNPOt2e zawK1~i|{nK}FonaQS zAB{~v`POg5&5cM=C}AFt%`xUWE-$y)zX5a6c*_s31_ZLfU1jS(DD%kD&@3Ay!bMYI zMMj{nk0bP>uq;Z^plz8g&`-cEG)$7Q#--Y(qG-j?#q(CRG&HRN#HI#Aua;uAgxC?Ne+O#JkVj&)+i7$QNyM8skY^J%q|bn^ zClEZWIcLT!3YdIEt9+zLIp>!N`wbOPq>O&P%xg5v8SmcP7z#rIU!$>JXvAkS&9Uat z5suzLtZ={@&G*<1Gf|xN>By&{oZh1rBwU@=ywTi9mO&e|Zd-i@4Q)cDGnsOxMxuEd zm1KOiDpCj$fs;`Iw>Ff)MMhP)6mVfkm=!o~HdzSOXOp>ZIhp_i%i*ZZf?UjHcOL;( z1YP77ISW62jJo9g>jww}K(ky|y%2*$8O;?zV<<8b*JAuuebteFjV{{I1{*H2XlgG8L$vws%S%{6#wqb#WYq2HJo+qcDOMtxr29)Xgh|GL`~oFaNmY za*V3-kEH?X(g5MpT}Vix$P6?~D_7na+GGWY!yr(Li7+H{t8JkNC=YEN)4? z2EuXBHCbP;*2n_U(&#O9aWDosk>q1Tb342EzE9fWv4n=LO1Q4{duT_H6cRguYJnpm zf>NS2g@`)osGj4!XqW)f-)-=!L74&)iq@EdHsW%f23hPWG|R7CIgxy8Ym0opxNFzl|A1nWQ4CJL(TbDLm*#M>TNW* z1fFpR>V9QKqH+P6RRa*H2tC^|x$=g}Xq*EQPoi=S&2L15Zclrs!eguw^0q?5Qf?C~ z?y9I*_@au{2?vFne9DFH)X7Fvl7Pqq4M0G>N~p%I0R17IVhxx2-K*gD{bLS5IE1LA z%SG7~LO9}60J ze_PMUkRQ(Fd-+sQLGt^Uv8TGu_qv?Vlc0`;1Wdt|9Jp~$dO!5uBHWDzjl8#WsfIBV z(WvYM5umm|)?oPgy=+!zoo_fR4?%+0%iW-kK@$<>SScW-g4s??0UzoTOy6dqDVh*_ zs=|Z|miC#5(iHFt)sl61T>DZk#ZyCoo1w3gYnM7)&PPxdN=DqX+m4nAZko-2c`q~o zV{Y5Rk$3H%So7yzUpP57)Et)(>L8?U+}v2fGjL4;HGa^{Hw$uB=h-Zk!K)wFPaf-F z=gDc=5Vzqf-ZXOiYl;Cve6hGwMd|O|O{bz#DAtC{n1MNUrXgiFs~~aj$ZxW)cRvIG zE_&x%m;YbJ4E_F#0Yvoo|IO8*i$Q7hGygx$mHq!ZoR+PEV+kf+#`cD=1r9q#nm_H@ z&;REo)n$jaZw-pfUKM{%a?e=$vD5~WY0?3beN%X%VOC@HrvoQ!Y7C`Xx73I}*mq+h z{aJwU(}1Op8&5^tsNTQSF{D_9SIsq<9xI%*u>o2_IwGc%s>v4715 z>vKoT!gVQCS~=36Dl!v!yPRtz)E*zr9abV2_C6u!LO1H=3}*J|OZ}|9$ATl)7O9-t zsODpHlK+5@Nmn;6mIL)1SwB&x5Qtn6w&l0r*NlCAQarOl}6RnNlRg$+>^mItM<n$2kq|C$GL{|WZz?()lQH8=F2i7nr=1al>VYWYo_0IRCHE5du0 ztD$^bg=PSWU2I>zq=QhAbL&=I6;AtPd=9i}bUbmj@oMdorC+x%Z!_R44E@u__GO5{ z0yR`&y>ih+CXDcNwh{gO^!s@(3I_6Cm>1`r&aB& z=)3(ew(Da?{i)&|=Zf;SKT#^$FZ!}2`k85tAFXyUw0QiFIff8h!8Z8WHpufw6}}H` zf|qQ$Q68$ffGfFQRNh4*K6U(sy7AZK&g}K3@D`Quj0H18~ z!4F!BQav5)v8Qg- zws^hif=-6HE_uo{5oSzEv1RFncqWZY>7Ikp7%kCwDy0wmF|jdw`5F<;m8b3CJQa(b ze>4tl!$WQb!wcVUzJp(wj{BgeD3oQ-J`{LQr<5SjywlstieGWKQnv4N{dt8nU3d>` z3ooLjBGJZCgV6O_n$bZS6kDj45bcQrJ6*WJDqU9`u`VJ>B%(G7Jq8%G*_%0hup>9O z%)I%fKo0}H0n=8}%FYaSfeei}w79IndiJ^f4zH@1J zRBDM3ug^tKU|=A_jtnJ6gc_ zeft^_9O-(fU0x+#%>U}_-u^RNG^g+M(r%?i3m{`_+CuFa_<)Qr4-Ocuq0VO?EOd;6 z(VJ`DEcbcj=Fqv;DUr~VPBz*=m7kwNZ+Bs}?AHVDH8@U#o~W$0{29U^b)+$iR?9F7 zm-yUL@1paHF2PucsR%MwPELYcStDnd1b z0j)MG9B!(rt=o9d+WyKOUf4}R7|9dX^hH$9%KCL@ut;$<(~$YGVWY9M+#UZXIkGYq zJvH|G5rV9>6DkGsM#(VJ{9eh;s_Jx)8OXqFxKRXpgY zM6Xv93WD3D4hjngt1L`SjrgnZ$H&Lt4-E}e-h5VK zW4dWt?ffLGVW0(KUAsefGb!4(wmQOeWaP#Rvrk`eT>^q0L%$&}Yvv`6emN;0Tc5>R z4i2iYFcsNY`3B=TXHo`QgmQk}Crl+3u#ASEk~sn3H=+JVWXD%(X>(X&&a>S`ZJmRI zO>sePyHw$tDG2s>r4)~`AiQxRczh*!bcyk7kr;L^>Dx_}W@CLXLIy^T3rjyr)8Olc z!1KP>=%cXgqtIrlU)G2OZPKGWZMuBb$>lPkfT!mSgKK?4ke(QpfBNQ8hZ=Fg;5`NO`Wk(J3Ac+9;chKbrUf`GdP6_BQpGQ>Q7zg_FL9z8>U^m1*n~{P4n- z*ah_Y@bl|-#o!K++dWt{R`qY}z$^pT1f$3czq&=(Pv)w=rJ+M}n(2oy5-FIyKqNSh zU7s{9S~*i1N_09*&M@wnoaY&XL(uT{9eOJAGO9+woa?6jX8L6J>DXOlZ`;H3Pw>q0 z<_}I63@lvwf5v>qF2sp{cRHB0+&_g3oqwEWufZ4N^CkDfpHr?+;O&W%3^(M@(8+gz zy*@&{cKCtM-KpNHRLzyY4yWo?MXU4ia*5hX9SnnS51ws5Z&}e)G~-yFUlnb1uj!}* zJh1_G7OoXnU-{(N5x^Zr@ywWBN{lq*In|S5W1|J-k6?1!O8Hd70@=MXx?MJ04@b?* zX0))r<9~*5d?^hA9^6f(olp}tmL(J)#GcNy&T^e-ZyVpcTZ7MS`^!A1&@v60XtsTP zkop>dw&&zIF09bMUJ{gYA<8pX6leNgaC1A%F)J$kRp!3z78MODEG&#u zH&v;Bq31)Mx@J(!8%l9>OS<+3IXy@tGoz{GQ^o4pkb2CDVP)WCb-<*M_kF(!-H!0d z+Ak~&503xU=W>H$dbVd-=57V%C!R6E*)$xf+%#mt|6FrT)!=3nKHYoj#waPaopF6l zFZ9TfJy`xkZ`y}*?_Mi-4Ly=o33-QAg@&@-88FW_WvTQXmbo z?4X0sH2Iv~Af3ji^ko~0TL+?(QeK@zXC)gaPJqV&tJAzx)EhH3rYz*xu3OZ`ZPxMp zTV`^Xuh`Y~Na1YJbfYabgd{d)u6T8j72ebR?WDbODIR^Bg=RC*Mi!R;Gr4hPpLc%4f=zo9vDwsneJ zOsy9lH-O~I$!GG#U8yc!9+!cvrI>pL9DIk}8(KVf8QoPWVODuBPW@}J^Ygx5vW+lk z&Gu0a~N`f~kg?7Z>bqQqbwa#xYk24pU>WbS!4<=iT7$;^-!7FPbqT3Wv&O+8Sqk?p1|+&SOD6<~Bz$skpy zSTyI;oRXiB?6dv-YD@h}Ipyj>9UYx@C;_3N&1;DN>OWL#?{1VZ3F%P(d_NeR`$3{( zP0eZ8clH<|AH_VgA^p7kf&)F(g>vW*)D^+LGc(-~!H0xy(i?y4_=0kjNrvGgiAS>F zLHg#ez3qd1i663u{;7x!gQgVktP9v&2x3QAcZMj*`o-$aQjEAw%;8>(**1H|eMWge zhR_|$P{YPO)&1m9I(~&m)xgrZ7TEl{@!=Nd>eGc*&2az>b~qh zstFVI2~0Mwt5fz_#gY>$!k8aQ^S*;MOG7N8J2ml%~>)y&I3MOhVGM6}cNPiuuTimQF5h^GSit2Db=pTwJ7tT>d&^ozQwl@emm z*;e!J=-DlJVKX$DX$+ROKsiV!!#N5go(onG7lf*@q3!S=M&1%if9hvt>@=-(urPQn z$+oX9;BAhtOKNR^TPR&y3;K-7+Ed(q^U(-(C}D2`@^_yxQL+D9BgDnx7ZKY8q#z)# z;y<_f@~-I3s19k&?CnH}w6w+h>(dU^w`1t1WO8i4p+5BK3UJR|Ne#yIu0dHN@|~_Y zy3&R%?Q-tNdXYoa9(0#Sxti(-fDxwSr6*7tv>j_+yM994ZX#>qt&Z;rK9+#&cH8#C zvCh$>+Rj&e!+phZyyGW4)sI(>yvvCXS{}0Lk%Lk37jN2x9u?%bTm3E8912$SJW@E- z0*FXoW1^ndGsg0U+Pb-h(AO88?vW|pWRPnYBxT)H%3ffw z%X?}f9*Thu5PdoJq~ub_FIekrw(Ftj^J16R_JrEJ-N@AG?FD+qwI?baXyiuNWN^2m zqmHZ!2V;ZjGl8c5cVk+5T%;b`eh~u0=HjS|d?6Dyzs{+*0tF zb(LfYdn-LW^PyJI!@8m^sdB6=%{LV&8T~kyL26YdW94}K|!7MCPPYLGt2Ez?EP(H1n;QP3KpDjhy9$yLtP_xz4ZO4(MG--f($xgSg6oxg9berI!m8V5@ zI1fh)844KZ_w>Z&#*6_(3`#v9!0BB6DJK>Id4^yQyGNywcf*HMF7{8JjCY_q1 zRV=2HC-#_3F&Bl1@p$~nP$ncDqVh}32Vc6wQPSiSKR;C=-E53Wl`1r;^JB6ytifsC>1g zjioMJ0#F8Wn%xThjOSFSo+_@ZneQqR70C2rK18`l8RSI@2$7)AWPiDtxbQ$)(CO^? zau1<}Qk8@tq4~xR+tjF&wjdQO5T&)p=YHtLN-4&pk)I$1g zNrS<4l!0)8)nP6Pu|7*1%2)a*5E{KXesOMURx~&bvS*qLWDFr-2MNqMlyItub-xJzgmia=7HEBO$UqdE@hQ^dV^#H-t}I2(5%t9x@dXd;)dEN5Xvc z67ofyAQQS26LoSC$#mu6#cla#4-Aap*Z2X_TIRbjLO%D-0pU5ziZvN0-72SET&U(l zfWwqZYO$jARcp$;N(huuCs*Fw@#@)2`#@7)Z07DkA44}ve+Fbj8^KouS^zPwSw5(x z%(|Ws^DPBdpb?v!&X%RwsdJqI>@oY-#tjqVS}UI*l*_ty-X`f%{<4s2twH55WBv6@ z)sGD`=WDaCFC|fp0sduH(|jvsb8`~*+D#3#(v1iZ)T+ZgoJg_&IMA`f_ns2k#Mb_xpvj8eXp zwkt=Ug-Wg>=mxMNbU%S@`f)%hlgd9KED?Zhw2GvP=M4VH(st&kq#0?WW@CM zAQpo?K2b%>zZsHU(1VBoo&gaEZqh1Q=uzCeZ(2kQAWUr|Zd_$ZH)g^HI0n*@er1z7tquLA4wywL+8NAbDs9e6IZ>>6@To`m81U^VDjA3=H=;RIOz+R!?$^qMUu zkl;Enxh%2?x4?Im?ocVf6|ayzRyezWwq2S^MP~@$c$=)T&nW)|XU>7>JG-33ujmP& z(jRZ?W;i`@JU(Yv(NSA6a~gTaO7VSGF2e{&Mvwhvqz5eRHax7AlabG*`+nOnC4wVF zH;PAZR9qk&<~|K=?IpDCbvSPx?noyW;st_kmZ5;pMkoZ4A8~0uQGZ zGe+EB4Q@JNzwS3Ozs$bg~&k`ZYu4XSy;AnX`kt8@Tm5-EnR19(g4t4y^@L~p*T}m&KjN2{w$>|yv?b%Y*X6TBqJ-!8 zhY-m7FGmraY~cuhbdEt!bFJ*gg(7WSbnaX{Z)eS&3Fb_JlqQY}Xkh2PZ98)agGLrs z3r3zB)|=0Jxr}!tLP41w8miVk$k*oO3(5G4)C74NxrWhpAt-EUF2B~DqJam|sXf1L`(5~|~GG=}^Vgf7&L%d8UL?+f5EDv1S1f9@5c61*_Qv#=qhI{q##Mb^m#$D~|FYj9w zajrGdI31*T+__$=-`#k7b#igLF?e;O`hhIFl@0mxnX%lhru-!WZhL*u?r zsN;O_maH2p@&{&CGx)f<{RL$9{t~qLsq+cUJsl3l`~7!ghT_-sIjC0WIe8{ybHr}l z-4y98hq>qUk8kS!nSV)(@!}*6eZap7>w2mFzZp#Uj>=?DQP?ce zwZ!g~_4e-6yw57d{6#BpJ2{Kd{KH~QiUOe*?lY`=Y9si$;{|c7M{v|m>*;hH6q8N2 z2dbIid$7ItH!`xIrw+a2aaAxfA%n4?wMekrLIV(~G+R=cdXU(q=2ii4*on}I=+UG$ zq7VWbH~&SIpC`mY=IAhZxi?WM5Gu$LocfQOGbs?#?xaSl14L^X|GE)`Ss_;u;e3K% zGf7vuGUEZ*lecs-U`?r{McPZul~9B^3jC}+|3T(~Sih15py5E>+iV7$8Gu^vv5=dg zKqQMYGq%i8cCyW8E^7mo|#0$qNbp^sce5}?>rzF~okK5v`H$Og zhj0jhkiyFmmC)5a{i5;&MB*KmG_Ex*thZY5&n^ysu0d(G1g*9|1E7wL2h6WFbYoO& zr)3r$tIGSZ{)kM^X=*-tsGfk$T>;znQ1#+h9CaHcg)_Xlgy`@OGO>_gBRYOutS?KQ zWi&Ysc8nv)+QGsU+qSRe<_0Ln#;t>{3pkmQXD`F)S`}nlpPKE4M`j@sszK(=DO~%S ziqr^cX(_Mn_SBQYvJk_$t0>{){L@TjZ1MNmpqh6r8Ts3un)VkH2~)F+D~iZ{R7KlB_s5|D9C_Y~hZYuZtU5>4TQMRKh~lQPI@q z4eRAoB^ozYvGKyudF)qDoy+SbW@s;B)r~?qj+;q1^!K4@Sq9ah!>pT_l~jA)J9xEV zFnNK?yQ0WeF9#p^r|-1r-}8&y9FqI+>gg$uC+bR7OQ22?h+2 z%ibKB&KNTM&`-Qwim;v(VowCI9kU`6qfEi(qdgY=ERv z=eUCfRO<@nM&2ht*wFpSRWr z%!+;?5#9nJZ??biM=;)3L&p|5{B^RE)n1aq2|<0u-GT*!Id>0HZyXaOcj|*nh@R?* zOkl=oYl7D#KQ}kkB ziH(x5&ivCEdmKJi9)96=CwPOfRzj5x2G3L}j^INz4=EhM4s**Hmi4C(K!VGf`#ivN zsgxu>ca9`U-w)hiC&BNAt-J?Bo`(X(9)Fh+N&X^kj3pkloqMxnsU$IrowqQGmjb0v zC#tW7`gA_w-H;0^X5?=ZJwkv3lGnRjuRp%JG9eBPS6N-^La+3CT z^2Cw*#<{=BNi%NcZc}tcHLQf2MR5Ur*78jT0&HKg9Z!=Zk^2I)X7?r+cN?!1MY@r% zx7}$})^BQ#2G<<&&0`C$!q^Pr@Uba-o0m91xB!F_LpsX-7RQaLw!bSF>dO@I-A4&^?G9XY6){2{PYdZ7haW|xy zv7M_F_aU2TL6wJhNLcfzMqx+rSAn2uQcN9UTL$!q_g(jqEF^>*l&uxKx(PD5o36HJ zB#422$t?CEFecx>hHmZhk=dm@^Gb)j>WdWPTuZx%_`VZ-P)I~(L{Mu5^CobXG$gFZ zSW2x0MF$V$iKZoob|9o=qvG7>yJI|nlPAPL4Sr9eauSqt3Co&m3#RT!FSSQ?JhC}5 z;Vv9O{1!@ic9OxTF~FX*_$*e4m^UbX4(*qV z@L!6QdOf%h4&F|l348m1uQ}Dup{6$6?d07n)ZVSa7k;*kF__X1G*wuB+D#Ua67sxV zxZ5)Da~MB?#ii1-r88^zA4pR`AS&ZEF*G$Pz%}G}RRkby;g-qUI*HkyH2?}U{B#S2 z%~VwbAYu_jW9PzI>5m<|>J(*Yg^4{%ksOGb5bZWlZ1`xR9RzTsaVK!s{E+y#GEB$P zF9OAd9}AnzSHk`pv3w2!rg>zu;!97^mE|T4KR8^G5QJXKq?Rh3VxN5r=?fy|im);M z8sW?LZWCU}aX1`ks>bhRNNBRw);smgCFoVTezD2nRhy;u10`~zfFBA;cGcfSDMsKU z0PKN&tq9B-EU-Tc(jPa=ns6EFagI<13WOA+vGEuEOWvWdnPuSxc`GNyCdVcjmlC#C zMcuH5$kRd}_JaDP;kxHTWhs}?8=he{7YI9TBSn*246&LnWcSh*rf84Zic?R5^@Y_POqAM)W1*@ld^5=2Na^$?OV2xn(C=O*M}FX z=rEqYjQ)ojlSuLEs{%}>P#dBrvP4l?yH1HqF+bHw6j8`b$GwtSgprH z?OBtE=6zH2Av`nnmw|Aka~Qnkjw~NUkRRKgz6frm<7BA*9ls4+&KxKk*9r`Kdnb%T zqR8sFz3(~HX!xhHTh5rmZFd(nqNK(Qcy4JK|)$S`Ut1z?jivfv?yv~D^Z7AStEX?6iY70G-xn*Eg zc)4#lv>GV)&?!Sgle^YM1zwh9_lxf<&oMd_KS`Sm`8$qk{G-IVys)hz+g`WVOWWGI zp}D=|vpGvpi3Edsw@PyzGA9*Un}aISpxT2Y$^#JEwYjx$rRmt(Za%)IgdqQ*%@3vR z1k>BG%Xzp?@_}z9DYtpD@OTAid^%Fsp zR^0b&CO5tE@-`*srD(X7{6Lr3_01*iPxf{_{y@TN{w{7fe#Kjh3@D4dFlHzzP zcby8e_goAP)MyRm-pkimx)d!9Tz+{KY4~+dlrSoqBbpB~R(Q7e)_yn-cQ6ha|9}Ex zhU`Z{E5;G#rJsZB7osyMxbbX)+xtPVLw`oDNb^Bf``Zc=km-@8-o?mfG)@D+`F@&6 zPk!w$-m0w_u`zTiy(^|O*l^Ef3XOcprMj?!};0jE!( zL@oqbk|oV>`N_6X&dC7lXe&(EhCQ?d<8Hrhk-pkb3o$$hIR*hxyg-_Vq|&Fn;l@x> zIoOt!6P>dy&CMy6dYW+Anr=G?Z%q+VwK|C{n5_O)P2Y4d8uB(&3j0R`lk~bq4$)kJ zDoz^J)2%h9A$#SyRtLF`vvWkm5dX1iz>c%pF5<2~uM_p!C+fHHzT9UB1!M~3^esRv z+O{hi765ZB>J`2xvb8V)m=yY`viazTmFf-UD3=_V1OKTF6xcb!^`BC#HKfWjr^U;w z#cS?d9y7jMe%2JEKB`)a@i0{d1bM&=Z5uZ~Q6LjI0oJr;>769Ked>In{PH<9E)mPu z$`H>{dZf_9BOMjg_$bqMsCaB_zhV;+2>`crKneJwX2Mej7YqfzK~xM>XNU+A7Ur3A zb#3=-ofeh<*(crCvqVzIzf=P$oOzDfXunLg@bQV580MdA->Opr8S?=e38>u6{f8j4d&W?72nL-K)K_yH3*o`Cu=dIOd zYUx+~LAfOQhmAr^$dygktId0ZeIPH3cQLmCa$69A|9HqGmRL|1Zs1+oNM%gKsPVBK zCY4fZeLGoBq_>V>Uq}vX>2$J!|Gu;jgi>-cs?8A0#^Dn#eB$8-k)r2Ihu+$dFi!dW zrcU6%vbpf(x@}pYA9KU9Qt&tgeHc_*3hw8JOp3<|Tu&krthT3a8HS|#Hmb5v1&k!M zF!sR=C4vcI^5=*5@q*8Dmg2K+C|{ku`b6l@7`eqg#u!^HuFz%DI? zG%QOT>VylQZGk#Iuke#H2zrq=?Q6%yrkJ9kI2}@xArPX;QfI*ju9Q7y#^`j1GLKZ= zdi^;Eme{}xXiH8ZqxMZh6gbCW*+~u&i%P3%DDe=1mSBo>wAbEU_~qA7aZh1e!&9GR zXyJ%Sl_o*~X|Y;#U!5}_HW_yP7_2+0o+LCMYiouU+;k_NHQ)4A#K zi=76#{ZT(<-RwKC3G`%;%SkU=F9LdPWLMxu%AlqW0vB0^3Sw^gD&VowyjVTSSpEpN zWi~apjprQOfn|*-M>;$7=UXofB5#eR)4(1o_Ia3hj1P#a-hd^FXQ08>>h@tzu_62AE_UDju;OFlIk!~l zt1i8K~6IiDV+WWl$Vlv$I8ms>wq4AIc1mg-S8-qS4s=Jko-it7btQ0mk=ZVU-zz7Coyvn9aQq z6NJ!Fv|g~K-NHM7IL{PBnn!_$LnaEXVXu#>)kS6V?AM6TNi2#%tqxeEmO}L=O^wYc zOc?2fN4+bsrwzvr2!Kd(f{*d*n0Z5?NFUM;K<}mKkMQ*52E=L_js^N78lKRDRPC@V z+Ca6M}n|FXYX5b={ zFH9OLj`ezo)&_x)01n_W_SVA&tM4^}4g@;g5*$$a7)1>S0L>NwTD;9hy)Rk4&bs0cK(5xfmzTo-9ym9Xe9Fuv;K%AZg_AKnAfdFUAKW{x&k zaGC@s%>WA)rJTr7>Ugeq=u$-Ukm0O>?qdWBl4kp`r#6D$DL9Nnnljr+x>6Io4{&)e zExkZI@h5+4q6;o@Z!p>CaMik^a<%cOoQgq92>&x1_)I>&yjH(MyI2G>DUK+^5+CjF ziSFcqKY~kqx;|uS2iG(L)yL;E--}&i^b;#c zjQmSb1aYcd_}QVv%{oCDHVc6gW9nHZt#iCDBpSc+me_}jDW;3YIv_c*o2dap6+>D2 zJx5s#M5o~PVP?4&S6aZep8206IIy*Q!%qD^e~T3q5P(Rf@3iAU_&8;$yvGymtWlKyY30ewPfp_l})qa0o=9$vfeAM87@oDUc0 zgRm0!{`ul(;l-cS_)3`jSf1M#!8SRVuo078cB%bs+vvf-jPVYKZ4dt|B?m)`|C*hk(c{z+;%NYTIpF&bGBEhG zu!+4xn9^PhU^d>(U8@*h-t{0H7pHTXWbbV|3etl;t>XN49E{~(_d*WLf@ zS)&AIXz*XZ>fcrQ(*O7gjsN?JhW8$!{Il=>2a!8^j7E5IR1t+4hi|CrDc;DjXdvqU zbz*XS%5I_Bfty=`Rp9>u#~9{ltdSPt$MXZP25^FH`>D2j9JRtCafWIqMabm@v@E6T z{Ws^-n{xiKGiY!%L9Oy|x^#Ay&b;8cVe&50eYmS(o{cR&Nkiv5)XWvz=~1uaL^wm5 z-`e;tdAH>71F_YZNrgoZQ4-zg?Oy&)iRz)${{e#$7LNTK)flE-=&RZgzof)x@f47j ztW0Os&Fy*n(Kp7nDd^VkGT2qY;@xpZ=Whq_v)eBid9@$p3KUcLxq-3T*L`hMhK2Rr z0dXQfV<<_K6J?j$81KDOXDg4Ke4Rx3T{5xm4uE4wz#ch9vpfxr8u>~;`SCAS476lX zjMv`}jbVOz`6(^7SAp+g>ROC@i2O@tUA;o)oKalw(<4^@av@eYkmN2NPk=LGk7Y)O zr_Vn@&(yHtCk$gNmeR^&np=10Qjl-8;+Od{?&*iWze>5NdML>h)6(psS%A*Y*RRh? zeSX)tr!R9y@R}(q?VU*4_;E@jdC*bA#>2R{WrnDHLT?p-7?cx7>)f}k;H#oND_1F7 zayr7>uDG9@QKcSN4a|OdYp&N;5Dg&J`o@D+7ysb<1rv4ndkBVKbo>~Yl0kIfaobw= zf;xqySZym^Qr>`fJkxdjWC2XaR{1y<)%?QE#)jGz`-+<(elocU3ArnuzCoU?)C%KQ zyV&Bl)4V;nmlAn07Raue4A>7>xQ3xJjK!Btjpz!xs1d+GW(EL&E8)6}q zRoVs6U*`<@!>Yomj^d{<3*_J;6H?8DJ&~BY6EK$FlVmvaFOa`(=Qp+mSfwU0CjPE^>}kr=Q&ky(L2=&!CX0&z9WS$!KGZ{}dUq;T+Gi z=$T3=G}xiTslo1q1D*6B?zX052MagXryuD5;8$b_qwC)otfVEYzXph`MX#${%~^=M z-qg8tNf|d*B~R}rpWDk;eLxIf+8+OB__@d!TZnaI_shxmpY-!Cow+<1>oqNIYQP?( z`3WxHj$NZ#`$%K=ZHTw!gK0!=6n!83w&UOR_0ZT8w&l?yM+$SCZSTq!9PD=lk(l14 zy1(Q)q#ZwKk6hJYDS2u<062+`F4_&>{*M`Xm`Te)J)0{t`E#v}87V#nobE09VgtYo zkxbR zcVaiIYOVhUF&F$e2qawuB^182|{`uN~~k$ z>hSWt{jGry#Nalme}2b#;9nw~KEz-J+6HoWVE2~Tp`ZD`usFW=aR^m?++xzc4>0(R+gtMbg(U#5ai5B7~3k>}_&iqfo2nK1RPo+m2 zEDQ~_fXJ`^!4lW=kTLej6xts-vY1Og`=gok1)zs}J`E4Y$FUI`KWxMQm{7J@K$2uy zA88@)Ttmv@-GP;c^ymkSI=v3DRQ_puzV6Nw=YAMa^2?&L4UcLH8!^=2!dZ`g3?UgL zF4mzbfe6TiT(0&9XN~cj1OrDKGt`j%-H>OvG4jbkB~?c%iwwLTh}DZRa;ObS{7caI zLlAG-m28}GDKt&=+Y^m%!#L~z7nb}dEKG($b1|Ioh7iohOUst7xFE2!gqZqcdWesQ z#}DjL%rdZ6{BFu>OZx8phZyni6LWyJA6KY-tMtuzBk4PNy!{I9;kE*0p_Isku8{f7B-}Wsxu0ZY*iEoUsXQTg_ zD}j(T>FX*zBuT{}|5x$TmE76{^cEKnCbutqOd~OQethUCd^ZNO_6JinvVv0; zmE$^{m1Jr#pA#npeuFahW0tGB6TDStI_+4tT$-n;X0q`DOVzC3-(QVI=^ztRW9327 z5jt-A6aEz}0lZfLSjMqX#rafBOYx6;5-;(PD-ixzJ5k7&2Rnz;77oDl`-%PyyNq4W zjPD%^bDqY?o&H~{u^&Ee7LSOeW$fv0{pqgP8(Hr&9H8Ur0YnaqexVc`CW&?WbrzMK9JTv|(S(ZaxBM%Vp#hiZJtv9!0*CqkFrlY|2PZkGM@AD?WJ zZ(m=sOadyp#T)!tiAMkM`ig#*bWY*8qm9q-&A2Mi20jy5!T$21-pS0;nNM;5sORKy zAh<7zPkhix>Rhl_*~rZeM{J!jdqQuSz_s~f|8(`=CP7^+enLJYG-x+%X){x|91&<3 zKkTV#f?9-+4|_Q@#^3b~_K8v1L1}Ij^8N|4kP7-ITf_X+GbnGHS3 zor*Zz`+`Z2ai6t+oY8}mDa$0)-A)-4c_6kN(-PP%)S}Q2lXU!CN1MYq`o?sshsErq z{zMv8b8r&=rexuTPxov6nOAjXAMLUH^L2_+5c&OzN~Ng=GR#GpLhShs z>dLMrO=GW2LjrTfXO10V37!ar`@>4a+^Gpc%!MTJ5V7twb49ADndM!N&%I1y>H@_L z<1UV>7pFAu-6*iHOBCEx5yQUS_n>(Plx83L8?mtKb> zWbUPST0u)sn|Ac(R}T|+Vuj&X<=+eCwKtwgxw3ClG;{n`82i5SO>m&X>=FtpH!=9{ zz{YIhEh%eBLEl8}m=`J#IDj*^Pp(-i@3RaK~(xsOWI*ce-5FC`EbPGsF>4c)9fFOh(dQ^k} zA&Jxgf$-lO%Q){j=Q{uQeYvigaS%wJ=h^!%>t1W^<^fnK_skfRLTl0eEv*)^b#|bZ za5hbRY<{W%r#|JNcrow>=-JB?FSP#e07DM3d%kBiPgsSd*J6Kv z-~|VV%54L)+y5DQfHPVK7=ra4^Kr{rP-wz!iTe^~S}7@*&8}PAg}$Jy`2&Fbr}m6X zdSUK?uEqj>pi!+)L`)Mz946uubLrXD;i{2U5-p0nORRn915ok#Z$iPppo@ToW;qT{ z4I~1=U@yR0(*cC%gpudfOFfG;j-5NMK$Y~FTER|B+?hj0%L%|r{v`>>Mo@YD3^nl6 z0A1h@w;p+VcR%S8B8+1iHUE`_{C59*^cVhJymbhe?Gf4xW3JD%Ap54=L@WNr{s4%! zH4jl@gH-78nVoW_nMbvHC@k!@n5UP~vYf?VUGp&0o^ZJ*j}rm5tSN?)UHWDk zmcB8^_`OmNzIiwN53TjzS`hc@j}n1bKDX{P)2NS}`FK<)B>oSDpIsHeL#U^Bd*8xX z6|jIr6F*-$TKoCWZoMETuLuDWdjhUCTGm$^z_AnAie;Z;g|zO#Mo^3T<3G@Jgy#O= zLZhSPc+YumB&0T%$AcY|rM%ymRp@(jCQ!f%t~yGAP- zVK`C})3GUAK7Sv5aXJv}>!H6Jn=TrO(F~#%5Bx+jWyqH>hy2$ z0gz)#f2t=pA|dclkpCl+bRwm4H5v*6lO<%V+GmFsSSid&^tsl8OS^6G8$$`0&~60+ z$T=8~A*+w!YKVaWz9#{I?J9CHe1@Lf=*}PObK6lgo`C^AQiS4%=U_S_fmp}rA2jNn zzPta10MitCh{51p_4siZf=9EnN!0e@s5Ic`%PO(Xb-e&vj|c!PFqrv-`Q_e7C-lpP zy>}0hiUf506o9-wXkLZ}_(+}JK$r_I!O%I7%NMxmDS~^(=J@W_qM(=0%Sv0fwBOZu zL2kAe%3McjyF0KPzabLql^amc1ufIt4NRp?_ZwueC;fdc!u<^Y7i@AbV0;s?8oX%| zCU8h7ji_v5rEFou@_j0FpZ_upyO9bPnH@gW=zOv?tkAG-1I;c9f*8!B;r~)I&=-ZI zegdS{{!Icf!D#aR_SiZq!M3g~DWD%{M96dsvFJey+>>SNP&PUb%IJj2C*eDpeQswE zC7@&tTMIa8U^Wv0s5ZPxRiQvs47!{z4Mij-2; zSR?n(sq5B_X&G0@#{=I}e%hE>z?(P6@TT8Htmfvh`FI?7U*&cBzJMW)odE%hz)D|A|hz01VG=9C|#zGlc<3&!5u<3IF?s7cMtT3W<*b4^p1%9Y)d9Gh zn#@nI#qfG@a{k8dSvY(}HLYwBNViYQ9b8+OWw{K{7Twzq)z}q!KKBXK^FV;?pP5iv zXE+WMw#~|#(1iRmnV1e;OhXF?UW{cx8P%hecEmUM%Ta-Pf~M)t@3tt#jrqWA9X$!# zQ^TK${P)LZ1|)?-U^0iiGW>AeOk@&4%gTi-Vgn}_>7u$a{1F2i#LRz7nQQA`h?wdG zO-z2T;XZwRs~`FlZ=&1<#Lj&y?k7v1r$6H%f^xJ|7f7#WpLSL_jP*T2Gz`T4M?`-v zQc1sp(&F0$$@U1)H6!Ne>A5c=1b+7q)3bIArg`ParLpQxW}dAOvKl}-ub1s}z)-mf zWT)gxDIi1lSTgGop-M-XC_qI%m+l^Yz zFW?QwkE8Z7ggx_oX;NhYOOE!_FyFi8vC@JfwHPL>0;^=`h`x*H9Edv~b`!r`ANaRY zRe}rL!1x;$BRvA<6(NfS6fhk*#F(M2l0H&j;ixS?Mv!$LFWzGAGYwP+M18MX+v~bo z$QEDY{QixSr2?}_EAC~TcPkGUkR%|OzI3N#fESC@$98Sunk9`*9JvgUTB?9`&_pL{ zAkRR=(`pNS3WN_7D-n~VYa!lcH_)SyUZppo7h>m-7aWMymAk^~@IqUbEg^il*$jGHw1;j*|5 zDA`vrUt6<%%%VtQKtA#rmXm%fRpB9%RnAI63IxKY)~nCS>$T?n98y;B<2%+J)CVt% z5Q^6P=crtxLQ@>;jSrY)$n=lF{RL$+QH*iH3W-J#c_lczd!4$y<11$?M94?s8Z4i> zV)cQ#hg3G*Yu?dvz)}`5{}}UkyKRK9>z(Y%xuyMRqwcgyx)-uXft}t5;jaN*67m>! z_vbid1HUpD#e5)d4NsQAzu&un@L7VL;nLXg z4~)yt=6X5+d9_X)SYMyRI4M)LqWTg8Sf8Pa~5l& z1i+-Y-4@w8+P9-UBQ+Bxs{HUN@aYgiI)ma3Ds1__coSfQj=mY6*y2eA%x;(az!4q!%u)J*Qdt8+WoY4*11A?px9w3}H5f z2G#m2I!q9k%A#Z=_QRQAals8go7(@8^Zn0U?yJ#R<3d?#F;Y@A4?KI{K6@}`wqou? zJ90$Z*dI1~9E6J-Q1%8s@{+MwG~!hYg0+jpl(Cq)T>N(v3A3Byx5)Lkkk8{)dyUO( z32Je(gzD&Dy`$0XZ*oB92x-LG4tBe4pfB7$=eZl?+bUIBAwY3K0SWnM@=%aPOC*Rq zPHN4Zs>(-UNk7vb{Ma6Y^k@vY*!@WHbi)EK-ADr2{3Uz3%6CmZ`W0+eyxgG`>WChO z9%BJFa7pgwik0u!u>&!AY&og~T;2DMNN=-`RktV3%#uw(f4Ic$LM0aDhAQAi-h}Gs za}vR!t|%C7L9n*Sn^mxOpdh2QD{niv-+^DmlHwk0mh$GxQI^|GzJMYzR_8yV&5c}p zPnR6P)bRY6`){jnh~ozKLshEr?8yfq*wWO%?uOpq>wvo{wN?t!IFfX?$N;Gc>4C<8 zc_A58hw^RJ*H%PfGOKZhBxncAVg*-SU(!K+lUyJGO0HOOKM$^7aQ2;6ZoCkPRQku- zv3l{~QQ7>)3+_8|$lNOJ>+4m;6@|!RW;GJunab@f6!)4-{^kOsuI0fIRUbcbFwQfp z4V(1-bVVfQ7u+b>B06IT>+6RE%Cma$Z`m=Xs`FSVqEDquDT2dxM%)PyRjifFDwP-? zXR{N=@T2|Uc^bl3?&V&^=t4|NRVAEym1Y(&4XyKYEt0)8W&2~{oR9REie?225p)OR zQhrVie-6|<#1X4Um$->rl=e#9y8)Q}OO6y9jk?!OcFFS30G;`zkw1{ppe23Y4{2`( zNMK8@!X98uoZ;Q7_bMAwoNeMLa7nu>2@iEakcW(y5y==?{pPmwt#by_&mlqLMojM~ zL~!IsR(ru(bC;`Tv&D=b!B9n9oXBg5%&GDq?jWo1#{^R=8`0~tpR{75orOZ-3rU zJJDF@V_KRRJ&umKRTB9Grd&CwE={T&bj&Ac+Or`lbSikQR; zwZLN_RbhP?Naun}vPD)$K%}&>Z-|)_-|`HH17)QUZjqVMN$&(HUj}sn$aW!dJScV} zo8zv}GssfQT^$sjy3C1W@`2NQjG-b= zWhPx$#TEE!wI1>S+apz>t$pXQbh!}OG&_93i(ZsDmXs0TD0%Z{O;>&{>}Q@ZM`$)6 zOtvp{Z$hH8sUBc++D{n4I<#C^BMM?y_AoUH|Ge*gimwE9USL@xsO%a%6uX(=H?~a; zI4)ro^VNjK(D~11`>%XaRsUADL$UNq7(+O6@mt$!c<+#)ZS+@Z{+Xc6?bdkp~UkMf`kV!(Ayb=PvILm1*n6@^xToYv;@c8xa9L2FR7`^^Co*@+o@t2y)B1 zS1FE$f`L)^l!15Utxl}d$x^;+^iwr2U|siOfwY!WSogEj|2Z@Deg!162CuB-LxlqU zE~YxaX(GR|8L|=^pK_xUT|AFUDAGEhassS9A7p#ML^)tkQkmtR)RUC&WR!&)gimGAdcM_BS@WuhVA^VEHggtv{-2t-oLZ9f zNg!(87ki=xg>&#A5)vZzHmI&EE>QPD*n_S}|N1-BNJ8$;`}!Gby}F_*L^4ikk6w)^ z)TkE<&PoN9ywaRMh339h0x2lkT{Cfe&m4m;49StF)11uovFl|H>>Y`j>VeY_y2=^? z0@cI8E)L8lnqUHW91y}a0kQfp&O^ZQ&6|iZ(^Q6MZgtM9r~zCg_y;aBx(sq$y;oM* zr>CI(L{6m{6xU6M_~B>=T08;dqecC-*?9FLvHKe;W(JBT2vG$-(>MG>UT)B`=M{(Y zB!mZ;3YpqfILXl4M0<3%&bXTp4%V zGrXw-_KrhmsqC;S6keFb`~U7R|M|4gR^`UWEQ0C{XwB;7*8Dw75T!ImsYhf()JX8Fc zZC}AZho<*rr{N0x33yEDtb5R_pv-s2w*$ED?f9IO419;_9o4APP! z=dVL6zJTI>bX?(^`7<1IFmws*Vxi`Nf?6xX%UP|;7MaF9Ej&<*5^;k6?FMhoouea?C|f6 zaq|?I1{Utic-EJP6n8z++ZU>fDpmccCWJ~%p)BWJF=Qoeg2|qN$wfwtE)j)#SZXiZ zs9QkVf_4iB&D!c6xJO6|l4tZh30aPeQp2f{@n^b3U+{qL8VxTIM#7p53iQ{7ws+h6 z^r6E?_NxHbTTH~{{~NByjBW>q&FCoufVf_K{JT@&vM4xk`i3bH!2%r~XXEQ9x$*j7 zoyceh(bfLDuuw!p(K-X2ywzxk3Iu|fWl)4bnM;^-Kvn`$9Zb*>$mQs{ z%VDhxEP*kdg5UOGvSDW*ZEu%e$F%?A3^`7Z)NoQO7SyU~7Q}q?al65O*?Sa0S<`>~ z(}ev%%S^c6L;V4YwfL!duoA3>Biq_Ooz+L(VRE(>qfsi(9_>N-cxX&PL2Ok>QUZ6C zd>JJ9l80g}WI_ov#o>M78GC%kAAo^Yt%n2DjYtZ^L(HF+O$C1lYB9iNI2kt?&=O}* z+}#>KB$q8KZ#b(Trx2hEoM>Aa7acf41)Aj3uX_YgY1wT+$Y*K;U7Zqlp}QNQ2;Wu|ImMvKmkaWDFuhMC$!z;0v_A@Elw@!GIh5A_e+_Z{8Fv8_zY8WK9dfJ_7Y0plq@E4aj7Inh!0JHn|(A zC;|;n>*!pFn~;LohrIyG)M%GaV-i#2#J5U5W6|F{8-Kqi3Fyve)szJpI(tOCAN?Us zTKnHz?$M*DNs?;ZJm$bGM}FX_JnaYUW&^5K4}jMsf*+QAH)%Qs8kyq?zWwkUT3Sc=RsLlXK^7svB6NDXin z$CAQ|ihd86X}s5CAY{|&^0e6B50Si(@Uk8SnWecN!uyXO2VQK3eu3gQ67SDLRg_hs zr;uJ4jr{EQ;X%*e9=DYH`KRUuU95`Pgl^Qbt0EXc|y8TICMi!2v@g@G0c zkD1p9z|COFjLc{)9Y~Vf01d4h+_NrJ_O&xhp%0FqS?Jj-C!x?G3l@hNp9&HDh}Iuc zov*31^yZKYMY;*3Z-U&nbI0e7`?(yu5K0UNQbNcA1ys9w88I~1wPOy2)xESlS+pU& z3;S93GlM|DUq2(82B#t+N1U0j!fXk9Awc5amw+`jGQ{Ybfg;>)t{AE@6qyi45kf+~ zl3)--e*)4@8xoTZ9aPUTRZael}S@TZomY408tf7R=62*AHFXi?#qW+qmW3 zNNShqzCNUeKlu@qlqj+MZG8E`*dsI~0DNi*^25>os#FIF4OL(iEv}Yh@x=u@F;Vpp zy9$RQXTn+0n2AEF;wt|cJxUFUNb ziY4&W%8FyJX(@NM2&Trs-2(nHWCc8njjTeoi9#Szjw|OVJ`ASpdA#j0APqhNrwiEh zWO|2j1zU)Jp9X-)C#BxxV*`p+$W}*ks3;e;5lX%b<3mmRD=xsvap1=R&`8%a-zAl6 zMWE0^tB61sA#Pv*clVCJjBVku287NdM@LBfoeRK4#dK()-M}6fTHXJyTKjFOzR+D! zDg7nF$q!jG@E+cQwE2lf{N6t?tSvwN3s&;N@CFHxioVVzjJk9#*1L;cpT}VwdJ-HR7XFleHo7cUnt`kFUo3ez@0)TEq(ARhi8L8 zBb#b8_?T(NJ6KD)fz{4Nbc6F0X2Ai%?fDZc)oY<}J!VxA(kG#B*$SQ;DU4oJ(xBBs zm^M`fTo0~${}K?*908eBRuPp%=;4(54wIncMd)X(5AXPlrgC7GA_vnl#<&q~G9H2k z>v6qf`<`#3B8E354&SF%0?d+thDmgSke2^k%MnViFS8dB7G8DsWg@ZDMINk| zb@#vR;`L;1psD zqt%DvyNhkjtx!_|0?B)02H--Bm%Uj47R=`mbT^9zk^M#}@q2)ZzZBfym)-^f%VYde zQ~pEj=g65dqgP=+#8((Pw9s|I6(2c<4SIWj_nZywyW#to$*~HCkEY*E!775?zmHGM z4TQU``oY5|M}vjHa6s2KA{@!cxNr}s{)8ZU7TO9S>;C)*ah$b~yHA+=sQ2-=a45kK z;I4aWp=V514}2wWTF=HYkRu5kbj9UQ##7|V`zP}DGcYDvBka^j!OicAHw% z3d|^CsQl+lB&h}FSl?!g-z?}~u|a|Lu`K<&3fM{>4@<&9a@R`CXg3rd0fR7VI=;k` zTJ{b5Wv6T!d%K|Z?x|#GXp@l8?i$Wle$S|Man!uPD~EzkU|=$PBgT3Najf5wY2?SU zldslw2>tJr9vFf)e-{wL2LW6uTx?0(wM}@*=#K9yAM8tvi~0}wib-}P+|tt0ip7+A zG)H`+>L&oHizrh8#SMV?nkCQ|VobQZfm>S8YIlo!azPo!CrYg)MF>| zzi=lifo(*%7@7cfR3hySA||!WTw9!X`36%4#3JUBWsj@^jMo!eX7;P2TLC*|p$Zw# z!WlegfX4^Gi)jow;|!WxCdU1!>H-$twDN2@vD7_7IKrG#1_oYB)rml0^MdliI^`eg zK@LidOFc814t+cAWBnoUwg&!o@xLi;-+}s{)+@vKKVGqa`e1gXPwm?q0zJZ$>C6!{ zXgq%WhamWt(4zU$ojVSn#YDW((W3&DWJ`oPw4Mehb&*J_Y;N+ltDn5+4=cowAAM?$ z4jQB(lX@U$px3GYKg_V1G$@kjNn*V#NhZ<^kE{$BgB?dk`9-+OM| zZzor7e`J1a+v`K4WTAOWtZlu`?$a;-EHx&zQEMeVE$gima=B7JDEwlmw)F8ZG8*sP z!d8M$YGVGAUk!$q{x(26bI|FoJKM9cd|_OFsw6L}*^&3DyFhm*_&;7hL2MP|U94Sj z5p>^|>>c8jJe@<>g~7bJ{o`hQdk6S;fHp0?*O=;9(R)B`j#9OLN+=!<%y}id^Ub=X zKAW;uxy-2EXE2dJuw(RBf!?>De=|HJjdMpND$J`LzjAE8{k2~Hmk;KK#w%;aoFOIdCigGKPiPD3ut^)?Zb2yIs5Rza!m z^K?32@?WIneQ%Bu_hVia|BG$D^lJiKe_N)Cp*+sk;IgToV5o<;%P(eOkK@i(n2NXq zgG9MwZSS{v*gx-zfx9frEyvj(RI-Ag@f&7a#=mHrOW$ZcRi3`6DHUw%R*S2pg90og zT=ITfzT>rBskY?bcU$dQYMV^k+UWrD{rmOt^l0B#txQk0A#vsf`OJAc=4Aq?qH=DA z(4O`fYvmAN?>*xDfgmjXtjVo9-1!E_eG2_G(UtjzMu+W^)6V<_+B}G zJBwhO(VX?+>iMA;dFCnZc74y!FfzwktXPQ+hpjvOpQ|Q3u+%#TZ}M@z#qsiO7ypHO z1=*tQH=W5B%x%;ukn^jNPfIAQ{p-U<^jF6mNK>$zK964=QgFC_p znqG{U-440a8n`H_`J&g12ExREobA6TGb^+gM=Z2H?ppMh?l$B)Cew5_o8rQV++|^I zVQbK*MT79zfUTn}nJ@J)2BbhplmwO6fn76T~ol0`4R#C6`J=6!sqst_jbF?g=tbHPxfcL!Ra zGdiwCC*>AP^~rv-nO=rn8pG0@=Lw;-QFtV89>co1>p$QJ`*%}|!byb--W>?PFx_PO zOLUQ8T@>7x3m>{U-d=wcI4TW#3HIbS5HuG>+Xn!u-#=kVG~ z054bwA@+v>Bfa~gCbjsV*u&`dt8hF*3L+klCE7H^U zN{8$;yQ1LQ+dnOU)$1$Yl}~MaeZD#kYn5MaYyCAu1vj0Rwl^v_?ffNGEDVFFX~g5-RH81KP@CIK}gCDDcZY({=`n3JBvG zuKE@;FK8K#84~vIQT&u4Uk>{+P5xr?oLTjQaQBB~snz+4NrN6jl1c4E-_i$uC3Rmt zs%xxqj9ygMryQO*v~jR37<=)ac6} zq*rNDO8i55Kk0G%$L`zNoc-NGUI)HlW%=zRe2L5T$~?*`FT|C|{jP=?aL?RYXbJJD ze?6>JX?J6(gxORN-i`k{01t4P+zAwjtxKPfTSW@IGkOs_6_XS2ORU?aMo{W{x@p#R zo=q?AA#nBwTa`XHR$@K)5kspIyBB8y^Mevk!6LB~_ZBucloTqepKyi97w={9kjNiJ zeF|q(xOSD>sMOFD#yWPluAx{)XqmntXF}3yw9ik&&aVj>gdrLm`7&u-A_go;{4S zeom?u%4iEBS2);olX{$uYwpEVEZ~YYuhu2BTQgN-V3*fWWO;NuOZ+BfREpBm9vkdm zq)_}Q8YzKiU}49d%aP=VC#JW^vIzS6Kp(DPg)#1KIetPQKJiM9+3pTrNE5d2{gupQ zEUPqQhNTmAE}hG=_n*DrzUjb9J#V-J4*o+DhDSbQE2uL}CTVNI-;$Qco*Xj`<{E7& z6|UlIuOv(D?ujK|SR>~J(Z~XtQ{JVDqfvZW{g*ZkSXr1L zQnEECq}~W0PoW5Qe?U+u@8kGXg;7+DVggP~?)_=rr~JgQb#Z;A2eCkOdqOVjNqx{* z)1!S583Prodz|erH`pt>atU;#$a44EhsRN(kCYXvqrb2B9BQ~nZM!H&QY)L8nYou=M9K1=kkmVC@75?Wg5wo#|!*@7@SzQZEn2|!4(H0c9rE$UV^_+GBI&xC3AY&w_hYWpNCaY zr=_(<#uzIgR-b@<-CTYo3O2uyk54JQeJz7GQm7{d_lL&h=l*`;kOzt%Q3>(Z!_ld( z+EiG-Dl7P(wUBPWdOl1^l3U2?Z?tth6jE4PQF0E)*f$?z>eFjz7E`*yDy>1+epY^; zXlE+qD=r?V2O+lB16WF*dk(gin+~UH2wt*zui4#BJzY%nEsPdh85wWIb&loD{eh{R zzD!+>S7vfwWe0yWqN$k}LLR>xhfhc@Unp|fLr(mYL+JhrC%Oz|^N{@nCOYS0 zE0l2GDyv@=*=px~Nc7s8+Q?lAuM%0#h0mj9cJF!S@tbD1wEfrah5Gsd?65TdG$gV> z_e+O^70!#*9}I!CA?5bKjSAboe0fXT?iVTL^FCo(ssvbP&07cswp|(;dZkpOODBqx z?#H%03TwYO{I0s1Dx94;dEH^|X|h`Q$W_}lR6fXtet}}lklu;kI={BNXdKua9(wA%>_)SouAbhtVM4eOr_N=S zUJu}@_6pgr>g>#uEm|HrC^ZUKmbYK^RCtQ(GnU63TaqX>oX;+rm(r*XA?%T4mKYy4 zNem^m&AGM8>s@&EjJS9??88Gx4oXA$@b%~it+`Gl8$R4Lh=2X4AD6Gk zzS9{wD2R2!nph7iauIe-w@MEf+b+gmNs#if8cye(3KY59SHOxM-q@z=U0~m|g}_dN z1c{b*Esx~ugLv3S1^kS=7F=JB40e%~6k2i$V2xMiXQVDuAD(0l(PGB4X-4~CQ6#qA z389(eS7O$>8%OasKcbK$cA@eYcXK4sukw6@Q#u9{tME&WtsMR!7Td95J$&60tz^io`tq^4_KWl(tY zy}8H!%^|6^t=%JQ-7Pf{UOD?@tegD8vS#QCDtjs_DymZUFcP!yhJ&tdkX6vq^9(zw zc<}vNhrSn{PoCZDPg>4`ywZ#9N(qfTUqm+~PD$?EuTKgS+~UN!h#&r~Ql^nty;)d@ z-Rab4@8uXF#^-GKYD&UUu5s$r9Mjq1*-lDljU4~}xN=QhPV7lss8mRWt@XVtYz4*p zm}e|syd1Oybwpsgz>C67F-UAYeaJR@{BtL)`zs2w+vMbDwXdgFr|J5=rBkJubnYp&Mz0T405N z$^>hl8dH<){7Q=7W$LbCHA9D`#FQ&+(51P4kRKnN4WeH9ea~1CC6<0qJ5=XwM z=SPRFYPwarRft=L#Cl|PL$(zJT9}U?d~_D$u5yuv9#9`Z_pW>yn$&b#a*MGh3EEaj zp+u)Uun!G?*@ua0B~zM*Lh22-l+k*|b%?|$OF!a<-((@oKqewnq6tbyvChvZR#5k7 zDUT@$J>q}qt?e>mqJkOt7I(S|g5b8@9u8moauAhM=%3*` zj0&%NghACaB0b~+ZP|YK3Vgclfj4vvl$sAJ&Re7s`GcQiYTaYx(z=hej|vopgx)P| zU3ejTqPl87i|%}s;^RGY@6gMa5r0RB4o|+|%V1^h;w+oqQ#qsj-l1ZG&1Umf%Ct&| zsY&-p_O(mNZ7}raVd%cTHrr>AbzjlYvfePH>>)uh=n7ZHqva83lVo(4eM)#FcgQ%K zP1>R0Uun?BpY>v?X{hPYtX-J;{S0{~#Km9X=-)5mP*oFlCyDZ`pV1@7=6Nal^MqocQ z^ktO=(Jf*~<-LzhQ-(S`v}h=HdAJ+Z&0!>-B2QP*#@=hO&H&9HGDEGsL69ti%`U#{K2`S86DCeN4_blB?gcR%q3KlFJpl zrNG$_-GlyQ(LMuamg%VYa~n(g&5o@)z4H6MNNm`&fi%QyE3H@l)Rsi*`y!kCv?WeC zFisdkEGH=hp0o9Md2k(#TVeA!|45VYyIeTUs@aF@_mU&t!NlDn1I;1#x1kHgL$9nBVvL77wOnMC>!GwHrzkI=9921hnVY@GLzEE@bh)}`Vzah zxUR{*eMAokyhlp&4P==L9glGylEMD-68KhXA0cdj7PCB{I#z1?a+i9Mi!>V6?O@0g zvwr(b(kj=jUmq`9uA*2C&k}W&q16iA1=clf(m_615o;}6Z!;pFzkRxq=*JKh8~0vt z?uKY?%D*qKYkjylPwS5C4SNq;DOzT%c$Zz``Cz+AmqC1887m}S$#+aY=oRH1kBaZH zLB2k{tWiSsA8W9vqZoNN5#wu&;_>0IA+dA+4PIyc^3EJzr8B$ake|`~EeZu{obX+S z9c96k7bw%Uawl(%N1@tHpFh$y<`c7;dX>}6^`_WX*UOpD2$qJPmG(hrAG(zgKCu>SZ)4P6LHqOb&--s{frx<55^|1kh&KG-ChsMw+396t2nwuVrWF4%620{lWV`K$ zH*-PXDHXDsR7RElGBZH&UemvBC&TV_1h$^+B{eN0?`D#qcsXA_!*-}$Ng?+g=`B~( z-6BoC#hf>5yZZDEo_cD9aL>fTXKRHrdpmz;lG%jsSu9{AbPLp6>t%M(U(`PI354ca zIalWYA8r;Pd1xlhR{pPbt~yn4CEK453M5bX#TPICQtt1-oacwKT+sI#z8>3>r3XEq zXqSQnrJO@*o9|8b#hli)c9R9eWtY&-gAh$ki%}g0GxDY(6Wt;`s?YeR1kR(6 zb8irq+nBZHH$GA;XK0!IW(&B5w5>hr+n@?hpg;Tc5jxBE%qI%nVoF6?(8Ep?8;y39 zHchy?+4;lXS{80!Orgy zwx(-A6>33N(5&ztE)H=0zzi+vdUUeQhMv~RD_6Y)2nP)6=v_=RYpdR+R-G0$3~)O# zP>%i8g6U((8s2H4_?#N(6`BliO6?4QWZejDnApIW8m<}UqPwe&riT9AGy?JL6Z7uydanV_ zLY_DNgjI`{f6A5^2y<3cKq?k(elNK({b&K~@v`~Jx0Z&LxoyyXUXA=(48R(M#^*;X z*(yRAdRfp~%^7$@L_IwImm0zZ$^E;NHIBWaC1jFdIDs}#$&H4k8I{=7A_T9%97E26-$>m!ejfb6Jeee$21 zFWWfKIyuLeHwVWyl?Q3C7abHQ?#?g5#v0nN22$Zs zKw1)n4^oMp9li~j7cNpZduIatytV4?O5IBWvORV<1d1zuDm_t&lhE6Yfty~%Xcrr<_wx86J|p#yUBw&?z6T*Qcz})AhRXIHs8{oV`)a5yi7HU1epIPVGks3{x7~Bpe4^ZXzog{?A*3* zkLGg8U<7hUELOxs;HcIKvQT$Fen&kNJoL0>d%RQUOz@^4XINnouH?X@%R|H6X6l+Z zcP>JfgFSjUqT+0O=d0e-Hv5b8jTU$L1*RuxC4?$3KSdZU{CR|(YLZH!0Hke2)0@3O z$(UX#N0ytd=7o~@C@ClHvHX{UdV%#sCOr^#;XAy>q_ z7@+exdG1Basjag!fl5c}sI1jp79mB7UnV|KQa0J>Sn^cSou(lFsdz9(x*7J7zV>2d zslzk!k>T#TH592ieO)yU>WBrq0h6kxilfQIsB>f<75eq zaoT~RfrYk6TPY6hInI)v!M4>OpoVeQY8YR6#m{@@>>bh-KW@GapI25HZ)GgiI7EVm z_1?k6q2ij}O>MNZ!+rON62X`lg5rL|jc62b(vjdB92%6B0&|FGaC5o}y@O5rpoY;m zH?AB&7>Uf;q3+SZOLe05WSMT2Km67(i$7OAiQ!inuPD40?Rj6#V zbv`S-4%h6&b+WpOwQy|dQJ&e*ySw(kx$NyXRs|k^_m=0H2U$?j{7=tlfq zAl|xtYhvXU_n{7vAy)vK-WU-)_v*$mS-;4WA>u{?r)Z!Ik!7c-wRSRUe zSE#48iiL>_e<&a{6-jpFyzO6NJH!k*`%4}*8j7Xwt6gyDCU<$`n3DU`WCxelrbbi`#S7 zKi{w8igw4<7Vq>tm}&t&mq)KBU-!`jxH6&f{OPFciNsDQTVU*&(;g2i!O4I>Gxg=g z#S&@%CkP&d2Idj-t;c{?9Bd7r(uV|lFEq2liz}o6)TLOFyT19V$e{042cDf-(jlZx z2hQ2NZwQ#s&~U#x^?9~lJFLR&@MYz!2Hi|R-8vYI47X>a(3#{6+8P_158ac7N!TNM z;}{K!j2QDTH>P6D+b$Lgi}=Tx zigB}h<}0@N40;JIZyxS{WgJay{LA;zL}MJxQ33%Ii;%3^8r`$dG?>G1y>MfsfX4yK zX~oyIe-P!L!F14sl$d)7ARM9@)FOgToK}iXF`?}jQ{h7sStH_@QAV^UJgsHK zvMoYF*=S8LY!B`qr)*_g2}AQhlrkH*mSEG;btyT;h z!&`feG}y}bzi6?%3Vk8(paG!1WP7LuIeatkNM=pC<&JYbxV}oZgzACj2NTnqw+vS^ z`x2pToZ@?sB&Ogs3=lTP^iuKk_z zjw$X0hZ}$q@G`$-1W-rI5&(cd7&5WQ{IEO#&^46dRhTcn7n5@-R%wh^ZURaptpK<4 z9kX-*fMA9*rq_w+QF#R5cALHp{Sh$ZF_kTx_2o{8W<8=z^}@%q>GBUfds4gLWJqc5 zJF>AO=Tx=+yp)iqd%5tye6jYtV?8Z2K3sDD#Vq~rtblj><4{$PF=vTvDq3C+!Nk+qy zvX`N9Ve!Jv*$WK}%?NzZV6yMLL~PNYt_#K_7JozJei!I8PR;V&@F4b~-8bO$mqGEz zox5o-PvWTInjG@;xEp*jlWB=W!t=%5Y$5Kok0#rp-dq|*Qqgn>#W=XEg%$kOnlY)) zo=Wy~i%HZP_?Fx%wl#uU7uK>hjGX)e50d={ivyNrQ&q!k|DID_Fu5%lKlYf|kAf-? zB+$eOWY?p450|OP!|p@SGg)ekDX8i9DGH$zFc$I)E2hO9c|KC}X|rya@_gn|*E@i~ zUC2H#;Z286WAz+uD>8Fu>ulFng}J9QZWeB&mtJE&2?71^O&4GrlBqKxvB6}2H(=BXXnov$92K2+sesbj$$7e3=oHr3h0Xvc980K)UnN)TD4#t@> zH_Cp!LX)!Z`RV!@7-9{uy{;uY`kXATh*ys0!#Fkk%JmR}2BKBVNPk%R`MM9ANaW8G zm&bPpUQ-kXCW^3AGXxr_L^ZN`Hf>1h(VaNF53gQhVhKxqu#}xO@JikFeKF%G8VWdW zt2+Q7B&>-ctNkPn+UX&#{ZdC_yEdYFx`E2jOH;D?@cS9#dF>i0At-krmCuN3RUh>S z1X2pHop_uR$L)+(=W?guB3P`c00SoUZ7;rl+8mBaYM9^24 zLVj{qfRpGB4}R{w?S3hAJ=FSG61feC9Cy3QStSo(_S?ujAR)5bdIn6%Fv|TAn}l-y7EdNXY%kML3d1+K=MQZ46TU+eKZ~|SoTLN^Q<1j7aG#k ziL9#wUY`}?ck8Yqp#+!@Y$K~!=J=thp$*s}lHNs_GC}3qCM37-eHU-M^>e11;~F@S zj%o#z2pCI;=T6V@a1Bz=zyP$w`qir(1C<`?@IriXc37sufmN|*usuF;M6)qza-yG7 zf<4{_z^EIjvieUJ8QfBnWs5I=GTH(XA7A;r5unwp*N%N_j_jnCt%uYF-Q`#Yd)B8Kq?)qQ;G%Jfe zQr>1zm~pkXxEC73y4REK?h9*zlZ_lRWQ0iIHi5~xkewILi@ka?R4$DA=8o9KlxR(N zI3&OnSBq1J5#V`XBHng7-T`brjOnknAf{m*-Qm_$b*PQW;MaQ-N|*C{5WAvQxA&RU z11N(OdXMiGVa0QxObM^XYfx$Kvl{1gk6MPQ|9rXLSu{T9IN&KFhs4fvvxzb#ZNFg} zM1DcyFo_ZAuG+SP%L{n~>!70tC}QhZSwvZwKEo&9|60e;jOh^D#LfohSS55wO3mMx zb^sga>=oVD1|+cXr-0f_w$ZbZ$6SNRFAM|VO^QJ;47+)&AOaH5aBvVXk^DKG2`R{0 zLDdz&uW)Cayw8u#(OPYFx(T8k(d>y!O5RA;cX?evA@t@)tHFWJ{a2^pU1(Ls;8^dY z)|>})pMc*WngLaCS}4Cm0j(NO%R&&yQ(JnG7L-?8{VISr1tW^g=h2r9p-$K}9QQ1n z_qV^oC%=Yl*|cec71Ko*%~PAT@M_`HcHLKoPKv0(K(S;bS?+*+`fl79k#*kcc+G%PRE}^lRl+MwZMx&IJxsHm;p0K zRTxGs*bR6Mggjj9;(&fLWHp5O66(0_K)3|VPAz@-)Y5ADGaLAxl|>`z`w%q&HqyFZ z@-8Nhp4SlzXuCO6?9B>j^ily2zq)kq=@XX$nnTD2nug>#GPz)%rvbF#;YZHb2@f*z zzK~8k@CeZFyKzS@08EZcG%p0=!SHRWY8rGocl#m*zF(!qar~{9gr&&1`Cm75iNUGy zN_MX-E(hQ}IDidhAc(%<4VnFN(3uG*K9q8qQv;|$E;L!fEX{d&+j-$mSzL==md#K=kFSzEcJ+jVy3))uydRgs*zlLqL-U)8E z2yB7B7b3!+?qu!1q<8V^xANp)%+sGgY_j^ll7AakR$mS6Mzlpk7t5C=(`WAOLLUMc z!Qa>*U0sGhfBwfGVsD`=Jy?vtI2X1Y1r-O6Nv{(!LmbOL_N?XUR)Yj>f(NquVLrCY z&$##fha1!Wr!@4-l=J)d%B1{q^YilwKi>c6e`Pk5HG5qhdcGY?m(N-)UUC+0E6Qq1 zZLY7O%c+01#BHa>iB%XU`cE68pT8vW(j92cV&6-5z+p{??;u)oXTPII71~l|EnbMI zjWPY#LE7Jc^y7g6`O!81N&J?{Moknw?1*O-fI_LTnt;^&@c<$ZS;-Z6Rv8FmFiAxa zg3KmP5@o(|{t700pleFQx?JY04znS(b8qUDZJ!{(C?Ky?0KMC*;{D0qryC_Om`s6x zo~@J7EcKCeJ`{tyfEH;4lYs_+%VI4M?G=@5;SZq3->yTphD8yO8w;ZxG*{uVGPlrQ zB@9t;s(VW^72uLxB1u+`zD5RLW)~2r&Rvhua654>-N%>O~WInnXYQc>1$M$|Vb z$NOPU_;GnZW(^QH6qc!~@h;TdN6X&&4|Szpi>=%M20x>qdLIg+r@}__5zxJORiUBh zfR^oOp8~{r?N4{!`0CAnJ#VkSaLcG&`CA<#U_8`Wq72K)~G<42*} z-b_cLjiuMeQd9QY*-fM{yCzb$t2QFtLFGV*`b`-lRG!sKHu}N(aoO+V38D-Xfw04J!j$ko6Hpr-=gm`|%^vcN(} z4Jz<<;h`Cllw(&J@CGoMnr=~h2^#PxjLA9uUm#`cm47K7?>k?r6s_nqbje+u1EW+* zY(YRqtVF9-LzPm-*ZH0@ybwX-3J&z&!O4MvyD96?@?m^lkXp|>VS!3Ioy9sOT%+0D6Qy{gwpqgw=5Q4>AKb7@1bA`)<;eE~8Oc5B?pg%50kJah5Kz@$$)*APc(9?SmTQ)OLcs#jeO!Bv zRztOo+R977T%sESH%5kfqRJid{(lR_G{`PH$xGIgGeKhrWq6qDN$ZYJ$o&1XNjAbu(G+?HpjP-r zuVia=FWGEms-0Oq8+&QBKNN2}_sf|$^#MkEPAU2dQ*3D%1@(IFFC2R}STF#6K84Gi zJTprg*(i{yc`k0Z8Z=xNp#_L601Unz&&e78f*G6-U|8BnjVUf9r2WK#_{x$qt_p_h zz4xI|GdW~myxCD(>9|8*lsMBb4aT|(VepOG%s$@(3X4#EhsxUSQbY5_uLR&e6B%8& zA(IYahNki$xtKao&aLvYe{Gb+jGSKmUt2Gy0fu-)~wv& zQCPMzi?*N#Upq<;9F%d4xd2xX3ylfZrNimW&{m$z2YGeZ+G)P!4y?L_H5JsYJoX;M zQc_oGavw>JDIuZ;Mc^t=&P<3f<7XeDkI+-OOBb80GKP1&&FC_e7+ZO_q#%Y#BI5vF zH-chhvrBy$X$Wo~_5`lLE$n3=)7!H&OS^22>#KKygfVj=&g?aN&}LMkUxA#faL1n+ zZEIhvP*W_uV-#sS|pt8xN6#Yoq3R%H=QfX6s&FBQ>y1E}GU@StOO0;~$%Rr%M` zn)G49g{xHPC+>afv6hnWQY5v6~Y$wn(rNi{gbqZNe#kQ z)l*8L>(yuHodgt$$->@MsH)HQt`}g=8mc(L7{#KT zJ=<}RS~vO5aW$f+Io?2d))gZ9)iqKM;b`f_8xa#e)*GA8~% z&b|a5>a}lQt4gFgl`P3AZ6ZQ;Ds3oQgzQowYX)PdY;7nd*-1k7?8cg+>^orwSq8%> zgRzY9|K8|yp65O9^FE)y&sm=5RQ%?5-}iU9zSni#1>G9QsPlA0IE!UPugb@e2liz^lcZ*#--64kv+z z>#W;US=h2b0|aAzfk1N`7xN6(YsaNR7OyfO&`ZygWpe;H@UHL}doe#=ewkVWGsJwV zkKA2V))|19=elFzN6XKrBj*G)w{54fC7;|xS{a_T`;&N0+@|CSRF6KpN%2X0w?O{Vn>vzAqG z)2;yTewMimjVAlZh4Wv4G75z4AxbF*t1e&(&ElH%*9uT2h3L+nhvd`ec&yz@Jx>B4 zJ=|6&8w-a6Q4G4LHvC~FLV6K0IQtE^{l$J}sA=F+!XRVj8A)i?OV9DNFmQeLOcu(( z#2;{L%foBYi#@ScX7yp|uvGvRvEB9#Ltl$9p?at?QNgA*(SHS_{Cc^nu$Y`bz(*`q(@ic90sP?Xd_QdB^{<7 z;A;y%W@j!oYT3youwiabZtBl@>K{(oI@ho4nd}OD3n(|RwmXO}cNNs=1T;=6{CpOL zSpdSbj5>FgjiZcAlpqid09RI+nAZiky_eDj)Q4g>?%8XuKPE+w*Y7&>db|(T)mZgQ zgEJR!+%2A$gu_6R_0}kG5#hrCi#Xt?C9jy<{e_bVx`z=QzmG+7*9&~b(|PUbBJT^E z*yEAHg;Oqu+u=j7I-qPlv@5_NX>{X!wjb51>vcolgE|w*prDLh_q!Mr-!eO2;s(v{ z9CKy;=iTax0hL8Fs!}<$mLI1m@M$VRU0`|sO~>8ty?x`lj8N&@Fng+aem*#8LV=9VTUPMrXsx-h<* zPwHI)gK4KqrkHk0T4M_U^JXZ-^>8I8G=jjyDW6MI$CN6G(2vwhqy1d&JW8x= zZw1?2400k6LEhD$0!0RM-^u8`REcj$T7Z5l`%jWlWFw%T%xn=;ZONlqH?GOZ;p(=y zRm^}+C*@lep#db5&L7XB57BH5n+-TRe~4^25?(~NPyGr!m?mAOf7hT&49ESL7sz#C2TCReOKH4VL3>-n%g%MzO zgGf^9{yK*~7cLT1XplKtT3Tnq;uhBHkas)zyo3D6;ddX1b8U#uJuVp{KNn5r4sgEv zTv@M<<|V?BF?N#r4lV1C)`=(s0Zgu0nO2pIXnxxfC|cs0C{SLzK*4{tQJ|?xWpTb8 zqsQUrY+FA*e@p#~P<>YQyz>v;Vl;!3NG&Ec6*h6cI^mWsuS(P~*Thwh3-!@)mHhSH z(qvn15QuQ4CQc2<=K)tMU%XGT_>}dyslUzK>+EemrmI=G3 z*91h@pIs6JR*yhMxhz5FR^M55m?b zdi*1yG0X^2aJh}CZCfq$2dxIWs8K3GSy1EJ47ppz2~m6+<>)>B(0;r{^#bTJR(YJG z%U+}dWEKd5w%#>!(9A6?EQoq{s2__+)h!*=PcxnuXtv)FBZXaPLRr2L zaToY3b8FJ}08TS$a|L4QV}s7Vh_D@k4AW3kd;f%dkGf$%@~8B!#c||YUk8jBPCYZF zu#6KR!I>oAJe*c! z9CrZh0`^SuVu&REAZ@br{ebVt*+-t2_BD{}T9iQ;(plz;)a`WHh) zlwDN;dC_s`pd3XaWx=cT6^$zFDqqn!9Q7dw1Y5%r2R&@ZD7zfLfxGPb4Ybv@ z`Xu~N5d{P+TFRqhfw%OLAZ6}4^zzCIk2lMhEsO_=&JzAOS`BTv1sl$P4EBJG5LL8H zXkdJf{#CDSxD2Z{VtlD(7*lGahlBk(Jo|{semC{~p)DQXQY2=W#Qgx=L&Tg`XP8yp zh1M^EYJ_m+h(0bqTVc0!kIC`+vG}efkacy$c|u#*Ns>Ug?5mpjH0#njnqB`zTYXT} z8OFXfy3>B$Ay87f&<{*utGkX{ys>l3R6uW&GQdKZW4X8`w;O6$=C(8vnZ5H*5~|sY zh5}o!p|a*4@t%%-gV)F(O<$LYP%sV~CI!g<_6xY|x$on0+f2T@T)jhaWOSsGg}oda z^HcICVXS8ixwy=bJK3$xC_*WCbREgV5b-f5P8DR8v7%}_6`PlY?&gHm4m5PF2+>;iNWRQOh91;JVZy?qCCnyrOu&uo(-f_3*YIOD|L5Tk(tE|6(?Q&1p*;gp0+_QJlh8NydN7RT^{h3JaS6`vu6 zLgO(ROht5G!*SEdUa(Ko99X0S+CUz!{I{!9Lj0s=^_^a={qc3?L^}&{Z0JizJJC19G5%ZO8 zOWuKl{g@Bu{95~Wxh5ciOPyLu8?5lpU>sCW-MHRYrvO{u zfadV?pes>yP`)2_g(?h*0g^ldgVcT>T8+Vjlhv#8o+gb(QEGbAF5mayODX<5UgQa) z=<43YlR96kf#f9{y%Te=6au+-&siw)B+s2?#9JU;5-=^^9dlJ`+EpA&Tf}$W)Oojm z(I86y)V>@jD%i>g(*m>rD`5|mIt!=wF;Gz3O@uvCvJkL0v+H4T-`B3K&5=;l!*KUO z+&ia(i{e8eQk>=<>%VlNR9YJP>FvuX9#g1$kS0Et?mKoecL|Duj%xj8_Fz(xammSI z3e78;HfuJ2qAu&$5{@}CI*b3A-{DRox>$serpRV@rV0X;ebyHu4z90enec5EhPbyn zJ8g=jXlRC7CtBM5^T+3uG4G#Vc&D{p?<80chqFYi(~`rS%m#G8+Ng%fVY9An6PI_% z^(cnPVr3DLIf&&N12xX(uiheQahjc5h11QeiuI&NR3USptSUX>r|2O^wMPe!X^aun zg(@Kdh*jp)EJwZGejKP~dqZDI6U2xSh(Qzlq?S_kll$P~%w2Uno#kY|jB4E^e( z1F(i!>Rk8h9lrqZkt~Lt!efmUi_kyCm+^XLtr7)LB=38XU|fw^u-&|Qsuzo4t5iH6 zbr~OC%@y!r+@a*^WyJu28d^kLQ^bC**~)g&W@l+6I0dcYh?oe8U&B5+&qd2%ROB}A z?`Q9yR)rJVTMbnl<2)z1R#Xmi8awM4;{taUfZH|>DCx4Kr8F$9gzhDBlTxVAZuk)BA)>0v5dyjgsq@1B?0 zQ{eG@&=KH7c2{gmP0Z2A95rfeo{h?gX}rrYMUG|n&ZmzbG3C1ro-_wae*OG&304zc z`|P{D$2Ru?BjkgPD|iAR>Q98BB`^YMx}=z!-`QO(KXe#0JDUTVyV0?>t&MBS;i$%; zMhi%SF8R5BPS&qtiAY*5yXv0XsvEEi`e9Ny@%p)PcO4vOi)PVoMg3-H*%_uGCn;!R zU(nYx9i&M5Y?{T14itThJ)imvQyp$SzR>G`)Eoyis7RNMlh`M-qC?*i!-T>3=|7Bf zd!+kP_ccJ*P33s}p;FI&7}S8LA}L5jU#{Nmni|{o7%nq_!U-|GjzD_r?oq_JJuE=X z-N7Xiv$zK11l-MzZUnK}R4T{;!=8a8KY$hpf&IFdi>30WGpE&4+hDyB70mp&*^bd!tNd#Df zRm3@xAp3|kwe54m-T3B6E3b9QgwSfDX*{LUS!Sbc(S`d`0ok7Nu};i=L+vvMisk65 zKhTTXOBdE{t|?ViKlinrzk@ShSnIi5g%i7Yg}ZspfVh56waTvPb*{fajT{^yHM5qjW! zi*Q!ON?Xw!?_L zm3$qZxy~?@FpupK6goWc^nnyz8+$g)3}aJkxGZ=&g_b+}n0 zDbItu^rPY+i!I%6JLTs~@V>aD>j5BxDCj)DB{bA<-m(>Dv`uQhC98()JBFMw8d8_} z2bDjRp4LSb-~D$Gt=)<50#hEk9nlz>ot3T3SOng zfE#0CCQN!oxnhy^?48GPTghEsbnyKpf3-Xz|}`7rZ?>)>URj=+61@9fnH ziOD9Dk~i|iTxg}-%!Y0iF~!G3HrV2m0oWGY^9rN&#j%E3{A!f#uB%&Z{}UG4x?2le z!j}rwTfv=1M_#_3+R|mxtjB0NY?EU=PSOm|=&;loBq_j(@)LxO4WBW>=DRV0D-RV(1Fd7@lHa}KxqEweb` zt|JU#Tr2ecrC}?mx@sQ$4YS(~%oxNyKqd>lWvvJ*1EMc78G)pXK*AQ_q4RqwRrkh% zfMwqh4G>8c<3rj8`R|+`(g2V}=oO;TzE~{_Q-uXt3;Jc3G}ikPtjG7dT=)`FXbScu zyN~bHXX$-i#xeM#3YgXAlbZG<&?wXyLPg9688Vqq(`Q2_&%`5SXJH^xX- z3=_|*dTFpv6lOpDQ$slK^-5Xx*Z^NY-!1GB(t}AtPuHx|NQwsnYmx~R5CeXZpa>nC z{nmB1&Y3@L+exPEI|O`>=4k-2k*5iQkvIDzC1TR`6?Wz;4~^S;&Ue`uNiR)g1(K5@ zC2R(Zu--_Zw{UOPRF*25Nb~Bg*4dq0&^@SM9LQ2UxYsC3Ul$`-9Jk9z+hjIxu-FLp zLybXxIf0L~>`QXVQE$Qam5ng=NlJ3cM4mrl(x7PHSykku9dmbsk0oExiKjl=FPh?s zAmcX$y?+UbxKdj~JGF3`i&R~j2vwG6lCUaPnBqg@sJd}`^R(?)U_VwDMfRaA zF_TU`djEDiWZJMorA4$p>#k2b#{~z}w9KUsBqiP3OOGJ22nOTYMbAaC*!pg44>6rv zNR+d@YW0b~KHZe%qWAl+&eH2h<-|KI+_Q-Tum^i{aZvj|(Ctn#YkCi*4u!^<(4uYaQ91wdp3P@utIH?_+?g|3Fb2) z9yjkmF;b;-DS3m990^8U5e4qhk(T0+@Rj*+=G?dns` ziTDCMKEJNNXn5RyreNm9Gt6oUuoEb2*K2EB;(0s3TNBN5g##|~w`ud%-yDTn#JhxQ z1r+#4uYn4{Tz5WOC2bhmBenjz1}P=I78pnf=%;;}UqdO)-<%gLFMt1|m2V5oj3Qyo z+ema9&AFz7lyIjGP<&dp1aS%4a56QotKwuEl@gTE=cliJ9(|f|P;~Q->gUd7(!d+! zC`bNF<#gG2?x(Y}F#22{#sTgFsHX)w)-nBEHPH7UjxB(`tkq(Z*iS#F zrxYSwThMPfAnM%&RePKq482XZivw7gmCWwtpT7zmYmy#wcfz%c2eU}+h{Ceh%&&#B z?Qy~C72dUo9f9rNiG%Jyy5a-w6>=;) zbXhQaTYwE?DDs;?Gf5DV&DvOFe0T~x^!N?Ha>e@|Fh;BD@KhDU4dqVBNdE)iIlF5l zG{>m={veO<^_T}CHc>!fZu$pLnYcztEA9ZMq(Si#YAGm(jvr{vAs<*fTy2nand>HR z_mAfiX5T?T1%RYe`8TRG>v3t0yP>7_*sI9eY;{pevFHos;$wu~Fp#ZP8~M#@8V+do zjCDRPkIbq03Pb{g!J)q)7b5=yn4SSmS5w^Z@w>vzPs9aNvl8+}DV968ZugZ8joTvVDjd5o?v4WREc1L|D%>=oOlmk#K7vOa?So!%7?l#Qg_iH8%BxuJKco zx*dvJ>pgec17PktnI_KmE|@X)N{9Sd)HR+v9k~h$ca4pukRf1>0=;%VcEVp&5My6Y z3`y-BG!2_|3A#0_v;#U1?~-@LebGRjG?)iZ3A5}hpktJn#I2F@bY%#00{VsRt;OL* zvh^|-BM^j5|C1V5i$GmOzH_`)>kQ1o9?Colvks$X!>d~%l(b1Cx;(H!pb;#i;H{F| zV8{jQ-g_2vvbO8Sm(ba=DYg9LA#$0Pv3$?4R^^HnHRTg5{x_1pYJp)}C2+$LJOg@W z4%ZxzTSfl3iV^m?|De$44xvH;60|{bq0~mjxb7z=$M`qywt}e;by$BObv|&`{=>FE z=`q7y(Csup2xPi(?QF1+`}U#SJF_Qk13x2^2mGc9QL*dmO0y6MhI(gDNiKEORZimkvIx0wcX|PqRdif?h)53 z)?da#7G44wW9ixzMd<4^}25MCjKfYa~mJka29;{U`L>N z#U>SC?*o6gj`ie^T>)7zD^UjNghXUT&HawSTP$ltz4LIrpr#R`5xRo;R1Y2#!^EAS z%nsj?jYzT?6!y7OBg*(8@rR}Ny(s0BK^K-5v?}+fTSD{t!W_6^hdP4$Qp7zdtav;O z2hBByRY}Lhr-5_8F_lktEcAGuBRBcFyYFp6+qL0I+tPW>0HEH#I2~3~14j{F<{&0n zxZ7=ix4TYSeeSHTKCjvBojanKjIPb##DEK||AjcqWPM|J;_hv?(8lPtF0U-D@$%F} zE*RK*8H|oAaa2=z_;ilcRNR7{*6p4jEOAD_i$1|X`AKHE9a1($m7b2VIu?2R(#G#@ zNHcv8Mtn+b?_F?MwsJK|OU;cb`G{X9c!FCPi3f|rE!ioT+0bvpBG7s+&dZETmNRp_oE6v4M-=PSBpT@0(UXp58LWV_31ARoC{J;^kWeD z1G#u1g_Dc-jUc_zSMgt-raC8y613aA7umYgzNqv^ZxOg^JszI7Pg8I(trH37X7lL#p=bd3i`gIOGLGju%{F6<4l3M@&zW8&fx${pG+%dH z^5JI@>=oVtFgjJLtzh8-6VFl1(5?Ek#Wd9yc}_-XLEUZQDK!Q3E8+6v9(jFTpr!Lp z&)fbw&`^Xk{4Ua?{g`i)=>vn4Tf+{7-e7$l&YHGs6v?$2E)+)Z^p=iMRyb||i5{1} zQ?z)YXqA+kft(m-rdqMR(%Iz%qo)Tj9p}2_3ukd+H#Ssb4`RKg8=4p+5X78NerRVQ;~j zhUNWt8k#5&B^nh0?Wgw7zYV5U5H%Gl=vQ^~2`cKvCza_WJ?}jF$4!GjK)zYea~`w7 z0D`ByEYTkV?An(At?z!Y-e`_z0;H^@D?pGzV!S;}e~1e*X0En%dI^cjcT8iKpYm1u z-Q&er0$xZy*%#~nQ7oKNQp*l|4jBVKgPw|*4phdJBw441Ll?LlU zWi)7=z??RzF8u0jwiYLr7mVBGGjh^cwmW(K+{e#)F43)X5J`1i9YM)Om#htuk5p?- zJA5KpXJC6&#Aiy2GFj=PPY4W2B1B*&;U!;!IZK?iTGx zIkHn!FjWYse+e@X&johD-rV94P$zKTQh*Yggpgek!NiVinLkM(~5CS zTGxO*Ds;R9bqp#%lJO{_!<3y&$(=2u+_xES;OiL=>t@68YHqyftYxry5lUjt35h{L z|6;)xFsuN<=k!w$(XvjuJXcOFb}+BT_w1|uqr$99{fuRwf~Qvp*a{#;UjAFt^hNMq{4i zEm7Dt8XdQ{qPT9!UKmjE?mIMAnG}^8446C7D3Le@Frk=qYqO}yW27F1fg(aA5XTd3 zW}YRpw6zbB{ZWt3w}P^V^w)KKi8>55Jn6+L4#NGIRxpzTQdc9)fsjhkZE_P47d(Cm z#wj5-mYe?AfaXyKoFhsbtEu*UZQCic7UcMjZPjfV`s4n8h99Vg!1<)AWIyYS%=`cMqkh7OEh#b|Wf$l~XkA2Qwr=QU;hAt}x`YnS8-x$IO~ zVx;qoQDiaC>PO?RjC0jMgT2X-kO$s|hNaHcG&E7~zOhjQ4Q6O>aA&@u8yr9=_B(%D z?Rf})aHif3>dHC1Qr$Y5doDa1lGi-&QYTo28kn&Nzn1gdQw`ng@u!hhg<5Eh>KGT7 zCPJNR%u zux%7Bt^kYD221@BI7Q&1I07k$V>J_0^fPM@r4}vdmf1t`y`GsB9pgFmV;soy;oDn3 z&r1Vbua^v0K4(yz{ZQnDSyx<3afsyx8R)VnJFjOVtaywJnbIf}y&kX+wFltm4Wup@ z$nf665B7b%8#@D2q1r+K-?Nu*zp#zLO)AA z&cHU5f7rlzn!;ipp-}M=2Ke9NXAz^UdB^*zB&rkZd*S!N5*oCLrtP*seCWv(BAR3J zMJP_*KjA!pTw1h;1_cq2LagO$pp+hIl~O2O%fvT}TfDJROQDgO%C_bWEdLDiT}M5R zg6<}G;(WjxoCoKn^wjxjUUdsGnYWDUonA%9eV1r^*Oe?@ zZJ>CT*@IS`KTP5*tfGwR4Pc>x5*&y~r(kC~KX^{3NBrD%F>@Q+D1LlfWJNVqoZ79k z;=rnkhG}4)c&Wo}d~Y5#{n_(C{E%{6?;Wy@x#&Yn@}N`ZyUK$FBV-La7#bic9-Kgz zTHll57RVmUfCfT@c^hq8JvlevRk+I22^G}#~T-JpJk}m46_cu`i-2L=~O0nJ$s%n+&cWjvXFl9G4h83+xF|`=E=%o;?eRx zED7iR_l$JqWpw0NT7v%yLs-x`xrw(sr77`71yI$aFbHkzh}a?dUCeCpV9D75{L5l) z0u24n%FMCJGYkrP1hSZ0Ai*`n<_$VYd>Y?3svtU5XCatcY2DbTg5@w9@%hq+;{~I< z&a{OUmH7T}dcBLzrL5>|G-n4oux$AKcMHS~K;c99&V(mpwLvueUbKyn6&~=0h6vpB zFJKRno|1n5tit1`kC-L9Ijc8J%OW!>Bo7gFaAh{0#*7P2@^P&RdaRJW$2NT0%AcziOwAUqm zEp$WvO3y@t<$2Xks|=c6j%SF-^N6Lo0vgCcr~@f;M&^M4OQXUSE7(LJoXr6%Py|@2 zuX1j)=-wD0YjRu!SQ9mI5-AAo2dz4Pc+QqO`zwIPiX~*fo4_*Dr!rI&0^$b2!EOq; zJFX-@fCZtwqBs@$AJ^Hk3zn1^@#j~JHW;2fGl*zOYZ-2P*aX!i+IvJH>O$2>R;k_? z7*e)?A69di{=|@oPtMN;KP$1S2;8xQT=c~hm7lasJ)|?V{tLAY|EN!qt ztRjTMc-ta!5)if`{9FjsU?eI~^4IkyKcY{!aL#R>_F6>%%FTPkq%h52T#vCNKG9kH zK_h@PzO7!r-EUq3{UFfAuTC+K+B+N1E#2_J(vuq|nG%!S7dirO$eIGVyNi0r&2;9Q zpSi5*42-Vhf63w3e#sc$W0c#PE0vN09>(L{o&nCa*T;*K3)Z}b11VeT1p8kk^6w5{ zGx`0`UdhnCjik}A1zj4kq%vEn|4z2&Y72}J3bnMd&91<)nI8SN-HM!MQ1%BGS2ABp z?&&q_J<0u$3u?7t1bGR_9dlz$P0ZZejsbLN`QvjZaA_j+qs0Jq8ECAJ-e~Dxr?W)% zJXqg<>=sOjSJT>>ha-Ll12P{`;d*Q4q;p!E8^jIZT_+*h6ZZ#fof!6=2%|n?9x$7S zNUblo*+@vQ?Q%gv=37DFXwmo4LdK)E7~&fmf*5dht=j4a(FBoaWqC9#n{+kb0I4;s zj@_P7X30kZ8Cy26To|kk1VhdxE6j&SHSndUF9s~SzYLuf|H*<0mhyF|!!qVnbFn6S z-idAMeGh(7n|UHniXyk;=~R`wA$5|FBpZ8=DarI5vs)-LTI9%}BW$ndA`I*!BHIMq zYA!pa^);ITk*zp714wMNBJTUG1qnR6_;fh&sNIErfWwyHx)@9}BaKc2#ViqhU!h$| zcgFMAaGgi~ln1qk2n5)sGXBBiPA2Mp#;Oa*?+p}+E+cX;Og;Ad!g%x!SYmW{2j`Gj zUNPp2AyLEj5h!c*F(>oVd1&Qp&zFroHzFdN+Idc;K~ZaLiwI-(LU{M!F}t*Fb1#*# zPGREnyfscY3%a{QyW0?l4Y&y-s$5od#AELv%`ycLp9bqI^)y#=e&PmG&qhiIb|@a` z2JPFur*{q&fr{Q}xacsj)zD~0B}nV*V)t8gLP00Y?n-0{LW2Pq$VF6Sj61jsEM27F zo@TYjZtm%lM3?t3S)-<0P*p4voR2goRMyq08yFbWyT|O`v2*9$g}JG@@kP4jrAS$w zNH==kXLUdfjs674&vl|h5ygk$JAYh+t{m~+UBSW1(mp|J{O!3G#59pPZd3$>q>Ylt zfRKgg7C=dxa=uKvD0hYczq|l!=TmD`A=)DoTN#~N^!ZS$PL-z!{Vcco{w&dQbFTUL z-WY8CJ2%HWUt9#S+#Jp=qCC_V&gvloPNjZ!nPL=&nC>#lXa_<~15Z}@tW*eQR^K4nUe4H@iID+8yX2~3$wDriR{o%5*5V5PGNTE<&qR&-Fr$T%O zQ`R90=XhUIIu~mp5D3Sx^MfIKB5_|b+<>SvFXM*OdwF!&=1`lI;7#7Np`_z>VHw-@ zA7?b`A{qj4%R@U3?ErtOPiO8yqgfdue%|;qjI8cn{qk9H*ZG|CupF{sRf>BIj)2US zfzY8;aTX?^$glv!e=M3<*bhjS+uiMe9TZ`lVdrSXwjt|Eo>UVsf34HuYx4#xaFFrN zMVW%PLQ}njSbJfDe1&qrTg%Gg6VevEX~snrKKT)^aqE5Z+eG5vcLN_Q4vrNq1t!eg z!5GOimMrYLU|v~=0WzJw=ox|VB3BXG^CqenwM*vDr2WX4jo1xFAEUTrY?`?; z+Qp6E+RPDQw6Nf)eu?&kTlZv+H$8hR^y%pF9hqwY*kAENkR`r!(yQi5NX>P9%cX?O zwHU-1|FW+$rMN9p-4>0oThTAnhh~;?Avji(mG8p*q;7!bd7cE)>%u2 z8x<513Y|#z8TUkG>|=;(kli!N;eJoYC7eE0J$b-vj0O^JauYtm@Kz@9=VQQugP-8= z4)Cmwkt1L%MoicTQ17_UER55Tl&Ve~tWc`B>K+uP*vyrU!+6ren*=Ss^|HC#+Hfq; z^T4kfDXEaj0zb*|K-av(%DoUtDn5SU>;NQX3lNf$TrgU2gNig42k-8WX9%PTAeX7y z_NOgREl$5^Eh{Vn1r&JVaZco7L2ysPd3!&jgnXn$XcZpFHI)qYyGIeV0CvL(2Q9Lx zG6Xdk3e6`CJ>L0nHaFlShHwH~L&j8UU2E%fa)NV{pXTJB7Rh%9AxffHpPmr#i*m4( zRtJrII z5KP;(sh6lBxEnJ5z&LRvbk3yU&6!_Bsz`Q?cJfQm2RWL@i5X)8u!QYBU+DWfin2BK zmAj}cNt+mf90n%JMFJB0!QlF4entG!Wi>+%>lnnb%Wbb!?Y{mEBK{p6nl<54>bGy- zHt3#))b=tol+UNkfNHUtL31O>qd%I=7DTe=J0iUI<7oyfzvDiug<%K?#g1K2%YLB# zEScQoE^DB=$sgSBoJR(2xxdu#b@t0jc-T*x8{f>MeFZz^@slT_4io)%Hi|1=H86;N zryTyivQiO;-2uN!%ebNF&^EgP^-h>AK%YD>+bh23{KcDZh?&sE2) z7QedUrnd9iM-r{PoFkfsRdsbE4qOU(+gs+-SxACEnRWw~4PYHytl|F-?GDga6K?1k!dB@h3{5KqHfP?AoJhOduTTty_7nNhM^qGp)yKI7eZ_jB zKty=lk~|a2AS5ttox1xTggED*t&m2pC(G8vS(-;Rx7pch z7-DT!bK$+_EG}Ehb*`2o9gecTGR7P#P5Z`J4*uJ1WcFYG)hT0_=h)cho5bSWdka2wbnT*q*$qg(+d zH%Fq+TbA`9&Nw(ZHJ4oMKBoL0Tq=N+y!$kmHUQ-epp1OkbGaL9N+2;(XoKK zECKm7MDf18t@j>8b_Mr>BSXX+Bqv0?j_UpsKu%dPmd9z!FTyBAZS3n4(z3F zr*|{GDhuJCqN69~AF%21so&y`Q8Bra;5VB3az7g2!Tm|GxApF#j?44cC0eY{ss^r} zI(5G_Rgc?7_o6CCjlKA}jrV-VGly8DbVX;R22#b@t^Rd~ihW0?#Y(`qJKFGx%>zkv zF-cLH(-s_-%XlkfV_>&t;x>nQXinsYOgC-=qbH-G`dlDE#TmxrfEGb!V$}KU=TG1A zmDP}U#~M35Wb(Nkqi5P2f+3)-g1&0k|5cpSDraS7g@~G}eR1zgJ2f`hn3;QE9cN+e z7UQ^eDisOXoSx1bna0m|3TPh+s=7_x29oa{&dDWqDgV}_wG5s<0C$1J%mfJ7Fgx-I zi-c|rCPXHppo0frFQpQfSupR}$dBNa02q1ZfYHPT9Bde{VA!iL(jj&VVEJV;kA|;H zDT-m{kbr=itE=l5hZp3>jXz4q%BJ(f_w5sLy7_cdD_7f`Kl|!hzN1G~6%-!bseT>p z>A4mcgw#jGXXq*oS{K^&)(i~3V9RzL{8o{_$mB|{;9+Ciu{{y?yDIpSCm;WU#Np^B z5rsy$hawS7&osx1&>QOgNAVrwf<8kS2iypEnA)~|RA3E*`yKfe=Sq8MD|YRe_K}5(Rm(mkJy{9h6n^4;{WOKKQ;M*sMmE9J_~kx}2j-y9$keZs_s zQw}k6cNKje8R6U={cXFUY8pAW)vcM;O7~w5X{LtD@`Ip%*0TKn`c{-UR4+yLy|<|4 zuj5aI{It55fwi0jm-3i-%SX*ouDcGoeQt24gek{OOiYNFH122SmM!>9TA9JY&({BM z8p1PFWM9A_uF}%ldbc&{2G1J5vh`U_N=@I*Hi|ncan~y|MfhDCw9!I4*f zE6bb?Tu1iHZB|^R`QKkjZKZom&g81G%${NKDe}&OTBsmRdOv!Bh!AWW&^KNAs^7ot zS8=vvD}$Btn-}|*{yXvhzwIRg*_xm9A2(CG&WT^&lfhk(uX7>rajWz9-9`kVGrt^5 z7#Nry{#g28RxFr2ZO1-evD5204c~Ma6JEBf?Xa@Jh<6Opwf+<}H?ygCP>#Fi;NZ}a zZ<~nc{rxsJ2tzSN&rAPAk%Ry7>n=j&<$LkMV(yxniekyyfq{YR!o}cB4fs6<3yN}b zK;4BocRS4=HerJTiPvv<@%0p-H&WrpRasLLSk{|{`^%pL$bM09IU|@(SY%WASA8zus_AUY_^d zcN&=)0eJ_fw2C3>#*gbuB^yKLO*nv-1wYSyaW_OsJ#?Fs?mA99r{9VE#a9O)3tn9V=`$=J7l3kqF{YQVc z6t!4at~Wo_AE9HZZH(ZIDb&OS^n6PWk%n+p&K?E5;AT z{oIVuDE$Piu_|EE$P6xUjQ-dn3vL!<`SladY6}Ey+O#Rtbzv@waubeYd6|&n!luALm>C~yL1zH+FdI4{v@lG7&g;EvZhNKz% zzgQYAXJ>b{H_PQU^S8o#%Ww89wVZV&F^XVsBv&5MUPa`GJtt*1dfCDvg_GrU%&&#( z>9V8gbq{yW8AkMc_x6ZX2#`&bd=v0~6Rv8_14q?xX*reI868~Js?&Wt zybw^kIM2e)8WhDOb?$xBI=Cisi_unyFm7E`fh7c7C5aaYM3TUv}B;4%dD@7hRV#p+y~l`j_mU9l!(m ze3kJ_cuEy_=bBwOXV=J<#MJelY_Fed(^V`?3k{I0*y<{+0>m^vu&rBhuY;70ER_GU z$8*nk{g0u+hTZJwe;pdqM*9y3Rg&&zjadbs;G|u2Tg+DtoPx`G*D-7`Xi}eFSYJOr zBzEDO!Y)%|Dnaq-NK*DzXSE*fU0}1NLZkbD1nL=F8@wa~41n1$--^RmSnU5Aowc%7 za#f9vTH=RI>Lm_OcJep+aY-$;!X9pimWF+3fsG&XJ$2nI5k*GHeX6c7cX^om)+A$oHRtEXDf3_tDX1qw2vG*R6jRG@~D0C z=x)sJEft4&{4Di0i~ZLNLX7^eD@D`dK=bs+-}1)8Qygk^W_phQ|7dv zZ|b9k-7!Ee-1SzVc5x+CM*L$$i){MOXD{y8*#ieYEw_tR^x5=RV}y5=bNOkO-CQ@T zmGd=(#-xl-YCn+FsrOUXXQzU4RN}uZHH`kDaH-??uh*9Nx^Hn#+3m=J z>SBh=wRXu92W*};QXLQQNe$nOg%_+Nb$08mwG15E?Lt>!ttUNM#yJJsDLC|}7)=we zPndh56B7xTR?Pg#+b-dQ=JQX`-*IJqEWwN`(9V> zm|iwVEIGGaF=`gOy3{)eT`?Ew>t*Bp)NnX07PL$MsXzH$f{8OaYr9@9#xJC|I;WGK z<^--BjZA?@ill%GQR^5q?I&^8JAZo3zMo)ul$iBgApl_ zZ~yvq|1)4~(-tMqpEI8R#I_?zDrJgWbZwZrhDLlqz_yy#Lh>6oZnO(p!er5&*1V6F z_Q~VL6o*cFW54-DHj#@tvD%7p=NQE6?0xq5FOsCj=Yu*(MjZcjcrZ$U@USo% z!>kD^(gQNxTxJCYTF3H5S2HvZKd{UHQ%FI5{{fTM>k=qz5{}_xZsT$iJ`~kX*!|j_ zWC-VSMaQ*JaxOGQh{3s)M7;B=mR4dOhWI`y>F7{_fk($-tm;cBo$P|1?){G;L002e zNMKNwdSSJ%^c;ix4)cAS5d!{A$5UG>1{gW;z4su|Wx~b7o?NSbdyAc9`gb^COkmee zTfe9EqmP7+XkfKTa(6d~qmqZ0mp4Sn(0kjqZKDEUbh7-_9-q)#-aKP5_ce_}q~JWa zZGKcZ9tT=VuL3D)SB-3yx?L&i3fH}2iQDWl+u-VffA?er!`UTw#g#X3r{6kH_44JY zDN-9__^xHF;L2&v?##}P{{t=feHx7oDi){0U8fto&)L=mC}YiOsm(knspD}7PssGO z8k&2%Dqq&b9jd6QR-%-MWvAXznKr3W@$rzw{r26b0Y!d$+rPMXw?Eukz2sy1cjPKW z0f2wAmUK1#!e3qMPXG}aQ zcQD%UWdz#`9Q3j3JQ=JIWz^R3V0%kEK;&!-*?Jb4PQp* zwm9?!C9TQmBD_8;ffYCGlfwV7qy~)=$4_S*ERWa6-%DPM=jkc<`0;e$%a_LGPj@R` zxbU}*tp1{`fLuIxl9tKgqkk$S{KQX|Jw1vij9>luCxiRW7PQGRCHm+;xcs%gXTK0H zb<@rl(!PR|%orDXw|LyWTE*InYPYoC`d#O~2LE!5oyz=|I}Qx~d9fG8T~a{vzto$? zcdx6|yC>2k9oLjlP#}FNL`0#?XG_lS{*m=ucPn?((;BztkYjc?LL%9_FUigOYuTQ? z8Gw&n!%&NXQ-B^PMTI@eziP`!g`3l{TkYu|ij@24Gu|H@r&^9>jJJAm?HeQbVwC^A z^Y`1Zj4$M7ETJK+2mT!n6kqK}%>CW@(_D0aqanYWo4uO}bmzGB3)93`tNkF&X3}2G zPn8zR?FY+qagz4)*KfCw7ouCcgigWhK3&^A+2YDPH&&NrqaLjs@x8mGjQ``-Xs{95 zAP(-v3SG-Cgd04du(}i>eFG*LrSEN5pzQg#Qq5h4iRsg*M;++&?LS$e_Qm~zX4D0+%0H(h!pnKsHjcY7M&wWhA* zKS28R%h;{^0XUieie7BD^4y>Be|DGd4CqYu@(ucI7Dq+WgciB&nC0HCRWRJLfspI! zP==rDiQqmGZKztG2YpT|NsaCgf5sU5Em>^|ikDm1{otP*g4s(4tcQKY2$um;Uao&E z6_dQTSXg4eidU_~+>jF|B!^axpgBIjg&eSS98e(p+Nk4|Z&bcyA4HAIM=z!U>!1G62rPfKkIfVp zH5HE2)u5^p8Y=MgyMo@$$hWOI@#bq6@2q7I&&l$&GS(c-nlm0%jV;GANn#1v#m1u@ z19RE**YI3N;9jmFzsRn4aOHzdg^IsB#@Y5fXMo>c>l9F_&qFfv+(76>mj0GcL{ z0~#v-&!rR}M@4K~GL0LpW!Q^)A;l`oyhySygF8jDbAwL=*S#mQxkMkuA+{Y>x=?MW zX#WgY+F}6W^c-EevD2LawVkG|N0ar6WtVE0;aHPIVdXk>OJ2K~zIt%UC`fzMT2(M;- zVm;Y<6@z=tN(0z){@%Ux11b?oOQ{)wTL2J(Y{3vVGvn`NVL3%a{1RZCK&6%W8$qiz znLX>)0Qb&pk~|2(NK?o;VdP4 z-4^Ym#RIPSVyhWg&%lDbyRDnJRc3y~PgH4jZD`KevG*47ZAppN%_knz-F%G-t*Sk4 zWx{(FD;IvvL;mvC{jr$%?;zt=t1}sjzj1y4jDG^LOC);X#T6~?Ye#I(Qh451R`Qn=)Gz?Xl+=qD5HCSEETwh6RB!iQ}N37=zp zA=(k^mx0rUpAra7z+F=N;mVN~v7RtUEC+{%&V#Y}pM8JwDm=gUd?c{7>F+&@J0;|Q zJvH|te$^rWD@I;_1W3~maJj9NVZUl(sc;=DWDVGq#(^t4X5Ucz1>h)5ej0a+|C!pA zdeC)I{=^~)vskT;*y+Hlkq z|Ia*OiefTUs^?0&(Gx@sc#aH-16nh6Z}t?fD)Z7xYPY1HpH_dL8Q;9TvsXa#T9be5 zcN>OTlArto*1X_0ig(ghwWZ7b2&%O|^~~V)<ckkXkTI4!4a$V#EJ>PPEa@a$+&@uSkn$@ej7Pf}H%gp>kF}6`;?CGT>{!C?d-B^1_tGbUJVBLE*$|L<=(MxyZNs1wx<^O^cjU56@cyd zaALyxs9q5#6ozDh(7zT2eIt|WOe!?y0oxpVJ&uu1j`;(%p1Hycm-V%-U%Td^@Zvz0 zF_(27XJ5H**_Y@0wr<d4uwuJ9qx%;VJE%Dx7N7I&|d7@k`t?j+r`M z3{#FW6BJ6i1zr+PtEP6Xb9KM9gs$_?v!5y|n$picT=OaXY`fUK1G-;2%Q$Qbl1)F2 z8b(UnP)W6KYBxOM_IozdOBV2ghr73NZt&vDvb~iTV%ywa>?Y^OEoWgX@kssP(a3}M zBPV-jnJg!)SRY9mls83e2*jS6E|S_A)O0uNf{IE7ZI&YBIBARxx`e(fDpu?1SVF8%(I45n4oL*RQYrIOkv1*m7)kGj@#mJ^{v0*E9 ztwmF=!UepHi06-+k-`f;o{c|8Zu)96?-3DQ{Gr-L#`p3*&&TbDjVeu_Hb3kaFECLw zNbL1eIaoMzdEJ3MYDWS$!Cw**63@QgvR_=FZr!@Im;6C;KgHe9>Dtw+4`P*qG?~RF zt|X{_`SRuDxpV8YExVN~cJi>WVs{#-f3$f@$cf0ISeI^5|JkNwBy>=u93Q(4e%vR8 zL;V+iy`nN>W8)Gaxm><}{kCo1>-v-n!Qa*rfk`Pfq$)ThXP%sEF0BIPImS$)WP*B>SQ%a?! z8M>9up}V^~{(JV`-*>)q{(qhIueI0O>VLE$gySXN z|8YX2UtlYd;FlDM{pt}xHtJCL2ceEVic;8jY> zK@FKK%p^=rdkbkUi*O5qm?^f-ZwYo;9Sq5f2vr{-n&@ke{DL9w)^tRCn(l}RUI)5<8Gf@hYj)?kD2Kf-n>j)QRXMc zFGDvmp1o(&aCg$Gf20i|m0qlI#LqO=r!;KQxsFdu@LtwxMw5+e`Yf&U!CtilYu_+K zVvT9Hi5y0&v-!yF{^;i+E(=8x!&vvH+)f93C1^f)huPT_*{swtjfVq6?Np*7tj(?b zpLS%}DWo~Wn1qC=!4uI}?kb|sLye4p%~pbz>%@;1vUyMT?8|Tc#+H@`W@hXbl^qY+ zDVP`;&w%L=Ty6dsFy0Iu=MWkf)}Om5bew(z^vaB2=%0-qjlz#lxT(i&H{^YRIf?NFw@Hbk^~-(O&C4ZZm6a*@Y0e?cPQ*N*r#00zgt+OQzcrWJ|unpP^WkQ{(YUU z6#0jbAM>H1Ip7-^ykIz+T-}!ojm-n-k+4R(u4$zisYipNE z>7^R8D8x@B1fOeu@MOre))M(v;ya7~4yn<89ThhJY#>Ul)mEo5afQFi{mogW7ccakT!)IRsDy1<-;*+|Y^?);eJv*|BO|<3 z{Q1+TOH@>ZAMSf*XLH-mcb>zES58w>Q!`N$U}tZhv8r|>#kmQl)bz>jAJ2`<%<}f> zV-$SAzMD{5N{h+THl*#UU#AzczIo%ujV1aEWm-Wn=fNMtOHNLPKO1|9iNomzsif?d1D^k6%@tz!$P6I6D6YSmjA)$)p}Sf6dh+ z8yVRzw5P7#TamJAQt50Zz9#fu7_Y#J6uB2Fs=-O=e*Bc+kM{|8rEk%my`zPB5EL{t z+FRg}-Fhkd$@NnoI*&m5-MqhQKsB<){gkrME}%5am5-C`?Z`3b&eAHbF zHO+EBrmJPUv2|lwAVS=}9vT(pmy~pqT{ZjO)1t>2%1B6TrQn1YfBSZW{OVOk78ZiR zLJJhD*$hclRh58rAiT%a)YK`)@1)-Lq^Tsr)u0hhvS&T}LA7YR?eP7@o#%6%^z-xc zrJJk6=!U)0M~@y+gz>{BkXBG2L5}q0AT#JyoXY5pjg3?0=jMz?f{~9N5ruMU{&60n zmZ*4~ECoOJEio}iw+25-_db(p17EvK`P9tJjk|X#VfCq&fd{?a#Mt;Ya*2nRHzYXN z!+fy7s-9qPyYx&X-d8B0%XeIKV0jev4#y!Kb!{lmAgSYP1*O5opHTSi(MPdQyxmv@Zn%D~k{iYK?n9{OG#_bSnw zy!PzuPJvsjS^uwd@JQcR=~$wE!@4+2Lq=(FunAQ&THL;N_*Q=a?!_by9;z);19%@r zY4T}k`}PdGw!VDfLxtTZe50(1LJ^qjYrUBoUXy;m>2@Lw5LOt^BabewUpe;ST{ za?{+Su&{84os0Lm;NB2d$RuBNRPyB!N7o!|=o#;|qZ;pvW)I(i0* z#0&8WT20)CLJ-wNFKBsh4PmZ&u|_OVg2f`4|GB^v%A;JU&qjH{ zq#olRQ;TBs{jdf01^>!mS$I-}j7iep;=*qJ)5SYEHHs|H^!N7*ghic3Q_A?**`SKO z^Dd0U#^mt4^gRCKEa;Z{;hK=c_@!8qgm0!@z`_>LsLU~Fo=|)QEYZBe? zMn_IKM|YsBub3=aEl2t7vc86W%Sy?A*81?<)>tFU%#p*d+WhPa37%rP&g!}v(?l_<;ly*IOK-oeY=uq`%!plV~N*v5ZeDNzQIf?6J^BO;&)5-HXQq!)w3Hw4TF z^cNIN((m5BO(Yvgo74B`7Zh1jOy;yE3SMD*nhF=r5XskiJD7UO;l>3T)&Xj#C8Bc6K{o>&)WaQ_-a3-v`U5HDo;xMlf2xCA_b6Q52!?V~d@j z2aH?)bh80Iz}m-$yMssDkN+NY6IKGe`ySm~@TOLDzVTw@T>s&Us)j;Z&kZp#y3N_P z2KdXvf6XUsC3d@&7yL%+%a>5{n&wSYC!)ezW6JiWEGUYDnG>Z_|%uxh+iBJ=nB#(C|D z;bdAFteTl=V}H)40GK%5)AnH4f^+pk;*Ui(x33B?OwFeKE?PbR^>l1mfuCFSd=~|~ z!4hhF`#g5I)VrJZc3kPoLib&x+j%z8s>$Q?yl&3R>Dds^S}9Zb%r5^I_-Y zy>;uN)s-vfFf6vGwa1)fpJz(-Y()2V6o)fRmQ>695xrdOZi9Mj6KamPPd2pPw?w8S zCF#ml>xaFgg90+qcM>BYVtGJtj%hs^V~+3I)Jo2snNe@5Bss#^YR3XI?1*VhFcQb8 zT%oLpz3a7ntM$rMn7@^i?)qQ`jg%(ZGPG_oIW>rD!u^z>R$k6KwN|!WxPR7sXH@Z( zOUu9^`~HelPLFx`q=@*Q_+*k$R$uA+?A1s0i><|3%T%^AWu2Xl9p8J# z)(S|eB}yw_&zIC{r3xiXzTq--2}Ata8m`i5pZshWK@#vmZ1i*Us%&UrL@&(+9Eu9r zt5bARC#mlFMRcd}I;D9gW$~61PqCii}z%d z4p@t|dD&HUF?#9j_3*@CCdMh6)CEIsiIFLr<@4|0 zsHi5wvPa3!9wt9C>&rd^Zsz++N+Dw;jvTtgCHc(Actz&Vx~n5){yGUS?mW1EAB$N- zzI>^r^5UvE>YSh&tf5ln5BvPt>k5m)+KP>AZEY=gH43Bx3hBTZ-3P@QZ)oD+Ti1nz z`X>ZP7{tvEa^;wj>DsAXR&X3$M@L__E*?u`vD3CmbFA1kn2WgsQ0C?wJ1fJcR)+ww z=#i1D;rJd?Q~Gkzf@FS_T(8dx-8CQZ2G}%6E4%42*}&l5?7$%)K#`M^;~NxYc=n5_ zsVRW$q03{pT00V-sJH-v%ZeU5p;LDp<~Uj&e74YwrKR$uyHmse*|HC#dfMAPuCgij z5ewFP+t-!UJv%RWxfAz4fC|0&{{SlKzO;wrM_z8O4u|Lqb%LmkC#e<GhkhsB}r7G%m%cH1o}xY8A5so@%|a8eOFrD8fmsfnEwDmw;# z{Tb41bTSVeJ4V}&vum(%;{5fBG>|-c6EYi=Z(`2C`f}z9jd^4mDS?O zgHmA&WXI%hJcH*R8SlZ=POG19=Sn4DO>C%jQYGeDCP{uzIehDr zz&)UAwlUhX-WNE|^=)iM>?*&L(&b;GxOS~+KJRHSwqX=rn_D?~b9s>Bk)(AlJ+>rZWB|mRASa1;tMBx~u zdsfv7g(I{+za|O_ipZ0rKWtgyfo!IOhA4MAIsKFGy^w3B?gD>`3^2Dqd-zYTv?oZn zFBXqJfAaV-)nEa9z}b01!bn_nI$kLB?9zIg;&^V6qKRGWdcLN|d1BGb`3a^Os7+M34qQ&mMl=wLFshTsIBmxRRDu;B-@1O|z+J)H1MCX2 zk(tA2{K#6g~6g`~(=Hh^H($FKc}R_j|uW~o50$_InB{tJR|Dlndjod<_d7&Q{t7#XViE5m0gU|CW`W-lJ$Z%$AYT9D5r&+djP`zM6zmb zQ`NmI55O!1X8hKA70V)zeEvScIca)f+@Omz@0$!2ZF-M~-|1nu?Lb}IzzJe>c4jdH z{@B2~+_iy7T0c#ye(}-IOsq@rOhU?xIA{0tg074j9zS2;WAD#ae_F`Ncz%Oq{kwPX{p45YC8SdNzit{*j}o~!ZzGm3m>zyljy~3`k38~nrot?dS*_3A<@3&c zGZ|hgGW)7D!lu%eHr!oNPg}PCuzle8JBNSW^hB0W49Vfei{oWMc=twP;Zf!7myrLe zNc$2aRQD>?`jkX;ViYsJN-)##J!6&N`2BnC5oc)hrJC0RCUr`8zD6HV&K|^4 zSfY3_3B7xO*zK~^Ls`@dJEFg*c=9+xE5n2FW}gVP3>hsg`cywUoYK>iLyFP6kerf> z6Q@f~Zjo5yGwEiH8jR#MBx2D>`hfp6MD<7enuuo)gL<(_6~R4WM)<)uA{E2 zujfgL=}+LgaRV2odqZ0szEK63x+kfgv62&BxFD^se-kKRLj=3g)c81K5nJMZ5H2Z$ zI4zJIckSMmT2G$`=0$L|7`{L{O*LxQ3_F#@+8nvBRS^i7Qux)W7MMjC%YlzWNm;qR zUmWe1nBShcUqZ>Qii72y3^Sf56@U3c9+j^cCmz!w#0!%>&;bIYvI7O_Ij5wFI~kMB z6+n1ubH&s}w*x6Q_X6`VD`95A9Oqt3&tQ?V%SFcZnqf@}7@H^fwp#rE-3|4)sj}Tq z-J*uC-O`H5c8T>axqEp+|ArDvv%|oZgbmKd5mdv3wOR%RFcjeu?&2~*6g$_M7`=mg zrw0caKF-cY(!VKxuI&TV+vtS!#EzbX!$q8|@?8YWm#cRXWL=a7mbkA71Wu^gPz?O? z&X1B(26ptzY8-T22RxIN@m@KKGP2ig+9W)TYzaqIJo0JVo#HO}F2r;eqXjH{{L_6> zoEFkCmhvs(o8>JMs+A;xT3EsvS4;Isz%Y7(nOP5{ifC7Rheap8e+R&ieo*&(P}rQN`jS&D?_b~sQ$JM3PHbciZMJ?%X1HCxFzysZOVp=P%CTQ zWqy9rulwsFmFC8c2Jv%%u(6BVj$z>FZQXUe(GzMa`nqdUdKlN#auN|`t}Eo9jLg2@ zT~@&YzU)17+ugY{I6%f)iZh9fHL85BikJQU!`%wn@3M5NX55CvF&okeYF`T1pD};= zqwa`ktI@DyPJCH^a`GZR(y-gHaeg6+H^WnI1#!C*dvmo{qgtXr9np|j90ps7Uxg-r zLoY6m#>uW57Cuj4vT@c)PEX0LlUY9||M^()^62cebz0t7j1(H?NVn*m8l~Pq$xVal z1fbe>MrEzf4Tllqiv_M6`Pyh7?1pHx{&G3l?icT}pKuHF&H0=Xp@n4d+8JV#IG%H@ zpUt1uia4FuHrHD1tI8{_c%yrE>VWhjFWu_S5|gvgB)WM}_44fpOQ74T8~^gHDbAQ)Y5*xhfXoI*}Czi2glp`A5G%iyBh zRP^CP>280bh=de04U*&bcl!vFwq3kQA&bCOEoz~i+j5T-YM|5C@5Tcxh?4Ns*~)6$ zIb&2_pb)uv{(zJy|Ih|1fO856#a~l{*2@K6(SJ<%H3CSvs4@rHkY1kIV*+I9$B!S+ z%fz>9*xK@0s5U>m^Hu83SGDDlM&^)*R9$y1MyA-2#PT!&3=&%HC6f~q!nTbaqF)T< zpFO+GR63I$3=qRs)M@K`-P3fT#LWZ(C>bbL8+yyat#+5f6?$k;@3%-%y!G#nUo}6XUze`$^-4KS zxmnRW5jp&$nhZ&LP)J=t?E|9(0=3pFrEa2P5WP|D7!Vs*qdP?0In|u=n>d zseg_1V4L66E_XL58H*3U>}|fC^gn*C`HFE)O@}xerqqrX==E>}X*JPBb1DhbslL>; z746fi@AEE_;xze@6hZk1PUl#@^IE;Wv)Z>7Ac6y26VX7Zl?X^WQXzbUd;;ZV$JB#p zWvxF%9%{lf0g@?>O%bF&=m#ru>yS0dsI*A3W@<7@uA(dIPq4_}CkN9zrAi!j=hJKH z^`jx>9~sF&RSCwmbhZ6VYFIi zjV*P~$p~%(Kg5{PvQxtf#X{g>UT%4lhLAgjRN28uL+Nbz!<#Zgwf9>QZX0uNN$yhA zFV4URL`sQt!&>z0KWtmC?g+ zM9?u^w<vFnQfpNcP;>voI1;g9@x#;U)&a_4?=EX61@MUg!a%>adtm z7!RO3MiyEqGIH3J42M&*ME@Wcfg|FwmlZRJrD4%;HuqtE^bdTuyE2SqzjpQNIoYd} zyzahFGL(5!rmc%LhcCB?h({7!=J*g8NI~0f_IviGxk|6aXdb!Ri%rBA#69#|NIm%c`(l3NiwDU^Sjvw5DO_J>%GX1v{zfW!)3clH~UH z#U5@|;e4}KpBFVy6-^xy-v}wvlptPVAa5o*Bd4C-z2MyUmK|D)1$}dxVQFd7D*v0!igA-|Cgl9yuDX*SQ4sy5r=E-Iq zndI3kwet%TCGHL11OksT@o6{%9fbgqS0Fe8WJMGJQn+EQHu-| z{E;02yD%evN55RoTMPk)D6pqVu1n0-MW~8bMb9Vxoj(%W_SSUNw^o^o{f!xSZ$Sa@ zKg>sPGvBnmb2ECu-#J-~ZmM1`TyNV6lYu6H*3?*3V7mCGaN)T3)u=(ACMyS-HJ1Uy zBmh#GL}jM$xn|DSE~q!vDY%4^HJ7>UBK5oTKsl#xs>S7OvbMjxm#&P_!ijd>FIp~0_r&>Hll-!uhJ|oE$>!IkB6@Qzat8JyF?s!1O z{M$!*s2F+VVQ;8p=v_-H`|xNjGz$y!jJ^KLcv743xAzr7db|tj!^HUIE)gm5t z6Y<9G-2YyB;n(hPPEoXS+5;yi;hDC$ppHcK)WZv~ymg`V*T5p^@|u8A&hns-3?P=R zL(BsfaYH#4Q3=`hLni`!L`oVPo7&NuIGVS|f`x_1NgH~)KgsLVjT2_U?(Wzv$8-s% zODs3n?Cz{u_|H?-@m{Kaa>GE>+Z_N^;m9(_odhLc+*CSm6lR>API z6~o+u6dvCf@-*34UJe2-GbJ$O&#}lQ3A@*RQhmoh?;~2LBj#5LofP9LLGN3fHt@^} znRJ(ET37_?g~fnutK-H zOwQ0FK)Cbj{)*qt@sg9mLrz{c9MGtLwfpDO^V7?=S>(S?K*2!DVS0wldJee{sq*Z& zc+SsJ`U7rDc^aQ{Avwc2E!g??D8emyD!s*0+xeOwOPq7nOi4eS0y?Ta$v!#W{~1x{ z+H*OLj`i(~b3$4}*C(t^IE0YdLSianbYDg5Dgv>%o?;Tv%wR-T`MDeYL{f;5O5kC5#EgK?eaf!=`;_uGl}Vx*YPbnNS0_(%kNA4P%20$L5(I z@P2qo3ooewQoTTOzxWRj^wheSoy!2dpriF%L!Cf^F!SLiohYa7yE6TIJk*w^qx z9mzc>w7FE=5JAw@Kd$;j-xW8#Tnn%U!hE%?Q`A-ksI_R4?DDb$!BRIHDdBCQDXhOtCo=^@5F@At~PrMBx^ zvd}kH^_CRc3W$k=taoLZy)PB^+m?Hv+`wVe4ty&}Ng77r4OQ00EN+J*koZg<`KB07 zAfYdeyw72Z$qx+Ri6B-|su=NuMYBW_v_01$z4i-wISDG5{AaQxx9ox+bnH^IEUhw) zgZ*X3uaC*DUGsz78M{VN@Or=B$Bz!^%k{Oj;ng1>Jb2K)xSg_=p_U=Q0em)<=7p9~ z6!2>@jq6MOxhWD&)7A=wHG$n?eC%?2qsC|P&!390b(Z%n%sgbocK9UMc%an((QXQh z{%`7w!Gxf^=xrz4#gzH2{;J@|;iR}iOKl>Fcq}7;V2)U$ezAKU7OXx=ln=sUCML z;NrHwv6tlNHxldRx9-8qZ{9EYtSu8o=ZKKGoh}@8-V>igakFZsOT+815S^)JE4 zPC&!@8*_aK(!|`hX(dF0j}io$X1-zI)IhcA{AMTYS;pXv|Ece7NrBAaqB0$RJLm7^RU|!O*oyCh3dDsey zg6rYVJ0F5wv=5Ue!}5Ie+(!?jsw!3DW^4vSdVYNeXW-SV)oy#|j2u%Rsa*1_+uNHA z!pa+j#i600)`5kM4`)c_G%MVO$?x!!GJ#4Nn-lGbss}{_ZjwbIn)}#sNN`Z1=CEEzN#`aZ694;k+xqVnokzkHro*&;KiSBZ8Kzb)t1lVWv=u33zTZiq z_#}RLi;l(vth4_Zqap*3xwikUB+~w^Bu?(FPb!CfcCf47aJ;+JNq zL~^J~SRqu)*khwRi`0ZOe1u`i{c(xop*S+4=pps>bTZkfV>$1*|LoI(5e!}Fn7VF4J&{)x;-0MeG#Mq&v{%ym&Ypq3$co~H`}W?R-9K*9(zIGA zQ{B^tQtH(!)^q73nV~~=RjvaRhFUhS%gb?1DO>ftmw{xE{9BB~F(Se93E1awxWJ3 zEja8X+GBEOd60T|bB~bdWsdYaj^*gSXP1dK-S1~=SHK#-!&W?M{LcGvKhpdn`guxP zwNoI~-8Zy}<({6nV7uZDU0+-C0Am*iYGp{M>x7GSFJHu5PL6oeb!J=wd~`7i1f-;- zbGE|u0&xx#@QyAa;lggwCDFG81^WyZ@s}=i{t{6g=sNc)&$YKi$nELTRT9z7Z|Emx zIoGC5mb8k%=WAL+eD=NQ0yv?egryowoa#Nmeub@T!=``RiOo(T_2i6HlH}Gs8(Va% z9&r^eg(+Umar5>2!f2L#7uU%SwP?s#+yB2gj2m4O4B(nAGv(X#Onq1vF@P}4Hw6ON6#(hI=cX7S#KAQcIJvuCLxz;*Uw@^97Y9Cfq z5YO@c9Y{w@`#Q-@H33r98cVI3D@o;Ay62B^D#6%Ocow~1T|#$GJGI?M-kDhWB5{yO z$Kg9$jyGIt!W3a`v2S{E);>L4f8BcK=C9Q~N@!i`naEO03T0Lo(ou2j(NsOa|n)Mr1|`VHfB!PKBUYDh1D z=K+SQs57!2*M3gakX${Vj45nA)xQ1pvA(|kn*GnbX=p6|#u0M8clbrTw6YpvL{Mh- zm-A*mu*BX|PzW?ugDDpJU-WcyO)z-r!UfD}AeO-7Ycx{a@i5_Ocqo?f1?txl7Dhb} z1dS$3+ae^D3&dT+CFaJB?kY;rBJ7@?wP?(Ne8Kmg;dfYr^{oQmos>{s`M;VL9npV* zpuCTu*H!av~uLG zRF40h`%bs?umsJSQBmdu;tncot-T2B3LtS-N31fC`vY7(bI)d%ebe$c%$}vIImu$0 z6+k#zE3@;+lM)9>0WX0HdqC*eSTxaa2@DV(H;e_yALUwQl#<^{Ju%2Zu7D)74%!OV z(eUXadhmsztYL2I^P7y`w&V?&t~Da=U}7cyx^0hgOu9%0yg8VvJ3Bk&Hi5(UD=HF{ zq{9zLQH*{t#2UA0glG1o7!!ptN^LlcWSFcKDVMIjV7Z3_H z(7p=IQv{E9t(Y**ISGyF(j8RKgJz-tE1e8;+0*YQYhRouGG{nNlVctDl8%qBUx!Vu zck#a#LD82goywErL#v}btF)#^rNX-VqC`hYbh%woKQ}m;%QU>ZjU^w((sXZJEkF=i zl?~kgZV8HteAP44?R14}AA5|Yhc(~$T>sk;PIhP2bICOnZET#cmXw-`JUQB@f^Z1B ziP<~YM-4`Ge}%gc3P5mLG2Nh!qTV>(~><+&|RUYz`?p+?4L9gVwrWiRxmf!U{#!a z5_^@$qgt-CG%6^RqN%+3dU-d6sfqa~*>H*SuFlM?WueB_lXb7qz;_ve-B=jZ+1BN5 zM1>to!ObzI{PNZv&KTK*4TfmWG?-AcK^((6S4=QTT0uOg;!o94gUQ3TKVU6Q>E_M5 zoLN1(i}WV=*;vCQAQ0Mdh7^Z_OUobLcQs-?;LY*yiL;Aij*eWOH#{`$TNHLX5`?kd zygX?5R>!NPXSczgp11?veMWKdk<9o3kZ6TA_4K?6{7K-mr@+Aw)s%Be7s-`$`$ZV1 zCN>sOZ^*^Ye&5V2U3!t1lot2i3v%~eTl>NX`D!h5jYhX=X()CUPs8E_t#Bbx;lCcv zt&6*Qc(7xDpZMa=)fX^4U1E;P$NBl<&O2x{b}4x%;vSQH&9{@_p!)LVOW#uZPlzua zzGVK~pHJ86R!YAOMP|Tb2>m0H0(~1wKn%ZYu0_ z<}I3c{{})!BlLH87+7~9R1m+LD{VQGK+WiuUOv9UcwIn{*I~{ek@u#EEqvzYVv!+% z4NkmLn$>QDDR24d4$o}lR_D)c0WXIEVa&1nS&_BPcv3E$I1(QI8qMF2 zE8aY}?~hTKKF;WoXvnwVEHOCp-dJ1u9sb7bJ5YVg?=vi;dGn{^IS#2TTC9vO!m?I3 z5CL}X%&{jKNL8RH)}!5z2@E4vImrtb`1i@&XQZcgj<~&xf%?s@ki z=zu_kAS`-*z7*Ichy(X3c;t9y-g$eg4rNLuaLdEUJ^|-5rWijNf4UhQi}-FNP7g{$M!3tC!cZm|XF6B_Jhz)D`T27N=7adK@?O2}|7GAmA0&S8u)RbvM)(~B z$r$h4IS(ftc{Uu6Re1@73E9jLBO}Y=9yP2xtjaphj`s3@E8Pi=F*S7-_7i5}o>Bt) zj1=K~@Z1VEZGgoiwYR{%>Y<|TdiCYYm&$(`ShXH65&e~KD!3i5f|5L~6JPNQQt?jE zS+&SMX}Q$sQo`MvtMl@cPHkR}4j%T`iBW(4q?u z1sWzNkT<&bHA;;SK!8wS5V^5;j8_vuY6rm-A~!A(qpnZ)G_iB|d_niiUt&nqtDoqX z954ZM$FY^D=b(S*6D&=RD8ZW#sF!*Z(qYBhx$AZb)+%eC=&067&%Y0=-SG;*vYhP) z{bvMZN4maepql#f_-A&n-`hjj01_HbR_|fSWhR*oeB*9UT}B5GLPzF5JV-B2IPa1Vm4ct=aC6D~{3nOM*=Jo@rT;yvOn zAHGsH+95Q$H_&~sd6+2tYY7z!>0NJvxsos zF{>|C(Q-_#i*to+N3<~38;xuTluXS%c6|j`f-FHe_%)H`8l1B5N#J$65hzViz*ym` za$TX-A91J-Z;OaT<%pTSZG+Eks$YljSC09hKw4ZzQc^9sRz^m~0~pstMMVXhz)r^P zi3VegMcH;}Py0`h=GD|9jfFwT*3!}vXi$H+Y?2>oBloN^XYw*6=`!C1254*8w2=m5 zjpp~m3l6Wm`}eGL>mS$U(g^GNg7@_1P4jYR4Z8J6c_eq$xh#5@p=~?+2 z#kIK+D+#oS#!n+#6wz6a{~VA0C)Fv7Mlbn%f}E(BuO);^x8}PD#GJNtjuyBWlaPnU zY)`0%ZAmONgT|FA$hNe&EEwu-AG{)Z|DeA-7N%$g0tSm8SuMM-s#i=RyHa{F$0+_2kz;I4kaGiZ_UyMvRTyXMPYhgX62#!YYo=-TC^5kBgW0 z3Yhqg-+DJTKCHI|_a97TYhaAJ&diK2alCZ}7;;aLOe3XqfOiD9a6Qb!)T<(vV>lBN z6Id&+Z(U2!xP6EypYk*J_Os@qxl8o%{^E$dY%y@+_cI{QZf^ zDJglYzrfl9H--=VhgvP+DWs~#0A)UW^homQ(@V(G3l}a3 z#oP{Kf2EgGV9*qbsDJvmd~mQe4}oMHTwGkL#n%$r@lRQ)Bp*HTZ+Hy53lcIA+Cez1 z=|HggUWRgFUf!3km;A!QB@gH%9u3}gHM)sSe>IP4+Ee%?##*8rvD+x;KTOQgDG3Q@ zOncLF`pXc1r{41YRsveDlWut5=q3I0yuv<%t*q0-Lu=T)Tm_?F`8zkCRSK6BUePO zC$bY%l0uZM;^rERFv~8CZ&TR_pfKd>ojeF|#=)8XG5EArKw|4EUicD=;YJ~-1yy~{T0Fn_Tk zehG~~6<2-{N-)X*YV_9kQw!+aOD3Umr z4Wdbgl74I|+Hv~oeHodJ6I^U9nCl(J13z;VnT}BQysLsoh$47Rs7dqVM4j%n*Q|}Y zHywSQ0z;Ii6a_GJrJE0KAZBAeLXWZ?T0y7~gm!7aLQmsFm6L-P5R>pA7kYu`u5 z!2FpqFEuT3_8bm4Ni9=PFbdM(M>Bt|5knTJV;XQ>k(A4#we$n;bL!dAc`gzrw*@)h z`vs@{t7`>7tUkxGYFN{q5Iy{ZCxPQ(Va$idy7|hC3AuUYRz=6Xj&@E!1;W4wK3r=zB!*s}B$FKiDzYHi96T%uR!KGrR#F}y1 z&JD8t>)pfVRWj^osOG@GQFy*STtnP>V5a0+J`LD*1Pu-|Ys+f*e%8QCUZAl(HK3S+;gY5KeBr%{Z*);iL9J5TBMC58~H{rjHk;&`9|yxetj^4KU*FU=AgIaI>NAl@!5naM@+{pQnz2m`b} zM#i^}ZC{(FvAm*pDU^f6&1fM=J+wsKmA>;e68EDFRGm8L$yh(;@Wp*kJ2;)pe~d}} z%^OZQ|3-ttdTVX1GDSWr7`ko043s4BY~I!|lz;u2*-+G+h=fGo-4v9V^pmLfR;4yJ zHZeOEG%z;;IUxvzQ1I=8gt)=d0{JL`{-cmbKVF!eUy9%*{k@^-Zj!l@Q$>vQciZ1X{u0=Kfp>Ajll+>Bo|jhZBBW-+unYrr04cJAD?h-&+RZ zFv&&cWz5r87JH5k;{}2H(!aqk_Ydb##gE2d9iw684E!ng2 z84IJ)IPk?^EtswbMDjI=J43{{)xGrs*R35FBXF_mdPR`3m|k=LRZ=Q*h+~n#B|GGQ zdVR9SB3{()+MnlzO13%lKmVYg#+C#`<9%)1Tf0`*dpZPV9 z`8H|>H!o=X;~Cr2PceM`Lz#}g!qlnwkXrsa5W<<(E%EZ zwpP`MJ5_s1y?EH;BH%E7vNxmU9F{G$WT^@<)quo9LPK9~G6V;ZzOJpS8?Ste2fD=y zXWXTU8$i73c~_L9pEf%d#VW!;9K8$q>HLFOY+(>^uMEFy_4;SLup;dMay=g`hI(>r zyQ>}tCEJ($K}&}mhak9I!3E01YjCGE22ASB=JO-{$WCKC3c&G_BF`&eaRzGi9f2y6l*nICS)YiAFS8erXP%cH-; zS+=xT^pBTZ>37lhC95oUcGC*PDO%f;&^}m;Ecka;x-pD~bvL3gFM)-iOAABH2z8DZ z-0DMa?Z#X)AF+VfOr?7SCE9#O_9jer8GCB3F{l%LN7mYyd7o`xa~Rwn${U=xtHTiw zd^9V&etCI(H*ekQ*GNTJ8ZMECMMYhRkbAx93cDBL>gf2ALW@xn*s+MQ8Fqj!5Ik&b zZYJNNZca`~`4%5vx#E#nHd#e)VHol_S4?tgKpZ#P5rIG` zk0Ni2-nNZ`Y<5jYqU`d4|C3O5Nhhb0p4Klomp~i?6vHGeJdkN;(U%SCaLX+g7MoV2 zc)drW7o)HKsBy?O(`7ps zXDt^h>^wv7b{aA0>_p9)2R?z#j@^;A^7wB}?YTm}UwJLM{GpC(E3f1qCqntjfhj6% zXnbzlsq|>03DPZ-M+4cHu*DdJ=-YD-9})=cX6({BF&r{3!y2xi);n2rNL2R9zhH6>Xrw9ZWdt+n(NQ&iwTeDPPwuWIuI-tuGY zF%u)lHsE7zs?)X+RuOVqQLip%Ruy>-BslpL-9$H^c~vJx&lu&U#)vR?OH!==3;C^i z_#O7HAqmSG8`nhiZ20F-+kw8dbI&oH(FW^#*d`p~e!#@k&BHDFQ#$53%&k@xNc+P< z5NyGQK26IDc7<7*u25=`Te%WZ$sRi3iJM{=s@Zda`Ibz=F6FtY$$VKSoX{{)*7>z> zQ1rM?SCUbmap{=zGZ@s75&^z`vtnGgg7(%kYaIMHg&^b7%5T-ZXXp@SS9jdlsj6D? zKDXgpewNab&J5fq5c;UKuM~jffP@_E8fd)}-i?5&!4w$; zdqZZdl`6EUxmn)~35Ul;n^TDp(uDDo#{SmlNlHnXfIOYAuP+V`F}-Mbj)I{bkN%T~ z5AT8N8DCj=tvMx-rVEScCmrB-c?wv#uu3a&b$GM4ALC@vn)H#~8izUS8^HIkaU$$q7*h;Jy~ zMeXw5DNzkVp5uS$yJ&zZX$V@EmhbK{sXyWiqm%(#1JgX-)MYT-}B#;EOr9E{|4l>`|aNY zQc+tTqN1a__~XS#I6%^mu@Qp$>8d%nX)0OvyA6!qMIIIw?$~YT=rIrqt}t#mP^V+x z>hR}`kKsT0jLfjG@tIwWAn6yZVeZQmhCR#qA*-R*>pxkfu2^5l{Xo}0e8+>oA7LXL z_4fYxAdksbBrq0fX}!*QVzBVX&Qti7nA~0<_WT{_v$_Kn5rCg2~sN)Dl*C-tss1>%&YLfyg_O)ar>^{9SbQOkXPP` zZds)+VQ&AXrZ-b@gLPZbNWi)3- ziIzG#S9wCKUoTnlXu12x*uL{GhJ#HA=NcF)ZR(D{CnGyLgG-pOu6}G)jy!?1rm>Tb z1NpZGu>gp(_(#3OI7)Z+)`NLsHeFS}WXBbhYxigYdYF)ceFE8^vK zQ-qy)V;DNpU<)yE-u(JF=3uu+FQ+ea`}edp=p2Lj7oiM+c1yTm!U_s4*EKRS-SeU) zk*e$hJ^G4`8Ogx$fBO76BszM?WN_+msXixGz&x_)r0nMP>y-(1icta?b%$7LRzRRP zPux&1C@zhvP2Rapu@mu5wEFZ^5u_bElrhPo2p8 zmg&EaMG?yzz7_yj*z((&Y`rK_HAMcUV;EUCp2u#NkCmtOnX(clJ>Ro$Pv}+AlNg^S zfU)@N$RjGrd(IdR(vAB^R1)mXrM}<%wmn5S&#(WMa2qpQoV+@ueGo?AIPnAFmNFKX zb8^&GNX^&^BRyGr+CGNpLTe9?cwByV>eE$oVEqJSVdL6Gh) zNtIMoIut2sX(lN!QAs7G5$TrhGag)Pz3<-pclJ5&AMa;FbA_@`3^diww_#IO6!s^pPhl%`bRX0+ zN(jcid>I6m1sNg3GLR0Qg}W~%{0u6l%#$qYU1%iM0FkgF~W|r}U^Uzp?BOgRr_Hi7jen}xC_ELLTcVtJ_%R_c*e0J$KQcC`m zgMRhRp;SCq*|7Vh4EXM4wY4_$fVBWN9MQ9~;qli{0X&ZQj|A1K6J}*N0xo?J$Rkr` zZFTXy*&hcIla%++oIO>(vX-O@uGHhblLi%EP4z#Bj?3K9JyH9YQ4rgtbdrWRj&giw z^fze=l)3qGyr0ihctYkQ#e5(B#-Ei<@09x^DW9LQ*^gGoq(U_*hoV5e;b`IH;(qPe z^gEi6eNn|E-OXfFP=urE(v2^|+E`Oq6!y5`rC4NWJ{Nakh-+N_b&0Srz>hX1k| zGWV0n^tzVG_TSS|m#bVEJ?1ZxlEMMpgI+gtf7(F_j%>JXC+q;c1*%hjt=5BVX*hBE z`?X+LW3<1$n$Rb;^NYGYfAr0(S7R_)33Y=5C`d0~-rHLe7z)8K$3toreO4hZO%078 z_``RZnMB9xIkl%DA+n%kvMKlt&HbOPIu-UD%hP-VrB;j}BWaI`e(?f_JfhdNi)aeocrumJ9@SBOwtVpJ*XLJ9cp^(WQWWCCpdnO0 z>SA5IYv2LpuOb*~z|C1P`F4NP7zk2`7!Yy7TP=-(RF^)A=f|TAZV;qrvq@-XW>-9e z<5Ihd1%38iE}=k$a_qW zx;B`|VJ)tMHaLAk5Z*#PuVpk7c&x@Iiuz!zszLXxG5ze!msG+Wy$m?}cvs2ScwHMm zlMO%arFSfL4&x0E1(> z!D(&JqH3-B{9UjzqD)MQSHN}jqslu1j&|tw4SQc(eW{@I7VR8-zZ7KfM*GXAPM-_J z0T3a3tBrJIhuS~5;+S_9P>l23Th>)J+|)*+q~-YL_5GXE?qsySx19^+-$RX`xAlDv z1c54MerY2izEb4yQ9SX@> zg5t4$W~v;9aG+0b(UR*kz7Aa*o~hF;PmAa?i;AsLBD;117mHnTQi8sj@T`@vCGfn< z`{EmA8ZX{(f4E!PWBTIzjzT8;U)kbf-N9vR?5L`e8YXD>D0TI2(s?|n>3FriD~hd| zVAPb%IMit-di0mkL4lanCG;7j%TnFCkk>5ysB|+pa;w;c)WruIH%yvYX;M%*1V9oV zx8KGt(Su7&BDN^F?U^7TJt)qL81M!Dx_r65%5CjzbPKQbkch-;BXvT11j=@ypBJ<{ z@blBr=_J@Fr`~H$!E!LOhgKVzEi>7$~rq+RnvhQM77s{&iB1Tb^V8@17I5(kkHl} zhCmO8G)}C`e*&%~!8Y&!fL<8}Rn7RC z0=MfOufZGJb^D$;24aN66%qY{a44i=8{F-GuY>Q( zx;37$lvm+2kdTp;@Utd?}xY=@zLwUSRw27ip-v+E8b zyju=}%VNfox+_EKIJ9MKpd4!338<0u-^>z~kxm!~`VPi;Bh;-}mWLA{rVRk?zTY_wNI!ZH*^L47H6G6dtoU zCP=vPT}+8dPPXCwc|azuq~cg_Vy-mMcM`%A3^oM3P=4`X<(qN#PxjMJ-w*c|&zb&L<+2#mVMDUM;0^H}* z=g(!p$_3TiS*mB+<<8zZW!5DOwy*wCwCWZel-5$Ot&7dwe}W=F5B9y-@tCN;+nt!p+@uFsjfiknO|Ma5ogZ! z3hW!NU9(F3-)6c)kgWX;<6?8nIOZrLVF(K<6E}hhw(h(glK+9w+O>R{}>-&WLc~Tn*~VBT>TS}agZs(V`FAE`llBT&+KXZ z>3!SRE;WdBFAbSizb6Gg@RfauDqEmj#`x&;5gl|8JQXj?pVk3>XQ9WqUe|gKDL)1M z@63Pjo&O?*zPE#B;_ZhIU%O|o!blX24V6ARJQ!bG9R5@yEDn7`U@>skumEB0vU=57 zds)}~YmrdbH+^|R<}}o0#+m}nH{|yIahbtY)(UpvMLli|dy3#fT~g5u48_tnCG!q# z$%UOmU(KgKsFNslqV^MN`4Eui2 zAs8`%6ABjwBGUc@6__C*(9f;5(+xBgriIowba&rtjp4E> zvHzQ=7D<*4Cn=4>D~0o}zrS4Mg%cH@kWjpPaup7NbQDMO8I`TNZ8dOB-JqN|-Ea!q zya>HY(^hdf`am^X=Ai?%;ZB~&;U(vY!1CfJ=$EE3z|H9?)Y}SF42p~$|AFKdj+U4Z?#AkEVpIPmz z1`lPz4^np<)aRaI;xLHx@LOcfKcEoef7qy>kA76S@$0#cpU7~MvLu0#GeY+vzD&j_ zbSgsXPy__7W7E?Y&6pvuidH}VcR;f&pwoRpX_#A+C%o^6ROFP3S4A{K9#aP#HGLde zA(7m>8&)FzSAzE52IJD~)6eN2szOd=-`4$p=KE{hz2XIt+TDh0*@k`P&`Fdsiii4J z1`Iy}L)HE*nmZ9u-~u966TSXd$zg;eh?P|TdM(t4X3;CY0SsA5$)v3k@JqK>WoBL) zF(D*pX^lmM*^O8%t{Iui1r82gnJA>wsG?$86+9fK1*qcl=NliR@05>66c)hiTWx3k7E*bJ@;eKNXh`HESOk?wb_#F)wtfEWnIY2^UB3f&msXaB+V{*9gecfJ4i31z0pP>l66YzP9y0x=nGDP1(T zJ{DLjg)Yl_3g@YA$jd{!pFvt$dZss*aoOW=Z}jMQd-Cr9!V5=lDhFe!L&Vq|#wpHM zA6hgQz$2xgyG%XQX4izZ5z(bKk<=|P)8P3;AWUfcV_pn8@h}c6tQ;xrd{*#_k#oxA z;aIC?fng$uZqdMvvPLmz%|EN0UD?coCxcCfq*jaw}a~9k_ovZOS zHE$zR@dOx@vaP_?Lu|x*q<`&qAQOx;MTeO=A6pt9%Iv`uOmz8v);;h@pti;3F91g) zCqe`{B@o>z>VJ7jb4@dI%7DumAaWfVD$rjUHi>lh4L@y^|H5ngNO#Axjr%itrY&&;5vD;N?1uWh>{1n()kFK|4nqbKTlak1 zwg$exR1R2(W7-%II*k^C4#*j9QYt2tl@j)PmfGxV0*sjb%Qw`3Hg}gHH}=e#ta_82 zOb(0N#%5WgLa$U9uIUgh=fPo28*Z-lPUH>-@wS$R1Sirt^o z_1sJwc%+aw_K*{;J=K-gfIkn%t?GTgqZemQv?JSmQ(-tdoF@LhJZB_tQfJ`u$5dk1 z04bEy+LY2zm0J|GC3_oe13YG(XGi+h-K(3(f(#9Z^#AHH6Cev@=Ny(wc*0$b?E2@x zI4`LpgXLHvE~;g6out;amYU2AEHSCE@|;#%n!8=l6H+5s{2D9YinYnJu&joR~I$LDAPTwU=<3uY33? zmY>@=Wzk15GpAS7WN*`G`J#tR2;8mGeY4fLV>ed9QxnhaZ7hzzS$)h&lWu+H7!(Xj z*W}~~sCq{xGnC?k9(SelPG$9&BT9oMtF1Yco!y_HO4ph9J3)eWHq(~nfdYeA-?@#ik*g$!AGD%?5fM!CudMvnQI1X- z8RVK}W@SCOo%Sh=QCPd$KNZu|*oaIfiO9%;6wZGF)ZuDh?cwX9hvQ9zu9v?J_mo-{ zM(oK@&J#kZobDDfS{qPp!4j-xU~6HV8PR6aEvR%nAQX+TPCU~E zn@K=s7N#RcqjC2nL-1BNYi?s`iF?AzOhY zG0z*pmi)AUxPzttqw?KneW4JrvSN#>1C^T6n$4)Q^5+&72+c4nv3fv4bNld=_$Od07eSZGc%-PeZE6%X$)V~{ayQVE%?SZwzyZF?TWk8 zR-sG|)uzq)>*f;Si>eY--Se=~m7r71-|k?qwSTR#D4_o-p`qH4*)#NdK1`?~`MLw@ zoVHiUP62!FsdZjBlo`cIFR{G_};4wRB2p4&Xj7TGQWXV*+l;(Bx)>1k6*Vaa_&?=}&U)RY`DdRCna zEwb!4nDWlbJvs@BpJs5$s;eT>fIFwdv^G{xcY_EwR)ub1w~I*8J@(8Ev5ir&8)Q*D zVl3gzmnR+^3CA3^rqZ)4oXC2A1>WL^6(dh!HlbvA4gQjPXNQ`R+C}AyU(y~#7eX0> z4S!Xiig{YN2y&c;q^zzu*(6Z!C@r^0c`?E$(ymei`L-I$OR zvdAgHB8+HzOSvzHgFhwRWwfQfZdX86R2jV!ZgIbe_$5e6lqUM{ez>M&Y{%ZNv0ElUu91(@F82RSVR0u$+U>}}DaHe^ z_>0M&RJA*8HcU(Iv@oKE5_23#(N+1To;gkX(^WiTIq``W-Xd@|MuK&WJwOWtTA;Ix zr05GNw7j0bq~I=AN3((#=kE?XHzxt&VgB1qXTf$Rkd;bMA$~*H@QeH8%qL25D6WRDC5b8pVY5} zV5Gd`X*#npS?q7su)(9(Q@!dQ2w7?H&=d|GG||}(C7rP*{&sSaK8B)?WRSn%1gFKR z*%OScE+Dkoc)VwM6bKiv1lo9?wfp=b}zd4@~ zeO02;&WHb5wIZw3VS5skFz*m23LL&7-n&8K7=yqlz~NI5joRF)i2)$v`VOqj05%Xh)cC5MY2>GdD&uR*6^ zm@1?R@sq+i4VsZJvnii1!ZolfLq%RuG4zhuS$B}Cz?p&=#WZrY17UtNG6_QEH=H^_ z(0r7hPlP@rECbPbBBC*J>6Xb)GCu?KWo2cvZMt5My8Y*KQyAQsS&_#<=~k{0Qb9Qh zm}`V#3aJsoN~Xrfbq%RI&F4qm=Q*(-5y=E#=;1sc2AT*6UKP6x4GobW5(Q)&L#P?j z`;Z?uGIDI`rFdvEsni5qeW4?x0RAEuGn80J=JaW(JHu1EfG8|uCG_`C!8`y_G+_WB z>wjo{+$QNU1`-*VDT^x}f{hv*#@J_0z9TFkphYUi&<2Xr)CMuR?GK!tW~|p;j!f5I zI{9mLf0>={WAv6*TJ&;toIjQI-pMCRwa?f$ef*+AHKzX*ftU&N zwod@yGzY>+;_$)&Zbgo)%^SWcxR|Zae8YpBFe)a??pa5`ork(@R*iaI z6Sf}my`5&%ZFD)o?8_58!UE?-ZERI*tKu%ke8!Of8X}Z?#QgKP%T>2d zs@PBMDASYg>|Fsl6kB5;u25~8xc-XV4bNV#+Tg%J)txAx> zKm2ZX&oKf)`>iUE-yU>5LRrrbgY@yTAN%pB#vV(*Vj99NC~#(q-1UjOW)kH|0R4{5NAIq{RyME)J+$5zfk` z{T`#cw=@-W%e@OTqgwoYOQGDXI6q|e>ubm4+<LUVc2~ZW;S&%T{cL>Zy1&}2bFKgL)Z${;>noZ@&{IVW;efW~mb|_rND3sRI+fe? z_z-Qw<++CfYCF7&|9W9L7C$2m&9%Gg>WNgJ&gWfxp|J8RO643M9~IR1OI*Q`&hvmh zIMW64-k(<;z|HI=D6G`Qmin_Z*JH3+qqNMO)fuSFm&DZ#;x-q12*JEofw}rUs8jS{ zh0@-}oMhheN`K$CLs^;e!NF0E`E-k752s%fz^rBw`V%3=qXaMH`?NIpYZjG3` za>>x{`Jvju_~ng8-8Nm<+t*gj6!ejZ4H#aY{`X4wK8*N3HNC5c2L{7L0Q>hD{zqp8 z1ZcqE0_kl+hkolD8!^Wb6&1n>w}|Yd{Kx4QG)Ed%`IUfUp>SRc9NNdBTzrowAjQlU z0yR)|VAO&7sO7;U@SQDjMQKUb%gH3z=x<^|AJ+s=s!Sdr=1iq7;Ov#o`l@+kZyCC1 z>U4;ZfvZW~H;Ctddu+g1SuBoZ*G(OK6Yj|b;0KGCtK?0v8rnVoG~SmYY#y1I@E%(8 zfn80wQSITwp9zq?uZD5h)fuVlil67=$gooMb~qCr|I*fASH(Xssgsg|2LPl>2boPJR>quJM_)0 z3f5gC$A2ycR;nIEAd>X(Ku>;s{ZGc9UB#yma#e37e=y>$MBR0L78(2{(1!J_$0&1r zOIxxOYpQ$%92@Wb5&Yl5Z70U>Z^Z9WfB%N)V_fJ4D|llb@1I~p1ql^A@Z4A7e%H#Sbeyc-&_>3b$H(*jJw$Oqks>}8>q_J}#^ znWgdLdhS0hp#Tx3{~s^zlmGd}ZMagX55+gwUob6aA3=E>1n~X@zp#K}JJ2|twX-3G z{V*Le6*HqLWQJ}5X2>PF^BfqD>}t-AX3bkhF#G05M^|9*pWgWCEb5GuldQLd4-33a zWOcK9Rz^IQdDE?&>?E8Q=+RNPRmSM#ZJe@z$ zqIZZMzx`i|p6;wzigSvKN)QGJvv6l5R%cij*ACZ|@EYt2k-@`fvsjn+f5zXBp=Ox) zy=Wo8AXjky^5rj&I{#v4_vdY+>lSxiIm_PqIx-Rkl_O|4`958j!xlu`&AK5ijiZtG z@W;E9aJkg+?#Hj9q8egGicEoX|0f4bNB0QyKhJ=c#y9nVWaUh3Fd9CyCf}LwX?Kv; zf!#GouBB=G+TL#6qip2a+F;mgP7voW=P=be9?;z1911p)p9`#Ooiw8s&Ed@GR(PGD zD3~P8ncZ*)dGn`7i&*5qu;wjpdSsy=7d!-eeI$t8e-xSOT-)4f=M0nchuW&$xpiI{ zak~|QCKD@4he`p}88q9VylR3;1i;v?%oJ7LhBY-&#mg#=KA4)$DM2?qwTXpnAfEQe z7R{$X;=?NtepKl+UjPB~BM#Mtg)h`XV1#LHoi|o!n9K;*Kjo9pNa}@y7SJEy%Y#1T zr&nzeHZmd&jVUedbyP;)Twr86`z*ndffj971(LFMf`qnMduw7%P->-}^#_@_sNR*D zpt$Tdsi6DtjvyUcg?(EPmLO$|lBo;b@tzKE%liq+XEzWU9S}V%okXoBxE1vEBl7Po zV<6M>DK-76T7%_j7b^lL4yu!IiGf?I0wJWUBGInrBqS1WA>Ic=wD=P;x$w6S2U}pm zQmhJoia)(!N0CFlk*c*LhY9U$%cBvo#&$a1RI)0h+=r*4s=TM5}3*^o1n}6~8bs)5k9*~N}sb}3oqKGo$bu1vy z<a;miLJ8 zf)}uC#Jy$88SZ>`bKRHKtvuOyN}*&%=pgqa_(5?SCOq~z{oY?XjuK$h&we8AtRxeC zA}(SJEYc$m-Sjd1`Tkys1yf*RHc|x6{O~xh+2yy*G-KQJ3=#TwLi<$NoFL)O5V#fP zF3U;7$xcw;gw8@gKom`MVn;*0LA+KzIuBXOaNncv8m_JsFTa3%9#-#^|BXy~ctJvf z2~etyf5+cK`g5}2yI+HZ|3u&dc}64!>0A8CztxBidG<^irrdV8Wu}8tB5HrlIhP%PZ+P%Kc$Fb7bvoUW0`Wx)Uu`h)5$)zZ`i|nR%7RDUtB}?F(f!C>*z@Bd76KzFs|}}&xvP|d%|vZ zFq@o(QJ{6s&cJ)|is(kZ{xgZSnKCT%Nyxpt4>{s$XvPn(a?k;|ywrR4<& zn(Ynm#T@jgt2a&^7=L;6Fp%EC%eg*6uzNKx`K4RENV@c9dYs)g$Mu9qJ{@+y#6`ge5>j47 z?7 z_J11AauDtadTM&ZPk*9^zu$8JelP7+EnjHaoa5wdD@LgI?8Roe=(xLC#*SUDS|*9e ztPhnbX|elz(y({HvEcCO2{ikNPM+lD)JGEFux1h(V1aO(ht@}eZ4xBJ!9bD-N*M2h z-SLcMZ$CKM9P2=>4=pIaF|y}SD#=5hRF>=`(0@S>7M{*@zkZ4N=@FkJFLf*8KwRnz zighdF4R0aXO==!Q&j>-bY+bc*FiSl{#841UM)(J#m9cs_1xa8Zv<0~5uV252$odQK z-@9i3{iViQPN5#;2%#rqQC>vM94dEfuw>%ighaZPWmtTM(>~g=^$YWRF>%gg3($8B~P!PH0 zPQ%J-BlZXq=2am&07y@7;pBqMs)D^DsQGv|e;}$ob7mD1@A9wW`cvaS{u*>ihjdJy zoiHYJ+DmOhssqw9!|pwo#LP0>`@d%O@@XKm&RZ zb&s~>P)Oj0lMS@{#UXJC`$TDZ0z3~@`Jm!#E^mxYCyeD+Pv_H%k3A%tzUJ8iPQWJp zk(N5J=V2{8+2kR`Edd<(aFuqm;7gV|$HjthLYDo%Ppc%>L2{E)7x;o20R&!;POZ^< z0^Zx$^aFptLICpzV|PIIea6Z3=zs<+iUs3gI|J#k_OM3`%(T&J@C`t8ULam)3~5APDiyN@2gUU~`?w@! zIw))AQ~yq^Lx2Z^yh+PonOOb#Q4uR@m7NE0=$M^d;`(VzNSwoNd}rE=v*_4Pgb;Cv z%lJIEjo6}MPO4KdtVwZ^FKYi>aEMcaa2^Cb<;sQF!occr_T1*J_<2G4brG)xA_)7) zZkzbt>;9upG8HV+u*)$@=^$u$b2lrc@Ub=Rnd-;mahzNvcOGDDv>0S3_@YBbL5OfZx2?5GL%ynv)}NfTMZAQw5pb4`f^>pxqzE@qR)778z(N`6s+S0 z8+y}o^8u?>A03$myu$$!ae}qsO*qbG3?ht29B5L}*|m&B4{E<W=gFUb`_|~kPw~Fvq`);9|0zS z@OjlbV8Z0LzU~-YdXY9n$?%->SuFi~USYUk$gNDx^<+aZ97qa|$-L@B)9|uu%$pG2 z24Meehgf2Gmluzq;A?7U$hbn-oDhyKGT{WPUxQrK8!jWE5Sd$l1`pi^`01Ixd{%Tq zo5dTLppJ8Z&04d+hu;2cYwHaJOoSGbl1iqwEf$zUl!nk{V88wvrmoPbS_$I%!F(6z zceU^s@vNO++onQtU7+i~B`vb%a+_LaP zTBfG?k481PqLB(W6y4g;&>)cP)oM9V{A}&a1*Nz~qE==xM+Mc-g`gC++fPqVuUy!* zx&!!lXx+KxuUa0cF*`T63AsFgu4FYY-m6s$6BN!MNDP~|vy--< zelQYGvU4g=wI^jfk#%bZCEnL9*7(wB(E}=qEpa{rb)qI#2zxkmLx2SZz`YhzF4GwJ5U9t?C|M z6fhU`laaw9%m5R9Efc*_){L-eM;%;^SCDFtY+ zJFLtPi*{7Lr)7iS=VRv-vFw@o;YvQ{Fzv9E$*|D9;ofp2!2sisfHdCCGty6O(1``F*E}f0MDzmpt&Z_@Ws59Cp~jhouno3BTfLN1K7245`XRZ-Xxo znq#S7(l}KPemTv~>dF$L>g7vY%XJXbr(Jbz!pR7d)2yt!UiUo%mV>KHdy!DSKb#gX zV)=Te4%%HuNJI%jlR1%Z6CMaIdB0l5{>r443P66295(R#)kax8-29lbCk1R3msM$h zx9RA<5&K!^jzsb17#4BooI7Qvocrf!Ly!(Zj0+I8a4ej{>-}T*Qef)+^CLvN3LgCE zk0m!F8#5EwA07WO%nC{8^!bp39nG8g>XotJ%z4@nB-dI_73wRQT#d4U7@W583+#}f zbJF}{Thg_`dk#?9_)hs|6q!7FbdHU!-e~4dejj?c(kax<^T{Q47(u`W1=j2&-el&7 zf?^ zK|1vtkJ$DZS^qcS8MQSpjn4H=g(A-JC&74=vY05=6QK zSFfCC=5o;IzH8e8QsO1ED`TI@dhyz(KX7<%1%AJKc%-SG-IIV0^3scqx}DZv{5Yy1 z`N3ON+tOuounVpBeYbhqQg$q-+54}UlHC6vm#7u9@;(0E1?%fQoc=wNu(`q&7x%?e zv0_LExYpel?{7QhzPo)6j;vEGyu>J5$SGDgEkrN`a6T+_mWKOO>U7GEcnadQ4Vwjp zG2y{!4``n;2&zk{8--Yp0@qlcbOteJa7)fh$-jtkk1o(I=v`c`}d9jd(&DAeN+s+H?} zZeso{@}EmaYy?L)5+W&qU|DV@vSjf8Ywb<`X~)DYh$(`)qRTmSVyK~oQA%U94ggN^ z*lk$*k`T6~c*~oVwdRGncJQia$+~EW@-H@PqjSrfkPdrQPrs_ls}rtxBVK5UBu=ME zD0$G1^(KAhvl6^ZYml>4rY$cIJI5O_N`~eq)e&LGyB{Ppxr!GgN;(G=Nv?U6b+A{f zf`Jv&0Xv6XcwqmtjyQAPTG~A@pMIIv<57b9aYL2~B$_51^!-U!RGKClJ#gRqzyYR9 z?aJknsp>2a*kY~bQp}jhCq%!Nb&vxK54LsYCArzltGvUbNR}A3T6%T=A>2km#?G771Vx0wl)FT_5M>7nta z_tGIiuzO$iaf!}FWKViiDLAF6S6}3>?Jf237mSfZXKTFn#L6!W8uP`rarrOw{V=50 zoRsu*IaR_I5T9qaKqJ*|s`~fWD;j-gsHi>x!PK(& zK`=kFSmVC81i0Peb%`MwaBQWJBf7fWw-t)tP>$tm zn&M@TZeff1!ZbHUPfI)1xidgDZQ(tZ$ol(fZQ?PDLc!ucc?yvllmFMz>i8v@ftMhI zEcj7PiGpAmm0_6mHcB7Ei58K-qmyJI3}Lq%^mqdWwsD`90*ox4MVS?f|Iyly-9P>J zO~a4;d6A3)o8^7R)C=eplV8*)k(k>q*qItx2WLh!FJ!5fDfhQ#5hwnS0+FrOgGAPASSA=WKq?T%pD zyBA`PTmUN9*s)b`r%2#=SvUfa1ztZf89ygEto2>+S@W!IoL+g!v-`-T%yJ{}oUas@s;6D{Q}@j)d*jM*QNF zQA5fkm!n2xxTf3L_kyc5x!Ft{Q9|A_Z`2a1utd@@(N`*ItB5(Ekwmk z{oAJPB`q(3m!y-kCro{TKm08KbkjS`vsgAIzZ|XSgWWf_?2QlWm&u2C+n-Fa8!YgX zPPn!YMl~>+?|720;f#T$K7l7?RU#H{pck*Y{OnB9IN4IZn;=9!qODy9E_*=4&^LD? zP;a=5wbO&^Q8`1j=D;MU?CdfHdI!Ea`o@9?)~@#t$ypZKtXQ|c>B2*e{8*@;-0;HR zgrl8Zwc!bPi;F(ns`=_Niq_|T=w)Mma>D5Xq@y7DS?v{D@h77SVW*jhgH5F_1FUmh zHI+#EPc?EK+?6GqYF!q07}@7H9R*egF_3&hC*E^xF>h`(kIXj~9*D1g$ILSil&S$U zDB*Mn{aXL1KLkJqW|*eGTTsNA_7=V*@p8>;0czfhW1qLG+qQLIT}y{riPKw?OI*D! zW=ecI6iq9>`oI!OqA>^mWp}gLgm4yN%4F|#Nwg1AB73go8K)b_0%dcz;bcu0d8oj-}P+d8EQo=s=kWpFa?1rw>iR$EG&d9Lk z{b!+}#ScO%V2YTnOO_bMOw1x`4@|xS|F4@ARPSg)n$i#0*7xy!$Hok>g8s{{a9=YF zScE<_!a*xc|M-y)yAG`*vn^9+AvQt!<^m4G>vx{qaGoATi0$)?Qr=av<66&de2S@Y zTT5?9zLlB!fp27IQSjGx(YWc*B~4imb&^}GCwIw6uY&>P?~Xs|a1S#6g#L0svDp9R z`hw!2_pTr5SO!?#?ekQ|CMIfiAcA4)&g|h~abJSC&uER@Y0~>@SbqZ1!YmsaTGfc@?$pVSkJ8GMLV!wn2{1V1#9ih2DB1?h~N{_PujKs#^ z)a|HWJd3YS-(UvcOD-2`qLqWPXt(HV#XES|;u0_B&iow-4GF2}LhBm4f?p+qqE${1 z+)B@HNNifO+CP?k5q2O*S9G#OayXzB+-?tj>jW~7-pY9dI$$%!WH3Ym=$bVa2WYWl z*NZie%mmL%dZ`hhlaskW(|INp2VCixg-b^$Dl!*+3E*^R*0!;}%dQ8Dzs`pwb3^Sj zp@s4#2wTkiD)Va<{{d&B4~&f=LgyM_Zg{7T_K1%BpL=dyxYNg`ITWA3hHL~c6R?a!1M#&kk|OWW@@O1vc5Nd6V-I z-1@O4zUd<1>v2@jV|N$%J4dLi$&3pWM$kK&X1laiC))=os}VO>1sg%oVdI0TudlD9OI@KM2C&C^L*_-5B!L4_sA^eQYQ4D)gOyU>1somFdnAJ> zUnakg#M|f2Y9QV;keZR2Dv2U=QYc02o?Q{=cm=4b{O`s@39v1Db$q<4w0m0Eh~ zIj?m8_`o1go;#sO4L(*R>M7cK@c!TKRi>RTsRD4Z!pi(dJDwT!uNbB5BsqCA)LMm) z+8FNLzyIK&b&F}(rJYTjyXmgd=jVPceLU%QNpR@kjD@ps%G{g!IeUQK0Rs1l!VP9E zs0q{->N=s(mg9U20u>cpy~#2d74zl&@vZVRBDmogEUpYa%t&7O^s~$kt_xjNPx~+C z)|jpkP04aW%sc>T`ZBw>^@*F`KD;fIQ zJ?m{QgtG#oKwnVO_Z+&$cYS%r?0CYUs39%-#@7cfcO=ZrKS4@~x=0C3UWCMz!{Gcx z?~VF+RP?aCG7Tm<98J))T9N|l5@3<|%;6|Fn>qE&C&tF<0M?rUME$ZW^rU1JxpNI# z024_l8iGynAQ^Lv6OJ#!K9>!SkqcHB0cYdXn^!#_&$ zrqbKE9`@n}P6;-vBt8S)vXECVWbsmV3pyLPzUrBf6qxc6F}$JEEEoFoj2vMt5CudB z4T8-eHqopo>LC)wT55naYT~92ASO6rYk2>V0li!JL^dZ+6E=|&!M3**pe7ODpfAO~ zo)!>ah=N3w?D-|w;b7boiq3zR6JU4BX>G;$A%Acf6S}AYNr5zV6hrNNS`*CBSF_-DUA%Sex!P*rAB@=xLvYswX>4`PeP;1$}iFFOVDTe@mfB zknFxO$6+Sw+*i~~LqSnDldhqs*FO8zjD?FY=-f343BX9ay_@AKetmAk9ji4+eE#I( z^+#Y}RtgbI`vJ1&pfV3VZEXhV>md%&m>Bv~tddndV)n!*4`N*u@qGc=dQwkHoXPS^ zXlB=}?F5z-#OSYHzaED!D47#uapTCE5I`Fr4?3TAE|b*JrPaATv+*TCE>+sZgadRd z2ovt!y?ezo1FvIZ%;tzlP)OU)MpLU=uVY3c=GCk23o_Z^p>KhkuA~&!h3%vSY`XFT z^1aG2%jPTjEA7dre~$QC-vO__XxFiJ>kqf}KiaLv+^Xtogb%wgT08nPzZmyAc(^Xr zrq>?_OE9JR$G#H)UW7f=tx6ooBCXN%K8bb$P+{RVb zyd9%E)z3`DX&CIG{RwcT@X`#N%8y-p!zaE!oKv~hi$XA=LIe`vJ}0eP9_=1 zU!dSl24ph*laMzAF%Uj)sAvOitw(f!y-=`pieD(`>%Y~79~K*Is0jum-z^~e?oZtrMT_wQ(ql+ zy`#dZ%hCGLJFQ;x*8o)zw!V|F z&qUT;M#5RK0{VRqg^;48%rkekYHpxfe8S1uw3$AzfNKo49-h2xR7%Yz^TbF?jc{P- z^V7xF&NGP-K(-8>e~ZLLI=I9A$@w4>DW6PJ@pjkRJF?3|o77awF;%n{By3D<@S@ug zQzZVKNYdAKMA}&u)dvD1#qoqY(OkTrZh=PJG$%EUO-`sL($E5lyM?uCC z$WG2k%bJ2&D%7DOGxI5R3_&?F9vqAd-C|589iq8ivml6{EnZX3b*{oQxKmkPdSP1a2ebcC`g!WQj}CKC z|5p7U3&wGs_KGC%J{#W2HNblD^w=YrBc9B$jV!#Aqz2LlztJo6 zZJuM(d&@Ntz3060GK~2hH$9yRJE5tp1u=Z4 zqAvE6qPl7tpJG_(SvY1qHz6Vw6cUQf)mH?}=XI*c$JwS8a z&5C^UCJ44@uraimBz9PaLF#%~OY@Cf4bZxt(ZCA_supqJr}gBATrO_9i%)h$`?Ld+ z0Psx=;+kS$m9$KT9{d&c1;6jOaeW95NzoR|;mV$MQ%C|^3Xg}<%kcNFFYuKXcs=`v z_hxa3VG6uAFi|~dGcBu<%;LJ(bt0z3kU($G5yx|PyZmp5-G8d2NFnzBPZ`X6S@Zw7 zgPQ{#+-xGR%mYfFX79p2?z5e5w;*2pZ=R5v$2`HZf7elR^&WZ1yP-Y8LrE@`9^+5%5gtQYJa_%BiM`VWnrqBv~n7*^qAb1r$A_#3?=U9l^`KCQ32NT;v^C&3qc_WGU0|{gz778P?h zu`%f2r&@P2NWHp5<`U0N_H{TX_w+r@wM}NTdpnw}1`PCkxa0(8&W)A1t`Acu?>uo3ZR{f!z5i6HBGN-cl~T=<>(2e1 zlGiP@v|l7Mntl!WQ&ES!9}IWlXvuSw4)xWIeH_rbcPb!6EQO?&QRTKLF^iY89a5!4~YBp zQczIfxrbLBRnq$*AM`0N*+w80=1mcY!K%BxOq-n`=0pq%3Z4q`CLG&qclPoxOD}_H>yl*|CRjJ-rf$PRC#D@LK>G+skr^r1$&YfO5r=C zE`6m3(VaJPm7GVELV6f+AW$Tzhw<4{OU1v2z7OSiUB7m5p2zuoEvM^Bb(Z_JPL&m& zgSR#=w}P0srzVNs$ev3wUp?SRgHJkl87r(aDWfAXG^!=0%S^U77^chkl4jnY~{(-My@)K`7YyZ+_>A?z!|s%qP9K}C?}MY>cJB?Xa^ zQc+Nl?gr^tbV&;mDxo4EEh60@ixLnJ5NVL^knV2IJ;iT-XJ7l<=d2&EUcRu_nsYwS z9b=4pJZqG&h;%%#)ryX%(=Hk}y)vD6BdPH-MLf5uXYzcWGzMDZQ}ihMyHT)?E-H96 zu`pztQ0z_^PXs-+3zCRBE3o84fGTZI`R`p6*(&1Ab|&$D$og)l)NT<6Bnn z&g`*2rbV0o6zHU9ekP2dU)tU}~DyF|#@T8Sx|h`js{(CkIr-q%Yo4tGxOJ%$ub`0!>a8PhMf6*rP`{ z_wV0F49ekzD#-16FoWVF`2o&KuY;k}wVkSyiiZc+$pWcG+)G+&91}dYqdF|ywimgm z#yTz7^}ErF;84+mUM3RRy_>fPOBb}U8u)#U1pH^VW?Dfzknefqim?^WxUsQ8&`nLF z;)ivKDh1V|lBIT8jUK%5Mm%FOFG<;4&czS{ds4b;k&N5V#{z$=;_$Z>rv$*!C)()PXUuiv2@9iw(>8S~0M{g;P z(gOu}W-on5^&9OCqS?p#l#~bRMQ4+lSszX`aceq$Bk?vQlegGhBT{lDHB?MrB(AuP zSva8*wd7pioBqgi>ls@dFFBQ)BH0DG!RYMb#PmsVNrN+a6RT(y`??g5ceq9T8QS@a zUAe?m6&SE)-X&yawO?X4B8BC2-XfCiuKu#wtb-%(sEGoyhKx*0r|x4$w75v-do#B0 z=8+Z2D*uycR!ZBQGb-k|7}1fY&ecy@LZr0Rbvt zZ64U#<~KSmRHoIWe~k$Yad;uQbv?OU`WKUSW~E=aW=>+s6BD#H2>w72lcNK`~d&URjD zddG)&5*E-so2!daGtnrw-|sTgurc0t;I%h)s1ry0Qsuv6yIRhqY*g6OGN5r6bu0KL>Kn3sO{`W@eabR_*30^e5`- zaqeTCN77bU6t>OPCDukxO<1AjyjS&m{jaheY-W<@{xFepavnC?)VOP^#@M5j>#VDr z%y+@t)(;&*7>Csa>uGiEz&@#WrKhNTY9Yj2^@Vtlgz0ye_gXi;b!_H7@!x1QG8xx$ zBH!P|zT#?jzfkGWGA(^(Gx^g-%YY~|tlMj6#}j2kByzF$FHAq#5?+=|U;N0-S_iAF zWdM$5eQx96WcJHMvq|87@XU=Qg^vPsOLRfgFBPLkrA7wBA=$!(!}ZeOsal(N3XPA? z4X0!h_9!X;EF0lv`nobc2NACE!Gooj+Sp{q`&f@v><`hL*dFB$g>ySFql9<=IwY$W z^7=COJ-eiyVTdQjbD;u>iHT|;O7z}mdFklrSmM4{@DVrh7y29)mj1!^62^R{i2sWh zV-RorcLMOKu29XARH?{aI-$Q$+qwYa{7eE7IBN$Piw2Y8=VM#2V857-k*5&_^5AFl zIJrxb1dM;qaDLVO>zA7HT5bg?14F3+%!-JRu<;3*#C%Gr-;FQ!Iyoj6RaH=Uy5(G2 zR)(9=2&$i_ARyRX@j78m8@Qu?f8*GzB>OSeOAinBlan(38& zU=c;mCWSSM(r=RO40mnV+fD4!cIInxM!%nbwa`Z%gokCZv>h4A_mc{-`n$tsule=Q3 zoRbSmLR^j^i9e;Q`xSk*F)uU5z*4`_ER4EngP$No8X6R1h`tqCVy!-XRfiyH~iKnm+TT)FQM*!Mb%#jPmwjK9k2N?9e1{gS)1bS5jKJ&J88s zo(UzLm3ALLY2JQ5z-Jp+#yr(Zn*0!Jw_*Obbab)%;TcO$l#`vUg~PRVsXB`0N(N$T zrjq5KN6%l@5Ag-NxJri2uwD5CJ`k0@SH(guGQ$xKevl;ifgby$<$6hJmE}&rn|FQ`LJ(S}m(*mt)MTHd{RLyQ;>5ufk2&Se)1v8ySAmG5)+7s%XJ#{(FC zYIsRY6D*f4aP%8=b#<*1jk$04n*@)HL`O%f&{(3_)`m7~iA2?C8Grx&EgpVGngn}- z?Je$XqkyRB?wGGQ3eGI}a=G0FR6Vh9_${~=`tOuG%w1u<)E7-ab?ZToz!wnHsV|T+ zghE%PM#~MG&1Wo)heP|HV;X;r;XvJ)!jH=lgqp4Nk?t#A9szxa2O1jsDwjDDa!&-4 zk>$&oNnEKPQCkbq8ubu6S@7my-KLJu&s#s+ z$bGJfz&99sXOZ);G}PE3o7eq_b{$sw zHS@BVS(RP6v+N4dDsvn-Q?#On8;)oPoZjph?E8%M2FnFkzn0YO-s=v^Rish&Xr^v? zCiB|s$v5&=`W8;trKo2SwSFyYljl4R&tf&%=1SX%MYjm+r2STpzAj_DXx(XB zY{ai9t3}cqy`U{!w7T*nTH|sTHT#}61jl=$9K&PFV>k9jDr*u@``W^8+ZWlI2yluV zCvdeCsQs~IWBH#41&J<4f;Yf5(Ig_)Gh5Z40iLNA0a;>Ne zeeem_LXkDGYgnbM=|Of+(Y&Twna=CYq-h3xB3#@Wz<$S~?w&7|=FHO9$Z86ez56wwO}XU0{v@e4SEt|*!$R@) z?^tqO?z)*Tl1A4{TBj2BLbJB!9UPfLYqv5ie11c|E|`8hD)qZ%sfQRlvTi&pg;+Pn zQ#j%Jf;}w8N9xG?-Ew{2v2e|AhPpz=wtX)(%d2TWw$vhwpUt#oOUymzRc_pbV-o>I zliBs-9JCxsY~Uj^ses@Jcj4o95!PPAc>bVkgs3kR6S%r|EWSMW&9p);a>OdPD2&Z0 zL!LZ&a{I6pfJbB2s+VHUgT>Ye%Os7?g{elE@e5{o@-scfly&0gd+^98rW8K}W;+PH z-ok4h{EQJ0&cC1LDi*xTC!QGR7(`v816R`%79z!Hdmth=^W(d zfxpbKnCuV<3)Aw|f8}R z7j(gLY< zy-(8Z%f@3>)Dz#5{S*z~6DAkl3e<028Ter6vT{FXb$sYDV?tg@B~1~}BPlcYB78-9 zd}5W7z2ny?Ud>|mTxnFcIa?G3H5WZ*V$D2*bh^?&a{21`A)}dYHGUD@lb91vkJ1ra!7xy1F82&K;m&m?iYX-2Sy{=BS2$0Y1!#$V@_StF1 zx?n#~%t2KD+WxC)<&7oH5y2S!Z zGyshJaQC%zbV4AcFAf$HWvW~_Iq?KH%y(pS0P;X&=d^r}{?7$T{A$3HDF=a? z99HOEnEHfGA_p-Y`Q^TRv2BqAnDx;^zLm@I-V8El_^Z1+5rBcHsHnaYTSnuSXg`1o z5VuVz5{QCCBBP?rW}D)S>+#1!Yv}}?@L_lvej6K^&{k0JfsY-BB*LduqgCl%I>wF0 zkAEmGjvGM}pK$l66yEe@)zOl*+E*7Y3_TFWz}PdX`!Z4lO`3PH8T=B9;0_Fb-S9!2M6enz8PoTYxf!VlcH7$7D5SG#P2~K z@G#SKEI!Q%ff&H`J$U%Ax~)xi)gtHVK*nI8bjIE0t`HphcKJCgQf8Ud^5FMh7RWRC zGP=#dNDL}#lDGH$L*s7Xw8!mo5geWIZSkD$dtSlbQ}q*<0D(HQ6#yuxYYaLP&s8;R zVn2VC!P7nV(yr~T4ev{jxL`A;Dg8Xz@DE5WzBFr}zI$e7-uo8 zN1yu`d3x9w|k-k51rIV@@Q!_0#ZIuCd5P6oOH*_&p z*l6u5X3*L5mq}!K%tm=Aq}7?Xt+Yd>DDdPpl)Tk#GYwG*O~N%9gdwdQKELTJDzFUp zpsA%4G>Gpvu-!KG*HgFZzN6`4ICORV@J&8LTl0aa`e>C?;~9)C%rDs3gb}f?&)l!Q zI+GK@>$%K|KpeH}BeK1XcSiWkEmnJCUn2M!fUthWD|f3a8yoK+H9u7b1&2oALlx7b zW6xusg?BC?c}3GAsR1F>zECp}G>IA=(Ik?jFvLdS+VbH`ZZ9veQu0x3*m0Wf8WUp)~Hc9uLBBIe`E7p_zARUdEBQL~tO%?@hg z#Bg>`R7f=XovA(whNsd|x;FN$+Q&$sSD{o?Zlb3}%qA`;t9>jotih-y;5wmaz)Dr0 zKV~icbKQ2`_Uu%X%#r}6E9O>l%VjkGf`E5)4tjg}IXiguc_DHAf#!zFU|;`iY8tfk zu77`gbU;&)Li7-GtNMnmO-FV0y*%s9@0aNWMzJt_v5EYzfnk6+U>hH;Vbw=w$@R)b za%dA%Q1pIMrrkO)g?86v+>Zjkn;=)G;?>qdFCM!3{bezKy_RU6cPoDW{!gj!=`b+7 zF&;m-r-YkfqEq48O-y@so>h>SN6FB{BmfRhGguxf_4(GBp`001^WiBBIadp=d}Ztp z0AD1SrPgXcfm2nfg0Bf2+|xC)+FSokDXdXeW8uaF&W>8;PSTta5D28{W8eh(A89OU z?7~NzU47t=tDkjtx~&bYHJd@=e?-d5O3t0zPN+xb=;KGi-ZyhRd*7sF zU0gYG44HDX%TTzJp^c?n8}ixXnhTEmYEsLIp2B#W2^)HDq)95zGKV@;Ml~S&g7qU6 z(Xfmc-5n#CiL$t7`C>+0TP%Oadu8d2e14OtH|V-e&bCmCl`>^WM}Dq=`j&EbQ)8WU z9$Tup181J%d%>DTK<>tTCbDg65vQkxi@7;F&!{VU;LD7Mnc(UaI#^+N z(Jt8ctM^5e;9E?R-!+=jAR>EavXSqAD9omv30chxSv5wd&%sqjiT3B=D z8LYOq3`AL2Z>PZrEtId3@5H5K{Ysno=n`T|2))okZG|h~R*9TDUmCZL?bb^=;N(X; z%}A>q+>xf;JKc+(EqyU8>UHuA)E5`BoJiOr$;mz}=1Lj`P zu?o-v9>;06F+9*^!O;EHOaRoC z$!QezTQmU9-(4(hk9P3KU+XPQ2tR{#9Y0^7kr7R)21O$b1 z&H&lUZ;ZEnIYsW}W2P4ugLZdaz+B{#u<)>9IircymEt^F+rnQq&dSWgs88hKan7VK z2U*zBh;4vP-fwdZz1Ctaai~lM6N3* z+v@$mxtE-eY#bka%+fH!L`@vSGJ@&ZAFRmWR*Lj7pNj&@1D^vkSv15Lj!`Ansx1lrFK<@*>v+)L%CJ&SW^bsf8b)2@ zFsH0(2iz}=+5)ab&Sv}Kwr814o(v?uBt7(pO6m_q%WEa7>yEZO4aijxGrT^DTKgpL z$bKZmEYdUa?UBXRoaqk{1s8f*izv66Z&$DN%+1TGXuU|9tGQbe_L_#CitllrjP12T z_;mzL!+Gg~EBtkzvIT+FE%y&HeR{ulcSK9sCv;65#T?FWd>|{9lshT_9s_AD3CtaKH85!o%X-7&h#Dy3db~dH%SMx?mCHE;`w;s=y{VZz zCa}D%HcRCI>l-H5u%I5k-m-`1SM73xo#mVVu3AvMQ0jebab34xaE6;Y0q7(CBPAXKqdHYlstFlMh_&(SXDwEeWl@cb?5B`VIl zE){QSu9A4Qs)&cu6EH9^xPwdHjT<-a!jWX|?(SntOQ>~02De47SP}L^{g6bl0FA>O z7^=k)>4no(!t_O$p>O>T4hXgr-!FjL2bU$xajp{!?8$Hl2p)owW6Z_H0y2Pv+;_(V zZrr>nVQ$U>7J69W1Do*nhz$`G&FZv7PEJm{&^iNxL>MdLF(7w@f=ms@2ERQh1%mOgi)kFyLIcYHn8_w@8W zHhS>8tm=V3>rfsMd>fR*BE0ZtM!+G{2Z}gc7C}O)Tj$zD4%h%S!$0VZ-bey3x3o4i zAz@7BL|<3wk&;Gba=G8Aoz%yQ&wgd))H~Zt&k0$2z5?REJt+$&K*m&f2g#p|V~@lFp`y+b6OBh&il9E#t*a~giSC0?Wv3>tkE z>#Lu5m-;X!=MBro8COSDDOiV##7pHheOs(6m|XG(Vpkivxpq4`)aZq)SAkHXOsTKb z|K&7(g5#AavX&4Pp+Y3Bo~}3SddezsueTjatiEvqy5PZ0>2GykX&Z69;C}%X{<<+> z&#~+dTg=+~4&PB=L#g~kEyp1{2GK90FFu9xRTDxO+s2pKzPbY)~`;f6&#%)u1DqoxJyE_jQ3Ita*k-U7F%=Q(U$VPF&QPt_Yt6 zoWeT~k{#u$?1n)3lFGiM3*;jJGt%)y z9a5x0_xq-Me$P&re-Yi9l>2&<+OuuQ=&`?%qJ3t%2aKgS!L>XKQKN2XaYPkF#2!$U z8nkrIjEubHpxXZ;4rGf|JdMHnk^jMP^j_X&fnGX+1r8u@3hoy|=?H8`v`2jV3b$gf zu)XNK-m+)MFWR&ORm{1C0Ep;18l@vsyB(?=;RDyasSpqcX3Jx_M2x2yJpnLYT22Jm~7FlVe^n%!oEKx)v2;5UJ$;4PVX@-$g925DXftfcAL;jd zqASG#%mUHJ=Z*!WzUb%W35TDE^3udavh5CVR#d_-jwfCbbtDz@DX|E?kd0?9ZN)2v z@(@1n2|66Nx$lbHM?UCz{qxksfSnR2I@wtxdeHYG9jY<%$4jJZ$E(n+sw?L)1LLn& z;!1iyf!2C+1R%YneB585y%ehMrd;^lZ_;snTUz9oUOluxe-KK&RVjl~$|FLG`EQ?i zG@pc+a2@E+dRahsb|>yVgdcYQInd)g zq9;xFln}pZ+QHSOm4T9b+#$bYZdX;ri=fl6ub6UY*m-0@HX$8iplEMmxOt{fG_d0) zCnd5(1#%_hXfPA?5j8|%uTc2U)~O0NBR}z5hncx5%+9)Mf(-KqRvcrG9{h@*%M_4& zDf)%TvDkrkFCOgStJhzVu~L^ZeG={K?@xr|f$;eiUY7#9thWb9o>G}qunOR4aHb>OOL7upiBw{Mjns8vJz^a#hpE@qla=uETDB_-}Xiit;T8c5wZ0jUfW(7GB2o6 zIb}^rXj4}ocXc#2KDK#+IjNT+X=GA>s;vxhaeb9IA+u6h$yCeQ6HR?^9-itgbpkj! zjfSMHZmin7+TS3FXkuw#H~u5T1Sc4qVY6vfG#Yj@N=?>Y4F5^^wvYmTDv^K9Ai6(8 zeAsQfo>Xz>cIh2eDJXfVr~MG^fJ%tPBi-N1GL-TROnbIFPO)u`yi|G@fOys?O<|$` z(2gyFXu4qUNQbz=?s_4-LF*qBWUAPpAG|WO-JF)Nv zxjz736}*cHdmS?s+Yb@KKJprp(%#q~zUjB{<+1lW{xH-vDbnA|q!S|-4!dJep1bZp_~fx&DV7ZWQMDakOi4h^;c@SaJKPL+b9AJ54i1^IcA zfvFW6=+Xc%#V4x;PzJEwbY5-D;J|?#u*3!;hPbY-uEb{i3^?ZHc^o(a8WVjq1Y|P4 z*Y?_)Sr_IYoCHP*YA+tPwirIyIga5qk%K2{`fG8{BhTaFmX397WshY`6cn%Rja&~E z&D@+Gj8*+eai`o#-0>L?{88^w`Sb7+12la0dtHDmsiS@V05AhZATUDw9LNVz{RI!_ za^3~Q_%tIISI5)x52hB%z>am=AvND~Faw?{Kx) zY8U5lr@KzlIlIpEr)0j6tB-!E0ISv9pJE#eP`Dtv{O|eh6&wD=1w{LP+IoABJ`Qa zS2sVpwT+Yvj_CB{zjtfqF-pepZZ)Tf!M?ib(YsO{F<`=euL@Pf(@TJP5f)MZWZOIc z$!vj;;A~~HCfjT+UmBinR7zWLq9{jCGtV?6cH2TUIr6qCWycK)U+FV)UAw5;BBzB? zt$+25%_skZ;awq?DxRxZMQ_pYDONzyi{N}#0(aek%(9l%ONHJP^b@ZUOq7Aw+(Bly z*7NE0YZyOUNcRueHCs1YY%54dZw}78hwT#{9Z|LO)+^fQdAYynu&@dZ^=T7alXMOa zyht9oN5C5=aAj|#gZXAss(shYG?2j%lqm1>04ji>2$s}im#)0C0NU(FTN@vnGe|)V z+w)UW&NH~LVge#z<$~(?^zZ|CVRXiH+(?y)tI1L?JU3Vg$DFk`;IiDj*^nlmgx>`3 z=CjtLq-v2dzSAi9ZY6kQtu`QuNv*UVJsz=4?%Bj%4ICJN^1hwJm;WznHf`A8$6Bk? z(f|))4GN3Zco1uEIC%DvM4FP90+3(9cG>&nDpsZb6Sv~}o!~sRz>pAs$vWJW2fr#g zr*HrczFQ;Jh2Lbo^2oYtJYIPt^}>D4*FCGAaevlf5Et|-DOx8h(!1_owAL#st%hy% zCh#Eo1Bs!(HX(XUn86tJvcRO`lSBb6S4&>UH!k6-F~_yp;;NmV*edz}zz)81jN zz=JRHLlU(h^Zw5_g1`Si^suV_RcWZk*7BF%QQ_o+aE{X@etxyN<$p-t;=^(kGeVC_ zd5J-FK%VIUvC4cGiaX~RLjHLE-MGteNG4-^{HH&}BJxpb!E+A1!!A&kH4DBm-_*%T z!PlLRt5+n#H(lR>V>YP~E0=SY$TuNNLad1A?pDIs;>05ng**%0<;?#ox9q$3WhefXNZ zf3wWxf=hT#El+^&nSY%Q({{fcYHP7(|7)Z{B=Esx%tg zB=q^Fr0bW)lg$v!(u_GK&ud1dFaaSP!l(`in(mDoydMb?&+Lpa(44qcZBZ#E7QRe= z3PO<--81mmPs-KgYuuTpdsNpQZ64#^24pUBZdvU*-p#MxaK>UXUqayWU4X(qAT40R zV=!Y6r5Ap`TqfNd#f=T^qDmQ!^B17ivNVc*=7E6GstdQF_r#49&#RApFTUKDar$KM zrsT>Qq;0$UFZID}$bYOz%LXN#qkeq0=q?60l6+3Wq6H14;;H;#ImaOq!+Li_LjyfDG^uNox_3;c*~eZQ$&;+5%tSv(WQ|FRO(8 z`t^&F1wwCGP4#op_r27&g*d#ILR%uArE;y@&6skVbU$1jPrD$w;$!USbRye#)T8QU zxv^j{M$@A^XNBA^{F9Za)9|s(4|Ug?@d|msm<^ zG2tA?HMQP4D1`!i@Cj7uw077%cwd;8O2K;9M6)&V zP%R$FG%eP5po&26jS-U+iNZzCb|eLK4(Bn04E;QfX5zFEM_unv>GQP1bhK|*f1KQ? z*lUp))@D~jJAY9vlY+PA?Y=ihNQ~TO5)$UR(NTuR#>UzH!qomhTHb+QlAs0)U%oY5 zoufQj)48Sb8nfZ!$4gl{715XyS3Ws?l(4pj^6~qjHCKXlnR3AeT9tl&WI zsi;7mXpHbzRo(x(5NVU%dwxp>DN*iTovNBPMJXD8p7Yxm3nvvXuU8G3t{(-DlXlGI zl!q@H7nT=W6ComvvXPY#+uYFVBj1Ym5P(VEO0UgfAb`x3D`iOn|DS?>nX~^H-`kSx zPAGRiP=cE|92){@?=n=wzW$;J;_&h42$zFQ_by1kqM>fTNVhaNeN)9vcq)JyFOo81 zxXcOB;BpQ9>mqo2i>3I!6M9|*B_gNm3dj=TN2^E&ucXxEoIRmK!hI2J@7hg|lQ&uQ z_!z)Oa(=H>oU=j)5@rwr1x_@YcP#1b2S2C2%8dE==DdinAt)1XKuzt8@gFL*2TLC$jj#bLwON=>bWpX-5Vkt)y&=NuY@8fY(6Y1Nug{$c z2CipIXo4ttyyeaH_sdN1z>mBvjyG;LF7RS(IxhGp*VcqDUx9z_fAnvq;4h8cQ;j!> z-fj+d@-T(BhfZ}CloDukTr);PTIS0^@Ne|HJ|aaDpMptX-uq+{yfHFs5Ye&?0satOc< z5`rokFVaWdjn|K|WgjG_7G`!1Tgn$Z6wA49tHutWkRniqW|^j>Glan(DU^19FXbQk zbS1=jy~Yo(1>L1GEN-cQMVL^T=n$D6*FI-8S!kVsEGK8q`!V-Th7Nd3rpzpn+c2Gl*MjgjXMU|qOab@6WthYA>Yxox`1vz!7m@($JLzn z@&`2X?@~v~rav!3pQhX~GD@qTCFTpx&WM2Dshkjv^)<()|X`>&UIq46%3er#w$4}2376G$-z;Mi|Gh-jW~UXPfRER~t#P^5Ve#L>+hHVNCPy){x& zQr}YhnfqV?H~imjhjq)3RASfBqjxLX>FG6rbPSxxE%|jnr$@=)dkB$Da*E{o5mbhG z>`z%1?+itq=q!`X`nBf7VPeE-3r>oRx`m$xfPdc=IBoNPnMOgqIIUiSp@K6Wgabsu zd+tvW$MLT{0_(kq#)(d8*JZQN#@Xh*d%`^scz=q}XC9kf9t&)1I9{Qnfz#4jIpS73 zXKv~ZMBn(jxrb*nw|rXL{aZA4CF=0#=xuCl5a{HhQN_!zS+b6GXY zgv~*Y>->FCr4r>@{ay4bHcn3B?(Rb3FuaBye#_0bX7^Me=l#O_d@riP?#E zDtO~)_Y(-3;-1HtA>riA!^%hq7*{iUTjxEwY|G7s1j`%<^YVCkie+d2{yr-FboC<> z_{b?nmdHJh{aOCi#4uf1~1@;qh)~ z@6KV^5$0qraqm^2^oVYX#BYKEwWDL?-kcS)q@v2JnuIpWhzk03UroMHl`5-uP7`C! zKELnPGAJTx^J*mA~P!%1~M7yWRH#EZ=M+BS@bbdwrxNt}2 zXqp>Ib$DkPl*`KDd!t$*kmvDl&=jI5ZEmZ4P!0sCIR*wtLX}TV*8N@oE!F>VdH=u6 z#(wv-OnM}$VS$bVhXySz+J9}2B0C@)h+kkvvs}83uV^qT=UO;R_;(7XU=RS>7fFS9 zwA~yooO(B0x1QmEdLWt4SK}_A@F&Mke1sn5ct9P8EyZdLAqvc0tRpN?O0o_wIRT3$ z2on?M?FVo`r$xBj|NM~qI_R|Y&?w+W@TvCBWnS;3s~b2Vu~-|42EiKD#Q4i3MVqiEJ=oVEN39eLm)*>;VOe4N#7LK@a0KPAA~zzAVJ+4YgOe&P%c1asQy#>U zC(aThJHmCQpb+1yb@vV##@P5=Fg!iZ_8ysVm@NX-h1^%&6|VYovgLh^pG;z7T$VLT zX-bDPvSk~{UI;BOW@I-CTWpJk+OxR`81ePP(zE;yP6}ms$P<>4HBogJUBe3MTYKL4 zadP>Pd-tI|RYK^Iu7mAt7Sav{YGh~fbh~(-$QT~Fju_H7V@n{vpra^V^0#CoM2Y(7 zhxyo?=-o_4mW`p}p(^g*L_}kE8nP4=6yT&ss{$lyz136;DN#2sDZe$;GXm@V!30_o zNVTU=iD_xG{_LyhCmx}K=B#*Rg4 z^FHZR-dM|*Rn@5tfQmUez5uKQ;+V)__=^WZMz>{Uf<4auU)lv5LTFcN;7&em zoW7~vA%71h&M0rA#N)a-kmk6~sVefADJ_U)rV=Y}xPk|=s|Wxuli%%g^?r_IGiAym zS-)gBhFEY{zWHQBSFiWEs14L-=P+X0Xse;KX+~eDSn+fh+E;fdTd+zlN4gZ;i7J`D zO$ra`sg?{mKI;Yt2X8-8lk$f`2z5U*yOO0GU2?P`k!w-f5g84P?np7Ri4Vo;eN zKV4(k9^Xu4$Tw{Pve>ghFnq6~L*ODznN_(axRh&h}40ZMLT zgKh~XHlZ2mnj$(kivWMoZ)Ml8&md|3zbfqMssD!t=(p}jG0%VRmp1g}k$sDdx#9#< zhK@>kK7{dF|6W$s+a>avwdSg*KA6!(2Ft1~Ae3BzSktdO1#((F;DKQrHu}=63#fVo z)B~t~y}Os1$sMbSOlfC?KXbvY4S|0SW;rqYDXCtkst*Lqxh8mzXafFMelRTwlN-<^ z8@r%ZQWsp7ku?yd2mPbp^U#{)B;Wp5N}%%E^;jnyVGy8~73Tc*${L31%^ChumFkuh zu*}%--IeB+(Ns|DuR@LeCGv}$v+CqXrEvQ_=zdQ-da=JVtq)qBBr9BIVZnuSv>(B^ zM8AxtBTfEevcP8pB-Ll{uneQ%0{$qG|5K`Z`w(!!+JqG}5R8gIw68WbPNt>j5N$&z zX@XM>y9@T;!*%-zBpP)~T?6F{=L;Sfr6(eciyK=KlyeGf(W-)J`n&df|6qK}wr~c3 zM9)?j@by}gtfklKTl2k9_J_of?fjP(L9(NMAoVptFjM=SM;S;7d z=ia;{aHkeT^l2-$k#w{c!C-LCh$C?3ZV~!^-Vp&DcbHkM{?+TbC=2$;AI$x}-7q4y z0txcCFrvNkM1b@{bdRZr>op2oIf%4?cGmvZecf)o%9&aJ;^L9o!InEc$5i~o-UA`q z(1r?|g#o$>`q^HV`sc`+%{b!?Iq7zWWJJ<{@~v5yiH6&mJ{tRzULdu8wc*7}OLUii zlt;YQQJ4LIfWoegx>Xjo+Usu8t>$2{BTsg4umG7^t=~{#L46qiRfzR^4wm1WT%lOW zH~WzflexMwbl4cR0v$G@jtg_l7KcBhShr@fTyiX%w}GS}n4ES^?%^yJrQ|H>Z!3n> zj@9IO&nw@R4oW=&FG3sw-=u-M4B}@{D5y%l!s=Dup%?fnb9aR(LUrv&+35q&u{)ZBM;dOIcGFAh3-EajiyK_fzPQRMv5S%wI*7aeo+Hm0Liivw>A^HIQa#(O-=@5dgfJ5Xo9 zMP#$U{E1)w=C8aC1JO_CS)~RSYnLFB!c>;D4V#5U4&K1xaG6eC3ygbbWtci~-NbIp z6|q*c;ty$~Zy`Qc0ky#eKtg`>#h5#|Q$V3WnOn|Vd40AkM)wZQZ-I=3-%a z0s@)E(NZ$Nt=Z5;PF1%9CPf!X*#tpfsP`jKJXe;%;c%z8e9imhQs#YO;Iu3~_~;>5 z28~#_2qA^!bk{#F( z2^izu{XHcg`}1&Q@hdG5kV2H4UmoAn%C8yf>WeH;@8NLjFN zjkqn`E=K_4YA)B)7LUrPa^pr2FjsT(sn>Qo3PCjtQwHi}N?j{E2-gPI7BO1IARr;n z?tkip|7vFRyO%NbK5EX@T6%Wi7Z0U(hgw*n&e}7pIb_TTtCu6)XalfB zpiI}WzZsy7eXNNI>0TD0HNKurCm-}1aTfK$`1lqAu6Pqt5y`vN?0<)Jj=b1^^!HN% zxKGJr{=VPo-!oQWrN-uu|2C}vHl7YxMFQA(#k?!y%WrX_cs@T+8-H11VBG7TG0NV6 z@%fQx?v6CcgliDL*!*R^_a$Xuyjg5LvrQBKH8{@bAp`rN@!oK&$#(`pX{Zja6UUgF zM%?iQu7a=U<_LCEN_EaWb{vEYgh#eG1`5n$gv_& zQ}dK|en=W18xKpV&0N9gUtnn#4hE*+vH$(=px=JvVn+SP3a1SCPBq?1=0@+NUu9vs z9`vBBLc5j&gQ~_ey6z$=)&BzI*6&svzc}Bm`lk1wRmXdm-HjM@TuHnj___>wF=S>N z3JDasO>ejF|jF{`4V2;w-(xBF~+?&b`fNt_9n>9(oMpUTx55gSztLl+WQC(14rZoYT0Y z3!frZuhT?iq+-_e7L;bMd&m42hKslwjW<@HOo$@jpWjhN9?n)% z@*o^Nl(7PmID@W(X7nW(Dj{EC*xW(cZJWsS=(9bu3R-;T@NDxONc2@)`2g^yK?Xel zbA9^k2PyertKgegt8oi*?k!~t*8n-NP<79yC9T?jpz??E>Lce0$7~Q^$KAYd(!1}` z+h4@JyiuWgN`PEs{a3wS#0h8Bf)-_WZ|^ejGZ;XKgQSi4octz{ zVHL0*{mLGmLlwhMtE7e1MjJ$lAs@9T4_1_DY}3HV^6hzhxH~i%X^*p=!S*CbXJwKh z@ZexCDYZ=uiirm>W&duF3ZAuk_k>*tL(NKZ71jRq_#6R46~?CPM+UHcB1k1Vx`AV- zq++@{xx55m{IGFDVRCG<~HAe6wk3wo5k zlf6{&h3qnw%jHkw*bzUS&E#}tTABq!c^HxiamoGg*ivnIxVQI4U;${z;d{0$K2w53 zbK#~mw`+y|CF%JRXjp6ZVl6?__=fCGmwC=5$E9+A$Jv<=ZbHj-pmI#g2!b#y_rYyo zLTJCOrBOV0>BxbO9-ne(iql*S!rC=o5r}28!@U&RWy7zd=Ot+cSA+Ekkr|9r$AagJ zE9NdsYpa{}-uj_q^r3Fjt>F!Xi#+Pj^QZ1VH_T&$xO#M+$XCqd`o)=(pbde3{>Zp% zg5E=vzVsI;v?SPCsH7bsLL)vwWmfaWN8o2AKPFpsWS1jMkonJiTLXBEV0w4(fJBRd z0z$EE1qMn%X$Oj^XiX$J>tYILL9eQ>b&0kAwUW(b26Ryp9q%A?FQIBouu z(_zrOc@wY3Laes^5BVYjnxiG=fadrdd_^&Z+5`oYi5r?|09)*#;CaE$Cty^h?MT(4F%U5CIuuKFp zWI2Pu#=?R#B^EUp1<8uThK9dundFl{ni;N&BK&}q@3va}Z>7Q^*9A9IdQnT59-{IP9 zM*03_kdC*0Qp3IEf?D|DzG276#x{@5=_?qWlb-M~av*l?ah}AQ93P9PW2)71E6(9_ zm1gl?^?}vk?17@-;3(;m4eRs?b}>sDBz3%1f3wh&* znDf3*#Uz5?I(ov4fC%I&uxY4`-R%}nxBydovxms;_utTXqQ%~EYB%%Gmn8~Hd<=hq zl2V_LihUu&%>l?T01;d`PvF&@GMb$0-@jVM9B;ijxePn#5>7M>IqbL$S>((9k^Jf$ zl`)!BUByw4ASe5QyL@JSdbG$E@7!}$dr|yLJSUQIGqvKOf9$+!5|9gK**IXLOR7l7 zA!Umh;P|$0+o!N&5y?SLy-P_+F(lrXuqqdjnqQou7~44c0hD-v`+kIvI3=NQ3! zSL?h56+m~nNPV+5#2P62-e1}zVor47v&InwWaei9EJ8YqcjcDn7U zlNY;U2hIKmTlIUp`ao;AR204ies6ZpEunK5=|jnbR{rt~%>R42Q;-ZCx{Iw599?U0 zN@+EL!~)XWK6Ya5^|tR&jpGyD%T#g-#%+9gmOX|31NMC8Iy(pk?2c?-ZJF`%GeKU`-AY%xW78Vuo#TT;tUL@Ws|(X zc_M5%Vp9PM*s<|FiCJ;o=W;o9G)~d@E`X?UsPXC1&RS%{k0bfm1vPQw-t2dHz;N%w z4x8V+CGq(!HoEKssei2;@YBm`gg8`Y=n4_{JeOJ-a694)8VA(``B}H=`UZ8RREA0HQAjjUOd=u~?k+bwbbg3FTzgv4X9qG~Pb+Y#tnG zK!1&luB?{1G|!Sv$CC%CVlZV!Lk08=ZV>T7JZInac-EEiV)N?GQ z`x{B)rSj^D&$oA2#ZjIV7pl=~!54f0i$Cr@MQR$w>}F?VRxOGIwO!Mt6y1xOy=R}etDGM>?0 zqZHa);%MA@)KZnwYJaNJMC7(UTug)-nqrD7ER-j38OE$){>Y&I@rN#0-}|UMhpL{D z=2x0Vx5fsNii6R{OkZ$Sj zmhSIa;Bn^6|IB>*x`s37h_Lrs?|R=S?)&#R4Zf5*v$Lk`@Y#mUDtBv%2bv{2muTr9 zZ8cd1*<9&-{=Ide?5tw=n{v>P-A0;0k28_Rz|kw_cdP_+>{<+e2TH@sGZzJHwtWET zQLQs1MFlF_9_wQc92OoP!uWu`#}vr?(@#r=6kRr3t^pd?Jo@$n$J=TkR(2KpUh=Uq zvvk!n!J?rgEo~$IhV}^SKN7Km+UszcqJVt&jRZRLhPxAZ>UUsiLBt8(uLU3R4vr-RqgT$-8xr43k z3h*`4l^~Rb_#(>@2|x+^Kb%j+3g^rc@AN&;srJ&YaYU>{Wl{-Z!Fg|k5?nNRp$v1CN~M!>w>Ohe#~5lo9IPUNv&$bToV0@5Do@8&-e^)iJ)WW!*o>& zYg4{)^{Ss`@;59h8wVHYkW>Vm0lqa%S2IeQHT}H!J6rC|Fi5m1pcce!MOW> zHNo|XD=zzf+Zrw+f6;RTqaNgWR}G430z$9Yngd8f=IK>XWD_R|4)s&5AZETar)1JsB9 zz3#AuJ_n!?agFfPN=erV5LJg5F{T=_+5I{r-*+2)KE!>N#m()y95FO?o>of}*X07S zV?8(h`>zDRFZ9O4>wDD6Jdy()8U5C!ZYUaxRf!wN6W!(>f((JcIOMU_Bf+v8Tq`U0 zq;E;ggX$Z89)e18NZ4`}5AiFvaNi#tnW2xrI|*A5gV0n*W@1-LQ3trS`Clz=nKTR!I-*508*f`QCyA;H~?5#gL#JF2>Zrb<27`j z=rQ5k7{yK6AO>z32_mkl)wD0G1h-3;(k&hDK2aL!hFYapxEWmPpk3j!n+f?#-R@kM zd*Ww@jikl4NWF|IcX?@Q?bjtd)$(t3XXZ$ZfL)KiP1cH&eL@TLE7}>3ps9q0Yz~r`Z5uGLNu*8Hs7Mx;<9>dUrJ?sV5Z`|5 zK7tRVP9TjNc=f!?%DM-hGe8(46FU7De7@v+_LrMiHcC_sNXJ^{_J#gk{dV?46p~`Y ziQs*(2iJg}d-)J5NFi(MztYO}F-C_&*+z%!0{otP;hRHMvSZYa;tVMb7B=K*NE4>0 z#EC!pa^5GqAXSkF+$}1M_VlO-IDm+KMRUW#0%dURJw#+o1Pvr1bAwtP0aTH|^4dD@ z)atRd_VNpm99Akj*r}FBMw3{|$W2|g?qT6b3@-FJ>GN}3u48om=9=n#>WaG@^+%q@VR_vk1Hnm0hkaSr) zWf@a~Or}2bvBO@B>zn6rc4e0HkKR$1G}=342ZzY;!ljw5y?q-3N^xnUQJg~$VP|I| z@Qg-@6A6X9VinW(`LgV**uChgwPJ;H`*NxIq#BC!?k`VmuI?jCPOuLg3}!T|_DFxq zYd0?Q5kjc=07(*pw*%q@HE;gts)&dfPCSLI`KuCCOFLA-7s#4cT#Dvmms$wq=MZn! zZb{ycL_kQ)Q@jFXBD6=1SXrRua1{(SJ-e7Lnh}zVY;4dBj;7EcNIK^>8?x&pym-fi zaR(qg>pEmUR$MFF^fnIY)thdmUpVzM3a&x#NEn);82DTGkMPsDGb=QNPqU&`m%T+;d#6aCplK+fC3*UC*dQsKo4~V@ zRX#5j+<>I~E3KI3>ZT{7`#15# z0OCMaY|QqO)hxE|w0kZDIVX+g7~MwxN< zu#2a%CuZ9gRFZl_BowKV-w%W1uk*#?^e8q{Z8K87^QJP>dS>wG&FFA3VM5|d^ITER z(%xC86t0x??P7@9_w9fhvf+W~LhB(HX$qu=g|;Z7G)R!A$H%Yf_O&1>!TYf?E)JkHLRE!`4&TYrGRruZS)I_LQu+V^ zN4{8l&6k#@px7Fvq4*4!_uGSgxlE~^213Dyj~#F3=GUI4%RUJJfE!7_)HLK18*Y4J zRno@wXcB46G@6W;0*PziMd%6OO!h(b>gLwWH9&u8eQR!)U>QL>e8^YEl#m$MSSEvZ z`<6FuyB>2n&4*FPu8wV45h8)CzRvpkue;Bbn8h4?H4SF%7n3P`Gdr_o97Gm--(SmH zqJ;8DJ(Ndq(C5&-5Q(wP!3FtnLDmCwsDHR1$~fAWzR%xy7&$M$e)DG0utvaZxvobe zGfmJAQ4RM3Ox-f4v6S+?7E%vE^s12y{I?Ay2o@;}`$|b5C6plh(`ifz`X9$jzzBzd z*55S{bQ&OKdQ1=TAX1+)SepvDC)6SqkW=KgQA;t-{df>;jnDw`gib~UV7V`F_2YM7 zlC9zUf8nO7xULA-X|1@HKLjo6e`=KAWc4 zO4nqK0aQ=K^WkG!nfIeY{{J8iiMB=#Ap(UMS=$(9;KKHA>)y}X60C1s%Tg`96aIPpEfCRSo`~^L8 z@hKm$0w~wscS1?F&@0EE&8*?8aI8i5U!C}5S1L83XpJ116clVKn=v^%j z0q8>bg2kf(_TY90%&Y=PoSAz;*0^`?@XR2`3S&|t%ZW4hX%haALSyfu#_=N+B_s0x z*?3w0vE#dxj19uHjverqB{#aig0zEdzh_Rm+pw1e!Ym}G1+UyF^bkR8rFYlR7P4+2 zP4XWbwh1`DFyfWV&uz9185Ssi{nm;79r4M7;Ydh6rcPSfT(_syaxEg7y%Se z`*(e-1Qx%bJ>%?F6XkgBYilU)xxyEnUrsYi9MJN7PU!3cs>r)fHk_`Wz zwHBFxP&s?zR1x?#Mw)7|lp$TH~a1hzHIs$Hbu{N_!cSn_VW)W zGanRw_}ZVwyk7EV+@J}msxYU8HKlrEbEqUF+?BGKpXgfU6#o;>D+($%E?G!|x*Gud}+K z%l&ciWXd4=!7B_(ev91(ct#NDRiee^XS)If=A55jJZL$9s9V59C3<^nKfh5*eRiai zKivUj4$y@nOd4j<96!&3& zJIN*dtTlqt2h2|#aP@>iX5soH7bUjb{_NqKjBfOOjBvgBPR$gpgcE7Ls;H|vjA8{L z-V)GJp!2F>ZDC*P#+rt$`F0u*G{$@qSOp$;s4$=5SZv^Mdp*WedteB0F(QQqaSf?0 zTwAK0x88arPJGb2yO{0s+3De%%LEOk$bbOmLOcN*7ep%puW^fimX&IzZa4WID}8fG zP2YKXmi6ab94Wu`PXUbQ=D^7;2<6tM7rep1is)XD@L|5Zzuuq1++rj1bhWO zuUWAI!TH&ytRDcYoG-Ez5gI5yn1Vv0a94Zq)SItlYftmkw&z=g$}(;7qIllCa%~iL zNc#YVfJ`2PgmXC^q$UfS22!FH+kS1zurFVnnVEkJs*#t|fBYrEr@ z-u17boy&6i4pQ=tfzeVTI7x5K8qd79&pzWR&!aZ(gFg&5JGn30!qF#uGG5K4Ju`9V zEOXJIH50VKsnT(->e=Us+?r3zi!J<5&}0|!leOvP( z`qzx_sanBkNh(T8w6d}?@F{^XZD1NwDY?{?eDEeEw}JZ_>icBHDl&Wg*B_d(4l7v) zUcu0-i}iAIod87wZE;VEk8M9J;m<}qnwqcGwi`Y;qoJUm>iWL3MI4-3Oi6EQ++)*q z4DOB2+;W|O10CvPxwST%7deH}_v~j(fa(ZgJAEduQK*atd9c15b4ze@oq9b%ux%5R zOsM88ad#-eDU63T@%`aphK=+E1w_|{aWaU%u;xGV1>5o^k03jMviOH9;G>!*=Fu5IRdP`*O(KIvAL zoulJGf%@Ee@jOOOWZ`$!mspzZ-_fNQfEX#dpj&6{ZvQ%I)DGPw=A0$&RU=@WJl%2J&#WxS7d z6>k8|1!CRU`}v)>wq|0~dLZ1=?z8!3LqLAsalO&mxv+0J7;>3pmjL>oG;~*)Szyh> zjmWtTL{M=#!|v)$h4I2Fv@oc|X41Sf^s&buIShfO>d4=PVKohKyRB z-ts@-VN)l7cANAgei}9aU=3dY>?VY0HIgH>& ztsc^HUB3B)cO^S;yY&K;(hI;c!3qwJ%47t6w)&&P%vL}4c_IechNGb;Dk5|>0lzp_yI*9j8jn^5Ox$F+SGxa~ zM4sj#8W&tfDY#CS-_+O;sqAud*X#Sps)l(2eRQ{_KsOG$1D-25L=n8 zmp)0JM*3>P%@k}<0=igCor-A-Q9o)Y3A9`6J&D5hD5R4AA$Csp>HMnMtq zJe?xD3DOpTO9ORRf;@Tv+`gL}g4o4>y$2L9@XNZ!w{4(63#mRn>gk7zwM0WTau%gI z@X11k(ms3xcE|bG%J8;{c`NM@nq#&gG2;JMNPc@4iZ6VSZ9lZCf#XS7A-tq*tiy!6 z0?;O{8Vl!y_GZslYB{}PTos|()W1;S3kp%15*g$8mUw)o4Y@)L-rSUG(3rkA-SeP! zBSTX|fKI+4dhxwK+k2#E8mV!LP87F*0ss|}WuVhPWuJD8s7?snea8Dc)6ysY|2X?{ zvHr=7^|-MXsN@g~BAk+uY?GYS8bCob$f*4QP12SS$R?p$S`8GC;Qnx=zqgaQoze|c zOUevYk&}#)Bh6zEqaOGr?$DcrHk&&){+SDCX(i}Fsks7*#!@e*KA8C%X3wQ$g4U$W ze0=^B*m5^U0)fNJYR`lYs0oub6(F4$v{3kq%FwawT|hZ_053i+kx%AgRxE$D z@Hvb(`wc1GLC5czp+>&ARaHWU$0Fo0Gb9W?*J~7IbIvwsmCZ=(_uBQ zKI54p1YLndT)9!*=b?VkSpC-aKp5JlKqQm@;=I0F03RI`V7FCQkPu{n_M7WZbSt;0({kz0%3e7& zTak0r*U6>>(L&I!wqMU`GCX!r5=2K;?5%A00Pf!gwAr3-YO!}_eRw%JS0H0VVqeBz znHe01LjK*MunE?Ee+PZ`%O%}7Ae^R(m~%wAK*POkCAAO@1^*?w{qXP}$Y5=tfMAyW zl?)}eJ`_@0tZ)j&`eIvFDJ7x0)R`9C35nXf2avJyueqpWEw+YO*j()Bi9N5fvv+bY zP|?+XcjEyj(VQ~$_;<_yMA{tx-$*;_wAEhtCl{`ZBfmC|H&W?<$RuytZAN;{P3cjpj5#WwR zx*?dgXjeewbqDSbC_D_mslb{;w!DYmuR*3Hj~@~ahg^J%Jm^mwQ?nvrd7-j9Rn^5i zv$5+0Yyl2&va=V_P{1^eIx8XhyvH(XPoOKGUPFcZ^1b^m`xU0-M(&?OP`HMbe}~Kf zy81{LzDy3ZhzMiP*;s^l9^pcrftEo2K}dEs-&k27B|i%Jc(w*jkIU{PKvxgmVk@Y4 zc=@=|;ORBZE#`sF_of*0pWhp?b^k=B$t0d<^gG#yCW?4GK6@(IM@JIVKZXGz78#F$joayzu*6Yn6mxLA`)6Oci^gktY>%PsK4N!r0 zlEBhi>JMZFh>!@BjTMM!t4x!?6c~ouv=+>{kSWP!ZVQ5_k$E<{O$oIh7}N;@Px z9-M_9S!?z%$om1wiw}>(*49Z}&f?STPJ&y1K#XEx(hK>3RzU00-ohd8UO@aQ}ehB(082+{lGI~hzF zDo(FIDAiUjwN*uRg-%%v3F)_Oih>Y1eF<$O15%$iiEquL#R|9XeFbfu;=I#>h=xtK zvWzqJVS}?!$$jX0^S&Y4qLRa}Eev!M4oX~OfC}nGeYuepFh7fdFmUEc>6L}@X1~r0 zimnnvf{!iZaKLr)deaFjnv>$O=+xw4;W;D{P*nfR`WPR2Yy@@<52rYH{=D#CUf@5} zzdmY6*q%Ns^jV9}KJuCZrMzrlKzTA4F%-*y>;)OKctM&mIk_b$`RCElss@?Gv$9Nn z=lik2SFyY3{NS$b^IK}`04Woed5w$=u#rCpy<0NrD5l&&kbs?KQBRz2`ON*z{Kkii zYUeGa3ZsC@D!v?_B3o}TF9!vo3WzNft`Sh{T#WieJq&1Z*kA^M$`=|T zKv7XGMMosY;xJMz{X#sx8wl=h+lN6JKErgKdLF@m7HKc$!CUn%#m}dJYc*g8xHoAL2YQJ`3=E=uRz# zTy>o2r>shVo4>~p591dFx{i$}O{cfk{s(HJo!v^EEJF@LJ=IooZS>`OoVV7C@h9@nCz9GWU{v33#|kN&X(Rlrb&;J4ay`iuc#X2UTO$2 znES@doz-7GpGatTcrl?+w}+5D-Bk%dg&zq+bEbYc*Npf*(p07~W)7%=8^i)49?Eok zQH;&yM-<)maw&-8xtH$18!G3>OPpik7-je0%TUq(IP7eN!UlfQN8p#E3$i$S?sMdh zf+6U7QvI}>Xqcx51%=L?GcABo>{$;Q?X*DwM9@bAb7K?)$J*T^pp;PeQl zbnihl*UGc34l4S=c{$LA@l{&f0pFx)5;hBz)?s+l9pta7id?Soq-dve&s^)fr}mR- z8D|HlV14bIT?pJRHE3&3-?t?N>1ie@)@e^$0qff`v6;NUbVShe(B%0>`h}e9#VN40 zq)A`;G|2*M7;+{J{$G858eKq1f%Ku``}?!dp$1tGERXc{fh|7iop05kVWb{v-_(GN zR_Jmc?2KFC7Z`J%2FW=e089GeohH9PT*T7 zfSKiNvrE%(^mOk`200f4Zx882!vKyf%65njhU2Z>nlhRa*XxT_+W~cvuS(SiWLuZ~ zdOuU}_xg>jxF;6}A|a7Fc#I(EiUd7a&9-{^C$x7(^k|rvK_AZH-&+B6X_+{X-O|^bI&;rX_`Udh%WBivLKnuh@8ExP=R zS0`K0|B-!TECj3PRDw^TkTFaP)ambY_BB9{dzUUZ&ggt0_>1(7o;X&O9P&7U!O5g! zV|G&!s@c#x=!oh&avxXp54ZHx5lHE$uEv2q=Xl=hcaV#1;Ds7)DC16{_RaKCRv!rZ z_bvraDnb5%)Cqk5-eVedfbFz6{;U;wx32lND# zN>tqXleF?o7ifOfJJ%eC$uw}?zj4u-ExF5^JEZ?II9uo()c+O>v|f7rzq<%VU}yZN(_scFRD3uMa-v}vaIo^@?hfX9 zNc1l$2*aR+I-sAZ@VV{waDwI28pKHO@Oy@@vsz&f%Pp{7B0BZ~oaHBJ{p(FNtwHfykzErEmjsk-JBfs6j(@#9G_7M`c` zc)^W@%4>dx>)X_X`u^jcW?(^~Lb~CSZrXp0(~07EeOxvB@6P>yo)ei}j2(bHDgvzF zaYa1<$yS?k#%DMba02;7!vMk2ivf!WvR4!eX^D;YB6VwoSJCESjBNL{hlgAqahHej zDG1=w%{~pq*Go9F>r*Q3G(lazq@N4ndm&^BL{npg*#sA0KT;U$Z6mNR*I} z2R;tR?<(hiyI;wr2)lJ6(BLLR`)4B(Lc-V6)4K6eDQQTX8LSsyVJ0DnKQK`M@GB8M zg@$7xO2xQ~!EmU6M3~^PzhcXSv@uU?^OBm=gQ5@BBEJx2Df{R0Apa-+l7ampI~eDV zUMyq(!?S9%y{z^hLyO4_77RPbfHz2NTi>h=@+|@bFxtrVciY zODXXF8G~KPx$tHf?UG`Q$v=9!2cvd6}Kw zgmycFuz28`4c!m@5DPT&LZSX=`@h3*{~vh)`rFw4$Y1X$07thQxDzh?U!W2Eu~G1b zUzhG@M3AB{y2V(4{1td<4*!n}pY51;n`4O@kRJ+$BtU!t-p7+o==s6Z2Jr{xcj%kN z79JmW$3IL`<)zB>eD8(MiB9Ano7;m)|FKzIJtuYq-1#qYHp@25cR?_fR7WTkkd~U6 znVH(y$l4*34*vFHPWlaP8P4rL_vcn#M{eb4fH!g{;C1cy4BP+U8(I68Ed5Wq(eZP_ zhbfJ@wpQ$mhFr8ywpLWge}IN%t72G1!KC3zo&qL}li;vCRc=zjd3 z{`S@IyT~6xm-yV*|GV%?O$yw@2Bd5k>zZsMx|OxNlVFF)2sgfZJ%y~7W>xx1=Mhxk z2pjUZpA7#JANpreztLPd8q0TACRNFEbo9CZ!rOXF_w=!1W$EP^J&)8>nl)2d%F;YM zEwW1j&fS!`%caB>-YA0OhadRn$DjPKuTdNl2yV_xxNKro78$iB^epHd+>eh41n@)S zA2sLW%)isS`f~DwJVx(c0=f}l+$}kc#oQBFOi$|w^zYfLSfR$`VF6r|Aaq9@%_Fi0FE~- z7_6;*3g|Pk#l=Md6NHrY@2?M|iwk||V=5G{Qa1}VV7}bHfiJB8)m80f0DuxQGj6QL z7oqw4kh8T-TfxMx(Ulqsei*eFFbJ^WzrCVl{s&+}+&{mt@M5`-o}M1ij6bcj0fy=< z72oY6R9VM6#7>ybc?3N0BzyLEunp{tPZoZHM+I=k>T<>jcWN?3Y@(pr+M-mVDYtQn z>@AcM=r{I9R|k%r=n-qie+iM0LjvPZS4{IBToQm}ArvMEVVTHq1q1|4VJa&jA>sGF zzKbx_=w(t8?Ge!hh=bxGk?oxiVHRkGIfR~G+-o96eQ+?jYPpm5r2=^e%V!D_JJP)< zZ5S0VrrBVY+#Y(^#JU3fin4(e zfros8rQZ7vYUDSMal{@_TmHX57^8o`>iVbth6|`z;J$BZJp*_N_)-5-?OoNkZvQHL zZ|_BYApOzt9^aYR7D%pW-0H6Tz&L)rB8 zRfsPnTH0uCev)?bTqHL#3M-IY&Vyh8`8XCkM~-i2?f-~6E8@t1KgRL$`!IuvuO8;T zM;sH4tbPx>X5Lxd`920lIw41`TNKIE`W{e)dcNWw>OKJ!-Ppp8MT9^Ah8&a&fIfu0 z9eHOMKEt#$<~18ABO!TUNUAEpR%*z_aXi25pF_s@(j_gK-S5e{KAAA+=om0~-ADkm zN5aZH$8RQnp;e^~`=2;Bj~izJOL*)6K6`qhH|UytF+{OQT`a65_6MOSGs%jtHlgB=Fp-K}Y#8#oKqR+nCL4#({8 zlU*8$CO;%Z@FwYtr`ft%C~#+IYJ z95l%fpVVkzmLOdr`Rr6kxl%t8@&cOzyqmb7EXFzNwLl3jh+=C5@nha7jS7pzS=#$WSpnG zvjEacpq6`3r^o_16tR5nPYg!u`1|C-)Gq*G@JdIE_%xYL&tt%RzRX=E=o>&es3Oyr zf@QuCaon!25xzT_u&&Ixc@IWot$=o6dS;aX#yuD@xhMD7K*~8Rv2qf;ora{%#>$1! zAh03J77?t}5LzS!@dDXFa;MUV;%2g>k<9@k6BDLDXgl3JhEbr4@o+=JY|s|e<;%9x ze|>7tfVB$>Ux#Ds21LZUu^DS){GvRnwV&}XZp?rNW26~qINF(|qe}*PY2dluGyla3 z@5y`PbAEFj7Xxl?<6xv@bTeDR0;byfPGuj)_pjZUkkNoP2|_-d_W82n(>%PS?jTnLey zA)>?Unn{|!OYxK@Uh%QL`2+ob70_+e$L8Y$1Fh3EZ$%C2*v^|Mr!2pWEahMqh*ir7>4GhGbdlWk3f~N z&$7s~<`9mp2KNwbNOut5^0IG&6Q13*{zO#bb*SV6RRr2ZK(0qi=bZcvk&up@Y94Z~ z8SOub0^|PYFRDV`zR(+UHPSOAD5iv^07{Jeg%mD3+p_@ehf-a7E2;j^ICnTzPA8(@ zpHBmSfNS$ijR+_*95SD0L@*+)tk)(&j!kW5NdGfhpb8lo^M@|6jg-U6R^Eb16?D9r zJkI}uXz+zx)i9w!Ch5H>nQ6YaPs(IPZ}3zfkIAYykezxbV`HDBub~NT=irG@DAk36 zoh5ID=sUTy^%N=W)&>V;RMWik_KKR}Q(pnTVrJTmrwRI!9A%B_5O{Dy4h|A~_PdVF z?zcgL)Ho@!a>s;~LBTxioWF(dbsb~fyb?s~GEUwq1|1Z{tCy&8BaEtYt%l)>rlvo- zLl^lcq(7lC3myaF8lNppq45SAkmvg#{AD>7t9^fao_6>RlB)7Q(h)h^@r#+G>(;*^ zFeScksv1J^LNu&rTtEUO5(qs3Tw9qGkGo*-RnNOPO}E$Z;JgQEDy!Kthx{A}A2fjJ zP=!o12S)E_U>u%8wvz>vYQC^;T?%Zp{V~cS zBcqG_5#pXP_(Yff)8kkk;f}oRjgeK*TFL$DCxvZ4Cvgct565T)N2L3s&FMyClwY+D ze#dHP7}A}B$!})gU|UYwJ=5Vaj?5dZTe=0~vp`IHcTFB1oZh^X+BNPaJmxv~;9f#C zPx}r5szVk-$l=A;;KI=3Ao0T>$UHS!ezfGhA>keQ*4ZL<3rz@jiRYk>aa`{gz! zQ0V654MHr4v^nK1NKg*oV4jERzgerLch*+jV)s!U&9Y!Duhq7Y0ccvQ0Rqf$iKfq4 zNntzR=>7?`3jhWe+St2F{4ajS0rVq4Y~-)Qq!)r9D1>d%k!CyR(Atzd3^+tXvDM(8 z9xO$u|27NYh3*Q1$*bv<+{At7KFNPUU)xu_%!PKr-W&ZD+&5@W5EcOghJWKAp)C++ zM@@KLTM{0bI+#Oe1`r$l)K7r$**+>MRrXnM&11^g}!@i^>j5dX_h=gJH`c%N=$;5+{omcDu z)+LqRpVZ9jss&FfGX2Pr#{%vfc%-Q2dVgat8l=7l)t`9_ExpbVcP;yN)(guhv|*xRHU{?h_sn)$eEG(1K!ujG=#mar9b`jRB%%Rpxn}LXD@^mgMg=nJ-v+^bk(+oz5wuBV2Y8O= zMRj9EEXHWWse=f`#NBZM#KR)MWB`o{}^YM2&ho`YG~-Wzj1 zocia)R*f$-!rTnCRoLHUQV;#O=#*qhm=X z-H855b6ws+X-$0$2rFmOW}4~EoT2HB%)QcduBurBfj3N~ubxEXUtyV@8W$1KM_@1G zL5eVlOPZ)0XnZc<#Zp%Wa|Hw!KXxKfp{XJS@1PyW3q)yVyO4GDM+x~4q2+6<1RjP+ zf1vx?jT;^UDWwk2{n`5IcnS`vZK9*%w$|k9XHE>>$yS%dY zk#ET);y_8CHGFzzY74<-z(N2`Q2TVj>h|tZ(3dHA;_7yZkNdX~5cMoWXhfY>Ceg`i zlyH6W)}0kDnF_}bpsQ_VUV>&Xg8%zvr!#x-b;M5iQenzcbqKk|4h0hd1xbEQ>aBn$ zDQpab`{)?qjrH8>8-o$B74oIQ6Nb3KH!kO^zwZOLfUeUWW}TTOOthzirB1MgB+*VC z)2cog5or^R{@SKRxd1&hA}3MiKc$vPOhGTS*8-G=kVf7o=1)%=$GDn*$Wkpw@Co>j zbsR$90=ip>`%5t#Y0(}(!D;vybn~v=pi4VKA#grLc2PJ%YmoT0-yQ7bZy_W5ee@1f zuK#un!4y~qxkH$u%*-}!3;ZA5LpN@=!JAubkT(axh@Ia_)ddwEz@NYyxNEn($7kd% zj(Siu1oI>LA$+)T4|fKXGo;23Fxit6bP*&)%`}(X<^y{=)ZGAX(l0 z2JDooucf6lSfoJ0dJRq+O>gJ@gY!$i@P6)Liy-c$m5I*~0m9Nb8V44C2&AXeu6F^y zGxqt#;fixg~L6l07j0o@(Ml^!{DkIN3#}tm>BlVMbya{k82-xgj zij(HUQ<}wpPcziM3(-^o8MYQ;r*|8lZIPWH!A6)n0i_EeaS{7IsaWY>W`%r%G=+od zIVT`Az=!@8!GxvlZteFNE_advBh0Wv$4o75#7ys}FI-&MfG_SOFZt&Uyorme<+jE} zkAOTKs0%dnm)OzXr|#%_mPqLEj<(3ct-1-~6Z8aUDXI?4OO0*{u}GUzZISJuf;)Q7 zi_q+3IrKgi){7D1!yE|E{r8jr zCKN9!Q5FN2v;qbkAuZw4y`_-Axr))FqOVNDeh4Y>2WA^DTB992T%)yvQ!X%5bDb?e z@0oiRv{?mJ>@i^==?i>>iV?jVh)CEh>2bi<0SVK)jXv-=H5_d5N@iDbYJC$W>(}s1 zo7=HZ<_Z}i!SHBQUOL!cFqYqCWqMxJYBd7F5m-cmmkXh_dLNrnz)fVmM#N!g8wfU; zyoEWO3~~7Ty4Hi|WF0zbX&LUmNRy4FCz;pS_vM&=HqiWZAbf5~b$vB3jCs@OIMmj( zhw^lpIUt39V`Z(x{&13!@31Lw4^UAMK(<26a$)HcmQsb!7c;Mc6#u#{7nD-`<{;Q1 zlXm`K=Ry{r#=ru3Uu8+|6M~%<4>mfzt>xkl^dXvnOJRtrt9wnlG&o8@ky5V9LquqX zg!COK5l*J<@AeJwEtH&f;}u@G&!0^T%Oe`Z2*XxpTNNK+(z%e#C^BLUJlBLp)Y8IO zD1>>W%M+CNV-i~7II<>pd+|rDf;5bsg&bCx%M5l_ioq;U=kgT{&{&QVdH9ezyx$w_ z$X>z@6g~-&kH-Ga&Lvk3#QqA)KQlM$7MZ&+N(~AY)Vxa2KtrHxphb0QA%@@s-23NY z)Ya3CC;APagH=&ql0%w?cWyR2#T{%=dT?Zg@!Z|i`lj=-Ei-J9d?c6iX zzVPYp!1aLk8#00v$_(mOwlKxwUSjel9D>)I3t?=#_oSv{d?y(|SFi%{9Sa4!rYgr~ zM`~)A^?2TPBVw*P0!LWj?%Qd1h?v$R7htxP8a#w&YJk^R6>vTj5ORj!)~u}oU-7Pc zh`0#xjzcA`%mC5a^c(4y7{&`IGURn*Vc{A`unH)7o<~(T1?iZFN^}p7?uB3PQ-QNG zofCvE{zNQ@iw{1?$xV6$tGSSyBjW744%fHv@xaJ}ZT}XbIVdU`L1HWA-!9w{Yhn*|TgL z*I@`d?_*LLQHm8<)m@5+Ggx#l02gE49;vS*;f&L73)~U*8af&UgG18)yv37Gni@Xt zO#bR;SKA{c&BtXXhiHxJJjyqXl^Nw&h=dH{Va!BX#eCQ6aj#@l| z0d$x=>2Gtq*kfW3MTc| zC2le*(=q8&NmrS{4WkdUhb9SDwUVH_2-<_)Ler9TCWerG(0I}~Y<~ek_<{mJh z{YV_u{Q*0?<~kd2BnZ9*CWg@rei}81VXeg{RV5kUBYnwgdg0uPRCMkolzt-3SpqV5 z_@GFD2S700%OvM9<(sE81#`|fvjNG{(7G5RZy1M+;HK4}o_Hh`$ShC>|BifrDk4#* zQ>DF+w*u_9k+Dr3ko1%x7imjIRB2suwm__O5xdMBQU9jqLRk;Mf-0u-!FNgI#vr?O zodD}@oi(oWJ7gbG3xVgKDc{L#IBSHZ7ii4aC-lO{p_UVC(twGI&E#y$G5z;(aF=qbg3s&xX&2zWy-Ay(|YwI&Xfz ziRUPXeSZcS_h#f-f2JOyhEJW0Y;z<_8X#ZH%$0v@?;GYi0cLarm?R{_k1>nx1n6Mx zUyf#4Ux3q5k8J{|Obpa;S2jn7@gngqH#ljC``*xAd3F*<0K55g;Czm60}ADWdiMCC z)C5NE8sY;J+fIQK8BT><(xPwQcw!!r2A*IZ-M6CLOm4l?0D;xFL%K^Oj?Q4gX8OVi z=RcMChG6667&!XwNqHtg9TLe*#k3`xP6|4rW?wZ0KDs-)S!F>eMsZ3nPsQMoJ`7?y zYDvp4?mfquwSPS}4-Xf@o_N01*T&W=6Tc z?0F9;>}@DWq(2|}9eQ48YCa<;Q+lFL7f%a3c!2ZR;*=}dJbLN=ewoeJ{3f=07TT;8 zsFE;WeqYS)1~#2ki_kfxdxcE~gYB0I22IG7+h;SMM{*errWIHYwvFLZ1WcQ9TCp>} z3lFBjd6T5I#8oN8L*KY)|KZ$>y=Ehcj^+~jLv&t(bHwWT_Zy`@7)dvvyEOlDN@kcR zA?TQ}Z|a5;%)M@oV&Ci^evhgaPT}H`bcHt7PmSfW?JlG$M^;=VOnSO`y)7|8Aa%1? zT=#y5bbWPIfI-}(BO2;d|5f*G)xGt*9y|pRQYW)Ho;tse+*!R^#kTfhq?FFN=AH1l z9R+y_n2TmzwO-ABn_<8I8m_;uV7{t!xZ^&$n|*0)ol7;2m7~)l=su2L;+q=R|E(nz zr4sWsiZIUiviN?ugjNzu`{tv*0`MV;= zn07}=Y+_OdWy0QysOM4?qGSw3V(V@dj!LJ|J>2na>?m%{kmsgiO}}BQ)cPtlAYd>S z_Z52qu9@M``<@i(PgnU59_!+J77fIXJ?%a}!zp#K1vMT}oY+KY)o1&(n*~+dS9t!# z?%;F|_f0cxhCZrd2K~j(gF)`VY+7BlH-aNW@NU#EG1&5u$o2`bzGL@E0I6tC$1YI>v5oI#RXK4r>Acl)*e(5v4RgU|e2 z-;GP1d27|=;GRXDA~)E{&1&8kj}bZ0rultxVwEV#+g`!hgkt22p|sXFC(cnHTh!>3 zRV?=Vlt#W04^&JzRqT?z4~>d~f5}iU_Ltv0UAQ||C;yNkk$bg%wFYlrSmsu1n5|=G zvbo=yR~@?XX@57*4jP);T*c2d_ph`}XrRBBPW<51qfGX7Rz#pPFDJzbV`sPR_Ejf3 zcf8VKLFwI7xECe^odlD9BwE7D&pc!#yFGB^^En;T65pKRv~&XAw$n$Wm8fTJMgAw|1Qvicf3v{S3qbjZ2DdMN!z{fecu)z z(SlsT{oE=2kkdoV_ai60?lDmCDyZX6D{|Qw>nR{!;qzV#=E6x}L=U!htk-B-*pkr#kccA)P z%z}J>ltFEJJSk=T&jD4!z*A|zHWoj+MJZk1_p{S_MwuDdWVvnIIHW}E$}`A4%JY*$ zl1t2>?%vd>(hJXdoY|90QwoV#gvj5 zChtM*(sac@l$f3FM1tTw&F-ko7_p$Fl^xA%!uBX$6EAD~W!@yU6sZ=Mhl#nJSC@N< zPM@b93vo{)LXV%Ed#=Jb>PP*fd}gsl@&u3aoykGHawQ%+)6(a)83oC5x`hhDt-(xR zQdk=1^tT2+i!rub`1r$F2VcO~IZ8fWHg5INkNGEoFZ$aw9|%857fo`nrC% zE#i@lvv^)kR6{#E*3Wc_rqIAmvVnT{tQi{WM`YM8Fg8pUa?9QC_`d%5{oUuJ& zmr^o6q#Q$pXHPbC5xv0SU6*!roM^@M9X-9giLSnR87F$0T7L0|+|u$5GLcuG&Yv3Z#zBgp|pO4)YrF zwHYNj3bqTkvPkqdb}n67V9lG;s`ovudyA8X*dV9$RW#;iA7_cxZFy%^1>c>s=qY;p z7wSX18FbaKx(uB$;|^Z@oW!?T`)F{(u`!sj32W1Ned#cD0T0Pm><`^8vbRLVM;Ga8)L?Q)RQ4 z`Wx1*bD5b~EECMHvhl+zDt}$~H0bsP_v%w$cBa(H4~Jczr^iI5l9?C{V4-Rq%yQ=i z7hzS=oC>$2v3adCpI^ok(bv4b{6%ftvS|8?-x}uN@P3r zjpt-!UDxYHf0P$D{geNZTNd2m^c<1B?Jvel(Zn4pS?C;@M7)~th&}ebjQ`-WTqemG ze{3>R*Z1jI^>z}=P7Gfe9fYtHL$~Lh>6~{@VyI6WwFbX?8JU5`cwqN=KJ1Q%YuaY< zS?>E=b&2}ytNAzK;!AweRNE=9S=MU36%whrnom*`?lls9Ze_XJP`D{0t)N%CeCbo8 zM3FTdhofKLmjx>oeq1~GG>na8syT3Mc~Chqb)d~kv7k6J#fr6Xuft5;`;cyltA400 z(YI@tStUNpA&`lQ1*`Ab=IYA&T-WOFFm@A5^h^!z%lpF|V>Vcab+=)NMCCu;LBrwq zw|g`cWX;UoIZiNX!>8{=YZ`3Yo7jQ(aT}i9)pF;^`N}(0j6bK66<_V{UY{zqw{V|Uj>13>rh|Kxk@7=mQjZZlC8|?*UzzNOqN8D zr=!)=#;&06Ed)NPp(KnQc7_A8aJ!1Zl3m( zdgFP6pDle+BP0Zxr$rqDH^T_b>DV_uq&qgqIp%JP;|y|lbM#lY{Jc__JGNdI#A5S# zz z&9>gDGn_zj#`}HUc9hX~6n48aKG;=O1#_GONE$4> z68e|S404kAkQqxAQf?Y?+xeETFUIzcdScVC{c~|$8)#B${Gsf6%KZTkJubdUL-k~- zOeXd80j2Oc00&jFEm@@Jixl#CAyiz#x9g)(+-X z_7#yBhPv-vr4+ny7GxUX6>sy4+O$6+yBlyS10t$;ZW)8D*7i6J|LuZ?MkQak`Hwda zP$)PVTGyDflk?&`h87{DRNw265-fygem$EfmA^~6b!{_Nk2pvMdmwS7Dc^Q&*eP;> zgy41l=ebMnFPp>ZZDy_bDt&Xd3z&&wAH6qR{%H^T8M8go*O^d>PuIJOseQr71_e30pV<$4;>C_t2P znh5)xKQ~!2`!Ot#(;}5_twl^W<=M@rIBll7d#)#C`;;KEg%6_EMphiJhI4(zcN|c$BGX)6e&5E#db@ck1{ke zKG)kd(wus^FIZ&i`s)~4L2UXtzLgALdS8#%PjqFB);a3((H=Y&`ckoXZ&8ODkGI!yV=0t zUiz<6zoY-@)Z6*GY4IG)DGvN9(3h7zH}|&o!^)%G4jz2_oerjGSf?W6pzO<|vt zyd**4014Uf>yj30G<2)n^;=Rb z?Hp%qd;j9890vTpON*Ozg}eRcDz|2EG`pMFm3}HeuNgAh-mQ;14@aJkD~c~mMn zzTe0k#@yI@>|doUr+q8`%62BzeQjT6r-J-=(?Px}{29xKT>n~LC1qRvF zgtV0ECLLLheuydFB(sP1wmfk(V%{*6_ig9*z3EO8+Zl=)R;4IPn*9j}@_bL`<&z%f z(jG5oV|vM~C&4C4b!Lh>Kd*+a0aYpLHg*e`Y@NE6NZ)+yED?=JZk z`3N&1`X_K){;!9!D^-_f0jWBZZB=`Ebl;woEuz6oSlsMhG3`pY4=9RpjM`U)kj zbQw*CF4p#Kp3>fxa9c60HIsTp6((@rV@Ae)Nia;ft`{*m z&VOi{=WAt~09#rKUXw8H9CjW2kS{!n3`(1jgILVHP?VLlo}A7)33 zx)E*xp7aRne(GWho_c$HINfpj-o2qn>B)cA9qVN^MZTz^YbciNN>eNX8z1sPR1`yA zTCK(<*{MSC3Q=UZp0!h|xlYx5@7ue%$S$l45S zio+rE>X2AHP`~tufqNq(`Pck+${$2oDYTq2&ML1V{FCe5C@;0SHhBG8=YiM*N2BcJ zin9tby1#3!Qx4s0Tse$`p2?me>5eNRQjT4@PNvANhlsiVyzrj|-ImA7Mhm6%9AXS{ z3w|rnS(6X(404AjJhwAx9_6@Fd4&yL`-Z=0*E2#=p%~&_E1!Gf$;oY7gE_wBP@B@{ zJWF987{0A;ELxI2o`qx7ptSx0M3Z=i&3s*LpKmhmb#S2%JyAK_JRF6PKwRp*Zy+@~ z{HYAlH+G1CM+8UP{vTiO9Zz-t{()0>i;RYh%%+*jD7z>^C1vlCz4soKQIe4mvO+la z-iOG@jvO2gA$vPGw%_%x?$3RHKELnpcmBEE4?5?4-mlkny{_vyuD2NlQTN1^Q`id6 z{dYKKZ{80dtGUVGB%he%B>PMpOH5(%h_F~uEO7kF_gM z${Zp)9;%tK<3z7~nB(TV*OgU5q0sLlZMM2Hr){a6a(KL85S$e9fWrV@p}3owlNI6X zJ$T|>j|{d>j>Lk`F8jx$>|Fka*)YXJym0DT^7tbNcEvNH;IlfDWn@* zCyU}QS%e#uJuH@D!jzm$B@@gzXyvs1T%s(1%?`WEO2H zmPx2^+n79!D<54htQK@Sj`*qW+g9#g?ZTXM<)OyKIcpG8|`kk}k7m zm2}<8EJFUFnKgQaG|{5e{sjCxHPNtn7ta?cqVdm~+@!%c+gXd~I6DLB#JaUU!7qJX zPboc5Kix>X6GI4g@NLXL)#$^tlS_U}Mp~?+ke4Zb~iIk^5|CyP^zVQ7lqXq7x6 zoh|coie0Q2tJCzLL19s`%P$8_wBFw~*wg_menDc{Asjtb>9Xk_^Nd(R|KPfC_3blVq`?8< z793=iL^TnYCkA#-qM>vjxbc)k_Z^h@4>)d_NT;hAw3kz*rLz`o`mV!{R$a^1mA{rh zpB$bC>zd~w@rl!0O~VUaboFi#*npcr5;5)?Udg07dUIV zZmS|q5Bt#h;)SYTpW(ae8qIddhTiwf_xBrk0r71JgLy4#3H=wG!YQYDl~8lWnk;!j zI6eozPSM<|g2x$aB6{c>T3c&5J{G&ss;(AKT_M~~#n*16r$-d8xdl|s7;5TjikzJK z5Daiyh_8Ozq8(g(zRm@rRs1?8S?v61WAj#$f^;$L5V+MU3uM!7(b1@Pu{oE~a_Yfl zm_;c_*iRLG_t9oCbD|KoQZ6H@Dng5%yx$e|VGpQ2s)AAmPP`hWh|@?ejbWJtJZ28| z&)o9D(U%-=>hdJK?6zke!&eI|VW+n=^t#XUbH@imc=`C;z2&7Ho!b_9_p(nhFS8~@ zU5R#6zT5oX%8Fg>q$<%-GNz#v{FCzaAdG%&yX^ZIOgPoNFI84uD141tquVA$l58m* zJn-cnRSpXYV!37`RPU+yj2e0UPF*vMdoOl;*S*!<7J_@AW-I$RxkviPm5Y>c-}r99 z?P{iWY)0QXUi0`(o2n=AZD(VLh&pbT)GICr08X>m{OAOmQ9bTG1qAb*pq*oWck2_7 zE=d&W`W?QW;t%#91lqr2+`n^F*j#=0sCT>dPr!`6E4^d$;~~~*Z!QuMGL++EP4#kMm zdOZi7V6Pp>8(Ta~)c@gzEMRu(;>08Jc}O!sV`it)?k?gtbmq;;} z%1N9skkUrs%zRXNWn$9~j;1!gZy48s;ejJ8x+iKs@F-Kv%Xn#y%rdc7NNIT)QhB#; z4-y)PVrF*%E=uZm^@4kp&mQV69GDgk)l|QWy7s|o_Z8BkwS$*?b?1ez5lzi9rAd21 z&k)ge48QdOZp#%9#mf~0rr}lg+9W-LvErF$71!Wy=rvq|CiB7an!O1pdF#v_2=Y9mZ%ZMO-U)-C60|h5?TZ1PfdF5&FP>+u60L~(%ScF~RH5yklchN(q;2tTz$xPwlGE1;;5XLpuUGLG^qDGlsnD>eTX0uVQ*dqkz-HN!0t6c99aDaD2_}Dz~|Qfc7yZ z2ZL`eS4)cSy&fEuG@HHZ(l988-`#t#tIXeM3L8n2?((0F9sOB8@%{3^wvGF+(fjDo z=foxCOTRSXyghc+4Dg_dzhCxmI;Sf+wQI%T46Wzx$l!xZhBT(IcGnG>@l4#>jmll| zh^6rjXc*^6@fh*ib4yD+{f-i}5c#<)zOhYSM!}pnbr<^}G*s5QEZYt+EsV}Gy&RsH zLyoA6+izVYG>bBAKdjP6Lfwm}gG2T+D$-FOzp`1YaaEi8B5ai8WNzz$O{Lh)lD0`$ zsJ!JiLhj@yS*;437*9V_n*lI{WjG?YfnHOO=}1ZDu4%FnqpEedHMyolazJH0rm88c zS8@g#aHy92=FoQbB1AtDdsIdCh7Njn>YhNZt8%^KxbED%CMkqztLqNioy$Wegg(Nj zwj!7KvgXPLropxRIXajt9)$VwN-X|-#?}-Yl+xCK_Oq-Wud!6wUw)8dO4qOgB#5t9 zA?mcrVkI%FA4dwYlv8yzM4rm(>ZPY#v21P+)4edn<|a$WrYarLHxBn57dQ}0bv6aB zrdFlE0jNjw^Ca(;?QDSysogFthMA0T($FwcFyxBFWr}f?k~Tnu`;%bPsCvToc|)J>4T`M&S|F0 zw1PX1^^NcxUG`VBF&EspOcZ5fCe4kqihK5QFVx^V?u7uk9GSAo%6N@U!aEe*>-(@-nop`FazF;gh zg8i*ULpURUr?Of5P*K|!GhG?-7EKhzy`bbU2Z>`8=rFf7>a=aQZJp_IE@$`d3{-Zc z%MNB?E2hruDS5)oqU;OpTOm08?EXD+ct@w%GC`7|t*s+^@aOjcatXP*-BaNQNpUPj ztG@1Rfty0j2_jRD<~dO&z{soH`WKhViDC)k(esP;W;Ne9FM8abH0#j%X{`=xpM0gQ zhH2faFAFr#u$EsSyPrdDp4~$)Z91i@LUqNEi}osiA*cZ8{y1aXNz-MoFKv8MPJ~z= zS%<}XUtr6HTr7_78hmkK^t9rGZFusUd>){fH%8aKI+j2pZL+X?s8(bHh(}2dAM7LK zUWGzpoZGE&4|eF?R`0B#+|k|lcg(qcPi0cLL@OSkOlAiYzivA*dljEK#z5K(r-98V zv4Xx?Bd8r}oe6|>h#PvZGp_*XJUi@80SIt9oj+7LxezYAq+ipi1T*nf+OrPLIC!s{ z8rl|`LQ-Zj&I+7+x%(15c6|(s-{2}A<}{-Bz~5j5=d-_A#N!mHBA7&~eFME2S7$?Z z?DZ`GNjNo2QhMD*e`k~OGrXGSEB4e-fDMlB?@WsAZw9CS88z_pVZ7%S+ulZ_nBbr# zVF4Gnz%C!ZIuT*oiM*Evq&~)%lw8ubv;-j0cK6Uo z--2N9f+N6l9MrR1y)yuI**s~|X<3_T7EohCn(X6r*N@-WIFe9Z5}Ych9_q57Rr!dt z+lebe)Qm6KH2^>)_ufII{~_8~9-5QxZE)vm_2BK0#q%v!PfsvX^Y@Gj*I6<3kI(98 zkrLZ)GDhSVX}!;RU65lS>gBZ7tB5f}Z|+$WK7=V<$8Aiw;m`}vwAX#d>fs%f_mtm` zFaCjcOI9VyC4GJF)(lL#`r9QzA;pBnD&QmlnNnG+!9_S$iuTWccH^1t;4mFN+eRSy zu~FcknD==_)DSI2Y=NQ9YOGnsIaQfHP~H-r$~H5~?sBhMe1mhGAKcsAOm+81|HEv%D z=12bhnxX^bLlu3RL6Gy~YpEyPP$&RySejBBkpqsZ-Ggq5^*4*Q+_srvcdBQH3kA=U zPm~RGSAQQ?gp;6icpz0OezM4xYtSZcf&NC;;&hyAY=v7J(y0IrqJo7K?s`EbtJ@{r z6Zbw(8dYrPn_>12-up+6<-n*u6X|@i2}S9=d$Pu6rQUA8%>1%j{!pjX#q3P7s%fmt z)>>@OfT+=L0#!4keJ|r=WV^#&T6>CJq|Lf^_)BSY9kR>Lb+tOgEfD*0VfbTuY{QGe=zi;=QJ5|xpMF5{+Y=Te%09llvC!hs}Ue(G3 z@H3rpQlZ3dwtb$R9{y8%P%$s5SfSQ0t*w))il^BFHSinTMNaUKqGmc@h*~%1cdvdw zd*U?R%fuu<=Rf_>zZrexZ)b`C=U5)ii98nE2IpFgu0+=T7!I_dgeG6HRTDhdy~2E8 zrB-fv+o0f)>SJRUPDnD7hqFkti=(V{q>3q*R!NVFL#-(1^f#oO)-f~LO>yn3(~ngA zTgou^BU_uR_}|q-z0BW_Gye0XzngtmcvovZeU9h{ly;QQUl3h|`s(AUMSC|f1b2p{ zN;1?@B&-C*dlttT-Of(y8z|{50`)0R&v0Jubp>wxwg@ibPM; zIp{&u8O_o%&R`!SS$q3uxfT_PJKzm59U_pleaK%g*;D`f-Kl3q_D$ho*#CY#eX)n; zy|2BYQsQ?6Ik9?VE99TZ2MqScInh|si}6u8J%}ZSN=c4FITFI0d4A;b2}Y{fUxOEZ zU8ClyEAKpfYn|lI+ejYp`!YB>jXZ4HB;daQ6l59s-hLACp87UMOazFK{+%6_J72ye zLjG#pI?YJ+8sK3`4+|rzMk_jWLrTt!k0?bISGlsHRUtoAY(zDLtl?2;7y{`DPyTUC z&qz`?qiYw&y$%z(@7Wxhs9t4$0qgfYb+z5=_CJPOWEXujdknB@imMJB^l=M85aoB` zkMFM)+Wc*BDaQaG9#KRK&VrBVpMrA#ndba=0{PE>-{DU3s2Ed}t{MJ+15ra+!p;b-rqJMzDbLVVx;HZG$_fJK}Ed1pEFARR|0H5}U z&+6(o)UeRN7$o>?U1)c(Pz^Sy6y1zIDnLhf)_Pf-3#cI#Mts?4iWh#z$27W{oZ22# z%KaZa|_^ZrfN?9XMDl$ zUxaR_A0t}lUn}bAt8^Cy*zV5SCeQ+70F>lG<0o&;+S{GlnWSOC^SQH+2(TbQL97Ta zma$Iw65!NwPQD61g#T>!kLVfke&w4XYfc)h+s)mYzjmcp^t=CTa^wfsSips#rGGhU z2MOjS{pKmzika5xZ(UDAESz-Q_?sWn!{e0IReDa;d<`ZasaZECs)3r68Bp`oik~*{ znb0pBBYN3;S>JNP6@rBx7Qq{!xW8&#{&;-ucr^Ov=j6I=#uF38ducq|o4JK?hio51PL5mnGkNGl=tML(e+w2_BYADx*i@l^^^FisKLZa6 zX`N>00RfBdSj-~QP+$9TlnAPUkgK}amC(7TphxhT1Q1`>*nDZ##6?5?HafMUb4()* zv?nDa|J>`Ti1(kx-D9cseMj9`tWdDUuvA_K)C4ncj~DXaIHsHSWM4QC zh`cyazF^&^C;b3GKxlvH#G0@EDp-H5*WfvwM?@I+N;wS0VgF40S2WJl z!Fjl(X?F^U*cX3tED;fUkC?_)owwGC=~cor7V_ZkZ{LD|FHpz+sV!4*aK9t#Q#o^V zMLnT@MgG`caB@$&cE@$XGZ>OF2$e1gJv1vgAy!zVik+|v6nClQl5^stIK(ANap zHOhP8J`4LP(^X4a+@&RA1}+%^Vw@kP)y*21X|y~%O+?fl&m}dxe|8K`l@YraOdt}| zT)V06|0P-9%rh4Fqq`P&RU;QqKqOqzN~`xpaa&Jk2>v;q8(x-vd)Psm4yDqSUTyD@ zuDc`4fQ{B~=T>N1@ElX5C)NSc!$YRaprc>~Jq%nfh_MboEJuY)e^G|8Tc~NS$*M6W%vE>)-yZ*&`DjmoZ<;pI>+Gt#F*rl zFJ<=o1A0|TfE(^@Y?M5x^%&|HP*-_EoaQRmGrHR_BwE}+x?$5ccZ`tVRa%b8Y(5+o&}=5SomrT+?53%n4na#w|dB z`kS(+gQCRo=E4Ml4{t=rHSAxAfyITuuuhyI1;K)*4OjjRrtjusb04ndgiUlDBI4Aa zGH$<@b1}hkKF{e&wtM!UNhKXRHQr$5qQxPYR6g?Ol4~s~d}7G` zR`I!+1%LCFew*tYd_u_jQrJ-h5O*5at6EZnTn4;&LftjKS-22D8A*dJ-0>py+&_AI zmCgg~ry6p<8PpPTJ5E8}+L=ywAKYbwWcy`dgY8W<7i8ZJR;S>$GP7OhN>N%wu|qC# z0YiA{vX@pS^?|k#HWUE7Rs`&q*|6mnDl-j|hm6=T{gRxCvCD(8dSw(9F%GPC!k*c1 zN%f#PurpRzrGkw-?#j6)B}oM)`|}GYKxOYLi|XROAwk?%QU!>(A5qE;QW^y>!*CL%YT`6lDQzpi?dad*?%0h_v1$Zc7&wMS$*{50Bj_#R#;T*RmHB?k&S5Z)7OfGxjQ*7R>Hq*78y*pKPPJR+kxDf^5pthWG|>_({dc>-LDFP%+irm<|F4h^S-E!+R;}KL&QNH(u2jIEyq-GA?O} z%h3CQjHhotXSTTtc;j@Gek72{Mfe3}D#HUhcCkwr@UD|n^uWY@0j&T%<07Q5oUFE7 zTI+Wpz-`1(y@n%Y4ucN@IIWPoS39?&s>?&mb?20S4&LC~u|$Rwr!Jq(feRQQyQyYo za$Tq86kbFy*mV^9#F|z4jCElOC?%`4`CAqy&zM1r_!9VQ#WfKis-58uqk4S+SkAK< zIruPG7S0NwwnmoDE48MHrADa z58t~})~^+xS;R}bgu%S&L$f?t{{X6zojZ!MA(Ua!6ORlc5O;Jk6nXVV<$oA zpbw3^qH;h1x#)Wi$uieqC?Jo83tOxqBD~X7Ka+q+wWJOR@``N-PNjVM4%(DgHxFckIPKV<~cgpL*ff;<1HW?^3CXgY67rZ-{c4x z&0qToF}|}-#Xk#igl~Y1H6guoLl1u#Zqtn6Cjf&X7TaApUKdHfMD@0)TUL=FD*-hF z=VFrKkzyl+t_oJb6_l(a;yxmUED^P~F?gFa@*YgD(tt)7v5tzuaWFodIO0^rxmpFe zR0B?X1<7~pH{Wrn%eKb90;-8ieX&g~`Z%I#1X8&q{v-+)}`wH09F^Vt)ii)X1^M}R66SOs=RUIVPkoBsUIe7uFV|KC<{ zWMB4Q)AqjmyRR&W{!+3b5=r)TU-H+t;8aJlH#i*F+(!g~n$Md_!I5h>?$kR0CM{ej zD0^lKk;fvs7-*|Vwv(^8i08Tf@b~KHBE2cI%>WPpl(`Yy*#jAKz#Hg7_0UoV9Nx#I zB-{jbDX6N>XblWT!VL$$!O^~uR6n(v`@zjU2-|$`pe)L1AP}EY?K_HAs5x?thAmJX zplKAlnZW+uwy5m_>08jBa21lhAq&twmBQRG<@QNupQGd0q!)BC4TC}t@K;|5G=1W| zjF1jcdjFhvli2v^1@a8f11fOEq(+DhX9W-J69p2$by*77&Mk7=v^kO^N zsH>@KD(spBpJQRLN!eS+puxKzQ*qy>J$7d*By+fU0m1)t243*-p;zB8(gt`G^I;Zv&v|B2+M1hO|3PRm)CCdX*R3H%8U1A5y<0|8Pdo5uecX^_ zIVf^o(ugh8UpY5dpA#j`1mVtEx;;&-N)0=9d46|l#ppdt2IrirwzUUCN!J?D?K z!Uf=;Ucrjyo9S8wmA{TK3s%DS(WeoB&0O^j21CHdwhl5(yw%(r7r^G|ft&N9>X%jv!^cIZ}3*H^>KL%x&s47_TAji z$lAwqh`BgvmmD#MRnEVfSXkXfXaSPFhe{wTYBD)VAZb3gPG$KVW(K_`TzUXS`_fj0~Dr+I~mYuvZ2DrzGUy#9FD0ibk ztom}hY$xWx}%YE9m<}G zeO9yF`v-FetW4r9LY01+>`mmiS;z)^>212f@~iG$5px)v5Pd^EMP;AdNu2 zVueZ&L^hXlE>_)`Ym)*jvEEIB?$(VkrL+R4Ij}Xok15k~v=D2?jiH}8ibJ0j0X!-X zYb20rP!vWu0=+uQ_ZA&VoU2a816ti3exvHEOdwK$Z8=qJ7c3ji`k@zY{itJ?^$u(< z)xBc!0a@u@-^%##JV5PRUzvLzsTCKldR8O&c5GSB) z<35q8kwLTGJ6*Y?P0B>gD5R`4`kk+{HrFBi{vDeGMnl~5s=&}z*hy{)v_fOy z)N!xGMHuRVexoTMcnk)B)qG?uE9S-?diV+u^$JIx{YH_R3jPN*`!6_Y?Zke_Up5VL z4~l4?U+!X7o7M0I5pR|-=u_%BbN0bXt>ozv;%OILO0K%xDwtjeo z33Pb1RU@p{W|yjNAR1RkD`2tI*&CzM1&Vp+6oI(lQRt2R)V3X7$9Ep_c&(R6zA!&) z(g$Q|bR7(01P#Dai5Def*x}eg>GGiOP`+6jF$6I|yK{cjQ$stmZv8Q4_BqhGk5U#P zchzns7~+VTNma(@as65Nd#{V69w=%Wr69545$^d=4R~YnMqxn6C`~QWGL&{g4_L*| zhL-cztuUs166+$Y;*DAqg2aPf>0!91pAtz9c@>wMa}Kw&Snr4j=k6e42GtOC z`kmTlv<{v>tONFwSLxBy|A-b*|!;6Wn#x* zc?xjX#4LqFi>sGi#Dzu{PWv~K(b1gCuudv`vqoKQ0iHqfBC}Ta|^i5!k%Eda)_P zM2}_nH?XF@H%!7Gt3$Xrl)hONZ3gu`6eBh_FD2Fqa)_nJUS7~47nI3(FHHqHV1P0a zDHEo>f@yX_uJIW|KZ=nXiCXVVT8uhZh*P}V zL)&#L_btF%r?E1G>6Dx=>}6dF?{&)Rj8`x-CxOmgfVXXOJUfH8;S^N6=v0}IDHWO@~$`cj-ltsc4X;RGUD zw}8{!cNS&Xeost-!vhU++oy|bU6e`hR{goZyEpva86V>kp@elZvS zhbhXV2GTC4`$e++{&QqGRrXl8D*a1(>h5M5O9lT$x)$xrv8nvEIA8BU0u@uoTV z1Vz*jXU$(ndi-QQT+FgRWPkWcrUar)t~Y&T*u`BT%aKlua6KdzQi(^*x4WpTU}nYj?4y6sH{%EuWASp(LPm^HzZq7+T0 zcgUPi*Xx$%J@r>u%9JzazRD@#>?tggW>ATA4o7~P;en~Ye_rxVOM`M5|9EUqgc>Gm zGduCW8+X(9?#u=z1jpS5)NC17=Q*;)zLUb%xpfxMn0|y_M0NmNLqgoMA!D5*B?mXI zxgW4s^1ctU=DyVB=QM%^Lqm)Jp+u8K>XzEe=jA6qrV`_ubeJgE&!aUB2TN}HXb3O! z8o(*!9Hy#PW)Dm%%f$t66k#!$zcmgG^`u3mT^mJuDsy@`f!?j`a~lbUXVr-{rILH9 z-c8wS0SnNgr4RKl!k>aZZ6xSRg$DUIduqGzb|{*;dJDk{i^#*kD@Bq>ZU$ft0*)Z^ z6VQn^$1MWp+NJD(3g$|2oVTVf8nKsx0@xrpJeKuQRrRWCQ51Ty_}WX_n5R)jfd2#P zLp^jkW#pV)Q->h0BXoV{j52k(U8vA5rkmCiTH%NL3bm@|zfD&rKp)}EeX!hVe!1+k zoN>l6P8kl)5-`!Ncx3P^xB~977#;HnUr+1ay;Q`xu>dA6qEv$XsSAV)(-d5Tr$;vm z&Jjh5bxQ{AylU}4tYE)!Z1^r3XY|Z>i=}&PAkIOS_c3=5=y)nI?R#Du;ub0Y*la&8 z)cie1A6aU7rl010E&bf(6t>-u;$i7S)mKv2o=hOp5iRuDX0?%=)T`WeCE{j9kZ&MxZdr55%1YthA zKuy+q#*bGSZK`|4@5uhVWppbM;9Iave-|c7{M#!ABMr9HT$-fS@{B;Z5zvUYzttQE zY=)wh(2t0#iCkGzf7u^CjyO*M?i(+LIf}>W=oX6gGspzevjR}?Hh&amju|y)z;6lY z8DjXd2y_m}ZByLv=A3E2{=!l2Z^6moEv`H!x0LAo#MEuE zD^9I_7wUJRn=l}RJ1q6MiY4%*4O6Kp{;*e+Q+G>VWRZD?x@y)2)^^Z2l=1!OQUx0tAdCkQ8nP7g^!{ z|3yI`2uo<-(n^1|fcl)nWEJeZ5sbCD+|M+UXeb|B!e0#ut+tJemu@r6eO_;z{k{wm;^hO-s*%y~S9v&NE=FK3A$1dl6I z)*_;Z@pbsh3B@~XCio=X^iR$&yof;FlmH5?B0P=CLGKuGH^W1(5m!ZG51>KTATS## z-x{{(0nIQN4nm6TKcU8;VYmmN+)7#QFI%JD#et9dOvknZ%bcQ9{e6E&#fR_id8!yg zK5)#;$o?1U_|Y=`{$B~Qx>Rf?H|vy+&O^%Q)aHcV5U#@bSdOZ4HzMTJ6`Q4$0b&-x zhi(}W-R-+_>EU`b6!7`p`k)Lfb(1W|5ry;gvVd$6*c{H=Ass72rw;JJ4i{$vi{c(0><4pFvBoaCAjK*5UQ2|8+N|+)W5W_PGWLL=(BQoI%(Z)C)dEte-M@hs;ChF z6Jf5yFYoSJ`UeM&rGXE-s0`Wl3o^YpL7h)uVhIi4o0k{q-6oMz>;&)*`qiOsoB}ku zDlHxW#am5R@Y0J}zf`$)6-Y|ire*W5CN1=ta2y+)g$w8(d{XggpsO3TvF=x7q@ob` zNYf4g-C8#*WoSn9_lw1j1_Nk^;Gm8NV}V9>n59{L3Rvyb3cA>nGbsaz+o!~h&K}o4 zwP_j>cE4=xDeHq*)Q741Ccc0FD88Y*T)$GZOc`x;>Q|wlIcxdqgja&eKYVlf|L9$_ z!#t(8MmM9cFmz1%Wh?sI`W2SzgOCcmRDL|5YC4)@1BMtPJzq|^e%YmOt%5#!494L4 z#jX$l(g@H#Ddsq3CGH022`HO8cSy&_9(!gEeg}R8PNo!1O(jlqA;-7#>|kQmbN<+$ zfIgrjXQ;__iZbUs(S?1zxH@lrxgTF=JfXj$jCH<@SjVBI3&rI?B?ySb(kf-yeXn?$ zhxzF0XYFpiSST*y7Ot=9bahs2dNc^q104U6^Mi4flB%*h7z)K;ehlzN?hmHvtFVT) zW&1(wW{#;)jop*5FQPJtW~czSZ~mjIByWAI&L^I{pHDdLCOqpB-W?C%iw>5Ba(V=> z0c1l&$9Lf2M(pgm3XcrhX8%fDcYbOSzc`RPG1jxOmKd&rUp75n>foJP0l!RU^8-Wd ze_mS&fCcvG-oC{cK+pSBrDRP}4VSkp9*f#Vz@=R}%t#2}=0ubnKUsaHAjnvR^~f_+ zjy!^5hz%WQFKl5kX)Gp%V3*jtjiUKG9?)L53`0V5lsFlBe$2NRYT?wak%#Spuc|Dv zB(e;?pv4W{_ zL)wsj1b!*`ekpmM|673eQB<5R$adm2t_$@Nr|KZ3CV&Fpj{i0UAVPZfv7 zh9GG;bSfG{L?T`}N_ww3o2ng4>yMrfkO5@kuoWa=5xn#xR&8o@tn-+6L)Q0M6yTzBMgNi1% zF;)zgc6L*giQqO$Q>9d<`&dk6UW5T2_C@z1QS9~mnQG_UJ3i^v$f^g;w8g!J{^T(PfktM zUmmS*`ug>AG@n_nVH@4kr%!)$rO3vKrdZ0WsRdM43b%OO`C0jznwx|W`t`#8al`9T zJ{DKB<^;rkBu{*Bb@lokT!U}^dnwN$lP%QghVtsm%SnjUCrhq0QD+-P}7 zZ&wF(72e9#yq^z2Tc#hf)jWhe)-&!(4V@x)=7`%(|!!|i~O!I)B?C! zWP=sdV6|mXxfmoeOHq+ZeF+90E5w?XuJGHOz&YLIDPtY z=#;NNuD;g;jC|r%RCH%bL^A$sd2|{y{TW$!q1^LlVOZR?&B*<2~4S{iMFdSR!SR++f<`gMhM40taEqV5%u< zUDcoFHOb01toiAQ{u&nDfNfQODuh`%u)oe;T_4y3vy`mAMQmYB6SaXA#jPJaf-76U z$rEhG(M)eS2F9gr`B!p7xYU^qIGt5)cnPk+ZGjBa?=frlLPZ+0lXQIDUDaNuI4GUW zYrTFZ4-w)M?n{|D!r?Nr-9UBF^2DMG9~E6sI~yAq+BWF56+*bTPrLy%%X*-!t7rtC zcky1-qkO!YOTD-chpwt(2o~L9MWIl_I0por_$Zn*trwPB0ZOf(XZ{Bb1;ntHx`K45 z0|XoCI1i}6oAz5`YV`qbjkLH-rp$V%T7z%3*qG&x0>l@14*LetFfR-+gQ@RktC09m zFLvutg7H-Wo|us)=(`f1$5oNY0=-H)U+3o3KUfSs1}GPlGk1(MExICJzQ38MX+L*9 z5jzNnB00yI89-No1RKfQ%@LlwdO<;JgAL;4PxsXDx>{=@B3E%wd#G?A63WFL1engt z3tOPZ%8bOqthSg&7;l2qo=@Btpqq$}PZH_6ssZRX&J8gVAg8GOig21aTUhu#>G_VRr-6j^X#_{fyF=yS3va3y zv7fev5YqeEd_VY<#q+#OD8$$b30B)L>hwVbgD47xCO;3wA{{udSNGbjkGwC(?k}me z90<0!Gf*Zo++!>ElDUf9A<_^mnIE9hrJ zaW}d`ijrg+#(m?PG1n68$kSA<)MH{kh!S2?oANO}m{(PPa>yGBHy|cpn;Fc9kibE- z{+{Qb)rlb0$iH-R#%hz}rchvvY@#^9KD<8NMAa zhxVKQiaQY)td@XX8y&Vdv(5o6H_hM-(w=g)LJ)}Sbd`6(b|P^BXavNgXuYK`?p(|4jo7S zt%Z<#<1%S*$+cck@tRye15?AA7YKmmgIE0|`CL=6YJVsVeuFlvIk`+Bl4xTv?5@jfZijF@Fc}tQ-tCbMUpuoSrZLJ)Die9s|KdJnrpJOZ+SEg znSsWZbdu+sWg*T}hNFNji^34ZcRQZ_oFf~MCPBtEzv7&J(PQ{Pp}Jf7_23@FLU%~E zExsg~Fb`)Y5`fsn>pp~ZU{cIm!%>DzAlx#~x~5#qo5KUw`4w}Ak19k{cPqP|tFh;8 zp{oPXcy4jS-jG^bjM%|P=~?|QD6!C%m6_tB))uN=*X!NFFr3#BRbFT5&MslG$AJMM zBSNfZ`MdPKCePZ7?$DhEhOPPH3^{k@((_Jua(6>Phv;jzC!d&kcuqZg)+@QR-ft9t zS64T2TA+$M|GXw0H0lt>0R-D^WTzQq-xvaDN8CUk5PHLeGH2)T z9VUhYdLj{$&pGq1oYl#R`-trX1|~pRjtHXrml2;Hh@h?a%*!aP`TW-bxX1+j^A zhfHvjy;&b^k3*Do)U)ku?WcI483QFn%Y=hHp$hRhB7xi~Rb=M@eb|ML4;f!ehv)_G ztiN~Y8H8>ToQ1tVi|CI5;|*Oj|6)Z`s94^n)?s_U7lkBqjk96CW@Zci{h&Y$o9BT$ zJQ__8q7qy$0)RU{Tt|_`Y=R{by3*RUd@ZKAH<6Gd&WKb=hvnHeBx|=y!Pp!=ZMSzr zF}Q2N$ZU)4!E?Kn4#2gHP9A|PRpq;vV3!rDC53nAVR|CS2>YDnq6aZl3@oeTz^@>j z9q4TVm~x8jD7mo=Rz{6wFE`-2c$py>B!{qGmhy4I6YUGesUL9 zc~pt~o-UR5_MeBG0NVNye5wx8etJzA0CGT13eaA82sX@=*ZQ3Ky>v?$T|6?>j#* zcC&6l#km;I&IL;82O52#s zK}`(Qr)Bosrk^Vfp-hH0%K-K@&KuAITEs<~8xRXk1)eWNsklJ2xJv*i3UC;mX+xz( zzql!K7pD9@MVG2OdbHuYlynvmd$3ygRVcn6F6wh=WS@Ro@=0M@UTwNB0`U7-MsEC0 z@5hsA1%pNF$YpJcqAud2Ka}%Itbf?VM?9{vfnADF_iaB+5d{WG1*Y*GV+*}4+HB@{ zebJ+I3e6L|Iw1oM3bIhh1%y+E3oj1~T-jIo4CtKV00Q}rZs!%6a&&H@b@${+)x)VR z4)M21erd^&`qZkG>{4WL&Ipe1nwHo2ke6G<>+6mRii$4CGfKZpkpkh^}kx1u!XV%sXDc9xeK(i{DCs?{WfYO?r`1CNQd-E1e90Fh_JXhODh;_;l|W zMM=nl9OKch%L&l1acWOdfTi?jlXGCKeRa1-k)h^tr|{t*bYHdtl?>ap>0 zfhf$p;2iizXps>v2QDGj>#BGr(H1wkQp}SsUyAAqqSCdbUPf~FF>y`28TT8 z;Rg+y{+imU-GL!jrA2RbH|Ea+f;=)}l)s!qF%%w~w5Iauic77ob}OOb7ykb?`nQs{ z(1*Cy4*w%N(zjWksI#MD8?*p}!8=at34kjG5F9{j(Z%T5b#jG{mv>ON3E<3Hup5I| zB>>vYfe$%`U~ssqyTuv&S5orsLuqaApHX(pFyHUP-h~dsdWmV8H?n0+;KC5(bBe9H zAvw%*ca0|M;0%n_5EP~W7*kV=)Iu6axEOIO`Ak$9Qcl1g#FMw!<*jAiwj|j zw1o?HKbztab3lp0u!CO(CJr=5rEE`gAD#Ht+ADUedv7*1g#`wxy1%PvG#rN*7GZ}S zj5<&Xqm0iZjpUk&*@S~9gl2@m_$-rgx}g4r~}Ch2pPF6du4G6df5onj6y@8BQE?8qONyrv<|EgtndN|bwxi^AzK>HuHju0jN-_)&Da?Z)sIDJGAnCc|!vRqt));j|=I}EE;osbi=vMM=zmf?*w{zfD*QJY^&set{<7LU*& zY9a;SF1469j6z;+yS+2z?}G&^X->1|{xwT8smX-W<2d2Q}>Jo03RAHd(f&p%girr2RaWMcCqZUVC zz?8apKH}Y9dpx|ikFH8>_Ub!tJagfWXvybp%~?AHb>cJg+!^j?V`FoM>WIq%FpVUs zU^OgeKoXuan&{7XGU$eG?Oz)kH}{9^H?G3CL0&$M(O;j| z_G){*=}whPDl9x*=SNltt?)IyFGojQ@8uYon`ff%4u0Q^zf8t^1qB3KsuWB>|F}$w1H90(x;*p1*40!!|xm{>cC9b8l zwQ!RTzD25Be8UkYcOs&+>}*LzMXJY-9}^L|Rt=4B>Y|Ge9XiCy$$3Xd2brxvdG_q< z>F!kZEe=hu{QUf<_?jL8bq$TcC#eq;i;K??g+xaB!&6~p#Uul1bP057)t0w!6R)hS zaCSiJe_XiCz|_nv6#mVRA3C~0mo8iY|3AYUWgDAoD|kF| zN8wl3^c$G3UZq4XN8q<$^(n<4*TDD5Yd`P(RQ+Z3a?)v9#$F&3umsbGXJR}OT_4t= zhL$b5133#s10&N{$}#~N05nd|gnJKX2wKMJY0EMyi6C5~Jj|y>Gr~G4dsMzSLQ#G? zK<57a)7S~h=m=yN=)+S@#d9A@TU%ef^dQ>j?&~xC$9IHxSG&chq^BJ$EDH1+$$$R* z**7mCBSXS(-lxN3Z-f~d3L0;T9Q*k-jK74I$MATZ$GYlYhYyeT<>@yyHRTGISPhHb zk(5NynMnmop6}}Jwi$1xiWvZi?fm)k2eq`ct^_A$^~z(1jd@3>Q{#(;L=8WG{;ZOx zcj#?cn8BFk^{9m2S>Hwy5)y?Yt^)%D*DMEbMiNRcRT)t*3cn;ic$l^QV9ItLpe_CV z{e2}?@u*()VslzX_ods49*R6n&zR~0O~r${`0kmUHLI_$-)OV))OTWxhKKL!t!3L}zW3>>gt7Upf`%z9QXYw;HajmFL!hrQ_x!7{T3$b6XHdJy?k}2Y2qQYy6M5 z5jsnG7&ZlL9W!_aB1rt!VTx|B;!UWgX{-_3QF#NnvcT5p4b;{jeHS^w#DZV#KoAiO z2+xE8#s-k%ngGZf$pd6Y&gpfU^0lb@@Mzyg2uy~<^u#}!!#Uu~F~R+V4Z}C<58*UY z=MTSn){e4kiR3P+c!Ryw|26C~*JKwK%P#D+yVh&wXc=@s;g(UF?dHn3v6a)#K1HA4 zq(76VilTSh;AOs%YYF)B9MyuuaOd(T-QC?esmR+N#*1c^4;vU5hzp5`;8Nh>Ztz=F zd$+LBceoDb%a@Pv7`9qFx81)KhT1%8ujIpZ3tE5@;uCqg|CL-e!E z>M>xl;}%E|8(?L*=TQVY`}@`F0IU-Xr$My!h+gqI)Va4(pX{XuLc94BW_Ot&8mA3G zWSzd3fV`px5o`w=pi9ppBmPUOk->M9^`>4`0;k{aw=*I(bVTY1UT(+FH0Pua96T5r z9&TWwuFU#6Fz|~6g~)}0Au33z;`O3ja8HhnNZO?|ynj#grJ(vhK>UvBs?EL7cP^_@a$+fjLehz*1 zL(Q<7$aWsIX=Et19VdZX|3&8uWwm!2?(ebEOWE6Qi{LUZwS1tqm!U#(Bd$Q z`8shQ!hF@WYFrDsxIH-1NpuGRZDJM@IvW)g#lMZ*Dm&33*V!x>V%hZ=9{bG9%}oKA zc*FZ^`n+e4*y()3!cUY;Ou^rhq|S449)~PE*&bWR(;AxM+XEm&}gkR6p4NNx9{H-0%@+*c4?;+>Eb8amI#Crb(XHV!7@7) zw7WpIMwy=Kc5ClXK<78$xyX4gcthQIry&>r9^kjizy1F>bpLs9G?GSz!MchFKWk?@ zGV_0pL;#QiA?X*_Y(T>!0EcT7iE1W#U&&{KYR#8 zmg%{@%;$U{EmRZcV5d=U(bCYogv056oN&MGLsQf}!Py_5U*v=yE8X%`= zk_SakYQy?sGFA1{{Wj(bI!Fe>!^6L#Fc!FS#iN0T4Npy~XZ0*T)jrhOF7F zzJ><<^A|6;8bx6D1xhB>!FV>e3QF>@_8O$7xWepm^@mK$Ee8uwA6ucaHo&biD;wmD~2d4T^$*pduluxIsjeMjAyB z0g+sENOwuMilh>PbV*5fH-dnIgmf)Jq+3c@#DBcH&-L5;eCOjjm)o;}&0@WCjycAd z&vTFG2x1K}ipv71Aae-pnt;zEM;}l^Uha0l_2o2(Ue*U^5DFb!A_R&gg6q5yIw#k) zPxKjb2d(4e)aaG-@PS_jif*)_Jj^HI z^_lWII;`<-1_o*1y5KVE?Cgx(s)gkaSrH1i6X0Fuu#Sq&J-&YmprzBhLBDj%D&PtW zTyMLU{I5IgObG<@wc_qrcER4_H(CUW9T%{;tjexMYL z5hq;@sU+)S&|`uoa9@_N;NfE)`|61;Zc4ZL5}-m|OmNP~sCo2*XAsp}x_z`a*+FX# zRRk3y?8xSi-nccISu$U|iG@w}_Mr)xtbP?sZ8*QKPD}YM`)wFcV|yCTlf=Y31TP&> zC{#qx5bVpi2%OHaurP!91;S;slyW#4PqVYLV?8Gzzw>mo)YP$J@8{2^V#AJCw%n9K z#XVEoi+w(!Gx=II)V{z}?trwk#(rYgz|e5yJnyMS8mI9Wxw$M@_w4LA&l1zF6yi^P zjp6i}8iRy9uTsm(D!=D=mep&qu)9~^3FYX>qpqQWZLh3dNI@ zJ0>c?%{?$(hQ&W$wj*?yA#x;%x?np}Y)F*D@g#vCRY^;JM{}Wk^D2Gy;Q!=;Xs+*j z8UI63kSR+5z6}J80v6RV!Uy;C3c4CBLZ$m&5pLzMHO>iSf4SlD+q|Fc*D z0Rf`Jk0{G)>=(ldJ#0WcibZmj_>t*-$|rSu6K<&0sK`i00<-LkSFU6&jb@(HkUD>b zL(ByJZM${{9OQ8F72$k`!{jAI(zpUcxXop!<1~7c&G)qX{e5qPkRTd?!D-JIFJ3%R znWJKR`rP7iTJn?BZ%jDK-rn9Qt?PDpC<54yaKaXs4kQ|jiM?X;3woHE?Ut33wm1C) z^dbx95a>i}px8krtyj&{`nA>X3~Kl|T3Y6fwLu^e`(N;s9VTcfA+R$=a;<4g$kfPR@+sDz5{}L?`M#m@+;@*cej1$ zENs$v738R{t|poYmnONh`?FXuUpC&t%*=Hq^V2YmvFyXpGB;mvDZinfUP|^+{Q09S zn7G5^x^05O$i(qX48!e_bPCq3&C(!Wm)iwB(1TJ7UI7;lZNGU17>@iuhBeUj~-EAPuXuU%Uk2)E_F}>8hqC z(Tvu=7#SZ@w8h6$v#1u{V`szcj#+CQ6T$IT>YA)3B^4-*iMhq5j6x+tJj9zssi<_! z#oRWlSbnm)x{CbQx)KEZ3L1_n)6>(Nwh{@IWB&y4Xpk#uGswTUo2W`DEG)#}`uQ(V z4%ru-1APuWILIbCp~yqh)_;Et)mB#WvS^e)E_(JFHJJv2i)r z_av?{8fTvKam01Pl|qv6&A7?KhkZ{o;1Trp_P*LzQdahb|AwwW_?N$w+#gFzFAugS zms12i{9V{hmZqUv6jUG^pDFMGC)~Y7<{>eWXP&zW)Yq3Mk@K5 z_n$l=LP|^tS{EFs$r6R@XbWm`>RMV`vq!rOIHsWxM6wk0r9mlaX_C?P+AYA-!b%%M zOWf*u^#kd4NQN_3-JV+Lsuxgzi%zKP3)^t1S+%PB(~sao$O9iVPDLdr*`EOOgN+r{ zrG>cRT>mgkejauo{To&FTYOd}4?%j#5`s3n`5?>JSZ)G{+Rl4ur_E_UI%eOgCy9aq zNc4fIs9J0gAkl5x^Zve-z%HD9)k>(M3?<)Eq#TAS_;bEFxG4do3{Lj z=~_WgqEz<~+6=9bw45WDo1H~&tD4v+As?SEL(9`##?sT%Q?jgpT3d~~4>|_9szs-u zDFgSqZ+HGK-<_mET9zHAUO3SG?%icrsaO#1h0YRET+K<_|9m~f-fgOHATS>}QPI7! z8oD;XZAv`3%HFuPy1e>7ZhZe!UeTX{1NZaSuVO|C?xTxHh4Q15#i_6LeuFt2TDrF=+J?mMfq7xE=($fB_!9W_xx5FMvNqx&0|?viH8q;S$-L>LMze9*}@dBA~%;1QnN_05zuV%zuGe3Ro@Tf2zW|UP1pW43c!mG$ zr?nK6+#Prl@H0N<6x0W9Z`+S-t=D7nGh|Uy%geV)Sv4!)yXqJ->r{t-F$fb<*3l{W zQbd4{|7sU%7;30}=jRn4KYk;(x;7i7Q-0{NF?C;e%yy>L^qEyYzw3793cCch#67h8 zTVEUWm8WIm>M~s1+-1_FQfNu_+a<8+rQ7U`(^Wv}MGK^=YmECuhxXc+^upHvU~m3^ zAyg^C(&~A#1Xr$Hp@0KvV;Ji9g+)cuaVWb)Ycew*4S1^i;N>muxB|+VVl>6E2AXqx z=o_YG?K;OlqoC1XZSBNw0SnCs;)XPwKkb(`1Z<|B&u$uaMDh`mI95O&n7I_riLK7L z2-5*4Chid2s207c#OLzUzzo0gt}+r2K#=VQ#&_9Kv*>A%N6{N6w(EPpIo9Q-(^|NZI(3H2n6Dw(1|{NHL=b zm0<8fsqyE~Yftth)ji}W@ljz(N$b51`K}T4gaL={WW5KxQItW>Ki*1&LNgK; zwmxJb*#~+YF$VYPRUYL~o3%hmr)=3P|0o-}QB_q{v3rJ4bc`)erOWrg?Cn)RVFY$-%*KIZ08`Lso`YLA`1dDg8SwgC1T-dUl#s z&&0`$P#O`>7JJhp8<5JcGw!a&D6!CX=$7}=S?{ywFOBYIdqJ-lsfGiueTRgtPan1(BY`OclzmuCpDKA-+t-qh54VYh>|VLV;f&({}! zdKii4@MIkKK#fVpYWF|S{`_}21oT3_otoyya_pCX(K za9Vp1{R8X*fu=6>j~1rr&={y%syd*a@Tmv=sl(BGF^_jJ(poVY9W{hG1#Tty6j*?t z!`J6^=KdvG=eJYmaj@_sDx=*g(52xhdw0fvAUvP`SkjJ;5271pa}(=Ii01 zp;rk^gbo%`ha0>a82ll?{niJ4#HA~J6II%-Yhhs#h2hX|B~12!%`W(B${W$ME-f!Z z$59@--_W~5RFPQEA#QvLo|&0R{WAQ>TL;d_;bOzr3|B|s>;o0$$|T&%Gs=iUhaFl4 zo3LTeVIVo{HOlN(hxplPmIN;No*(hmW}o~o7PlcC*URMO9cu+}hWA{uafikwX>(Gq z95meHEo#mXkg3jL^|*u}{b_jMk%fu&!qsNIX_BIDL-|_JW%iq;y$dC)OCj_eVfCDW zTDDlqAD4*w!XR}C^qmM+VTAyX0dls=%Hc&}4L^OPjoHQ_o2N7BP8YXMQ$l)6xv`@| zI(!p)G2LeM!xj}Xi0fn1tLmRw!j9-a!FuALybjr(9ZqgY29;(n0z2B?8=RBQ5c3Gy z@c^{bLuaL-29}92pyk?_$Oab%M_V3Y*kzqU9+57)QDK31d)Gcn@Zmw#JyVunBQN}` zn>soOp#Red%b4YNI*T;w$Ax)$DOl^aVWgslaYePxvu7Ob?d`9!?V)p4f&>Y8IF`zM zn$Yrws!~u$kONYUzdOaZJ))E^mU3&WBfZS!f`&V<3X$k%ZhBith(EL&&C)hJMS?*3X}!>gus8?$ER3Ca`jh2niuZ zu15Bv>X^MC;pIpA3enL_Z_;1ZSXepAc`q9p8WU1)f?H$?3gb75$5SPU0pN8Qo7L|c%ZU7X9OrluCnVTg}48=AROg^1hk-08{^ zZfj}zk{@7iSzK10o{^E0jreowns2jvBXa_*;q8RT#r6Nep#HcBmuMi(QDmP&GHe6s zXU~cml#D|7-hKEG7z24SbcBk`2AEssbF#B7&Qh!7srxWUM>@NzTHq5Bmg4NK1iX2p zB&3~>6#eivuG!Q;)&+{-N)HS8R?-}Ieth0+K3oPcB%hFZsUk-^!;QKckLmR?(nnJTHg9+5}%{E{G6MvptXQF?-TGj^&9g}|7Y}= zSKYr?EL70I41C)LcNCisG^ntgbHlP?An0J(fTbqqEno7A*o&1SP^f@6D;OM0yY_qj zt~6Wf{oP|!(7VzSq`dgn1hU*ml9ENG`ueLXX^uu3#xbV@pwwy}vu?PZvq1(Gi4Os} z-of@_B)*Foh7EG($4SC8$aNb;T8k1{lriU!t}o!YqKfi}pdHf| zfu6hVLeDkLYWs6gG%?+}<^9bB2aAx3hY)&|oi9eOO9a0!Emhj3goN37rKpV!+W1)aR8^yG?nos|EbfouKWuGjneIt`fOO0@ zzDdx1S=)r}Pp)>Ix}#Pki`vV~OeXh@kGP*ZIv&8=11)>Q0#116pw)e9tiqant`D-# zSLRm}N`ha;BR>Sn5Zmnq`F9Z!YI6xYTaaqOH7$jJWA67#X|;y>*wu*Ek%?LA3WnfzEsPez@FU}0&Tcz)GCDy*lYLBF2Ey3}|<0mR)P`D}c49vhJAXSe%$ zt8J9%yH)pfBt^$a%#lwk3)$Sox(Ws`m^LTGK{kkOe~<4~S2s}_!+I8pVF(;(f3vjv z;TDPn+R&XgnkrDyLc>&gjHcjQA5z*zPN_i~NUtZa21O~a;SJy6FWpiNZ8Ny)g0=%wQ{q-zl(dQuzK`w z@sPn$^!p$r7CG#>K7>RaNEiJQ_Z!T9|Ml-bGKVN^q@zLaJ@g)K5Ux?rOM+e`dm{2$ zA|1Dvom!3Ev%W7IVy ze)r@)^ZiS3eo;PZ{4&RIpVoVGIq1q{)I7BXkfN+pvMgdigf)|?k^>&F-&%E{P`GOh zAi2>qKK=%BR=D}%&!tAPde{)^qYwxB(pceeh3y3`V{$nSjn^@p#?W-{S`*&i-xqa* zQ$F#^qo6JkICFbxp@bRp_7+QYgtd%y5BB5l1QZsf5cR)vDY5=#cZaoHOd}*FSc97VR|I z0=;mSRp{@)!Paf$0JU}Sv=6y_ zG7yQ~QM+Yh!Cul|pW+bW11%M5HNH>(x-rn=1i8t#!%jnK%-IvLR_qoD?t$1Sy51Zc z>(!+2B`_OX&?542!yEWmSd(1tK`?1h_iyMH1ZfK1zX4D zs>2HxNsOz6wN^#2evME0-GAWw5!@y;!84#SsW-POF3p<{z}oQHDEguuEYD z&!_B+-v*E=ObEB>$g7y1>$wKg#b1?tJ*sg|Ci??5jbW=8&~}s1haC1EIE^-dd6t>S z^Z+Or8^9EP;5TViGCA1BB4GR2xeLturK>?P_HSTpBraCRI2D&cbn{W3P5}%U{J96% zH-hdRpdoa%P1x;%$9yyI+jDpw@gf?*gL8~g`3Q6mTK6N=8F0r7qsu=b-?1!f@@wM` zI>cyj>jbE!(|n7=H+N(gRR`@H0JwsPs1!ZQ@2cbtxndz?H&g2V@x3{>Qwz20t9d8{ zL;_}gUukmNV+%ej{JJwAPvhpq)|j>R*3!B?W9eM?(^7j~jVOl@Oe(mol8N)X&T#9m ze|1rx?1RZdM>8{%JbYyns@*rSiuVlM%uDKov4e;75i~P2+d%J-0(JIJ)rSwyYI_|y zBnRrbxd|K}%-i;qU|~JSk`%iSxuG81W;Pu|X4K1~`fDLI1pitaa=R)dq(x>AmoT5( z+eM+}SLg+t)eOHr2B=byi&Jm-8dX|pNy+ zJO7HYhf3!||@aHp&)xwg#XE+D0Es6CAT&dm{$nrg1-n1b~i%^x=(c)j-s znb5-%V$t~k%A{c0@er_#phCnEa3!yLk`vt3Jd)JunY9h?vgF?C8B|4<3`o>jupej~ zJprzfqeog>sgckJtiql3HiNO~d2O(*TwZfxfS2?L7%Xw~H$8+(V1AsB+l@bG4C!9D zaKzqBi%vH492}&2Y!>ikNxo&mB8|`8p2-% z5bQ{8Ti!^l^q@s2Djj1EZFo)ma>;IiKPMY-DL(-vE(jEfw}OwrXak^oe%(AFQ1lbQ zu)Vpm-pMFmurVl>SpgPq2E>k*`2vX)(r!a4{PV^_$4XK2X>~;-0F1Sa=R3ffRQLD_amyH9h!b2J;3<0`|{W5T5eHCJ)y z2jnc3(+baI1(nk!(N4&s$EGrSv_0IRf0Fm#f*6-D$S?~;O4_H%F)z9gRG5PO|Pk^%pAbHJ;TflAB12GA5H{MWT{dwhkX5iNs>9AH&=yl*a+)2t% zKDrGAFqjU7+Nl8E0Wf+cK3;3n<<5dogj${gslcXrxd7f=o-(QOJcjYT!By*2pGE$f^W-|j*`j%J3w!7GR)xXS;e<)@gB z0*NzcG#`eav%li~!$`RX+-NxdK7I)~zV?b9tS$)Eyk=k&OfC_qjIBR&EdXtZOnyP4 zF$k7fKIVXtVw{6kinI>Q@)rb-tq@)%*nQA zwqq_Ff-DHpgo5&W%qoIEeJOmd{&XlRi(}6VMnh<2Kg#+69#XAQ;^R+eKW`fj;0^p?`%p(W{@1C!fGS)E?J(9ozz-A)BbEdh*1?O?8c+wJ>wx|Z!<YN!5gduv^B+6Az3-3O62X~6&jWSz_FJ<{)- z@DO2PJ`1*fe*mCHo&3)29#_9^R-RYOmDeD1ES*J75&j4SOGV$`nJmw$ydcGQ> zbKmc+2PW*H#To}BardDZ89mwa^07pQDE1J+LqSA7!7+gUf_2=o+ZCl zZoJ%xXa{8LQy|0lF%O5|2ALu}xDJz3$k$51o7Q12+3d6{>H*ScwMJV|SVv;oS>X5s zr_L<`in&~kYjM}-hB*I7usdc*yo4njHI1RuWiX#%&-(Dj#JPL48@C}0gUA9{JD;Y_ zXLB{M-`ky!2XX&MH78IBuf^kI0T#t^pW5T-v=(g*^0R?EM%d#r8J*)Bi$Q~C2F|q- z7dq9khE?LohWT90*C4opk$B*1$0<0$cxmxl-`oOHK@NgG1?<7Adov*SYhu0ndCuil z=NOEtFxr}UH?b$Rm+r!%7$ta(O4`jlkb8Nl1T0o8*lOvpjLFbK*J)0M!>`xwDSw1Y=TxKcJigiA>A+#9#$T;4MNJJs^aVvoldM=}>O`Hn9mLV@Uc# zE!_Yv@JecxMgYhre_);vf zDj*_8dp%zbmHu0#0H|qZK~LxPI~iSefO94-2m-TPm25rkI)R+~uyt6Q{qB`HwHiOpVG}wm_W7PLUM24ak zBElf3?78Gz5#$qNpFfJv8;cmk;8cJl5FECUJ7iIkV5vg;0t7=AE?WCWDW%De#GWC2tXy^kQp7^|GzPrYlnu z=Y;|5<&2|!X!Cp_Sm|U4ZZs}g6(FJ`2P=;Y!{Hodgq83LBx-*Ie;~SFEq|V>1h>PW z??c*uP)L9ZuXG5J`Ldasm}G9yLF4DG(9mLjGaSbdsbw+k1R*6pUSgV>CjQIwnA_yBPyBx;0wq zPgt$_clbet(V9M9ur%De^%xogaW5#BXJmnTG0mPnr92XFDp?5JK4|^lV9h3k)u2w4 z-p6?C9*kZVhR>`NB?0cm4g=#I13x~xna&oHS_PEkTW^x`HnPG>{gO)E5}~^Y_CR^( zT)>;$3CU60X#Ci8w7ejUz(DPOXrzAp)?p%=6{!F7YZcL6xRs((XaRq;sr4P~M*m;m ziuIlDE@~!lxFt82^}-kx$9073j4D9Jn`TQzYfYQvDX8n5m`~5}bl1R~rj=u`-KOjF z0Yh?}KN6fl)WPYcvcNGOnO46HllioHV5O}+d#bhQhufbU&}*yWmbj*Ew_0^`n@m?L ze(ouaoO)6X=OJ7RARqlh;*%r;sUZ?z)U*0mW91vS3}uSqcbKsWTx5Xl(1IjTAC?)- z+V%7HN-#qcK(A6#U?Nd+uvo^5BZEeo=!Gson4%hQ2rp`*+7RAl`Vqa}ccAc9F2Ph7 zhEj=OOct2uxgE}em-F>kawkOXV*>+MW8b9a=(R4b3VQ+nC|L-6&2pAXlHe)AvovLT zNI8c+#b%-J2m@}DJ(iOEXx3)n^aTr^z<3voZUwZYXkNQ~>1_z>)5i{%EzbVXze97& zDGT~O$o~J3?fM?^{ro&I+`Q?BS%l!g8}&|GM}|}+53+K@nF6Cb*gtm=H&*s;pR3Hm z{OWDD$CSQN)f0OUlWBn4RFd*OX8ZUppfJON((MzjFGs5^DMAd&4!)iD*%i># zN~^}Nw~tFun*$?uIMrUA4q|Ycsge)W&bPghxilKJ%xYgn_vc*~>o>J|S3ZzbCQJ)^ zpyuCtnW0i>Za8!-GogB+GK&(*FMk%TVAzmv!s9>iGYy+hgBqoe^CKb=@=B#uTzh3k zf^#Gfga&nm(tADwP9pmt0Zu^>njr&#mX0eQAY|9jnEq%tuMaLFuy?X6B6jzH;YYL= z0D&K+TlX73vsgpc*Tb5Xp+_c@PdYjI?C58w&9|;kJR)9jWpC; zwG^dN=-JMdfT0_=lvTMf$$2tB8eDo*;q)Oeadbmbc6!CxM4Zx-61ttaqp9lPLPaoB zYdpOh5gFion68;)9N~?A;7i^;I_~*A!XX zeIw5FokqY4IITJ{y3a8i54v%3FBfyYVoY}s?}h0;1p14sc6A%Iv5hIE>dWB0idTOP zkCbJ8U|=hJg41lhf$H!ywbk|2xSAnN6{ft`lNFw?M*}&q5;e$wH$wgW^GUz$iB0#v z=!>QHgC1hVqSi^%-z@px>+FXvLNfpqj`Y@hys4_fxEjgRELtdlD8^wkCR6om! zKJHu=GOTlA>>=VMDwEDS*Cv%y2JpMF)OC3Vvus_*z1SQCB0+a-=u|*u_vchksW-7v zG6~^_!ASB>|CTD`t99Xg2j|-G*5O%5UtFul0_#nGjrM63N>V=EM9FVv-x@Q&Z^`}S zwux4R;%z&_d~)Q}?Zsu#CG zu8-j8u$WW^JJk70#txiem{Irn(9^RrDy8EozW(>Sa*AL znx~h0BHa9~^}VY-GS(T1+IBh`aml}$&+iVlq~h+CeE-`*{WcDXl9|BA*a?l~x}hu~q`*rR`cE33ofNcgq7{wKv#r;a%!P z(%|IyznNzhQYjhC7Ol(Szb8$?G@+4Mv*5Say}sK}shoaS7m(_3pYqe1bQ-q%Vimsz zLkVyzJ24b6HG*xvEq$E$sI+vA>aSZcs@Q(a+~rwkUKUft8EP04)P&~j{Wdw)Hs^Wx z?LQ#*Jt}I_rEf>D&INrO{Qq9=zbl*-phvt<&R2K-Di6ICPZM)HkX)VNHa_LrbykrY ze2$-IXLJO0^!N5*`*5x1aFvok0N<}k|MLEeIpOO-Thj)ZGtMof;uMxR1O4a3wJ;4Z zIqCkMqyV=xG-q+k>f2niCoX)BoY?B>LP;#Y6!0Dv3fk5L{!aX;PS($)!T8niNOvvw z1`aMB-f<&n(~6FTo3H&I3DPXVKo6i#^z;9C+Z{rd?T2*j&0b1lf}hAVI`BUfgT3ms zgc0fZ$2bSE{xg;z)(u0>BhTCu|MKApy!I0u7PVZIXRawH5~+1Kj!CW;KGH1!vGJfacGDf zu0F7ygG2)?nEk~bAmD?0RamN4`dpMnh8<+m0`ScxMpHf74K&ZU6a5~D)-&_nz^cnj9XcbFcoMcE8>wBHNaSv!kou1R3WO-StS zotp2N)|>hOB{(w7%A-DP2&Rt%Bs;k%S%Z1-=5H!4oxt{8zX<(KWb_SaAz9;Ah3bi%D;+Rr&atwyGx>q$T6j%F5`RAPE6?&z zn^8n=y|K4EbRu?TBmvbVy>2VkFHi>Z*`T`<_n-x_QU!8+Uutf|VOzV=M1Tk&RzO*snZteRWDme1%MTQ!010yynr#MSpWcu*n79D0&#z6WRN}B{ zH}6~OD@W)6`8Yyji6~_MOASUTA)E{bM%wRFK-Lab1i^1|ahWwJ`;l=~K*fP6Qq~LN z{H&Jp*&G>SokENWbkC~`$=+M#4+Ecr3#^bVt3ah{F?*%ZyHNr*D8R6-Dd?;$u04(1 zo=~YFN<0=je7Ot&Fq*Y3xJ*L3TA^k5BhA*`7F|W=CX)EZCDbKR0ln&JjzW0_d4u-1 z!|Icu@hPCG0ew+qD(xMZfjFe;mZXw9M1fVQ>Gg4Xv;Wxn^u?X?<)?zv^59Yrnne%U zzlwuRi=Uy7h1pV zv?};hEetZ3MM;5P3?0FKD=#>;|AF`#njDkBTZJQ>9&S*0LXhIRX190AvzOT+_@xp2 zNVru|6n>}^Z_Bkp%MI<5WDgixG+C2-}RA@!JU?$`=siZ=@QnKmH9t4zw^ZyU^ORK@FeXVX7PvvHDTbUHI)%UGXO#%ipLH_xf7Q`Geo!ryF!9w(G5d4JDJ65)N z39J_{Vu?+X%nq)?QRzzgugfw26+C1Zfb+Ke8m-!e6-epe1t7T$(qh(5V#yiacA0K4 zXj934{|m-DCqw5Oj~mRX8qCTt=F7mN_hsoz6p)Yr?8}^Jj-*_0>oCx!jBjNLw;j+s zL=jpKD818Lt;P6EJwg~aIc<{7Dah)8OSo$m$jCG#@k-Y@ks3zE5xycKDYy^)l93&^ z#i52UA9+~zFf8pR^2DFzPW%OBi%lZLRJhLz0GqMlSnT|ic|*sAeCb+YHI&U`^WJ5B z8Zk349nYbVQri(0Gq1*9p6Q>xP7h0Pe|>_ytG)S z3dA}10#cm@SV0J>IGfk(%Dv@tK;(rH(y{4Crw+QlmcEtm1~Z|!-`+M=%{(_^exK6) z^pB4=Dy<637c4<7H?o6zi z#fTjX)^mw+4_W*#*bV2M{4v#=IWVoM*W-1h$wWAj-iEmL+l{1SU5d^SYb-X}TsgX& zEfHbg$tr8?W3$Pm8{-Xi3&hg`TO{HX(knv+o5wqse^y5zid9?h(ceDC1kv5uOlQ&+KO%l>|pPF;xQN%A9gE7wh& zxd}JA`p6T^uce_a(s^;}f|e7{y0vIbAKGst!qA0xM=wtA2>DT!%hGo82W^w$o3Wes z2EWEIb{^NA95J-0j_-+_4d*Xsb^rE81nu$YA`2$Niy~5ZQhVF4a`R&W*HEfS-|n17 zc3^7eO2|pL9!vXtyY=NLy@@FD>E4q);_9KNzblo;u&qU}19H{UhF- z_27Z{g2G`v{iXR9>qwQ9^#ZTVXpv7mmrpP|m5w{bbE-U+*1oH^bOzjwnk!Cd)-+0S ze7Z!!=EUi%%LI4&71?5}>efj|$O4$WY?^1Eebg&5s8JJp$FRiraoVQQ=rxT}mHnbZ zd7NODRmBVg{iV)mzSC#Sqh?mJ-o6?m%hdwEi`q$`zyF836JP#uo#KD#m-_L#d3G!I zOmfBDvj<$*ZEa2~E$~LVrrg>%dP}yk|O}wX=n! zW^_Y*EB6g`P9G{SbAutnDL0*}Uf+3=(>QkHQ&NQ~^N)Zwz6}xCrL)vS!u4lD)`zJ| z0#j>OU5|csMZ9Kzz#dnAS6WxGtZHu}V~qT}OH@)6JcOpj?AAjcJ`%yx;nus<1m&w< zlJep*e57RTg6Xw#mj-e@Dl2 zr~X4&boEaSes@DP+E{JDWYfKd!zGU_^wRSg*cMaWUcY8;l7bT0S$`+!g|PDpM!I_F z;QCm--+KQ^!-!S=%Z;gqFH7@Y)34{=VSWaPSa&?~SGEYBsKv;huu+%D=p4BUQxY9s zwY2*NZxutDq`bWR#l4-a`EKKyfN(Pt6Q(hltMu)$1$mm0 zgRAh^K5+c&{97nbCx7ZcE3k9IYL;jjbS1kQw!`M<@^wjUiKl{}du*m~tFa}y*?TTq zk0G1-WJsq}AKuZq!!DsK%j6k3lpz)v?eSyVXm{R9DPPX!FCHaMKCF>+0w`wwkz zE}bkB%hejyP2UTurJFf3MLV)9Q-s} zEvyoA(q1fhxVZMfw4m$m-UMc&F3RiGcdrIvD=K71nA1(Zw8ZGNJ1;107to0_)`wsA z*WY<-Ir&;ZdHtYQ(>=BFve$7loxaPL2WqCvN;h^5J4^C>4~iFCNUp4R#Bj>kRAr3x9&2|S_B*YM(SLXtDUT1} z&NF!3>jZPI0`rmBGj#RCC3KkQuV%XMU;ys@2?CA{^t$KWu}-+^)Of?X9vAD76nS_} zctp7FfdrQW`q$Mr#Leq73Ae~?A@2T4aUnyV-8paP^#)9E^6IDVUy~=>K=j-vu-n*Y z^|bA6l6GA^o)xJNsM?y-?;3X_r1O?PIgrOmHosqMH%njt(~bCh7oU!lhVzrU^?>b} zAmXN9zfwasI=tK!`Pc2%>sT$1*akjho(N9ZC&t-V>yt0KLw;Zu3sdTn1%(FBo|`-N7wk2(H_2Sd>fY&TZz z`d7s~y)f^4jZ5KzW*jT_!L%aYwHD~5FKK&*Jq$| zQ?0hY`PHao+5_tzRN75@6dpQ%UAph()leEA6@?pTd6;b6Fd0H}b;x%Ary&f7UiKL<6ZiBKW+5X0&Ahy-Dqi@_ zGB;^n>Q=B6vTr62{Y=dPWL_9*}wFY<74;lp}gRCH0hKt+8Ljn3o4^=#1L_j|s%d3oJq+J*vD z`_+0FkaRvc%B9UHG46f{K|<>218p~i2|u(|2qw{lD=<0v8km?)s}yKQwEo5BsZHlR zg{{gG)8Hjee^Im22HUthF=F&-k!omMocS;6ti2&L`u0wq>sJuTQcYOP$`Z%MdSV*l zxbNPT*1r>DxsBs}ACY>4tB41#_PFg3#uFe@6swJNKq>boC`i}Ync~GgtS1>H@Xmvm z@B+^L19uk&v5dZe$jHcZNwQV&s)~x(O@+_s@}?OkYR&T zM!|z6DJhI^;?RAT_}Z7#VL#mv_)zn7BdDit*vn{F+T5=W(X4frr;NIHuzp?49`p0K zLOWiF`_k6V%d(E?!@gpRyKu2*()8Y8%rvzOEX?zcMCqF z({XZSL6_aX_V{d8{f0QF1)p@-TKAWUJ^0$EPoB-&@^}1j`68y#upwSDZ5Q4iO(t^v zqOIrWcaL>K`s6=g4jsdmj&6sC)zxzj_&)CTTRbLAwIgHGR^y1M@)@E*2Y>4E74%P; z+jPdlBJw*OB695f^*u~5&!jK?hDKX5;pqN=b)ZV}xOl|E`RA7#q}UI!GC@%bV&BWx z`1y8#B_BqBbIQcbO!Vr7o?4O1_>!1iXTd`Cyy0qxoaw^&;dOABR$E>kVyMw^aF(`C z`hK#yu<(c?n^V+dtv@MCSopdw$J+yHN*dYC38x_~CsWY^Ixu-Py;tC(6nAjo7EKN< z&CkobJ?p6$Vw}-;Wy@VGRepPCNB89TD6m^)kDHD5oqCPqZ7{z?J=@^XrmF=eAM* z5G^q^5g3DbLpNsxJr8-cJ@*aK?2Ov1KWzuc$63y>&4wkA#6QWfnhdlnbgxkz`n);Q zrXMW5vp-T|EZbBiyKZ;nDPm@3#x=%B_3Vv~kC-y)(F z%yi4&{>zTe)ZAQ}Z$U;32TMnzipA>lrunTX!S*b?KL4*H&q~cZ=;x`4a!jv2d|+%&uK4)zJ{YLl z2%WO_YJh$tmijGv3^peh4^J!MhlMYnTpm|ER$>4}Y3!0yUS6I8X{Rc`fB@+I(n)L#^Ydf;959lL_>Bd4rwWqpMAIs72rhBueW=IaO8-eCE=A&8qS_qnI) zQo$F4wd+vBe+1sujh)!PQZzc?SUgwv1dc_m!hh0G|L%;*6Y5b&bxqs6Pf0oT@@k`5 z8U1B^T>}Fgu!RS*>4Fd!SYo{j=Pul9dLEMqQIokT=H=C=U&0uA>j7%^96Ci5TxJNfpJ7>UtE9BdHmB7BaG#?!=CA$%O{EIV(ukdq#L-*g7~24#iL zp=Sf*@DF=_#50HJ(g_Kt`m+=RcLT3woW>5F=1 z*4Axc^5af!F!(V$n_N|;wioZ;7Lh$ZKK^c!Dx^j4zJ^BJcR_fn-@#QP|pJ^&I2o}JD~V{$`f}H-=}9_ zfB_YDrgc8A9EcJ_L$XpQuZKe8J7&XL=MML`Y$3jOYN{(Ll2o)OOs)^T>S!@n7CZ*I z@*~XdzB>e#j?cD0QdlY%7i<93%sp6Ojg8Mg^y+JA(IC{Z=qT8JbKOZH@C49&9sr{Y zTV%Bl|?QE|W!F;66qp;Mh37 z_0g)OqSU-!fP znG&yX8oz(K`V4Ir4CRe}>*K*XBy~FdU$z7!QxjvicXVWqq#^QSOoOBED&8sZ)p4PQ zz%c)|JXD_<44dbk3a%7+U>s#MEXpU9Jpsxjhl4mxQk}J|48$;@I|#97OoN4N*n)?e z-yRRFOUgJXu;S2gKDva5!-d@*984rW297j26w2o*TPB|BzPm6I{=jIVP&>K42it7t z)LU>_J%ojk;-OtY4nT{WDl(-b77CM@&Ch|Wz{JWbYuXT_tfYjK(RVY*6hca3A}xB? zYOGwQ$Q=yq(VcT|DvBB!bS^R$tLH7OtSGsc^OAvbsmOK5Ox$J*oXY?s8a&@hNgDKU z^Am|I)9AEg4e2!7{R?tRO0ORMm4cVxBYF+JVZuv2sPq&K$HIs8+hhb_8ig?#*_Bp; zw8UWiFM6YN@J;|c@I_qMCHfMxBWz~nReONph@aKeA*WtnTdb{4G-rOoMF}X_29RVmrt&w zZP~+n`F?EA68?;^ZOPuVE8>ZQakcMmDw={wKoX*mnWdXT?AlO@I2jem!1_wQ9fQVsw181Qu`|;ibYmfp(*c%qTpdibuiq9rKMT#?jmZru)N$y?UlRa zWK?nmoMkGxTl?<*V)TIyB1em|q#epRq>$dSk3Fpzo3`P-yv#xRiv&&&8HeWJ;Na+F zarSMN2BXt2upp`#X*hgVynsW^YjbsNv!blbaD{i^g<=tYD(&l*ml=t!QbkrEUAk^5 zEheO7hTzHsQ;+jFI2?#6XO%kMos1yg|_1(6?s=>Do>#Cw^d zp!Xr`LE=(RY9i1+-{fM7`tw(L!Y3JuMVcxq8CiN6Mm%vDN*Ao)@Hd^zxQYj1 zMgocrpnaV`!_yzZ1QeFEk%u%E%(reySL&3EyqTEL-rn8SgT%hMxjAqb4jh@HBdAab zljt0t8bdQ;)q{@)wqR!c{MJ4jFE1X}aE()e-WUMmWR`xZ_OSN8LdhXoP((yz76YJD|Kz=k7qdJdQdD-p z0ntbEKaY(}Z<#Cff;1@B+#`8bYFXf19(F;(^Q=r*qW@2I+Z&fQX zVzAh zof#|o*P-+fipGEo8MnCN8i@2b#7W!^vmc<6w1k3qv(KrOxgi;FLIU{?->U18$|j8 za2SqHh~3yv5BZ@Sh|qT8rB;RbmqzE;qW7Y2u^(p*()6cg>heH80^gq?WNYl+g^O0Q zjFA7pE5td44W*{!3_mrI`KcEpy_1vH&Kf&{&T#rvCd;O74X=!paC*i=5(R}aVoMb>3`-0K-H?X^Od8W*7IJnuI#;Bl9qKM?W(3#aoJ zWgc)Eb=`x##p`B<^LJKJgJcy1|8sdncN#eh(jw_u&qa!Y-OG45Jrff|PiwOWe9u!s zfG$B>NPc*r1;nvoAo_i<{&2}*;gO)uJHfb4UwEp(n=#ckH#Pm@{GKNg5PM6$N219W z;0T8QVcolcV=-EKj)8%J4c3RLbal?i8SncR5G_S@ryt{;^^SFLooQlndCGDrAgwmZ z9w${l;9;tXxp{bNpHfCWEhEQXR?fc1u^ z{(VpeHtQ836g#M4nqRZlQD-@X*^zN(5ZE8B1>Fxs_0 zqK(N;7!VZiCR7v@Qq<;ccp1~B^jIL?`w`JVIofDmP)El39Nwa|tBD=6O^_Q>SGYdq z5l@vzlB7Vhm;j2Z)(_rUyu|RVAu&K-I*PkF5`TId?`3GYhfG;0yWzv_64}kJAYyE+ z2D}D8;^Up`i)DB78+_z`42@XPU)&h6etLRCXX5zEM%R2Xnvz~}F(o~4)^N~`9TVKG zKS-10H{fnu9w#Bzhx5N4=Q)Te!>f)+b_eSS4#9=>^`Y~EzM|JkA(@4efEU1OgV|$- zQcw&V8m2R@T*o_AZao?7vNfkWQR@;rBkcamrfEqf{9>4G4H_u0x>D;2B3_=YV|Ue{ zccSPz*(WQKrv@>zr?1Z&^7LHV@T+(iaIhg>P*74f0p^I3)Bl#T^UB&Za+# z7vJtPTPKU1>cC(!jIMbIJdHY&u`P+7C_Pei( zBPg>I8Cc2rSnown-aXvyRwe!>eDp)gafztmKKeQan`_Id#=k4=zx}iW2M;p3?jq3R z^uN)kGK94-zArkl`xd^x=W%iS4@S8l*x8&-lxVZH|qCg&s*pq_d*|mUJ zHHWl)2#OCBUeb2m+)a`nOv`O0S;gGOZ=gk4_DeZT~yZ5#$zh3@g++w-*!r2eI zV|8}FRd%AApWJRx*KTW5)XU17e|&K@es|2LioZFJ|2m$1KN}tW;Cv#9cS2aycR8+KUw-3sdv1X#>PIwWY z)78}#n?>tg3e@Lu$oi8AmQ0Viu4ibt7q|&uZ&Ii)BP$O#w}6_QR5TqCB8eeyC$eY_*;_H7p z`}U3&OS1o0p47c6Mq7cVIbDb4ysCy^s;eoN%RF$ryPPgN@js9N!_Nm*F((B zXQhaeEJ z6-jK2ez7CjkL^QYSF^Rm)S;Lt*YM%KEf+TYUDx>MsbY}bx0U~LaB_bBx`XJG;1S&K&eP@a%-N^xdhb{F+Uh zHZit76Sc1#ORMxWR#CIDNi(=8{$pz2E^;EqjbYKk#N<)Z6XYcFe7Sh-T5{KkOS$)M zpWJIMwCnr#?+imz+y^*bAWCuJI0MxVQHrNepZfCi(CQ}j@7f!ktH&oYc+zCvW?eBL z^UX!Vb(wLm8BF&T?|3NFHSSdJ{D9OM|8-D+L8QIF#qm;WfG=tVo)Bbm-zXhz+~mk{ zgfU4Y-cyvBiVW%gzDR9zYZ+UKsT;`136-}OmV}zg@pWg*`>4(#*_BgNf;9Q|E_ab3 zXKCEu;lACarqD~x-IcDWwUAy-Qo@66*?=MXV`_T40Q=d%53BY6uMK3+-8|f$r?KV9 z;P7xGxz*Im>zca&!B>a~0TGwz9k^ zIAo|+;*2ogy6@kq^u+jtVCHsQ1z=ytn%tN)Fo_}twH4Qu9UI9}?dfN?_OOD^FYBw0 z=$f4Gy#7u}Q}Z4^M`}&NCjs}Bn`IN2g#H1Fj1fFU&kc53MX)2hyn*aflqFn z1q85J)}OW7Np~|1jRBIB>fc#dTAp|MMK*@WOP-L%<|}Vm-RAVmF4v){URYRo(kjco z1pyR1O|KB)TgQ4sukPb9ar8$<+VN7xq#jEvD_MJc`;tjk8t=IAw{FYM$OAWdT>*Zf ztWfc(C^qe+oJE$MJI^liCnZ-o7wBM1#1T|+v!=82xn->&GtI7C?|sB13Vz+M5sP>_ z8I=6??|ev11vu|Ka{n~Dsbt|5KjFY%4td=_wo~1uZkHvKo81Cl0QX(-)8a=}`^iB6 z@yX7s`63JHXDE-VQ_-#^Bd;3W-9Iuuwi0>x=9XElkvemij$e8D;rvHiwNIZ864a1v zaI485|5PEu=DeM3EZM!lr|X)=8Z!6UnZrkwuR3}BE~v3HT9uw1)PZQReL@S zabqX3XHRSuvC;w+B`8yylV851d{A>REM>QGdP}FBDB}=dUgp`ONW$H@YZpL5I^cxJ z0RymUmX+Q*?At?0z8118>(9#z%Wmc^Z}$&Zyd?7c;Bxys?1G~=s|Qa4y`{hCWiGF* zX_QRn$RAI8jiCFkw&td$_$P~gEXRee_7yr+M3@rz1+V1f=cAPU^+1}>xgz#3?OOBe zlnhrLveXwiaJuVR6q+ zdUrqKKdGy`tY4b1%j!-2kUd&cO8l23J!{y7NmA~}W~m!KZ)JJes6ZoJlFjvvQn<#d z{@2xq#6LWtK(FI|g=b|#YuETv()3FP)(>yr&Bn)x6MF}-7kkRi=rxXeI?Y$_QFq!G z?)6Wlas36fF~mKYac@IsqQF^ZE(B16rwRKfEZlS`Ba5A+ zd4brMm&@Q;EH%sIK6Rxf17Ka*+nWB;9|bOP5~$h%aEXB5;O6GW?br>-f;(ca@Wk%j zEVd~tly^^Azq>pzI2f?j+@SN*pq*Kgh{Vh{!*HSP=zmXLL4OLc-`5p9dJdR{#ExFL z!9#~%H(yQD6gYV_v}%1(N9qnmpsFF|feYf!#5TUC1Uc(Z)H*@4#B7YaA;wy&U#Z$+ zE~F6GfR%_<$%Kt;OV%du(t5%D#+jE6FkdIXML;2GZ2(oO8Ns2T&8qNc^RDWxe{j%# zYsMIZfIb8vE=n9f@^7ntpcBpTn{ zIgMtGZ z);Etxm_1C?=Q*9s@NMch0f^hnM9q%prX&;anD21!WTMzF&Zxx(+e|0GF`v%&)K`x9bwiXTLCt9iO9LvRwRu#Ox*T;HOUu0(wKb<}@C${Z}#d|Em9{fd@Qp<+O#H7+y zhtWqR{?qGuE}$Z!Utqq`nMSIRweG7tOt<{&t2vv*mL0`bm4B<1fB!)gRUvA;*fDB8 z*4Kd=x9Q3E7(J>o%j|yF|Lm))1#!v7q&OLTweFhNJQD|FeJLvsOH8k}%bL^UEUP~S zeyAs_sbtpS-ykukSlh8Zt|gSI%}(^GiK%HolZJ){p?rQMu@~nz)pvBwvMO9EQ-oz3 zRf1CF;dzPa?}vQ1k3>)blwxR*{V}+JsE5+s~fEKkQL|+KhF+f6^l*PD@tw z^xBjNGfhTDhDp-9^Fhv0cmTkX@zL_lX zIB{W3HVUVORv@+M>GbHMRW9$9=`YO6%1WtmCGihWJ2O^I^i*dM6A2zZeCW$>nsK<@ zQuvp{;=Y--21guKb(2-@AHGCQcNTnnNI9H5S9QPZ^St=al`pOzm!B^34f)j=FOJ>2 z_i^{v2Vu&BAJy)UQ1I!r%s$=4*8M9pc_8ol8dQKP-)D=pLSs8`y1qYap3~uX*HKIP z`}QqYS$U2jrs#h@$^atNwYDZFM(+1zv}WMhUQVSLR&4}`afg`{D*bp5)vU~njDalK z!<_@;PT)3RU9PRG(>GcD(|Omcp1NOVmKpQn#a_!>AJEtnlb&W1x69*bRZ|nZs2#EO z4;CTS>Z_mQ#2&Dbxa~v47Q&apxzU6DCll4(H+a|{u;w}GG&athPV=}eQ!bAI7D?3p zHhN-H49UJ-x%NZUYOUnYMUW@C@MKag9&I#$k#<`;p0WL30>=9UaVCOG`yiHm9r*RZ zg9rJgzR>HZY1TG18NJkHp`id4xrPj(Z(iS@rBtxG@Fv=tr?*&74b(kpywy|fN+Poq zx?(6_VUVV2-C4XwKtN!iko8)=qn({xkH@WKHm~ttor=5d1bPyW9#EkYITYb?n6ybf zCV7H?$!eB{dG&>Y)71M@A|qNK;8>|Uc!FBOmyyj=ap~BXB^#FT`-Q>R<0=Y_bxVDV zzWb|H(3W5?P$DFK%5xyV2R% z+g)Zy%Erdta4>gWe>XN(N_%b*WQ}iapw6v&b0MCrPgPY%Z$^?VdepM<6pT5EVY@u( z=$OqRXY{An4+;t4_OLNvLR!`)0I(aqOF!1s__uud{{0eav`)B4a)T+Jo<9I-v|tqd zePoAX-K)R8>=O{M1&RsMOaT-SJ^qq@;36|L_NYd^0MwPx8yOTDx)%dqkWAa~s&>F3 z4=wdhQ?cqONy$DZ(&(rxTC0r9moJ;=go80=Dd~D+pv}i5pSUx!Zk*T4ptOtcuR!hc z&CM1ah2nerw=uEx04HH$VJQPMXms-!GYzj!J`*m6O-%yc*12<=@IBPEwCtFSv~0_{ zkj6IteQ8k9-FIch4Yihnrn2kEbouiDi=R-`(6ET!!2uR2>CPH@ShvX{y{h*VP?oOR zEGD~OLqnzCzA>SlVO%!FMMAYIEg36HQLX}33y3~u_0Zu;h2P5iI`{$D8$LWdva&#{uyv){VusS++#&%`d@j}b= z))D@iazCq(7pI)a;&&WPcXc{V-f2rn$J_#kW&Sunuht_C(Dvr)VuxZ*JFVN8r@3(O zK*&@n+X|iWm&kw+A^>yLZ8opPa@&?I?FKh*bTp(aX8fcb|1=Z-n+GFS@R5Q0$*W4~ zmLsGi8(kcXmeNrI0?<8luqHzI@WDM^dVEg+vt>b@aoBDA{*Fz#S0-$+9h7ugpFNqM zc$WFaS9`HIDL$s46(Qh}i4(@B_icTTaex9{HBo*&s?_=M>7xm!B;_-Qcy>OFZ}3a3 z4Gp}JA10u^c;qX(THlrA?c-72&MH*G+uU#Pv(_wfxOIe-Qayx@j%T4IVQ$f}<1E+M zMzYx_#yyg~+d35sS19tE>8`dkEO;sYzmrm6^Aq{_2jn~AZAA>;uDudA$DH00Id0u| zrK*AH>G}A|@q}wP6)J3;;n7hUUN|c_Cd{~S{fNJCVEi>*Bju#vKj-^Ri({9IX04cn z;IzFXf7GbNrh^@u#2uCnyYA5rRG^!Syl!V7+TpzF60qx=%Z%VJ@x`6kSdRRX3zAkD z)spz1?fS1jDjZMr+BLLE-Jo>Y0VvRMH8iOv3-s&!D^^YDE!`&g#a8EL=Ti5&-=Ad{ zrY_K>J}yyYCeD3_LXYTjyieO{{e9HYe{Dd@4!{Wpt$R?v#*FML<6NyAO*6xt zk81=T=P%2~`vGMNv4t`3n2ZK46Fn%lIUANSjeRgBMfckWu}RA?uT=b(B!6lx=SI~6I-rrh%fIX(Qwj}T1w~(T( z?i16J#j~qjqttgfjfkG>hPE9Vcdqfk0#)B9R7n2fUU(ug- z(0%_}L4}uxHBAS^ai;IV$s=3DRP8Y7WBGgT-@n#HU54?+c`N&7_mRrp|2&CT$|avQ zYr8j3Ks{8fot2D|fUWJ< z|8^Bkt(r#LQ}ce<#jcy1`f4r=-yiW&Kde#Yk+>K%a!z;d?ZMVpghMK~HgZb3d(UsL0pZdFdWdC#h!eFPvUFUAAe3Ha*n^Bc|=tvh)8?_YW3$+g?_ z$>*kYUAl_8Y>V=PhB^KeOc%mG|B|>Hwo=sWYN6AZ{pU@^Xq7k8mTIn)_EW1_nIBr% zCR4a5pnfn{vbCB6-|{1rUDiwfLS2W8GPhvMsc3fqaNsodk#%Wc`->J!p}LH}!M5#N zM-p z`|q#{yx68qBc(Btt=lH2kL%1?%`HXc^7mv)+#G4YMlJT|Vkl6sNsqnL)hYQrqB2+V zVi$k}~r%|{AsvWKbiDf@j!_cF}eXGJIo92|FV{Ez7l*E)Z5aE{xA`|b(F?e@A+ z<5lP8mUNelP3O~7dCRTbgb)0_>cm=MIV#gp++U(E)e24bhR?a~XR;#xyr;YDMdfUc zZ11rKALeNj*Gg${gJ!j(QQjxK=RgDWTu#DElr&4r9R{N<%?6f^I6=od1H=cCZc_U# zZo8V-a{4RPe-k@)RdbP_?kv(StzXff7L{tPnd{x(85;Vw-Tcq04Zn3f#dbVz+C6;O zh}iiQt^r_t-sHkODsB0peFT?fe0Xv4Z99=Zb;dZHpT2cM!(dvYa6_}dJKgNFi#WY; z7#L`+RN}Ike18%!yy4FV`up*Z`?`Hw8)nNaP<__Dx}Ns;myFRObju%)yRMBoI-dQ5 z@Es{nztDXU^L8jMNB`kf+tIQifAg!ws5&iOs#0bRe@PPKlqaqaUz1u(AEMjc;hve|mqBcI56G;{!%tju_`1BQ~3_O~9JR z8o~l?2ukOUV`-G$?;DR;T$8hW)lYn|)r|onvB@5y%J-2yzq%hs7R(9q0=<8W@W_s> z36sy6m3(ci_GgEHY+bWp{9IYbXNTW(bNs6TO%c_sHAI!ueg&75 ztDoqYi3fsp^4F7A0u(P=)v(wo?e=uIZ>xeSYL{ETAF$s)aRw6Kqu5-fZui%SElWdM zCzq-|?wZ@a8sW6s_~YN3>(-o7(d~}MLVC`v&d^$iE}y))^22597(Lq!;s%7@Bi<6R z$>3NoYwKg3G-ToJijEXa7ku2j)HUuo7m+0T*D_Suy1HHR z&)Ok=&OP`!@@jd?VyIrz@;U2K_sg`uTEd1oaQEXBCfP>Rd4-p&XUv6vyUR@KStQ+< z!A#d*N6xpM#h zoyqrIEG%GhgF}W$B+JD|hWoZ&n4-L8y8SwXXE>>ctXwKWDB@tNLVoYd#qd29THXP- ze(zbSO*bii-!}zoVqEApn&}q za>Z$ddi&S;;dAJx20ZWL!R756GN|SMy{nuRi2EmXC_*$s0C{&qbnrydUE-I6OIF0u z{op!56PJksOosaKa)C3WQTnk~g-CUZ@yR;Ab0=2&z67R(HP#=w^uja8mD7hXVL?0-z!Z^6O$9rnP)`^9=uzs4+MNo zCsSTK9}!F+#DYzy>oZ&P`{^DwKmwbqhp0uja#eqHSoiNM{$IbbG=8tg*Q)U3F?2*A zFtqmA|dGGC&uxXto1vM6Q1x>En)S@zyivq0*`zuBN=Jxsb z%f1}|9!%fy$)ea?$T*MkYZHVcZ`;W$JzPsu^@&Zg@Cy;qaG~#FwPUxtTb@wg5cW3W zl>PL4Z~M%DR}%le2<(+Hzimg9cK3%y!7S06Jf8pYu7r4C> zak~%Qir7Gh1cu-Vv2SH~C}RTx6K! zB6di(kUF(_(@DBF7mp;&iWBi z)}OA&goL~b3nidW8Pp^?u&Y%e`bZh4tjS);4-N`qO5$c3b)9Jb5_xQ|h3$B^G?04E z8N(~)`_H+$t-VbK-MT;)VHL6K{eY$mvfIw@nb)BIEgl==gA63{`~fmO@ZuQBa-(fI z$zS}(wec^WB0{M;1>6s9$gD-5!bO1**z(`Dr9~N3-v=uJ{bgWZ_~uW?W_Ry?Wc4{S=Vcyg0f_^sk}W>8d=KcVhvzMJb#46(vv1jRFFIXj<(5$kWSNJz%i zr{Qj}yQ&Ta43qX7n7P#O;=nfQ-+moD{d*&lJ}q#NXp~-8Rv7$vk+;^0-F@Yh*n*xu zp0^;z|1Mg7ABFg--2esl^Y$ABI$W2pWL_ee zLRNLk4W5LSZ|aycq-1LdHv|FLk)AwYn_?y%b9x}|FmM$@Lfsh)gdF)EQa<;qnnSy|c7O4=!|0|oJptXMX);IK5O0$&H~G>lq#8v#M7)1AbIU_|JApr8Y#Ul)3=f22dkkp?##}%F44)YjZH} z!)?r6Bbuqi34LsE-SZysN_L)C&AORH=tb2aPgLh|?fD3WzmeO~K?C*tG6LaIW8JSwprW-Ag!SdT-*VqjhQ-wi!uynGvTx&wsK4e;r!B!WKTL8 zZ^72{KXd6*2Yv21eBgJOCaIMz#j_gXRP@h_f`E1K5+U#Uk6i(@lOAD!vTbc>U=S|O z!6?A$>3wWR4I+L9TiqTfMPN`)Nwk!=@<^aoJ8jL=GMt@ux_LxPjLHoqci6Dek0zKt z@MC7QBTBVbrT&2WdUGqQ(88nqCqy%uHdj_)&YR!N%uL3L995m_8vqa`X!PnMq{5pC zv;~dRZB+7Og$mh>KMHS=GPtPaBuYFN%_XMeSY*ptQNO4))jBZY^~OH zDXB^dOVCr9QGrSI ziCXQ-EPju@sc4x+o^RX%cLh*t!&0x!zGpq~xEdN7nz~zSvsNn4-rv0uR*L!uKDbi@ zUd%^Ny5&#sb>M~_Y1%LzS)QlEhKYsPkhp$q=P4eVU9?~4M}nXha`WG+@Fm#llr%Ib z(pz|61+wLd{$xtkZ7>vTn%?VIN=!8pbcd!}RYT(db@{#F?WF>rGAQr4wu>)~m43^z zh=`G#9c~qlJ`pu{?7g0nP0A-fetxmo<|vQd&tqdxZ*ka6zIJSJIk(vk^0Lh$q=#V; z$M*zl=$wRxCgV&0Zww;*CZiqe1m*&tq^_dI^W18>Z$l*g4p!EtS3kMcB`mI8 zyT7=OGMmS{G4;Q;S=5w|_4Cc`=fIFo=_m5kK zJmLJ)`kO^CV(8ZfSROlGIQZdkNwdBC^UkHk(eC1o)q`NnKRX=t;i!J_x3216izI$S zTK6UHZnZ58jb_0iy}`{5w@WeK^2s8m#s#cE zaUH-KLwomBZe!a|*L~MTn0-(9i}G&cQQ8MOy97cYM%pnjyL)#&G|Ot-#8~DccNvxh zac2hTt1k6VJKOs!r1&Mc73t`mxdKZA+$uxF983AyO(K;nBGxDBym2<*ny0rzHFC7R z&|FR+i+9`oK4&!wUulw_Wy+hKWYFQl--PB$Dvgjr&`WSkGrv$V|2Oy4nk zD4ZdT>Z)mjHL&fu-rMG<)kdY5&BACgF@H0+hkq9wSB5hQE#~DaisEsajx)b5wp%p5 zuW>Rg2V%-5h9#i`At5 zZ;0-{8Zok4*p?HfBtokgh2_alsKjxCBfU zW8-LE!Zv&$#lsNE$Z#HLI^vOHO2c)y(>R9nFjW&m{v9_=T)|^g`rBf3BG#E=RFkvGY(T*bB z^oKgq8VO&+#&(`Gld`K^eM7I=R>>e(6KSp97tZic z<#62{kbFD8pI;_hI4$Kjp=1DycvY{j)|o9#w4&wCZ*pT|PNhi}xI!c(z5WySClG&f zRXDwK7u6+yF2l>nIg>bYAAcd``kY1~k>}Z(N~*_XZw$()q!zPU%zY)G?-HIW^k#MD z>=FW_HCgK%V;jorUAhKDiFF>%VxADIxDzi}=bawPYP0Y#P;rI8$r7(AwAGT);@g{( zX&p|%Di4*sA7lKl>42-pZqB6BsQ9FU>0vE@Y8L_dGIi!B@Rgvd={a4u%}PcG(|_FWi?JFkoYDEYVWn!QJozELf^qrERf1Re zpO3HQ5dCsYPeR%GHTUTSXzhKAqnYfcoWv-38V4_UufiafkZ5v%wiwJNXh2?wa4$8t zw%$h|S#=@!#n__tCzUcr;VJdCC|ll%x;oDLWAE~s6SMlHD+@9O7W=lIVPY1@U4_v@ zI%g7}N10r{{2y<$Y+5U&H7McvPaTwBxiW9I{#$D^BkJ3VZv6= z3@)-fk(b%GwT_&xam{xp_$L`FOs_ESOmt4R{Cc|FL4^4WNmDs0Rkb}QIz>PeK}i#Z z2tpt_<4lP#Zi0BbG&+v+#=eZ>iP2{q0cYZ1=7V6O{%!M+nrf(D+30K!#zp1sF$h3+ zhtpEo_B{0M#>NMJIQ49U)WqRzu0a-H@UeYYt35b763R#(%KS14{bVCs)QbP4Ky-UdaksDnp zzIfSo-3D~tAJbWprOuCA&R#laMbp)FwJPni zvsG5anV<{*^eDF*G@N`ae{N=tb{$Tr15@t^4;f)qFI)HFk2nj72b^47?FR2YItR>N`OvnUC%h-xEq-b?WyqR@kmI!x7=D=`<(I}R4fW}DNqfL z9Lurp^5Dq0gta^N%n9RA%Z|0avpsNY+-6@#6cdLe#E5N`#eZ5iEJaGsFqwAyX6!iv_VkH9J4}tQQ6o=yei+G2sV}aHo-X zV1!uwe_LhFIc?sscFkYz4kwHl>vnU5m_dzM1^NeKvL0dGx8@jY9bcWOI-Icd;s`^8 zX}LTzcl#|0|6g^k?LhwY0MSoYY#InD|8GS8U$BP)m3`x`8)_d^HF>u|5rgv7REM5z z_qJnC&r1tNXrjT3rMTzq?JbxZb<9>~!376leFq%tk6Fz$G;UFE@bq;}fqWOoZ6lxy z;E!=_hbMN&h@LoB=c;%>CTY0c^6_S}%0y2el9EjR*lG4b>XhF8{sWoIP>Fnic~g-$uF4w3s`pox+nI?xGC;tL5Cm#uZeH()c|`EXS(E#s}`r4>h#s zu;9Y&;Q_PpbgnZ|on#T#d34>{TInm>1l#nZYY-lvJbCgGw73me$(srUnfn*uCzg90|&>Gt`p+8eFzt!EcHNLY&oW+xSQ@4I{PHiei$L@ z+S*d)nG4d`zfe$%#z!^YJn&36lU4EQvBVq01d2b_cJU85btZ`a?}YHb+V1ee$CL{2 zNAe6uS*2+r%H<9`^CHZCPg;RX!BtZ{XxB}YXmpQXVvOX%ak`D1S$JxEDVlp3JK^An zE%NpXiVm!+yHNHv_xfdyxODEW;nOVg3XP|egX6W1tSPqher&}k(KK$jLKGDPmc^0B1~2#zzu;<;qm|udjo98+)?)wRA7ff&k;V~6OOHD z-xXGc1O!YL@Q`jN%KTw;oWx6MCamnakExY87Qw4dUYvE86ARgf)EF7i;h*dO+jy#@#^MSpG>-S z9RUfZkWwk-YpfKasz-})u4;l}h+eIA%dGZ=3jx>NKP10o|ASTpxOSX{xIZ*xSw2%w z@5uW%SJu6?%s$?mbPupWjakvYQaL3%2qJxZeRLedHr_M#BuvMG0sOXklaLXC^VgWo z?ALhp$D$@@!+boR`sE=QwfeFSC~_y?c-L+zooN#ATU2#lwfE8#j*USt&KGqrjXKaC zo5I zF9ItsPl@MR9jC?_j5>uYc02V3{qz>Qjs%+XNy$`|KK;qK?%6Ct5t~sS`0^R-rn|Q| z{|WHxU8AQJJtwh9@r`++lqyd#Fbm3cHp)+WkXpEqG?krS`4hKw#D4#XV&N)gcXH{B z!ri{)B4@=6Z*N0W6A?&4^w$|RN}LRnlb-LNbL0#<v~tS{5dE&TKq~leMWW=3b>;k639WTxL?H zo{u71CT%^j!AhE_MBMYIOKnL6lt~D@xuKeP5nNAcN7KKG7|d^PZ@- z!oJAIoSnI_uw{_5b9{ddQh{T7MP9Y_a=xaPYrn(0k?xCculTTYDk~{H-^CF#_or~P zX>SgJ4!NUH@^Gs{EEA4hog2N3)sBxh@0u#*MpI1x?0b%lVOtH+5B-u<|K?_HE}v$F zV4hiLzPxrCfCxyXHq}N`EKm`Fo!IHi&~yy^ z|Bkv7Zwz1tMo}C$3v|3ZKLLiJvkO|!&ZdoxwDwdO56m3-$GD!D&kKlUpthKWW5zgxMcA@U ziPt#SBNR6npcH6XwB-V+Rc!Y{0x6hkB9FaToJGwhI2x$ou!Zd&4Gv?AsifhT$%S!& z3wu`OHT3F}gBb2RUyjcU*L@qjF}!O^*%}(v}b4Xlh>UH%VA9@ z(TwzkOC)5NL;hU*ZCm&(rSQO?Yc__dtiPIt5iO%3Ad0#MX;$ zoRTL#vERs^QKXJYd#aLgyK|B{T7g1_yDG7WqO$bb_{(e+@3scl#FaywJ9qAUymE+_ zS2gnZ4Myu@H>PDzXsIdHKoR=Pde@EpvbzgbIo`Am=XR7z?TG^JtA!Ven>#z*k zF7HhIxRDH&kI+1#;r1y~+P+yC0r7tVE9~xH z@U}yTy}6)fz`-nyl}f$pbeX`550%HwoM{!S*rsU6*WQC&!n@ShyK*{7>5x{I{DRia zCz>mdoKwt>laj0ksml|k{ED3#!{lL{@S5%D=!kmrieBF?Ke6IgX_s78zbuZU$_t3k zJWXvOEF=`Ksb0f_xwpQ(<{Rc4`acgulAG{IlGOC&9XgyFQy7@0_Q^8T+KC(RIhrqP>+>YPa~rXh>Q~ z;`T$Am3Vhi8pSK~3pcvcf4Ej!TucT^Y4iH41v-a;DG`qP-v$phTdg$bc)1^`X?|y@ zy-CX_e8O+K17N$bSA-uLwoe*rG~rL)lKZ~0N-if8n=>< zt$$YE604po@Kfwye_>%^#;@bs>_yJQ$JD4AEN|?zjttUcQ z3P0LH@NpIiG?XtFrL~9qKL+geYJD{F{8g@nO#eQ6ryX+4S%Q}~tBE(ilqwi+OS&yL zec29>RH@;foezx!o{MXLNbb%_9?)vB{9&=5Ze#J#bougOo!a&;Yr+6epF4|S6&QS~ z-DO_38fCDAy)Jor$a(VaO*f62bW*1qJE=HqDeq;O!5Ph9erB3;{UE+dK!3rsGQ#5A zKY=pX_i6!K`=g@^+FC3*RpbEMCMK@`Rm;44x8r=mQT+j!y`IO%Z-5D{Z~20bHlMnh z%=~N=$nLV$^;1RJpK1aZY{@J%byqwOd{XwOpPmi$iQKz)RXyqDOTLW5d)1V=T%l`Y ztLh`I-g@u8xL5=k;=Ovme>nCa(8=|E(mbTVL~{&Q_R1(nQbXdMR#>ykN^?DS%X9wB zaU9jbDu%<88kX4F(mWIpqeZKQ2HGhUUR7vTiezPE7-%KXt_~DJjW0)QhQJz_P|T8Um$TX6lYgx#v{Po&2G9CJ@So-)BKonz#G>Fm z{`5ypou9jL-G>^MuTf zc32G{L{B7c=+F)lDLCx;_DdIP7LiyZzxHj+ZMbLrA0DAxJ;_;#;n(>@eB z;)3e>ncISC`@F8U_#`n?@#?hyH3EeicVDwi^@v3BBaKdwM$-|ub`qdl^y*gaWD?m` z!no_2ER`qY{(O&GHp%~}JmYF_$BIk)G!9Ce=~69siG^J2IL>=@@N$ok55FB^nXe@nzy~GtQE-o_CN>ps( zsbo`?1c#5~Ecy$yOwybm@q7)d=!wNDsi>^eTVh7zO;UgO7Ouk@Z0xvqR&6W3r;)S# zIwZ>q@Fnv`xrQ0A%|Hptav^JA`tJA^%yYNbF{pePXx%EPIu2dRkW2eD?qo0`4Cg5# zJ&r#EnZ2c=d`=i|5O5Wp~jenUG zJiv5&{6=bKrdpaMuxa{X9UsICss222L=oK!S6jd@bkCwEm^YF?PTCgXtEpCpT^Mwi z!|>T}A@Gf&vnT7Btithras#k_tg_7o5b*Bmj}9fbnkLG=v;MFE`i?pr32!brZM6MQkdH`cq>nG2m8 z{hCb1wK^NP;=J1`KPznmqe|x{CU*!&k?e*&hg^DZ1@A9uJrX&fl7ZgAFmT>#T ziLVI&{+fS%9keUIc~4in8hDZ(#0-!I_`Z?iV>*qzQaDTmgO@6+s_36>AD@J_BMqBa z**ipLfsw<*too}Jk%EZJ=qe0^lMJ3$*stNqW~9~gF4c!B$E5tuLhhD}yxXdsY~Ee= zU7`24!j~|yvhv0$e!To=L+fxy5gWe0oq2;vkMHEJ#`xp60>O+uIvnc@qXq z>;`pHvxu%l1toZ!1TSw~@3)5c7sr`;n`y^d`44?@Vb5-TI%5_?8t037o(hiIg34uT|0(t8^Xf7aAz)WS(osY5;8f^_|iE?F48Ba zh^r;8^GNe(jzP0?eqa(+@P(M(DWX$b)z8=`GY?P$`W?nf-FQ zcFuc}t^+3n-9jkBd~NkI6p0)_`8~$4)&V#AR^C5(=Hw@*#jH!O2ng^&O@QTbN{1{5m;5=T^-7ks(vzkhfhs-wkBBinZ3BEmJ~UQ|R4Yg9 z^8}>%rjNoFZu$-m#DiKro@>rTCKAW=dOitVXt@IDY>#xS*(ar@$|4`_bE-_g zB^tSyn3#+#dr`s>{~JgURJV!D1s;G#fT5!RTc-8Gl&Ms+12*dJ-1X(DkY)7cy#L_T zK|yA5f-CHKNUlMbsy)DvvbPH^PjXjLf+Myic%mQPFdV~2!r&Z_b6G?yFW~rTT{{pN z8wu>F-HS+52^tBUAl-3RTW=+eh5&b<;bv&=&H1-|%&!4lF3=oYd2;KU>;zQ{At0D# z1dTNs7?l7w``iz`eX8G^n!E^p(k{j4OTwI0ru+^T7Qv;b^4jkw9GLF6aH!ihEFK#3 zw3RTg(hV!o@rh^s+a&A1;Je)QKocNcF-vkBv=M#!^3^Ma`ScHDPcP>e2en%&R`G8G z?1OvJ$6xMjqDw~(dBQ$wrXYy)E*(hF;NQ$QqnGi=MTZ315sB{g8ARyp*qRLArC2UnrNUiv(uW( z^=)lp(Jqa44!@S}jVu7$#VY7V5^qAHQ!9Ly0|kJBG!e>7fU8~Fv);Q3R%KiL0<|w*~%e{Juu7E=C&vY%=yW>7`@)pxQ4mkzC861J8=AyGnv)pT1@b zqDxFYtnLuWysD@lHnPC>;HfkSbyzlHGW7l-o*_mn2-g)N0%*0o0KqAItUzr(UcnZ6 zN*=V(_?y?c+zMjYgb8UdWCPKOS>1nvTp4-PW0&`6A}9g+PB`GT#^u`mP)L;0E=Ww( zO8I(M-5&RK@ex}Xc;P#HkvAlE?RscAV7Nr;EFlJif3r{D0Eid_Ylb++&P*r%(F@cy zH+v(^8u-x}dYP@W1;BKI*nAO+EPe9i8XY1Sa|J=C0QQN5574X$nG@##3mH8{BCLkS zcI=_PptHGOula+vArt(&_0=3KG$cF`X6jtVon_p|4T^|I&qkq4ROgR%7Ih0fA?=C; zx)XL?GBMROO*ziVZR)j#cj;}bn?1YEJUocc1Tm?qu8#cFeMalg*?jp_T`kDK-LQ#v zANv=VZYB*~N#OZN&OK9oCNV?mJhcZ6h<_6kx!K%xSjsy^xWAFo9i5ROV0f}2ais46TTh&@x1DZlP{h2ofWiYj zNw6lfZybT(1~`&%3KR7P!DcC}qLP~X8q$JDDK{I~xdN z8N6MNe|;rEmNkX??kTkSkhnq-`>1J1Z6Rcpk9Ze2=ePKrW|%#)SMu2&clWHna;1=8 z@k~i18?3oaM?-Rc;%ko^KyP6~CQ{>C2h@rg+@GIb+Cx1qRvzajMFK4(P>Y)b=0&RdeVwMW5dr0{Kc-XiK>YMFokIv}*i z%OByXYaU1nu<_U#!_f>G$b@mrumip}wwc|iO2PW>pd9+J_zO4Zcdtc4d2x=5Inc}< zzEXvpQ%@0>dgI2s?)Otp{fBmN1fFs1fSUc)9#v=%@O-afa{suDryG1o{AQ;241 zpRVfrv8lrK{^QmiSCLJj%qVl=kJ;bCDH7TssXb}Uy6)|@E6_8upRh+xzSN>5j*=^m zQTm9#0Qo>q(_ZMBhb+>f#hVhPv)cBZbhk!a&$B*TcZ(1`zs?&`p32KD+4np}ZeZFO zTnD?_eg=h%aAS5-(!Ea;i_1h*a;)KY@;xK80sGi#z1A*Bny=w3eS{|!sBH;>$2LQN z9k*Ec_U(~GSBM*>0M2)d4c@(Qdz?)&z$)~MQetlR&#tMOZ0yL^a20>G zBR59Og|uWm)dy*m&QEE6ZS?OJsrkSZ@nA^Rl{rkr%e;D>nTpLJEa-~`hvF}}-?Iq! z?dOirVP3{Im}|A~HLtviEKy2OGf>?nf~ye05%7*3;pk8n<_`l>jje$ao~a2<)1F0*jLD$hyHyg60(@Ukn!OP338Uc7{wCbz#4c*Lm(kZ^;F zNAgvY2Ynj0W6A<|geUsiZrMn#%z7L&oeIk(7BYrcnrWvNS|M1&!X*Y%EO+^d_!(NE%60c9%h;fQ0RvfnCM-*xoP+)Ll%>%<@U65^MU8W)$RB7TkQG z(zpDndG&8O|KC@Ck2-?;q+odXYn_7dVGg=2?MF@p=o-S6mzx^w z-aGrYUF@s})L9ttl&snO{d*Fn%BSp5qyyWmlS8?SB&zU7Y-G}J&Swz16VSCqk$jy~ z_2&*>&7?IPUtIo{WAj4wy&@FmJ?c+hB`2%!O0F(V=H6B!#uK0!lo)aQ`7=5fBNjQ= zKE__f-*F&SL<9x^96P4R)YaZ6en9?SNffj{_?{D&5l;rt;bOX59s4qOmcg`q9m*qi zCMF(cuGE(;$ZXg+LFqv^>3slo7!erU{@#;@*8Hb=g z+dO>{v2Dm?@xVF;a8la!@pQ8jqI`&O^PvV?%BxL;!MFSH;U?FE>b=G>gLnR+Sz|w9 zek8f7ZtBJM*xl?g4NLyT5xGP6;oF7b@+QI$&p?(}PhNydHhx#i*ToAynrmXA+5n4+ zj-Lgk-G%jZwW&(rSQrR}_wQ8tc@{*%Ahf7eo0BCKLTALk$31_dbMG2LNNn6AOO4XG zzQ`iu5d@gw%x$KeK=%;Hu(Z-dgoQQIR#g(tpQ#!z@tv^#N!0pXjhbrf6LuDi8AHlU z10;yku77rs=o=NBGNE!Gxe=_fEr>$7=PqM!*GE)SFYo0-LY6a(u@)~3T6)Gi(GJ;E z1mu!TQYya?VK24u%|k@q(GKAUD0JcnkJ|S(X@1D6Xw6<~qx9gr%I(l`9)|Pykp<1* zD4%%xrt1g(#ryv4*KmXU(A5i$t|_=6hflteG1F9J%)j3PMgbA!VhCgM zHAHhOi(q~7lP7>0v2Ub$ps`*OOpB$OGO7v4VRE9hl$3Tqyl}(4D%p_4#lsWmkv~y$ z=+Gg*MF}M2y;DbHo|r{`XCb;rfZ{h8z(Dzw-*xBr zuQbt}3R$+9h-}2uQQO}B5MfDN-?nWehit1`{WYYsi!;MV8Ddj_1KueG5!PmQ2O-`b zyG>37<69jZ?W6|S1^WT`mhjq`Z#6Q40s=$`J0-Xq4(SQf6K6zA2==#`W$qNMK;`uW zI9qq_w$w(a4<{`1(?Bo!A<2WMBt~ZOHN>teErKB^Y2jOXjzBZ?(#D(>KYY7kPz`Kw?mDfqZ*H zh+E>e?H#~iapwl5xy@wYb)zq8sH=yJxjF|^(5o><5;qQ01)i#Qp8xWHtbKPl)_woJ zhLjX4Q5i*KRH9^LG(@3gS4Jg??48*rM1?4s8QB@xE>y_gqpUKrNyZhI@jE}dpYMG? z-{b!N_v?6$=eeKbPF>gM^B%9)`8vlR!T}z@BmPYuO$VELn}ntZ)S3@jhREU_4UCS8 zICuYtD6?%aRfO~3O;c0#y)iJK0v@1KIGkLNq`6eKC-mlVExb;+*ASsA zP^ZBjIkE-LkME4X2m_8b>I9?!@b=Dn=KX}03t3E){d$Bk>GGb9cOs(fQe<=z3E7wmscp#KnR_Wht1=a7DF|{4la%3L7#tnHx*oi*8Y#O3}hgW z6dp6r)-DL__=3AYf~z8JeyFP=b#BNR*dY*ntpXP|oL(wgX?Osd@2;$PA*dT-&C+6g zxCgvt<)v71FeF37aTXbQ{rJ^hn9&%wXE72X9Sh9N%mVyH%C=wn_tk1IL6p#{HkAk) z0ABr23XDu9gZ^Xk!0YR>I2qbQ=~{C6FbX3Rj_bLxa6jN!{OKlU^}{PY4~#b_a&A|Z zZQ7q2+mx@$HS2Op`;;imly~D@8c@q&ZX!e`xO zA?6$`<5n#L_pn2VP62@cGZzAl30hHNcmpnPVi<3|nkK9V){mdv?{(&o+P_LqxuYPx zX*(0f_rdtEl_UdW)EB6)nl}(8byb8OlJRQQbFeU2T^U_`cFDiW_&-IkvWHAZLc8j; zmuS|Lo-Z3u)NT1W?YMOyX-QXO)fdz47s~%#iwVgx=e38dip=|}Y#Z=MZqmN1X`mNh z92wQU0q+RDe=Vel-{-+XvQ@KlE}DOcKOLX+%nJ3%;GAK?BjYcR(Wrl|9+tO5_xLr{ zt2t&f9e@2SBm6gVhP$#Spzo9O+w^bqK;m^p-yzi1gc5enu`=z?Ap)0x2tH03xrhCB zE>%yt&Yb%<3MFy=oLP|)C%8~_500(y#IW}KTvk?QyP0a zTUJm+E0Glhf|y}8JdfMXa7HXa6A=NiH;Mu0k zoC{URtJ;ufCZ^0dDT1Cm3;mH%EAv4n2l+lT~>!R6{c-)w_f@4&wE==cY0<0@AN?7 z{j3|Iua?~nZ5s6Jeutr=M)KeC-{kwRqgKP+n;sLtV|Uv1vggL4cmG;8m;SE}`{&=M ze(?J*4~gZkiS=j-KIR;SA_Scp+7bBSQ-RD-C`y{xfP4h@t)BWHC83BkDR(9^WCjsH4WmCZTNV9DhG&ry~TuI)5VJzN0Sn zSVTR9zvrZdg%CR9dS@mxR@!@aKmxl8ku@Ou@1({BR5bg8eE_Es^4b(vj480l_v(^Z zaZRl&4X@Ly`;T(EnR|O__afABKG1`rNJX?I6zH5 zYHB+6phRvb!%>v~FdoCIL7yDi@`>a)5bmb@ss_1Yu(~_c64hD&{+N%{OzVR&rlA@| zeHRIf?g!U8Q1d>+tnaTVgVULUn;u_5o!eg%+Tvvc<`DtW>NmO!dcuu>t?!(BVq zc5qC$cbVUv;=1GlcztNi5kkQY&BLA2p2w7I7_EDd-NzNTTxrX9%-nJ~RqcjEZG;jMdIU>wygo1l z=DB)>c%p*hoqG#h+iovxGqmd1^Lq@zGro0803|q)TSC^zo7_Eic|;IEJ5pUfIUm(z zyH@!}o&OH4G z?u>JiI>#8GMi%_E;l<$lLGL4DwWEp_XIGXa*FemtxWED@XUptE6ljE$9Wm2|UHi)y zZUs&KL=1u{?btbMu3k5bcaz+7`)+2eG7>_|z@iehmN{rS0(lYbx9#~!py^<;Xwy$? zv40aq_~q^WDvMW&G-{db54KgEhhgu#h$Re`qm_95AokQoBhEZ2g7E-4KCqXmSeBAn zzI+kqCLLku;Q#k3B@-yQ53(JyR>)pJV~+Ts@6I4rjCABOW9}=I?h2D@Wuz~~9yd4~ z1Oi25A70_9-J9%m31r9yYr&#xGp>wX+ivUAy$AgP+K$o<)nz^veU{wDX%~PMf$Mh+ z&GC2AG*Te5wQ%y(=O8@qfphetmW})8&)H&NSYDeAcVn*~A*0^*+F`Cru*HFjAfc&! z6k7$)U_yxxA?Y=p1tL-j#46)v(9G^kYk8s z4H0f6H8|ektG_(u-R%CnM1gQl`Cq?$fiNqmamWHG02%M3jt)C6Ih@28zTIQibz%g; z4<8P>Tr-umwbr>=? zX@HM*17TM(F#Nnm>L(hBzWVz5z_#*uFNmUmA@7772WKGOFQMgo@Cp--S1-!96Ber9 zp4fLnosK9a^HMguZy-~$Y};0ZUOe*WIj~1;Y~DAT+B6Y|SyrecWCno?TgSEFX)jl& zZlhK}IQnlsZ<(!yP-NnZQGLTZ2Vp|l7^)LIOeDmI2ZrWDZGBQiYO=^>k&b!&;anV$~*aw>WVO7IXkSyxk(P3UdP!3qnum`ynC+#4~ zj?Szb95nQ59^#e8hhedM6?p_68ECK&Xi}U&8)ym$_SMm#Rx<)LVY6$$i+w`iN0`jH z0W#gvy4q#OFBO`JUOfgDdi{8TO&L(r;IYBGx30quGO%_oJWr4@5MhVLGtxP}|Hz+^ zxQ|VoD${_CZ~pMcq@SP&3Gu*^4=#P z08Zi2$_Xa3#p<%MBJ6;BnO!bB!1D%7f$B-rsVmqRHu_gZy2N8cw{3Krs61G6ssgtQ zp#mBGH0vw@Y*oyndo>kg_tK`+TCcWa*?S?nW7W~hY(ID22JkZ`5R`nX%L+a+!Rx|( zToQ9#QVR|;MEz@2pYKua_ch?r^-S=x$7O2n#VQpu|3(Ez4!Y19gST;NU}+OD;xIr} zo^KddTmc(gQ?c20EepVJ zdh3n|92S$$SUI3%HEb_hYNf0 zd3WWi>%zrO=3lO*u(-UvNM{MYDK>1eB$>#$oWq^iFm)#H)*L?hqvJcTal}$k?JAaX zbFAv_!rKC9@k(4t+VwH2$b;;Ko7u!IWm8zq_G^K}Z+cVc1>Rj%M#_vUcmm6DJhvOc z)uK}wR3mj{nuXpl23wnWQh*s=O+Fu#R@ZPvP(K5yL0j>PR_m9ZLNRc3 zLLV$Jc3WsUj&A3jiJkE9O$xtY`X{TK)1VrLu$r|ANYl2Cbc}-ls z@Pew2PEu?=;f#=*Xx|>8xk8?Zf`3M>n2y;Gj4?kQyT!Emkj_DdH^6N3y8^SMt5=_YE4RmzZGgOx7 zZQNUsOUKrQBOF%fLh0j}&hjelA9o`V?^WZ(OYK<1iRYnDD9AN|lqS6#_X-(T#Q>x@ zb?4gU938SGx!p>62Rw<90kx{?@KDPB>K!Rb^v4(o=1K8;XRvP1Q0`2W$67xA;RWcZ zctPN@0`nlvqL~xkcm@dYy!VDpGaVHkNHuU@5Yc~iiD%B)+nqNUs310aI;eNpdubhe z%cOpMS&rQKH@u|$9TB|QshQaP;MfXG!|~9!e=W$NRVQZ8-*tfhgTJ1D{q*-y7$)|PC_igcSFV5CMS2XG;6mFPo36r0Y!gYoqgfLz#1<>{2&$-4$d54Juf8)G zt`U$sqV$x5aRewpo5m=0@*HY=3l?VD49DsKsJPBD7sIciIY9*pbeMGz-UMiiG0qlg zds{kZRU;K(-iZdX7316Vz3O+*q>qDDv0L&i7x|^JIERCsvdlRhzAaRM!~;k7p9;dl z`K@z8jAn_a;h#kaX7gmA&v4dM=?J-?Tk*Wxy#m zO=Y(&zEK;w=bWT5mlN-!(X6_W);<3zuAFx~6kR87ydX`coqZH5Jji!XC2Dt#wYUR1 zMb<~Z8v9~BWyHR5MQ)3ZBm8T#*_QCZmHdl~4=<&<|ziTA}dF$z}b+`Q=n! z?hl}aO$D7wmgizsG)~%p)?8C1i(LrtcJ=)tFLj)M`!&&ymkQ#fC`oc9SBtaW?o=Pg~?C?d)TT8&E8 zg@yY&UT*c6cTkq`;cf6*5M2Ae%1-=Wzf^kZ-$zr756M1z`;{v!(bzXM)GSMTs8AlI z-R@1#?$He$XhzT?&rv>CF;#}u=m$?S98aK%-6&NSZ@Mkk_+_OH~`h5_Fb6uQ~$K7}Xt=a44audYE=J?FvQHb~8re0XQ3K#lMj2tUSg% zO=|qk&*d-P=e*Zox6`#lS8nuff2GtdvdJe$(05%!Z1Op-@5gNz8r_MYwA3KwO;6-R zu3mog{XCadszie6A*GEsDfSWHhm9}3H}b#c3xu>e|Y}m%1Ou;k*>nj z#jW^)<*QHG^?L{`RE-W+B6r-*TolsD^?>K{Yrn%Io%xp$E9=pN@hDTvDMdxk?(%2Y=na-u^tFbfOCauJRr0QLWN&VysxVaE5IWfZObg3|GsrLkjAS@$_S^0 z+5_n)l_v&w7Vs3?4p*(1m^%P2~^-{ zV*}|`OW!1IjBSw_8VaN$;>J%6W0T(}Zac@uCblNEk;d;uc#Vc}p~VqNPv3L~NPKpL z0>iJ=Iic`a&cH*3J)Y0P{3VXQG8{6xBd2u8*l*p?`O7)6CoT|kMM(dL4UCQVj;;EM zsRuDif;s@wqwYtqcpAVlA~I=D^6r6Q5GGA{H@NcvjD14)uz{Mtan~zo4vp?9%EjJ4 zKD2XCl{GD;UG%a{?{A==mdet)Y=L$-wrcu8VeKYGF<+@`;{iI2>7pr^-+An=(qM?ZfJb5!sg|Ak~{PF0xyDGCh!Sna`T)SvvuU8UKMF z&Tcj@g&5iIayE{4Cknrz1l~gK2Rc|RX)rYXODIOP*=uIk0cis$vUpzGIWJpb{lQoa z2Xc!M!qoHVn=Cv4KpYpd>|KjVF|(*slwBTxh#%xzDP5r4VR*Rj{Sloucqd-Ee7O!L zW8&w0_o*L27BU_byulFl40Ay^K`MuYdWFQxI>(sm0qMZ4P7pVhDtsR@i{Pz4YU=qL|7|EsU|KxT;Lin6i zGw$Y8{DSJXzP!&wdCUMvdTu6$Ep~0*0tvylpC&B`^ z*Q?<}TWC-3T7mGqDO8xH8(iZ*)@^<%x=HBLvD^HFu`q^06FRc9Tx)=y6Gp~_^I2UD z$F^-3_U_1*kKtsYi$EfvMRn8Ud)_Uy-w~g6VKqv7jh&2>>Lr9bfJsa z9 z&?FgTxs`4xecQ_t&wr>+^}k%n|2oU+w(zVy-d-yo9ZzDyB$k~nfF?Sk?rnF``IPRR zVRUDw$z%b3T676#C$_z$3;ncyGxtX%w*x5$bSGvzqFG5}QT)_r=UUXFn^A1pa3}<5 z%%3OwNFI2*Q4)Z;BK@=uB=L+PVjzi3k#X3FguaaZdH(S3&6U37iy2Xynu8U>2L^Y` z$aMY80K2im)@p;=#x!JX^wc{J$TXmeN7)Pj6rlOFH7uWK4RAmK`zVF0uSijplDc@v z*k5?2O4?%Z4i30|zf4rPO}K%i&Uc2Kh5P3TI6lA`6Z|hvSVbJAb;nLz?p4P*ur|;h z@-3O)g;MpySps^Z948W0=txA=)?rWrJ+~dgZJ9&f_Sez@^-y&$d3xIL2jTQ^Qg=nq zWGM|%J*uqs~ zGY=GQnguTT*T%A(W`$825SebRt%3DE2G%wCSD%=Bg}X+@DVsE zED%q+I_B$uyDV{I2@G4qnGX1F5`+dJj>qASxDS!u#535VwsaW)mRP5N3vGkO6tR%r%5Y6cp%+`Vm3Qjg1e0uMDkW#g~erDQQ}0=;+vI zvM1S_kKO0@x3s+DemUFyBzVK+7mMWZRI(UabkO;@&P3ry?Q+Yzc zy*0XTcW8+@jvC3G@CHg_aZaVHt>HAC7@)#4(?@*Ec2m3dhKG%fjjhu#I6Q<1wex#J zF{!)pRBqAvGkESqv|{}J3WBlhp+7sH%pmMm{Ns=p9d9v&zlW6kM42ls$ZX04&=-5$JKmk(V(ig(2l_UaZB{7lG609 z@fIohA=+3fJg>+jhY?4MqYi+>uEa@){MKx%m~a=yRo)I(Nf5}x!lOH9(+NGKt4;>1 zNj9Sw{R74CKe7Z2s6)f#MQ*_ zT${6GEBsOk(vIQ|yRJl*0vJpfRi>cBG%W@NsCk16WX7yw<~vPKmf0)uY-Zi)*1cWG zvYMy8=9%trlI~%0r2~xGIG&dzVP=yP47-mM|X-o zzJjAwU4wOX3CHfOJ`|Kwkb)N4+pK>!zhZ0McI>Da5ZZqAa8T4wGF(%;rA?SBAv{-g{+-@2jMT-LrJI|Gp=16$FT~; z=kbv}8mg){`9sfa^(>CaGAoHM=UtLkg|6^ww?eR@2tt(k_v23Bw;IwLz!0!Bn8+H!=r&oCSwNNF z%uz!lfb+F8+LR9R+f|8hNin_C3IP-;lY4R%JrNE@`AN)xD(h12=|_M>scEs$k!A7G zyesAeL{CnnCZm&>+*FS4+v>@4G$(7(6K4WX zLV4UqEp>JEXs40ER0svKoZoJ2Ue(iLBsoMmp1|=QQxK2EGlxnLwi@C%mhI#PkH6M&J%r=-XBC$kHTb^=Eb3s0PMo2A&{zzS_CSIC0uF$Qnp^LCaB?xd zS}{r%vN0EIXzZ6~Yi?A5FAHoFffYw!l0VvX0u~3|xd|cgE-EIgK)P~3mDbDW!mJ&f zGUJcPUA}bbfTZO7QkvaTom#UUX+VZ1Gh|J+Nl%iyp}2DE8+}pZ`d-Z zKP4N-{KR8V^eEC;bBZZ6qPbs=94R|{>ep)f{ASCSZwC2gqP{M}_J$!D> z9i4z9V_9#)utXoHdS^yQN7wu`kG)+?;Xi!)SMR-~HBiDTL;hA5u0k4|Kh&&S?!N*CB@Fp8%)V&l0=p)c=k2h%&Y zv-h2^I)!=YdI^fssa3NuyFG9d{x$*Mb*6MoVZM$_WNVoot)VTa$V+~&U2OXLK9bB>_8<5D&+DZ6nD9HQ zbnI?A$uEvdGa;+|f~#PWtwtQbf*ECiU3m_s8<&1YxW;k`P&zGdE700hfhJrTsu_`|k{NZMA)8_IAD+t5THm1@J3$$5GM?+Gl5FGIZTU_~Jzd58?qqv$r8@`*}0L za^`bpVA8C;JUwG+POcrnGjD>mor?=@MG%ThZ5zOYt%IR-dm6 zTU6}J`~;A1{k=pyY$#qB&}+>a!dU%gf@VrYm&M|IzYGWZrDtbj^bm%Ta;4~As!j&s z;aK@vJgr8bw6rkJoL-SQe^7PJ=I5uPlvC^{y6>e(ntwZbvELAV8g+vyCKQZPosm_+ zM??XE{u-5Mzr7oVT5bJOmra`xxBm51OvCJzs~S6#3#?vO^bu4Bj1L(>a}Yv3lQrFZ zdHo#PBaNTNlJ-BZ?7f&8*5h|IozjdraogO*t1VU@WW%`HP%Hus49?Vt}vfLw3Zf@?$`18C1^~BD*iuHZ{J=fsosMNJsDN|CK%-*5aQZDpWp!DQC&w*AO*TvtZGGi%9=ZG%Zk@VZK5k2Sgsc`yBICXr+S1}s6ybil1iO<^oBgo7f5F4r2 z=Q`bc%cS?+25QdE3t?nC1f)ubeh1BdqEY2sG2Ep1Wx}xi&so54Tr8Fxn9yx&C%qKTKk!abp^*x z@^8_eD_eY)j#3V`mpW!#I+w3%IcJa*&sOJBcwVK9@jpk^mDTN*75k`1Yg}g1^3}t! zwJ+%E>dsUUuAuwuk7Xmm9J;3Z;a}R}@5h+Z@ORD8y|78Xmu5HK*;?T0O6t(iOrfk_ z!bIUpQQlqE)8arSzEo`V2cUJ2N(GrC#%&piH8voFzz#F@$|bX1weBAR26BDQnKcP< z(Z-Jgt|_)7O$MjVFfmeJjYzV^85}x{pW4Ua1tqm7k&nquQD=P%{+t&IMRN8i{<~lI z8m?J)KqD^}p8t$fi=P{DB%8>;zWul$`O1VjuS+(`u`h|V#Yf+@KXw=xMJ0+{7AC=L zpGd=o=;^m~tu0b*Sdl#;17~p67tB`_>??N>ptqF~L@jH9SH!;JVYiWmv)W^P zkP0^*&-;8Gp%o_*9s4@Kx6@3!ai*Y2wI%VghWVKn4oOU|E~uHwv$ISVKk{s--x9|H zmTB*M(#^Vvd$zjd3$ZoDk!Kvc{JCQ|oF-&@&lX5=Ixn@#nJ*<-pXpyU88rO{!ahnzRL5)?1M)y>Y`ihfr8Tm zKfhu2_QF(*jCSq*>GAMx!(yhLzQRw(!_X94P)0LL@o*zjQYI2sc}Go=xkOInFMJn! zG)A(Wa^sF!`tEnj&8FZ$`#+1BLgJkHio*y?i35B%A28}*VdsVaX(c&3?!BC`m*Wba z%%EMHcGJ5Y;=STbhk@EH*eAG)O|CS=Ka%)$?TU-?u3<~f1~eU!kf7B$JeJsfMfUsp zr4I5%6_tkmis<5|I*0WSHf9n! zfNe$Tl<@)?S2o+=k4YxUV1)g*n4pk zn75k79Xao79OJ;kB)&U3LxLE_INpB>l+hkd4M#VDm&`87RixcK z#4q~paQm@Q_)dSqX{_+*I*dn&-v!$Y+Unt>aZb!j6bqzZNWJ)yX{Nh4zT2htjcA|u z0;Uf{bP2cX^((w3Kb@w2TrTjwFZg2PJb7l-I`br!PBG#C9E?%-4*k5m z&rWqa;N~e;KR!y$kO8LtyI9cW!n=I57|#V&>;lfl^aw6?3(h5Ux9USUB$d&kQC#HS z8BdSdM0$-glSZLp`TXo8VX#bntN?d%s=y*tI4L#E7P)RmbBE(4ZhU%K{wj+9fuG9g z;CkKP$7Q#uvltp1k1*a~t(+kC48nbNw`lF@({f`p;HR$+l_^ND=m2k0^7ps<5MS5# zOEo&TDZbdtcdPA9F$!c(PTFck@qWJGv!&>4<@Lo3cQ5}j^F18Q?Qd|^=c_kDjNpSg z`OMl)Q$GZBXBBXgL|>uwY29aJ1SxS;#7hIWfjO-GU!RU?AnH*+$x>~9KHNFiFnBm| zI0@TGO8O%X(g@IH6Aa{a$yZ`)k}X5ih_h!nF>^+u06Se?zn3)j2JLFoHjHw8^5ptkbfyr*WqRyoz7#Iw0}1eSA=jaqH z8)quoH-_ zk)WUZ;lQffLeB7gAeblY{_zefDk_^H`0#)v{>A(G_G~LhrQzi6EByZa7r7I&gq2;N zI~Hg>97%OfScmf^dIKsf`3;MP%z(@HBO?G>+JC@`vkre#p$Xm z@$c0}@nGs28~y0TFjTiYS`(dyISv~fmDqnyH$jz6KRR=R`0|)9uVAZiCU-Cswe)1R z2HYvI8}&^x0Z$Nh_v*^$Q{x9){9n8LEZ#hUZOuNjut)9W?exJ#?HEU<5`rMSM8{ZG;x*r;efP80ehmh#VV$~cMT@7CPGaPWY%jl3jvxsOs4!Q)ObVZmkByHiTp zJ)t5D&^AnEwd=fXaEuZg6H>n9jOTdoHpjw%{N^1#V>P*!&V!1&{5QcN_ynVfuV%H` zuYa0N*!h1a-S7~&NpHa2oXoaxwQSJt?9%6V>|9=}|G7}kW1--|i6W@+F)o%{^;)}@=WMmZWuvRG;CJwJ}564lYzxhu;fd1p~F+w#`Jy@bgdocImO$WW)rvqaNtQt4QiOx^9B`Q_7H?rk7?22nf(fs(08t{6hRin7Ht^ zy5R4D;8Gy^T&Q#y)#dCQA7|a7;v${Wj;hz<2a#D6SP+w|!N*!DB^Brx`J1I8Hbixd z#XsJDFJ;J%e5(gD%Eu5|Y*D37!14_;BZ-5FIoZ;Al#&bG&+h?wnOCkaLd7g1N~OVs z)I+PH|8QmQhf=`co@g|R3EE4tvLCvo60dC*Z6=x1Vx{P;Qqc7g--#rlg)x57WZ3IT zjWO}0xHu2o6vQAJUAH6z2p3Z=Rj`8hVj_&}H*H()LeRAB0T~fic(eT_a1NlA=892z zS>Mw>9dpYoC+;(tpOIILfm>;qha}|;#a*3c-R5Oo93?co%2!d{s(mue)x$?OxSgI# z>y&BEV6@Y84cwxf{2Ngu{|MkydztOn)JJRtY?vOR(bSA?bSUn6wq|>^xMlCDV~*)+ zJzio~1!iB<`M?4VVOP5hvAA1bTCQM6eBVh~D1EMdo~xB&* zz&$P$?f!j1RdNOf{TK7s$^=df(#i%W0sta9W|EYjV78q$F4vV;KTfQ4CR+(V7aR!4 zO~#rk_81>b6AE<1%HU4He_h@7#&U!8-dx=seN)Z{7DgBMa`3-Yx>4vnnB(I(EHB<~ z7S=E3TP6#5K;v{(pC#INaq5>&wV;P5eFpmT$dJ!?8IYC8A?1V!XxUEiBKe_ zelfmSl!Y>qy{M;dyVKCzeidBWwf!K*dfR`V_{gzne(duE28Snpz1&fEF!EBhk1`7F z)VL9^Qd ze_FEuT4&~4CMIl+i{%^kkGEwC4u%glXt@5O=Z>kFE9_-)oZvofM_>IlF!IQM-WL^B ze;gh%qbnoFmGskqI@Huet}_Mxe$vT*kj-_W>E`X(hr2pjkY%#|Yq46!e$`mjxUigl zqA8A%Sui9a5>MsV*YU-Lu*AfD__oBbNM`iKWz#{M(Bh_7xo%vPU-voY!)iw9VxXbG zLrXyw4~$Up;xKXl;L<*F&3U8>Y6jY`fIXg7^p#)A#Ggf6&f1I9ExH`$uI$cJb&+n@ zRkQK**MG$oG-ek}JX5vfZVkDe(@8D?Ur=lL81_9VV;0oWs_o3SGAKH@3wLC?VT0U= zrdtK#P};|Zb?52>%D<{lh)gbwyB2g2jjs=Fa36nCs{~XuyEsDI2QzzuN<;RFk5>Nwz7 zP}Eds;+u91J9M0Q1b%|*v4ObcIDJgW_uiC2{@KDK@T{~5S@x*ak&lKL?-Twpnz^;LtzHGyv714Ut`Y8!>+gO)vO_9bS4U|7jdQPs-S>SM;Obrb z_qscvurK(M1YKtQ=%D>%qAvXxm(Ha{GIKiUW-`X5s{DS+-dLDvopu&St+GC=NKk*8gB~i_8(&*n#YZVkvTa!>w8&U`Y5U6$UCCsXOY7 z8ZcNL6-ruo$hb6@yp$tG&O*GY=cQWwJMF>&wh^Grfzh>^XOD*}}&TksDc4(bb zWz})+eI~Ea8H&!6=wl(@@NvKE#+BQCyFYlgfasf7HWd4_*D&>UwrGbpp^Gi(#d7J_ z#^l0bbpU9Mj`?K#q_VJcfD?tyOQ)LL7s)bUQve72i!%R!`Ep z$Y6ZS(C~4aS%DPBb(>*J^8_Usp`9k8J;2diWWQSUETNmlf+rBjfC>ZY63OXyWW!*f zsF_YB(8v-W4h~?*9>hol43Mu}SuM4-=YKf_NjcgU*?P8I&Ucu;sLQNfR6o{c3OIse z>31nnoj3(fqiW;-LbjIBwyeyhxt>du97HdQdVtWze1d@DqWMPjL)}Er=0p3)uER!y zxYbdYgwVgMekC$|Z|zZ--SR>jaoL<6CVhgKhC?yFhX)rX=KYmECxKI3kRd^cr) z=R)1niL)1Tb|RRw^o(f7mgKx&3arvjSz$FW=pe9Jr>Cgwo%7L-1|BxKgz%u;mi|$k zM6@Btw1r<*Ueu+WzKEa%AIcnXMFOgYF~l+4;1Q)PrX4vVGN#%&$NP)*>`}Ndy?z5U zD^TQ?`m)vuSQ7ktq(VZ;9d^3XN*9w*C)b8rOGx$hNA~qGE4a|OyZ`RFb!$zQ2uuEd zA6+R+`L;SvzZ`vL0!iP?N_)<^^pmdvHJ~eV!Fy9-ctJ$|f|@v&ka?N)Hw$e1e{R&| zAWobI579!>dgqGuvRFi4x?~ZROyC**6c4gmIhve`p?*ZP>JdwZw3VFZhnf|D<2QG8 zi;+}R7{7sCcX4S#FS!LZm2=W%G)bt_1jLh7ZA!-|n%S0pPak+7qmBbhPjIa`Vtco& z4pbPVZS<#otA-mQ$7c8%2+Y(Cjyrtu7ytgiOk%(#B!4qKUJx~Qip#=WnsjH81h%RB z_(5FkSY&9S$hXIBmv4nz5m~8SUuI%pfc}jY(<)imE0=lPA>I{QvCn;$QXw+hZG_+g z_Sglzizouh3~E7#kb3=5I^jn3>n~iI?OiOucgb(ReVO*+WB-T-wl&A*7RlpA0IIm> zMc+Wc(oDTxcISjQfDN<;^6zG9mKFO0qi2H-Cx#)Wp?4R1_+3LIBM-deFdNgX?~m9UP?L6y zJ4D@6i#qNYg+WKLo{!X45s^N%AsCqYU_yTg3G<&`?rcW;NZ>MvHz~ig2bUr7B;l5n zzeXi3N#a1t({9JJ&!K0l9-_MtI6!g@e?}N81sB=D-~7Y zZT$`or`WLknQ`d=>i{aME2k2HpM-UnW3g^tZ%(zl&n!f0yWM!#Ma#|xJ15)EapFxa zEzGKNM=;(fqqWgS0YYSrmSrlcaY8TagOcq>8z9IrtDt<7-1g~mlq%OSb;Gqc&xwO; zJ30)avC6{PqqwFy=f!wZranbt2CaTEVM5W~g^~qXG48+tk)3))R+dx)gVp-Msi&$3 zSru@N6K3kAc-kDO>;M|!7LmA78OVqe*JFoi)-DJXn+-%NmGwa2OCc~@ICz%A^kotB zohmau-sG3KtAXRm=E0ziy8m6HO9f!l9whJ(!{vKn-v}srZfY>!C6kZzC`Z@ses(5? zwkow_i4IpR3UZYK4_rOPpBIvtG&zambIO6fGEj(X$qpnyaME&0ZL4Qq4Q>xj8W!#r zCEqY>E5|Jf*;jw)d)QKW5|fmg1x$p9!-~|Q#%6g)tW9VyDKod^9lmi3Wp7Yb2?jI1 zU1qv^P%ZRC1?ceGyU58Zy*k7PJAw1&N5Uk271*qRoo}MJ%w9} z1Nu7-M^f%Zt`lF0l2vM#{HYgDx$v5QZnj)a_00)7>}>$nyVz04-#JcA)qkHT<>t(! z7?Sn7287IbKW+pDmf|$~%gON&wIS7-2*=NOF;DK(viNKz_&NkU)W)Tj^1Kt5A2$Ti zlcPX&rgv;-cV7^c+z~q8`6jA=p{_je6^V0j*PUG=JcAqmzHz6bP(0zR{I#@BY$bC< zW1wgEBnKZ`NNdxKHS4&&&7I486T!0IDb~>1s>yJO=9Dt5#}`q0ZB0+kpZOY@D}56+ z0=vUNxDyy`YsGl*u(qydh3o}4q}}I?&?5`B^Iv*$6{>?AzA&xyejV^%hkNyk^#@x@ z`j~nYs&gH?s&SNHtJ8kP0C8Yv=4$g90?r2JCxmvGxOD-w#B|w^X5J_FErC#W;o`-Y zQ&;J}0#Cwtn5&D_<9+1$SUq*}Z>tHbP)hsLMTUw@m$~a@ z&V1vkC)vCijr;h-$A1qemvl)wTA!Nn{eup75tlYrW+XjF*3mO~*|<%9jS_{{+s4)? z$g#(AhLa%0EjvfSpd)x{7u{Dt!8mL9y71vnToQVEcNie}h2j+Sk)JcVo-L>)NKNHG zpWLdSnu2k8g$d3hhmL`3}7m6 zq#gIhy8%?&k5KGGk^YD>z^21?aWkQyJ?*#lmt3>wPdEB*>Llt z{Y7AA-E+gqJ}8XkWIw@%uxF7nF4!sutnRW|zR2KrenphpD2GnUegcBA4cNoJwRUo{ zpt)x!^#42+61x8MpIUs2lH<=J8aHbWyV16~;k*q?V_kcsRv$2S`ndY<6(;5;X*pS+ zHPJ@z|C-F~Mq<_tv1_|H{s!xA@t5F|@bZ9y5u>pbV$zB}wBD_TikMu$whiCuuZuF0 z-j~t#Tj5=_8KdvUh_NOk<1>Y*?oP+?(UgMjqk4S0v*jAqFU@Dr?Gw7x{A#nCH{H?D zHfPBFn%6o7{;c|WZo-G|#P*r_AOoM0BIa{`uQN@5loG|nZsK$QuY0asbfUw5;^nZB zVs#s~!-(tmFDOLufuLXLZ9~gP3>JvRK?QSO86bOX_;>pI;Nge~-C$muTp`E-h*@STKc_rTxJjjGpqk;^6}cT_X) zh4Y)zymKz&b@p@KHF7!K^=X|o9!vt=r80{aBuikP@z)^1IdLi5xorC(2U35WxdZ7N|laM?S!|HHc-zScDVcxWtHuLP1k zPQDygs6K)oB4vm#Vxss_cLp55|MN>s-sIKfL{{E4 zt+LxYLYyQo>A377evsQ5?`qnWQl--`y6~N&wAEAabWYF#PUX{f|MRm{VTzb7;%>tc zG@8*y$YcghpBSMtFI$qr3qgf-x?X#w+zohqmblcgBBwRJkV_I=8v8J0?c~uX1-pT}YzG}saA#vGl6~SE2vDuEUb2**| zBL3I9uda?s%HMUv`HE%PZCpa`=OkxzIql{~BXieLG3U|vNV4m?&Y73p4$$!OEVyLv z#=-OL-ai}UpG&AV&JkliR3g4(w1syfOSHDM{SbVDr|wMUSj6|Ze)(chXwgi=QyMMKaV{t5DevESBh?*u0$s1y zreYCBkIRFfIHd_z+l0(g)eD_|0(~ImfAf8|-ReTU_CwjI=VO1bx7q?AQtjJt^L&mBn(L=&oIRV89kCDI~`=GkWy$507Q0FVMU|D#5O%ex1J z4s!fzivo{umBX!p^)HD05W=iBVc?FFw(R;f0Mamb+yR_o!88-bieVAgCM;&&SK|U% z9}Vk9In;p!rHs2Y>=r9>>HOW@i3k@LLO9HfLZvKok5V85-r0Q#J7+c(jG0H;vk!*2 zF3v)f?CtK3DkD(Z*@5^YgbeE=R|KOHNd@nSs5l8ZIV|6|qUwxRdbx@C%-}nb9ZamB zoX+kK(p>>s6HFP7vB@x4)Qm5>NKX7(Z-Ldv-EU_9 zOX>4O&5ia$Ppei^=@W-TT&+^729{r+enZgSBwf}fsVtWYQI(!_L>#LJ^=){;D z{BOs-T`>7x%Ei5p9$fbII#LI|GW8@EC&AUg7#dr(=b1eF<7B5k0sV&+s3NYx@@n?H zUhFKM*{t+bW(P|27n0S=P^IYsPn$Kr!iQc3vtr}hFiQD^5%2mRnrFX96z&jmli4V zRoVBg&S=yUn~uc#(mUw=MIq)QADiJtJpq7K`6MzXyt2-6&fi zU~H7*>!Y#em&r8fV1!)ee~Z}+sbT^dloYEeId3qA%Ba~Z?WQSnEZ)>6KKnwKeSE2Y@f!!KFRDuqhc&HAECa(s+ z_9Ot1Nd(yb^*Ml_Gc&1Tf7D8o&&8<^>E=IyOWBn zjWBwM(S|KTJZiLCY!2d<3Or<}d`!k6m*?)H|7L5+-`$VjwoNqsj(=#kR+p-f3Ir`S z;vRNd82p&OpX=M&{QoLp?i7_>7v{ci%xG}j0Tf25=q?aw^4Ij`XtaBZsn{g@Axem8 z^%rah3SD88ax64@D#!XtfabtCg`?4e1M|Ev0FOh`0lHXPE>LPna8|Dt@oj9$_H-v! zCP~>K0Dp-8`%!C&j(%baN>DSY8;E%?dxdp@3yv*^eD=Aa9*j2Tv=*T(7_nLe_2bt9 zn3h8N<$mDvt=eI{Gg)9j3{yf!?H@$z#9`dUT6#q1Ob%|*v!8=qjz~|mx-yzSNZa|( z?e#WyoRr(L^Rg^K8?AWN%9TGGTpS z4OL6*YzCK^L0BoKftqPMK#GzDbr~@?!O{zL-eJ9p;Qlf%H z1PL7^Kxj$m34|oyKCwRUKk%+^y_2<=QH12)bI;j(|H|1X>b<~^nN5FAh_jPlGJshl zNyEhh8?=H7?y9F=iE1a$KD-Et-R*2!U$v*w zGVG}g{~0jM3Lf3XzsIu(^7eILXbOCHxz+Hg&fYs?_+C(00#W&1UQGi!u^oV?TB*#d z2{4`?dR7FU+yeDwu{}Mi*q7U+6Kj5_gjf80HnQxA@cE(Ky2igV=hE4?pzEyZgrfx~ zaEZuzsm_g5UH$Y95b5JtQK<=U|E>e!-S@QG1khHHSq{M*gT6^yp&*rxf0ty^7i8el z?)LklXs+witD9hx59O$#LeA<1kdm_pA$7?^9-XE_3ca%@Z}qDf!+GlJg_<%*3!2! zR3v<$RV-3lVEz&ytXM;WPfaN$pNM>UxCG1`YdWEtg&EFR9X;w^O0>^TNs)pj&f{&} zNKpAbJ(C><`4;5Y@Uf`fjervl%{b!M0l_v`(hW$y)+2i9ab^_8Vz(jZnbMf2pRx*+ z@5v3vK}_PIW?t2At48_X>jliV+{z9T^9m~HK1n8$K^p02z|n%37TBp&LoSZ>d z%Z(Di@!s*Wt!@@>lQl8RH$X{=1!dii%g}TTu|P%W2=Uk#M5w0Fufv`nhBr-03QB;~ z%F2M#QQ`?kr)=cI6o_SV5=jNceYRzp8c9o!S?dC4jA^r7Q-~Wu2nK0i{_B2&InX`NjWXeAD9Aot`E0y1Sg6KYUBtd z@g_Y=a%_3lWJ2B4kay8Rz`yYCO=kbIoWX#nHSUPEZrfEL1y1NW_@M4FT{gmI6_mG; z>kJI{5;Ks0*XItO%^7(64|vgy9!Y|hwf!<3Pz0BOyxvQFz`ua8!Q~7KQa*B2KzG0~ z#oW(s1}Phi(EU()PDGl{oa6vd2=iqVKqrLr)+SIpkIMKkc0+>-nl^9xbk-r-bn4uE zq)u!i80w~G#gikWvD(_B@Fa|WcoI#^>_o*xa{>@RvCTCXYd1)1sR^(EoC0l7NH&YW ziR)&us10DedCPCcf6*@(cEp(=A+t<&5V+(unQpycYdTO!1e}7DndnhuO#D!@Oeg|X z;o$)0S=`IERVL!thDt$nRf=}3VYP*ZracS{CbcHsnXSPYc+VI>L1z_KtC>DMekouV z4>|H^g&ObuKV0v2bMOyA!R%KCq_VzOzN#+srNHV=hzX+Zx_~|!dg%Z*V7^wKhfvvd zn9ocA)wHlo0%GA%I_<@{(_0B4At;IW3&T&4k^RgFZW`$a0YxpayJWruwvEtSXhA7b zJ9h6jZZWNm*2&Mz%8Vjl@yckXxR83qUqxXee2^Q*Yw|Vu-;PrGO3v)3fY@ZO(dH16NWqmV1ZEA} zY~0}Mf3MGj6wI=ygcE5du7=-$1rQYwJ1X&eL$TC|QH=R?)e){Mn5sGKL$@e2Ck9;Z>fv^!qX}RNTrPQ=5AxyJ#6; z+SP(?>0D1uB#=ktSst*$)#eq-mH)_(%tFDMNq7#Zd(&yRasVl*0IErj zkav)~WPf@#ia3QVV~ZWvfOKOA34+D2#ra_EDSz-C_w9}t5doWRK5W*oqTm3M0{yr8 zNsoKWakdjqP4@JYQyFk?uZ!aE-(Njn1RAXlDOtng>V99qoa{61TJ9q!;QXfz$I8Ys zpZe?~fu~*RQsZlG5u}(4qN|GEA3u&2d{@Lik`=#@|13tx^XKz>MUEA_oE$E_Y+k8? z7XP!DRVxjDm{h_yVIWiQqsEjrAOZqVj}Z_DJp~!lAhpUM5EO$2x%9z2c&jI_dxG=1 zJAg%9_|2B#UsO~?fKF#Tp>!Oy);n2h$W8w~0APtVI2IPT&pIY_0g1 zo(^~h($@)qltNj+)q^#0?HdlU9`edjLuhms`u1(5Y$xnF-SoE&SQQ40xU)tGQNmuK z`;s@{9C=+F!gQ<3CC@V-12dIenWNGflN$-F;oEa*vJ=IF&XS=qvDm|lzhR22p+uns z)Gdxc=${WfRMYANgHQ$nOj~8VuFr0G$_7*eUZEgEcn(SbSzGpJ zr=u02q$tn^cFKB?F-!HeIMaI0R#_WT3K3oQcKbxwSch~`k+|&fftS+Jgg02vZT`ZT z1espHaS}>U1iIEVzCOhgD|w=N>XUjnIm3v(YMH+9g`GcCG3vyU)PKt)0}Ol#QDwskqWM}XL3kiJHWd@jP{0>Qct%bmj#pb=6Eq$>by6F_wB8C+Hd z+rn%4RJ(se_SE#>;~*bG6Db!cs%w==7A6sJ75ErJ!Z>6+=0j2CTsCiymo}VV$ZSp1x$9m8Yp6+f zoYQZxg8Bl_D0x%{zYdZXi;uz=42#`w?hWUb;otJ8nLt7}UhUH1V%bim4G%7O1uX8&aYwPDv1X1!|V zzs_&~&XzTQMDacjDjP*g=2M#{6H|fWXEva#2^kH_y1WDPVtV}SLnb3`T*}hr%7@^U z`>vze=rU1Nr8ROMYW!a5lyf2$L~K1q}y9Sw@Tq@n@}a+rmefipI$PZ z*PYlTF|eFy<$$nw53*stW)fG*k3}Gt)AJU1*9_f75y-k}U3CrnUxnHbR5*(w-#0p^Fo~ zpW;APo;7oJo8wchb2K$2)Z(6Q=1;x*0|vrWyuDN~HIf<)BC@m;?0w-#o!XI`^3!rv z*wZjTHZ_VyWf&4?IP)dR{Kcgmmy7wUctSgX!EMpi(Vxms(S36u#G|` zPtEXWVub!y?OXIfIug2+DrPJ`%3nciJ+V9>lQ6UBfFKI9))@;*m0O~nR)Wp{OaOD( zCWh=OqfQt~9Lx}Fm|=v3r#VsRJ(tqi3kCdIo`|Rbe5v92Lfg`nlhWt`lzoOD_LvV& zLrSW5Cbw^+si{@3O@}O@!u;Uw{_CF8v5DGGDyG_U$zFuG>H#8m=$+d1+c)6B3XTof z1fq{{8|N35R|`MZj)4I{8P_J_dPN}C9l@H%OwQVoyZK$s3qAqV`hWbmW6(wNjf6q!~S2WUER`ke{RCY449E!6~mAQ&-gQvv!y zv3&$*vkwyQ-<$tBc?Bl34Vuts9)-LPmS9v&9$Tt0&=rk28jXp_GLyU~=5bqR1GjMO zhRa9zStJbiY(0PP$M*$xYbU?9Cp^uxUO(w5T=`DsFW30b0%LIr9=mA;>sfK>^z=O@ ztraxEF4FZR{Td;dS_P0}r>1iQL=-sD*xG2L3SsdM?63QNins~o zh?JBy&4g6z%b6=17<=0wZRwJ+I&xpqkLv|P$%a`my;0IWC&G`JZ(#b%9;tzjCenZq zcbd51ZTZ(>%+Yw?kIE~k8Kbh+-LTmX7H23J{J~GHrvGDYjk)%6Z1w&_dK|80*z$id zn6=p8>-}oKleR%^<2^ z62^a=+wkUrdjE3;@SV^fC^g=vulpav27K#}KYyq_(T^Mk?UVPTU;lISN8JW}^LN1? z5GVS^KB@mM zz~ErB(3(!N3>-oi3zo=l0VaXG&7aw~;W-vRHOH$PA#nZG;+!0n%qGvQXz9g$WFcGS z+8tkmS)g0D^T$i8JL?p*dGAbl!sWceD_o9F_VbP?IlSTLz?pC(6%-^OJh^o<-^2<% z=W_l%Fg0Tuki;uhF@Xiw7O5>$R92zTG1hxJ_BMR`{Ocbs34Q9ohqnf6p0Gc5Rz<<( z7?#?jH?01h%AV#hO(?mmpZH%MhBUec6O`~Zd{wJEH6FA9YE5CsJjTYj_=1`_C62abE%Od!9}t3`Ri~bcHh+aMDA^x1p4R` zL1-K(ArD}J{`qzZ-qyXAZeOl_mL5eI?h+*r<_mp!llQ^K zGKO_+L5|ux)eh+`HJ6&(G#-@t9g~p!-47G^P;od#aVnG*TU$i$lBgP6G6`7B)xh87 z4lx8cv`58@i~!kfOKlscbSs=KK3J}Viwj)S8BVYY<9Zg$1uWtSzLrloy1kp|iIcsL z%2s1)4th9O=2!U=5=DE1~ z(Ft9d9zM9Q#eXyXoGtbiA|@9IsN}DudZ1Os?S?v0Bd+e$u&%Z!H+62*i_P){t{;AE z`8AitXUycQInfLbhhEp-cYmEtZqhBZEfDh{@M~f}@u8}G)>X@w$lcVzod-w-!1nyj z-Z3w2D=w#ZDZ0(VbEcfxPti?#g^04$`tQggLY_Y8IyJ_9p%macll>E_o+)vpsw&ke zd4OU8lfgjr!uO=Uac(2S*(6PJTp4GV71Kyy8xKhZy)hThB^1b-64qdSw)egny2ZmN zLdB;)h{G?V*P&n>$R=qU8R@;Slm6OYUUQn7Qc?q%#GZI}Q~3Adz;EzbP;iRt#3b6T z5HrGGb4{qE;Ra@d;p{hC_%R=s=Jmlgjm?sTs3O`mG2D%m-Z0-GV^;l0>u{w>`~_$4=$dNKA9i}ERs z)$(XvmM+KU7~Vnu^OHhvxNP&cEhd2%(X&$G&(>vQ2dGAV zM~iuH!pI5p8rO9kQ66C~G8pyoMA!wY01vbn^L2!(SJ3d!bu3*MyFONlIxCcK9i_p) z@BX`YaY=}r2win%dY7DeglB}-SJtDrx`M;5*qT-~*YN`J2AIHy^YB6TAN{x5v6txF zEu+2g9@mzA9lXFb?J#>|5&{-)+?MWT0St#-Hr2b;wAr|$hFnQGqpdvrD!=b5v3hM8 ziy~x*exbBaq(276SIw^csZ?)9)`a3hb`*(BRV_He;73sZ8#=bA<~(NKz13obzkKzB zC5-iX;lw1)r&}#RxWRthYjarB|5Qu_JpM?`|?07wU1Z z+4b%~X~(6clxKSj++}yjxmgP2f4b%H@N#M1{VyB-UM zcaVq^KaoPtk4_|dl=hJ*i`^t)0jqNK(7(KnehW%pzOg-2{xMqFpI;+q&EpGeH6uj} zXiwX@f!k#pmh2D2i>lTp$KT&mSe0vDG;*@JptXp%32frw*NFzRP@rINL4B&4s%qDR z>uF8aH_07~ptj&=d+zDldDhQ=dSPSp;iGEIBAVrxKO^&)0EOGm#;iX zWrk)1d!4VV5mRmW;%djOteyeS+R4s*#eu(F6t4}sY|VIB{%j||=+dX_%6rQz zb86_?$!%K*);g-%!e$Y}!;XsnW8y2KMRi99Lc+wW(sWgosqe)uX%>|l9bc=?`CE9d z+4z~K8gIlN%zUq0$|@GzE)ka03sT_+kChLuX?Cu@nYg$RucGqDRW*9%cq*>%{wX7a zcscI?r}zU=xfRczx7yP47C(BNtSXhir0r!Cp~*;5`xN2kj_Y3G=-9aqtHH7fbtD~U zmz>{;hIwN6+XD*JKExg?EuQHl))%`egt<`sGA}B3doHX{yfD4dk$-JW=kz}_*7hwi zDl3*YHTq|^+Tzm91bWvONR-PsaXJ)I^$!wH#kM%Hqr|$0-C#sppHMZ;dv2|G{F!SW z`T6@WO4zmCVAS^8aC08@Y)CVzkiHtVxw6Z{Jxn-M1>5L^0ru+~p#<5#aiHv+GT=^#?nyE6Ptm#EFcEANAr<22En z2z&+WlZwaIiHOZPRScnw2NoayTD7q};308)ZdO>$N_=s@a%Y!6U0^0zL1VDk)5OxD zv;BPzadhoR|EmKJ4zPx_FVzk7Z8VvIyC3Ml>XsS=bLO|f8rZCjuS=Bc0JGE(w1W(!Ctv`^v-50U)w9Y?y*jzuU_8YGJ^t^ z2W>Dhs##pTw`ZX-i-o3B%2kJ4_2}c_Eehq&)A@tK@hsiMGy1*>OaV$=h@y;;mJ>XV zbQrUwxT$Ns{oS(}xL?$1Qe!c@wtM`Fu5F*p_brZ|vbMICDKKM3dWyCgs*w|zA37u( zyd7%B$2-MbcNGT3R1XkjEG=$r*7(!g)W)QbGbm+av#Zc+BY-E8bW(>FHA|aRRGmU#Mc6vvu|-afnPs*Tu(!IB>0m8UN;j8SCH_G* z)5nBTama0^@Uq`bWGfS%zn!*I&wUeW=8LVnEMcaj;dFrWF*`}ADSP;}{m!FRY!y7a zW9Ov#Wqw9>dgEDrK4=6p)DUi*+&5hUQ&emtOY;2_BC5gyd*XDz?H2bmw=DCB?rhms zpFntG+fy}LXBR#;QIx8@HdkD9hSDf+#z%c|#pXcUg0Jl-gB8o&AoS_Mx{09Ph!Ux2 z2o^Kfgyl9JB-VGO`=07xdw01UES8;@x_wQXqLQ*n^(bxxe5hM-AYc^5sg{6AYL;8C zD|<{w+2xHX{W9*R>tb|eyob0zuDE%g@8t$9t+`}@i`k0)5}B;l+Jo52trV@jl?#WO zoStN}nNLa2GumP_B#YU@DHPjRgR%om))Fg0$}1uC^zUd@kb@g^>CnRSoYpj*5V>b7|?w zHJeftpA+I*Iz61s8zDu(^%eAZICZxFR%98lztLwzhN{7RVH#6ET+cVvVxD8);;maT zRC?K|w{3KW7d#&S@y!-B(Pri4da21@d;aMzZ$6m!I2q#Mt~+-^~+*07cx zEcmmP*R1O29sYV_X$fnhJWLT40Fy|O)*YS#t5rSPyMI1@#?!L9^ZDcS zKpR-n*5xp9<7?chbCP{=w>;#Y=VZUvI+pCC|MCPi3PuJx?)09VEcR0_yf@dcO&!ZA zE^)CzIkHPEtOw#3iux_XNLa#nuCV-Z0^MW3Cc4r@)y9~&NO_t+a}Oo#mLDd@CAQCZ znN>w}PC=5u7G2z5U&uM2f5@zZ#xOmJ)@*OTS)t)WSV0#XO~a?(W)?4*<4{@9TIkm! zoa{ANd2e!5_8F}KZ0{k(6ESpsdH_4szKAB6uieO)tnyciQAi-s_-{Mrzqn%1>s`!z zLf4~LDj$4T)5xMn9Wm{@x7l<8zt2K-jv^?S@ANK{Ic1vr#-~>oKh&o8+nj$-sjZkB z5nBIy3$TNuA_{aFb?H#kv@SZrU=SO<)P}WUDryFwOZsW%EH-I7o}yn*LklsK zd(CQA)Aib3m2$z{U4A=Iwrz5=gLNJu?B?1f`5PLhiEZxRtYDr7DEPr_nGPz+-e|SwY}dz+Yd6Q_X9sv#IyiRTnq$T$CEd+;Y#gBjb? zZQJ;}gCnO~#w|%{K5J(EGBAxp+Ngzm{nlqGtZv55N*3!i|IEBn67tNER@0A9HMaF# zGe0T*tLCd)6v|*XZYg8^x@CkI?|Zu!!o+4K%W8|WvJ6hoWkzLMee^DSDB*s%uhqq* zA`@lvT25?|x7L^`$yU1vW|ZPWP*+N(sfSeFS@gbsi(v`GEV$_SGTFj%=|ur?5mSFk zlCa|NVEULzg}-CMOa^*r6m3;3!3d2;dk-~$>&KH#;ct0_tFRb_>E#j(biMZRYo@W!_dx{RTp^h{w z4H&y;NiFLzi8^ypS(J)=&*O&z*P}t1-|#(l$=kdgRMMO{M}{;!y%|P$n!oIfov3@` zNW@LDl9EKzFY1-^Z$Cu1u>{0B9)5a0e;?MV`hhEscNGq+eQGg%zTmUbWYu6di8(AP z(jzHqg^itI3d%$@u*@L+9`Z=OpCGfE!lYxM1_Cmi;Pc4E9p|i#2COE5(8#p55MN7>0g1IxH!4 z230aFWh_<*;`Ezh!$MjJ)Rrh?oxLXiA=yN~tMmC*sB|FePBDb6+Mal~$3dNZxb?09 zIo|nB>1lNR?PRL)*tf0UVaoH3M^0Lq-Sq%#cquAgG%JFljY`$*_~44Vb|||)sR@pH z{W&8qxFt8X2S6@3YUvd3PHodRteX6gz>=(-5#^;)`*LPHmeQ>X$WL)}OcdeFl%L$o z3WSmp;@tWWJT!2sw24g$Mo@NA+2{1>m_?qs=X~_{eaRClZ{L>IcEtMcpm0_>RjI=b zjI?fEy<*7o5MScx`k#hbqa>{1G9F2`v2K@yjmPmk>g0w1mrX?rR-YMr*fs^Aqk!+19xD zs1s+}wq7-gznAY1m1Bfs1*>g?+Z)R!UI|`_O24~BMgRcC0cQ#t(XEWd|uEH1Q#gxFouvS^)~5hu}K zzZB{6d|pNltE(D+zkniZV9#IQIgl=OmK(OQ#2Jw7)CZ;L*ylm$3O;xf?_PA$cqLd9 zy~FER;qQYql%abU@jeY6&44||D=jQFR2>~&cU;H^Ag~LomU~=zc+JSWr4E6aBvz-a zfu?P5*j@XmLKVl+$;qJ^qoqBRN`OviO=hv6zB0{|9)|K&J=q*8$hO^-C{JADrfocT zk#^z_mzObSB2I3q*iPYyFnUdPSGRU3Yxz-BH7bIdPAOeJ`_d*TQYXLFmUa`s>|Q&J z6AUTJnPv=e6=sckZi(m6bc7?~k#O9hf$|sS5TSWPKDbt+EjK6JOo08zc;&lD(Sfug z3)1LJY_82G`vz>f`~tkoXIN(kPpD4Tf~Flc9X!-o*X(ra=< zbs-8-89AZo?%;uKobwjn(l>)=HaXWK3=LJpAHxq%s5Stba@#|~=k#pjf_8X_*IC6kF}LtI0>FdRzQ8SsI)pds>D?L0Kq+G| zn#QrGgwP+*>%9a({{gu3bvP?lM;41hj1!kO6c&Q%Ps&hE@b8EnAYd!D+3`U>+5pr1 z`PAFTxY;9;M3JLUwH>YR+@*5x)JIz}vEw=jXcmuYGX9{=-H_DKqRc^#3K=z~qp#QP zrVxMJvVlSQ4G~Sv_>tGbP`spz>nch~Md@7eYqNiWpalxo&uC9+#_LhxRWLZVr^8iu z;i@K3T09(Cs?epSrzeIV`#XUY59DBDvXZ89CA(^P+k7&+M4|r98@o%|I9LfQYGOxG znPeDGvgpNH<+teaYAVl7iC@*Pz@9Tz%MMt3QQJRFk3qCoe!X8{v(n7OF815)YV}#R}t^(pD$kcE-ZBxx9IYtMxXu#LiOA02_ox zpNyYxw5jRZ6XVcab}-7d|Zu+t4kJ@}P% zMjzcCfCdr@9%k^XT>87XXu?x$siF<5Et#Xg^n$eivAjV00oaoG8{X;a+tS>}U6$rh za)j5b_Ps8_10kWe4;4EVBp=|onqdgy#|`L*&Ni~0fRhFEX=g| z=hhOVE?-FdbIuvw)7klQ2ynVn5Ut6OHle*B%-D^7hNCm)jbez^wKtWI)~#GTT3&X= zcmnHx&AqQk>*`9rhGK>VQLC@wV*Cy3Hj5nZ5!_(^^}dY4rUMO|FLzEmwdVFpNaVmO zL^Mf!5*M))ozt;44Vv)-J@1?enYISj{pn<&*vG1Gq~NMJj#fq;l}d79-bI5xm#FOC z<%0!8=Su`u<=k8Z^#Fb@xp}UCp3Oke_c6!3(i(EkSj{M#p_1&KH-4lm<5KMuG*Ied&9L>b|CP(6uC)6j4e8RUz!tNQE zQ?BSI^)w{}x7j~HMG3Lt%nWdmkLzEMWeQp6s1>p9iTR&liD}Ufu;lY~%o~2gTA#nM z@5pzy{quLW{-66I?tD)YpMT=Sy8q|ir1^0xD(rc$eZD|atTRYTzP;I0-0K92A>?9| z{1hbs`JaldtYPrV>%6q@uAK8lvxek)FW{q$$&jrIR{mrzxjx@MSS-9kMg#kW*gacx z$;83i&KQv@pu@~%_I|QQvmaJe7!>v?pXNLeuq*Yz<4*&rbLZ}YERVvRuv`ii{(5zJ z20l>vD*c(MIX2I|AMe)J_C#)KHdUZ5YZd*C_c4eWYEzO;_NHe&N6RS#z$6oZ)_0XK z2Gq-JHxtr>xhL+^hu$sk=~vMfFuE54KtUwZ!P=ajx@c_#_|NWUWQ2sECB;9w@-X3? z2ED`!Wpn_`-q9$3An38nf2xB?kj<4Xof&{se@j)X!y535H9&;{02(qQs1B*N`nn(N znXtO+#b$zpXZr;>sAxTG>yFreV`bgVEeBGd$<5Z10P`I42=AFfoY2B_Y?T-^Yib%^DoLmetlxquX_%(N-R&v4Op6&8@c2s)q32}7Fl}8-hr2}x6*AqJ)6lD8(yJQ%& zOQZS<8pX>21 z4W% z_`anl{fY{eOzVt>pE2{+5JVL`e*KLnqHUcJ^qDXf0ceOD;eKE<*f^Q%?-51#w9?I} zJ|C(n>;Bhd^azCjlV?y7c*{O+{;aJGAUR@Gt-BEJITWF;?!tzUj^f!d=IlmA$ah!K zI4ZLB`{d@Hqg1pn?aM?9G<1hUxKJ-VT-UgeP3Q9~;;w5k`|K9TPjl~-{v5I~oC3O+ z>*dje_JIkazapTkL9I$C3Dj866t)&tOb#|?5p>ui2SQz_SJvCW1x~lQL8jlOp~oZr zeXq-F2JrrbY1c#z!RBV5X`FRU5MRa=oIx~zPT3K%^4dZ!$Fqv?;ko`)drjyx0!^i% zE9$gW)tvGN_9Ce&3QpXU&v%3lIWBK^q)ogpFNd>0Q46pUXdc+cM&n%6>ti3RvmDc2 zP(Is8&PaaBueBW__&UKZ%_MZ0XJ0rR(bJn1-@W}R!RQ#(e0nLN)f+^agt6;|P);w= zb0s24++x^ec_^BD@$_l&-vIZC2?|yv&NUX z-XMp3N}Ue+bPn$X2)vazI&+t^_FV2<8*BAPR$J){L>hfns=Orh*XnNLr{XU{W;B~T zw@|rCZtgMuPy^#3q%{@o_*3?X9A!vqJWHSRsGU3+I^}G~-ZNKu)v>w2NTxmw>viR& zJq|KseUe8&%JM;AcQ?Fn`pn0D)fA}jp;y32FWVWvgFR6|j4B}NXrhhl1Ze!djxfAN zB4%t+b8NXJbDvZ(6ZIPJuuD#yYmc?^*`WxnqEick_Fr)R0KJA#gvqfiiz(d@c#9Xs zbwQjG1?nOc_@9Bo28GvZgp+YFt!$sw<^!y}nPdtL6+mBLlJI@fqn`%W_JT z@Pe>d3@7XX7c0>!WK+A$$I11Hz9%CzDaIL7fT$6`6N1wBVm4CMIisCB4*o;(Y*Rvb zr`wxqr!>6BJQBs@E4oZisp8m%FN)g1RqG2rHd_N1hU9j%(h#Y*(W7FP75Q4ywY$4` zOA<&55tKwL{n~ko*Wy31^?A)Qm-sY?&)q=Rl$9J~_uIcEZRYd_Ta+CTB%&+IG2D7h zNJ48HY*`X|dTn&`#e`$`{0_F|_2py&(GWWIz~+#UhZV2-1fB|zjg+--h=&_FNH4@4 zB3>=-5vcdQCmih2#Ier7`r2lEhRwcNUkJH89CY;G3G~$a3>`)Z(bmBi;(#>_y0|Ob z$bZaOq)TIZvF^T_;zDdpviERY0s*yARMcV5w&1R2=gD4$rYq=-4b`fJcW0r8BRY?+ zb?dS_tx(XpF!)Rh7s?T>z1G6xk;5{AJJM_c$Qtwz6G;IocGZef)&Ry4JNKk%#|yv_ z>NoxwJ@;ow9qbh^4DLgsR=RJZlH0kH9tembDKnT@gWel7vF*%qbA`bvmW}#jAi?J(yeu zOj_uaI0L)x~Nwh#3zdS zA7xCbQxewm^3y_I!&x|jW0z&=UMZ=S{9?js39d)Qya)f)(E7>u?#6ID98&pIe`e)R z(o#UJ9*c+tqBqOe(YA@q5?5Di0;M(N^~4j>vkGCiONIt3dXa$fB?|GDz1MUVcoM2S zK31}VWD&E^JYd8Th z8u6Pos$U!?C)KQ(iZ1WB_@}}IJPF*mBJ1Detx4lOsum)oK2~@_;>5Fm&O8N?Dxa() zsI1Qy?bOpJi9#qMxren1*(F)#1(^pZpW2AnoB5l}br~_6KP0okX<}3RD;cG>b(F%a z7pmjjJ7Y}J;(a-!S6R*l(6KtV1wS;Lp`!@teklQ}0yGE~GZn0`#RQmRkH_dh=C9Sb zkXBoJA?rvboX8nGKitu}(@B5)nn3~9yj70jWl`pLk`$v7pa31h` z2pX*gH3Wsj_4{kYUx01p(9K=!lA@dou)>b~EQDYBXg`1|V6{TqY~`$6BQecuty7NY zf;*6oF5Q1Gx3`(B8}~~(;?^LDBVWk%VaiF(nyS-!ylc{9l2TQSjyQSJa5o=1zanwzQ~S?ng4@zrxg9+Jh70d6Ng`# zgrg(wl-GM@{;e4s zJyoHdN+dc(2(?`RdiuwY42?}fT!aG5a25wdu7>|R^iGAl@T}IS_P3^tg zZb8!;uMou&(SNpf-q7C0P*>B&7m=5NHhQSQKk0jJ&mZ%_D-=A>QR^=MdNL9BaSq+) zP(lM}i5WRDawzGjN7GL>E1^GyIzElDrH@rWWs=fzzEV9RWJLA+;iVZBPpA5LGU>#o&-$@vDQZ}=Y?auFu|1dv@1T)J zys!eCQ#3aNy|mU@@|m-`DLO?47FDTp6CFzYniF}a(}sg3e75Hl4}_gIeFI&${7NMjtqP zIk6CZK3KJm{_{6NCrBARjjR51T$*i$yBPZ}@d|=cvuhOOcB-*o-R4@3x$q7)Trs$XUp2D;G-RN)S;k`zHqcDeI1FuRwmK?)XqU@&U5u+rrJba4cMol zPw-JOUuY~8lV#X$3{it$RHac@>Zb`$5dQ!8>0HgB8*WT23S88RQw+uZFfoDE<82{Y;tCk_4x6sO9sXAmOg|sL<*iHq0z~ z82keMP656)z&|@P7FcIaZ>uZ<%(DI^5ou{KGOKf@kV2>Z+Pi-h%YAH)H#Vl9DUJzu zGz}W$%XY!JyuZOgqgUOjov3cu7pw`z9~n;J7=Mnjw!>DPMTZxVX=QZ7NIV>~^XSj0 zDmK-5Jt0b1G3C*VS4mGi`tzZ)q@mVSt+1lCo|xy8S%xTFMjq1s~7mb!n+I?FsgaVWqh6zkI6A+!;>qfRnohT9P^L=-7L7L`$m+oU!EYPVb$k9oy%! zSya>pwWRi6bpK2Ld{HaVu@7l(;t$OkjG|E{EfG_Y zMF11q`{D6TW1HKNt2I$Y2H|4x+9Kx~`5n{-?(q>JXF+f>WG(r9IPlQXEDagt6nmi~ zc)xmGfPTyJ#`AmU7b+MY<7dX!dDVqbGwTk-U9;aW9m$T=)ct>q7dY(^%mSmkfl3O$;;n(w{ z{dYwHh=NXRf?hv+?kIEJ_q09gx^H;XFBlbIVltd%p)Qb1X3wP}xbj&3@jDQH92g}K zG;{hDVJ*ijZZbwUXNRYSQ+0Gn6|*$+^;{oDjSHPrbvjQIIl7QJHsVDW2vVnv1kkNd z#4H`rg8%0kn?NHdH~@0Myl?Rg;Js}W7qn;%EO%mjGoUGJ;V2WD;1TYcT8Y3Z^_JEw zI5JWQGQhFfi4IPcgT=@qB;!zcZf!1UN^3XYSqd+Q^Vp*KL{%Qu1G{tfaJckJ%b_x!lrDapXVGXMorl_^c=SoUH9AHX`aQN{pREk+`M4u3 zVI3-5&`H~&R4ivYmUm)unk60xktx*ZxV1>qveZ44$2CE82nmVMfFl}CjIH}?mlc4J z5jZM!?NR|OxVkuRZcnHSJjSJ#7sjXl%AN207h~!3I;#SVp?3tYX@MMO(>}5u_r@s+ zTua+txkWlxHq-jC(d?ZD{+eY8;E>XT`%3Zj^?w$GzQ0DTvs zN&~KOEN`5ij)+D|TRuLRM6{0>=Fb`So7Oq3QVlLA75nq zb52v`gn_2mweFMVy&bJvNM^vB))oUKMn&w)Kwg9&Wf$q&)QCFjAbaDf*b0M1Y8LiM zfP8M&+mWMPyz&SThumT(l0nJfA&gn{M5*jS%Y+ZNRSeB{Qw_j*12+%whblFxN%z7M zMI93}41PMV0NtuS=FIpoXyPcscl+a>mAx~qTKwoW+pM4J%Mc$gZiXXd^@?hvDmhV` zA%V3~C7IQ$QsA`KgO=#5C#N!M;jP|P6T9Gyz^S=hynmWs+m>Llb!df1M{9l1-TBkR zNw7PL-_EH72{H|Y_A<@EjpNk<^P{t@_LGs$msXNNkCFAV@;M$&06t z#jD8m`iy6{76L~ni>O*GtCQr(T!eGID5%07c|KlLhuAQtl@QAiV`y*^@UD>-7N|% zG_qseZ9S``rF57NYrq=ZGwR!uSE;jEv^PYKUT)lK(Ui=(Xub5WG4ZvJh41om1#N9v z#T@mkUKwdTiC^R0cM5m|T9&B0r%0C_H2#J@k?o(xfmhegfiB5eBrF_~mEo*wsLP&> za6}c4f#s$NWq$R+n@l{H&aFc&+R)+a(f$)QKSfnLk%`BTYtGFe5^kt!GfL#Nglad0p1x8;l#2Yy13DFP4P#5GAu)Kz^=?emw| z$zhA-j}>&v4$Mg?`klUG%E?~C24y1b9BH&?6~cy4P}AB6smq*-`)5(@!`r73UFCBe z;W_#gvKCC}2gGcKARDjrUfpL&W#%4)WxT$rVYk2RMG-}uuVQHJjuT_oruK$wmiFhWF&$j?|!={ zW9Ro?+Vx%NcSDQ-(RNNbW5= z#i&B1xlhYS{wF~y~Odaqr8AJyw00VkugTeXAp-cK#DGS{yl zdj{-Y5EJaWaTXLR1F=4U%Si1DhmXJCj!;T5XURxU&y}X@Iwk^C&J&rRE`rDY-(Qkn zocZEW&9J8;3-`sp)hOUELLMVzE=QsC!rO4?MMEh1Zo6d1yeA`;8?1QJKrSo!Mo*srr}|pl1C*+WF`c-FbzpT6fg|O>u(7lMo;{rP>Pq_ujEx^J%pKDE zS_7L=9N=EfmPbKhR6oby{F$eE9Qk~}$hpyf2{cYgL=45}U?u!M2m* zE2O}?9j9289c>9BSW3%6>fm&B{#?Z)-KxTFXOdG7k0Vylp7G-C{^9#2>dQvH z6#JqokHd5zpe)!utbqlY01-6NQMn7`aKt$zvyp&9EC$-x_U}KBIzt$(LNy^OJ8Dy=GRbA3a=FPWiPk3z?SkZ{h0_Vw z>eWxe_6;p1@}~&OX?SRaWQ{F{{AcfY{-X!n#X42)MC?>mmCxQ(`zzs4p4IQ5SP8?! zK7lrHgAQBo%K_n#^P=@2{MG#lCCOJForaB?-VR{FCa8%Y-nLwYG>6_R z-NJ&+S7u6(hFFrZqZizO!JbaL9@!@9=}nlQjQd5!v(^8gURt;DcxU#Ecnee#b8h-X z+i^;(2x-;!i^+YBQ4Ig_agnZI&X{iM_{-iSaKRH=oDv22KfK!CAXvZz@jc5%dS57P z&Jo-;_B)u8=#!J!Qi+Y)(mOpl6&~{%qm9*1lzUw?+$6MRc)$3qv%BXrP}1t*)FmsR z@;<+gIwgPi>V5v!MB+EA)#q;n-Woae-Rv8J#IVN1g>XZ51Tqbeb@4nGfj@uUn2rgw z+y@)`kQ$b_DDoxIPh6ef@p((@mk$Q-LGO`o#`!?Y>IXJgkzZTELxlGedB$Hi$HOT6 zgaQcM>i2*A(SFSP`M`?X-yETzKjQzMSw`;%|D$jCsBWn=NVyRqAxM=0bDq4%k!txz z$YKDZ)uZ|^#z!Ek=l3!CJZ-GCAl7zyH0GcUugHn{1Qp_8z{DF^o=Jm^E0Rj|Doy32 z$mr( zo~Rm^Os7F24)yT`D|P83L)95hnK8qnC+!e#3AJbcFxKatC&yROkF&L)PC$;kuXln< znN}}|fCnLdK=JDP0EFu!5xRS?T`r62xZ9eWV-O(#nDzHQD-nuS}6+I7B*;IvO5bz+{W`_kYExBa=>!c7We&s?7ew7)NA}V z-mcR^DoUc#o{*&MR9Y3vmOUh82{D$jjB<)7+ANhVW#6~K*vnGM&Wv@&QW%3F!(bTC z`_^*Kd7eLh|Nfrm`p$JZ=W2}4d_MQ`USF@*{mfhCD!ujxvKW&NkpBXR=>6|o`Llut zZ=fNbbO5s!E_fEzgJMq!<+6LJSJgP4R%k5DC=Cq&PcvBV@f^AkiglEg5twjq%7cI) z!PRompx~=&4v5?e*s$R2T0}U6W@sgJRS-=6#5XCJ;zh=JHaXlJrn%W!LTIs+j6u78 ziLCX%cBNY;JSy5v3FGA|#pxQ*U&uU@;AI9ShIh$dOMKQ9ye3kbe0{~^A`Kg{ji)t% zUaH=R9lVBW;NoPh0!KF3-h|OupY?1=i`vZPptq6`36Z@iWcaWc;0sGR|3K5dR2jbq zr$v?CE9KlTc2yB~tGj;j*%2RYasmQ^y34;BAm`bJ+)!(Kei?6#e3(|vhyEQoQDQZK*r+uOb+HwMSic+ zYp5GVLAT`7Es6cfXK7$W=izZGU{Q$4u%3pdZaDdS~qG-_Bnh5D>T41mr|pEX!@S!RM-C zh>mszlzDjNEMQ*7t8|PX0ZMldo(s}xV8y7HsXj%OQ~*gRE0?3@<*8KWJ=Q5R{m zhy_%bKNV;{*t7f{EbNY!$y9TjWZm(*g+N=#Fde7&Mk(y@6J%)tY;$lt@-a|Rul?ZE zMXr5lfH;9N8Dg5Q005zT5mS_1q_`C+5fnh@2xc@IXl~OV=LXCil6E%V+cCTe8Yi8x zRs(u!FsZ1*f7QwXRkEP()nTYnOm`qa7xoNT{;Pe&$d1g)Enss17|jhmmn)2Il)0(O z!3<;b0@C!0rcpJyKE`AxnW>-3>H_bH*r&i}+5=>c%C|mTkHJW)rsSYdc96lG-J!Fe zXhNeKq_zvO@n^RnVtd!+C(zL`>#b*>>o+(p!kqA#sjC9I1$%+^Bmm_U&v9EEYRuh; z6EN=OP|5G=nG92KMm^}oQAXnfqbmMwdQgad@&KEDGpq#G&>X^wrE+s8sGm}~jDl0h zH@EOyLbSKRUMWaP9UeMDCRZ^WN!d}yw!}u0ttYNRE`Zu+VJ6QYYwkr%YC;-Do|_w4 zyXHDI)dEFvX6^#16LEAA9zY^Oqgrkf&~y7ddLAm@x(zf0R7B>RXuUgv!budgmCg9K z3M#qwK4Tq?P$57f0R1tQiHH7vuV{>%jogb}0eDAcV|qIz$K!`lS~Z9{ABk{{i)2R9 zMN~hfixnmhrguR?f*@;`kNa7~ z+iaeMW~eDFO*23*Al%TVr3tsRg*dlr^0`m+N>y0}9VvJul zzyW3-!7Ib)Pk`yN-?H$|P@RS%DjxL~(qh?ighFP~I3hAX7w7JHJUkwfb6< zNL>;*Rm4}l$mvix2!yGR+kNUuPG2H30Bz$9>^DL$OND2drj@UKN@uMI%>3 z#J5IkUMdwfvqb7ludQeJv`542t2nD_dK!vt+ag(}wUoDr6F*tN!_C*BU*|B(>gVTD ze3nZFpo$-Ay*#FS5CG}gm#k89ZOntoa$R^6pZ48t4AOuaH$@~Z@jQ)u#nELBfN7V$ zj{jv5rqS$*yiS4lzgT*1A+Vb(Y(k9H0gi6!rruX;rO5Aav!9cY<2Y}L@b!yf{t8hf ze4$qtQp>(pw$reDDhe?qDxsXVMz8=p_M`EJ{ZHz!oq&ZEhdR3%Xm5O5=li~{3aW%7LshL4bE9}-MkERl|s_UVO!fz$@W8+b*dn3 z4$EbuL=!z+vy35xvj{rjw?^u$HO|wxWO}$+qRt$IH)1>yKpjE&5P#r`Gk!D{_%Nhc z=W;;wK0>8}#R``JjfQwch>X+e@iEBNTNPnOk$%WfdzRqr1)t<`UPR~?S8MywIpSIZ z;Cz)%5^_SwFCe6B-z)@pU#1_sBYe+%7+C}l$Rks@*#Sc}5jrE7-rTO$QT2exXnvC_ zN~jD7W_to{G??4&vF}zuD)9{z!$8>R)j@vGoonoRrEGFLcS618TV@-;YBU6v=p2rS zY}El417B4M!O^4)U?CjuZA*ScM^h5ey&il~_ZZ4_)da;NZ+lT{NwvOWB<$M4uGi>8 z$z}Zp6H}A^b)wUvm(y5?;#{-EGqbw@m4T6JK{OPduQ25&EEF%z1Dr+K5D{R!r03lZqaK~c((j0|Uw1og_+l+@~ z7P&s?p8z^&P1#zEhiZu{6MR zpG=6%T1nJ9rHQb%R!%@}xXB*&d1Utqg>sOWYL4QrC%!}cwBKbT#L#pBE?%umFa&@7 z2KzyO{4Yn{WFHOf*-LOSN1MJ0L)DK|(jss*aU1UUOn2X%P6oovcZ*nEs?m2`S5O=OEIG zt4ENp!EPOJNUC!_6B|jE^P*M)H=p<-kC4!=7on?sqj0&95CT#nygVx4zG~M-1*BgH zHa>bGZ0j@7!Ht%oI=yFjIY75+lU3TJ0jI(gePh*4{kjxNf(T7|-jJAC?2t0x3rF_o zkzaTR&KI;2zK55)nIM4t0(r-!YY(;TVDd0!=>KURiMB$VUH9##lZh1f}+cJn-su9tVdD)|Ih2%ivQil-z* z7zj6RKV@$0hiJljDllG;OFu56mijn==7++I9q!-#lm|_a+{43A_K}4OW#68^C2Buo zJ0X^;S?zlx=`CQvwnM)F(0qr)cc{tTH9osK7T8|8-cjcw8RMv^my9U{dcSF>%zH+l zj#0?!JVazee8fjPn^B7elVn^od&vz**r+0n>}ju&!-F6_jy$kWXYa1Oh*un>V`GxM;V1*S{5k#CNcikz!N=5>!AQAgqj7`;@#l&3t|y;8IU^ zKMcGm7XsAb-P?$yD$wXqU2%s^Bg^(Ze?$L-owx2uLfo#iQ3)`1i$=j!;dbx)g6;iDhIm{C$G&^c*jtEAY%0v z(enW7yD!xkG!IaP`;k`{%*Oc|8erY_6tmih(=f#=N!3k(3NJ%haF1UWBa$F7G1bTV z_qC9-juxXlpDaLf8gS$Li#s?3+QkOkcFTWl|FI7B=#f%HFZmoGeu8VEwguq3tBW*# zSfPuhIb0)-BpG1a|Lg0+6*8Y>iC2Le3e_}g%+^vZXZrDth@zl zK1ihA9r4(Hg+LuA|}ZwYOkEA(>@K+331m1f;5&u+T6#~sn$b! z7>`C!%N_2usLzIW{W~Zhh%k~UJuF4JK1K40Kdyy!1JB~ zldP;fv=FDlC6?p3qmWHD{2nt|B&d?ZgG>fG3_1IXD&^rTgx4wXYQL^=qc@kM(# zIJG#Be&)BkMAziyM!e9^x*DiSKb3u>ei~Yax`7^6^N~mKEub&}s8GLTk{bO;+s5ny zkV>&we znVkq*+7lRtJzI%){_(Y{T?_Mwb!ou}8P?&y{%Ga^qy`kfjz?-hA)Y-s>NDYV;tQ`4 z0aStp);(9Yrtc)m9I4;9z1pH)Jm--;t@Nf9^<)Z^V8SO}BM#9mP?UiO-h$A0wFHL0 ztJQffP8-0>)tZrt@JGc{LF*^1>gHO`Cu(b5vWdVJ;p_OZ@|gc5;57lUc(R-qO5>q} z7efUP`}rcy${Sh&Sad{WCQp)d5xk-E+}rD_%F3WiB!P!Dta`TfCa^t`Q~3?qs$f-D zPprZV332X_5#s(@{T;IWo7M&2lAOQItKyrhO|+S>eVp@& zS2M!p^On0rA|wY0HknLAL8J*25a2*3iH|?*!X+RwKYtA>VBAu5u|VpypLC}CLs)Vq zZ2)ScYL2O2k$hdRTPt+4!b}LfBD(;U8qgMDJ4vh z_IyDGL|$di=-`gh(eu9*QoO=VDcN=xA&^7;M1=AACZDEWdRV?t^MJtyZq#nv*mp`` zul~@YGSr!trHCRd?Jbv5Ai)Vu@Z4aKTet!i8#*FakGy|=IW@{0qEqFuX!tg=x+ZpK zrg~S~vLr;Aeq%{5wskcvg#2BoQ==;`c2G$d?}juuGMqT)t{=Vb02*dbAn7dZ);o9x z2otRBkthSMgEoR2#I_gY78v<=q*DQmw31#TuYFk6sU{4hWuiYM3S7~EM@U{8#prHD zGEFS&tOtA7*5EQuwnKRQNYn+{jsfNb(3WcB3qofu;7%YuzMoz-wN6z22vHC26Y#he zq!M20+f*FE=_1)#!|e1AH}%2U@Lfgkh5&sEzJfX0F@7&w@hc8Wb1a7kACtJbQ5C5Y zZ(Vo7LttRdr`$QVpRdzA`^(-UeN(J+wIj7|zel(tFy=P(nJG*?ineMineDz`b%S+o znV+l97JfTxARxKmE`#jk84|*lrOUSc)Bj6%zD4bASyY4sziM4u!$~Qz7)8GTTKJQ zhp7&ouwJ8=hfwQeJyJVpfCYQL6%kY`#oLHYV-5Q;?Q%uBk;5_}DH4Ww3xflHzx3pK zaO#;&21<~f)ru z@tJpFWDjJHH~wxw)*#Nq2rn8>UCc`CGv0PH=x0+0I)J`4Jb z6RnJa7a|*^p^o%Oy7gK8ZM>2h_R|mW|6{HsXmfTo3}RYK*=u%GYTM$38c|;MIck}J;zF@x2##UwXr}3MX8(xCHv#LB4_hO zO#FT|;^TprieT3k=kib%vDh0}oCBnlGLhBfy&oLOnuj+Vz0JY&<$ZKuLQQXfrKI;m zPJY%G5oJ(zTM6eEiE0QwQAQuao{n=i({252o z&S>5A$+e~>h)}3R$s&Ljpz7=KmX|3KT^;<-cjcHadq*`v5;eCbs_oe_KBi;!*!Llwfa%m!YnfVacE(M2u|93;O3 zbHgx4g1(oyh=Q`I)1m=w@10lF^4^y>z1E{N4v)5{GM`;`ABwXZch%q@E}$~E)BZo5 zpW$PO7l*L^D6|sVst!SGEGV3!9~3Iag}IqrxtGO=QWAgriV=1B+yg3#DP^vsowl;B z4Yr10KJ5)(SG!*hFrsvG<2b%$VsfpX3Hok_I>SmuW=qW4O?~9~*)4MW)Vt{ypDKzyZm7Wdb*BDPI4vY8QC zm@5V)`}lT#WjnYc^bqvm@78zNj?N?gU4Nwmx=pbOh+&aj4v+ape6BNbFb?E#OfBGPy&a zW7Y0VXEX;whhohPY0`)Hbv8q+YaiM6K_unlApoOVGsCh!;co(l7d2$J0#9K(YG3UR z%YuOVD|RemQTGJ&(|Tdt8d6377BD$SyiHTOjUUK**V7(MyZM6rJqv`m&KTOBTdu*K zU(g=oY<^f%1Djh2u^R92-=XBCVmcy7FSJ~IhNy!!#;aW!r&(K^$*+0D_E*k)XrSKv zWD5VqOae-$%%PEDPVM<#3x%q$leL!@g*q2T-W)BivU!%`Z`wtFF>%EjipKYsOrN>ve_0J~1M`*4s>^Yw(lGT7=yoVnuAJT?d- zcF6Vf-FwI{Dkaa&`?ck58b&Dzyr!*^sC=?!ys#NIlm=41JYkWHR9m0*qN3B<$;kWK zr+Vr7LzsYoHD({;!~#JV>oE#%cU!k_bXvsULiJiUn|unkXfD;WF{e0$F{Yb3`UI7W zeK%Fc6rZM+MWZ4us`^OQPIfjGxc9GZ#ivpcE4CG)I|LQsUTpyK07!iD!V}Q0nyNRz zZfQ8xLtsq4PO8?kq6&;eZoEl8{trN>eZNS@0~Q#?!IXd!^P@@6+zVLn4t?b4T^V zpmvOumv{)57Uo-El2d2C{q@KpGo_kA5knGKZfaD@2*c{8;{$86^Z5F(oPiyG0jF{E z8ziyAuL@ z0P5fV1LN-JJ6%nTEtfKm%f!3<>DmE8=DQqHV>r4j0C9&AuZ_F}=^!f~5z%oGm){wZ z!hg-mX5>q#VE;By7`;F7f;=+h+XHAs>aGgY)VB6n$)rtv);&?yX!k*j{+-iYIqEt` z;Ce&&OgfPE*iY!AK$f=OGeJ2Uf5t#0d7h3MErW^DK*riUEJr|bfPJb(Ggh8wO)FHP zr>Fuwzw!4gOJJ1ch3Q35@!pwROfe-Kjjh9p3v6zZ?KWR4J3m|Iwh6PDP=YU}2>HSW> zWrwmKw{L70-n{zpr*+Y>Y4@O=@MU#FB*Y&pp^oLV)ZxJv3i;_eZ9lEs7Fn}6M_hdIGM zAzsU~@gmo)?`zk^a`gJW3IyKL-pY!vZrIYjMZ3Fz6&BMi`9pUOG32ZQEZw#yLR|+* zx-P=B3Oy}U=+8rvPMaL3-fKL~S`djM0U&3$fdeGX2e;b65J=y28?{;A3P&PB^PEre z^6ZE8E0>$V03Ma$y-9PNMuhXc(A39NXrgdbFam6;CUHmy$*UazNTJL{=XB#?xu2n| z&4}P@!J8rsHrA@E9sXwL-M4m*7Ajo2yc3>tALq765Z*^%ZugXqf)V3eT4^25+r-1~ zu3wOtdVS}Sd1q@p-4?skby#;`%Or~y^gwKHWqz>_m44rSX&+-i!#c0%8pJ(&h7wTZ zie3AFkkt|{BDdIk8NdKk!f~(&S;1kyKb`m17$k`kf}@Q-9-#`XXgV!1^4H;5=i6V* zp=@>yti|IyH@LaQ>Xx>=^U0=D?R%KQ&7M=9<-@%R-&`iMDHo~O@b zLOf8^p@r??vhiiJI>X$VF2%`0MXvY zGBTt78mxgUT}zt^e9tPQ{Ee?FCN0i%nG- zkDDUZ@UyYL8#UUU4XUM-J zT>=!DW!O~9(!qSZePy}~OKnVhRy|KCK8VV8y($*C!>D8nm^8>1k*@L8swaTGD-=j+ zJk8DhN`R873(cytA!!CZ6$~$J{1H8WGz-bV8ZOU+meCJE3RqY1y8Qb)Q-DXm>#2LA zxB4crnNtk|{YRlAxv>vQu3bG=_%m3a4-CxHXBAVc;s8+hEqtQD-q>*$ED0N#3J>hVYHHNW1C5;0)^$wp=CzUaC z7{B}mw)Gg)hR$HS3q!|@-6Bq7r3j&8R_Cx;3i%O=^+{t`)rC|+=yt5EyA8Gib!*G< z*7VPy=a@rNfTZfcp&Oya{f#75n1+4o#g1eLzFk!G$P{>#R;pEE^q~poD@>0UOUD_a zevtj&K{};ZRP^tcrNk_d<)MrJ2&p-2oR|b~{(+%IPH=(jAIBlng2Dx8FXi>zZ!((= z96c~wh#IHmQbqnc*wVLvt@I<@0UZ;t>}4N`izKm9yNSy63F$TW^VRl#SdFOUWGi#p z>W~y~9V?V}pf;YF8(8JtLbe?745e=nyZkUpLe&gUK-&CxD6{+M>Am?M^mc5MIyQ*} z{r!gYf)!4*$$U!zv=)*qKzHLm`gd?K-f#VKr@yTwQ(<233w%N?d#>WUXDkg+;Uwa7 z;pp6bQaI>0A3cT3mtn?m6#D&@IT;Vi09!!1w9Mh=!W{c?y)E=UvIO4!N{Fqtx43{K4vwiBa z+bGp<{W<4Y250IFVNL(lOG>VlMb75Q1J;=}y7JOZXFg?4yzy-4#eDWQoHextdXw6$c7@+pf(La=q&H%7Xt_^wvpuap8R z{qtfYegJyc&e%L8AQ+|jX9EptqQ)$OoVP+D5`o*$wA>#+E#OC9Dquq@jTv>T#k2&} z#|Yf7?&Z8By^yLLg8 zgd{bqkVaH%E;Jf+>n<3pJ-Bbp{mSqw5`=+ue3y6(1S?R}`QR+;DO>R1<}V&@r;n}+ z7M5$%!w#llypX(6`F2z*IMdPV4+QO#Sy9OwK`%^JJ?S4&L3--36Jg z;C?Q03G%M_bTi2TaAne@iN*LCz5~jqJUI~sPP7Q_DR+pI?k-vsq%lBTVvbk3j?5#U zIZGkV+117d!6g9IcC$;z`do!OlZd_iea&uW{NStB6A+89dDx{NalzlZXU2ER=Xw+6 zMGC0}ZAzvj96=y^Obx{X1)Ki0DN!|C+!LT0eK8h-b?r+ne|w|rJy2*;dz|&)rr%#t zpxwiNWDj>XqGurSe={UHfT@6JeJ@%Ok2e@X!$ZTw2PKMA9^aZJ{ATAEN6_&ip&%oI z)G`sY3HBudNg`f`xcQG)2v=y}RLzuF_5fOR2I>AJC^8`ZgUc&fdOos^-hvg57ge|p zPYE1}@0O+tP_Y7y`)Nq4d{dn{^bC7BNXF0ds!*lFsby;BBJMblYfhafBlImI<(i*vVug=^ZGX@oK#bb7%?j4cv61MyA8Jhq?m zfjHC;2aR1mk}4fFz_+&{_^^ldUq)TO&OZo%tYms1t@E{193(WA%oF-{@#;@Sgxm%v zLDMEA{x%FI(tPiItroEezDMCD>LQd&(~R_AUD24$3k?XP(t}JtV5o0Ph)XkxyRuQj zYk7;#8VRp_^2lD?@PNZB_B(nkQExV@tHI7u91~MwzA=yIMWJl1bEjl88=T%y{ z`@+J)i2Z`iiG8O&qsjxEYw-!&#mKMW-ClFNE+r-{$ym|FwpW_R;W8{hFZnY)iXNz) zg#IB=57`7N9|~<412%V@=bgVakaK-3dIQ9Ste~C04Ja-R=cU-1xO3T;4Lx=QS&k_B{d%CMF6 zz%NOX&x2mqF5NmVgqqJ=jbx8=hY4#oy%+0zx>$v7mWG3WTu~5&vC`ffaDl!}_v_ri zkX*YStzDl3`MAC0gJyLyCGkv6H;OH_tkk_M&5_zu2yMr>(IlvwgVM`LxK`6?y$ZPj z#(?@ILu${UDdE1;`^txS=aeU(*sRpa_Dedz5C91|k-k@A0GKe7&o#h7$$u|V3k<;G z2@JYTsP*bua^uZHE-~fuV~2T#^SH>f%H+B`u8Qxir1#G=b!H2?AwN@{PerP*2;aC{ z$RTCN-D@|!3MM6P&y!IvY;p$8^kNH}A~-{ip_Wlhmse0HIf}+ss`$S0Fd+CL6w-hLUm|LrH)u5A@j<+-w*j`4=ilc<9-;cu55gJa1#9X=5 z8WMAV_AnF+(30DNv8J)q=-n;R=k%s6klH_4hxSwlTU83_6Y7J7Re8=&2u6~hrK+pP z!?dBJDQ=`F>Z~4znTnL`4o%E}?*Xu~?ng`1D+dpto7S~)_|Wmf_AA=-nl*oC$#@wpHQOO#~xenLAMsx>dWduDnbrbJe z(lnr`GXS+slQ?fq>YG_taDW?Gs9Jqx;+bIgp{e;`!F6)(gTB$V02EwN&2vp|u--Ev z(trKOoM85Lzl0==luUG9YLozVv6h}|F0Tgp*O~b{w{`1aWk;ji@Z@M*9)Zw?wUjt2 zsRUY>RUBA>u-0OzT=G@L;&3ptNY5Sl{3{c7FmiFr0`hAwM3S;Z=S^$#Y0!2V8ers* zXWc?-5W#QKBLfgDVGASA=!UP^fh#uiAE;$UgaJ_+ROCQpWxWq#X%Bz?(;|#&3WAO) zB>jDeGrk2kLA%BnZqhxi$KA1Tcj0NDn(wAssr|O;F_@heV;MM7|7$F>OVHE}aFK`& z&UZ2wHsYcL6P$sQAgU+gIp1BB5Q*Br86{7V8aW`_1AL%xrn}tf7oKx}Y6sY;yx9U~ z1%lCH2jZ7u3J;F+ z0g^(e*&!cV;^lw^jm*lri9iBy=*PL5D3db}BH_@ZDuio5zz-KHRrisqNn5`sV_GeE z&vlfU3)wYooH_{9F9dx-C@9F0CmyLj=I)3bnVwMGbZ*@at@J))C$I|>lM3IN50t+~FK|2+^voDX!W2SSA^hmaVr5lRb# zo3XU~E4CPzg;z8{(qVIQ3}yop*v~zhWftQyTIAEkhiG<4~M;cX%8US26cm#s*#Gi@pIoh#d+gNo z`%QIp_orC3H?TT*Mt7N#UUfhVyMg|$NUPdS%9LqXHpy+VB^!{6@}@r6)WDlTzg<#K{bNj)eClI&+!=1BsS&WO$wkDb5mc6AiZQL` z=zJ$&tv22!MFQz3*O|E(usF&537);=03g+sK#BxN3TT;#K;jUC*8<>U=22YAay@|7 zzt<@7M~#6iSB45uNe<{zit88E+TkCc`lc3McTgi6;Ov%1<6yWBOxk=DHHY)$VhIt8 z(iCpN|AGdWlFiN!@K3vQsBLz=D;ArG4!ERzk9UlAszJA zXS%u0uV&}3hQLu4O6RQZ1Te|7lgR~Npgn}az{iIl{9er0#dO#`Cg|hh^5hBDUeJ1n zo8{D;s$c%|mfRMe`GgRV?9RWxLv}3rFF0I@Zgpa{4D8?GU0-fqg7c+jI zI>Bp08=*wmy7qV9veam_NK3x&G$l`*R?M_+-C&r;c6Xd93+Jw>i4o<2FP&=56DPA` zlKP4i^CSj#`QYgK;}N2U7Yz@>m%Hs+u-Xj&hnMesRpfSCHpy&!%67oKi(+2M7(8l* zJ;uedo1;YS8Yi)Rs*G6-5lkC=_}f@SjEZSwNJxc(|CUMxVdEM%>qs#}9vD+m%xCz( zaLn(a@bdMI&;K5K?FZM3UNKwAZ*s9P$QBGe5{5C;PuPV5oUpHIFGJ{Kk z@GSgN=1Lk)PGXh(+zS`91{SYi^oLh_9=$1bcZk^wf z6ntg6%2>&w5&#Tl^3)F8UCr$$4jJKYV6A7n?z^yZCoV2h@kTT;Lsil4t=&>%UnTzL zN3#?&ZJYqtgqM;kJ!OcG1K0nd*@YH4WLBLdY}U~M%WfO|a;4*lhq@!p;e26kqD6uV z{H0gepV5oP$mhur1Pu&-Q-8hW%m3(;EM6P_(<=LWJ^X&>e>Ca;-`DB?m&ATSamk$y zUYyawS!=y?DYEVyYr6X3lNiyzU@a{pFySB=LCg)u1@)3atQ{ty8ZEKpKT9m^c&+Pk zV&}MbYi42U;x0({o|1LC!6@iaSr!N@YWV6uB=FMIxS1}Ij9&i}<-(B#dWdR#oePj#r6<~CJU6{Ix>Eq;9J?r-a?q^w-Xx@d^5 z7=w4r=Qep>n(+W!UJ!l;XHS5 z*(|}1v84T`eYg9fGpDAnhJafuHM;c=k@zJMp15LmVcM1Gu|T4q&X{B|S0lqTT>Irq z^bF%Kctf$)_0tzx$Fi^IIo#AdSL%MOSyxfebFejWFL%Ph2*xBhbMr zm&buL}Ym*2e;+!Phu@F5FG1hOxdb_FFrA ziCYF*g)mR%T}<2#kaGJ07aUyCp)gqohaZBqT=bl!Mt=aCQ>JLi5=Zh0SomZ*iv>fJ zc?YEA!KNb1=(g*3q}S?i0}GorwZQM93G#w4jhiIFGZ9Dh7c`9*-F<8IA94jBn$83j zxIomVdGKBTdsOl1=EA&+Ay`|UGP47MJfN@AwU1UC zTVPr=fw{22mb`tz(o{75X?E!Qr7t(%J-9UJxvBUz>zB*ruS6Zcdh+eH&B{_0yxiRS zdK<1J@NVAx?EW@>t}hJ-uFAiS->~h@%9TPZ+E-}a70P+QC9gQvbN zT^{tpc*Bss<%@S5Ov{db#Z{8O{#?oVPe6<=<8`O>yJbtlrl7>s zT}{MJscHuLep2N>r{eIUI61B9^QNk1hPk(iG5k_Us3bMiUsU_rHPT#=_iK$7%R93^ ziNeC`M#e)J+Lz`k{OCdTsVwUxyisn7Lp?boo9XF2p5wdv^rtVBY1vchbsxW5YRwNs zQU}kmtSPy0zmqk#lcb7A9)vwd`UTbWG2dnRE-qN#(RQWsc6iJ@(1_V;#mewz3DimJ zpAL|Wj97<7@jH5g(c#X8Ce$MM{UT(*LnjUBb=?n=kb25+~?{)dt>g>hd8?E9HEt&?V$$@n zF~?$^5A!8;EaE6nnqF$*UoT|$EYZd!pAz1Yw?FFoyWF8KYvd>Dx2tU(DIf(>pAWg+ z`5vRc?rq+b+$I%D2YKA>tB-9-Y=-mK;Y^l1e@j>*u^%HWkVKhjRM&a;e0`Eurb*7- zI|u4>PN)qxPVywf^|W-f<8OSlykK!E&Ws+~kW%Gd+%ZYke>f7bCVjE=v1Eybf7;*3 z*8h2h*>b)tO55L0Zi}^htNZz3i{50nb-qE$(#XEMIf>KM?*cLpjV}wt!6f3T?jcE9 zF>m~{9V^SDmIshKO|oZl$*uhvj(@`q<=8cHiIm0Qr=z|}mQ=kgHrm`gp-9;-pQqy= z+u0oJ^-h;cJEM1(sVqq(J)Ffa(>5ZUnXoOovX?*7Jlyg0lgS*t66?1;IAbE|0ruL@ z8&nF3e!lz9y)Ic|7(dkdD$!d24QmS44!>`{m*km*%Q<%9c1_x7Q;)nk-0nldHhFQT z>XY!J8qzZ>mqwDV87IY!Mz-xTQL$C~TBPAD;(7Jp@~7VnG3cW|phyR@m&{ zx2Wc1<3xmnnoqyjd@V;i3zqgRa$<-Lv%qZr{qHX6Yf%1jeQ#L*3$TD&p}qyFLb_|G4MI@DCE3T_4%r#w=S{ z&rC!fP<~KfbO0Ok#lG6kiy@oanw@ z&^|my-du@LNfy_Tj7yws#a+e>_jx}jxj)>la$JFSVrOX3i=;B0fduEs8!%oOA3oI1 zwcHQx-xsc+8v|?FMlb8bfQKCH6cKl}WQo@3@f6)22f2of@h?R)+A*H8DqAWm_-7sR z^)PewOL^ocee0fn1G6AGFrIT#J`VPsfnI}aJpL9dI(Vn19Bz?`rxy1qnx zv=h}y!k1jJE~pcA!NOSUy?(RZTdnv|iL0z@Z>U*JgHr#QHHD{)N*-H3VYStHzYe+H z9F{nhuj+8;K)Q!0ETfaA7{IxG@SJ>__ zC`iz#dR%&pNOE%F(f>JW-PX##c{At@FVP>lYMj!ew2)^u{B{gpittIrR|V%`y*4@F zFy;>u1GHMTZ-Zgef<3Cha$ci*(c+NL-hFY0#HF=D%sCqf=L8vi>W4jN#d*Na<&`)( zJgf7%4(=gVKD$%=03R=J>dU3n*AvrvL3c#2jwgN(aJb9pHi}tyUMEWQ;`GB_x4qLI zyx!*w;u>DW(x%@o$KDy2tFmhYPqVBT-!Xog!N*GT>Jbjr6f6fv#z7)1^;cf=+<^0d%p?yA_D{}BMRuS+W2SiwhzCS6s ztW|Z0L9vRkb64aavix>82Y)b3*CDapt|p)#><)XPZqMfpnWJ}PECs*h7Ht~Rw=Wc< zUb^09e62_#6?gK|;h;l5jd86+*M!=#UxpbCq!fpMY#znlxTlC~Mf15YUXJG9zaR-^!l_Zf9O*fA94o>bR$^_};00U3UN$@R01FtmW*F zYIREN8PmIoY_mo~JsGp;KJm#&T>pu%E$4GInQ{gi>RZQ{ACrf!JvhYHOP$|wC#z8S zuL}u>LY>k?Mul`0r@b5-C)I-So=V8Z>6Oy;ou7t=C4xt<>TZW64d%zWh#8EG$%K4R zt>%NnVqMWc8b!W*`8>&IeH_e*$EuhZ39H#h`Ob%g_meEluNk|qjGBM2Jy5WdmUS_y zOO8?fiI^8T-{~aCZtEPD;4s_;8&=C$pEn3`hC!;e$7pLhzr{#|`DBQL9%~d7R@KMM2p7D%RI8 zD!I2BUcPC*W=vyVb1tpXDQ)O<{#dfw)owxg*(qnvrMK68PLqAE?j zDJ{co=aJvIK{4LWG~Td@-_DqBgKfaie<|dbSB&HQnk|15ydrF*F2hsL9dhzNx_!~i z9B(_$kyE>BM+j~(PwdD2TOCf$>1py21Y9h|b^X5Xe(g*XjCxP=)S$1c%Wz4oQ^8~l zY^pOFckU*S@x?ci{IiE6KHDhZnqKpqR9pa)<5)2Bvzen*b(^(-N~C{YD=KvMp1Xj; zB7AYC(aNS#tuI~-&Vo_$2wi5h;IPB_f?3YBYjtYZuMFU63-HWV8!y@@*8u^P^i+%3 zZdP*Q%YhNFErDrw4`L4Q@D6Yh!rvnL3e(0T)%|1YaMy@aW*YwRiqg zQy3J20oyFVPnY;~#Zb2=VP~+z>3gEpgi}SVJ^c6Ym;KPnN!oqtLCBPvL#H!@7bu*u zD9ESos5PVht*)ly>hN(}l?UAA@==Q_**7*FkfDgwS(Xpl<98)+Q9Lh07|u6z@UMI@ zcO5(9b0LtdV+BLNlfCQX%eyl>QGi%*DC}W7n@h!GG%$bAR7JlfV@;K<1`PFO{k+bs za4=d2xejBJKjkfav6CBNT`iO5&udzxCdJGBWcJ-#5*G|Ey{OV(2Y zZe#t#2A)leuKe30GyFt4OzY`S;^62WWNmRt&ARpFGM>c8%!=TGuyj5dtq zr8Q{gH|TU9wfU6J$)~1s`}Uni7?zyLph*R~6%6T8=FG{@R``+K3lqF5`a`9cI?R3r zT?HQJ)4;=<4IWa@{rcK=b;D~OGRrHtQ@+6>z4f*nc*`N#11hgRo^$%dBDNW%Y6~bj zD%sw-)+f>W3MPD{eR^z!w7rf`(&TxJ$l=4C;a8iG9x zYhH!%^|XVGhoHxUBO~OG$dA1~@_8x(qL}8!&don^AZ?mWZoJJYg`JRO+N7l3+LHLP z_HU&)h{DFhQ&N+kR=2c|l-QsVf}}tY*ZV6oL;qCT;^+6M$sU=rj*`L>@tV8m z^4#P4#y_U+ph>I?MOn$kJb@m_Y8#%?1AkbPNba$()zmI#;<)x66px8CTg>p}zPZ4L zs&cK)e_LvMhEkpRP-;}zC z8=x&P1vw!P?InyjFh?lIgYCZ!ag`lr=wjMg1#m}J;AYYRUXI^ zZpc1-A9jdZlyCARR%G2=`#@&-H_aOT$;{(v`faISo{cg^AZUa&l~(?(S(FcV+VFCL zuo0o_s8w;F9!%8>Q+81oc_)gI4}0XDe&IB0v2Lm(E^SQzT*ey?T$#4 zpw~wj2C!1|h&b~eSTiUFj6Xb_l2Lp-o}x(Jbye0obuOaMVU%;?*K-CigZ@)v@|w5; zF(Ra(+9-XMKC$_L%<FE7UBFSjWK1ty#-r8gux9b*yqw6;y2B#Z)(*&@HX1G;Zv$k4!scYvB*3 z>pR&!>EV-YW-gp;RC9p8$FsujKW==r<}O%E8`2jrCLP-?WpyBUs)zhmkDRNvpv~u) zQ@+<(t$ESNN&B3Fz-e}L((L}4P9nr6#?|a(h`84d$$qPg!zDR(ZutZUF3X_GzJ$*?Tav7-yuF;`&PwRi(I=3S$CVBAIHNB7BdRi$Ri8s%>(&Ywp6y` zZ9U9Aayg}^eny{#h8_mj^^D7ol-RB%Vn*X2mgMnx|;U#1RF0JS)c@_ zmbOLM7}XJ@YK6ND-a{SXwEWytR3d^9!zA9PAz|b5Wl6mUE*uQu8hUCq1y)9#a{T9G z5qABju3Yh z-4|~eAyRW0ts>=ny*I>UyLA<94}6dM1UkwU4-J~Y+O;L+DI9REv5(BZdM(iR{N6n=?W-gMAzK0e z64|nU9{ktUX`PbxRE4wb0TBgnlh4an$!HVw=f@0cu#OmYI4sxQ;!V|1T_nXNr$c+& z@F--*s5o<|Z94hl@npPwEFm+x%ZeCT>|OlsL)+TzOdS~LM!rop%oJn1I^_I+9T=RQ z#?3cdcoB@x;<3yN$5(_Xrm+k9I;Fb&4PDYDyo1UttL4ti2q!7XJWw4uc4B^a^T(eq zx>R~t`0cNv?a#+wZE)>co~OE0i#^!6C$J^g+w>m^$c>H@yiIZmfUHMiLvxZEcu0@d zmH;zKk&RVBBWLiVu6vlD^Il+NlV9UW4HaZE4R&Q^NnW(=Kc4)4Bd@}qOJgeRRKP?)= z_pmvj>W~dNndThhuDm2J7M_aVQ4z8rNvAKDs^+1>eH<2PwS)^pY^d}e`z@+ z%0v}I<|~uqX9(US?ty%PES;Hhqc2M@*YO?%tvehQO-y>WIg>mBShBJ%TYTTdEp*yb zppw}R`%r*VwMpV!&B&dvaBgnS zq#I3y{ha)^_{`5q4g3C~gYvJSY{}Sn2==h1qv3cKEEuPCwb?BsA)$30kXb@ZjY%%o zVl?l5JvnIEp%g6!!zK6jlt#$Y5!Vc4>Y zj@vmQdO_bN7l*F?^VL=FWgpH$!SHJT*t3%yWB5WwVP7$XO)C0j z*=_>f!SKj>PIWgfyWPqk$#+5-h=t(mzC6WU2V2G?AX%2gHab=*5hb{4u7F?p!jIEe zGPBRu%jwr)w$-LN?mOJtaPsN}6sJ^Oe_MbhcXN|w7K@|S9q-Kgman;h_4j+E1y%Fl zDKLx2u#JqU)5#XX#&5|eIgapegN+3X!l9w!ZL#@pFG+~;+M{BW^=_hL}#L~M+ zP>nGwDJDKiqdyfe=2?Kk^3a6*$Z%pD`)}N2QUL3?;sT4ahzQ&2V6o0ApGguVZOHg^ z4cL-nB+5+w7khsiPWAe}fx}93pW{b@8bKbGPd+*BTjD^HtH}SmLKT_2Yb@I~W&-=Uwh}_dG#wY4=r_LDmSL-M4tb3m9~HMv${n zQ{8%vHG86++xFLw`?4b!-s6NBEREha=rYI{EV?e|A(RbN&&llYzSNSh zo7}Z&Lcoy=J6vR@2cnFr$W0B)jWZDdjNg}AKbx-GQL~fY@-dHU23)Yar?Av5YUhA|69=}{0K9cV7>gVBt zT;<9wjN^7){RJ6DRa{G=xyyFo3^X>`pOKiHkfB+!3>XJCkZ@9gE-AO6+)I6`OP$1jo$`UTTlV*c)RmZLk+>?;ZI)&rRS3tV_9Lox^*(O+w z(dRba_|1jVzbn+`vufv#jXT8J;$mhd=o;UD^PKDaD;~-h$W;cPy(@FIW)12JdG>7x zmRXZiTRh_TD4WLRNqMX%(un*}6CQ(WqJc8*LwEnnd<% zxfk9~HHFHrZ8`?TOjW-VOaJM>T_fkBu_fBb*1`|8AfjqImaO|w%qxEie=0vNT%Xdg z(v?sg*`DKW;jKGEMNYm~Q(&5t3;;HAZm4qV7?Ei>S# z2_l(m>$%S_;`wO8?ztcLa``*xeqQZS_??q|IyE!1X;@;&cfI_u&J0P56b@Z;BCXyx z#J!Z+7bnb=3|}S`|4Rz(yYkMFtOAdl`~Ld)sYr{k8oY0mQS`dR8)_ds)mt++^d5*# zB>!nU2Eav8I5}SYIPs*>WR6nCuT;VaD+IYNk0QOtTA$C4#_e(9S>eMcAsufhB=~P| zlNm=gTiaFm*{MxW?Wl51NMWs0eB6_Z$gx}d!*oDVB9zmduysB(IU1?gURrqD?a-mI zWupzjKl4vf4=AN(uTh94ScGFUIrIkqQljtU!s`9RE5A3!USr`!r#7I+K)us?M{93{ zxuxn~EX~kl=g`z?-aWGv%J}~a%bf?*BIa2t;8^=@8+~;i5|f%7t=;jLhUS8WobPA@ z76nL^b#~zciF2<#Ccn`?740?~4w)ExpF!8EsgMiAI&yUJ$|ZX@-XSo^rcaXwq*n_& zqx&-8paTjjspo3_(yf!RDU98%gUVD0J67=e-hMaQ<qF-cTQvghSiFC8a^h#0_X#B`O3r?;BYnXjWOR&%fKqnUJ z*J*f=vGF{Nb&^8^aN1rv2MT2L_4A8(?U4}CS^QED- z28D{*WcJrM`Ip_giloF6Plm)&Pf4L68emS_$2>da+I7Ez3aJ$cxCqGT-S;7#Xi>kf zK!&hzzg@YCyt>lIAn|~XhZ-r&&7PzH5c>In5!Lu?iDSp1NWw26ST8k`Utsufm8MDV zh>EL>_rq_y+nb{L$kB`sLxox9G(D?KsD@I-x0e5^qhWUIWpaX5QMDR+#uGYj(XKTk ztCYTKcq8#=tuA?H6gEH@Y6`QR$J`l>#;lLSrMHt^)cE(LoN)huiX108!LTUf3X}Sg zWJ9w`Nj`&gZ!FwV$nobp5x!=Pi@|TL^$=E-s)z0{I) zyYAgOt?o0_wZx3y_0S;;JSxe(rBm#)xv4SzXK0hT-BrVOgq{9s7|Q%=xnjkVL#XJ< zjHXW)oC;^S53d9ALupLjZ5`~)a%*d2EuUG~SsBwTqiI~EbWrZs-G*()S=8w~kLhv7 zxSUOQLwW?i;3d_))SKjbQpXxComt_-R5(q78mZQ!f7aaArH5-wXZO@fspW#GX2&Xj zdz`&tt9Zhtrc&zsL1oi8oGwgW_RB76A6i4g{b!kVbYc7~OcKLl@MCt>kU4OmPM5-5^(;Q78PQR>aP!91@_Q~ba|QbBv*$~d%xKnh8>nkmR77liL!e5^((~u#uBWNTfP_WHwXQ*0@cR`| zL@JDkWl~QI{f#8G?kujq)PR3m1Hvg5Vkx@Ygwv3-oTXs7o47!b_=R=nlBNrDe1o6$ zFQm=FBTfJ9?I}A4em)9>-s`k&nP*OVhq7(n=*9fnuBPmaU76ok9y@jZ{Q2xcs!8!06h0mWyTyRz~W{Q(2FNYcd&QxD%=vqMDWB<=>}`<$%t@f9Y7I^M+Mt@XKZ)v2Y>uh!3F z;DwXVu{msQ$H(PI7*0OC5L*R6*VdumzMPcUpHyfQn>hQma}!1k7yB0aVvYY?8tqD1 z%t&Vx{*b9r*D*HZkuiy~`?=K0FFd2eq`;}<@LHd-HD%IF$Eyd9TgCWPZ&m3DYtxmP zYMw2w*_voN2j%{^L+ADlRH<1Gv{lHn`(6~%Nvg(O)amHHq88?jGM{maUc5(RduA{_ zIyyRMkmVj~nVkDs6|t=vsua%)+hbVjdGC&&Q_=1g5^cNq!M0 z=(HBABZ}N4TRm3y=CW~qCl}i__4=tJug)ZWb{g!vJX)sCIN~D(9(9fY59ma^X4v%M z_an*q91PX)vFvj)(&Eh`U$z(RnFfFx(_FiN>DajGTUY#%=F>)&iwkFQaLMd{BC&%T zE-3!|DL{yCc(|*+s&y219cLR$zD`fqa&C5s#$E2wxU_ts90mXF#La!Rm60lw{GEBK z`XTb}Stky>+s`LucL>v?V`+JIqfb=S*6zAj1(&DoX>zqYT9$cjQt};fx5@kbJb7>- z+x{4WRiQTS?r6z9vDQ-<>RGSbZnd*akFhxi)Chi zy+32PKYY5e@^h-G+9Xqgdh*mM|8L*QG)twhK%Kf9BDbgnp7!;`g@@2OW6bz*7ElJ9>WzALK`KD)22f&v2S7f7px%O{$KyK6f)UiM*3Nmw^r z$mC+l`{7?VH0aS%FRQ4jN!%+f*>$|Fa|D~Z(A|A}s7B4>=PK&(H`;5H;+@t`oyl11 zk&%&0h2wYUjl4ZIdKp9TRLVZ;Z9xHt zJKd|pb*L-$K97XnT-V^>U~UPU5Sy&_t&9SM3y+w^W7=d-$1UcPn}-h{ zp5w)P_wHQ|`uzFxU0Xw)mrd3W20VEZ^X}cDLXYk+AFA7B|EEtInD)8#UK+^EJc>n+ z9zS0F=5ot#t5z9j`tiv)Aq*GwCd^@56aWe$0ObbIvB1rQb}Oy&OyXbh*L2ueKTk3@ zMd=>D^Ji~fMZU-6fD0OQ^nVE{!*;=~N$z|U`(+WlO3qOI5M|pkYiyQ-atSuEOwIJo zfPL!3-F0r5B(XIZB5La4;_9pmUEM@A;wdhna$at>H0=6EDqfyg^ZB!0143TMX_1ru zxa?ef_3G6-u$V4izRWFo>3KBw3yJI{*U8i`-JNrGv7l>lNlEpG`#g@_>9yPqWDV&U zx*W!gh^EoC=9Ux}SKZ{2Z@UuO+j|LfQbw`+Uc8&yCGovYjgjXr=04_78X{F?$Ca3v zD9@tC#eG`o%e(i&AG>mT4=QdKEziH;tgWSGBI8`(!{scCmU$hT+;GS#4UH|wu)1;K zd?mTOU7f+1^$=^}pnir;&6mG!)PcQFGJ(SM6~OYHe+8&Y36D9{-r!wOd) zpo&3V$u92_JL{+x-*P!iXlDVbI-YHHQhYWnZBFA}atPcJ6uG(rk8`4+Po*0J)^s#!zR&G? z!lOLm4J0#KU5rEnR$$xrz892Q6zw$tw?k%10khKOXgo!-AWk3(Y8kb zncoTbDCv`QR$z_?z65XzAy_QbPtGIR9S#EiL{N-WBuOJ_=7_!4&pw-gl*eN8nb#%7 z#FT64%%2Y0I)|;7oEcc=<3yY+}5apD7dHdEM?e6LNT=#I35>Edgl1g8{er>=}6yxJ-lN1?w z`2G9$g1dHUA3uKYh%fK4FDv#3DFcl`CA&>CeRPzukk3vQg2#>J4w!)hp|+fD-`A=J zoS!S>JWNUS?nn28rN*@mbYV~qY&=F;y(9PL5vSIM`GF;cnT2`~oA!rJ;@sjXm*hu72^&2j%QgGK zJ}kLFA-C`})Y4>1A(Ao4uNjyd>NYGFXmvU_*8zKl zH01l0`@rt-irn1tN8fa4}L@%7pmKZU8f%Fh|LjOT)zr$!1DDAvRLwLStKW^Q~&8xPv{ z?P)22K3esbQJh0i@P z&EGd|5}r1@=@6wCllgQ@x%S}TASU&5j!VD8aFcUqjgC>x?N!?j%I#!pox@T;j|>yX z&P{2?nIa*}5itYtp$}tOyRx;FWJpEcX_*dP`&{`}C^O^0qw$F^fK;b5aMz;k7h1bP zu9Jbqw9IpCu78Ib0hnhx0CVabC0n8?*!N>A-*z_!>y>q|Tl?`8+j_Z2H$8M@R5swx z!8%xC-9+$H5~0f*;gIycll|5lKfrwfZ!V!Ti<(ybuuFHUlkCdVpOs*RYKyI$8RAy1 zsarGR4Tm@cU3C!=k+|gKpv@#N7Zw)osCc0i~3 zzP#hR;-GVdSK1+lB+l5mUifmo!d51tm|Ua-d3abigur#$t5XqzF2w8uh#Uv%t7e~$ z&lu&#UfF3MLL>O^j7Y`$bv*f2LY59rfiuo_+crM|v3UguR{=8(4Xam-I!>l{(Hf?| zimQlafg`AiX8kyz)0o!pqqJ66@crS!4?;-B20`I%A<~0W?xm(ge6ILMVnosrY|(0f zlfahKn~XEjQ$VAEyR%*NG_&;seZI&mzMs4yRxU1~gtba@OZK_-Qgk@iqyC`Eo}OSI zrdikHU|&|{_1D9~_ThMifpa?XYK&q>qCc$RUlAwmdK$n_B?Oh+Nss_WfP{`QUmE1x zAv@9!mNl*C;X*mfO|9N@4H^_q;Mx2)*Ferh>fOv*tdZ^ZBOjf7zBP6-`#Y%mVL_u! zj($Z&U>lcx{R{CJIxW6XS&w}$?YoG+mEDBp)*}i4zsBZgWq+Wv zBNiXzy;)9vf9)!N`rxthuZx7Sy7;^mOlGoxP@DW~bH={h=5bV!K5C!w=UwZn+x^hmbj)a6&Px-+Sc|8o6^hG^@h{;k1GH-c~&9` z7aosN4ejV}6xOGlZdky{+cr9y)tMxUv)FukYVv^A$FA+n^c8=+e!W+P{=MkYAQE!@ zx1s)NI4cxC*0@b>*|sgb=Bw&0LwEPwW{+{}TvQqUW%Fzn%g${(3UCc7RQjqYI^J%M z53e)&SW>zTR{yl}-@Cy85bqXUMPGn(%1DQ#C!RK6PY00Po|&hw>Tw+<6Cvt%8oSz7 z-R>e9cprCMo5LZt%uOv=hhyXr*8K^c$q4qd){GHDlzR^AuDC73QQ zuKlGFH4P2i<(au|3yngz$;mZUGLz2omPqk+2f^0)t7mU(&xRw=**drEoab?u-kcT(kbfA8_CHYXQ~D*Ob!)T?o?9FPvzW^Z+GV; zE98fxY}4mbm`K@r;_1t^hF1>waPs*V|5!4Z!WQ!5$cZQ4M>DZ^p&ytl&4NgD868oD zRe4z{IBpbzpu4+rJ(N)4PT@vtFljV$aBghY2pfm z10Dr;UTixdF|hlXr$5 zt}6@q!(BUebl0c)Oy?~q-}*~$#Tx(OIT@zmnDBOaHL}d^bq_k@E(^%Kp{gV^3~_$B zFDPhC;umeMyqNUo`eoUIzM>x4d!MV5CKXWGP34q+HCv~e$BxqYqwDjQM~Z%Z4IL_X z!<{hKcSGD4p+M@Rdx952htV0LN+d|g7SF3XE-ki82OsYc+9vV*&h1PIhDDvt#GkvW z6*F>!prageuD*Tb9)Iib6Ew=5Zpe#C>~jm_bIz|Y=+^oD%P*K5mz4d@gE?f4j9gKn z(`~7VKzG`@GZ@U>#_Vi!*Q{S3E7S8v5zvO~cy~s+S;g;UY1_7S4YXHfjrU|v4tf6k zUi7>$4Tq=Ci70IzeAH_ zt!@LV`_&!#))}+qQ0i3RZlk2WmO}lh0}E3LGJzfS!)0yS;o4Ee;xw!Jy(fbA9;S|# z+AflvyGR*hf|iS3t01e>!a>Eutey7DE3>&b&s}x&^f7->40?hi>D$W9*D5dD{E`_c zb@k;rnFoV*l$bgyy>iV_whCdWCBEt+<2WtY21!7grr6c-$n-gb0$7ny){uT)Ye5b} zv<8)5HuB3VPwD1++PMqZlhc^k@4Nr7>Ce2rK)HKvE3+fwdc)73(#5I&3~Z&`RQ0M~ z8B0hN=(>Soqp4Fu+6n52;O7{~Tb`5MTx;l-NRAMB_pw{9Z`iJ-9ztk1a-TaArMLM| zSG|RWMP;FYXF`yXM?J;vD0`C z<-p<8S-7U$X>7pU#ME@5L+ENDZL^WyuLiERB!-QA^#S*bz{4RR-)OIPJ%KtoKD=;W z?S3}|!2Jt3c^_;BZed;>b24k^(r7&xg)=km zPVa8VvlsIV4TGIuppj(QDk#Y2%E^f7Ve_?d)z!E9~5P2GQLjX5882%@|E# zso?f{1Hvms3fJw?0d~3U`fERDR`r(^A3WJM+m9SA7}rL%faa?xWZ2m!u862#*OuS6 z&~Z!bt2~On*N^kNvfflBS7fW%J)@oA*}Lv7S^@7JX=OO;uet(C)_t&QnSAG0= z)a2qtK~Yf+i6)0fHq=R{Vi5q!gSU98efMoo53OCh*0S+Ueq6`VQYO#uuz7`H^mB5`RRaJdW4MVIN(sq2Yq!YBu z!qRe5`>w3MOEQ&ilU=%(=0DI^C?JFn4|gBZjq$l_^E@glYBF@>9H*>Ds|=%Jwa%Fc zET)uDId;j~&0C|nZ&(sJ9WD+>lTm>avtj}Vw> z<_YV5w9Pkk)y6_-bj|BH#n}WygVk7>qe?An1C7z4@pif0vTh*B= zK%9_1#RUlIa5oII7_7x>J;vz_N{BNuEX8ysPl{Fj`Crx16_32G*Tp->Rg{(Y**42k zhrbTxvvb9~d`W=J+9x8$)u_3|OHF~b1Ox?{F1}dyR7_=ePVWuc^2jPy&)J;8&-w?v zj%Gjm{8@XF0W%avE2=ajVZF4Y{mfF)G#1DKU^!KIW<_@)Nv=$GKk~1~2HIb&*mPw1 zm3e0$xb-K7SzITAr~ZL(`hvt}`oN#(+yJ~R9W1B0JY0K7zX6~x=VB9dtJ}n^tY34& zNc@(Cg>-dMixLN&w5DHwPmu(0ip*@8HKZ9kkQA$wzk=SLCc96mGPt}cqjGOGMr(B^Yz`H?mUqs4>2 zCV(w}bj!}2$BjSSt4PpI{cTm%iK$E{w*47e2r<#&9(oA9y8}W)6GK9Hn?MAFee%w` z3Pv>}4e*7lhwt6HsT@nEkhmgUg&I}7J?w=pQz&$c}#g%U}g zFbBi)w=1?!ViOPP5eK zvHWefdbuw0a2Njl&#L5CEuqsDzlbN#GgIecYz1aUuyxKXCc9zt-o1MVMq2zjZ*L1L zSMwaxK>YM_JqoLd?SOQ^DD2bZm&Fb@bosG5yfvLd=^)r^q};Y`g(*NO=dqnG6n zOWUB2IMS2Tud33UY)T8G)TUeNXWB)Ed5oEd51-W6kN4qs{aEQyDpou1%>2rod-t9i zZnXD{bZ^da@!gnH`bPF;k$=@U_d;%6Mm6OAa8<&6!riX$&!BITR#9ShLhZqQJRQV<#LkpxEuoN>t}E^8ao1 zDxQvw4o~i`%mWuNvU+vZ=yWcV@BA={^hBlGv14{=O6|&-oTX~gnvmwj#3yAb>lio& z=;`Tc>gvW4$T%WmW3?hXn*)1~;2+H!MUUwLGRqtJw$z=hQcYtk9G)zXVVO{Q_lC;w z(K;NP^eG9O#uzpE(L)+h$7gwl39rhyI6-%y^R8_XK33z@)-X4#0-xKrZ$FiGjMGj! zV{T@I@dw8vTx*UW>Bh>9RuXWp9+Fm=>hq(ECBHawzY?^F>0;igpFz}WKsV-6c`-2` zE5)z$o~70nm6p~35$3S=9IFbq5;Al027!P*Hs9S4TLoptZ~Xi=nWyOM9k(WJt+2<&RLECG*BoyRzaKl!iz@zyyYBmCc;-p_}^)}4H5}{a`=u7vjjRK zKyyAM$K1+;=-!{#^ffgnNA}ojxiV|85X!2mlr-8i3EEH&rrHdU%N)N{pkd^#Tc!l2 zM+yZ61z+DI8pv6>#euR}Zvj-3Ktys_6G4R5Z8(k7|L8tjuc zL+-cXmS~MUI>Wcbw8#jqGg*7@IB*@5LTfvAv~C>x2{09xQlp9$2v zL+-uQh8gI5S)l^_8Bn3w`FI(yUoMh(B%Ma>7il}w-(K|Kj6~grezdd^edeS^hh#y6 z8_HjzF!%E6t1X?Git@gHONzg!;2<1Ckvk$A_44IA)BFUC5utyqZaO}E_^=_(Tq8Sf zsV_n|d3l;K@WsKdR2rpInkL(SZ?C8*{c2tYb`>cIDyQ0B_<`0gO3gL7n|`N+kh<5B zHPqG5n$xMCo<5C=I)w6xI`OO;HF2TwTwPB!xk1gKc`|bV5B8DD8I<%3GO<`73Uid$ z<}CizayvcMl#8ZH8tn(YS%mkQ)YS_|3tfM{d-cGODpzt{%u`x)9Z}aR%JDTF(N?vI z@i|Kx&>>7Shhl)>BCn^DO+0%l`_4cjSug~*A9{_E+s(3wm3%x5raiqs53L3UcD75y zJx>5{sM+-UDPmWULdA&-b!*$e<(Z-TGVxE>N_jU@LJOd|VRu~q`Up}dJ~^)=_2=31 z=l>K(d;#Me69karIU?a2P39{W11uDxO4aJ(n0GlyhGN ze_WxFY3_%fUFfyw{m-6FRWL0Vt~w)|6TR~t)*QLdZ8Dj>E#kDTfM{UyX3*DnjTPdyX@zXiRf>~pGp|3yueqwyu<`_r; z9+VRy#fYje<=2crEs;GVC+Kd4Jm=-xP zaTOAX1y}DAe({b_Qn|iuZsc&Yn;O}WayG~!vVMLNazxOh#7Y}&s9g`7EpIT>~^WnSKBGkX!aj3KF_i9befbeO{t> z4(+(n4PS^9PvAFIv0F>*ZS!jSCP-&M@(*{uV-{ntH$Lx2Kd_JM(}u)ZX07}cbC15} zajR#^_8!L%L5vZ{U{-?7I3`D3}#UNI>&n>3xFMV}#PTq2>dF5K(1`681^HroZ z(mN}s%)KWG0QI1A0Enz&TPx7og$~UyRLZ`<53O@&+Hx9tDVA;j-e#As_tvVpM*JqR zjgh5&wx0Hhoa2?Y8MU1@)WA^?S32l2mn+s}q&Au8D(?J??tJI-eBOhQm!_jV$l&qF z37FCpuk>}mHz3h=H=J~a7lkruODi?%SMu_jKg5_qzRg1^4dAN~gS=n#Y6jXGxyxP9 zA;a4dk#US9EG+l^P==UYk>DRsjy;fQG_!>B!~X{h;u~p7sLEHaS|vB#nPBN~A-|&5 zvEkJEl@V2|JGojjo;+E1pHD{n?i%6B7C(g~5#tZbFU>1&&vTnxS1=SMCM2scT>P;o zCC<}a(R)2b1+;c?O-Fx7obl>F3$xHjX4NCUN;UAPffPc6fpw*}+5l(&rTJJX&2fZS znGooX4geOc%w$-nU3y3CxG6DP0euz&Yp9rLCavp%R0n5c&B|PG<|k`j<;Ojm`dV>V z&^`C)`}jahG@iPi{bp9+3Lk@7JQT@$q1=iA;ug;z!l%walyL34ZN$?s#yO@M6P=(x zqIc*}_PC@++y0pj&=dpoEe}t^e+`nZFs>2qwP`Q(EKNz5$eZjQ(KMm};qu$HWUzc@ z2rqH|TS(@x$$e~~!q0QUSg!Bgs(CzfZXJR?ccuT7fmd0!Yi-QpN77x=!2MsR5hEgz zwksG1bWEQ-)vEcb_*0RX73)f?=Y;nz_CBx|)^uXOM0?&s=mxE|J_ZVurhqDfu%!^7 z7=5Oiz=*?JCouqVN&6N|5zCkEu<#y&Dik*m^B2Z`3-H-0BTfV_HZ|cq$=|FI<$s?x zW?(vMbEv%E+M`r zoVl&|)iPt!fKuEOoX{K;b)^ATP>N`v=+06Fjf;f?nbZq#mhGA0$kPrV@-QH}W`Owm z2kimN1PVU0uE5!699^PGSSboI<9cfM$aH7(oNDw|S7FiY+?WlH73s+W*ZS0h*gd5G zj#N((lY}HhC&mIpku$^|?$GzzEyvI#T}5F3#hzO?M+#!-Ri@dKKb}N9J+}+nKpO^2 zftd=he^TWg{g^V;1lZY8m-zsG4;d8@Xzye^1U9h)G6OYzU`c#-gpT<1Y)}32{qlHE z>QiY|K+Zbf=U3dxZCj}|k$wiILBsciW;)4Pi!H+M69YVuwj7=A#C|OE>I1ZX-U9jd z>r1lu-@@2~*UoOb*0a;`Y*eH$Iv<>LR_x1;dS1Sg8J~ov)IFpP*smuz8YG0%h#Xxj zFd->n&pcN^fyyG?*{UeQku(1Y>mcTGJMGV|LEnj#U$V7xex)!{If5PTrCq;wm^j3w zXl{|!!NEdW0W832uY3Ck4D58@dOOY1F4p5o1AqKcjs5_#&Gl|Pyk6$6lV{3hOcX!@t61>uD4OQ}2?9YJmnDo7`Ygk|~n#)O5MRP6~`iwbWOdL=tSVWF}Qw+crqj?=`3u@aENlVxX)R}rEglFfEu8;)7hXLMT^Ss->4;g+I&MK3SK0|Uv~XWJtePLtg)D-|R&2ti z?1?UhRO_eeE5^Cu?GV3_ArJ``Z{suj{_NjMTqUTR3-v>Bin z{JRaxdk6>HoXN16xnS#>@FcSQsns0^$anUex=v3H4~{dYn^~7FYm+zz)qmwKZFb?d z9xCCD8TpmXKN|%Gk`1p_Cl;xGFD_Vcm>v8sB?%_AMTHyk7qVCF{-TdSRtG^b^Z9D;_|vfbzlP_VA3^%xgY zar?lN98)MEEq~^hOX#&nsngRuv(NqOe`PybEst*Bxid$9o(!#alA!!*C6C|#ZO8D>AN~K&c=rFgs(v{m)_aGPm9I_5(a#XU zKP$9gV{2OSKP5GJ@N24-hz+2d73Ka;_1Ur#|D7rQ^Lp^5`B%a8@9(qyKd8ZA1^<6c z!mbf(!C%ViSpD&e`aORcyrbmb5t4qf_3N{GeF_kg#q0LM?#$J9{hM==*p^@A|S zAd<7qJK*A?lFYGT58{NkpzmnL)V^xPgV&mO=(UbYp)a+%pnV_nlNbEtFl5Y`8G6q1 z?+li0zXSz!2GZOslw^KU{Iuzwc=(qM6Za0ag={>{EOVqbyNbD2c5K|p#=K-fYrY-9 ze=52jBHys^agz(-wE;_WTY%5*p36;CTY8=8*C--iq$8zin^9rDwfaNtt$-}T4s?v(taNSco=dDB1uEQqxuo{Zcb zgnKbs0n^*F(0BpMKQB`^;t&MxQ&C8bh(UdH%#1)WY%b?z;2G zgsYEE7P`@_`|U*-RgmgRBiS?UK4$%lrT({V$GN}WK%@s2sXn#oA?wcp)*xR=c1^wU z&%81nw?hu?+>E}mi!>TCRMO`7rIWJHJr)nP<(SA?gT{!jAAMa58!<4%C~dQ2n?%H> z&l>v7vL6;=w=~8%KUq|bk(+1|4j&TX{*CR;V?v)aUgi4e$?K=OLDMnNmA zY1AL=ddTogW`?gTvuAwifXo+uKesS?|KuX4UB5<+t!(XoR-0)g)+fmWB7XPRMKd@a z?-bMk{pH(v$(Sy{%B^MXPFB zFcwb7!zgI*S0aqG<5!0`P{m^Robiq$iX(+?6JEpe%QefRW=(APSQCDntR13Vv$k&) zU*h}GQTyPUqB1rMNn=c`ufS`rCcs5P5ULtJ?tvxVhzwE+ISqeDEooqA4Y}6w-67wR z&OzKepKoj2j22h}w$e@^kBE8=rq6S{ZialWLL?CG&x1R3{m@B7I&^&)(bG4Fx=bNk z;pu(yS=iw06>5_)@sZ{1t~b$bAwsTdThscazG>Zz%1fR$e$E z1a=#Ot{p21SvMV+qehpz?+1#ES3=br_rizZ1BGtfSKjxE=Pu35TUZ&)IuGS1wX>$Z z-kOx!r6^EHgOT+(tcfFFC|5efA1T_o18O-UUkYdV>rRU_QgT6kD>8b9Yf5sN6zi!M zEi9hlvEriLi>@RQtF~4NL&p$HXDWh=CY(vxIY*IbF3`*@M;8>@RNSXH?Ww8PCw94` z5HGe**H=STX|~({1f;z2^g|=b zn!eLUe;u-&_0A@_F4A)=b|ug8@9O!qw{E+9yM!c49&IjkiA|EVCz?$m+qV~prEF#J zo)TC~NPB!=pSIE-A9w`FwO=2*9P1a9HqwmzZK$5Nk&^m5T)a<1%YC8cywnd{EYoY^ z3-4v{wy<)4GCihdwPGIORD

Jz;ng4dT`Nmt1sSDdTLm={Hmvu#&r6))f}ol$9PI zRfn}CM$Ov&d{A>%e@v?1ZW+dDBcAeHl~X7ptZ7EWA8&dTelzq8*O?T4-g+9Y8&qmR z~he#O9(QsVI*1 z7iDN_O$t?}8{Pn^!Sq(641WxcdCq)ghP&enM&`^qku-AupX~V8cQ&Z!y;Z^bBK7jB zvwcp$3)ZNPMIcgIjSq6>Z{8dkhXcd<%~qHUQCeOt^?_>@Oxv1=hzV1#TQcjnMA3Ui zJC2{q%KRwe5QI>P%D-5WARA4axEjKYIj>6haRy=Ad+#}l$0Z`dxl2kPW4R$ofU_tu zF68*@w`|jT%otq3+f!*UowfM-QlMc0tI_@&=lLw6^aU;@tv-}T^XO(uqfByHwUu6$ zzM0sH2iOb=%<$@@pGH zu0wlh>WN@t zn`6vyno~`b66m4uU=imb-#JRzecE_QGGa+O_9=USWe`!cQA=4=QQrRT{bN3? zz(u;1CD<3?OIcM#(|6|7QmsqrrgFx}xckn)+aeD&sH-kv{es-sPBxlLMJ%;QM z8cL9M>drOjX*K8koryCGfmhi68&GM%zTA;_$%F87Z}5I!GTDqiQ#@aj&S|05Y;TJ4q*I{l;IUJHN1%*v3;om4TLfl+QE)V{PY4`B zz9<|Kf!NkTuVJq`l6-ZJuJn18)I4b;q$PoIy6HTHke#wh=2Ci@&V zDq$Ug7n$iG%90zO*=luUq{;?p1M{?O4R5Z7$(Y=*Gd_(%9gX`TGk7>rL>5ZUcw!Xt zQZ%C0a>){+NI!N8t(fB>3jO^<>0!jZ7e;Rly~{LURZ#C~`)G6NnBP}#kEU*?uDPEf zl^hg!)Klqoxi9Qhox9uB+`@&Qnlt9{vVcE92X=9tGk`#nSJZIP#Bz)v9au~}uP!$t zb%*V!p05k!>;+E9#>NhO)hx(3ha;^9A%b-Ftg{8ek~PG<9XP#U&%zu(0qHNJd|jQv zbgvumm@hZc)w$BFgY#7&h*b@aVxKIlbq&pa!egHFY_ZWQDk$}@(yfdeHJO+dZKPXS z<;?+q;4ioUBMxp8=gp>ZGehw!CR+*I#mEgKIRA*31RAalAi;(!ZX|S-q#ed z;^9)4j`pFlPR}Q9`xTD zgRd0szl^4-LXi++&@ldt(ZRZsAf^6|(~i{h1d{}%+!^6%s?c(($yY$UObIS>ZwC~Fu!y%< z|48a=`$bOGEcQ&o+Cn6y`}qp|;kkW@RTVkP$?JgxD&`h|@VS`VnforWlK)jdre9r( zqHtM@lczveUNFFn063|_Nl85I88y>C?Z*#C$~k+MORqR_gh3mGBK@w~L<8k@4-BYq z%QR5k!33QQz-jOqdu9?g>}kfa(*5^)^K9_GdSmFfvtINY$zD+tQognlgq%E963qOKr9Mw25{I0A znWFY!y4EVE>8V~1BcNC0jiY2!sxOhorcmjV>&wq9%l6o*#XEy$9siF%TiFsEi-8@= zPUi$|G1BH}^dQ4RBxUg0KVK}uTz=PKYu(wTOKqiR4iJGorl>(^PLl(D(B}5Jab~;1aJ?x)E|Etgf#}4L zivgnr*4pa4ldtHENd@1!{&ZChYN$yaEU-`3h;+)>!G~p|6)dTf(Z@H=OZzyT^FGCz zvoI@|ol;3HFv-*8lS}xedjcTA!6WveZv=L-xTQw=d1l(udD9nqelHvx>+WLdH6Zr8 zdu%JQYz#s$<%Tlut0sN4R~%J|Je3Q%a-3UfbNa}!`|IS&Qm7>9T2x`q--t71-_`i8 zgGnUz#)VV!d<-Ai);a0q4_qAXf&oyt@s-AISW0^jBDy4)>?*s`rhmrT8s5KaMWp z4rYHi^}*UB5E{sndjb*(c5hBvUc5y{+EdWW-I$pq@-%87h2WardTQEUhtipD&l2 z$$qVQPS4m=+On2r65lt}fg9z&yEGQ?l?v;_mog*gc$h=4qG>~ zqVF-UQRtd%i^Lv-9= z91DnCuTWoxRNppV+doWSR;|BwqN3GpCGXo2cp*`OR+ryS?RuDXGy>s zh%G0*mo^c@WQ6$b+o<{CX(pU$_rmtcefeUv!FZ33q-8>CxQzY&vh4HWeD)hE8E-l* z08S~!EFzgi@FentkffpdD@>%N+TtUvba2*IVJNf^VFF=oz)XL zZo|ihT&}`c_u4@jCoPTcC$&{zj&I~m?=KwqC2$cwVWj5^yF+2)-N-3v9;I4>0Nxhz z-ElaDOmmM?LBFS&TgYf8P(0FPD9pINpCA{ISDC_MK|aRqr_TKvnU_1~8@f1Q9pUiX zk0y&Mh%weTj{}z}a6aH4DQ&U=specgHJo^hVyOFtemsqrWWo?F-&ovlm|R6>T*7ii z{*B7UqrBgE2>uS&1lK+-2qle?gI~JDlTQ}Of3em%T&WM)s&}_gzs<6?VI>f4t;1vZ zta|TvNKf|9f&kap{&97{l!Se*6XXK@}%a!K~9f*x8n zYo**20=--i~FNrP3@?wJ0``BEfC znhVvZ=)G6lZR=c45e<%jj*K9pl<)U=={2XnRLgQPH(XW{@p+87 zaXy-!y}Pq>8U3$Y?x7=kYFLjvzW3olO_!gW__&kLHE6c} z?S`P&UE(4r@4+tvFopAFpYGPEfz*TwXeiRmOYev$o-7(0FRmTz{vdRWQ8s1sjMbEY zYY}d6&mgb)qjBBS7dHO0#MunGl!i;H;9e|p>l~`9fp?8ETaMv4v4nOzH8JW!A+O<* z&DYK*d7G^Duw04+M!jffx$-S?*;4Im1xwK@npDg zrg|H-I42;Gt*4ZJ-N;JOgEeNpWqxV4bo6F}vrFcIP`ALT3Rl<0azm6x#8eQK(@)#U zSlEd>-CeGt&wL|HN+0lq)eqf&%+axM$j;yDFsNIzxWFl8wG@aj_cM7K@YQ+oHVJ?) z+p$9jG(BT*wUyq%lBv4+UrMyrvo98SCNwzzR6sBK)B$35eZWwo;Ncs7gclnz|v+~KUby;_!ewji%(Fs-v`WigB2lQ`AZ zCP{tl{4IsD^Z`Snr$Lj82mlh8bU(m2ugt$ZkzoyrX2s;WgHsIo)mRCr= z1|MbKm8BLmzXhdpckS%uw9<6k~Th_(1lt&2bzxfF_vedsV z!U+1mQgR0tFu|(;DBv!SL4E5|-fNeaOuC5r9Js+zB_*=(HPMQ+_91eT;$@4&+IzP) zkH31xZnt*Z(B-ZIUezTRIElqH+J&wKIA5#UCHp;>5qr>NPuE;AlGLKi19M=iyAXhu zE4mP27-tPmK>p=9rT&q*!NwW;3!G3C^Ejkb2%~y-@+j$yMK>&aPin3)8pN#W9`NKZ z7(&f4(p~H(hx~2KU@4yFT%#(BS*DO{{zTD}@rDq|aM~LrWuw*{7?R2|N`S%`XsEaK zyIl0@Beuj|3ie7raFj^UH zSGPhVXIW&@TK2Q&F)9IEHAs*tuYLM66#bk!oWFi=c+Nu5fL^Iv~NoOQ##?4p@DycEoYA znVw?&V#l&I$GuL-7~TD&cfyKO-uW@nrqHj?6GcHX0Eh3>c{eMAZ508h;c!v?df5I! zZR{zVsvwTgz1y5-4GA5wf5<%wk%E_y@DcqN+M~^Ir6RlyBD(vN5${Jl$YoaLgDvnm zM*%!|69(?XHTTIW*TP*2pA6KPl2e9z{hEyO=@TAG^_owtm-e3-iQhhh{#?rY&)pA_ zLg-kx!~_zL%vn&sYURC4ILcq26wmHeN|_^Nzx<;S)Ic>mqc=Q|uwV54s_$s?-1e$xqnS}$*$phI9`!PG zXOKIRpu0M(@+J!AVdSy`6f9{?*Hg}3J!!dYA@0@U>CI$j?(Pv&wyNq{b)v-j7VB(?yJ92#@uCE!y^(x*{4m#5lN{YEq zX;s-xK_SV}&u0~B?7Tr@IO-s|HwEZI`mG>bk_O*NY8&J-Y4bjoQmJznS3E0tc|9lj z`W~7WH7pi@!qKAVzQ8=^|HIyYhBcXPZNRW)t9vXsjv^|}UO-VqM7oNKh=PS8QWXWM z5hId4MC(MAidWBK@m_|=pZ2pMF=$k0t5(2-gP0&v-k7w`}MuYdptSD83vO( zce$=r&huPrJ=xs&VeA{IaM;3bC^oT)AM=)toB|PRr4s3{gOc6_uG4eRsrCz!t*|*8 z(?EIq2aN__8Y2krIX~0M@oBuFN2rz4~ulzS^coYY5h@8&m(e?dRabL9d zOQmgQRE73mdi=)WH}@?^;Lv&XGu)r6N^6!^pBB5iP>tRQIDpz|CK7>Hx=qok`mjId z0|uMkKDY7Yzq8LuTaS4YHnKW@<@CSIH@_wRtNtNIEIZ|K!CZF%8pBt~TPu82{%dY5;VVzqrUy*A3 zWi>_ql4{-JIDpxn|JA5b7>#2BD5SK}mQVac-pW4?ha_Eae2Q|(uV}s*P6WgE{pCDS zf5lpP9H0WX*>5l%x+y2tWV^58*6^=f`NzB9GJ{82``G}!l;sxmnC;}Ra-RhVs>}&; z?2}WQ`8S&ju7_M%4PPN}*#3NhiP&4{ssbUR%I7K}uXmrIJa}d_3&AXXjS|b8fJp_v zmvfu1_R`veT`;N6DnZ2g(Uon@2Ird%em45MaQEyc&{;zE+IsfEHmLv0=;?mNKT-WS zl#J}VddpC67lcQZ&b+^x9T5)EE)vdDDRbKSsMRE=?k}AYlI&DvG?koaMrpNpN|g+zXIwr=c!yRso!m^+~BqZ5(hrhivj7`qezpL zw@2@lgv;I>^2I(tMtB1|q{RA|H3)wB?x#+B-n5k0H0z(*a`6-sl+c2?qbus1YNGIP z>q%~sx|=q95{q%+agxnAMDz!&8` zErF)~Ih|R`s1IT?Z(C|le9$mt0`Ki>h!QX)jerYDIskT5E|N`xNu)b+!@m0Vo8+fm zDiGMWjSxR29dSqt90_9bpwAMv)u7MumnWq$s*M42{Q%mMPQHehzOTz^j0m3TQkeip zjEdr51Ahkc;Q5%PIdO3r7rgjSsYoOVuD}u6#H#ZjMxY^3tq)Z6N6rUr%dK6$%|7zm z-?DeRkG^bzR$IW(AR#K^@W8Ta-poL{g;MiWTeE5CY#4jwc$Mb^bD(#Q*gSfwyqCH> z#bm{6+x{0G+^@I#UwqVv+QTquhf>Lvg)(Zc?0u$v<%rZ1E(0a-O1czGJ%Xhx7A0KX zXPNWVv*ye71F!wqLf6lRSp#YSHxSFV1p&t7oJaMYIeb)YbGX&E+=Cbu;%)pnO!AXH4?^b`Q(CL$&dukbR zo9%Nt5Rjx;nR+~022f<6G!LjD@iiJO`d7cSt{3F-wBhhDI#IrPzpS?agk;8n4{IOY z!dE@hu+Op`ToGvP-gAsK0Rtp{D+j|bP_2NYj*oy!+Uv=#JfKeN73dpfqBz8{!XRqt}TKFOzdk^QFaF_f3 z@OUL7>;2_#4y5Rcn#NwRcRmDF1QpM!~3800)O-fx6E5n>$^Vb8#xdtV$etB8z zNlS{F6%k*$;O_B*@Cdc&M|9t?h|96AL>~$ZTEJKq)Rl@qTu-7r^#EY!gz4Q(z;6hbZ4b zXNQPhQ4zx}^#%n`p4s+elMoU##`mem0{ps4WHwwa5rYOB-$Ts^axE60^BCs8bbS@YglBE`GaKKos@--moqs=2|8iz6_w^0C+ z-*?>x3?ui^OK?Tu3H>>@b3kygX3N17Fud4qy<4z&>#9aioS)>ftrzb}+n3k+Zf3WO zVD(!6ESt9XrOB>lcM>b)U-odUi(I@dQC9%Le;-%YT`;+YFJzC=rh6D3z1uD(%jrOy zFGyFSA^RPdqBged4qfMWGX10%g$(a(^TvQ3m=OQvp z0AWLU#7G{7=`O1sIcXN|X|H`jzJKjg$|Gxg{%@c~nH_<)x1T`Hz_Lb^7kY9EmC&&Y z7=djaBVuvWK0YUE&Oja%@r8=2GM05gK||IC9Qbq@cM|kFa!NjzkDBD{a>9PEshuBz zq<7`oj~|{C0iKh4W*U|i+EQr7_M0iTIbVbP&)IkxVHV^J+bLmie&}K{4zG`0h|?q=jPNogt zR@XJ8eS?!f#K4m>l1K}HH3u~=o7M*jLJ~+5h!2HXd16axSSev#^Zai>e<4OJ%mFCy z*wYH6+4!oathG4cF?{Vyq|>kL6SYLHe3>e&1k~-NKHhNI{#P$F8$U#%Q5WHBy%2Z> zwiBfsi>;_8Az4C740Y{uof^ zqQ+mM&g^LDE-_JKTPpuWlktT>!fhc4FH-p%vdibk!m%^;@|XM6LG!nv`zwl30mq-? zt7=4~=GXFn>O2Y{Q9@~=4He?b4V40r%bTuYiNiPw1jy5wnl^;8#t)8t!}?NC@u%`C z1yV00AcBNH7W4z2Cp>Pm{n1dqdqxm$ym}Gx26vtcl7}H^C=cTO7NlmeU!cL5gKA~i zK1f_X!<<*S<$D~5j_jS=5aQL=JHtPaqhP0mT2~)6+1)+rn}OZT|+ElnVXO3bUzwbJ4jK;~&YO8iEXEdq<7w30;?|eNdo+;3Fww zOQ89RLX@^2XI#K34xO#Wo|9viaG|x}o94L1xU-b-UvZ~{6&h87rih?^YV|Q-p!bEE zE>?l$Jgw>2;bq4LN;*uzuI8_zF}^DwT-LawZUvS82q?GO2n^F-_Y+c+)BmN=$x?`&4UAPP?2ZT?WS(jJmM4Je>lz_9NA z@jYaAZ8S>uhn@r=KlR*+)fr4xWpPN_f7=rXz#|%*ol|Kii)-#}*EdedlJOOl3SPczh4iHU(wKn@igIEuU#X6zcXh z#g>kFD*Ndkx>1PL?q&Z8bx&y6*q_mptRqMv^^%%8DF`vSQsZB5rrJC~w2an-I$rjw zO=|tXUZ_&ob$C>9wLF~_J6L^m!zj8r1tKtp(_9H=ghQ%Ph*+Ll_BHqS(R&;q) z?B=jZxgg6}&$-<0BXV`0PzfjLg&&pRILZaJnS%E*n=vi_5d+Kxlf*u zd8!6#Zy74McHY0tK(gLYxGo50zT9b_7H~z7fBVTb(xdaRVs`-RL+u5Jg(j~dt%PL# zzOWArkkg=?JC|vW=I5Y>oIz`Z_E|}1A(Hc+aV*l`33-A^qh4}r{4iw)Gg#)Q(SWdU zHg-+msQZ!KXWuv~uG)MRjX+{BGX&pa@3-lL(nCG-d7OmCNH6vkVKPnW`20h)qyMk3ULJM+Ywa_ z74?W}CR8Gl8$KgU&B*;%A{q2Iz4<3=n0+3`u>2m*G}?X%3~q0c*R^;vgRbSaP{4Z;1`(`e}5gPc%(EJq@5gKUa^VJVXdlHK)DuT791 z9|-eF0~Rzd8H6cC2O*fxjoJ+f37U1E5Q2n!Xj&8vspC**0W`TN+@%;Sw0U@q{kDrf zKjgD#K=e&mevIWz23`1uQ>T!MmLvLpNYu~Rd4(o@7W}vNorfl0cHmtSW~>VKo#O}D z4_NL&m=Ev4NXmk8h}P&sGA^j?6B0yp2Sb>QD{_lBul)pW1g4#^H^_tl)H?_BY*Bl2 zbBWGjE_4IVWxQpRQ(&e5^w!b=JUiU6X%piU`-A6VZ7-371{j};Lxt9Z8L(M9w zGOVmTHpACHbX{Z;u1`~cGKb2oY78H*5FZ-f&?A1BgQ=hX`2mnW)U%PRk`HvSbq8PuC znV8I6!~GGp>|W^Y>$k58-T&9K)4^U>?=+s@vcV?jn4_UXQ=>IglAJ6Z@lXaUE$t|E z=zgtZ%bl3RZC59Q&b$|Y?(^u;=A9K@9mn<@RFNbxHaeBmvg}HvY96e1E>2Av?olAq zN*MMLOzEQ(j|H1(qS?}zsTe|WkI`pblQdC{jcqg5|Cq}wJ@e$Ph|F{Nc>>5Dw$UeAx_xr;JuR3&Z8ExWJ%^gs5U--oRpnuSa(=tEPk`?ModOB@d;?nQiB zYEQqcw9djAr_$kcPusE4a6tj~pT`;Lf3M8C+%fI8hVN3L`oig4eP^VGUHA$9;L;B7oYxf z4}SmR)xZC%cx&0Rotyp>B!)Mg-u++sBAo00oyh+WcOqMyD~ym9+Gd!Eu!3AI8ibjYBJicmb8FUcP}H5BN;fM2y&FD;`|qvX5P zl5sjq=kBOyTiliL)D}1sH}tV5Zz6bvP&O-K?9t+PTwL01(+^`sg@WvPZrt%ipZD)S z;bG657I1B=*f36aqgT0D6B-zr3r87wwsf0Jj$%uHG(Ds*d<$K_L~H;WOQy%)r|e)9 z%rlrG67sHR8x_GrnjGD`R0ru+Fwvow!MoOLFCq>X?97rj_PK9;x$q;L-^f#J3fFK_ ziGk@g{CKiY!Dy;nyob!sc}w39f9tkuX-V%)#FW51yf*?K!nnG*o9`5kAEo5XVK>$4 zzonzwTz=pBC6?14JK#t(Y+z?aR0%#9kx!Q6ljAgha)U=wYLuwkC=72zuQx3E3+{MH znvp1h-7_^yETE+}!$1mx=RD)Jv>H|rHip8baF4_RdvEG&+IXrF_Y!JT^<#{8@pppl z<>Pb8WbTiK8K&{MGE>cLH#+{L%}~8@FrcN8=B`xTv;fK)-Te#ufBFu4FL^O9kEDI( z#viTx62Z}GB*PI+1h#Q8c@@i>G%psyw=Ns$Te{C)@8B`>ukq|J+9u87I3O|GS#R!dT6M+_m#TRW|EPbKVo=Iy)2!&TOtV+=j%HQWcTX5ZpHYLEE?l`quq@-$$%TIWxFxo_brk37KX zAUF2Uz6736C4Qsq!PN$Gdnh;)mqzkpt%H~1d*1vpILP@~`)Xc=sED(I2d@va?$nB9 z>AEvbR%w-1y0|@*Tj{5`ofCwAtoyR*iworv^%50Qg@ zdHlya4=%j(>eXs}OcLea;F}qmX~iN0-b9|Z!(!dCmqgr~J#Z4Min+C-{EkNUQ&AZ< z-@jyViu=^C+hL~CFU8@L=NQx!UzW9dR+r0>D;U)>m32ME<`J(Pf);P0Nx;IwIc=ox zF?;>QQRBBPXE;v7%xlvg&6OK37bd~&v0%L1p3%DzZZfbF8?TKQS5B-Jp}O9&8y4)~?W_0|mCf(eyTfsq1UimE@9#^WEYsi+|E zNbL?2#(j#TQ=aTI^Nd{O{bc>62eW4(Y8cAk z#m;J;E!#BvL~&RSA(mRw;M^#whK2qYP9Ky*$6trCKL(}!4lw`gGoo#_H3ht|25;4O zGlVyAZi-wi0msy_pKlWMTloCKNjbT3&5+;M?2DB~Wv#Mc9Y3mwKPHktS`k{AycAq|k$*R~7}>2Ka50DdrB#6ou zmhk{G#Gjw~oB^H6sh_<6g}?SgqmV-Sva~$l>ozv3MuAH=2+PtSy zG|VB-Brof3_hYU4q|8J)1Z-?O@kwsb_KWQHEP{n8m4*J z7&|gB&v)zIhAqS z6sN%AdF)_{h8m`at+B;Rit+6@XzH&5Dfp@a^{8 zS>ILSmSniWy-6FDHx;udYvpoNT&#-7&A~Z5McmvuLMGRO#u@S6SU#MVaz#7HI_>OT z_3G)F(Koa^!=#TlS_r#$&jkinMwO{v07$9`+Z7qg5o^uuPr1fwT$e!)49eHQD)4N(BF!4KG)&*`P6O<+kHwE3MPmsr1pc>k~nq#Z7?A z85tHR>@cGKSsmfFfA{X^FSqeCgdaRuFQjlczM?qR;zm*7P#>I#IlAGN3Mv8Hib?-k zu71h2JaSiyB*0v~n~qdO6}Z~iP(&X9J-!$GE`drkhf z6Am}=EX($rqDjU^?-QL}>UU{N&ZO^oVRTg3h1i;w;5(P&nBX=gE*?;3wcqK!&DKKW zRN24VGn{y^>2f>?nG?ygKSBd?hZT(3<&(3p26}U-DVK2@ckjNS5xgZ(yG8Q;MMoV` zx#J~*7C~bw`K-9Z;ll+whG-KIjL#{H`@k&3y;J`l-N;% zN_OzvySKYk<`!h^(n)j9AX_?+XZf;OBl@t$*ZGFO;JHi?no9mi!EHZj=KeC|lFt z1?PzC?S>n&p7KVnPPY{vko@%6$b{C2rv>)MWruy0dX%p1lf`!4t^ z7k;+mIsLF7A5Al8>2}JM#`rPFoTKM)g6h@cJ&e?ngwJBZqbY$$u6*oyuU=O>R}qFQ z&rvixvSicGom+$=y!;Ox8srx+z*@a~ulq}p23Jk%q{cH!WLbHucfLQ$y?3iLLorFW zXq&M@?@V-=;U@X7y6DH7B{MF)@=mpc6(ewkc zSNaHdrydQrb64O^_R8aUvm0>-khgMT6vHR-$BP2W0kl4!Cy!|rKA-dPTM;7}!PGFb zRd>vAZt#iy+T09r$|HAVl9B~eUm}x*skd%vESH2&=n-kk7(#+cspK76gjLf=%sDU| z`F(Hf?N2Pa zDic-xY70DPdyFfTjh!zvbTexGHrRo+Bqvax_opyEQHt+)zFpi(%ijEk1o2UC-WaVa z(@WtWkh`PLY%StXe0WGJDtQ}lBiaq=86{n^DZ5h727W!Ba;xwZ+HNPLiy8(?9M4(B zCfB)k9kvEOtpbebM zMpsn^9(9LRSwf;dIx9C}n+%8E>dxc(v~Suee)2)fbfLc`Wlp1}u)B)yS#rPfDYu|i z!p2}8Q5fS%m<{1GWHDrnn{3CjVi-jDN_3mCmWq3$iX$I@hvnmKwXx`UmnUaxJ|#XZ z3I<6w;D}y+WCc2xB}@J%Vx7O_|-Tay|kNt^@xi5_!bztU99L;lF)?Ihwix>w}8Y2NI&s z8hl_uNHMPQjQB$Pa%}RQ{%*>!1VbyQsLdk}`1-oDK&MX*~=8+jjki!8%3d-G0%J5x?B=J}E#iMELZ61dQ6uAlP=j9M;-2!yw|g2VUVKgn+aaBE zgBdQx`|>j^abU)b!yu(JuU%YK^=}tL&eJqMrJ*vHvJ+{9+*}o#d$~9Cw1qiUY})$k zEya^(DJEC1j5g1Fqm{f$w3G(_+@E5p10jbky~^Wm!l3QpksBgC0NE^gQC9Y1Gtf0Qq<1&Kik5Y zL6N!;7F<@QNsW8^5j6GH3moDCQkXY@GV{bvU9lS&dz~PC144yW;*}EY7NTkWtLc@m z<$D9~5j3VUz&gjd&yQ?#{Wfsl(s_@L1g^y7>Nv84IO7Pmr}7bJswQss{bv#BlQ~Kd zK~$FUrjH8qrA+TNJ)rqRFi}6NC-!rgQp`Z^@wPir)M)>iF1sdXDianh3RDj}!||-( zmbT^`IYL_Jp?b7rR?wpDa)it68g6`2jE9X=J}ZIe8d*lzfLxxHF+8Mf>4gT3@PO;z zF2x~wu{y^{FLy7E``mA86|LCjfzTIPFTm!1rHmJlH)NiL6%|Q&Xk$ZF$m*zjRd>S z)f_xDSmKHMDc6ct;i@)rNTF`ISJgH+;x;8S0}9v1*4hVLUnXT7*6ymZ*B`obTiJ#W z$SIP;&&9E%$X)H z%CsH%J<~tOzlY+p=r>@?K)g15bs%rlO#w22-u4^BnmL$s`};MycaiRhq#Znx<|A$! zVR%d{6BhY;1&8~Pa$Mo0X~W}#P`k#3-2UUnL%K1npip)MuBXz4{h*@UxMrx^N{l)ZVkC{Ct<4aX3ycBmYQ|O-3*91V-cK1-pEEz82dlYxcf zk|v(L^}u|~-+F8m$WiQQY@;ABHGfw|ykWM#wP!Gzor$na(CS;YL>+sHXzo*md)!_d z_+HmRZ>lIDoK@gdCWbPK#47E}fvN6+B@^1SVp|duMWl1PiaX>f+Hz7G+0!It8n?Cn zwrbhgxAC6IUE?uvVSh2r$dHFa#Blf7^>wT0u2n@?Z}&4rK0Ze<(s4G}Y2j0m6J4Qf zdHv#}#yb;@^>~k|&jxAk`)P9GTb>SG7G3uYr|$<=9P_N`d7F%b%l9Kq;E#^Z)M*n4 z`xzMqoNC<=Z`L3R7vfM1 z$fB*C#()oHkv~q1XRVvYly)VCvV#sA{24LRDIm8+CpkH>jxD;_l3>}g0Sm1KlxTM} zZPo6HXNi#7lQy_c(wk%;LywsJ^I_tt`z91qfE*gSrzf7N>KA*?d&@Ob!sQrlA>dew z_#vI-6XZN9s^k-PI!7_JNxDu?Ryz>ZN|$}s%9x;q4`!D9lA8OxQ9!}yzQ4UT3td!n z{-0ylnlvm}p^ApEkaeClrZ&PZDr!;jlvehf>T*BRX%JPet6LnJ7j~A)^AT8BBI>Q5kM)Er-NYk7&UOnGcj!y^>tpkvBD3 z>p~<94-uUTslu~Hs^{Km3$@2Gf#F_w)rb8CC^oh^JV@Uj!iW z@0S|sz#yVvmxbwm{;H+QzgDI%bF85NWq(fU`AJv1lG{DDuFZ6aMG2a1Vb`Rg$ird2 zXZ^+PYwht?+a8t`N(+lLeO0CHpB|CNmtgP3)^c8~ztg|&OJ8DmdsCnOx^kTZLZ_TB zHmVG~^BZoZyYJz}gJrNV4~t;7GnGF^ItlXy=7q6TVT-(& z7O5o*{AT|Ge}vB{q#pj^mK<|C>yEfzPPTP`TWaxPl$#EA3rs?wMfM0_V~UkfHuA~4 zBc`Z;oAU`@f2iQ=l@vY~>R9$D-FeMg?S@W6j)lJcHCkU%d%n!-oVCwv+%nx;`1YW@ zyE!WNxrk&Ti7gMCgw{!bU@|-L-EdoTU-I!=w~SuP-0%F5_}wt&KhLgJeDN+K{J}$- zSLqUrF*TKq9CoGys6{b__(-JJ zUp9(-GIz`8OYQuS*-9dv5X%`Q%fSKR88?{q;i;)1H$P8M0AD(q=tmD{(bFM={bDYA ze;|F~;sAHNERWS3tL*Rh$($xu%LL&~uO`8xuggJUaj;9@)Tj{wR=3*5s4_^vXemzH zGOW(}3QGgjfbzxl$4Uwxx~vzryL;}}MvR8sVD`a7KR9Wv>$C;A%|Vz!hnzarxV_GZAHvhQ!&2()|!<9Fb?KJ8vlf{FSBIZ13>o6K{ z%fZP#dg49VKD)T?mtAaB`Ymr7$cOYb-eg|^IMH7z$8)kKR*8!zC9ZppM_3ah1JGXc zQM3nLY@=Sdr9fVOZ3lQ;@imw*h{K}LvU(Tx-8(heTq)?yU3fH=^C81S}Hb>SJ0=P zB{HYajdHf4Q0)^wShx09??XCf!%184B2qrC(wE zGNdEHB>-)wRa7=zVw6ZauTx^3#!GrHAu%(*XZOieQgNc9gu8<+e)wVYw~p-5vr!Eh zZy~v9ZCPFq*#q@_RkHRP(4rh`C!mHgzysAJAclO-5qRf%D^ATkYS<#$$Y0BTT0#D|)z_3Ism%hYxmJW1aeyb!$cR#XNq?g>VtxL* ze^HiqK-eo*`(p+!&*bXN-wbjaL{PQ}zDGw#z`(*e??56zGWqeus;!<`GXgG2mS(FX zq^7{-W27seDSyyEHbVll(vKVV59ZZlduHQB1CTjJ1_DksPjK6kS85NN`mKUFy#PQ% zRF?3d2VC2@(+$%T7~Fv&kF31_NnHb+AfN1X32-F@b>>ZFT{XD}=t~AHWSxW7fE)Hc zBH12pw`I0sGpDr!cIb~8@m$zf#$|$xH}Bi$Iol=(OQ|B%liMSa@LUIMqSSmgU~zyd zRD~o>Sq=42F(q*(AFph{j5K;#rtZ{$H9Ya0x7D42za}-CA3AJ;u*q)CetKpJE$cQp z#91>!DM1NV_!duVTa99MLI|%nx)mkwrbB~LSs(~sGt}1VI4EB)oLkhAuTF0o0=z*? z0`e|Nhi|X-D*Kfu!-}Xm0Gdm<2{_$5|Gjm{tDv=g5z>GVSSd930>YafGpN)(l!(;% zBXb|C(=1p;pZeAvmYAVn?LDY~(U}!f3qk=`Lk_TC;Uwf1y^n`&udqigr)o4kgR#Qy zQ{4w18ZFX)%hC^w#F5DntZC%>E0 z(fp?)L9fv^2ZGWAG>WKHT9J|sbiKgEph$bAsQOk3pMC2DzM%{6>e@A4mAMbUx3hgH zy+IWH{+EIiG3cl-;QsO#t|a>@Ti-OERH!MYS=qIO;ZsBOBTCq2qvHENO<{GZTb?}U z^99)LLRrP!Ol^ehsN$iA#N~-m7;cTn30i9YK*cnXq*wm0 z=E4pF)%}Y5WD&8v+w=g!@-x6%G;_?!3$K=8_g76S%#vK85pSuD}moPLL;z{5yO@0%f+M!|vB7Q|9wO zAb#uHz*-OJ1InkQzBTN)nGEm>KogCC5kdaZXzQ2-B#ikgEr_Oj0hDpD8ngZGbInD? zf68ijLWd6K-3LPC_fi+NAQMcT8UAtYhP?ECP2SDAAuRr^+pZK~WvnSyOzr$mLvWJc z5R{pIr~s93wGTb@)(UTvgL=tR9|y&tWxm~I9x~`lsa0&7R-Qy76ppf zld&Ve4ykGWp2G}MhrEu(m`y$&fDV-L8E$8h>c^cRaJ0P_N>Wk6Fk522{1X&b8pLV|Re&J_A$xEC&SzRCVQO9hjQE*g?)k+r?*i=bwc$aNS&T~p zlm~9!ZPyUuBsI*&pXV=?7B{LYARz3%C5+|h?1xhSJFvXfHYPRQ^7M5&-(DilFZemk zq0vJ4RuBLay(8kOGU^qwr&Him!q#qb%87d}GvPl98+`Pt zXgmaGDC)`cR>!Lh;~g6Ou;<|LBt-&ZUZ{^+Bd^0o5cXJ8=$eeb1Ut>?zHm-m6J2Z7 zu?UZQ9QiE{MG(S_mAKcsR$qqsrg~D87Tr9q100tpUoS*bY zh`Def)sM=tTjI3<1XD+R#*j1Y$jcCfNLt>p88QO;EQv(BUH@t*e;lvuzeGbbTmXk$ zpu9R13>kaR4})S}(z3x(t!%OubrsTm`vk zD(n;9@LenGz#ug`^|;f-yPGp_3n1jy(Z;%lf;U9~(hhWYGP>NTHY|N308OPN=H_h$ zU6(?L0Z`V?5bNKLEu&~V`4q^ z8p$LZ6eY#UPzS~w4Y%(+)a;$PlJDi4H~u`+@E<(IbKy7W;?9?Df~VI)k&r_t@(RL@!4E8m48lF9`P)#G^(YAo|8z`hp4qZuv;-0?^@Q z_zCt`4}V%=%tqMxF^~$OU3e=pVH-S1Rfpp;BqQe$fOYF|L{2r{VIF@+#K|nYaOeXI zxCGD^2*aOZb-M0F*sQ*M=Jd7X*%54plXUnPlGzu!xCgzH^+wg1*a zdx=;8mWP}sO<}sml-biEtNdO6=Lk2A{3?$O3W9x#CrmavRqvx+KtxI<$YzU09rFSn)4z;RY6zx^XbX|*1JiTg0Gr&ZqAK)Z@|BmO z0bFTs&qu;0tRd%T5e?mOVA@A>wZUn}g)2!7?pk_!|KlsS97pPfav9HsBdjYQ~ zhq%Wn?GS_x2@$6bC^>gdqMW`_W!dy`WP*a|xKj)CFAy+Wv*=J;y zgp8!l^j%mwi)lG-1-im?eZ(EZjoyy_pu-H(ON~+hD@DkG8rC%L7%cqtJFbu7|5<|D zr`49E_lt)srKl~{V=VsW|2+!ub7{YeqUzrwvKS;zyK)r4KO%&6(00@g<$gm!L9w~s zu;R%4x?@FP@g#w^M7|kiM@Qra@(~pe47m-f2&FHeFY1B)*$}IJZs``abAIa^ z)2sdD`=4&Z)<6x#6N!hQ4cSLt_3%E3X!49)ZR<>tP4V%8Xgz+^criJMe(Voe3yM;Z z8%Pv#fiL1;($p^7>G!+Z;`C!AVKblS2skDBfm5#OkYPupYLFyggRaBmE5fyDz~HGX zhMjKYzJ${~iLt)D6-=eAZFRF}D3PYAUcG4Fw=mMwtUNg(g`e5AZ-Qlp{hO7}AcA7y z)vxuP9LHJzSn#SDt2MY0S0Xx+A86Xb9}GRttzT0uRQAD`lB@BGn7Z267C+ z5+k%=&|(Rtk6iP+H*UK)f?Cib1r#UX$Q8d$n*g0t;7j|k4aNU&-h{E+_9CeWLgo>I zmCFOdum_+W(}7JfzKP8XvaiXJugy;VjtJREN;2{XErl{4fbpwEoz4l#jra@zuEWSj z*hYp~xq1R_&w9C&di9-|U^_{GKa)+`fA3RCW_uU{h9Er_ z1>@J)N;%`LRXz}-6q*>Ro9s?30=ygv3z`){8y2XOlQtTfT`a-e4xl|9(OLOh5bGgmFi_v+4THsroAg-r!UG>U8mO8|-3hB}Z_6jfx{ z>oEhjd(1;lYm3!D!ZO5}cDfE0Sd8wSqfXHrmqkkdDA8V>bxJKLarD_;*YzRm9FKJq)p$lg;hiVN;|8)t#$7&>IMRtJaY7XCkAm-cITN?z2dxv=sZc}n(z@A82*UaR1 z73%x)x%a#F&(fPtwzoNH+)DHHK_vd@O}NDdjx^l)06X=jxa?t+fIwm_OT=*pE3@Wa zTWO%Yw$ZaVk6dq;N(;rLOlH68{ik}i!OEnnlBglb#snz{AWf>1hS_&JVB?}Y>J%8y z&TE!iM3fvJ99-HVJ8v&?zT7*r6Mc3ho4j%tT9^QDT$Hy-TsQUQdsJMw3ZDXT{o2(+ zq(ZpV3Sj1uGU0rlGB1kp4U(vvTA*T5UB*Cyt+hM(rTiCg1TTnZAb1F75{)n0C?BWM zL(hDx;V!6jrcAjiREs>akML~}q~PLJdaX4f1VjNErZgi3>|*7SpisdDn3V;Y8f|^b zyEUGIG4~FHVpkPnjI*kB0EO2~FdLfP4veaon6S7DBpXMPC zX~TwHSR3MHp*H$wzTmV=25|@r)gD}6;Duxd+mT)X$hu%lPfD`LF)xZF@_?k!Q8FUm> zV|{CxJ*3pg{1mZ_LF1S`TOFF_;{&voT1o&~9SHiepov~}c@Xq6WzQ{@G@E;=#T$lO zzZL2l`6C_3S~;f*p2F2qU5_qp5EGZbt^Nq5eo&kX-un25;(g&@&-@6-#8Rm?e`f*(S|M_)8Do+ykzy z@vC(}O@TZ>5^u5^I{~_vv2lZyt=HWIQi`Tl)r^)E_$DOW>~KN|mmPZ~TT*BJ=a=X! zHikJ^b|T54wp4AbqdyWh9Z+ID(|Fc!L3FA++k7HvR#`#}CQe^5?6{Q(y#LzXRER-! zN+p?w7E@7gHEP!?A+^s&w4xW;qxIMBZKZQw`LERqBRR_bf%2BtRIq-FAhK)<3VKu5uV(OIyK z*yO6{%IkXCVN%)r8G8(Ff;GwE0cck%O924RZvH?W&?TUidqG!E^)e;p9tEwe1t$Si zn!uy-liVBZUmrC&IW_sgf`tTMsDQ$e0tPEiyU)r-hMF&zsZ@9a!r0^&Pm#un^2!L3 zBfCKYg*3>9?Dpa+XL-RPL4c8M=m4rBwdtr4V!Jg-N|qgm^k@hZw;;`~@K3Qv$O_6H z-{%sfh6xAO2<_QDEiSG}qD<(RHng3@;NrW+Q!p5MW68;)lH0mh)-9PU#dj#MEamBy zxVy|x1QEboowu^Ie8HOu;Q9C-Ejg81(7)r6>is>se~vtC#AnW+TrOu1oH@d2oHF4yc3de zWRKoiaTPY?QA-i;fbBuK97rvEMXcOl8#dBqKQLb>O>_e4aD}7<$f6U;h9Nt$7AeXW z`dz#zOl@C=i33Ywcs=JBlRVclFDjsbg81w)o79{95G$WguL7fX_!7(7$X(jDPx{Aw_B9E zYntlG`-E>iG~AlvOR~koEbI&ZLfa37JKqtq`?je8k7Yn_0(=chCT&E)FGZ(XrR_G- z70Y$)0eVMXD0wLL7-dZW`(iwu0JmPEz|*{c_wP!OPRRpX6yk%;jX~FktO#uP!n+D# z@X#KjsJoEP=~Zq{80&xvpTbX6gf_qtZ&*bE=xYruF_t2gY_(0;&uRA>#vnG z0x5sTG@MM1zTXu1B*WtZ1qc#Cnhp(PV^~9|%B720!Q7OQ7ol>c4=MgT&QW@SzYKj+|%QG)Su|yFJ(8`pn8BD7MAHgJ8={C&AD?z zp7Z15Up9IiOH4|N`SfY;VCol%K)s)7uX4{M`=hiENWycANQZ+Sl|5=q>9&IUmG*lq z#!GslQ`?6EAD?#6A7+FZO{D_CF_4R*_WR#6l2*i&Cwh2Z3CeM-Q6*j+=Dj(u*}tJv zk=b69J!Kw#EgwO*RXgPWeVmtA` zMBZdoRior~(|Az*oeX21DA$ATt*P>Q_h} zgFny9s`!IJjn$S5b84NHeUkNIS5ci-qP6zr93r^^;@J}?iwfmzQgx0PhRPh)2l1=` zuFpSzI`qbMwwC46>W;)Oq~`Mxy#dNf{41?pxQFC%s)yeAE8jwh4dy^v@m6 zhsDKx58a6SmT%X4XRPZBeuP_31~HdAP0*qe1-=Z&p!jDQ-$6!<10f{9(1zR7hb6$? zz02FtoqE-}rG`^gwRzYy36YW@X}KQNg~C~chJ(~BoB5tIM6)2p1k63q(f`nL3aew5 zLo|>p^pL-U@Np>OifU>j0N54E2J;wzG?-f3@W37*0&IYkcEW~Ns^aZL%Ku;Mvk$|Y z#+XhHG)THlkKDJkta7P?6?=zV=tzFZE8~;54hkqpNI2AA`%!?|U#q@KB>wV;%xd;> z!%?p@-VRo56cqkX2?r7?XTDh3yIA9tU<#3VZ(@M($I0fsad>gQ>+PiTPiLH-fjHvR zvr(jZgUSxM(NGk)&Dlc+15y}6we(SZOCo4;;@Q%7zkNPOi=}e=$XlZi1N4Rj)xpm5 zhnC{S#6nZ_DbSg|1SJFHo4bHRIS*DVdl>26Z16pikK|h-YKG$Rg=hbPQxyY{?>a4L zTJiGlkG6$}=moU!?6v-GPvYX@ZWcM)trwO%v6?$eg!*NtsuIpLV=@OS)ebwO)K~!$ zl5AXxcKh0A@1Vueoc=eAXM*g(mU^J z;sQWtHpxsML>mVO6P8?Xr1t{&{ym+?WmgK6j6HMyf7pBPs3y~{dzg6~b!<4;k!Bfe z2#AOXp;%A`QLq700!Z(OK-HrQTB#AHp@D&057sQR znSVSiUv3naIbN zi;@ov2ju~!bh5pKXIi7>F)k;oah3+K72^s!lG=(j7L5_R zq%AJRc#fuiX>HxIY11YQ^|o-sEAb#5Ll1MP12Qs>CSQu&ay|Ky+G>GYn#UoE!I3Ez zVsA?!G2||98rjZ|%3(;*aM_3@sSz^Rv_N$mxU_U$>P&(OI}Zpqq!~CQ+&=Gm{4zbw ztoJo`uh1qJ*CLa2+hyS7JY(3@BZOqV+y#|(5Ei6G4M>MIsnbQEC;7qh8XOOR+_!uy z*;5JhYinXMG@i%!(P%(^p7QZAREv+Z4v|0~Wlw;0-Fj|?k@9*iw`qImnwpxLp!?Um z80r;aA2wbjtA{`HLyglwO*PCOVcPIX0V0**k$z|ncp0Dh9c`+{|FOhkI zbh569fHZz9=M+E=bl+7-L}Tv-c^J`y0(D~B&`^h#WXip?2WAiLL9O;;YTHT}YFYJ5 zmNjfx3w{TS1Io*$eSjo5ji#ooKb5D0z_BCgt?6P823@{4e?SG}FdGBtShD@j>pcjU z7~EJ3JxAuNiK0zR*Cc=t0dZm5D|7Pat$RVPF!GEo>Boqa5NLqSrq+uX?sP-e_dYfR z=-BDy36YDvhz3v3N`PaWj6WcsPG8K1gC8Me=9LQ`B)LbtBDy&tn}uZ+?Y)34psS_g zY>kir120`v%}4>3@g3U+JY7xCC|rG+BbiSYd)pIf-Vn+ZZ0Wo32}c`D+1#vV51p0o zK5Jy2hpG4a&ShoeF|z>in8GRBIuim|-qeZzjtUq28o#S|Kg4;cF|cx}w=(40r$-0L zqTPeZ0B#o0y|M{q#(!7>9&$L%MjwL2`L3CJekKlziok7RD+Xo$4hZS7~5^|Lis3nHq6-l0SLOnS0? z4Q~vV#F+skfuNl*8-%0u+!iHSJoe? zHv$;#ecIy`_9w(nVkxtTp=9rc<^h(=)0s;MKN<}3<1aF}!|h1ywrxF5QN1(!VW+}+k zOesZ-0Jyp79N3K2cmYNt}B+(b(Sm8NKb)_s0E1Qd?C^aEi*==5kK$1_P1g< zp9?B6xDVzCBOXZ|K8d7N)>PErS>1IJ)Xp;rG@mRo9_3rmmXO?@7}708r28lXKNdB9 z?2E1)Tsf+}Hgo*|anbrW@fl(?3N48{Dgp}#;f_uZDW%efmu-`VLWEJ5ph{aIk z#X!U)1U)Fc;!jQk92;RaDk{K)8SxMsUCJ$y8yT_bLQ?rO3{yRwg7j^Gg{G{HL~IgZ zdg$GF`3a2;LYG^yjN6s_asS+bYt~%7?D@FSCOtDWsx$Z45Hw6{P*axX{artv4-;n% zg)m*FQeObEgevdyVJhwmc{u9d52b6px7YfWD+@1SSMJcbi&dlsKj2mY)a6uvIHjs8 zaH}b2sduySZ+?h{=rq{H46=-$b1KWTQ`7#M3MUX(g@*CC2yO_1CyqfWmmJDXVdawV#Oez0PA0_c!U62SP1l;t)EHi9p{Jd_OBnlX_9zc(@o)tN6a)V&n zIF1^Tz2(UfIA`lkGE4orBFSl2@M!8G>8t`C$H0%Mb*t}Rs-7y5cK-5Z-fGjvlaTym z_ZX--^qFj-0P~U0nNju_bl{Rn&+^zRR?rf zelc#86eQ-8$;H=}ulUCB{KdrjEwkb|F)nBcmbOXy%{QQ;tcT$-OLj8~8@1Hc)x8vX zT(l-cU?;3eN|KMq|H0>Z%laLY4k<74=TuR7A#~d~Tx(k|VC`BVx#h>&8T}|;ZcxDj zk4@LqR%jOJIDx?Rdd|30>0xDfVkK6W@)EjqR%Ci-$$xEFLOUDFO(5m-wT))xRkLKR5Rr(X1sL$Zx zvxNWT)b>JnUe3AYgIE$sTEnz+c+6EdRO!$@3T5#QANN`w`POz7=sA9 z8O~i`iXcE_-)!`|jk7U=!Uh#IBe(wj`|+8d>L=su6A+LmfEt4cXf{*?t;4q}YPp?U zSd}}NS%VmHorS2LJ#=`!p;AvDbqQfLl@?YaR_(~)6)coz_|8wu(D9cjU_6lR6aFRC zQO6($0i>~Dl_EVTO2zDr0F0Q7qiX$XufwJJD?a_%V)n{Jayp1YLFl|e`ssqSPu<6Oc^n@}X$G^@A;^-H0&Fr98_ zxK<08$1cdk_(etMIa;K5frU=MAULRqNEzHOe{$&0tB^ws8E&j2cP9bx7j`J<-L5M= zZ^qD$L`3yc_R8Pz5Mq6P`f~mI8=ha-{eOS)|D7%C@Jp_BqJNe&Q{Sx$+71B$yX0gc1)KF~f`Y@!hi0A+mo%w<@zzwvaw6k9G4-`85pwaX&p(X8r^? zr5YiP_L?BS1xqr|h@CqWw*xQxZ+ky3uzGSQu-J29-4reX9sc>$vDv@TVUAY>q!S+d zE==Dn(3w&$23Q9ngAR>#bz86R|EQ^LE>ax{Wv;L{TJq^XZ6p1&CLmRZO$f9Puvk%Z zTQ__L^=0=vGc@cqArFns`W@*@z_9_2lZzJ@-8xG3Q1y=*Cu(liATz>C*t3BK2%pC7 z&nr#^e1T7^9sVDm#+nyUg*(kz3xHd^_B1lwp$^U(L7@mEE|aUh=Qq#S(Er!m@R#p! z;&r#uCg>oy;WrClxwnVf483RwTd|~pau5fRa5`)FjC5zl3g|$zxa3)^cwxwG6eP2k zet8E2Y%Z~f%N_CZN25JWgDwVIm=EX^Yc`JrOWiAxU&DX#|>T_V~(6mxs(ZR&ot&Dpi}iyHG`2Y$`pd&(~xGoJAn z$X?shP9bhOVQLwnWB&;S*4x!<{gtV|D>k8QnbH;z066FPGaMnGB=lDjoB$;DH9f<< zc10Upy4+Tnxx@3^7+?&3*CI+U7My?f`)`F)IN+g^vh3YG9F>@|s_q-Ae3nX}>_xEG z%6o!>uN6jc2@Glrbm}ttyS1puZWVpKrg0;KKe-#QFN8Iw(osOh>Zx%X+ee;3yYrIg zMgNVcb^`Dsl@1Z4)7(BCR~u&qf;;P86irIiy~?1Xv!*`JTGUu6s}!kOZ2d6!j3@r^ z|8hYfg!m@8fNOT=%($gKzO+{8+I9r70fP(cf&l??MhJrA5IFhkG~Q>T`sdr}n-Ylc z0Cq6Jh!>*sN<0v}jV@zlVQ~p%=}jqXDn)Sz1WXT-$hOGq20EC5Xk+#&1HtSah*VLC z`Y@(n`zK#6DEeAMGra}}yBB7LGCYo)c$8_MWmJ9yg!xL8p1y5R#s;1__oxsPhCF)^ zX1PXK{seOF0X|OPZ}-#Xw@)ENN!%FS4r;N-dP?x|q4)sp=OEYYGC@QxG=wF&>*jO? z5=pD5{KCs_g+ILJ>;b3sbw3C8B65fU7bKAAW6N|o>~3J^&(MqfQfT{4YMs-)MjrfY z48%dC5oFl(O9FAeP-{3A5p7Zn<=_qxgDIAA{mrag8!V{{aA;hEwnT4fjS(n=z=&qY zr`ljK&k#qCbg2cpkuajXz#e#8p=+<`$th1&2A)t6JG5x&0@A@E*#x58bR^UyPZt4z zN^-5%CZH3|o$e-vS=v+|lb{`Gn-BkI5x^RgrpMtX5LD<{*-%tPdKwi$CzmN8cK|h{ zJBwK%hpG9F*mUHVMCmD$`{fW8w5(ky+icQo&GxbNiBG2*wS6mWCuxr@bVDbMn{S7G zAJ=)~(bJ(<`8kv6IVLUa)BY$wt{NK88U%da5wEz(kW4zE7x9CHl#bi?(Xm}=`fB82E=2&vkJ>#$f zC_5G8W|s?&+|ML2qJb`gSa6UMS9~>k=f~hIoyaulM+|orl||MAOT?Whz&o)vA^-jl1se7@I#ni-m zd)Xm{S8^5EN{cF^#4w7VBdL!%lW;y4pt3$rp+IX|<9U^%@bvi`M#$;M`b-cydOY$O zby2mQ_(#As+ewb_RftEtZjg5Ezk4vgUtXCkfS-JIP5;K0`@b~U!$19yW=(>yqOwh$rfujmpxmXtV zrol^;JSjB9*;!3RxJ!ggb0e5lIcF^{`0(ZKuZm%Mkx7r#In$K4zRr_P*M|&ZohEi7 zlZyTOOn@4v9%}@B=9_g=R7@c>%-RVzy(WWC(c8koZwy=u z^0p@75T%zEUm3Bz6Nx*Tm(lVyTg~IFn|J#R@{U0kM)bI7{zeSQcbwz8enCd4-#}k8 zPij`}UGHaau3cP@WD?@rPzyC>*#OiGC_1ARA#L>qFUdt!Y$?0>Fljdi*QXVr(YZ&= z>i`T)7`Y;$Rs42n5aBjRE)8Hzy_d$A0TGh$tM(Vh|8SuIRb+K9UBa(BN6D57xrc*W zW_vc7@B3kkSj14^k{VVE>eB||B^CBhH?ph=aTgohet*K4pETE9YStpVAkiT3g(MdQ zxYSVM&NvjFH^g<}%OO+YZYm&&t?rsbyvsOAqgOTgEL`LTui*-bWHhWe}4ZVrTfRryt~7kC4Jwmj7%R0n%O zkw9`g6pkkrLnkFwrqhssQv9QH%S)?k=i$iE9cY{ahn+T>_gJqJ(CT+=JcXb6hWJg> zw(FH=O}c6!rp(RgWIaa5CgfYB`D*QjaT_$31m=yZP)E%%N7bRCz0zMvFh{m_X#C5& zuyGv>F8Z6BiFba+e?okUTsMg1I?#apHjjz~TcTXjFuoET3`t9hO@h}!$AP$9mhUH^ z2P@ZW#g4sJy;3sFXmBlLb5wQVs2h{)+zixBsI65^py!Ju<8xrkc6BydbfPsssCD@* z2Ngv>qz3LR4=&(o$npbWo+KSu9ji7A?dIbf2#tM(!&Y3pfL1dc7gwEH-WRMl&Rkv^ zvR$vui`ZTW*(_89!xLvXUf^fhxY^tc7nvmE}!3bH2TjD${%1%}RU)L|!iBT^Q! zDVSWvdr>PDVHc>Y0!L;L7;jVoyNRkxyaUQlmbNMZ(AE62M@x*I!bOo3HT!dR4@FEW+MyCD@d;e#{4zYt7SL@?G;4$|aquz4N=l>Y;OX5|KJPJ;iQ}_lFa2V0xk%U%SV%em*MSaX8^0#aR9%Qg2 zOD94R7>*>ri61us%5U=d?LpSV^~mx>{GT5{@Dd*d;V&HaC&d=80OpE%!$>Z>q&|Av0#s` z%D3C?VMBc{@mK&&jY?;~WwdAj6$yy|3p@}U)9FQCTqAq^{ut$;Xza47=l5VbLahW8w?*YPo8 zfkK4rB*>!@6}673X+Sa2=JMbOYucfT44}CnT@GndqFaD~!9dT9BJuf_-DNTQYt2xb&r%>{d%RU8n{M zs86A@Q#@tFyeu$)NQ-a*;4P>myj!eUeEl{!F!ch#)k&5(~#vj*g zr$5-z7WX*5m)h5Qg#Y~bA41;@{~f#dHqr=F74cP(eu=_%HGi zu30=N4iNef4%`2ZQaJLy1q7;frXxGEVf}wp$Nx|@Uz3fjygXK65M14^3D+wrt_A z>qDy-4;(dGY$#yr!Kx~7GX|6{gIbOvi{oGm>Z~CizSyD2`RMpkzYFI(AQ!v}i9Xl4 zW{se;R&-Ml{#WSsSB$Qdf`7jk-fz^B@C2x*a$*gIFU87k9NM*=4=I^bR+l0A<%iq1 zR8+vd8rJ%er1RtNG&)YU9P=4^;L)ovz^wdprMC|xlq&f20%H+`tHM?*u<=A|j8+o) zTglnqUKxA~IJ?xm{o0Xjp+`Cq(FN}Viuyyl9^1+QrLZ8)tmLCsS*LHVe3;#aEnLUZUp`IqqG1MEnCE1yz?ON&ga57RBzHB zno=;gucT=r+V+gNxcIKyApxh#EKKyy=L4$Pz~A?IdQthBafrw%tJ|Fw&_LN{5Qc2g zxQrkVA~GKXHWhG76|(LBMD>{xf=0cN%qxAj4I~YGd^FBLlQs4A42if=zyW{?nn&cf z$^fCUqANM4@-G^yY}+_)K5fsLjA0x3+1rzF6&D}bzx>7d@S(+XdKNR>{*tbf2hZa? z+CJ4kv&xy~(7HgIcv`TR1V`c69Kh`q#_W+U5bB8GM%*N%&BzqO_FPl?VAOL1<|y-( zWYcaVDW*m*-nmI_2t$U5b8pE3Qqj%S>5c-Q$V!&InCOM?S&32VLre;Er|Nsc8y}~E zc>I7~Ip~fG=-&SVYsN&bVC}td!npscHazn6g7nZ%)~?m?$3E$@8?cIS_pfR$b*-}Q z<$4_~p-o^gKh1s%?&;`{STiN|hmcX$hl^_eLyb(>+Ynl}v955Z@#l>y_%5cw-Hw_6 zMA4DYyLg5+IP!319(&%|&qV8vK1Z}IT2cTfSRHSl_4vtyvrl1@Hv`@5XJwd48bvt$rdVRtW4U#ki-Bj4=+pFR!&3camx_^w0-m8^fWd-rVan`Fd4P{ue{a`wBXtXqI zGN{%!0uQs+VFUCTU7~bXQPO@b8+~)_vL=~>kxZ8%7I6x=-mSjj$15L1zT5&c{Wz;X zlK&qpsPdgiDU#|KOSH*bIKe?mM(qodGnf_a=(x}??P!Y@qP3Z8dGa8{GxsZdmU)8^ zdG`^xcU=3i2uy?4k3xtaydcTg4CxHa4QtKspw&!yAckx@!kced7$XIW9I;^|XWROm z?`gZb4S6iN=P{H&y_<5)*StS2W`aypNi#3P;>mAHJ`0*!{4K8Ypb(fQ3S!-@*Ug%p zR6DIL&J)gVUya%496LqME_la6ylwJHO%ytTMlG=QDQ4IivgSkG4is@{~aB|Sa9QP60E0Y)^X~r$$zdzekcH&rlj?hk;#~XwM-&=RjM*rvLj}8nRDl!vnGC##ABp8;Fkq zGKXb1RV2=e{JyZMak?>R9dAY9;Uxi(K^>3Rw|LotKYs2WDp#{FSUNawR0PkEEnBvd~>NqG0i8i%T{AN&6k?7vaC z#@FvhtTlsOk>$nUw$+;ZqPLUmWs9y0* z%8^7as_u)_tU5Cg8p3DFEBS6fKVf=$?07P)D!p+t8OKhe9(CNFJRlBN^E7)kNE38I6kH5~ zXc0m@4UB-7LfQg%j4z)t)p_T0A-H+ucCly2>PEj<4uyWp{SiSa?g9hgMF6B`$!ynA761l z50iMZo-tIyITK&+wK&dBmU%<*E-cIc9uhnfWqJTV&#&njcG53C@j6KFh?h!@VC2H%}y1m%m5N`1g?V<1;tLWK6+SglhERtta{<$P;)7G*L78MTB zVH7vZ8V`+Ati>4lp=R%WmITWbPRUo6qwiv(XFhS{2~p7KM@4jHii^_pCONIu8%*oPyJ}zPXNBGUbfNlcN{sH6)5kDnH~#+fFoD%7 zylU3oDf(>2&59HI8;?(vIpT|(78YD5T4H5ugOw@NWYc8Vzr?`PBVqis*65+1JOE#7{-#=7+*PTgi_O;fnv{*;DWZ=T7ov7lF9gA+Ic|P z*Tp*8_TqY$`C6a#>$J=tO|2hU4i^$sPc#2=uY`X(@qteMIXi2its9>1s0iww<6R(! za9*)4ZL{gBCvTxyhIuf_Y#LdU{J7EBVlQ@GKEeJ#M_xbOoWIR}T{_I9L6nfnrS(e( zT({dh5Z~*Rr(qhTYGVyf#{uR^~HV7skfAstX8?wozH*Mqqv6D{mT`C{f>3WSu$Ah*2Bp zxYk{Kb;iqPs#36HsB|SwvcJ!59rwn3NZ<`^aPZqRq%iNUupI9;=>3_~vD2b9U9vH> ze!0V`o2C)+&6HQ2{_#b*{oXT)A`&7C-n!v`$SQ*S3L@`$=%uqtBId@M^Ai~I`ur6BYf3aWpt@QqVm0RL-`I?JX~|SEQ}uyxp-a7v?FaQ0a5#Ul)K}xS z)N49z-g&DgdTx~`660reEJE$~n({sE6)&=Bc@jJ_e#J^%Ld-VDIuS~etBe8meSdk-Jm-gNToiPik(VWt9GVi=9N&V z#EC||VXu{DW4AAt5SerN$l)HT3!zIc!Gi3On+3)WjUJN|F%A#acS;5mvdWJnQ+!Rm zXNSDDu3Fpk+pEMU>drmiLT8?l3#~s!(r8#ta)U(Ux?IFb;EU&&++fP?D|I0suE)_M zx9XKFPOam=n^^Gv>`Vn~wVZyh)G>l|k0D#6rGL)sk=zW)Pi1Uv$@WRtte}8*!&v?l ztoM2EOra}zpY?F9`GOODypXpXmd=8Hb4(o2}1CNd0)Oy*nXMv9u7 z*5Nk^o;*^caVqujpD%=Lbm1QQZhzK^N^Z;Y!lkrVtXhM=$$Un7;MCNmNsLr}I~1_X zW4L%Y-%HD7v{jU*6sOEiEuLmShd=n}-Gf!pA9dIH`%#5m57zv-jqWwVu>mCkKT=65 zTYs*ImXMjp987d@qfhhJGa`0B6<8Ka6f?yg6SuDH$y;Th)@!!5YkiMn!qDFO#GKo> z*Rmt5gKRzT{vQb&`|UxmG$^f9q>o;jbFKCozYx zb<6qZ>gQ|n-|EB%j}*G5A7A#)gL@5D-W>c+?(OU5b~t6DUBvV5x2P#gT=_dfh7e?0 zF}u>~&spLUppBztjayoFLEO9q5!Zcw-m?FL5oh1PhM9Do%z$1vE>AJj#+>m@ypo06 zEV?HKM3_&Uttf@5khmYb*@ChhTUbyu;|TU&4E7roRKJksg1j(kHc z-t>WR}czC=x!i(PUv zZT7pPtClR6ich~0dKT~f<8Cs?VMK8yN3~PN9m1godrrxV7vsC`s|pFyd^ih$0oL7| z8QqZY{87JWZ}_-mP+ft(>Ypd=jZPijnSB96PeV<8Tof~VOVAVgQhtm|UU!nJW z2=u-cf_E`*~il@1kY5L-k}*;5Yo)(%`1Wwim%8i7nWfr5kmumt>iv z`})h6Mn+e14iMP3tv)ZeP907Z8<;H8>vP19AJb|2rX#JX+ZO7?bG8(|uw_OUe_Q6d7KgOWV`H$l+LCbJf}D>h zKaU$6&oOy3@N5b8ZcLBCOraG;OPVbw;#RMl+9g2{u=Hx+wcWYJg53V!?L_A)kBtd! zO!`_mq}*gliGyD}cLFNKop7zN=& zBelZy5gHpLE!KXYd>}*7oxD)vvUhL5_%WTmLN$ibv)(l>>UU$uO$!n|c(U{SrVqGc z1>Gk3<-V1TFJSa=J1b)^Hms-M=exCLvP0oii%QNvC&_oU<))~sk^1^9bE@Wp--999 zgOI>4lk%BC;eRT)$JT!5mw>(rW_yx)P_LQWzDA`-LuB$1wocKmqtG#WA&$8cv(31n z;?=x7@uaM+o<(=j6Nk75Xo>8f8SSbBjefT6HCp4i>-u#cW$SrgT2^-DpPTif#|vaM z^NPKCrBkr$ugkl`&ffEXP_h42yTs99U5bGo4D&*}mo#^niCt&oW&`?&F>yX_M1n7i zHcC$7Y&=h8GdZ18R0IPLI~`16B(!A3*}o)TEqo&Kmlgg0IGeDehMoI0%7^oUJ$i1v z8|P842z}5bv-zOeBgNLf`R8H-olMQg%orE5OUtB@%R*zjcb_zKIWGXy>9I<&Czi2q zU)rOMjuUf1I~tot-iPlnY~-~X++b_AcHf3|XO4RLT!qn({hWt!NOqmIRq|_Mr|V@T zT*XmoG961x=qw_UxNbI5B^e?1o89(dblskE$1RP7Bjc?d4K z>XREaPD&Ev9WK-y6flf2HV$HIj27$uElWK6k=DbU#EQAuIz^AO4-lL!TIC;vTA%y$ z(0x&vX%mI^OY>5k&@PSAuKZ7rAFP?kuQerp_@vjD+~TH!(;=Nb`%eF!jH{Tl(yCvp zAA2PKT(!6&%V%a+%M>-lG=51=@mnK{6>49U@u&ODX8wW`!fM1j&VKQnvoJi$e?M7@ zYyG!nXr+OCmi#j*kpD;xd|;bSc4%!JUdXDBH)p(+Flc;9<<^_{p&_F0 zk%Ie< z!n8ES&Z`9VULw$R_v~l8CPI3$E9cVad%ZfZ!7pq^ zqdQT^{d=z5SXoio;14_f`*S@5Pur7@dj;oxqNyd5S?LiIwQT93!lYG`$#oT+xcCXH zAm(eBK{V3D$oOqJL|!pQU&0_GwrB5P!5&}druc~(Q;J`kX4DV_35N;i{TQBkI3~7I zIo1PC({cxEV!I5UdTLr$ZqQpeb8me1#vAOhU;Hh9`p-mNzdYV&tU+q<)tKo>{{yLk zu-V$+wM<8+=tSdN=b818fokaa;IfariyMDm4|Qgdvizp`dO69vPimcGWy z(#VdcEeRf{%psq&%#ik*x$g8y)W}+%_}K_k{yN7P_u4j|Z!O+EjxLHhwlg<(6}j<| zU%VS(+`o5kyqwZO|0r^*^K{yFDM+NQ*M936@e4g%WDuW!lwD!n{>uL%?f+b;!Kvfi0VP~%74Vx z@CtOaAHI#s);AAxw`v?2p6hw@5Zw_>kcikTNqhNa*rd_&GUC{>V>*MuIEAmX zG!YnZ-RiB!!B6A%8`d4Qc;p!6W_0O!n^V3fwQ9OFe7f%4w|V}sn#UGCTDbq?gTdpdaxd+jD4D;^m zLbdidAcWZT!pJcGs@s5%XPfy>i{Ed+rEgb_ao20EcrNd%QNC1z-hRZx01`QLo5iDz zTl=$YvmZkNdW!A!+!^2C>zhw_bAH>7V;4vL-2jCM2E1da{lv&W=MWHqc;Yc$gRcC& zWha>>F;RIb8%FfP6_+3U^L|KKTH3VKV-Fir0XuF~&p=Xq!kl7n7AK8lMU9cD*KHS95eBF_*UA0$Wb$;kaApG zW$F!6CKPjACO#IA2COKP;e_798aVT_b+f+9B{Fmh3NWA^`Xzo zs{2oveEW^j6ju7&hmwPXWjgzweX6zYDiiHFvv~I7yPmymQ0sP2QTN+~){PvB8Di1= zFs2J=9>sMGV^|D5D5lW(&h->k#7GJ6TpXqa*4FbX;ini4jQ(Od!p;>Az5ZI|aA2ap z*LHmW`i<1>?svgoYp`909aB^^qYO-Vtt~4~eWP?RW-#L&zp|96A&zHHYWj60bmIoB z>9*)(ooqe6Hb#ZG%%S$1G`Vo2wiDzsc27Xm{w?rw#erg}_IXL$H&Y2>`irKl+r z5~>+~^uuiV_^A%Z+H%ga;{-%(S=`yBpSTja!SgR%nr)fp^SDQl^}QX62!x=_8BZ=n zF?B*so&%Y!^DC@Rb0EKIypOW^+L6{9Q(28Ac&P5INPcf*WT-=}`i!8*l$UaE`p*6* zsOL@JI3rvw$}PuEIKu{}5@pGk+tkQ1Z7z&f8Hu?sL@po-RTE`9D*I~k3TFG&jFxcC zb0_@{TB4*%3MxwX$q#F{6j?7Der62yTr-wpV-4$ko(o-6U!QMo#Qvn@X5*bRv=nit zVH(|0bh9$mYw(`Pl0t5fDJ#ca#nV5d@LN-&4^1HKTo^`WviI#Hgid~*{Z&r6aUuq23DpN(q*xw*+h*dA;0DaskiFKL(}FdKAScPm<+`ypSWB!^grq>7xVxF z8SDzkBo6&D_Qhvrwior<2y$Gn9jEQ?p9Nr;yGTy>p$fD09x63<2pQ^BPnWkdC_8K@W|QFr(~aOrvF`!E+WIYr|eT- z%s~<2O&nzBI~5M_39RZzSGKx5B@~W@T~b3of<4s8jC~}IP#9-aAel2w{FxoDq(ZR@R^K$whEw$FrrzoeTF@s|_f@ zA+VlO@ue;|J~Y2lR&GKL)RzaA=FU0y2x+m(*(ay}JIf-AX2+qJ?hTHbfCr&mjSsGD zTDEPBnt4?9M7yd+a$vLK_ZEcVUSG8fOK@%YGuh ze%am}g@PWOu#ZRge%i2p1a^9GP!>Vl(04h~eJ0R4^+R$EOF(-0pLYN2s_@`ND9}!< z-cjkrD$h0h0$o-Bn6hlEYHTsfK}Mm_c5ujDr309@)QF{96(k>m=-@nPU;xWd)q6Q; zBJfkKY=}JqyYhKl9!F%i?e-6fL?A;Vm4z-YtDC(cR0s+D-PN73`9j66blucOuBBpqL`$)^~OMTG1{?>Jr?OVl}4g<)l-g(W&z74bW ziaDpk4tAYU5^x=DHP3gmZ^Q%OSiBIkH9A?fU62pqvZJMZ58Q;r%#Pw;uoFElM|=9} zf0R?PlQWG@PN1BrzVpRW8gtf=ZKOG*$P`~%D0l=_q0;_6KBMQu2kH0Jon$D{Li0TZ zh2<%F*Yfft77U-W2mT=Q3JR7tW3svje`Toewe822E}$O@UPBBE5I_1{*Xngz`F$NB znH{2{7>B~WxuFV=#9a+`l%J3^l{ca_%%u6jS`g1owqFv&SIs)*c410eND#Z68G`bgV?ljO)_* z4MQm1c`4-xMUkr7=NdmxXs*kyd{24YV@d6z(q^QwgaCEckH^;?|ZWUl*^TV-j6xtgjgW?jo&&xL$Z&TDarS;z@6i9c!g65uNXzy|Y#t0hvgTATTW;V42i zU$Td+!Q@NWfT4{1T7P$YiZg$MKnU#bU2sbBvrg8sH~qR1|IA+AYOYxGK6rDoD`Y4Kmc~O71geXNbl2UtCL!>*S`_*ZeqG^J@;qqy zjHu1Vm>-nMqT|VHAvou%-^+w9>?^ZNI>1UCezd%|9 z)I!x0vfwIW_Ky%0eYFyxbfQUMgRny@TY&k~-@_!BLT+0vu?laqy<98-4xHSE zL-ii2|2TxKyxJu|=<&aD@SnfT@%iZqyz&wrp2u8UtpEPZb7(#HGyeOV*N6VAE#>~! z|1Gyi@ZVSb@0;-a|8q?I6)sYYo-6p#Vjp97|C&#`Y3_8_O-$5dpV2Cp40F|2@%T4o zwLL4^N^_&+JEEU|u7k`tZl6|8e)GFaG1QUF!D8d@3l3#D50Pz#!WqjYCR86Xx^~l zF&3W0V0UuRFDmX7XJE;*y7uBCb;Up`Cv~xs34i+6DDLams(Hd9Lo@diX*2h4T#Caa zy$)WC_f&Gy?K1X5m+!1)VV8+10|SZ;LD&^lrQKHCQEr>YuH=Y@(!Nfm@;$ppI}b=O zCu%vN!hVa)n;4h)x!YkC6St^_Uviuw62sVLPEHh2gESn)!=kDUs5r7z z37i}>opfFK4Yrq8Eb9J-B)sTrn1?&{+rGp7n-+-?gF84&24%C+$~y^yFbhXL<1l+m zMHCXd&40e0=lw~pIe`B?pA54{$yuSc%kq+=Mjrb|XmVmD(> z&tCZTXT!$a&nY0)dc9H&8?cE==FG-w24QzVM$p5HaSaTcCCeyL^2@rDRz3`O zp1ayE&rHM(R%~2(gcHz4(&<;mS2R>VU+hnR{!`Qb>u-5@u59~xl>YmR(^r3<-~axC z=RB9L|KFc^wmtaYH~HT&`QLT&f8pNAHO*adK*0-x8Fg3@)fYqYW;I1fTWT~$$)tCS z{>Jkp3GDOMY}&o;)1%E{zDo<|vklANI@6k~CAfdPSXI9uI-#-D{|>u!Hdp;W@Ibt)TJlFdaU&v% zrBfkT!niQTyK$#)kFU&$6IF?7&$;ipMsc!k|3s(0V|7vG65S-68-#zx_U8KOhW=bx z$B>1GGSw15c_3lwqdTK~s}jnt$DeX3lDse*rn8N3^w47hvx4x|-}HQZY{FYj>s<9U zJbU(0Jn7_{MHW6mV@>hO%5h*{cxnzjL$L_p;pzRETd$w|qP)Am$4xjmT&L+M8lN29 zjD_2}i@smNOkIfUq;eKdV}*LM$|h-u*{v6bLYol)^l0Sn4JVO^uc)3Why$u^a}1Q<+*=l zDsQ{}JC8A8su6R2;7zrx%F-HgV~^4a7@+T;pI;AW%6J!@ntt}ll%vVu$LNgz1rIL@{A=B{sSnh8*o;}6GMO|5`W6N{3%ApS*J~TmaI25amoB^nJP8&`ObXI{`YS_XW zqv16?#_Yn;Pv#S~)m^o!oFCOjcptyHPaH2CDl&i2K4wN)Yw{x|v=n4il{e55tH zDs-pOcY?G*-Gm%9E!QyA7`b(=i1+PWbwu+t#&B!Q(`o0K#6WYAvR9>L4ZL0#JZMf| ztRGRTCAPx~$>NZ{NJxOMzRd zGFSD!WtQ8pipO~C_?5hKg6yRG18!Z4PxI|MGjyFO9<=QQ6?CKc>zHi>?msS}!8BsI zIQ1p5)_qAI+ld|*-)-SNZYqi{;!Dby+?Rwl%WGZihG*2Ohha)baV0HaiRlwbBY z!uc*nY!FIrqpe{665bM<0~;uQoF#PgXv!{f(-RezwnAKKhGrKls+0`B#t)f_hy}KW ziR>b{DD8Ff@c9%KQ8_7DEwNR;D%!Ck@>C^fkMiwRJUN-&nV#WQ^I*;?hOLlid`qpbQGXfs7N}jm33KJN5LA*}w(41jsoL{nbnrP3i@oIsJG;uc^Od zD%~ggxw-ql7bYm6v~X-xp!0hp^_wXF zFl8jQ_~q?^EF-Tbsx!KrL%iIGaVO(u`ps$lAC=CpH-`WGUwC-^zm>DWI$0U# z*8>WyDr$e|=j&U;u^w!XTy^H;j@d6QKd!b{l>HSKox3MlGd4Ci!%>Sk_xRv8E2^#W$G4Z|kShbvEPRk?D4^$1Go9*o%-7SZ^ z9W#+h+>!b7!5?_Ze>3`)GZg)bBg++EGw*dV^*f|XUFbKi{J8Dx0Ut2;O~+9kTah>u zJIB6PwB`Qe^f9FX5%1~FU}Mvo$(Od*i{NmAFZ|~J@pkB~+9e)8*ae^I-ETA#q&UM6 zNHWLR&n$Fx`R$T5^wf;T+gr^Ya+qT{USAdZa~Sxz@9#BqVW1qEJ```&U9p&PUf`le46Ejjho)8>HI* z&C9Z8ou!Cy!e(;zxv<$HOT(aWT6?kt)zV!{(B*qel{r(~XnR{qvj!Ot%iz>x)qSwv zNO6e8`2MhR+uXNsQ-envg;2Ok{Ld${;&K2UTx8VvsbiPtS(W4=4KHZ$^%r$vV@nNq z0xuUryBakrPd4PHt=SX^jh`T&`qQrvi>6-EPw&S<`NDJc$>l-2*JB& z^rh_pEYyLg?6}7pe1AMRB;I?NxqvSF^4&VO@XU)?+(P0ykJ*y(X}9a)A%d7w&2ycW zvYhwZzl3b|P3aabu*EudRFH>w5RkIW0j%AWc`VmymqgQ{eQ@Pd`0`TuyEOT^9|tq-LDZ6V23OuI>04nULhsu zk1H1V!6VL(yE&!bGgY^t2BI}v+}|mwN|T5smE$WV-Njscev`RB>A?O#noez~_)$nK z@XE9^lx*})>K5f*TFxe}6OKRbIBE&$S1KQN>S-WyG^5XjqF#<`4-!<2w>jh^W+Q*L zEobbrN%-p10*J_w+;_(Zv3QXt{a4E;`O|)$)51EG|A)EvaBDK#`ap3UWvqxONLNs? z0fR_yVpp1q6sbz2HvtJ992+3b0)n)lH0ixa2(eI9daof$@1X|>BzNuT`R@G_uFo^) zagGd<_uYH#wSH~;nt=98(UQKl#x_VY&lo83$f@~CZK&h*HX=CN_swrGf^&>qZvv5$ z+igP*$GBcN_`2S<`h4Slbg;m$;zJe2s9Bs&^87a2W{#{DNWQGgs)T@eaBkqryqR!& zVXqxx zl5~?iL!F!hE{mJy`hvGO)eNPjO%fGTrF}PEt5kB6*8o%@A3bx%dmrS+tLPF+j_Q^h zN9Nfzs^TxEip9Mzv`aOMynP0}==9J;=1<+UmwEJ9i6BxFZ5}}LHH_$MCl?I)=k@8; z18wGmnsT-o)1gJMZp+ucOzArQ(MIb}&2Ku^1XKbd-}k~-ove=YuC|b~KrnSrmEJyD z+a{JCjjP{xORP0*ynnBE+el`-p=~KXPFV%L*u&VX-Xnp;HGMV&UkMXB^*5WtdRbe`WT@0tCc8tf$I#aFo1y98rj$^l-(QeMrvgs@s=_n_jkcu?`hIwsD zBB9D>tZbVhx>BUema*AvcI-UdWkE`Itm<`i*!e5fXT&@P>>ljwF`{G8UW=v+^ocj% z2P#X)pVMx3dQAP7IyfdCd>or*nCz|EbQm_0bs6WVv6I=9jAxEU_B+q}#ADOVq7rxH zd?u!3e@%T&OuFaKN!6y!ziKnbDcZQR2AlY@w(Y#O3vS$rT$Nbvx*w}Aqr&5D_PMl>$ANZz%a6GV&dB_COJ4LKcB+^_5 zMoooPFS9(9!N77npWGt|E5K0PLDyQ~Es zo(KBUo+Eb*U`wQRx^?qXsvUF)27NWPE;ibc{15I;`aaB18rtDVU-~7t+ZN}cmw~lDrFVuU<`UTKwar>Iih#UG+LGjoaK$1^NoIH$c>`7`g3!0hAE?~$hqV| zE`{C<8ycOVLPE%6)3fVe+5ys!ABirJ*&3}NVw0Xu{itbNhFG30IJJchg5v1g*j3t2 zK~lNL@?b>J!Lwg*+h7-DYMf8 zUTmRoNEnbjikd;ohN!`Ewu--mVQsWDHPGmtLhMz(JE;B;)UU>$42=M?QTX$@8Yy~`;{tL2g`|*t41?*BiF+wk-c;X( zC0=sQ0`4uh&f{m5nk2W-L#!QVNF1xnt?MS=sG0lbGo>Pz9Zn39-YoZBxUf^e=gO_c z2@bC*rP7~XrA?z2@TOKk@xO;XhTgxKMLH*u`0r5*#YH2tJ9f~1ZDIY@HI~&=GFW!i zZNxaW@N&smFVV7p_UC!G`T&PyVt?Q_TqHRUH;BU)OJ5#040mDHg@g?z_Ig%a!> z`ZcxBccXq+h03U}+L2i~rd&k)9C=`sJFM6}7)eJu)w0EowY}*0O!*^t$^-Tr3Bu(* z*J+EFodN+~L4s#~m=iG3<_}n7=WB6CXDoqPOf#;2RXqx_yx`ld^gZBrQa1((zAN9E znXZ+}UxSAH58f&-^&>s*4j#szldkytrp&C1JyO8|rOU+lI=nrQ=xwxrX(rZ-1B|)= zWSFw_9aL%sxu&ldsa;Mg1S~u4cX5c&^;;iniM32vtw7YE2brksIF>d;ax?IWe;Vs@ z2-By_zl0V^bl6v9R_ZL$8}^Auykx4+!o05k-@I@FBGR%owLgZZ!9g+gyt0e8jk`Dw z+M2-zoY7l1MhIy9Ytp!ki>t8nqG0QSv*eO@ZkZTGVfHPyP`N;b}ys zUof)Y*|ZfePxj?eDG(Au>(!xj=w#p|B5WTiXaco+pwoL}QJ0bm;w5#EN|s~V*Xb(s z*d2)$>y@07)^N)t$jLf=2Qy zI6CbsOfFown3I2CK9JB;Zm+hcyEOIiWpI?-^wTzTa+J5ht?Aa1G|3UvM4$#@kmz?* zVs>SgASoj^R0>D;7TxJv^a1DK0Qd3Li|9O^7x06FiYVF6=krOr`y^9u3Z?$|Y4uXjal z|A!C|wE#IST933fNEe9Ia2}g)u(Kmi9Y_uZRb;72pr6i9*w6yKInroz?zP^9M#>tr!ncsM4IjhODjp|DPRE-T z)#l}_u8o5&3iJR9NByQ3b(JiU`AWw!eh(6N25qWDYEopW%V?C7;1rEAoRvTdVB|n% z{s`_2B%U;M4K|AcHJQYH{WUIpD%6_H9MjH;4Ok3O?DzX_LFJHjz1?GZ|J74JFJ;$m zI;+o#C8KQlg(r_x#D#=Vhlp2{DKYYJ3ToWRk~_?c{nnpWYvR3DBuy!CiPS{TKAPUC zSQwSH>In_DcseV!H_6`cW;YRYE;OgXI98Uic$MQl9KyjY#;9u}HhWdck!eN)(iwW$ zAx{^`eM8a89&NL28#z!>D8*2Cj<|NGJW#ar^=Zw%XwHb2>nzT5xrhGSp{^m7$Bmwc z8DyvabRPu}qWiO1FUT>;%G}}K6UFZP;6#Nn3&a4AzGyJdtmJAidIT;|%153fcVN%H zGvy$g?cs~nFTuK^jUX!j6B(gX*5}vSX0WSpw!crfk8BCr3htcF!7<{DOJG4bwtU@Q z51w>y`okO1XseFY5^v0|fzG!FpJ3M+x;o%+ISSjDvwgeUQ3o$Ds18SVmaJBo!qIQT zRdG1v-M~3Tg^flqFZOcwRs4FDQyI*cGE@ZSLoRaz|)r*M|wWG2PaYQe_S__hS5x^m+-P;!|;^_Bo1XPYZJ2V>;r zeL-`I-S*ry9JZcQZ3I_|KDsP-A|I`GDN_|Cso9%Xy3#?wcLN+dZG)%{L*=ZI5gAI6og)7iOfc|mP}Aw*D8knWQa zwgC3^Lx63fgAQul}q3TM+;ZRW^W$XQ|v(ww4`1FD10R06aisC=Z+Z0UVT zBulihktR?VXFL6fYjBQHo6!*cAErtuTL*M*~{>osAFlRP}i*NiJr6Bz91Bdw`O z{g#sb6u&6uIAK(J9FE`TKF{=yh{Y&Owzo~AEuouZ6jM6&!s%;|yM;}u3a4=9tYam@PYpQ^zwHV|svHo~M;tJFD>cn_1I(WN)0TAWYXj?$8-R2# zk|R>k7||Tpu1-`m(EEoDC{Ex^*Lc87>(t929F_>5Tk-4P51#Teozb;1if^1G68y}8 zVk`Qu<28QclSo?!z%M$xqz<@_i&D+i-A| zdfshkhZfVQ)pMq0|60-|85{Q}=4#@cb@@E|zH4;agPy7eiP802k*@*#;k~!m_(iPO z(Lrmgo6P#AX}=z6@hK}?_9I768NF1y;klCtuK5fBrqn+AW6EJ=86=<|EJ)r{ zuM)|N9`+kiI*pSQ!p(A}Seq(VCHC$sLLy>HAP_K3XL5AM;R@K_VoDp;Xk;3E7_AyZ z*fDUoCL|OfpQ9Z`74)x_J*|%(B`cLxIq1an-_2Lzb8R`~L>3qL{+6*q!3AzyqC`ll znBI38Q{5coBhOrOg&fQYW9;DNIA;s9fA4~1+~e`@BE9QbnA|DLewe7VcA2A=B^Y9F zE`VjJbgZn`45Zg1PgZ&Gu~KYZ;IPc<{;y&uLtMYecGw|}W<$A81{Yfze*w~l)=}vH zCU(HsRgHvMsV(`H39V?WUj}t~wKP=Q`K{^sH82F$$S&Yjf|2QPU=0rY{m$ymHwI5b zG1Ax_Y2p7`Ncvf7#cYTg2F!#v9~Wz>EZ@-#IFW@JdvgzrGHH}J*c&5HXy9-OaDl6@ znf|d+bFeSXA-G_v-#T1r2IdDO4MUpeG?LDO>-DzY63^fQjf5j6zug`1*HBo6AEmx*+o9Xi!u^kL}tu ztewvF)Ah(jHK)|yGU{4ceem8Z$kQ0ML+1Ln>m#4;COY>YLa@d{c9}Brstj0m2QefQ zbyU=w)+=nor~)k4jQ}Vib{%;TRe08r;){RqZLV7L004SN8A^9yd_V{b`X{e(HvNES z({ z3wFve)YPqTcHdFRujzlR9VzPVq&bm~Mg&>wwcHUDR5gGc{9%7aALtO6c(1NkC? z-U%9`UN8YvmA-E5$}}D~n7t z-=HN`i9rA!d{2=X24UE7zgO4u_p7D$GlOUVkJ-0)b-Rd^&Ca5fs}oPkq^?W~7{UpA zG}gm+Lf?B{vZlz!Z*|D4X4io;XD+qzy)3i8`Qib6Ds_IVObjbuK^WZo^0IX57v8Zk zs)6gd=5~K+LA=DE))k}WPL+*{c1(%fFn%|@#$r!DQ^s69!T=20R|}4;_OGrg=RnxJ zn=ik@ucTNHYhykTqYlK@=3G_Mym|RsKnN+a7a2!l)?ubAw&UNw^;B`ZkHSce($QGu z;)ErWcx_(l#=uJigaYUmzT*Yce z)PuGZm@_Ex$nE1!tFICjNQHlkkq=w~TaB4)3ifl5T--)6E6Ghv{D+ek90)QVf*|32 z?dAc;5aws@jX?gtksk>5@%G(zuG6{(;Z8OVfJU_4>1;Z`yWUF-95)xBWoYn1hLo(C zEACCDm<2IGB&yH$xXQ1c3LnDNRFpv0Ec>Z2H^tGqx1mIFa81llcq1;qF<|q8K%ym? z#4)Ocrxmy5j=q@z2scHH`1AnyX88BkWk9+G`c#xjOI*~OHII$?Sj(H#kBtG%atkdp zHH2lAgA|w61Hp~ij_~)R_TPp@roI`Dry0yYEOx%NCVn!mw=X~4RHB1k3uT>l+i5VF znuL9+p6@x_<35(nJ=bI``5w(XJ}pnWveNbN9m{E$OW-aX9j(JDyJBPSFaJWg3c1L4 zMtp&TiuNNw+}4sIBamB-rmV#C=FpVEeE*>*)iF?V&5Xtke}LG1EOd8A@#gur%jG zX(>7|&}VS|{Jv~hnbUitc)(J^*|}Qz>#~TlEjurz{oEu3bF^FVCmyDV8UhwbB`n)J z(a`gmGoEjFC1bGP+0MFe!L`*Gy6}eb!pYW_3L&AbVe+z4|8yD|$ewvWY#YP5C#0+E zt+UtI4>vHfxOG*q@wnL`%sO_pvC;hus?QuMgYmvo?<#%T`6MMQHJdf(~QJnWF zCl$1u&hI?gZ}P@-idSs)S`6HeWd&@8B|gmf^2Av7e^525Cvz(HO?G65t~S=G8;ycR z;fN!Ro-P#Du$-9u)8O6qZ6o&E_z(1|RV4Ihk#TJ!8`6Ii*no| zD8_21H*4e)j#78YI5fFXgNP${?s=uI#1;CXJr(IN8-d8tmzE z?*ah_dQlcuKmJ%Mi+1zpn*-Ttrc~95{Bva%Mac77MUYwlw}{vB(7fyGM4zIz=|ZL9 z$rdDB7oF$s=|e!%&s<%oBA+LZD1~)XN?{sFqapeMA2-xfBoy7bW2%IHZrqo|Y1&KgT9Ppa@fc~)p7ShJlWUqK*T8NyV&vB_M zT~=@!&-Iy()O2Ak7xlXHop#VS`{o4nOI5S!0SbL zc5*z9SNb9hDl!YliiqB%ksd=R=}}-&Mad04Ne_i%^t_(_&z-3+E6NB`+GiMd zZnLBHq&abLqTeU=1*sW1j*}}mcI--*o&XPxf2RVNumTs*q|s15uKoJ)7UWvuHyKSC z)73SZ+6(yiVv{4TuGe_>_2pgS*g$@Z@qsstK6+1iXYW!Jpwt&&ccKMW>BiWYTKVqh zD_J42TG$1A8$QA)?=Swf4_%H7`uw_hIUt8zn|7XlW>$M-RsN6W+f}3N%&GI zf2<@RNZp9fE-&%c8NgnScL!k$(tWTbZ2k>qvf57Vj<~nV%b1#o=-6)qhY|8BR+=kB zyxC7%>?x}4?yv%47`L8~HB*8AnBC1Jt=wz7Bc4>NP zXyH#;&IQUFyg@|mK~ur_)^}2<00I6IgqXSDxEJe=N;!4*jNLO*mqi#4YhC=_3L*?( zXT_W4F;2YB(nQl-*DZA753Kh@MkYPG=r3?4x6AzZmfG}35}m7b0Gg7@vy~A06Ih|c ztMHisp;bu^F-J|u2B#<*p~`r@qO^WM>i0Q;-1ngmm3*pZbrR=`EAbix0F!g`GD!t8 zq=4#XtfxjP<&e!t{waWcUTIZ{+7 z0k@m_cK7(VH`3VYLs`9dFH|ZE?>>d~kdt>C=RxO^w+zF6*%ZN-0pA#jf0JroJ#O4j zSW6Oc`(H3vS1KEe-Deo1pNj~3ip|ifggrVH*4m=MUZb5?OS*SnIZqEUYXkYHHZ}Xt zM3zngLXNp=KZ!4t`NJK)A5J9DHMO1o4BzmLAD>D1mHJ0Li2M!JrdX@92O2GdedqbqFRAZ$Dw zBK`0C6|6T6rK_HIMoAN);Pl5@DFNk>^em>N$ZfgM%Qr&i@A8^YK0(H2?@<$5ehEUn z-W?z6dLww`SjH6!A0F0jZ(9*7OHU1gcfkk6kLnXQn^LFQ{cPB82lSp?H@rM%7(us8 zRXC~@qQpAQ3BW~T6tQgPap_!(mw`_vWgUk*5^CSB?4$iPJY=Hth+707;8FOn?_z}7 zM5vCjdq#n}!Yri^c?~|)D)QqOy$$qp`C=a#132RT^7K{*n@+AIIOl8+K|n-fQ_l`+~m-#wop9TbOE}`L>M+ChR!hFzC}Ixf&(Iq zP|Y6e$vTsYHyA9<&N7TB+nAN`AKoR)*>l&yYi>RG@*t$reZx1P6ofAGqYxaGUG?uI zUX6Us_zmePxb+sr7c1s^)Fj;7K6`|M{k1q}pOT|mWXIdwW-0Qz zYa5@>*|uPngZ-u-kHR+dRP?6QNrxELH?tnbUMa`Sw|yAX;cS0QJK{jqo$gJ0_u~-m znBvb)9z>Oz$uuU-M9_9ZoLbaQt@~ba*9gV)tGPx(mU$TgQ9t+KwLp6kShojq2@Kn&?z{>#XC|jUJzxfGQ8tK0`he&5t!-TO=tSA0LBhpXraMHP@Nay>4?_B-N8}aIauz~I-}XuW5IU7&8=e^!G#JZQeam~SU2_ke z;84x?ehtKk1Yeu}D=Nvt+Zj5r0pR8?RaSqxgHytWq=W5jx>n6hgT(5Q(^(P zsWI#OjMsEb*%U(FjHMwJCeV1f_-|3;M(=kWXpXR_ZoVvxmi+);~N(g!Z@&w zU=QdRhDp-Xgw_^py%L0>U{z8f1u#X-*4n7`uTuCJ+@Gr;86gn2nSJ$fE<0}y1x4gY zpyW=@r8p7_cVzzfNciMNKi2TWVOyOAISlg+{lg(?Dcc9lilo zDrg}PLLvcDgYvuOj_S%;U*(U%?H~JK&z!I#`LJ~roVT$m1nvto3HGgSiwtidxkR&F ze*QWyzZi?U4VGhKaiCg-Hzhx?U|Ki6Tm)1`<*cs30ioX84071b^G6UL6YH`n6-Y|9 zP+q51YU;4FtCUk;mh-2{|9H)&+?4$*5&>WUeC*vEgu-Ev>#<=DNpGfARx~G+V^~FM zPk5$eGi3`3GxhGX^fo8QLO4(Q#aMnLAyacmIy(yX{x=9mF8sRMjv|ca2?#RsSd6EDAmEHX?9uATV#oV z{I;q6484stwu=Oc0vzKg<^zQR%GH|q+{L2QrohHUbO7;u((nvpOdipz*%j%1#F7sC z^JW-CGl0pQqoy2cwitfnzuo*XQk0zMU}wG5ovnmGJrr(&pdWU2ux)bzm45sF>>{Mu z;mS^#MmE)_&0XG>|Mj~yr1)BBxWG(V100%~5q4B7TiwS2rChn<)f_)M#%z?cu(U)# zrz8^VG#DcD3=1G1k3ebqOO<+Qlu(uX7W;oDLqYnpEMv3Dh z%#N<^KNr!g2n%BY*ZAZ{%y0!0Oa*CLuem9dSX8Xj2FWGqqtfkJOwRJ55mRB9%Z&yy z&2JL*A}TJw8=+v3BOQJwjvi8<^KjK%x1@MLKb{&E5HRd`DipDIMWH~FXP)28VI3zT zOy_p)O`|p30L9JX6y8hoMMe>V*R{_lAc_-V84_!zq0h_qQ!1aAL{`BL4(Hi-5`2V#o2x85VQ>B#46X_ z+%lP8C*kHzpE2LO(FD>!v?JZ~^_O=c|C^8xiz$HWQl|DdCwg7+&uT)iiO0b@8$=Nq zj}ESur4xYvC>@zhwTQ4m zuc1;R%XrqzOr$DQ7eG}MwTRXi5NYDFm3(;;7a}+{c@-yqa+3E;(xdwJFDC7%D7Y z!)DACs(x?xi`;AdCvOs}=MVlyV%(Gx>#?`+7rFFxr4vWP39d+f?h4~dBa;Vy0s3o85OCOqi6PY6M54CqPTMWC( z4NAX*)xlb9naSL;cDI5)S9q(Io_vQ3C%vXRhm#Eg;C+F-^;kI20 zVdPUyU9ZqKlX;*3B$+I{ZNvS~>!l$TLUwfC_PN}xEytm3x#X0K&24-<0`TnZrm(#` z`J~fzR2Kod9z=8tF!XS4Ttwpu^f0i=mCAE+3q}w7?Ae!&p>)uWx?w&dJ%@3xtvHNNfILPdwryf#87L}B zzqca_GH&nXobLlI+P4w@V?ZZg07Wf7$S|)OEsr-kD)Ikf_McV?OzN+z4vx%dnbI@B zvq}4h^L+J2A5ryJER84()awX$7GmR>1;3C5o~gfDoP=*FSvlIBPl7r3F4~ zq*tQ$mJ&xkC!ypT^AeS&^n<;{W+-9|x{tyGp(y1FO~m$PDj8dM9mkGy^Gu@b`Ji{D z=xO^)fCXiTbK^#Ff4zr8Do6;T6VC;**QVj|Pj#nPJ{ zwlOHkSh<`R1ij+e6)mNuTk8W{L@OtP!c1vmSF(ddypg9{Tej~ZOJ8!fX&ArTY}MK_ z(%EOi99xrcB7uCo{nEp=8;r~lHD+=7DZc>dM@ zf~q&fyb`5B-N?_*jv$@9;^oYDt6k;z#jJn;B4 z^mtL}a;o_w)SE64@}a&nE;)-V(Ac4woIFkM4?H%tmK>*NOX-BmA>f)dJtPGkfOe$@ zuhwr@riJ?AP+Qw9_<>L|jnHXwHvsgQQGxyZJPx%~@6lG1(SGlpuL?(^hZQ0_I%0IS zDpUOEQY9c(EdO(PLvUkKv7*fMQonHPvoPK2SFS4cZ%x5%S$!)W{8S0XqzA1U61E+g zv8$;j&KIVP@&Jq4eCK2bppW6)nU_bZL31Ar=+e<_#vd-CN{qMoDkW#- z;LKWcqTB+T{8)l4rF?-IuK=Z=F{9sy|`ObOfx1+SMcwzV$LRIEdrzgQ{qzh zvEy^DVC4s~&-C}u-_b9>|E(9g76kbJ*4H!Dpr0&`GN~u@1!w(vKrRRh?}(2<7#M=t z*%5suJ5}18N7>{x(a+3)$>nF>bB(^9CE9a?$!>{X%am8fAjhnAl4J!eZ4VH2hJfqUi7Nft7=n7v25GJ4$#+6*+D~` z=<;mg_hHNaaB6Hx(V#;R&*rkL@5swN)DD3WCNJF8|9`0pXIaNcj*(arh%eX%V{o*q zs*_@|3=8CIFk{Ma5$yvlGSUa? z3VQi$_)EZ#KKIQ>3wfQK-%ztAxDgP)Q^_i!Nf>?DPn_z%9YpYZ`Lm4`Nl&Mjyq7~d8sV?} zBbS}S_}7tYooX#E(acD3$!LQ!l~LHiu?E#{(Sb zCwe%*bl`wZcp2rms)s@9IYc$R1EnA@R5J*n9r}de=1ESXBb<)9yOgZ%7=eLKqm`t6 zP9MD%U>#pdP%6a*xiMk<5d||q+K)UaqE!#I_Ou;$RBQFlEUp|B^BN>E3I2cpkl_XZ zQmq&68I<*c#jLoRhJTTOv858>qpy6{bKL)c+46Or`)yCpHAX3+r&CInUJL>_um{?- zLhChJ|5-8s1FtadhX(QZfV!Fxh)c%gQV!3{p%cppF_mM0l5g*<)fi%xZiHkm& zD-!HfcWo272vemlKk#usR)D7vL~3B@USF1KLVG4V<&x^KaMuh{c77qw$(?l9f692u zxrA3-dBY%2%_`ytU8$GQI|T0t5%Mw`kpK~ln)*0TLC=UGpdS%9xr@XJWhYXSLd=ND zgU;X&+iGKpKYhUVyd*wP0rCzj{7{$|WQezq4K zib&Lp6v-HX*WP!W2Ka0aWtM?BHAv~y*++1O4WR67+X`RLeo#yyYn7lL&c!SveiXUn zP&O>gxNmsw2M2)I81v1!M~Qf1`30Ddm#`;9%Qw44W{bK#Px3j#MzznG*`WGMrfA91 zW@8^>TmYe{^3aQol5nhk+;}9L25>Mp=`?b1iu*2fl`q9E5E>DLq0!o?i4)8ykWXY* z`|C!`yO~(*k_E~aMo_>PJG&D|{w|J+J@xxsL?8ip3OEkBy#pGuJpX4xa?=AR(Je2> zu-x~M1RbfWD`)S*`xyI^J0@4_2wHa3AodSPk`CNg?_oeoZC0NiA@}(Qn&IKjVol}5 zuCJR}nk>+!?KHi;S1{9N?VXgsb^%@eBw0_Kg~LSMc5;)g2(PmwDFzTh$!lH@Y$uvz!E1r4&iC7nBZXY2QyPhDL!31^Fr3W!Rro&Wdr;-0 zu@FzIT}Pa-85`K?;TPji^quYmC<4%g@)@>lknvx3k_fawH>1RqP;_1|@10(RZ?73+oh`k7uG3i>%i``)#)Pj&?-M zb_N_wmEbcuHg=$UDfEx!5+tGXl8!(0v4fAv$E|S8=Y05oCzT@s0F;ZsOH@J;Kqthb z(BATXux~yW^j#_r-q@IxF+DkE1Ufxd;=)s$MIC;Ac>yTy)#~G3w-cvqAArYmZlE>C z{DGI^TN=h0Mh+eau5dp}oP~P+Xdm6>A^M%21duXnQ_;FR zK};x$-IiOA9zP^}+AT2h70R;V(IF%j(~lyc!36~R``~~v5DlOtLJ5dLJw2iYo-rGO z);c{t*zE?YMlj%_nTEUQf%qglN~J@}G45WFCP}MWv)sv;NAx%^d>?e0uK&y^8F@k| zzPxLfV3nlSx@g7fM_l27Z^*H!2xSO;@;Ueq?3VHXPuLF+*L;csn8c3$isj)W+^s$t zp4cn?m0J9gr!i|eY>n3K%iV{FP|K~UJTey-G@}3*(Brh}R37GT&8hcN!g#`Qs}Uz4 zENzl_4u8kOKh!i{+i>a~vj`+`GeK;Y;&W=81Oo{BM95y1*rqFUpqDz$%%TJkt{z_x zD!u^FleO$Ki3NWS233fJ~l+^deqHVPEhv7fq; zPiok)BCA2a@mZc&~p`}Ue2=}Rv{)u=g^mPf%wq}lXE~o6okX3tk#;ChD*LdH;TE&#)#Y2 z$|kqBd6Pk*X9ia^SO#~a6z%~DDcV~bUlmaxoZ`{NI_3zDYKFMw0V%6Kr1(qmD!K8lv!WSjKNS6# zG7k5034-EwA+#o6#s-SIBND8{ym1vj8Rm0|55Xr~i@`(q9CYo#GLloq*;Q^t{(d!Y|$w1UUsx~kl9lW(bjHw3>J1f~FuCB^RW5{I8Gfl28o!uEna zpl#dF(WvB%5vhr=mHf-v{sw@#x7cRDJh1t8B+f&-H6K=o>?Of6(*bOw;#^57(5xxr z;@;DeF-mnsK#0dmC_ss_c+$aBlL^O!yF>M(;Aq?*YcP=1aod$gHsN?;o$3G@j&uom zbJu;iXe6x1k9^O*ZfFh=vZcBD(|ByUg)V&E*xn9BBonp+K74_Ayz zz?6(;+#7I21?T>P*?;7T(86&DE&x}Z-9$<$(uP9V1t(t4!k-mz$G-IY=C=Gmvr9jf zD4=|eo?|U6)yT_Aqb2-wo$NI4m#oK|75m3slVrpVL1AoR2CA~$*^y_yktB%1Y#iw8 zt4`BJoz-tGpL_5eP%!(6xIjCe4rT~ z1Qp|{m1r{XhR9`g8OX>sR|tss{??7gR?#{^OV`iOx&7|f=+x4ybM=0>Y|$kYn#FSU zg6b`F84e2SHqu)zm8S4*&n3)LRlD+)oJ~i_)0!(SzdRJiBH%S$PJVK*gsa<_8mc(= zlM}x?9#pqZsHFfTrYfQY7s>OyZnS{mX;rl5;M@T*kfaD z=_GcWJ%n$CRSJjMtzV=&FpwXYSdtFK+^w>Os?{z5(YxBoEjQ5G?x z5&z%%j;yCn?KzC5^z0{a-Amr3tIgIB`Bu>PZcyPb z&&bwN#4gzLhP8I&j&`KL*J3iEH>>?eMOx4wpk7^)VLL74*z))$yXJMDJ;kSBVEDGp zw5W~yU!j4ATDuy?I!XxRFwtVxfT~Rd&gB-HCZnXRIy5xKEN6rIEh>JYGjbk#)edk4 zVMTqAbKRQO)@NPRnERvCmeEiFbyt6$2gp^qTf6Tzh+ai=lCip8juCHTy?)bxE6SD; zC@q>5{2KU;P{VxtU7pN=y|>(iU_fu_ev>^1H&L0JJ9XXluln{<*yr>9eB>1G*_U7d z=&kTSdcV(p%gh2ekYjWE;B6o-;rsZCtXbVJC!nm9mD)@F}gg`0z zF2&p+=Y>HGgiqX3A@GeMr)JoKmjYW~+O@?NWQ#C-rSJqzqa_m%fQUhe#TRw==E)(U z9`;hnC-~B8RICx3fo!bYzjBE5aVo;>r6*U--DH9TkgL1l!$(m0?*!unvQnkYS{Taj zQKsYEE>>2LVg@|O>QnE#ULi}&yN}hO8BhNnv;awH^&;ZFs~2Go0S_+Rv>|NCKr4uO z`|KLB&mq@qlZRBtX~YGMXOR0d8;uR`vFsmilQx`lHVixOrmA(; zg-U`T;A2&}0!#53y7E6&RQeAo?$&yR*vA4%BM$pTuo+(LHD150nrytT(y z@0j#FH8ae^`yjE&gR{CV+rLO${5xE6xAu@zL9^I@;`7GoFApL2CX}N=ld@+G+)r=` zEA^pLZ*nN~qmBO<7I%Q?XAoKVF#U|xwPvT*{ZuIpmHU$zl+qwzlc$mvHKRo-?V`I+EUGm`1T&`|jfx0}gcx`4(B#BgZWR9zCM zHwHgyG)IC-=*6uh_I)IH!py!U2f1G~@hi`DS)21Wht>m!%+4G?7V^)#$9zQ>GfMa@ zQ;(*07@+`tkfU%nUa>_;3vyxEs?aaS{1qC4cBy1a0ged49MHf|L(ez*Hy3VYLy5c9 zdQ(kx9*Po2=zw{h-^xty4tamzg)jV>eTr8A(QsI~4>uLU4YxTMa}vIHlxu0z^Y3KV zckcP;pOdt|IA1+Mv&2RlF0bLMl;i4C&^fAb_g2IDq2xqBz&q$QVp77Ci!2KMmguzs>dzc* zqJbf5eKwgwEu=?kw~=GulC0 zoxtxiz=1o4-8P*KNq)WyG33fETt<5$O+3@YOV15$-M3@g^?Im;!Q;rrhmnVSKryAq zkN@oIgWc8ePq-BJi|ti7j`^GhtgE;`**75}kO4sho)hO|Z{#xjnd|3!+YQ`j=z^bm ztO*iMJyD`^OUP5CK`4FnnfneYxC~21&Rqd&1JtBO(^tr9C7}elK@HqNQ(|z#N6iQl zYJhvtCfXO=AzN5kMB=ISoa9Z0&u7eG>VxJ=uZgLxDimO;`bBws-KbkNqXTi&W|73( zad1K+Fh6z`?FIDw$?JVu1FWV5DS@@=*WABKG$MRL=xejFl}kvGJFd-G9TY$<5Xe1c zdRO=!+#4Y)72u_$J(+d$>+Wu^g7z+50I^?4Qc$21fCbM{YFL9HusM4px>Wx0EGA9a

XjQ*qV|8(9Yzg-E7!c4YnF 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ȵ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 Sw`mPz))?v;>n5+WIr2Xkw<$9K literal 0 HcmV?d00001 From f509f7c62234b87910745ae6ce0ff03adf2d45f1 Mon Sep 17 00:00:00 2001 From: Ross Castle Date: Tue, 2 Mar 2021 12:42:14 +0000 Subject: [PATCH 199/304] Changed the shell script from moab to slurm as the ISCA HPC has been coverted. --- exp/test_cases/isca_job.sh | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/exp/test_cases/isca_job.sh b/exp/test_cases/isca_job.sh index 147b8f24b..5fa7d9759 100644 --- a/exp/test_cases/isca_job.sh +++ b/exp/test_cases/isca_job.sh @@ -1,17 +1,20 @@ -#!/bin/sh -#PBS -V # export all environment variables to the batch job. -#PBS -d . # set working directory to . -#PBS -q ptq # submit to the parallel test queue -#PBS -l nodes=1:ppn=8 # nodes=number of nodes required. ppn=number of processors per node -#PBS -l walltime=0:30:00 # Maximum wall time for the job. -#PBS -A Research_Project-PROJECTNUMBER # research project to submit under. -#PBS -m e -M USER@exeter.ac.uk # email me at job completion - # This is an example of how to submit an experiment to the queue on the Isca supercomputer # in Exeter. USER and PROJECTNUMBER in the metadata above need to be # updated to appropriate values for your experiment. # For more information about running on the Exeter cluster, see the wiki -# here: https://wiki.exeter.ac.uk/display/ISCA/Isca+Wiki +# here: http://login.isca.ex.ac.uk:8080/wiki/Isca+Guide.pdf + +#!/bin/bash +#SBATCH --export=ALL # export all environment variables to the batch job +#SBATCH -D . # set working directory to . +#SBATCH -p ptq # submit to the parallel queue +#SBATCH --time=03:00:00 # maximum walltime for the job +#SBATCH -A Research_Project-PROJECTNUMBER # research project to submit under +#SBATCH --nodes=1 # specify number of nodes +#SBATCH --ntasks-per-node=16 # specify number of processors per node +#SBATCH --mail-type=END # send email at job completion +#SBATCH --mail-user=USER@exeter.ac.uk # email address + module load Anaconda3 -source activate gfdl -python held_suarez/parameter_sweep.py +source activate isca_env +python held_suarez/held_suarez_test_case.py From a31eaa58ba9d4b05d454874c375a0ce7a909b1be Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Tue, 9 Mar 2021 17:26:54 +0000 Subject: [PATCH 200/304] Update isca_job.sh --- exp/test_cases/isca_job.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp/test_cases/isca_job.sh b/exp/test_cases/isca_job.sh index 5fa7d9759..d85cce1ca 100644 --- a/exp/test_cases/isca_job.sh +++ b/exp/test_cases/isca_job.sh @@ -7,7 +7,7 @@ #!/bin/bash #SBATCH --export=ALL # export all environment variables to the batch job #SBATCH -D . # set working directory to . -#SBATCH -p ptq # submit to the parallel queue +#SBATCH -p pq # submit to the parallel queue #SBATCH --time=03:00:00 # maximum walltime for the job #SBATCH -A Research_Project-PROJECTNUMBER # research project to submit under #SBATCH --nodes=1 # specify number of nodes From 8c1c696c612b4a799995b64d042a7bfebe523639 Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Thu, 11 Mar 2021 10:37:49 +0000 Subject: [PATCH 201/304] Update isca_job.sh Link for help changed again --- exp/test_cases/isca_job.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp/test_cases/isca_job.sh b/exp/test_cases/isca_job.sh index d85cce1ca..9208901f8 100644 --- a/exp/test_cases/isca_job.sh +++ b/exp/test_cases/isca_job.sh @@ -2,7 +2,7 @@ # in Exeter. USER and PROJECTNUMBER in the metadata above need to be # updated to appropriate values for your experiment. # For more information about running on the Exeter cluster, see the wiki -# here: http://login.isca.ex.ac.uk:8080/wiki/Isca+Guide.pdf +# here: https://universityofexeteruk.sharepoint.com/sites/ExeterARC #!/bin/bash #SBATCH --export=ALL # export all environment variables to the batch job From 66fae9cf4680b31e4775de65bbd4a85e5ac79342 Mon Sep 17 00:00:00 2001 From: Daniel Williams Date: Mon, 15 Mar 2021 14:30:24 +0000 Subject: [PATCH 202/304] Updated to address comments in PR and tidy formatting. --- docs/source/modules/constants.rst | 135 ++++++++++++++++++------------ 1 file changed, 81 insertions(+), 54 deletions(-) diff --git a/docs/source/modules/constants.rst b/docs/source/modules/constants.rst index 52fd2ce2a..5a7244119 100644 --- a/docs/source/modules/constants.rst +++ b/docs/source/modules/constants.rst @@ -5,30 +5,42 @@ Constants: Atmospheric and Planetary Parameters Summary ------- -``constants.F90`` provides a number of controls that set the fundamental parameters of the planet being studied - it is used by nearly every other module in Isca. By default, Isca models a planet equivalent to earth in terms of physical characteristics such as size, surface gravity and rotational period. In addition, water is set as the default condensate for any moist physics modules that may be used. +``constants.F90`` provides a number of controls that set the fundamental parameters of the planet being studied - it is used by nearly every other module in Isca. By default, Isca models a planet equivalent to Earth in terms of physical characteristics such as size, surface gravity and rotational period. In addition, water is set as the default condensate for any moist physics modules that may be used. Planetary Parameters ^^^^^^^^^^^^^^^^^^^^ -Below are a set of controls that allow the physical size and rotation to be set. This allows us to model a range of planets, including others in the Solar System such as Mars and Jupiter, in addition to exoplanets. Rotation can be set by two different parameters: a rotation rate :math:`\Omega` can be specified; or alternatively a period in seconds can be given that is converted back to a value of :math:`\Omega`. - -+-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ -| Name | Default | Units | Description | -+===================+==================================+=======================================+=================================================+ -|``radius`` | 6371e3 | m | Radius of planet | -+-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ -|``gravity`` | 9.80 | ms :math:`^{-2}` | Surface gravitational acceleration | -+-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ -|``omega`` | 7.2921150e-5 | rad :math:`\cdot` s :math:`^{-1}` | Rotation rate of planet | -+-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ -|``rotation_period``| -1.0 (inactive) | s | Rotation period of planet (overrides ``omega`` )| -+-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ -|``orbital_period`` | 31557600 | s | Orbital period of planet | -+-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ -|``orbital_rate`` | :math:`2\pi` / ``orbital_period``| rad :math:`\cdot` s :math:`^{-1}` | Orbital rate of planet | -+-------------------+----------------------------------+---------------------------------------+-------------------------------------------------+ - -.. note:: Whilst the rotation and orbital rates are set within this module, other parameters associated with planetary motion such as axial tilt (obliquity) and eccentricity are controlled from the ``astronomy_mod`` module. +Below are a set of controls that allow the physical size and rotation of a planet to be set in the namelist. This allows us to model a range of planets, including others in the Solar System such as Mars and Jupiter, in addition to exoplanets. Rotation can be set by two different parameters: a rotation rate ``omega`` can be specified; or alternatively a period in seconds can be given that is converted back to a value of ``omega``. + ++---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ +| Name | Default | Units | Description | ++=====================+==================================+==================================+===========================================================+ +|``radius`` | :math:`6371\times 10^3` | m | Radius of planet | ++---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ +|``gravity`` | :math:`9.80` | ms :math:`^{-2}` | Surface gravitational acceleration | ++---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ +|``omega`` | :math:`7.2921150\times 10^{-5}` | rad :math:`\cdot` s :math:`^{-1}`| Rotation rate of planet | ++---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ +|``rotation_period`` | :math:`-1.0` (inactive) | s | Rotation period of planet (overrides ``omega`` ) | ++---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ +|``orbital_period`` | :math:`31557600` | s | Orbital period of planet | ++---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ +|``orbital_rate`` | :math:`2\pi` / ``orbital_period``| rad :math:`\cdot` s :math:`^{-1}`| Orbital rate of planet | ++---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ +|``solar_constant`` | :math:`1368.22` | Wm :math:`^{-2}` | Stellar irradiance | ++---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ +|``earthday_multiple``| False | n/a | Modifies seconds per sol calculation (planetary solar day)| ++---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ + +By default the parameter ``seconds_per_sol`` (where ``earthday_multiple`` is false) is calculated using + +.. math:: \texttt{seconds_per_sol} = \left|\frac{2\pi}{\texttt{orbital_rate} - \texttt{omega}}\right| , + +whereas setting ``earthday_multiple`` to true modifies the calculation to + +.. math:: \texttt{seconds_per_sol} = 86400 \cdot \frac{\texttt{earth_omega}}{\texttt{omega}} . + +.. note:: Whilst the rotation and orbital rates are set within this module, other parameters associated with planetary motion such as axial tilt (obliquity) and eccentricity are controlled from the ``astronomy_mod`` module. Dry Atmosphere ^^^^^^^^^^^^^^ @@ -37,21 +49,19 @@ Changing the dry atmosphere values allows atmospheres with a wide range of compo The dry air gas constant for any homogeneous atmosphere can be calculated from its chemical composition. It is calculated by dividing the universal gas constant :math:`R` by the average molar mass of the atmosphere. -+------------+----------------------+-------------------------------------+-------------------------------------------------------+ -| Name | Default | Units | Description | -+============+======================+=====================================+=======================================================+ -|``pstd_mks``| 101325.0 | Pa / Nm :math:`^{-2}` | Mean (reference) surface pressure (SI) | -+------------+----------------------+-------------------------------------+-------------------------------------------------------+ -|``pstd`` | 1.013250e06 | dyn :math:`\cdot` cm :math:`^{-2}` | Mean (reference) surface pressure (cgs) | -+------------+----------------------+-------------------------------------+-------------------------------------------------------+ -|``rdgas`` | 287.04 | Jkg :math:`^{-1}`K :math:`^{-1}` | Dry air gas constant | -+------------+----------------------+-------------------------------------+-------------------------------------------------------+ -|``kappa`` | 2/7 | dimensionless | Heat capacity ratio ( :math:`\gamma` for an ideal gas)| -+------------+----------------------+-------------------------------------+-------------------------------------------------------+ -|``cp_air`` | ``rvgas`` / ``kappa``| Jkg :math:`^{-1}`K :math:`^{-1}` | Dry air heat capcity | -+------------+----------------------+-------------------------------------+-------------------------------------------------------+ ++------------+----------------------------+-------------------------------------+-------------------------------------------------------+ +| Name | Default | Units | Description | ++============+============================+=====================================+=======================================================+ +|``pstd_mks``| :math:`101325.0` | Pa / Nm :math:`^{-2}` | Mean (reference) surface pressure (SI) | ++------------+----------------------------+-------------------------------------+-------------------------------------------------------+ +|``pstd`` | :math:`1.013250\times 10^6`| dyn :math:`\cdot` cm :math:`^{-2}` | Mean (reference) surface pressure (cgs) | ++------------+----------------------------+-------------------------------------+-------------------------------------------------------+ +|``rdgas`` | :math:`287.04` | Jkg :math:`^{-1}`K :math:`^{-1}` | Dry air gas constant | ++------------+----------------------------+-------------------------------------+-------------------------------------------------------+ +|``kappa`` | :math:`2/7` | dimensionless | Heat capacity ratio ( :math:`\gamma` for an ideal gas)| ++------------+----------------------------+-------------------------------------+-------------------------------------------------------+ -.. note:: If the mean surface pressure value is changed here, it is necessary to also set ``reference_sea_level_press`` from the ``spectral_dynamics_nml`` namelist, else the output file will not extend to the pressure specified. +.. note:: If the mean surface pressure value is changed here, it is necessary to also set ``reference_sea_level_press`` from the ``spectral_dynamics`` namelist, else the output file will not extend to the pressure specified. Moist Atmosphere @@ -59,25 +69,42 @@ Moist Atmosphere With the addition of moist physics, a number of additional namelist parameters can be used to change the primary condensate present in the atmosphere. This allows atmospheres in temperature regimes significantly different from Earth to be modelled, including Titan, which has an active methane cycle. -+--------------+-------------------+----------------------------------+-------------------------------------------+ -| Name | Default | Units | Description | -+==============+===================+==================================+===========================================+ -|``rvgas`` | 461.50 | Jkg :math:`^{-1}`K :math:`^{-1}` | Vapour gas constant | -+--------------+-------------------+----------------------------------+-------------------------------------------+ -|``cp_vapor`` | 4 * ``rvgas`` | Jkg :math:`^{-1}`K :math:`^{-1}` | Vapour heat capacity | -+--------------+-------------------+----------------------------------+-------------------------------------------+ -|``dens_vapor``| 1000 | kgm :math:`^{-3}` | Density of condensate in the liquid phase | -+--------------+-------------------+----------------------------------+-------------------------------------------+ -|``hlv`` | 2.500e6 | Jkg :math:`^{-1}` | Latent heat of vapourisation of condensate| -+--------------+-------------------+----------------------------------+-------------------------------------------+ -|``hlf`` | 3.34e5 | Jkg :math:`^{-1}` | Latent heat of fusion of condensate | -+--------------+-------------------+----------------------------------+-------------------------------------------+ -|``hls`` | ``hlv`` + ``hlf`` | Jkg :math:`^{-1}` | Latent heat of sublimation of condensate | -+--------------+-------------------+----------------------------------+-------------------------------------------+ -|``tfreeze`` | 273.16 | K | Freezing point of condensate | -+--------------+-------------------+----------------------------------+-------------------------------------------+ -|``tppress`` | 610.78 | Pa / Nm :math:`^{-2}` | Triple point pressure of condensate | -+--------------+-------------------+----------------------------------+-------------------------------------------+ ++---------------+-------------------------+----------------------------------+-------------------------------------------+ +| Name | Default | Units | Description | ++===============+=========================+==================================+===========================================+ +|``rvgas`` | :math:`461.50` | Jkg :math:`^{-1}` K :math:`^{-1}`| Vapour gas constant | ++---------------+-------------------------+----------------------------------+-------------------------------------------+ +|``dens_liquid``| :math:`1000` | kgm :math:`^{-3}` | Density of condensate in the liquid phase | ++---------------+-------------------------+----------------------------------+-------------------------------------------+ +|``hlv`` | :math:`2.500\times 10^6`| Jkg :math:`^{-1}` | Latent heat of vaporisation of condensate| ++---------------+-------------------------+----------------------------------+-------------------------------------------+ +|``hlf`` | :math:`3.34\times 10^5` | Jkg :math:`^{-1}` | Latent heat of fusion of condensate | ++---------------+-------------------------+----------------------------------+-------------------------------------------+ +|``tfreeze`` | :math:`273.16` | K | Freezing point of condensate | ++---------------+-------------------------+----------------------------------+-------------------------------------------+ +|``tppress`` | :math:`610.78` | Pa / Nm :math:`^{-2}` | Triple point pressure of condensate | ++---------------+-------------------------+----------------------------------+-------------------------------------------+ +|``es0`` | :math:`1.0` | dimensionless | Humidity factor :math:`^\dagger` | ++---------------+-------------------------+----------------------------------+-------------------------------------------+ + +:math:`^\dagger`: The humidity factor controls the atmospheric humidity content via the expression for saturation vapor pressure *if* ``do_simple: True`` is set within the ``idealized_moist_phys`` namelist. + +Derived Constants +^^^^^^^^^^^^^^^^^ + +From the above namelist variables a few more derived atmospheric constants are calculated that are called by other modules, these are: + ++------------+-----------------------+---------------------------------+------------------------------------------+ +| Name | Default | Units | Description | ++============+=======================+=================================+==========================================+ +|``cp_air`` | ``rvgas`` / ``kappa`` |Jkg :math:`^{-1}` K :math:`^{-1}`| Dry air heat capacity | ++------------+-----------------------+---------------------------------+------------------------------------------+ +|``cp_vapor``| :math:`4` * ``rvgas`` |Jkg :math:`^{-1}` K :math:`^{-1}`| Vapour heat capacity | ++------------+-----------------------+---------------------------------+------------------------------------------+ +|``hls`` |``hlv`` + ``hlf`` |Jkg :math:`^{-1}` | Latent heat of sublimation of condensate | ++------------+-----------------------+---------------------------------+------------------------------------------+ + + Relevant Modules ---------------- @@ -85,4 +112,4 @@ Since this module provides the definition of a number of physical constants, it Authors ------- -This documentation was written by Daniel Williams, peer reviewed by YY, and quality controlled by ZZ. +This documentation was written by Daniel Williams, peer reviewed by Stephen Thompson, and quality controlled by Ross Castle. From a9b581055a8ecb06057b4202016fcc6feba485c8 Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Wed, 31 Mar 2021 16:34:04 +0100 Subject: [PATCH 203/304] Add files via upload Isca beginners documentation V1. Trying out the github upload method. --- docs/source/begginers_guide.rst | 171 ++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 docs/source/begginers_guide.rst diff --git a/docs/source/begginers_guide.rst b/docs/source/begginers_guide.rst new file mode 100644 index 000000000..e8c15991a --- /dev/null +++ b/docs/source/begginers_guide.rst @@ -0,0 +1,171 @@ +Isca Beginners Guide +==================== + +Below is a list of reading and activites that will help you get comfortable using Isca. Be assured that your supervisor/tutor will not expect you to be fluent with this when you start using Isca, but it will help to have an idea of what to expect when you start running the model. + +This document is essentially a suggestion of signposts. With this kind of work, self-study and initiative is very important. It is up to you to go and research the topics until you feel comfortable. + +Essentials +------------- + +Users who will be using Isca to run simple planetary models under close guidance of a supervisor/teacher should learn about the following topics. Do not worry if it doesn’t make sense right now, you will understand more as you go on. + +ssh/terminals +^^^^^^^^^^^^^ +To run Isca you will need to be using quite a powerful computer, most laptops will not suffice, especially for high resolution runs. You’ll likely run Isca on a university owned *workstation* or *supercomputer*. Your supervisor will inform you of the name of the computer. However, these computers are *remote* – that is you do not sit in front of them and login to them as you might be used to. You have to login to them from another computer, e.g. your personal laptop. This is called *SSH*, or *Secure Shell*, a protocol that enables two computers to communicate and share data. + +To do this you will need a *terminal* on your own personal computer. Mac and linux computers will have a factory installed app for this called *terminal*. Windows users will need to download a piece of software, the most common is `PuTTY `_. These are *ssh clients*. This software is text based - everything is done using text commands from the *command line*, we talk about this more later. + +To login to the *unix server*, all you need to do is open the *terminal* and run something like: + +``ssh USER@computername.ex.ac.uk`` + +Your supervisor will tell you the precise command. + +You may also need to be connected to a *VPN (Virtual Private Network)*. For Exeter, if you are not on campus you will certainly need to use `this `_. + +There are some interesting videos on youtube on how the SSH protocol works: e.g. `here `_, but you don’t need to understand how it works in order to use it. + +Unix Servers +^^^^^^^^^^^^ +Most scientific computing is done on computers/servers that use an *unix* operating system. These do not have a *graphical user interface (GUI)*, everything is done with text commands. There are good guides on the internet, like `here `_. + +If you are an apple/linux user, you can just open the terminal app on your laptop and practise there. If you use windows, it maybe easiest to use this `emulator `_, then select the drop down arrow to the right of `New` and select `_Terminal.term`. Note because you’re using an emulator it may not be possible to follow the steps of the guide exactly, but try and get a feel of the commands they suggest (`cd, cd .., ls, mkdir, rm, pwd, mv, cp, less`). + +Python (namelists) +^^^^^^^^^^^^^^^^^^ +Isca is configured using *python* scripts, although the actual model is coded in *FORTRAN* (see 'Advanced'). `Python `_ is a powerful high-level programming language, similar to Matlab – but far better. + +At this stage you don’t need to be able to code in python, as Isca has prewritten scripts called *test cases* which you can just edit in order to change the model set up. Editing will require changing one or more *namelists*. The namelists are actually part of the FORTRAN code but we use *python packages* to pass these variables between the python script and the FORTRAN model. + +For example say that in the model the value for the CO2 concentration was 300, and you wanted to make it 600, all you would need to do is change: + +``'co2_conc' : 300.`` to ``'co2_conc' : 600.`` in your text editor (see below). + +If you haven’t used python before and want to become more familiar, there are hundreds of tutorials (e.g. `here `_) and videos. To practise you can use a *python notebook* on something like `Colab `_, or download software like `Anaconda `_. Python is comprised of the basic python *packages* and then additional *libraries* you have to install and *import*. In the future it may be useful to have python *environments* (see 'Conda' in 'Intermediate'). + +Text Editors +^^^^^^^^^^^^ +You will need to be able to edit text based files, this includes code files like python and other scripts relevant to scientific computing (see 'shell'/'bash' in 'Advanced'). +Every unix server will have *vim*, which is a powerful text editor, but it does take some getting used to. For example, unlike in 'MS Word' or editors with *GUIs*, you cannot click to place your cursor in vim. + +You can try out this `tutorial `_. Note: I have found that you can usually also use the `up/down/left/right` keys to navigate the text, not just `h/j/k/l` as is stated here. You can practise freely using terminal (Mac/Linux) or the unix `emulator `_. + +To open vim type on the command line: + +``vim test.txt`` (if you’re lazy like me ``vi test.txt`` also works). + +This opens a new text file in vim. You can edit an existing file in exactly the same way: + +``vim alreadyexisted.txt`` + +vim is not the only option! *emacs* is a similar editor which is guaranteed to be installed. emacs is opened in the same way as vim. + +Perhaps a better option is *gedit*. This is a simple text editor with a GUI which is usually installed on servers (it is on the GV machines). **This is what I would recommend using as a beginner, if available**. It’s a little clunky but more intuitive to use then the previous options. It is opened exactly the same as vim/emacs. In some cases you may need to set up *X11 forwarding* (see 'Intermediate'). + +As you get more comfortable with this scientific computing, you will likely find that you prefer a different text editor with a GUI which is far more user friendly. However, it will require a bit of setting up. Talk to your supervisor/research group about what they use and how they got it to work. + +Intermediate +--------------- + +If the user will be running multiple experiments on their own and analysing the output, the following will likely be useful to them: + +Isca Structure +^^^^^^^^^^^^^^ +It may be useful for you to have a rough idea on how Isca works. The best way to do this is to look through the Isca `documentation `_, especially the Isca structure page. You can also skim through the `source code `_, to get an idea of what files there are – there are lots, but you don’t need to worry about how they all work so do not be intimidated! + +Conda +^^^^^ +As mentioned earlier in the Python section, often Python libraries have to be installed, and you’ll need different libraries depending on what you’re doing. Python *environments* are very useful as loading them will load all the libraries you need for a given task. For example, there is an isca environment which is set up during the Isca installation, which has all the relevant python modules for running Isca. See `here `_ for more details. + +Workstations +^^^^^^^^^^^^ +Some terminology things to be aware of when running on servers/workstations: + +- Workstations (for example the ‘GV machines’ at Exeter) have *cores* which are like groups of processors. So when running Isca you can run on a number of cores, generally the more cores the faster. Due to the way Isca works, you can only run on a number of cores that is a power of 2 (1, 2, 4, 8, 16, 32). We usually run at 8 or 16. +- Unix has a feature called *screen* which allows you to leave something running and logout of a computer. When you’re logged in, simply type ``screen`` on the command line and a screen will start. You can then press ``CTRL+A+D`` to detach from the screen but leave your job running. Then you can log out of the computer. See `here `_ for commands about reattaching, listing screens etc. +- Typing ``top`` on the command line will display a list of users/jobs that are happening at that time. This is useful to make sure you are not overloading the computer. For example, if you wanted a to run an 8 core job but the computer only had 4 cores free, you’d have to wait. + +X11 forwarding +^^^^^^^^^^^^^^ +If you want to make plots and view them from a computer you have SSH’d into, you might need to set up some sort of *X11 forwarding*. It just allows images created in windows on another computer to appear as windows on your own computer. + +Use software like `XQuartz `_ for macOS or Xming for Windows. You’ll also need to add the ``-Y`` or ``-X`` option to your ssh command (i.e. ``ssh –Y user@emps-gv1.ex.ac.uk``) . Getting it set up the first time may be a little tricky, but there is plenty of help available on google/your supervisor. + +netCDFs +^^^^^^^ +Isca has to store the data it generates so that you can analyse it and make plots. The file type it uses is called a *netCDF* file which has a *.nc* suffix. For example, every month Isca can output a file called ``atmos_monthly.nc`` which contains all the variables asked for in the python run script (wind velocities, temperature, precipitation, etc). They are very useful for climate data because it allows variables to be stores on sets of *axis* like latitude, longitude, height* and time. This makes it easy to make plots and there are python libraries e.g. *netCDF4* which have many useful functions to make your life easier. + +If you’re interested there is reams of documentation `here `_ but again, you don't need to understand it too much in order to use it. + +*Note: In Isca’s case the ‘height’ axis is not measured in meters, but usually in `sigma pressure coordinates `_. + +Plotting/xarray +^^^^^^^^^^^^^^^ +When Isca has finished it’s model run, you’ll want to look at the data created and analyse it and make plots. We have some scripts that will help get you started `here `_. These scripts are written using functions from python libraries called `xarray `_, which is a very powerful way to work with datasets in python, and `matplotlib `_ which is a plotting library. You will need to install these libraries to a python environment to use them. + +Transferring Files (SFTP/SCP) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Now you have made plots – or indeed any file you want to transfer between the computer you have SSH’d into and your own – you will need a way of transferring them. There are several ways of doing this. + +*SFTP (SSH File Transfer Protocol)* is one, it will work on all operating systems and is the easiest for windows. One way of using SFTP is with an *SFTP client*, many are available. One of them is `Cyberduck `_. It will require setting up but it is fairly straight forward. These clients tend to have a GUI so you can just drag and drop the files you want to transfer. + +Other option is to use a command line function, for example ``scp``. This is a secure file copy protol, which uses SSH. The usage is simple, for example on the computer you want to transfer the file to, type: + +``scp USER@COMPUTERNAME.ex.ac.uk:/path_to_file/file.png /path_to_destination/`` + +This uses the protocol to SSH into the computer with the file and copy it to the location specified on the RHS. Note to copy a directory you can use the ``-r`` (*recursion*) option. We also can use a ``.`` to copy to our current file location. + +``scp –r USER@COMPUTERNAME.ex.ac.uk:/path_to_directory/ ./`` + +See `here `_ for more details. + +Advanced +-------- + +Users who either intend to make changes to the Isca source code, or will use the model so often as to benefit from additional tools, should research the following: + +Git +^^^ +Git is a *version control software*, which allows you and every other user to have different copies of the Isca source code and modify it safely. Developers of Isca will have different *branches* on their own *fork*, which they can modify and improve. If the improvements are useful to everyone, the changes can be added to the `master copy `_. + +Here is a `video `_ about how git works. Here is a useful `cheat sheet `_ on git commands. + +Supercomputers +^^^^^^^^^^^^^^ +You may be able to run Isca on a supercomputer, for example at Exeter we have *ISCA HPC (High Performance Computer)* - the same name get’s confusing. Your supervisor will help get you set up on this as they are a little more complicated, although usually faster. + +When you login to a supercomputer you are in fact logging in to a small *login node* which is not designed to run code. It is designed to allow you to submit your job to a *queue* which will then be run on the main computer (see 'Slurm' below). Here is some `documentation for ISCA HPC `_, see the ISCA User Guide. + +Slurm +^^^^^ +Submitting jobs to a queue requires you to use the supercomputers *workload manager*. ISCA HPC uses *Slurm*, but there is also *moab*. See here for a `slurm cheat sheet `_. The important ones are ``sbatch`` and ``squeue``. + +FORTRAN +^^^^^^^ +The actual Isca model is written in a coding language called *FORTRAN.90*. Therefor if you intend on modifying the source code, you’ll need to know a little FORTRAN. It is incredibly fast, but it has to be *compiled* before use (it is a *low level* language) and is slightly different from *high level* code. For example, you have to define variables before you can use them. There are plenty of FORTRAN tutorials around, e.g. `here `_, however you will probably learn as you go by modifying the Isca code. + +Shell scripts +^^^^^^^^^^^^^ +A *shell script* (``scriptname.sh``) is a useful tool if you have a series of command lines you have to write, especially if you do it often. For example, I have a shell script that transfers data from one server to another. The `example file `_ to submit a job to ISCA HPC is also a shell script. See `here `_ for more details or google. + +.bashrc script (aliases) +^^^^^^^^^^^^^^^^^^^^^^^^ +One particular shell script is your ``.bashrc`` script, see `here `_. Your supervisor will set this up for you, as some Isca file locations need to be included in it. One very useful thing that you can set up in this script is *aliases*. This is where a text string is assigned to a command. + +E.g. the line ``alias go_data='cd /scratch/USER/data_isca'`` will allow you to go to your data file location, just by typing ``go_data``. + +Or the line ``alias i='source activate isca_env'`` will activate your ``isca`` python environment just by typing ``i``. + +Useful Links +------------ + +- `How to install isca `_ +- Will Seviour's Scripts - useful code designed for `setting up Isca at Bristol university `_ and `analysing data using a python notebook `_ +- `ICPT workshop repo `_ (some lecture slides and analysis scripts). + +Authors +------- +This documentation was written by Ross Castle with input from the Isca team, notably Penny Maher, Denis Sergeev, Geoff Vallis and Will Seviour. It is hoped that this document will continue to be edited and improved, especially by masters and PhD students. + +Last updated 31/03/2021 From 6184fb991142604983c8ce2281f31962dca6f42f Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Wed, 31 Mar 2021 16:35:13 +0100 Subject: [PATCH 204/304] Update index.rst Update index file --- docs/source/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/index.rst b/docs/source/index.rst index ce87a3fa1..9cb594c77 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -123,6 +123,7 @@ Contents :glob: install + begginers_guide examples/index.rst modules/index.rst python From 130dcbaad296a66d4e5ea69922ae3cc13fa5b2fd Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Thu, 1 Apr 2021 09:50:48 +0100 Subject: [PATCH 205/304] Update begginers_guide.rst Added links to the ReadMe and Neil's experiment guide - which is fantastic and I wish I knew about it sooner! --- docs/source/begginers_guide.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/begginers_guide.rst b/docs/source/begginers_guide.rst index e8c15991a..91f86dc2a 100644 --- a/docs/source/begginers_guide.rst +++ b/docs/source/begginers_guide.rst @@ -5,6 +5,8 @@ Below is a list of reading and activites that will help you get comfortable usin This document is essentially a suggestion of signposts. With this kind of work, self-study and initiative is very important. It is up to you to go and research the topics until you feel comfortable. +Note: users who are more familiar with scientific computing may find this document a little longwinded and may be better off looking at the `ReadMe `_ or this `guide on how to run Isca experiments `_. + Essentials ------------- From dcd2e7aa68af677f5a3570c7573d43787ab08788 Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Thu, 1 Apr 2021 10:07:21 +0100 Subject: [PATCH 206/304] Update begginers_guide.rst Added link to Isca paper and Isca website --- docs/source/begginers_guide.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/source/begginers_guide.rst b/docs/source/begginers_guide.rst index 91f86dc2a..ea965c81c 100644 --- a/docs/source/begginers_guide.rst +++ b/docs/source/begginers_guide.rst @@ -164,7 +164,9 @@ Useful Links - `How to install isca `_ - Will Seviour's Scripts - useful code designed for `setting up Isca at Bristol university `_ and `analysing data using a python notebook `_ -- `ICPT workshop repo `_ (some lecture slides and analysis scripts). +- `ICPT workshop repo `_ (some lecture slides and analysis scripts). +- The 2018 `paper on Isca's release `_ +- The `Isca Website `_ Authors ------- From 8133f09bb3d957dbfcd533aa630e7ce885fd7fd7 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Mon, 12 Apr 2021 11:03:36 +0100 Subject: [PATCH 207/304] Reduce smoothing for amip topo with original era land. Need to check which is correct --- exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py b/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py index 777e5f592..0a8662982 100644 --- a/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py +++ b/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py @@ -228,7 +228,7 @@ 'scale_heights' : 11.0, 'exponent':7.0, 'robert_coeff':0.03, - 'ocean_topog_smoothing': 0.0 + 'ocean_topog_smoothing': 0.8 }, 'spectral_init_cond_nml':{ From 36292a01fc3b7f0192cdab0aaa835bddc89dec03 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Mon, 26 Apr 2021 14:42:22 +0100 Subject: [PATCH 208/304] Testing topohraphy --- exp/spookie2/notes_on_runs.txt | 41 +++ .../sit_runs_dec_2018/notes_on_runs.txt | 15 ++ ..._aquaplanet_with_cloud_amip_no_topo_sit.py | 228 +++++++++++++++++ ...quaplanet_with_cloud_amip_with_topo_sit.py | 233 ++++++++++++++++++ 4 files changed, 517 insertions(+) create mode 100644 exp/spookie2/notes_on_runs.txt create mode 100644 exp/spookie2/sit_runs_dec_2018/notes_on_runs.txt create mode 100644 exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_no_topo_sit.py create mode 100644 exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_with_topo_sit.py diff --git a/exp/spookie2/notes_on_runs.txt b/exp/spookie2/notes_on_runs.txt new file mode 100644 index 000000000..d91408248 --- /dev/null +++ b/exp/spookie2/notes_on_runs.txt @@ -0,0 +1,41 @@ +1. The following script + socrates_amip_with_topo.py + created the data that is in + validate_clouds_soc/soc_amip_no_cloud/soc_amip_ice_topo_low_albedo + the purpose was: an amip run to get a baseline without clouds + +2. The following script + socrates_amip_with_topo_with_cloud.py + created the data that is in + validate_clouds_soc/soc_amip_cloud/soc_amip_ice_topo_low_albedo_clouds + the purpose was: an amip run testing the cloud scheme (no ripples) + +3. The following script + socrates_amip_with_topo_with_cloud_original_era.py + created the data in + validate_clouds_soc/soc_amip_cloud/soc_amip_ice_topo_low_albedo_clouds_original_era + the purpose was: an amip run with clouds and gibbs ripples + +4. The following script + socrates_aquaplanet.py + created the data in + validate_clouds_soc/soc_aqua_no_cloud/soc_aquaplanet + the purpose was: slab ocean baseline + +5. The following script + socrates_aquaplanet_with_cloud.py + created the data in + validate_clouds_soc/soc_aqua_cloud/soc_aquaplanet_with_clouds + the purpose was: slab ocean with clouds. + +Notes: + +Exp 3 is no longer needed as the gibbs ripples fix is working. + +Exp1-2 are for validating the cloud scheme in the context of the spookie simulations + +Exp 4-5 are for validating the scheme for it to be merged onto the master + + + + diff --git a/exp/spookie2/sit_runs_dec_2018/notes_on_runs.txt b/exp/spookie2/sit_runs_dec_2018/notes_on_runs.txt new file mode 100644 index 000000000..ea44a5901 --- /dev/null +++ b/exp/spookie2/sit_runs_dec_2018/notes_on_runs.txt @@ -0,0 +1,15 @@ + +The following code +https://github.com/sit23/Isca/blob/simple_clouds/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py + +was used to create the data in this folder +/scratch/sit204/data_isca/soc_test_with_clouds_post_jm_suggestions_amip_ssts_land_mid_albedo + +and this code +https://github.com/sit23/Isca/blob/simple_clouds/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_no_topo.py + +was used to make this data +soc_test_with_clouds_post_jm_suggestions_amip_ssts_land_mid_albedo_flat + +Both of which where used to make the plots I showed Adrian and then tested gibbs rippled plots against. + diff --git a/exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_no_topo_sit.py b/exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_no_topo_sit.py new file mode 100644 index 000000000..6e95c2f7f --- /dev/null +++ b/exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_no_topo_sit.py @@ -0,0 +1,228 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 16 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('soc_test_with_clouds_post_jm_suggestions_amip_ssts_land_mid_albedo_flat', codebase=cb) +exp.clear_rundir() + +inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), + os.path.join(base_dir,'input/sst_clim_amip.nc'), os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Tell model which diagnostics to write +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf', time_avg=True) +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) + +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('cloud_simple', 'cf', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) +diag.add_field('mixed_layer', 'albedo', time_avg=True) + + +# additional output options commented out +diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_co2', time_avg=True) +#diag.add_field('socrates', 'soc_ozone', time_avg=True) +#diag.add_field('socrates', 'soc_coszen', time_avg=True) +#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) + +exp.diag_table = diag +exp.inputfiles = inputfiles + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False, + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True, + 'land_option' : 'input', + 'land_file_name' : 'INPUT/era_land_t42.nc', + 'land_roughness_prefactor' :10.0, + }, + + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3 + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 20.0, #Depth of mixed layer used + 'land_option': 'input', #Tell mixed layer to get land mask from input file + 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. + 'albedo_value': 0.2, #Ocean albedo value + 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land + 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes + 'do_read_sst' : True, #Read in sst values from input file + 'do_sc_sst' : True, #Do specified ssts (need both to be true) + 'sst_file' : 'sst_clim_amip', #Set name of sst input file + 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03, + 'ocean_topog_smoothing': 0.8 + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) + + for i in range(2,121): + exp.run(i, num_cores=NCORES) diff --git a/exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_with_topo_sit.py b/exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_with_topo_sit.py new file mode 100644 index 000000000..6a0110ef7 --- /dev/null +++ b/exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_with_topo_sit.py @@ -0,0 +1,233 @@ +import os + +import numpy as np + +from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE +from isca.util import exp_progress + +NCORES = 8 +base_dir = os.path.dirname(os.path.realpath(__file__)) +# a CodeBase can be a directory on the computer, +# useful for iterative development +cb = SocratesCodeBase.from_directory(GFDL_BASE) + +# or it can point to a specific git repo and commit id. +# This method should ensure future, independent, reproducibility of results. +# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') + +# compilation depends on computer specific settings. The $GFDL_ENV +# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file +# is used to load the correct compilers. The env file is always loaded from +# $GFDL_BASE and not the checked out git repo. + +# create an Experiment object to handle the configuration of model parameters +# and output diagnostics + +exp = Experiment('soc_test_with_clouds_post_jm_suggestions_amip_ssts_land_mid_albedo', codebase=cb) +exp.clear_rundir() + +inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), + os.path.join(base_dir,'input/sst_clim_amip.nc'), os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc')] + +#Tell model how to write diagnostics +diag = DiagTable() +diag.add_file('atmos_monthly', 30, 'days', time_units='days') + +#Tell model which diagnostics to write +diag.add_field('dynamics', 'ps', time_avg=True) +diag.add_field('dynamics', 'bk') +diag.add_field('dynamics', 'pk') +diag.add_field('dynamics', 'zsurf', time_avg=True) +diag.add_field('atmosphere', 'precipitation', time_avg=True) +diag.add_field('atmosphere', 'rh', time_avg=True) +diag.add_field('mixed_layer', 't_surf', time_avg=True) +diag.add_field('dynamics', 'sphum', time_avg=True) +diag.add_field('dynamics', 'ucomp', time_avg=True) +diag.add_field('dynamics', 'vcomp', time_avg=True) +diag.add_field('dynamics', 'temp', time_avg=True) +diag.add_field('dynamics', 'vor', time_avg=True) +diag.add_field('dynamics', 'div', time_avg=True) + +diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) +diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) +diag.add_field('socrates', 'soc_olr', time_avg=True) +diag.add_field('socrates', 'soc_toa_sw', time_avg=True) +diag.add_field('cloud_simple', 'cf', time_avg=True) +diag.add_field('cloud_simple', 'reff_rad', time_avg=True) +diag.add_field('cloud_simple', 'frac_liq', time_avg=True) +diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) +diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) +diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) +diag.add_field('mixed_layer', 'albedo', time_avg=True) + + +# additional output options commented out +diag.add_field('socrates', 'soc_flux_lw', time_avg=True) +diag.add_field('socrates', 'soc_flux_sw', time_avg=True) +#diag.add_field('socrates', 'soc_co2', time_avg=True) +#diag.add_field('socrates', 'soc_ozone', time_avg=True) +#diag.add_field('socrates', 'soc_coszen', time_avg=True) +#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) + +exp.diag_table = diag +exp.inputfiles = inputfiles + +#Define values for the 'core' namelist +exp.namelist = namelist = Namelist({ + 'main_nml':{ + 'days' : 30, + 'hours' : 0, + 'minutes': 0, + 'seconds': 0, + 'dt_atmos':600, + 'current_date' : [1,1,1,0,0,0], + 'calendar' : 'thirty_day' + }, + 'socrates_rad_nml': { + 'stellar_constant':1370., + 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), + 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), + 'do_read_ozone': True, + 'ozone_file_name':'ozone_1990', + 'ozone_field_name':'ozone_1990', + 'dt_rad':3600, + 'store_intermediate_rad':True, + 'chunk_size': 16, + 'use_pressure_interp_for_half_levels':False, + 'tidally_locked':False, + }, + 'idealized_moist_phys_nml': { + 'do_damping': True, + 'turb':True, + 'mixed_layer_bc':True, + 'do_virtual' :False, + 'do_simple': True, + 'roughness_mom':3.21e-05, + 'roughness_heat':3.21e-05, + 'roughness_moist':3.21e-05, + 'two_stream_gray': False, #Use the grey radiation scheme + 'do_socrates_radiation': True, + 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection + 'do_cloud_simple': True, + 'land_option' : 'input', + 'land_file_name' : 'INPUT/era_land_t42.nc', + 'land_roughness_prefactor' :10.0, + }, + + 'cloud_simple_nml': { + 'simple_cca':0.0, + 'rhcsfc': 0.95, + 'rhc700': 0.7, + 'rhc200': 0.3 + }, + + 'vert_turb_driver_nml': { + 'do_mellor_yamada': False, # default: True + 'do_diffusivity': True, # default: False + 'do_simple': True, # default: False + 'constant_gust': 0.0, # default: 1.0 + 'use_tau': False + }, + + 'diffusivity_nml': { + 'do_entrain':False, + 'do_simple': True, + }, + + 'surface_flux_nml': { + 'use_virtual_temp': False, + 'do_simple': True, + 'old_dtaudv': True + }, + + 'atmosphere_nml': { + 'idealized_moist_model': True + }, + + #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 + 'mixed_layer_nml': { + 'tconst' : 285., + 'prescribe_initial_dist':True, + 'evaporation':True, + 'depth': 20.0, #Depth of mixed layer used + 'land_option': 'input', #Tell mixed layer to get land mask from input file + 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. + 'albedo_value': 0.2, #Ocean albedo value + 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land + 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes + 'do_read_sst' : True, #Read in sst values from input file + 'do_sc_sst' : True, #Do specified ssts (need both to be true) + 'sst_file' : 'sst_clim_amip', #Set name of sst input file + 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. + }, + + 'qe_moist_convection_nml': { + 'rhbm':0.7, + 'Tmin':160., + 'Tmax':350. + }, + + 'lscale_cond_nml': { + 'do_simple':True, + 'do_evap':True + }, + + 'sat_vapor_pres_nml': { + 'do_simple':True, + 'construct_table_wrt_liq_and_ice':True + }, + + 'damping_driver_nml': { + 'do_rayleigh': True, + 'trayfric': -0.5, # neg. value: time in *days* + 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. + 'do_conserve_energy': True, + }, + + # FMS Framework configuration + 'diag_manager_nml': { + 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window + }, + + 'fms_nml': { + 'domains_stack_size': 600000 # default: 0 + }, + + 'fms_io_nml': { + 'threading_write': 'single', # default: multi + 'fileset_write': 'single', # default: multi + }, + + 'spectral_dynamics_nml': { + 'damping_order': 4, + 'water_correction_limit': 200.e2, + 'reference_sea_level_press':1.0e5, + 'num_levels':40, #How many model pressure levels to use + 'valid_range_t':[100.,800.], + 'initial_sphum':[2.e-6], + 'vert_coord_option':'uneven_sigma', + 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels + 'scale_heights' : 11.0, + 'exponent':7.0, + 'robert_coeff':0.03, + 'ocean_topog_smoothing': 0.8 + }, + + 'spectral_init_cond_nml':{ + 'topog_file_name': 'era_land_t42.nc', + 'topography_option': 'input' + }, + +}) + +#Lets do a run! +if __name__=="__main__": + + cb.compile(debug=False) + exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) + + for i in range(2,121): + exp.run(i, num_cores=NCORES) From fb8ac3caa3ee6c6e6bbcb44fe4dc6b5b2e2f6677 Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Wed, 28 Apr 2021 15:55:15 +0100 Subject: [PATCH 209/304] Update install.rst Compiler note added (not worth opening up a separate PR). --- docs/source/install.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/install.rst b/docs/source/install.rst index 730c8a2bf..4537dec6b 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -62,6 +62,8 @@ information below. Troubleshooting --------------- +If you're having compiler issues please speak to your computing officer. We've tried and tested Intel Fortran, GFortran (usually works) and Cray-Fortran. NetCDF compilers can also be an issue too. + Please search through the `Issues page`_ on Github if anybody else has had the same problem you're facing. If none do, then please send open a new Issue. From ed692a09673e99751404f4cac8fa0fac1a753631 Mon Sep 17 00:00:00 2001 From: RuthG Date: Wed, 19 May 2021 09:16:51 +0100 Subject: [PATCH 210/304] Draft surface_flux module docs --- docs/source/modules/index.rst | 1 + docs/source/modules/surface_flux.rst | 122 +++++++++++++++++++++++++++ docs/source/references.rst | 12 +++ 3 files changed, 135 insertions(+) create mode 100644 docs/source/modules/surface_flux.rst diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index aee2d373c..502c1d2eb 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -14,3 +14,4 @@ Components of Isca two_stream_gray_rad convection_simple_betts_miller socrates + surface_flux diff --git a/docs/source/modules/surface_flux.rst b/docs/source/modules/surface_flux.rst new file mode 100644 index 000000000..561b560de --- /dev/null +++ b/docs/source/modules/surface_flux.rst @@ -0,0 +1,122 @@ + +Surface flux calculation +======================================================================================= + +Documentation for ``surface_flux_mod`` and ``gp_surface_flux``, both found at ``Isca/src/coupler/surface_flux.F90``. + + +Summary +------- + +This module manages the exchange of heat, momentum and moisture at the planet's surface. +A brief overview of how the exchange of these is calculated and the options available is given first, with a full summary of the Namelist parameters below. + +Heat +---- +As default, fluxes are calculated as... + +Alternatively, the namelist option ``flux_heat_gp`` allows the user to prescribe an intrinsic heat flux at 1 bar, appropriate for a giant planet atmosphere where there is no surface [Schneider2009]. + +Momentum +-------- +As default, fluxes are calculated as.... + +Humidity +-------- +As default, fluxes are calculated as... + + +flux_q = rho_drag * land_evap_prefactor * (land_humidity_prefactor*q_surf0 - q_atm) + + +Namelist options +---------------- + +The namelist options for **surface_flux_nml** are listed below. These include options to limit evaporation over land, to use more simplified parametrisations, to account for salinity over ocean, and to help with issues resulting from truncation. We note that Isca is developed from the GFDL FMS model (https://github.com/NOAA-GFDL/FMS) and some options remain to enable old model configurations to be supported, as indicated in the table. + ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +| Name | Default | Description | ++===========================+==========+=========================================================================================+ +|``no_neg_q`` | False | If q_atm_in (specific humidity input) is negative (because of numerical truncation), | +| | | then override with 0. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``use_virtual_temp`` | True | If true, use virtual potential temp to calculate the stability of the surface layer. | +| | | If false, use potential temp. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``alt_gustiness`` | False | If true, use an alternative formulation for gustiness calculation where a minimum bound | +| | | on the wind speed is used in flux calculations, with the bound equal to ``gust_const``. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``gust_const`` | 1.0 | Constant for alternative gustiness calculation. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``gust_min`` | 0. | Minimum gustiness used when alt_gustiness is set to False. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``old_dtaudv`` | False | If true, the derivatives of surface wind stress w.r.t. the zonal wind and meridional | +| | | wind are each approximated by the same value. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``use_mixing_ratio`` | False | GFDL LEGACY: If true, then use the saturation surface mixing ratio instead of specific | +| | | humidity in calculating surface moisture exchange. This provides the capability to run | +| | | the Manabe Climate form of the surface flux. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``do_simple`` | False | If true, then approximate saturation surface specific humidity as: | +| | | :math:`q_{sat} = 0.622*e_{sat} / p_{surf}`. | +| | | If false: :math:`q_{sat} = 0.622*e_{sat} / (p_{surf} - e_{sat})` is used. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``ncar_ocean_flux`` | False | Use NCAR climate model turbulent flux calculation described by [Large2004]. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``ncar_ocean_flux_orig`` | False | GFDL LEGACY: Use NCAR climate model turbulent flux calculation described by [Large2004],| +| | | using the original GFDL implementation, which contains a bug in the specification of the| +| | | exchange coefficient for the sensible heat. Not recommended for new experiments. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``raoult_sat_vap`` | False | If true, reduce saturation vapor pressures over ocean to account for seawater salinity. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``land_humidity_prefactor``| 1.0 | Factor that multiplies the surface specific humidity over land. This is included to make| +| | | land 'dry'. If it is equal to 1, land behaves like ocean. If it is between 0 and 1, | +| | | this will decrease the evaporative heat flux in areas of land. Note that this can lead | +| | | to sign changes in the evaporative flux, and we find this becomes unstable over very | +| | | shallow mixed layer depths. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``land_evap_prefactor`` | 1.0 | Factor that multiplies the evaporative flux over land. This is included to make land | +| | | 'dry'. If it is equal to 1, land behaves like ocean. If it is between 0 and 1, this will| +| | | decrease the evaporative heat flux in areas of land. This formulation avoids sign | +| | | changes in the evaporative flux and remains stable over very shallow mixed layer depths.| ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``flux_heat_gp`` | 5.7 | Intrinsic heat flux imposed to describe the lower boundary of a giant planet atmosphere.| +| | | [Schneider2009]. Default is :math:`5.7 Wm^{-2}`, appropriate for Jupiter [Gierasch2000].| ++---------------------------+----------+-----------------------------------------------------------------------------------------+ +|``diabatic_acce`` | 1.0 | Multiplicative scaling factor for the temperature tendency in the giant planet scheme. | +| | | This can be used to speed up model spin-up. It will speed up the model spin-up if | +| | | greater than 1. A similar factor can also be applied for giant planet radiation. Note | +| | | that an alternative way to accelerate spin-up is to run Isca's column model to | +| | | equilibrium. | ++---------------------------+----------+-----------------------------------------------------------------------------------------+ + + + +Diagnostics +----------- + +No diagnostics are saved within the ``surface_flux`` module itself. Diagnostics related to surface exchange are available via the `atmosphere` diagnostic list in ``idealized_moist_phys.F90``, and the `mixed_layer` diagnostic list in ``mixed_layer.F90``. + + +Relevant modules and subroutines +-------------------------------- + +Modules relevant to this one include: + +:idealized_moist_phys: Momentum flux diagnostics are output here. A land roughness prefactor can also be applied in this module, which is used to alter the roughness lengths that are fed to ``surface_flux_mod``. +:mixed_layer_mod: Diagnostics for fluxes of sensible and latent heat are output here. + + +References +---------- + +| [Gierasch2000]_ +| [Large2004]_ +| [Schneider2009]_ +| [VallisEtAl2018]_ + + +Authors +---------- +This documentation was written by Ruth Geen, peer reviewed by , and quality controlled by . + diff --git a/docs/source/references.rst b/docs/source/references.rst index 08b6530ca..e8f5da73e 100644 --- a/docs/source/references.rst +++ b/docs/source/references.rst @@ -28,6 +28,12 @@ References .. [Geen2016] Geen, R., Czaja, A., and Haigh, J. D., 2016: The effects of increasing humidity on heat transport by extratropical waves, *Geophys. Res. Lett.*, **43**, 8314–8321, doi. +.. [Gierasch2000] Gierasch, P.J., Ingersoll, A.P., Banfield, D., Ewald, S.P., Helfenstein, P., Simon-Miller, A., Vasavada, A., Breneman, H.H., Senske, D.A. and Team, G.I., 2000: + Observation of moist convection in Jupiter's atmosphere. + *Nature*, + **403(6770)**, 628--630. + doi: `10.1038/35001017 `_. + .. [Jucker2017] Jucker, M. and Gerber, E. P., 2017: Untangling the Annual Cycle of the Tropical Tropopause Layer with an Idealized Moist Model. *Journal of Climate*, @@ -40,6 +46,12 @@ References **21(15)**, 3815--3832, doi: `10.1175/2007JCLI2065.1 `_. +.. [Large2004] Large, W. G., and Yeager, S., 2004: + Diurnal to decadal global forcing for ocean and sea-ice models: The data sets and flux climatologies. + *NCAR Technical Report; University Corporation for Atmospheric Research*, + **No. NCAR/TN-460+STR**, + doi: `10.5065/D6KK98Q6 `_. + .. [Manabe1969] Manabe, S. 1969: Climate and the Ocean Circulation: I. The Atmopsheric Circulation and the Hydrology of the Earth's Surface. *Mon. Wea. Rev.* From 3686615dad7ac8e722d899e2465f683eb9f9818b Mon Sep 17 00:00:00 2001 From: RuthG Date: Wed, 19 May 2021 16:48:30 +0100 Subject: [PATCH 211/304] Complete first draft of surface_flux_mod docs --- docs/source/modules/surface_flux.rst | 80 ++++++++++++++++++++++------ 1 file changed, 64 insertions(+), 16 deletions(-) diff --git a/docs/source/modules/surface_flux.rst b/docs/source/modules/surface_flux.rst index 561b560de..38ff266c1 100644 --- a/docs/source/modules/surface_flux.rst +++ b/docs/source/modules/surface_flux.rst @@ -2,37 +2,83 @@ Surface flux calculation ======================================================================================= -Documentation for ``surface_flux_mod`` and ``gp_surface_flux``, both found at ``Isca/src/coupler/surface_flux.F90``. +Documentation for ``surface_flux`` and ``gp_surface_flux``, both found at ``Isca/src/coupler/surface_flux.F90``. Summary ------- This module manages the exchange of heat, momentum and moisture at the planet's surface. -A brief overview of how the exchange of these is calculated and the options available is given first, with a full summary of the Namelist parameters below. +A brief overview of how the exchange of these is calculated and the options available is given first, with a full summary of the namelist parameters below. -Heat ----- -As default, fluxes are calculated as... -Alternatively, the namelist option ``flux_heat_gp`` allows the user to prescribe an intrinsic heat flux at 1 bar, appropriate for a giant planet atmosphere where there is no surface [Schneider2009]. +Parametrization for planets with a rock/liquid surface +------------------------------------------------------ +Fluxes of heat (:math:`S`), momentum (:math:`\mathcal{T}`) and humidity (:math:`E`) are calculated following the standard drag equations set out in [Frierson2006a]. -Momentum --------- -As default, fluxes are calculated as.... +.. math:: + S = \rho_{a} c_{p} C_{S} |\mathbf{v}_{a}|(\Theta_{a} - \Theta_{s}) -Humidity --------- -As default, fluxes are calculated as... +.. math:: + \mathcal{T} = \rho_{a} C_{\mathcal{T}} |\mathbf{v}_{a}|\mathbf{v}_{a} + +.. math:: + E = \rho_{a} C_{E} |\mathbf{v}_{a}|(q_{a} - q_{s}^{*}). + +In the above, :math:`\rho_{a}`, :math:`|\mathbf{v}_{a}`, :math:`\Theta_{a}`, and :math:`q_{a}` are the density, horizontal wind, potential temperature and specific humidity calculated at the lowest model level. :math:`c_{p}` is the heat capacity at constant pressure, :math:`\Theta_{s}` is the surface potential temperature and :math:`q_{s}^{*}` is the saturation specific humidity at the surface temperature. +:math:`C_{S}`, :math:`C_{\mathcal{T}}` and :math:`C_{E}` are drag coefficients. These are calculated according to a simplified Monin-Obukhov similarity theory [Frierson2006a] in the module ``monin_obukhov_mod``, found in ``Isca/src/atmos_param/monin_obukhov/monin_obukhov.F90``. Roughness lengths for each flux can be specified as namelist parameters in ``idealised_moist_phys``. -flux_q = rho_drag * land_evap_prefactor * (land_humidity_prefactor*q_surf0 - q_atm) +Land +```` +Land is implemented in Isca in 4 ways, via adjustment of (1) the roughness length, (2) the evaporative flux, (3) the albedo, (4) the mixed layer depth: + +(1) Any desired adjustments to roughness length over land are made in ``idealized_moist_phys_mod`` via the namelist parameter ``land_roughness_prefactor`` and are then fed to ``surface_flux_mod``. This parameter prescribes a prefactor to modify the roughness lengths used over land in the Monin-Obukhov calculations. The same modification prefactor is used for all fluxes. + +(2) Adjustments to the evaporative flux are made in ``surface_flux_mod``. 2 options are available: + + (a) Prefactors :math:`\alpha` and :math:`\beta` may be prescribed over land to modify the evaporative flux: + + .. math:: + E = \beta \rho_{a} C_{E} |\mathbf{v}_{a}|(q_{a} - \alpha q_{s}^{*}). + + :math:`\alpha` is set using ``land_humidity_prefactor`` and :math:`\beta` is set using ``land_evap_prefactor`` in the ``surface_flux_nml``. + + + (b) A simple bucket hydrology may be used following [Manabe1969]. In this case, hydrology is described by prescribing land with a bucket depth :math:`W` which can vary between 0, corresponding to an empty bucket, and a field capacity :math:`W_{FC}`, corresponding to a full bucket. The evaporation equation is then modified over land grid cells according to the bucket depth. + + If :math:`W \lt 0.75 W_{FC}`: + + .. math:: + E = \frac{W}{0.75 W_{FC}} \rho_{a} C_{E} |\mathbf{v}_{a}|(q_{a} - q_{s}^{*}) + + If :math:`W \ge 0.75 W_{FC}`: + + .. math:: + E = \rho_{a} C_{E} |\mathbf{v}_{a}|(q_{a} - q_{s}^{*}) + + Bucket namelist parameters are input via ``idealized_moist_phys_mod``. + +3.& 4. Adjustments to the albedo and mixed layer depth are made via namelist parameters in the module :mixed_layer_mod: found in ``Isca/src/atmos_spectral/driver/solo/mixed_layer.F90``. + + +Parametrization for gas giants +------------------------------ + +For modelling gas giants, the namelist option ``flux_heat_gp`` allows the user to prescribe an intrinsic heat flux at 1 bar, appropriate for a giant planet atmosphere where there is no surface [Schneider2009]. In practice, the subroutine ``gp_surface_flux`` will then impose an atmospheric heating :math:`Q_{gp}` at the lowest model level as: + +.. math:: + Q_{gp} = \frac{g \gamma}{c_{p} \Delta p} + +where :math:`g` is the gravitational acceleration, :math:`\gamma` is the value of ``flux_heat_gp``, :math:`c_{p}` is the heat capacity at constant pressure and :math:`\Delta p` is the thickness of the lowest model pressure level. To accelerate model spin-up, this intrinsic heat flux can be increased via the namelist option ``diabatic_acce``. Alternatively, Isca's column model configuration could be run to equilibrium. + +To turn on this parametrization, ``gp_surface`` should be set to True in the ``idealized_moist_phys`` namelist. Namelist options ---------------- -The namelist options for **surface_flux_nml** are listed below. These include options to limit evaporation over land, to use more simplified parametrisations, to account for salinity over ocean, and to help with issues resulting from truncation. We note that Isca is developed from the GFDL FMS model (https://github.com/NOAA-GFDL/FMS) and some options remain to enable old model configurations to be supported, as indicated in the table. +The namelist options for ``surface_flux_nml`` are listed below. These include options to limit evaporation over land, to use more simplified parametrisations, to account for salinity over ocean, and to help with issues resulting from truncation. We note that Isca is developed from the GFDL FMS model (https://github.com/NOAA-GFDL/FMS) and some options remain to enable old model configurations to be supported, as indicated in the table. +---------------------------+----------+-----------------------------------------------------------------------------------------+ | Name | Default | Description | @@ -104,19 +150,21 @@ Relevant modules and subroutines Modules relevant to this one include: :idealized_moist_phys: Momentum flux diagnostics are output here. A land roughness prefactor can also be applied in this module, which is used to alter the roughness lengths that are fed to ``surface_flux_mod``. -:mixed_layer_mod: Diagnostics for fluxes of sensible and latent heat are output here. +:mixed_layer_mod: Diagnostics for fluxes of sensible and latent heat are output here. References ---------- +| [Frierson2006a]_ | [Gierasch2000]_ | [Large2004]_ +| [Manabe1969]_ | [Schneider2009]_ | [VallisEtAl2018]_ Authors ---------- -This documentation was written by Ruth Geen, peer reviewed by , and quality controlled by . +This documentation was written by Ruth Geen, peer reviewed by Marianne Pietschnig, and quality controlled by Ross Castle. From a9c8f5dd5155b0386c5a1e364b5cb15724af4bb7 Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Wed, 19 May 2021 17:27:18 +0100 Subject: [PATCH 212/304] Typo fixed --- docs/source/begginers_guide.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/begginers_guide.rst b/docs/source/begginers_guide.rst index ea965c81c..d7b07296d 100644 --- a/docs/source/begginers_guide.rst +++ b/docs/source/begginers_guide.rst @@ -1,4 +1,4 @@ -Isca Beginners Guide +Isca Beginner's Guide ==================== Below is a list of reading and activites that will help you get comfortable using Isca. Be assured that your supervisor/tutor will not expect you to be fluent with this when you start using Isca, but it will help to have an idea of what to expect when you start running the model. From a6610c3e1e7eb90188b9cb3614f870d0a3a6e551 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 21 May 2021 08:56:48 +0100 Subject: [PATCH 213/304] Revert experiement changes so code can be merged onto the master --- .gitignore | 5 - exp/spookie2/notes_on_runs.txt | 41 --- .../sit_runs_dec_2018/notes_on_runs.txt | 15 -- ..._aquaplanet_with_cloud_amip_no_topo_sit.py | 228 ---------------- ...quaplanet_with_cloud_amip_with_topo_sit.py | 233 ---------------- exp/spookie2/socrates_amip_with_topo.py | 229 ---------------- .../socrates_amip_with_topo_with_cloud.py | 252 ------------------ ..._amip_with_topo_with_cloud_original_era.py | 252 ------------------ exp/spookie2/socrates_aquaplanet.py | 209 --------------- .../socrates_aquaplanet_with_cloud.py | 234 ---------------- 10 files changed, 1698 deletions(-) delete mode 100644 exp/spookie2/notes_on_runs.txt delete mode 100644 exp/spookie2/sit_runs_dec_2018/notes_on_runs.txt delete mode 100644 exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_no_topo_sit.py delete mode 100644 exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_with_topo_sit.py delete mode 100644 exp/spookie2/socrates_amip_with_topo.py delete mode 100644 exp/spookie2/socrates_amip_with_topo_with_cloud.py delete mode 100644 exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py delete mode 100644 exp/spookie2/socrates_aquaplanet.py delete mode 100644 exp/spookie2/socrates_aquaplanet_with_cloud.py diff --git a/.gitignore b/.gitignore index 278b2b8f7..ea7c8f958 100644 --- a/.gitignore +++ b/.gitignore @@ -110,8 +110,3 @@ ENV/ # mkdocs documentation /site - -# personal -exp/test_cases/socrates_test/stephen_topo_clouds.py -exp/test_cases/socrates_test/stephen_topo_flat_clouds.py - diff --git a/exp/spookie2/notes_on_runs.txt b/exp/spookie2/notes_on_runs.txt deleted file mode 100644 index d91408248..000000000 --- a/exp/spookie2/notes_on_runs.txt +++ /dev/null @@ -1,41 +0,0 @@ -1. The following script - socrates_amip_with_topo.py - created the data that is in - validate_clouds_soc/soc_amip_no_cloud/soc_amip_ice_topo_low_albedo - the purpose was: an amip run to get a baseline without clouds - -2. The following script - socrates_amip_with_topo_with_cloud.py - created the data that is in - validate_clouds_soc/soc_amip_cloud/soc_amip_ice_topo_low_albedo_clouds - the purpose was: an amip run testing the cloud scheme (no ripples) - -3. The following script - socrates_amip_with_topo_with_cloud_original_era.py - created the data in - validate_clouds_soc/soc_amip_cloud/soc_amip_ice_topo_low_albedo_clouds_original_era - the purpose was: an amip run with clouds and gibbs ripples - -4. The following script - socrates_aquaplanet.py - created the data in - validate_clouds_soc/soc_aqua_no_cloud/soc_aquaplanet - the purpose was: slab ocean baseline - -5. The following script - socrates_aquaplanet_with_cloud.py - created the data in - validate_clouds_soc/soc_aqua_cloud/soc_aquaplanet_with_clouds - the purpose was: slab ocean with clouds. - -Notes: - -Exp 3 is no longer needed as the gibbs ripples fix is working. - -Exp1-2 are for validating the cloud scheme in the context of the spookie simulations - -Exp 4-5 are for validating the scheme for it to be merged onto the master - - - - diff --git a/exp/spookie2/sit_runs_dec_2018/notes_on_runs.txt b/exp/spookie2/sit_runs_dec_2018/notes_on_runs.txt deleted file mode 100644 index ea44a5901..000000000 --- a/exp/spookie2/sit_runs_dec_2018/notes_on_runs.txt +++ /dev/null @@ -1,15 +0,0 @@ - -The following code -https://github.com/sit23/Isca/blob/simple_clouds/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py - -was used to create the data in this folder -/scratch/sit204/data_isca/soc_test_with_clouds_post_jm_suggestions_amip_ssts_land_mid_albedo - -and this code -https://github.com/sit23/Isca/blob/simple_clouds/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_no_topo.py - -was used to make this data -soc_test_with_clouds_post_jm_suggestions_amip_ssts_land_mid_albedo_flat - -Both of which where used to make the plots I showed Adrian and then tested gibbs rippled plots against. - diff --git a/exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_no_topo_sit.py b/exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_no_topo_sit.py deleted file mode 100644 index 6e95c2f7f..000000000 --- a/exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_no_topo_sit.py +++ /dev/null @@ -1,228 +0,0 @@ -import os - -import numpy as np - -from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -from isca.util import exp_progress - -NCORES = 16 -base_dir = os.path.dirname(os.path.realpath(__file__)) -# a CodeBase can be a directory on the computer, -# useful for iterative development -cb = SocratesCodeBase.from_directory(GFDL_BASE) - -# or it can point to a specific git repo and commit id. -# This method should ensure future, independent, reproducibility of results. -# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') - -# compilation depends on computer specific settings. The $GFDL_ENV -# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file -# is used to load the correct compilers. The env file is always loaded from -# $GFDL_BASE and not the checked out git repo. - -# create an Experiment object to handle the configuration of model parameters -# and output diagnostics - -exp = Experiment('soc_test_with_clouds_post_jm_suggestions_amip_ssts_land_mid_albedo_flat', codebase=cb) -exp.clear_rundir() - -inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), - os.path.join(base_dir,'input/sst_clim_amip.nc'), os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc')] - -#Tell model how to write diagnostics -diag = DiagTable() -diag.add_file('atmos_monthly', 30, 'days', time_units='days') - -#Tell model which diagnostics to write -diag.add_field('dynamics', 'ps', time_avg=True) -diag.add_field('dynamics', 'bk') -diag.add_field('dynamics', 'pk') -diag.add_field('dynamics', 'zsurf', time_avg=True) -diag.add_field('atmosphere', 'precipitation', time_avg=True) -diag.add_field('atmosphere', 'rh', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('dynamics', 'sphum', time_avg=True) -diag.add_field('dynamics', 'ucomp', time_avg=True) -diag.add_field('dynamics', 'vcomp', time_avg=True) -diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('dynamics', 'vor', time_avg=True) -diag.add_field('dynamics', 'div', time_avg=True) - -diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) -diag.add_field('socrates', 'soc_olr', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('cloud_simple', 'cf', time_avg=True) -diag.add_field('cloud_simple', 'reff_rad', time_avg=True) -diag.add_field('cloud_simple', 'frac_liq', time_avg=True) -diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) -diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) -diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) -diag.add_field('mixed_layer', 'albedo', time_avg=True) - - -# additional output options commented out -diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_flux_sw', time_avg=True) -#diag.add_field('socrates', 'soc_co2', time_avg=True) -#diag.add_field('socrates', 'soc_ozone', time_avg=True) -#diag.add_field('socrates', 'soc_coszen', time_avg=True) -#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) - -exp.diag_table = diag -exp.inputfiles = inputfiles - -#Define values for the 'core' namelist -exp.namelist = namelist = Namelist({ - 'main_nml':{ - 'days' : 30, - 'hours' : 0, - 'minutes': 0, - 'seconds': 0, - 'dt_atmos':600, - 'current_date' : [1,1,1,0,0,0], - 'calendar' : 'thirty_day' - }, - 'socrates_rad_nml': { - 'stellar_constant':1370., - 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), - 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), - 'do_read_ozone': True, - 'ozone_file_name':'ozone_1990', - 'ozone_field_name':'ozone_1990', - 'dt_rad':3600, - 'store_intermediate_rad':True, - 'chunk_size': 16, - 'use_pressure_interp_for_half_levels':False, - 'tidally_locked':False, - }, - 'idealized_moist_phys_nml': { - 'do_damping': True, - 'turb':True, - 'mixed_layer_bc':True, - 'do_virtual' :False, - 'do_simple': True, - 'roughness_mom':3.21e-05, - 'roughness_heat':3.21e-05, - 'roughness_moist':3.21e-05, - 'two_stream_gray': False, #Use the grey radiation scheme - 'do_socrates_radiation': True, - 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True, - 'land_option' : 'input', - 'land_file_name' : 'INPUT/era_land_t42.nc', - 'land_roughness_prefactor' :10.0, - }, - - 'cloud_simple_nml': { - 'simple_cca':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3 - }, - - 'vert_turb_driver_nml': { - 'do_mellor_yamada': False, # default: True - 'do_diffusivity': True, # default: False - 'do_simple': True, # default: False - 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False - }, - - 'diffusivity_nml': { - 'do_entrain':False, - 'do_simple': True, - }, - - 'surface_flux_nml': { - 'use_virtual_temp': False, - 'do_simple': True, - 'old_dtaudv': True - }, - - 'atmosphere_nml': { - 'idealized_moist_model': True - }, - - #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 - 'mixed_layer_nml': { - 'tconst' : 285., - 'prescribe_initial_dist':True, - 'evaporation':True, - 'depth': 20.0, #Depth of mixed layer used - 'land_option': 'input', #Tell mixed layer to get land mask from input file - 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. - 'albedo_value': 0.2, #Ocean albedo value - 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land - 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes - 'do_read_sst' : True, #Read in sst values from input file - 'do_sc_sst' : True, #Do specified ssts (need both to be true) - 'sst_file' : 'sst_clim_amip', #Set name of sst input file - 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. - }, - - 'qe_moist_convection_nml': { - 'rhbm':0.7, - 'Tmin':160., - 'Tmax':350. - }, - - 'lscale_cond_nml': { - 'do_simple':True, - 'do_evap':True - }, - - 'sat_vapor_pres_nml': { - 'do_simple':True, - 'construct_table_wrt_liq_and_ice':True - }, - - 'damping_driver_nml': { - 'do_rayleigh': True, - 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. - 'do_conserve_energy': True, - }, - - # FMS Framework configuration - 'diag_manager_nml': { - 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window - }, - - 'fms_nml': { - 'domains_stack_size': 600000 # default: 0 - }, - - 'fms_io_nml': { - 'threading_write': 'single', # default: multi - 'fileset_write': 'single', # default: multi - }, - - 'spectral_dynamics_nml': { - 'damping_order': 4, - 'water_correction_limit': 200.e2, - 'reference_sea_level_press':1.0e5, - 'num_levels':40, #How many model pressure levels to use - 'valid_range_t':[100.,800.], - 'initial_sphum':[2.e-6], - 'vert_coord_option':'uneven_sigma', - 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels - 'scale_heights' : 11.0, - 'exponent':7.0, - 'robert_coeff':0.03, - 'ocean_topog_smoothing': 0.8 - }, - -}) - -#Lets do a run! -if __name__=="__main__": - - cb.compile(debug=False) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) - - for i in range(2,121): - exp.run(i, num_cores=NCORES) diff --git a/exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_with_topo_sit.py b/exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_with_topo_sit.py deleted file mode 100644 index 6a0110ef7..000000000 --- a/exp/spookie2/sit_runs_dec_2018/socrates_aquaplanet_with_cloud_amip_with_topo_sit.py +++ /dev/null @@ -1,233 +0,0 @@ -import os - -import numpy as np - -from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -from isca.util import exp_progress - -NCORES = 8 -base_dir = os.path.dirname(os.path.realpath(__file__)) -# a CodeBase can be a directory on the computer, -# useful for iterative development -cb = SocratesCodeBase.from_directory(GFDL_BASE) - -# or it can point to a specific git repo and commit id. -# This method should ensure future, independent, reproducibility of results. -# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') - -# compilation depends on computer specific settings. The $GFDL_ENV -# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file -# is used to load the correct compilers. The env file is always loaded from -# $GFDL_BASE and not the checked out git repo. - -# create an Experiment object to handle the configuration of model parameters -# and output diagnostics - -exp = Experiment('soc_test_with_clouds_post_jm_suggestions_amip_ssts_land_mid_albedo', codebase=cb) -exp.clear_rundir() - -inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), - os.path.join(base_dir,'input/sst_clim_amip.nc'), os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc')] - -#Tell model how to write diagnostics -diag = DiagTable() -diag.add_file('atmos_monthly', 30, 'days', time_units='days') - -#Tell model which diagnostics to write -diag.add_field('dynamics', 'ps', time_avg=True) -diag.add_field('dynamics', 'bk') -diag.add_field('dynamics', 'pk') -diag.add_field('dynamics', 'zsurf', time_avg=True) -diag.add_field('atmosphere', 'precipitation', time_avg=True) -diag.add_field('atmosphere', 'rh', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('dynamics', 'sphum', time_avg=True) -diag.add_field('dynamics', 'ucomp', time_avg=True) -diag.add_field('dynamics', 'vcomp', time_avg=True) -diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('dynamics', 'vor', time_avg=True) -diag.add_field('dynamics', 'div', time_avg=True) - -diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) -diag.add_field('socrates', 'soc_olr', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('cloud_simple', 'cf', time_avg=True) -diag.add_field('cloud_simple', 'reff_rad', time_avg=True) -diag.add_field('cloud_simple', 'frac_liq', time_avg=True) -diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) -diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) -diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) -diag.add_field('mixed_layer', 'albedo', time_avg=True) - - -# additional output options commented out -diag.add_field('socrates', 'soc_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_flux_sw', time_avg=True) -#diag.add_field('socrates', 'soc_co2', time_avg=True) -#diag.add_field('socrates', 'soc_ozone', time_avg=True) -#diag.add_field('socrates', 'soc_coszen', time_avg=True) -#diag.add_field('socrates', 'soc_spectral_olr', time_avg=True) - -exp.diag_table = diag -exp.inputfiles = inputfiles - -#Define values for the 'core' namelist -exp.namelist = namelist = Namelist({ - 'main_nml':{ - 'days' : 30, - 'hours' : 0, - 'minutes': 0, - 'seconds': 0, - 'dt_atmos':600, - 'current_date' : [1,1,1,0,0,0], - 'calendar' : 'thirty_day' - }, - 'socrates_rad_nml': { - 'stellar_constant':1370., - 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), - 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), - 'do_read_ozone': True, - 'ozone_file_name':'ozone_1990', - 'ozone_field_name':'ozone_1990', - 'dt_rad':3600, - 'store_intermediate_rad':True, - 'chunk_size': 16, - 'use_pressure_interp_for_half_levels':False, - 'tidally_locked':False, - }, - 'idealized_moist_phys_nml': { - 'do_damping': True, - 'turb':True, - 'mixed_layer_bc':True, - 'do_virtual' :False, - 'do_simple': True, - 'roughness_mom':3.21e-05, - 'roughness_heat':3.21e-05, - 'roughness_moist':3.21e-05, - 'two_stream_gray': False, #Use the grey radiation scheme - 'do_socrates_radiation': True, - 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True, - 'land_option' : 'input', - 'land_file_name' : 'INPUT/era_land_t42.nc', - 'land_roughness_prefactor' :10.0, - }, - - 'cloud_simple_nml': { - 'simple_cca':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3 - }, - - 'vert_turb_driver_nml': { - 'do_mellor_yamada': False, # default: True - 'do_diffusivity': True, # default: False - 'do_simple': True, # default: False - 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False - }, - - 'diffusivity_nml': { - 'do_entrain':False, - 'do_simple': True, - }, - - 'surface_flux_nml': { - 'use_virtual_temp': False, - 'do_simple': True, - 'old_dtaudv': True - }, - - 'atmosphere_nml': { - 'idealized_moist_model': True - }, - - #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 - 'mixed_layer_nml': { - 'tconst' : 285., - 'prescribe_initial_dist':True, - 'evaporation':True, - 'depth': 20.0, #Depth of mixed layer used - 'land_option': 'input', #Tell mixed layer to get land mask from input file - 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. - 'albedo_value': 0.2, #Ocean albedo value - 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land - 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes - 'do_read_sst' : True, #Read in sst values from input file - 'do_sc_sst' : True, #Do specified ssts (need both to be true) - 'sst_file' : 'sst_clim_amip', #Set name of sst input file - 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. - }, - - 'qe_moist_convection_nml': { - 'rhbm':0.7, - 'Tmin':160., - 'Tmax':350. - }, - - 'lscale_cond_nml': { - 'do_simple':True, - 'do_evap':True - }, - - 'sat_vapor_pres_nml': { - 'do_simple':True, - 'construct_table_wrt_liq_and_ice':True - }, - - 'damping_driver_nml': { - 'do_rayleigh': True, - 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. - 'do_conserve_energy': True, - }, - - # FMS Framework configuration - 'diag_manager_nml': { - 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window - }, - - 'fms_nml': { - 'domains_stack_size': 600000 # default: 0 - }, - - 'fms_io_nml': { - 'threading_write': 'single', # default: multi - 'fileset_write': 'single', # default: multi - }, - - 'spectral_dynamics_nml': { - 'damping_order': 4, - 'water_correction_limit': 200.e2, - 'reference_sea_level_press':1.0e5, - 'num_levels':40, #How many model pressure levels to use - 'valid_range_t':[100.,800.], - 'initial_sphum':[2.e-6], - 'vert_coord_option':'uneven_sigma', - 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels - 'scale_heights' : 11.0, - 'exponent':7.0, - 'robert_coeff':0.03, - 'ocean_topog_smoothing': 0.8 - }, - - 'spectral_init_cond_nml':{ - 'topog_file_name': 'era_land_t42.nc', - 'topography_option': 'input' - }, - -}) - -#Lets do a run! -if __name__=="__main__": - - cb.compile(debug=False) - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=False)#, run_idb=True) - - for i in range(2,121): - exp.run(i, num_cores=NCORES) diff --git a/exp/spookie2/socrates_amip_with_topo.py b/exp/spookie2/socrates_amip_with_topo.py deleted file mode 100644 index fc87ee6c4..000000000 --- a/exp/spookie2/socrates_amip_with_topo.py +++ /dev/null @@ -1,229 +0,0 @@ -import os - -import numpy as np - -from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -from isca.util import exp_progress - -NCORES = 16 -base_dir = os.path.dirname(os.path.realpath(__file__)) -# a CodeBase can be a directory on the computer, -# useful for iterative development -cb = SocratesCodeBase.from_directory(GFDL_BASE) - -# or it can point to a specific git repo and commit id. -# This method should ensure future, independent, reproducibility of results. -# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') - -# compilation depends on computer specific settings. The $GFDL_ENV -# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file -# is used to load the correct compilers. The env file is always loaded from -# $GFDL_BASE and not the checked out git repo. - -# create an Experiment object to handle the configuration of model parameters -# and output diagnostics - -exp = Experiment('validate_clouds_soc/soc_amip_no_cloud/soc_amip_ice_topo_low_albedo', codebase=cb) - -exp.clear_rundir() - -exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), - os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc'), - os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/sst_clim_amip.nc'), - os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/siconc_clim_amip.nc')] - -#Tell model how to write diagnostics -diag = DiagTable() -diag.add_file('atmos_monthly', 30, 'days', time_units='days') - -#Write out diagnostics need for vertical interpolation post-processing -diag.add_field('dynamics', 'ps', time_avg=True) -diag.add_field('dynamics', 'bk') -diag.add_field('dynamics', 'pk') -diag.add_field('dynamics', 'zsurf') - -#Tell model which diagnostics to write -diag.add_field('atmosphere', 'precipitation', time_avg=True) -diag.add_field('atmosphere', 'rh', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH -diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH -diag.add_field('mixed_layer', 'albedo') -diag.add_field('dynamics', 'sphum', time_avg=True) -diag.add_field('dynamics', 'ucomp', time_avg=True) -diag.add_field('dynamics', 'vcomp', time_avg=True) -diag.add_field('dynamics', 'omega', time_avg=True) -diag.add_field('dynamics', 'temp', time_avg=True) - -#temperature tendency - units are K/s -diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) -diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates - -#net (up) and down surface fluxes -diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) -#net (up) TOA and downard fluxes -diag.add_field('socrates', 'soc_olr', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) - -exp.diag_table = diag - -#Define values for the 'core' namelist -exp.namelist = namelist = Namelist({ - 'main_nml':{ - 'days' : 30, - 'hours' : 0, - 'minutes': 0, - 'seconds': 0, - 'dt_atmos':600, - 'current_date' : [1,1,1,0,0,0], - 'calendar' : 'thirty_day' - }, - 'socrates_rad_nml': { - 'stellar_constant':1370., - 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), - 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), - 'do_read_ozone': True, - 'ozone_file_name':'ozone_1990', - 'ozone_field_name':'ozone_1990', - 'dt_rad':3600, - 'store_intermediate_rad':True, - 'chunk_size': 16, - 'use_pressure_interp_for_half_levels':False, - 'tidally_locked':False, - 'solday':90 - }, - 'idealized_moist_phys_nml': { - 'do_damping': True, - 'turb':True, - 'mixed_layer_bc':True, - 'do_virtual' :False, - 'do_simple': True, - 'roughness_mom':3.21e-05, - 'roughness_heat':3.21e-05, - 'roughness_moist':3.21e-05, - 'two_stream_gray': False, #Use the grey radiation scheme - 'do_socrates_radiation': True, - 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': False, - 'land_option' : 'input', - 'land_file_name' : 'INPUT/era-spectral7_T42_64x128.out.nc', - 'land_roughness_prefactor' :10.0, - }, - - - 'vert_turb_driver_nml': { - 'do_mellor_yamada': False, # default: True - 'do_diffusivity': True, # default: False - 'do_simple': True, # default: False - 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False - }, - - 'diffusivity_nml': { - 'do_entrain':False, - 'do_simple': True, - }, - - 'surface_flux_nml': { - 'use_virtual_temp': False, - 'do_simple': True, - 'old_dtaudv': True, - 'land_humidity_prefactor': 0.7, - }, - - 'atmosphere_nml': { - 'idealized_moist_model': True - }, - - #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 - 'mixed_layer_nml': { - 'tconst' : 285., - 'prescribe_initial_dist':True, - 'evaporation':True, - 'land_option': 'input', #Tell mixed layer to get land mask from input file - 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. - 'albedo_value': 0.25, #albedo value - 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land - 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes - 'do_read_sst' : True, #Read in sst values from input file - 'do_sc_sst' : True, #Do specified ssts (need both to be true) - 'sst_file' : 'sst_clim_amip', #Set name of sst input file - 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. - }, - - 'qe_moist_convection_nml': { - 'rhbm':0.7, - 'Tmin':160., - 'Tmax':350. - }, - - 'lscale_cond_nml': { - 'do_simple':True, - 'do_evap':True - }, - - 'sat_vapor_pres_nml': { - 'do_simple':True, - 'construct_table_wrt_liq_and_ice':True - }, - - 'damping_driver_nml': { - 'do_rayleigh': True, - 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. - 'do_conserve_energy': True, - }, - - # FMS Framework configuration - 'diag_manager_nml': { - 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window - }, - - 'fms_nml': { - 'domains_stack_size': 600000 # default: 0 - }, - - 'fms_io_nml': { - 'threading_write': 'single', # default: multi - 'fileset_write': 'single', # default: multi - }, - - 'spectral_dynamics_nml': { - 'damping_order': 4, - 'water_correction_limit': 200.e2, - 'reference_sea_level_press':1.0e5, - 'num_levels':40, #How many model pressure levels to use - 'valid_range_t':[100.,800.], - 'initial_sphum':[2.e-6], - 'vert_coord_option':'uneven_sigma', - 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels - 'scale_heights' : 11.0, - 'exponent':7.0, - 'robert_coeff':0.03, - 'ocean_topog_smoothing': 0.0 - }, - - 'spectral_init_cond_nml':{ - 'topog_file_name': 'era-spectral7_T42_64x128.out.nc', - 'topography_option': 'input' - }, - -}) - -#Lets do a run! -if __name__=="__main__": - - cb.compile(debug=False) - #Set up the experiment object, with the first argument being the experiment name. - #This will be the name of the folder that the data will appear in. - - overwrite=False - - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - for i in range(2,61): - exp.run(i, num_cores=NCORES, overwrite_data=overwrite) diff --git a/exp/spookie2/socrates_amip_with_topo_with_cloud.py b/exp/spookie2/socrates_amip_with_topo_with_cloud.py deleted file mode 100644 index 5066e4d1e..000000000 --- a/exp/spookie2/socrates_amip_with_topo_with_cloud.py +++ /dev/null @@ -1,252 +0,0 @@ -import os - -import numpy as np - -from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -from isca.util import exp_progress - -NCORES = 8 -base_dir = os.path.dirname(os.path.realpath(__file__)) -# a CodeBase can be a directory on the computer, -# useful for iterative development -cb = SocratesCodeBase.from_directory(GFDL_BASE) - -# or it can point to a specific git repo and commit id. -# This method should ensure future, independent, reproducibility of results. -# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') - -# compilation depends on computer specific settings. The $GFDL_ENV -# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file -# is used to load the correct compilers. The env file is always loaded from -# $GFDL_BASE and not the checked out git repo. - -# create an Experiment object to handle the configuration of model parameters -# and output diagnostics - -exp = Experiment('validate_clouds_soc/soc_amip_cloud/soc_amip_ice_topo_low_albedo_clouds', codebase=cb) -exp.clear_rundir() - -exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), - os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc'), - os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/sst_clim_amip.nc'), - os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/siconc_clim_amip.nc')] - -#Tell model how to write diagnostics -diag = DiagTable() -diag.add_file('atmos_monthly', 30, 'days', time_units='days') - -#Write out diagnostics need for vertical interpolation post-processing -diag.add_field('dynamics', 'ps', time_avg=True) -diag.add_field('dynamics', 'bk') -diag.add_field('dynamics', 'pk') -diag.add_field('dynamics', 'zsurf') - -#Tell model which diagnostics to write -diag.add_field('atmosphere', 'precipitation', time_avg=True) -diag.add_field('atmosphere', 'rh', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH -diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH -diag.add_field('dynamics', 'sphum', time_avg=True) -diag.add_field('dynamics', 'ucomp', time_avg=True) -diag.add_field('dynamics', 'vcomp', time_avg=True) -diag.add_field('dynamics', 'omega', time_avg=True) -diag.add_field('dynamics', 'temp', time_avg=True) - -#temperature tendency - units are K/s -diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) -diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates - -#net (up) and down surface fluxes -diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) -#net (up) TOA and downard fluxes -diag.add_field('socrates', 'soc_olr', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) - -#clear sky fluxes -diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_clear', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_lw_down_clear', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_down_clear', time_avg=True) -diag.add_field('socrates', 'soc_olr_clear', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_clear', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_down_clear', time_avg=True) - -diag.add_field('cloud_simple', 'cf', time_avg=True) -diag.add_field('cloud_simple', 'reff_rad', time_avg=True) -diag.add_field('cloud_simple', 'frac_liq', time_avg=True) -diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) -#diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) -diag.add_field('cloud_simple', 'rh_min', time_avg=True) -diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) -diag.add_field('mixed_layer', 'albedo') - - -exp.diag_table = diag - -#Define values for the 'core' namelist -exp.namelist = namelist = Namelist({ - 'main_nml':{ - 'days' : 30, - 'hours' : 0, - 'minutes': 0, - 'seconds': 0, - 'dt_atmos':600, - 'current_date' : [1,1,1,0,0,0], - 'calendar' : 'thirty_day' - }, - 'socrates_rad_nml': { - 'stellar_constant':1370., - 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), - 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), - 'do_read_ozone': True, - 'ozone_file_name':'ozone_1990', - 'ozone_field_name':'ozone_1990', - 'dt_rad':3600, - 'store_intermediate_rad':True, - 'chunk_size': 16, - 'use_pressure_interp_for_half_levels':False, - 'tidally_locked':False, - 'solday':90 - }, - 'idealized_moist_phys_nml': { - 'do_damping': True, - 'turb':True, - 'mixed_layer_bc':True, - 'do_virtual' :False, - 'do_simple': True, - 'roughness_mom':3.21e-05, - 'roughness_heat':3.21e-05, - 'roughness_moist':3.21e-05, - 'two_stream_gray': False, #Use the grey radiation scheme - 'do_socrates_radiation': True, - 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True, - 'land_option' : 'input', - 'land_file_name' : 'INPUT/era-spectral7_T42_64x128.out.nc', - 'land_roughness_prefactor' :10.0, - }, - - 'cloud_simple_nml': { - 'cca_lower_limit':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3 - }, - - 'vert_turb_driver_nml': { - 'do_mellor_yamada': False, # default: True - 'do_diffusivity': True, # default: False - 'do_simple': True, # default: False - 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False - }, - - 'diffusivity_nml': { - 'do_entrain':False, - 'do_simple': True, - }, - - 'surface_flux_nml': { - 'use_virtual_temp': False, - 'do_simple': True, - 'old_dtaudv': True, - 'land_humidity_prefactor': 0.7, - }, - - 'atmosphere_nml': { - 'idealized_moist_model': True - }, - - #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 - 'mixed_layer_nml': { - 'tconst' : 285., - 'prescribe_initial_dist':True, - 'evaporation':True, - 'land_option': 'input', #Tell mixed layer to get land mask from input file - 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. - 'albedo_value': 0.2, #albedo value - 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land - 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes - 'do_read_sst' : True, #Read in sst values from input file - 'do_sc_sst' : True, #Do specified ssts (need both to be true) - 'sst_file' : 'sst_clim_amip', #Set name of sst input file - 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. - }, - - 'qe_moist_convection_nml': { - 'rhbm':0.7, - 'Tmin':160., - 'Tmax':350. - }, - - 'lscale_cond_nml': { - 'do_simple':True, - 'do_evap':True - }, - - 'sat_vapor_pres_nml': { - 'do_simple':True, - 'construct_table_wrt_liq_and_ice':True - }, - - 'damping_driver_nml': { - 'do_rayleigh': True, - 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. - 'do_conserve_energy': True, - }, - - # FMS Framework configuration - 'diag_manager_nml': { - 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window - }, - - 'fms_nml': { - 'domains_stack_size': 600000 # default: 0 - }, - - 'fms_io_nml': { - 'threading_write': 'single', # default: multi - 'fileset_write': 'single', # default: multi - }, - - 'spectral_dynamics_nml': { - 'damping_order': 4, - 'water_correction_limit': 200.e2, - 'reference_sea_level_press':1.0e5, - 'num_levels':40, #How many model pressure levels to use - 'valid_range_t':[100.,800.], - 'initial_sphum':[2.e-6], - 'vert_coord_option':'uneven_sigma', - 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels - 'scale_heights' : 11.0, - 'exponent':7.0, - 'robert_coeff':0.03, - 'ocean_topog_smoothing': 0.0 - }, - - 'spectral_init_cond_nml':{ - 'topog_file_name': 'era-spectral7_T42_64x128.out.nc', - 'topography_option': 'input' - }, - -}) - -#Lets do a run! -if __name__=="__main__": - - cb.compile(debug=False) - #Set up the experiment object, with the first argument being the experiment name. - #This will be the name of the folder that the data will appear in. - - overwrite=False - - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - for i in range(2,61): - exp.run(i, num_cores=NCORES, overwrite_data=overwrite) diff --git a/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py b/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py deleted file mode 100644 index 0a8662982..000000000 --- a/exp/spookie2/socrates_amip_with_topo_with_cloud_original_era.py +++ /dev/null @@ -1,252 +0,0 @@ -import os - -import numpy as np - -from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -from isca.util import exp_progress - -NCORES = 16 -base_dir = os.path.dirname(os.path.realpath(__file__)) -# a CodeBase can be a directory on the computer, -# useful for iterative development -cb = SocratesCodeBase.from_directory(GFDL_BASE) - -# or it can point to a specific git repo and commit id. -# This method should ensure future, independent, reproducibility of results. -# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') - -# compilation depends on computer specific settings. The $GFDL_ENV -# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file -# is used to load the correct compilers. The env file is always loaded from -# $GFDL_BASE and not the checked out git repo. - -# create an Experiment object to handle the configuration of model parameters -# and output diagnostics - -exp = Experiment('validate_clouds_soc/soc_amip_cloud/soc_amip_ice_topo_low_albedo_clouds_original_era', codebase=cb) -exp.clear_rundir() - -exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), - os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc'), - os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/sst_clim_amip.nc'), - os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/siconc_clim_amip.nc')] - -#Tell model how to write diagnostics -diag = DiagTable() -diag.add_file('atmos_monthly', 30, 'days', time_units='days') - -#Write out diagnostics need for vertical interpolation post-processing -diag.add_field('dynamics', 'ps', time_avg=True) -diag.add_field('dynamics', 'bk') -diag.add_field('dynamics', 'pk') -diag.add_field('dynamics', 'zsurf') - -#Tell model which diagnostics to write -diag.add_field('atmosphere', 'precipitation', time_avg=True) -diag.add_field('atmosphere', 'rh', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH -diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH -diag.add_field('dynamics', 'sphum', time_avg=True) -diag.add_field('dynamics', 'ucomp', time_avg=True) -diag.add_field('dynamics', 'vcomp', time_avg=True) -diag.add_field('dynamics', 'omega', time_avg=True) -diag.add_field('dynamics', 'temp', time_avg=True) - -#temperature tendency - units are K/s -diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) -diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates - -#net (up) and down surface fluxes -diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) -#net (up) TOA and downard fluxes -diag.add_field('socrates', 'soc_olr', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) - -#clear sky fluxes -diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_clear', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_lw_down_clear', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_down_clear', time_avg=True) -diag.add_field('socrates', 'soc_olr_clear', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_clear', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_down_clear', time_avg=True) - -diag.add_field('cloud_simple', 'cf', time_avg=True) -diag.add_field('cloud_simple', 'reff_rad', time_avg=True) -diag.add_field('cloud_simple', 'frac_liq', time_avg=True) -diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) -#diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) -diag.add_field('cloud_simple', 'rh_min', time_avg=True) -diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) -diag.add_field('mixed_layer', 'albedo') - - -exp.diag_table = diag - -#Define values for the 'core' namelist -exp.namelist = namelist = Namelist({ - 'main_nml':{ - 'days' : 30, - 'hours' : 0, - 'minutes': 0, - 'seconds': 0, - 'dt_atmos':600, - 'current_date' : [1,1,1,0,0,0], - 'calendar' : 'thirty_day' - }, - 'socrates_rad_nml': { - 'stellar_constant':1370., - 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), - 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), - 'do_read_ozone': True, - 'ozone_file_name':'ozone_1990', - 'ozone_field_name':'ozone_1990', - 'dt_rad':3600, - 'store_intermediate_rad':True, - 'chunk_size': 16, - 'use_pressure_interp_for_half_levels':False, - 'tidally_locked':False, - 'solday':90 - }, - 'idealized_moist_phys_nml': { - 'do_damping': True, - 'turb':True, - 'mixed_layer_bc':True, - 'do_virtual' :False, - 'do_simple': True, - 'roughness_mom':3.21e-05, - 'roughness_heat':3.21e-05, - 'roughness_moist':3.21e-05, - 'two_stream_gray': False, #Use the grey radiation scheme - 'do_socrates_radiation': True, - 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True, - 'land_option' : 'input', - 'land_file_name' : 'INPUT/era_land_t42.nc', - 'land_roughness_prefactor' :10.0, - }, - - 'cloud_simple_nml': { - 'cca_lower_limit':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3 - }, - - 'vert_turb_driver_nml': { - 'do_mellor_yamada': False, # default: True - 'do_diffusivity': True, # default: False - 'do_simple': True, # default: False - 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False - }, - - 'diffusivity_nml': { - 'do_entrain':False, - 'do_simple': True, - }, - - 'surface_flux_nml': { - 'use_virtual_temp': False, - 'do_simple': True, - 'old_dtaudv': True, - 'land_humidity_prefactor': 0.7, - }, - - 'atmosphere_nml': { - 'idealized_moist_model': True - }, - - #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 - 'mixed_layer_nml': { - 'tconst' : 285., - 'prescribe_initial_dist':True, - 'evaporation':True, - 'land_option': 'input', #Tell mixed layer to get land mask from input file - 'land_h_capacity_prefactor': 0.1, #What factor to multiply mixed-layer depth by over land. - 'albedo_value': 0.2, #albedo value - 'land_albedo_prefactor': 1.3, #What factor to multiply ocean albedo by over land - 'do_qflux' : False, #Don't use the prescribed analytical formula for q-fluxes - 'do_read_sst' : True, #Read in sst values from input file - 'do_sc_sst' : True, #Do specified ssts (need both to be true) - 'sst_file' : 'sst_clim_amip', #Set name of sst input file - 'specify_sst_over_ocean_only' : True, #Make sure sst only specified in regions of ocean. - }, - - 'qe_moist_convection_nml': { - 'rhbm':0.7, - 'Tmin':160., - 'Tmax':350. - }, - - 'lscale_cond_nml': { - 'do_simple':True, - 'do_evap':True - }, - - 'sat_vapor_pres_nml': { - 'do_simple':True, - 'construct_table_wrt_liq_and_ice':True - }, - - 'damping_driver_nml': { - 'do_rayleigh': True, - 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. - 'do_conserve_energy': True, - }, - - # FMS Framework configuration - 'diag_manager_nml': { - 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window - }, - - 'fms_nml': { - 'domains_stack_size': 600000 # default: 0 - }, - - 'fms_io_nml': { - 'threading_write': 'single', # default: multi - 'fileset_write': 'single', # default: multi - }, - - 'spectral_dynamics_nml': { - 'damping_order': 4, - 'water_correction_limit': 200.e2, - 'reference_sea_level_press':1.0e5, - 'num_levels':40, #How many model pressure levels to use - 'valid_range_t':[100.,800.], - 'initial_sphum':[2.e-6], - 'vert_coord_option':'uneven_sigma', - 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels - 'scale_heights' : 11.0, - 'exponent':7.0, - 'robert_coeff':0.03, - 'ocean_topog_smoothing': 0.8 - }, - - 'spectral_init_cond_nml':{ - 'topog_file_name': 'era_land_t42.nc', - 'topography_option': 'input' - }, - -}) - -#Lets do a run! -if __name__=="__main__": - - cb.compile(debug=False) - #Set up the experiment object, with the first argument being the experiment name. - #This will be the name of the folder that the data will appear in. - - overwrite=False - - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - for i in range(2,61): - exp.run(i, num_cores=NCORES, overwrite_data=overwrite) diff --git a/exp/spookie2/socrates_aquaplanet.py b/exp/spookie2/socrates_aquaplanet.py deleted file mode 100644 index 1619191b8..000000000 --- a/exp/spookie2/socrates_aquaplanet.py +++ /dev/null @@ -1,209 +0,0 @@ -import os - -import numpy as np - -from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -from isca.util import exp_progress - -NCORES = 8 -base_dir = os.path.dirname(os.path.realpath(__file__)) -# a CodeBase can be a directory on the computer, -# useful for iterative development -cb = SocratesCodeBase.from_directory(GFDL_BASE) - -# or it can point to a specific git repo and commit id. -# This method should ensure future, independent, reproducibility of results. -# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') - -# compilation depends on computer specific settings. The $GFDL_ENV -# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file -# is used to load the correct compilers. The env file is always loaded from -# $GFDL_BASE and not the checked out git repo. - -# create an Experiment object to handle the configuration of model parameters -# and output diagnostics - -exp = Experiment('validate_clouds_soc/soc_aqua_no_cloud/soc_aquaplanet', codebase=cb) -exp.clear_rundir() - -inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] - -#Tell model how to write diagnostics -diag = DiagTable() -diag.add_file('atmos_monthly', 30, 'days', time_units='days') - -#Write out diagnostics need for vertical interpolation post-processing -diag.add_field('dynamics', 'ps', time_avg=True) -diag.add_field('dynamics', 'bk') -diag.add_field('dynamics', 'pk') -diag.add_field('dynamics', 'zsurf') - -#Tell model which diagnostics to write -diag.add_field('atmosphere', 'precipitation', time_avg=True) -diag.add_field('atmosphere', 'rh', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH -diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH -diag.add_field('mixed_layer', 'albedo') -diag.add_field('dynamics', 'sphum', time_avg=True) -diag.add_field('dynamics', 'ucomp', time_avg=True) -diag.add_field('dynamics', 'vcomp', time_avg=True) -diag.add_field('dynamics', 'omega', time_avg=True) -diag.add_field('dynamics', 'temp', time_avg=True) - -#temperature tendency - units are K/s -diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) -diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates - -#net (up) and down surface fluxes -diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) -#net (up) TOA and downard fluxes -diag.add_field('socrates', 'soc_olr', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) - -exp.diag_table = diag -exp.inputfiles = inputfiles - -#Define values for the 'core' namelist -exp.namelist = namelist = Namelist({ - 'main_nml':{ - 'days' : 30, - 'hours' : 0, - 'minutes': 0, - 'seconds': 0, - 'dt_atmos':600, - 'current_date' : [1,1,1,0,0,0], - 'calendar' : 'thirty_day' - }, - 'socrates_rad_nml': { - 'stellar_constant':1370., - 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), - 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), - 'do_read_ozone': True, - 'ozone_file_name':'ozone_1990', - 'ozone_field_name':'ozone_1990', - 'dt_rad':3600, - 'store_intermediate_rad':True, - 'chunk_size': 16, - 'use_pressure_interp_for_half_levels':False, - 'tidally_locked':False, - 'solday':90 - }, - 'idealized_moist_phys_nml': { - 'do_damping': True, - 'turb':True, - 'mixed_layer_bc':True, - 'do_virtual' :False, - 'do_simple': True, - 'roughness_mom':3.21e-05, - 'roughness_heat':3.21e-05, - 'roughness_moist':3.21e-05, - 'two_stream_gray': False, #Use the grey radiation scheme - 'do_socrates_radiation': True, - 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': False - }, - - - 'vert_turb_driver_nml': { - 'do_mellor_yamada': False, # default: True - 'do_diffusivity': True, # default: False - 'do_simple': True, # default: False - 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False - }, - - 'diffusivity_nml': { - 'do_entrain':False, - 'do_simple': True, - }, - - 'surface_flux_nml': { - 'use_virtual_temp': False, - 'do_simple': True, - 'old_dtaudv': True - }, - - 'atmosphere_nml': { - 'idealized_moist_model': True - }, - - #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 - 'mixed_layer_nml': { - 'tconst' : 285., - 'prescribe_initial_dist':True, - 'evaporation':True, - 'depth': 2.5, #Depth of mixed layer used - 'albedo_value': 0.25, #Albedo value used - }, - - 'qe_moist_convection_nml': { - 'rhbm':0.7, - 'Tmin':160., - 'Tmax':350. - }, - - 'lscale_cond_nml': { - 'do_simple':True, - 'do_evap':True - }, - - 'sat_vapor_pres_nml': { - 'do_simple':True, - 'construct_table_wrt_liq_and_ice':True - }, - - 'damping_driver_nml': { - 'do_rayleigh': True, - 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. - 'do_conserve_energy': True, - }, - - # FMS Framework configuration - 'diag_manager_nml': { - 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window - }, - - 'fms_nml': { - 'domains_stack_size': 600000 # default: 0 - }, - - 'fms_io_nml': { - 'threading_write': 'single', # default: multi - 'fileset_write': 'single', # default: multi - }, - - 'spectral_dynamics_nml': { - 'damping_order': 4, - 'water_correction_limit': 200.e2, - 'reference_sea_level_press':1.0e5, - 'num_levels':40, #How many model pressure levels to use - 'valid_range_t':[100.,800.], - 'initial_sphum':[2.e-6], - 'vert_coord_option':'uneven_sigma', - 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels - 'scale_heights' : 11.0, - 'exponent':7.0, - 'robert_coeff':0.03 - }, - -}) - -#Lets do a run! -if __name__=="__main__": - - cb.compile(debug=False) - #Set up the experiment object, with the first argument being the experiment name. - #This will be the name of the folder that the data will appear in. - - overwrite=False - - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) - for i in range(2,61): - exp.run(i, num_cores=NCORES, overwrite_data=overwrite) diff --git a/exp/spookie2/socrates_aquaplanet_with_cloud.py b/exp/spookie2/socrates_aquaplanet_with_cloud.py deleted file mode 100644 index a10d50fa3..000000000 --- a/exp/spookie2/socrates_aquaplanet_with_cloud.py +++ /dev/null @@ -1,234 +0,0 @@ -import os - -import numpy as np - -from isca import SocratesCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE -from isca.util import exp_progress - -NCORES = 8 -base_dir = os.path.dirname(os.path.realpath(__file__)) -# a CodeBase can be a directory on the computer, -# useful for iterative development -cb = SocratesCodeBase.from_directory(GFDL_BASE) - -# or it can point to a specific git repo and commit id. -# This method should ensure future, independent, reproducibility of results. -# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') - -# compilation depends on computer specific settings. The $GFDL_ENV -# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file -# is used to load the correct compilers. The env file is always loaded from -# $GFDL_BASE and not the checked out git repo. - -# create an Experiment object to handle the configuration of model parameters -# and output diagnostics - -exp = Experiment('validate_clouds_soc/soc_aqua_cloud/soc_aquaplanet_with_clouds', codebase=cb) -exp.clear_rundir() - -inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] - -#Tell model how to write diagnostics -diag = DiagTable() -diag.add_file('atmos_monthly', 30, 'days', time_units='days') - -#Write out diagnostics need for vertical interpolation post-processing -diag.add_field('dynamics', 'ps', time_avg=True) -diag.add_field('dynamics', 'bk') -diag.add_field('dynamics', 'pk') -diag.add_field('dynamics', 'zsurf') - -#Tell model which diagnostics to write -diag.add_field('atmosphere', 'precipitation', time_avg=True) -diag.add_field('atmosphere', 'rh', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('mixed_layer', 'flux_t', time_avg=True) #SH -diag.add_field('mixed_layer', 'flux_lhe', time_avg=True) #LH -diag.add_field('dynamics', 'sphum', time_avg=True) -diag.add_field('dynamics', 'ucomp', time_avg=True) -diag.add_field('dynamics', 'vcomp', time_avg=True) -diag.add_field('dynamics', 'omega', time_avg=True) -diag.add_field('dynamics', 'temp', time_avg=True) - -#temperature tendency - units are K/s -diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) -diag.add_field('socrates', 'soc_tdt_sw', time_avg=True) -diag.add_field('socrates', 'soc_tdt_rad', time_avg=True) #sum of the sw and lw heating rates - -#net (up) and down surface fluxes -diag.add_field('socrates', 'soc_surf_flux_lw', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_lw_down', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_down', time_avg=True) -#net (up) TOA and downard fluxes -diag.add_field('socrates', 'soc_olr', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_down', time_avg=True) - -#clear sky fluxes -diag.add_field('socrates', 'soc_surf_flux_lw_clear', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_clear', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_lw_down_clear', time_avg=True) -diag.add_field('socrates', 'soc_surf_flux_sw_down_clear', time_avg=True) -diag.add_field('socrates', 'soc_olr_clear', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_clear', time_avg=True) -diag.add_field('socrates', 'soc_toa_sw_down_clear', time_avg=True) - -diag.add_field('cloud_simple', 'cf', time_avg=True) -diag.add_field('cloud_simple', 'reff_rad', time_avg=True) -diag.add_field('cloud_simple', 'frac_liq', time_avg=True) -diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) -#diag.add_field('cloud_simple', 'simple_rhcrit', time_avg=True) -diag.add_field('cloud_simple', 'rh_min', time_avg=True) -diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) -diag.add_field('mixed_layer', 'albedo') - - -exp.diag_table = diag -exp.inputfiles = inputfiles - -#Define values for the 'core' namelist -exp.namelist = namelist = Namelist({ - 'main_nml':{ - 'days' : 30, - 'hours' : 0, - 'minutes': 0, - 'seconds': 0, - 'dt_atmos':600, - 'current_date' : [1,1,1,0,0,0], - 'calendar' : 'thirty_day' - }, - 'socrates_rad_nml': { - 'stellar_constant':1370., - 'lw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_lw_ga7'), - 'sw_spectral_filename':os.path.join(GFDL_BASE,'src/atmos_param/socrates/src/trunk/data/spectra/ga7/sp_sw_ga7'), - 'do_read_ozone': True, - 'ozone_file_name':'ozone_1990', - 'ozone_field_name':'ozone_1990', - 'dt_rad':3600, - 'store_intermediate_rad':True, - 'chunk_size': 16, - 'use_pressure_interp_for_half_levels':False, - 'tidally_locked':False, - 'solday':90 - }, - 'idealized_moist_phys_nml': { - 'do_damping': True, - 'turb':True, - 'mixed_layer_bc':True, - 'do_virtual' :False, - 'do_simple': True, - 'roughness_mom':3.21e-05, - 'roughness_heat':3.21e-05, - 'roughness_moist':3.21e-05, - 'two_stream_gray': False, #Use the grey radiation scheme - 'do_socrates_radiation': True, - 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True - }, - - 'cloud_simple_nml': { - 'cca_lower_limit':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3 - }, - - 'vert_turb_driver_nml': { - 'do_mellor_yamada': False, # default: True - 'do_diffusivity': True, # default: False - 'do_simple': True, # default: False - 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False - }, - - 'diffusivity_nml': { - 'do_entrain':False, - 'do_simple': True, - }, - - 'surface_flux_nml': { - 'use_virtual_temp': False, - 'do_simple': True, - 'old_dtaudv': True - }, - - 'atmosphere_nml': { - 'idealized_moist_model': True - }, - - #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 - 'mixed_layer_nml': { - 'tconst' : 285., - 'prescribe_initial_dist':True, - 'evaporation':True, - 'depth': 2.5, #Depth of mixed layer used - 'albedo_value': 0.2, #Albedo value used - }, - - 'qe_moist_convection_nml': { - 'rhbm':0.7, - 'Tmin':160., - 'Tmax':350. - }, - - 'lscale_cond_nml': { - 'do_simple':True, - 'do_evap':True - }, - - 'sat_vapor_pres_nml': { - 'do_simple':True, - 'construct_table_wrt_liq_and_ice':True - }, - - 'damping_driver_nml': { - 'do_rayleigh': True, - 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 150., #Setting the lower pressure boundary for the model sponge layer in Pa. - 'do_conserve_energy': True, - }, - - # FMS Framework configuration - 'diag_manager_nml': { - 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window - }, - - 'fms_nml': { - 'domains_stack_size': 600000 # default: 0 - }, - - 'fms_io_nml': { - 'threading_write': 'single', # default: multi - 'fileset_write': 'single', # default: multi - }, - - 'spectral_dynamics_nml': { - 'damping_order': 4, - 'water_correction_limit': 200.e2, - 'reference_sea_level_press':1.0e5, - 'num_levels':40, #How many model pressure levels to use - 'valid_range_t':[100.,800.], - 'initial_sphum':[2.e-6], - 'vert_coord_option':'uneven_sigma', - 'surf_res':0.2, #Parameter that sets the vertical distribution of sigma levels - 'scale_heights' : 11.0, - 'exponent':7.0, - 'robert_coeff':0.03 - }, - -}) - -#Lets do a run! -if __name__=="__main__": - - cb.compile(debug=False) - #Set up the experiment object, with the first argument being the experiment name. - #This will be the name of the folder that the data will appear in. - - overwrite=False - - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite) - - for i in range(2,61): - exp.run(i, num_cores=NCORES, overwrite_data=overwrite) From 4c1ffb315dcdd057dace97ce7237dc0dbab3067c Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 21 May 2021 09:00:57 +0100 Subject: [PATCH 214/304] Testing with MiMA was not sufficiently done, so I am removing the test case as an option --- exp/test_cases/MiMA/MiMA_test_case.py | 3 +- .../MiMA/MiMA_test_case_with_cloud.py | 193 ------------------ 2 files changed, 1 insertion(+), 195 deletions(-) delete mode 100644 exp/test_cases/MiMA/MiMA_test_case_with_cloud.py diff --git a/exp/test_cases/MiMA/MiMA_test_case.py b/exp/test_cases/MiMA/MiMA_test_case.py index 9ea39f279..270596744 100644 --- a/exp/test_cases/MiMA/MiMA_test_case.py +++ b/exp/test_cases/MiMA/MiMA_test_case.py @@ -73,8 +73,7 @@ 'do_simple': True, 'roughness_mom':3.21e-05, 'roughness_heat':3.21e-05, - 'roughness_moist':3.21e-05, - 'do_cloud_simple': False + 'roughness_moist':3.21e-05, }, 'vert_turb_driver_nml': { diff --git a/exp/test_cases/MiMA/MiMA_test_case_with_cloud.py b/exp/test_cases/MiMA/MiMA_test_case_with_cloud.py deleted file mode 100644 index e544c14a3..000000000 --- a/exp/test_cases/MiMA/MiMA_test_case_with_cloud.py +++ /dev/null @@ -1,193 +0,0 @@ -import os - -import numpy as np - -from isca import IscaCodeBase, DiagTable, Experiment, Namelist, GFDL_BASE - -NCORES = 16 - -# a CodeBase can be a directory on the computer, -# useful for iterative development -cb = IscaCodeBase.from_directory(GFDL_BASE) - -# or it can point to a specific git repo and commit id. -# This method should ensure future, independent, reproducibility of results. -# cb = DryCodeBase.from_repo(repo='https://github.com/isca/isca', commit='isca1.1') - -# compilation depends on computer specific settings. The $GFDL_ENV -# environment variable is used to determine which `$GFDL_BASE/src/extra/env` file -# is used to load the correct compilers. The env file is always loaded from -# $GFDL_BASE and not the checked out git repo. - -cb.compile() # compile the source code to working directory $GFDL_WORK/codebase - -# create an Experiment object to handle the configuration of model parameters -# and output diagnostics -exp = Experiment('mima_test_experiment_with_mcica', codebase=cb) - -exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] - -#Tell model how to write diagnostics -diag = DiagTable() -diag.add_file('atmos_monthly', 30, 'days', time_units='days') - -#Tell model which diagnostics to write -diag.add_field('dynamics', 'ps', time_avg=True) -diag.add_field('dynamics', 'bk') -diag.add_field('dynamics', 'pk') -diag.add_field('atmosphere', 'precipitation', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) -diag.add_field('dynamics', 'sphum', time_avg=True) -diag.add_field('dynamics', 'ucomp', time_avg=True) -diag.add_field('dynamics', 'vcomp', time_avg=True) -diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('dynamics', 'vor', time_avg=True) -diag.add_field('dynamics', 'div', time_avg=True) -diag.add_field('cloud_simple', 'cf_rad', time_avg=True) -diag.add_field('cloud_simple', 'reff_rad', time_avg=True) -diag.add_field('cloud_simple', 'frac_liq', time_avg=True) -diag.add_field('cloud_simple', 'qcl_rad', time_avg=True) -diag.add_field('rrtm_radiation', 'olr', time_avg=True) - -exp.diag_table = diag - - -#Empty the run directory ready to run -exp.clear_rundir() - -#Define values for the 'core' namelist -exp.namelist = namelist = Namelist({ - 'main_nml': { - 'days' : 30, - 'hours' : 0, - 'minutes': 0, - 'seconds': 0, - 'dt_atmos':600, - 'current_date' : [1,1,1,0,0,0], - 'calendar' : 'thirty_day' - }, - - 'idealized_moist_phys_nml': { - 'two_stream_gray': False, - 'do_rrtm_radiation': True, #Use RRTM radiation, not grey - 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use the simple Betts Miller convection scheme - 'do_damping': True, - 'turb':True, - 'mixed_layer_bc':True, - 'do_virtual' :False, - 'do_simple': True, - 'roughness_mom':3.21e-05, - 'roughness_heat':3.21e-05, - 'roughness_moist':3.21e-05, - 'do_cloud_simple': True, - }, - 'cloud_simple_nml': { - 'cca_lower_limit':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3, - }, - - 'vert_turb_driver_nml': { - 'do_mellor_yamada': False, # default: True - 'do_diffusivity': True, # default: False - 'do_simple': True, # default: False - 'constant_gust': 0.0, # default: 1.0 - 'use_tau': False - }, - - 'diffusivity_nml': { - 'do_entrain':False, - 'do_simple': True, - }, - - 'surface_flux_nml': { - 'use_virtual_temp': False, - 'do_simple': True, - 'old_dtaudv': True - }, - - 'atmosphere_nml': { - 'idealized_moist_model': True - }, - - #Use a large mixed-layer depth, and the Albedo of the CTRL case in Jucker & Gerber, 2017 - 'mixed_layer_nml': { - 'depth': 100, - 'albedo_value': 0.205, - 'tconst' : 285., - 'prescribe_initial_dist':True, - 'evaporation':True, - 'do_qflux': True - }, - - 'qe_moist_convection_nml': { - 'rhbm':0.7, - 'Tmin':160., - 'Tmax':350. - }, - - 'lscale_cond_nml': { - 'do_simple':True, - 'do_evap':True - }, - - 'sat_vapor_pres_nml': { - 'do_simple':True, - 'construct_table_wrt_liq_and_ice':True - }, - - 'damping_driver_nml': { - 'do_rayleigh': True, - 'trayfric': -0.5, # neg. value: time in *days* - 'sponge_pbottom': 150., - 'do_conserve_energy': True, - }, - - 'qflux_nml': { - 'qflux_amp': 30.0 - }, - - 'rrtm_radiation_nml': { - 'solr_cnst': 1360, #s set solar constant to 1360, rather than default of 1368.22 - 'dt_rad': 7200, #Use long RRTM timestep - 'do_read_ozone':True, - 'ozone_file':'ozone_1990', - 'icld': 1 #cloud overlap method - }, - - # FMS Framework configuration - 'diag_manager_nml': { - 'mix_snapshot_average_fields': False # time avg fields are labelled with time in middle of window - }, - - 'fms_nml': { - 'domains_stack_size': 600000 # default: 0 - }, - - 'fms_io_nml': { - 'threading_write': 'single', # default: multi - 'fileset_write': 'single', # default: multi - }, - - 'spectral_dynamics_nml': { - 'damping_order': 4, - 'water_correction_limit': 200.e2, - 'reference_sea_level_press':1.0e5, - 'num_levels':40, - 'valid_range_t':[100.,800.], - 'initial_sphum':[2.e-6], - 'vert_coord_option':'uneven_sigma', - 'surf_res':0.2, - 'scale_heights' : 11.0, - 'exponent':7.0, - 'robert_coeff':0.03 - } - - -}) -#Lets do a run! -if __name__=="__main__": - exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=True)#, run_idb=True) - for i in range(2,25): - exp.run(i, num_cores=NCORES, overwrite_data=True) From 005ea3dfcf1c48caf44522837b91c49e85c2fa98 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 21 May 2021 09:06:16 +0100 Subject: [PATCH 215/304] Revert files which were for local testing only and should not be on master. Updated socrates test case to be more meaningful --- .../input/era-spectral7_T42_64x128.out.nc | Bin 66524 -> 0 bytes ...aquaplanet_amip_with_original_era_topo.py} | 0 .../scripts/run_plevel_cloud_tests.py | 112 ------------------ 3 files changed, 112 deletions(-) delete mode 100644 exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc rename exp/test_cases/socrates_test/{socrates_aquaplanet_amip_with_topo.py => socrates_aquaplanet_amip_with_original_era_topo.py} (100%) delete mode 100644 postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py diff --git a/exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc b/exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc deleted file mode 100644 index a85274e620edc22c0b761c8e31fe7e28d97ec55a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66524 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 z z$k9#cn?(SMiZ5XP%2%NCBo8#Mtb`5gx?$NN4fOq0E(&|qi_}+LV&0kWM0y2@=v?F` z6rCW2Y{u-Etjo7ax^W`+>d;H_WyvF2^@}ofu_}_B^Zh~A=%3=vZ(qVYSeh=l71A%b z(bQ?#{phgZX#`=_>f`U^tt}8F9qbZx(6&5X-2|(9>(;Tn^bx_0mmdUU3Vm!=N0-&@ zjV-+B!eJusmrl0sOXscd*iOj{y?<)e+2r8wm%LZ2OQ@CGT*+{-neD;G_lRh%e`^1JM}#l+Z~B#^>@S1 zg9{>+7n}1Gvo2gi&`y-xOxd-dlPQdu#EPPOWB@Wc6$8P(6Vzs-9 zaOK4q=<~Z#=(4GdY;(2HH$NcMJ#KO5a+V1-?)~(Zx0!@=mw+q zLxXlaD&S_BZzuIz&oR|gyimfcHZ-K6h+3O|qE)Oe<8ad#EpseFe;n7r{0|kNQ1Jj2 zrD&neuVx|*jX@?~W;^|5!dyCVw8Y9Z=y|o+?D}ep=6>$0(C=5`eVBUFIEyk{WKV*n zeTd}bWxSNQb!_ggc49J9gT-8Y)z9J~Hb(zDdu2m4JKb=lVD*zlF8-8pqLE33b2B59?TAu`3VgX4LwC$)<@h#lXAS|GKaPVm#F)%IWD3>W<6MTf+2 zLC0+9l0T&&_rU?43p3-|zE)VXbsr23m%zj1nefs}3LY9OLZsbJm~%K1m2cUK7QEQR z%)fYvlYQUB&90e91f?5D$`3PQc-(`x{N{6B;ps58Ok9`!mD)tc?@S>55=BgOg$z0x zd;^t#EJVe9jwswn4isE5Oj#QUTUHvt?MVcS965p&gmquin86d|GqAMOI94)0jAivU zV0Bl5oeT7N#YmbtR9PkFiG>*?>RPwXFfPm>=yi`&3YQ?{^h1 zd$S;7WRP9L=CbPtHwcD1&#=0ov4Q|$zqe%F30|PpF4oaTmz~g_Xyx(9vr196fw!pM zk)5^1j(E=!XUnS@%0*_M;KuCVq@`MoeOgpZy?AktH><0O+u%_}+Ha=OzLx9hm~a z^db{BuWp zif(a=E%sdGv{I@*^FQ+9SXlMK%L{1n03Hg^It~*fltDyyH##-6mRV5vh6rkoaTE8( z&~oXq%(c`T$TVOkI;QJ^f}1|06R#AIewYGNZYaaVeIH_eri%%+;3{-%kqBZ=hA`Rg z;Z#$59s48^Xp!O(>igblRHmLk8?f;VH|<<6Cx(LrRWj4R#%Q`OPNYIS`i21x8DP8Ml# z(MunZc{f|>4o2&s>%;q;Mqa7g$FTHzFm)%wPS7914rdH<|Rn^n26-@D0m7a8i!g85|O zNgf%!cagpAxt4wT!IA_%Tfy6XyN|u2`yZt>+=xWy9z{P<44n8H4jF0tAo-pO1UR@t zg!c?cw7d$X#joJWsfEybO#`?H0}$M>fe$qdR^4zF&ps-KWnFTxc-J1h#C;<^4eB_^ zd@go6bO+B}>H?pJ2t@ofM{P~o%)$05?)svCoY`_oE-<#0D-IAt@(GJTZuBzjpK=~H zw01))a`x~?V!ESrw`CuvU2en<2=_X_BvDROn4d6+U&BfI93gLC7O;K)y`v(W z%qdi`iRisOOakfbj!>R!rjZRKDuTXWmIwuEeT(QZsxo~-xPm=mdg*o zs0miBbA`#R&gks%K_uHegbIr$f^=mcOxWsyN|!%H2Q75b#LUxl-}EFdOz4?kUa!q5 zy`Dr$OnWHOc#6_8FyyALJ5A2NI!;B1|6t1#i^;~!Q`Cs&DeCO&`BcrhVWj9Z9VWcX zfU~NxkiFy?WIO+ai@~;#`e`?mNbZEDpT6*x!_eX81~nHsXmB-!@rx~3OH>JKKaa-p z%bnq8=|wDC9);(puE7>&zIdrmI9_nN7*DDH3e|x+VCHZd9dmrg?3MjXeQ0^X>1T2D z)HytKG(8h&`AA57W(~0#)4|Z80eK4h`qI0~>08HtqlI&xqi@GXV9jVfoSwWD4t42+ zS^5j~c*1WaUX;sd3>h#VVoT84W8uhjrxcU0{{$P>d7fJ*BF&DgIIy|$vc&i2US9a# zDC)0f05v){i+9U6hU|;-BI|R{3EHZodD>a zYo!=3Sg_X0%2?vCAa-1i$S&4k+b0jv>Ygv@7cL(3F9dXu&@J^;&W`M;{AsmO$(#4Z z^t)j1nWb!_$qiy`Cqu$U_wdTUTT}5$g`9an2e)dr7+q22Lw%7yTc*9OhS(vFGrBP^g@`jBm zY3RP^ZnQvClacu(QqAiT;cos1C^V=9981mNX7)ZPZyALEDGDYoQb)^&BG824HK;X6 z0KvPLz{_e?__gspG>cw?Q;YOblaVv?s8^fWKXoNit}zmx@e|PGvNpzIX@vO5 z3vD{vn%S|+4Q$leiEPYsC-%d}u)8k*ezD<-ki%|gKIoliD}o_523lldBlZ8q7t$*zL%1Etw$ACXpttFTJF#*XIjUrfnK4K zUL7dkz$o771+2Iii+1_oWhw=D!TXQ!nd^Xy!gXMqZUXZAR-n+vwM@d4LdHNjn0c|G z3>n^5K=W;@nFm(Y^fPo*@I#o{*_NqKW#-6Py?WrnHbF1Z=$uC~-K0r0xy4(se~>q# zEk@2eY$Lg6QmE{$*XfDwC&|o|3}%9lGqPJ#29v)31!un#5Pm=h;_Lsy<;N^jsL zGTxY)*^DQ9Z-uK=~0B;LTu=%!X>~Pu-8$Z;6PIXII*%^fH+GL{Wg@!0mVjc>7 zu?Q(_CiIY`KKUg6j3=ifZpGW{Lu}LPc(XmrZ~t!Y=e+MA61NDxHJ`-0U-aYi#p|*C^8N5~i8^S$8byJ!SxC#@ zm7y+i)VpbEOhC#TB=)ZoO%I-eBo1C>G6UYz^-60j-=_T`vZ+sqe|0*!6NHI(_*~*( zEJaMSe0WZ>UwJ=mO9}pg346g%(Ass2O8VkVW>=mf^o^ZNN_ibhPgwx-&nySOv@wYH z8G_^m7Lcv*9Ukq=!!mbe@nY%Q7#;V+<~<`=*SiHPFZhTjzHWw((;h=BR|^#mk02*2 z9rB-Eg?F1vuomABTQtStxhDVM^}t35I%o^7?y}(ZZxq}YV_3194@TeLg8I}YFireD z@WVGkgq#W#{&a$RIVE_1`5qR#MG5bktytS(A>Ng?8Yi=Q_!?S;Bk~two(b=Me?J}SJvQpv9rh4x z&S$R0D^`bk<**w%FAEa7fcH?Ogwe@pW6rDVGUvifnDzFD=;ldxd4DQtvRTxP4aip| z7C4S9@>|FYWT)|}R?ZPfD=ZX5rj@fjZwHC9{VsOrH494W_g1!~-+_Q(w5>`MV&%V!65X_6uxr< zM@Y4*g>Yfr4lHkkD6te^JtMKylmTqG`ZzW^T!N(wF2f`KUuftUhTj=QSRrgVmUrmJ zQvD5BEMo<<6@P*dWfRy|rwdhIKj1|Tb8&cMDXz3{#4mpO<9D79ajy=IzkZM6Px$^2 z{}L$UngIqM9X1mB-@~CKxe`Lp&w=&AbBV-hf8=xGBeU*+7zd~Fs0@W{D#tmVOSKW_ z3V%)@Rw=8g?Al~rj)6E)d8SDU>Mcpt*dh-K9(X>E3r0f z<)}n6l76^=n%BLm%GbD)9UKee*<3LeY#2)-4*TB```0o=;q70xrWdOIzD{G8H>DES zz%CMa81a@aFJrXij1WKPD#+#vS)-f#p*FxDUVTf37q1Uu=^vW#FHRkP<*tA+p|7In z)-Cf13vc29dA0b1JB*;i{~8`>ROAp;4bb4f5y9KeCrvH_}juR z^BsG{ggm(?eA_G`U+~8WUtd9hN5>QJrN}Wn8{RHwu z;^esiad%;dYJggBWgBHsS5LmHNRhbbJgaY`ngq+7Az8*@WbT+Qv2{x#=cY@s+F1v9 zMf%;WAnqYKu;MS-@;ih5;;P6ST_NDLTrTFVTYZ8_&83Ma%kC|8fK(1m>D>>2FbR6Myum(kpH&^bhN%0&4_Vfjy^g_EaVHgQ~T6; zX44C3jlPqV%pW&$Aybp>*q_ZadsD`K`fq@k`|V}-h<#(v}^55e;Gy3Yvvh5`4Y+djl4PyHA*f22zf5_H@zDa&@gv-)625*381c4^?>M+)X%fmL)D0^}(qYZg|5*OX!@`3{2ZI z^wP8(Rf+9Jb=NJ?i{ubgA4-t>UpU>@D%1e@==DYgl-Q<^{2O~w zv`Pzl8r}^{r+k6bEIoK1ZG)#gQ^fP}NlZU8#g5lguy>d#4wq`e5fTbGFm);RF>$~V zS|hliG73N2RLq}1@8oN#o#ykT4)C3PefTGKZRH1*%JV}{DGS#@D*ycLA-@0k1pa|* z8GM{{j<00T;hNjl__U@1o<3**SLb$s$X*X56?7FzE_Fc1nI9;v_Z}+S<$xZ4l}Arn z_n|8XIAqbXkg;Bp%AL9Whdb6m^Y-VY@hUg$C($1%GNrbfva35u+4LO}`0LJLtDeWQ z_J39iYM%EABK$&F%jXX4bIH5xC|kq!jISrsZx67yK5XNyJR?`txwDRhthFTpH-`kj zuAd`U@^^4+nzGntw>H`)K$g24TwZ->ejZbqy%Ds0+<<&?#@YwhU{5L>XLY#X`b#;u zd5JDAncIwyk|ZqczXC3AZ^qAZjyng=H|gJI^Y zL+Is>5mad{k6x%3f*gJZX0w&S^VL7d=Rb!}TW4Xd3xSw#un+IcxQ7E}qVf5&bFp_u zKi*Q-FFdn#U^UHJJT+Jhn{6aG@Y8)<`#F{`LEqxfO|0QtL@ni0womw0+B$s8*E)PA zjpeV{pUPi-=^%e)!FB$!a5XbLwh&FBdvjjnw9qvg^u^l3dlZq*0hS zTBy8^&G>ts==5wRYTpl41=IPw%U6ysyR&U05#92V=${N{2g(9jAJx^Y!zoa)XBP3-H}a z74Fq~L2`{F?Ea|_rVa>nK6-$uyBRnwX@hfv{g7B<3fH_;pyqo6jKnnKsY9nQPsR)H z`Q3*7;y>bJPY+tJtJEF3O83)f_P@KjH698{NvAGt2&iy?2md}<0` zvgQl^so;-?&bQ%_ODpj2wDnD(6EZhu93`_?A0-FX49Jf4#_ZqPV78)7iO4>vWItP0S?(E ztLlmR$2P8d#yaV5uZrh2uwLtYEBVr|s1qg06#mdn&TaQ1yO-Uh>bCDCsY1?B==cFN z{qa;-)oy_&=)J=Gr~JiNrN@Q7?GJc(tvMbw8NlzoIxs6_dxl5}u)*F3&^9_BE=_g; zZTN_ohSa(WTOJHbyO z+pK&@@I-T~7jFzGUpj?%3bzwjwUZ55ZN)1$y-p@~DG{Gt>v?^&C#(0|kG(1*VD72( zptdLso}yo&!cPXCeOLyisdu2rsSXMbj6>mG5xBmf3W^?gL8)^A+_k*`<&Dm8?c#Pw zR6Y(DseH&^#6tJ@JUn^JF07MOj8&G$LF>8wux)Ql>c1*1 zpFA6T_*}r*zuoX%A$z!@HyYpI9mV-UCiwb=bGV!m@~)lU;YTI$`0>(BxW*?1m&C{8 zta~?b;#6ZCKI;Z{-;<0@4(Z_ugHli@I0)Ic9T3)X4Yqq;0fUir5b0lu?oMk%o}qQj zPlF*w&tN(gJ5P?Ry_7<<=g%a{7c^NPdkq?RbfWOBO%W~^bt9k(#z z3v}p5%|>+A>KRi3NWy>3(^X zJGSRMNxe0fX`FHi3AjsOUF|8X0Xa~zwiLoVjp4@2>Cj>P8vaugzz;KP7?ynpo&Ws@ zjh}^_+~F2Tcq0R@=Y+m`lWdsy)CJ~#+XU_*6ok*-3a7ooVUCP9O8421w$6`7*Lcxr z>~kon-uw!-?=C@J-)B5=R~ufsECp{rV~2gNTjTK16r70H~H1@1GgW<0=p1L>)-u_mB+cS_O~>dA2t*%gHy-1~UKr zICXP^CN-WZ^th#JRqO2NAy4XU(7B;V@HmOEnBz3O#U=z_Qr5#o%~tr%wOP2t=P*vW zTZ2zUUc%-b=2+s@7(6XL12^sBA>GCoE_mlch-CGVZZ%g3Psc#UzeG2T)H2}l! zQ_=pk*W}N*@H1~9| z`Feg7sy#*}?e!{t5B9I?VR}y<8ZIkAFL&=kA7LjN?QBQS3+|!pv*Rdg z*F02FWd~AA#=+$F6RudJ9D9jVPi)4e zd*|c(m7e(N*eHH_vK!Yud5=p5#BsWjD2{qJhy%9P;k^p_7-BACjky{yI&T|13bKI; z{S{E`?g$xgo#EWdc(4qxMeU3AkmMxRp|B1%F?_9X$DZOu-aSWKzhl%#GSI83!r0o2YDu|zakmy~`K zWqVW{Y0Vkk^yNvq^pU<5WYkfd>lpH&gXV-ImzCdOpT9||d6f5OE4lb~C*6RGHhr|5n$-Gp zt4JiP!`UAH%Q@Am5diD9iyL9NtBq2ve8{pJG;O1VyYF9_GT`R&q z1>rdK&U1X;egJ#9W#e@ty;%QjG?u*O2wj~|;qF5z$Ubff(Kp56bdR3!zvTv&vWI}G zF$6b@IS`xp5=zE%q1JIHur@7_{o)6ls@V?n3Y~;G_}^#+GGJncBdJEYG|s!hle3wX zNmMr)Q%CZ2s7ss8v^ZC*5!r4TVX=1Wi3qyo*8WMF;3@X2C#l zE$FB|1Jy@apk(tBRE874FvJB`42gqNNEGZ6=z!~=C$PEd7p!%<0yy#nSiGnJtNbEx zE?Wn26-Lk^JQvH>&BY7;OT{)D7vZhXSnT|H4|Y83inpp-V#lSL!meH*p3-7ucVwdDLBFx(TCOF8sk;X z^YB6MSNM#u$LD2w6g#^ez*OZ0JoDB&EPmb_UeBt9JB?|ODBJ^1rJe@s!YeR6q7i*@ znvR-J>_hKeRAIKc0l4?{K-%(|a3^OJ1X7>j>hb{aKmP&rr47*?wY6y4jq{9X&M0S_ zwU*0w2QFu88<*c2%Vmf+a2f}DsZSOibc&JzZFgo1r=9wn`>FAsD=ykVe;rk4IzQH; zMfei3v2H+=FiYVVq=m9?B%%gq7t~`nh6X?GN1dnFA$IC8%04~=CBzS)%tfAv9K48z zl$1eA=nI(EG6B>oEMQv9a+v1q4l^&_0h78Zu(Ibe*e{lWHBM%*lxGW?HzGlNR2vQM z-iO+1ccGSm6g0F^5vB>5%(ja+K=@l$$T_+P?aOHRGE)jqhzrLueR5dEO$zHu$YRs# z9TKy}};YLuHR0RHQ#qj@JqTca7 zn7d&iEYwK?W9>@NjdTI&?XS?oqn#+w{3)8;tjvTzqv;n}ld0}GeQZ9XKtv-$segR} zMn3xmQ@H92(pqDSj$Ud+IY}L;altM$_;@0S!!T%VIs-QMZ$d=q3aG2YSVFY~8>VPr z+sj>eM?@grt?GjvEbn2SaE8pB-FLCf(KYbZZ5Z0;^Puv25u`7D1!q)b!MyAe`qxjR z+~O{@@zynDWcC5=+m2AfL~oeYsth}X4CCN*aR_NY4+q|Mg5gyGdZBy~d53f(E8Ame zi|Aeya-aak8aSb23r-+;XDvn~!$ipGjjZ0XZwuEj=^4G{@FZqJ=n}faql|Xb>!!nB zuVc(DGMP#R8Kl%!g_f@wKzS{WASQVV7P?P{wbAvk*)|^e1Y;qp0{= z61r~o1l5WkL_He9-)-U!5`7LJ({vXU?IwcSi+Gr~Xe*fB&I5}qZCI?aA2eN+U_#9o z)Eamj6=gf4e@&qh?`NNTX3%E3V2(HhOhH9%=cq-JKdUwu& z(aQID;@lTl`qe%x_v;syvy;KnJF~Dvbv~9TxrC)V1F*t~7151!(B3(K|nVX>qf z7%Aw1*5}`$sx}g?{&@}wYoBLW$aHEQ zM3Yu6UN8deb(YsTj=ymrF)HBfu4W?7*OQSdX^ZFS`d}xEogKIz|IT~hOe+C*; z?tuJF9W**f(Bq~>s6cEviYvH{E+$+;`PR$O>m46JHKG=5gI>Y8O#_gn>jM>u4)DNo z1w82$vXACpg=PnJXk4=#?%DqWHa8I}={^vwxC;#{PQdHfGw|sqxrXDzr zS_)R8^Fz~+;bDIyvu7Ncn$@Dj7#;LaX)@qcZ3vIq0e1$n;Qgm)EE80ZXJ0#kmwt-C zYixS4Q^h&F$GHRV*+H=5;zqnY^ETEu*2A)v8PK}~fQ=i5t0AW#&Ep-!4IYH>E$_ff zdJtBqSi&@HhnimgLqXok$Z%seQf?nbycBB`(N3f4qyqH5ToHX*E8L4u>_Ii3MNw;> zDomgI6MPQdhkGFrLQVb#){&Ts7hg2O^Q*7m$(uhwXMr0;?7RunM8Bbc74Mn1Bk@d| zk35<+B#+kp-G$cc6e8_`>&)wjI);NqNHgv#TJri4y1Kdz#5}EGacL}Unb-*)n~LCg zeGeS6QG;!GJ|JQXdaBK!w7C-f@_UY6p7lrd4<8_br7U7wC!q%;H&JJH5Bi{4g1(Dw zM*sOspx&`U^zf<`y3T)qVtV^fz+(**y0Q&jHws2yo4$d8>tk?Vx<|+`u!q~T;-P7( z2)vTG2XE#DLC2Gi@bE(pRB2v@>#8##3zb58##zY8$$_$pEzlBB3g69Tu-xMrSgR)s z>kDU{7%elzda={6=FnFxzvvA7zWW^BR0_Z6q8E_)CQyF&4wUG&!j+UENPLnBL2*N{ zWs?ES(~d+x{)C{4!b2!Er59a|O-9`|Nia*)9Cl_`Leh>nsO^6MBcsDudev8~UNsHR zJvALKc;<$U4QJqmpReF~@Au>Bk(;peI%)XW9|{lERN=bcYe+OGfiU+>@ONs2BUi1# zxv&fHs$tM>`2rIirlKdhmFU{dDJbQJ6S`t#i|RN1MZ+gGVPgDJkjQmFf7&Zie{Bc) zSoRxcCAmSsYDsvSJc>0f1F(I$7!L6IgkzdTaolV_96nx!J^f-Z6_zWkp_f3g#}AHd z^#wJBJoIqgAd0Q8Mca0oBJ~5_OzoDhOlZkbrXqe4qchnYNjYplf!iOUh8$syyZ#qu zC1!!i?`+_idV`hLLRkEyMwmT%3^K>k(SYebR26dwC8-nSzk!DiP7px<8aVUL8V+&oaA;>7culc~GYQM#%$ZH#@gf(t z8GQvST|P|D1oY!oD{9ntM7R1aNdO^Sg{j4#)^+ z6zPL&p8?znnTZuY_hLJzcpTy6gbRBjaoxq+_~{X6+>-kg*EY|_1r=X#WQaK4w){Ul zBVHL^ys3woMnI`q>|uxjfrSZ^N) z_HxOv_UsKnhW=nc+(D^lA^H$gkM5fOLA|R6dtu1r8%UcvKK1o(ZvaoOaJEK3SE1Qp= zEi6Ng1~rH*-ipe@Gtlkr`;eeL8#P(3Kz-3u&_Ca3keQ|rN*^O(a)Tr&hA-BlcJMRk25#*gtgyZjuTF8tVH5A-V$VAKbn{{S(eXY0*YSiu!P*9o%Xi}U6=S$@ zXCS^(wjT$2pT}rs78Ymi;My`V;88=USU#8$q+3-_tCy?3{Byk8pjM~a5QLe1h(S_07tyqvNk~;rxMmVOkcb#CFSOn;C7y%Kg;Fc#Nb5;v=Qla#nAj+D zL2E8kC}ajcRNTz;7WOjVCh?fjZ+n$9V zD6~fv1!%aT!|qzh?lgxC#kM0+H!?F?7Vnm1{pq}kHK|lAJ##md5 zGGUiZn9SRGOwQ5Y%*EQ%%>Hxxm^lmk=m%^3XrHQ5+DEgDexg>!m~PKuqK;`W_pjY! z{#0cmW!GtF)|n+p`%ep+arHh@mfwyhN&aH~yT5_yf5c}7|Gj4Z#y&=hzfI9xXMIFX zO+y#o{68XKeLgyFxq6>KyC}sR1y1w;0s{Q*Jy_u7W{#XdlN{_@CD0*xOj;mkK=37yqq*f4!fE-$q}@HT$RHj1@ERnPEx1til9~g=Itj?<`oUG=LiaZ9*yu z%EE)jO*A=jJ`;6)fSIB4g^}C7lrb)`U=El)U@myiVlH=FVscMAF`2i9nS_h;n6S3h zjF0vpb7;5l*-89lj?7pt^s9+57dj%DbpCCoV7@$4YUsk0KR?Xe7VTtih&*DhhR8D6 zD3;05uVadc5mRSj%)B4HhompgM%u@(BHp)|$U%ff`|dcSW6yu16Y7(Z$BrXtdx=or z@8^(-FzcdzAQy@1U1M6mS1<)Sa?JT(tCxlKB}sno zPCjyKX|bz(ix2vtWRQt;%|5@Y{$oix@+{^ z)%c416fBq|id*L2#&5qHl4kH6>+T$Uo(JNsr;GQ*hLukza`AMqmE3Xdp2|3=L}QRNtpJt1x){e zW6bCA%gndG8qAk>QEpLznL^r1y^P zqeUL;Q5$2-t%4nIv8Bhm+3_v^*f;s^Y^X)BAUJNbRZ9xPqc*SO>HG_|>@%Lj;?h2L zXlW-|x_$;Ze9D%D28od9v{G{6q!tMeY9SH4NRpIaLhdFyk*`A|+$>EeZhhb=7jQM5 zOFp`QEAV~7-KaO?a#tsEK{2Y_)NAU(td%W&wrCzBS-ODPQQpQ}QLJM6wOOR{;66f* zd~~$H0LAbAgUSP6pstYy5T~qQhAI!NlzhRZDG!3gc0vl33T6LZKwJ74jJaxK1tX#F z{^gLM@hfIR+gYufmlhHE`ys94z^o3lq3@RQ_Npif~Cm_8BM8 z%)U%!R3wq%irSgfxBHl2&Ap7L+%U7f*NNFuzna-N;TyAF;tsQVfe*uv{>E57$!8Y* z{KM$Dd}UP5wK7uj8ua&Vt#l`U7hSVnmo9o!L1)gsO(%<;pp&K5=}ha7bn%L}bgjZd z`sMU1^!Gq3MpE)DqrCJQqqS%Qqy1Gl@1%4oqw`-JGsCx$Q9gZ!5x2WU_j!cSm8whV z$oLZ4>fB-!r1r;1`M+LWE>pmBB?Hm`iERTydIn2e(vE#z8T5thw zIh^~i3!JU^OU^)1g_BrnN2=|+h+CN*o942bclK5jWx3)86(e<$DqFRIYKYlRJ&0OD z-LdVW;?ECLYlEiq>QYw;^zCl5P5W06t;_aA{c19MJ|vhoE_gt_Th>qSd-IuYQ0rmT zuh=s#zyC1F9|xIc?fGa@r!|^CcpW+H{fEv;JVsgT>QU|YK{Vu|1JXZgU`|jP@P7Oi z_REXG=Ys%Ziq1iPkH(PYn~{;I{oF?;C?V(^gs%m zTw$>3!c1(uDjFMoJA~)0=*Ba=#j$c%F_vtsgRvc<@Jg}@xC70QyK6Uu=L=xZ4PmeO z?qrzuZ#^10c^2tVrASP}mwCAB4wF=JgV{c>iP6eGM7N#3PX`%z(Mo|Ol-K$=tL#ay z*r7!l#L{<=*vmAKRplAPz~wIy{gcIJ59hF=BNkSE;iq}0J3sTDi*`^dI?5Ef?nND5 zw1A3ww3)iHRGH#>*HbSqO{GTfSXVCM;#c7R@U|MdN;v;zn3wGQ-Ev{ndiKnKE;}5F z$gKWe!ptin8{SVQThCXMjo&sC>kGqVkzOWI9!_G1l5^N=1CQ9P$)bY6Rc{509mlJf zy3(r7zlQ|eH!s%t?SA&*p&>F0=99hNMkLj2FR4FyjeK@`&B@qL=G1E|IPG;_oKA!t zH@)dLH_@V#lt=opzm(Tec0TXvIdFkalr^J2SubG>0v0juM=_I}*2~mc%Q2&(o6)qu z_sEpGgB+HALT7h&pxAYJ=t|dT#NNz7?a4am)B0SP2){t_f!}Yrs_X2vE11 zVC8~qupSh_p=<;k?Tf+r`zvrcYY$E@3}CD52e6-~469cOS$R1wu*72<=zm`Zntty< zVYerUe1D1h#2283>w4(=zUAm*{s20W_#3UB=}fj2=#l^IayhfQJnrDDQSO2RpUa6< z;BH58T;1MwuEn^5>s0#8bsJ%>r{WXWJJiPY{OsV~&f3epN}bKMXIF8}9#gsdW&s?l z$8e=5W^(y9E4a&#b-1{h9$eV&Rh+L!6Sv>Zo7>nSoTK#7i!*9G#%Y9^ax&JF$*92x z(xJSbRBhKI+4>Vngl``4=|sv$)11*SfrCAkA3ASfyZT^J1p z7h(mG)c8O&CK`pJt~84(C<PTu>AL@po%{^Wu~EVZ+V%ufewX^Dk|D za^DD_T{FZNwU6huXKMJmHUIFI%cFd6Yac(hdYGU3ZRE#z>KlA2>eoU1x{#dslMnwB|r&K0+awHKnYL+lmI0_2~Yx*040z` z0^;A(S#S|YcnOI2Us&lGdkM(zpS}Tl|6?x!d&lB;#{OoQH-sN~4O6LKRdPOJ?^h8H zyYK>69Q5KSzIav2pca!_g_EbA&ZBD|N!+e^RrpC-iuF}kdFuJ}m&ENOza%Zi`aZN` za{BbA3>Zq#BEl zaK29uUS1JSC?y&7sv_c;CZ1g$H%8n6}O9?>b<4qQDNn^CuiWpgUs)GFZ;vb zlJWAmhZ*?r05#;T_K_I|rz&R*+%y;}EqUps@$37JE?ZyPbehCjk~VSfV@=W&YClaz zS$NUuD#ow7>-wyiwvf(C$s!9MP@f4WyyK%b(dl~zBNx{mWQ{s5c`l^APP6YbjGSD1 zz|a^1hU=Vc@v$?p<+qu~*6I__#<$B^7a6$H>q4t9OjjA%;=1&2tHosArQR&DO}x6E z$-=Ko4_WAU#o;m+6Kq$$WLy&+7&9_wp7t2tZ80$Nft)H#IOD2TahFRkO=hmWCux#- zlV)7>W!`e%>+;LWyH10zv#h*_!lTMLYi%kGx}Hj(Za&SKibM1up6KUog+Aokrx#fV z+?(ivcYM|+dR@%;@?44+6U{dGCU`z(Y&?irA38(h6j|7;p?M%Z`UGs=t;wvOjZQ;K dz~p_}&V=NTwAdwJ`>qS~^iTqn03~3Oz*qQfW)c7Z diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_original_era_topo.py similarity index 100% rename from exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py rename to exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_original_era_topo.py diff --git a/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py b/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py deleted file mode 100644 index 2cc2d16ed..000000000 --- a/postprocessing/plevel_interpolation/scripts/run_plevel_cloud_tests.py +++ /dev/null @@ -1,112 +0,0 @@ -from netCDF4 import Dataset -from plevel_fn import plevel_call, daily_average, join_files, two_daily_average, monthly_average -import sys -import os -import time -import pdb -import subprocess - -start_time=time.time() -base_dir='/scratch/pm366/OutputIsca/validate_clouds_soc' -exp_name_list = ['/soc_amip_cloud/soc_amip_ice_topo_low_albedo_clouds_original_era'] -avg_or_daily_list=['monthly'] -start_file=1 -end_file=60 -nfiles=(end_file-start_file)+1 - -do_extra_averaging=False #If true, then 6hourly data is averaged into daily data using cdo -group_months_into_one_file=False # If true then monthly data files and daily data files are merged into one big netcdf file each. -level_set='era_int' #Default is the standard levels used previously. ssw_diagnostics are the ones blanca requested for MiMa validation -mask_below_surface_set=' ' #Default is to mask values that lie below the surface pressure when interpolated. For some applications, e.g. Tom Clemo's / Mark Baldwin's stratosphere index, you want to have values interpolated below ground, i.e. as if the ground wasn't there. To use this option, this value should be set to '-x '. - - -try: - out_dir -except: - out_dir = base_dir - -plevs={} -var_names={} - -if level_set=='standard': - - plevs['monthly']=' -p "3 16 51 138 324 676 1000 1266 2162 3407 5014 6957 9185 10000 11627 14210 16864 19534 20000 22181 24783 27331 29830 32290 34731 37173 39637 42147 44725 47391 50164 53061 56100 59295 62661 66211 70000 73915 78095 82510 85000 87175 92104 97312"' - - plevs['timestep']=' -p "3 16 51 138 324 676 1000 1266 2162 3407 5014 6957 9185 10000 11627 14210 16864 19534 20000 22181 24783 27331 29830 32290 34731 37173 39637 42147 44725 47391 50164 53061 56100 59295 62661 66211 70000 73915 78095 82510 85000 87175 92104 97312"' - - plevs['pentad']=' -p "3 16 51 138 324 676 1000 1266 2162 3407 5014 6957 9185 10000 11627 14210 16864 19534 20000 22181 24783 27331 29830 32290 34731 37173 39637 42147 44725 47391 50164 53061 56100 59295 62661 66211 70000 73915 78095 82510 85000 87175 92104 97312"' - - plevs['6hourly']=' -p "1000 10000 25000 50000 85000 92500"' - plevs['daily'] =' -p "1000 10000 25000 50000 85000 92500"' - - var_names['monthly']='-a slp height' - var_names['pentad']='-a slp height' - var_names['timestep']='-a' - var_names['6hourly']='ucomp slp height vor t_surf vcomp omega' - var_names['daily']='ucomp slp height vor t_surf vcomp omega temp' - file_suffix='_interp_new_height_temp' - -elif level_set=='era_int': - - plevs['monthly']=' -p "10000 15000 20000 25000 30000 35000 40000 45000 50000 55000 60000 65000 70000 75000 80000 85000 90000 95000 97500 100000"' - plevs['daily'] =' -p "10000 15000 20000 25000 30000 35000 40000 45000 50000 55000 60000 65000 70000 75000 80000 85000 90000 95000 97500 100000"' - - var_names['monthly']='-a height' - var_names['daily']='-a height' - - file_suffix='_interp_all' - -elif level_set=='ssw_diagnostics': - plevs['6hourly']=' -p "1000 10000"' - var_names['monthly']='ucomp temp height' - var_names['6hourly']='ucomp vcomp temp' - file_suffix='_bl' - -overwrite_data = False - -for exp_name in exp_name_list: - for n in range(nfiles): - for avg_or_daily in avg_or_daily_list: - print(n+start_file) - - number_prefix='' - - if n+start_file < 1000: - number_prefix='0' - if n+start_file < 100: - number_prefix='00' - if n+start_file < 10: - number_prefix='000' - - nc_file_in = base_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+'.nc' - nc_file_out = out_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+file_suffix+'.nc' - - if (not os.path.isfile(nc_file_out)) or overwrite_data: - plevel_call(nc_file_in,nc_file_out, var_names = var_names[avg_or_daily], p_levels = plevs[avg_or_daily], mask_below_surface_option=mask_below_surface_set) - if do_extra_averaging and avg_or_daily=='6hourly': - nc_file_out_daily = base_dir+'/'+exp_name+'/run'+str(n+start_file)+'/atmos_daily'+file_suffix+'.nc' - daily_average(nc_file_out, nc_file_out_daily) - if do_extra_averaging and avg_or_daily=='pentad': - nc_file_out_daily = base_dir+'/'+exp_name+'/run'+str(n+start_file)+'/atmos_monthly'+file_suffix+'.nc' - monthly_average(nc_file_out, nc_file_out_daily, adjust_time = True) -# if do_extra_averaging and avg_or_daily=='6hourly': -# nc_file_out_two_daily = base_dir+'/'+exp_name+'/run'+str(n+start_file)+'/atmos_two_daily'+file_suffix+'.nc' -# two_daily_average(nc_file_out, nc_file_out_two_daily, avg_or_daily) - -if group_months_into_one_file: - avg_or_daily_list_together=['daily'] - - for exp_name in exp_name_list: - for avg_or_daily in avg_or_daily_list_together: - nc_file_string='' - for n in range(nfiles): - nc_file_in = base_dir+'/'+exp_name+'/run'+number_prefix+str(n+start_file)+'/atmos_'+avg_or_daily+file_suffix+'.nc' - nc_file_string=nc_file_string+' '+nc_file_in - nc_file_out=base_dir+'/'+exp_name+'/atmos_'+avg_or_daily+'_together'+file_suffix+'.nc' - if not os.path.isfile(nc_file_out): - join_files(nc_file_string,nc_file_out) - -print('execution time', time.time()-start_time) - - - From 3ee76fdded5cc8a266f8bca4339e2a2aa28cb3c4 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 21 May 2021 09:14:51 +0100 Subject: [PATCH 216/304] Revert run script to master version but kept the changes to the file name zeros. --- postprocessing/plevel_interpolation/scripts/run_plevel.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/postprocessing/plevel_interpolation/scripts/run_plevel.py b/postprocessing/plevel_interpolation/scripts/run_plevel.py index 5a04db3c1..334c15950 100644 --- a/postprocessing/plevel_interpolation/scripts/run_plevel.py +++ b/postprocessing/plevel_interpolation/scripts/run_plevel.py @@ -7,11 +7,11 @@ import subprocess start_time=time.time() -base_dir='/scratch/sit204/data_isca/' -exp_name_list = ['soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo'] +base_dir='/scratch/sit204/Data_2013/' +exp_name_list = ['no_ice_flux_lhe_exps_q_flux_hadgem_anoms_3'] avg_or_daily_list=['monthly'] -start_file=96 -end_file=120 +start_file=287 +end_file=288 nfiles=(end_file-start_file)+1 do_extra_averaging=False #If true, then 6hourly data is averaged into daily data using cdo From ba8c8bb9e07bb603742e8f46802f4dfbbe21fb1e Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 21 May 2021 10:07:59 +0100 Subject: [PATCH 217/304] Ruth suggested I add the output nc file into this PR. The script used to generate it will be part of a future PR --- .../input/era-spectral7_T42_64x128.out.nc | Bin 0 -> 66524 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc diff --git a/exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc b/exp/test_cases/realistic_continents/input/era-spectral7_T42_64x128.out.nc new file mode 100644 index 0000000000000000000000000000000000000000..a85274e620edc22c0b761c8e31fe7e28d97ec55a GIT binary patch literal 66524 zcmaI-c{o+y7dVbzvoa@CREmtrkePdiJs@++kRcjWG?${;7(y8$5*ZQ=A}NY{_PHu4 znkRXsq*3!+O7*?(&-eFvp5OEPbqK z>VG_Po7Znxw?u+S+W(0EYyUsIi4u~`|9D5OSg>kwmrDkc_Wy@Jf3j2uVXC5ceGW-qK-G>+SM1ud3t5y4f!v{ z9&hu-dT!4AWBNRw_C=jEl`N+vz({aLLSrS@SP2g+;bkRrSjk*gB7>F4VkI(xL^hD< z01{n5q7z7T1BnelVhfPi1SGZriH$&FE0EX>B(?*I4?yAzkoW{7z5$7kK;kQq_zWbz z|1Us{tpu6{0#-o+5}aKifpiI!B?{R8(XUAQCzAe0q5w#Ez!*jVCQ5JCs zCF4NJSTYx^kc{Ic|Y zA%JRY1W;ld)KV8fodE%y&?tZsJE6Y602=5E;IxkdXu=Did9DD?h!Q|+D*=?)5AAOV zpi_kax~>sGi7ybS3m_U0K=(!g^h^{$AAbS#*B8Kmj{+$15r*UnU|5s@&bJakiNA2s z4FOzIA%HP!1aJi-fUDI7aP5Eq#x)9{Bo1)1zW{F27r-4K1yB+bnA|0Rsa67*RxE&$ z_`r;10+@M20J9tgP!cP+TTuY_tP#N6UICQE4Hnc1V4=DI79|LvB!;lWLjd90G_lG zz@}mWo;vFwHaIc^PgAhOMhjE1@i}E|s(cKa&GW$K<=uGt!>M?NI*l!z$78FIdTbs0 z58JGnfM+gM$F{zIu${3iwtGJp+aH>S9o*ZoL+>)|7?_S7xfJX)<~DW;5MZY*71(J{ zD0a$zj-BF0VJB399sd?%$I5ruaYi$CsL{X70aYt$1+hJSjKY`mZAG3 za1+bS^2ah^VOVCvC@fQ$fo0mKV3}7gSay6Qmi4p8vYA;}w#x_0Deb~?bJk+H3JLx> z4atZ}&%k9l+-YySO=wM>1mc7!d~DS3>?Jz9?^n8{;Z$vWuWV(_Ht zy?FAjV5~n>g|+t(JYifop15xuo-)cF8?JD|#-e-J?Dt1J!!QwB+wH@)7XH{_)D`S> zc{+BDDZ|u|H)h?|V7S8@<9r+JzAX#SqHkf(`^DHBredGu+1NL~8~d%liv0~~>|d>e z{XYca*@{Zo|7|GtFWrp&$8y*&xCr|$%ELa6i?P?;m)O%)6MHO|#%>GWVPt5G*@lUj zmJP?QhB??teJ8fN?1ydq9q^39gV^l)Vr1n%SD^Ejqmf8C9<}80sOi!{bfOuf zV_`I^6U|45drza9x-wKV?KY}$D?~MaZ=+f!7S;V;ijGa1gX)ViP@{hqI_0S`(g(nf2P=UlB=)S6DM6ie zPUy1hMAQ=~hpvB2KzBxcL%pRIsQ&;$Ph}^gS6%h!{bL*S%{3qWzMF@o{3Q3?C3CFk zorabA#8_?RLaZt9#_DYgv3B_etmheur?mNFqxV0s`7?QJRq_MdskdM!k8mtxK4RvV z4@PlQuzUSq>{*+QeWEU5zdm~$pfv^0)jW;^d#~Z(WkxvUVm+Ss%>#%2^2K5Im2r4> zG>#a*6Gv?6#}N(IIHLX!j#&E|hkuR2;g-{InBE|scQzA;Nay3g@56Y`J~izBY%=zF z{2hB{FT`%I+c5Z@j493vJ6li3cC&wAtBJd@S?)7zcqAQ9TH=OvF7;vcn@M<7W*n9p zrqS214)kpG7IbHBGrHh#6E)BBL5JFfsPIAwN-x}j;<#@pyzD-5*NQ;4OO%kI_yii~ znTpiLd_|)s_9FR6V{bWK^P+k17oAp~FirqhtJO)TkMPPI+!ar-S3r8JiX8bl+*z95jGVHlIN! zMvX&9R@b0IqiIwwScLX%pM`QyJx7_hMJPq18f^mYXk~03S~&a(g}Q%3b1D}gKesc; zC$<&&T5m_cg>;b?bF3o5?hi>fb|qK4IJsO=zyy6hFu zU5(FZa7-HdFg_HGj6Q^Am)yjo4{yTSNl)>l%VyYUQxvwyJceifScsi2+GA??CWhrk z*uAX=dxc7#)5H&WwsjYtv+^hooLP*6k}u)l@D?0=3E<#s5=f1}!P4zGXz3;#cxwa) zF5Zd*?PuV?dF?pxZY~b0-im`8KjM&qhd5OA0}j*VaoA-VhpXPkVLjV$=+{O(FSP&% zC*Q<#|2X3SIf>2_0DCFOV)qH@7`(lVsm+Dh>FjT8TY3sxs_0;oUpw&B+2^pXYz)>M zJqnLrP>!X>+(YjpAbL=~99@|41D#mJq2e+Jlmf?~i0vzp{l|W!xqkl!JsmRikH4X%QL2M@r)HP-(@#!S@0MRlukzS@psY0Mp8v>YBVvV%2mf?%t>8@#nN6@Ha`r>JfJicBn@A!K_QEpk|kl9$tH z?;I&qJ5C9m+x!JxbL7yV@;vmdu?)+uU4>Peda>qI9X!#}92;5M;~A=Vuqd)?8Sb%A8GZ21uEt8y26KA();8(lEk){j|tGc5eP9y^DaVtbEA*t#GMPgfG) zX}jw1#Npjo%ew?Cr8i*#N1@k7(&*-@$EfAb22?h56Q%msqu{7r$TZL!{=?ny%&K{C z-Rnx@N*s*dba;pQHvwH<{TOdG=>fXqN5H#+9EK+#n1>aT7hu!6t z@Mvic%&PeUBX7-w)|4t#`MDN+TsZ)qHg5z!n{wc|wms0jq6?f6mqfzC9P*rvFc0I(Bq4`9Ot5e8!OT9sCKMq;eei$%A&8^E@SEC5AZ0*tyuM_ z9v<`JB-XZ)!Q=XlU|n`Io_OXu*543|4GM~|(Qh?uw#*h=to@EH_ord2CBL!dW>Y-9 zeit^GdP{PijKjKj_hGHNn^;}4ZYrXWSS5M`RvR3JwUl+SUgUpxn&x6W!(j;9KeodZ zm5pK7HSF#>4SQ6nVh{yqD9kj!+-K-1P=G{ze z+1P~5=Op84N3P;Y<#VvM^%$%iXOE>aKA<2G}YY> ze)ww$YZo-Z5T!3**l813d1fBFC-EX5zVMe=sUnj+v7f;%I_(ZL_f7>#S*oDJ#SqHn zPk|QKi{U({YM2tC1NVpbz{U!Bcu_Y5-g_7ZpIhyRAH*Z@dsQ_2h0NgZ1pxlKZw7~V zw8Eci#qfvJZ1_D_AAT3d!yoYv;LmhNIDB3Je+w4E5oKdIQoIO`m@R?7#@vJ7;`8CV zb&l`}Js#dzw;Hxh`vR*pO5x6QDLA)m8=UlL9(a7@5GYdh0Nxkh1Cve}fDWjGyfur! zU^@rR51xPt`Y++J^Y7sE34us+SQk0njYW%+?xGCY3UpA*5}mQ{K|NL7Xi3m~v^_u- zWm;RKJY`c1m5M=~9ge8I@CIrvwMA{;2T^C$40M0PZ1h&L zM@VgU#>yTH*2>hxdOJ2?{ayn+we~5V8d8Y$vz+k6Z#%Fq^AC^vcmnJArDE-vW~{9q ziM3v2Vy(DScr3jaYxEz(stOfYv0^8dYW|2mKZ`>HHX_vh)C8T`W`HU-L9`2*g8{a%@^umnF*^@sLX5z!Wi4#~xjZJYbgftp{}j7gRfwmb-6NJ(T*z1d z)gr^*U5wn#_pBgi8oM(@#JI4;Kr5L;PIm@@Z47h464ll zz2(86XQLhv&&~$tmiz%{uk8aoRRFG9SAoYX7l3cv52$c&H`IRn2AX_a3#r@t;k+sH zVf<2WnDzW5EZtrO>wLDuhJWU;u}TgeF;Ipj6~-`S!xBr z?2(tBJB*!}3Dcg8g#}wJVOc;ptPawIhqW@`;hSNwHa!v^eI5v#$6CWq-&**LsY41C z-N<0p8U$A#M$vi|DA_6k?cQdJ3irpOqNUm>_vUSs_Dd73(YcG}v}7RHh74pm*oUk< zdJ(l!ghIA!pv~81QEu3IR7H-WrlLB;Wz0kuf6qjhmBpxQ#S?VVA`0=@g{ZB=9<|)e zK&KZ~qUQQgbUOMMI&(V`wY*c7oY|kDX34#J;^i?^bL$x@8Sp?^m-|q{=f`MXO&fC2 z{DdY=%0x0|o8g_ZJ+M~yI^3$*31_zK1n(CA1KFwXfs&}6Wmit+wB*D1e48hH);4cm zPdthwpM69s47c-vx%K@0FD+tI{8~JJdbD`^>wIzYp(ycMA0qa+n=jTDUgmpN@8L5C zqWBfY`Fv6E9{ve&7f*5Q75mIG5=VdT5l6W|vE#eP{M)U|`0>l9GFn>&42ia26=-+X zykix+O1GbFzw`x6Y#$4D%!~!R-9jiAvJjdr@rAQw_rowheHbyT2l`4)hnA0(q2icf za4umw2>Ls~HYH}z844X@<8)tftY}EQd~u98$i+j9wnvNYPu>*kJetYp&;$99D1UWvYDmxD$c= zer^`;GUCNlZ);}HZC3&FgBF1s-4~##R~X!I%L-Ptu7;fvBKUalCVZXO4xa_d!E4#; zVf~kHFthm*oU^4InhpfP$-oWToi2hgf(Te_(G2?K%gf*4d6mZMcHu#vDg7$p?_^>#;~Na|%+vy$Y#yxgfQT;b?Sf7ZT)m z!e`|+uw(mTSYF%!1@5jedlW?s4t#be7=NyYf%E#ok9<7B zc;aLxDyNhgtKvrj)@|UM4!;na-O?4$m+}<5AG76C&uwDax9@@SPyvXiLqUDZ25?KN z0}MFs2X_rZz^Pg}kTSRyOz~OI<__LvtUP`ABDHA#gx?`vWt|HB7dtVUlUuKeZO=6~d$9aj|#f**?& zwKBw`BKM1B>MHq<6N>r!mFfJ=g%_DgcBJd#XG8kN|0v_E;2G{b(g68rnQ1oyq*mTbug#A4O!e2Uq zEg${CK5GkbQdbv<@0S4ai<96)5eBEui*5C9QnYI-7yZNeUBeM=6Na~uw*H}V`&$^ zRjZD7S-P3*Z-}LJGMCXWeu)@)2YdS3`%2pX`gKb2%SSHgU_9q-peh_FN}$cd2k9o~ zCPsE>DWjXK#i*+5(Jf=YP={`PB-7(LlK+z-v1ZEL=ultUVjzYN3G?J+!}56rx`9ve zYvpsa97x@WB166@vpZkRVqZn>0~4RB06V)BF!O^L=$Z)G=l;5ER*N|^@?wO(tviXN zS0YlB*vT2?-J~h=@ARf*J9^qTFKUzSLdwgakT#rx>ElV>^ye@Y`lGu#o&7qDYx8-` zt0k}C)8ZB~9_w3~ZArhFymJSc!kb^1jCbA4;@U?H80coa5<{7k7adGP%v$E!QfKDk z$Ob0;?P%I7rHYU2e#ZZJwNz~L;+{Bgl8rbjD^na2{Z9Ziy>eSBduo%8FNQxh7`Uq>ByXwZyu&+r(3T zrisnAM2d|EmBkvLL;2flH}i{q5=rR1GJ0Xd2+i+5LD$Fcr8j#Vrd{k0(vvJEQMae= z5h<*GOLUGjlK6dx$@URD5J|rsebO^?AIT#wtE&=L>#8 z+j@TXT%I@hPoE675pq1>A8FnsP5x^NBR{S$CciFrkRNOGcv*Tqua{-Yv!+w|m<$;{ z<;n#+gF*c991cCd4+n^|VscvgEBU@nboVM1!-Xl~CmS}}KWdt3D-;y*=(mzCYchvNZ0Yg{y+ zHBXL@%;tEdF<~TnxXN{TOaMK~qk|5vxkDF-4$;?#3mMHoWj>|)FQ2-02A^1RkB{px zmq0Y1(WS=MdCq*W~d3-GjV1lJI!~#2ZQlaW@Qu=@??NULS~i9R`vBD+oqc$wX6_{oR=kY5Woan~Fj>Bk3`GjS(xGlwU7Fei@5GkGJO zjJ3lcJxMo+9C+!+EB|!o<>iw}R&^P5PU9l|+OU9OWBxMhCXZ!y(D#@{HWADe+xPTd zt2)t}S=}W1#Y~cP`4TZ0yvA)gRmWv3))Uvq(PYo9GsI74JGH;GpYEP-$*7&~Vx%Ui z(DiSk>4+pTZT{s4HFAZb%pX4&t^Wk5QRNG0W5?t4wiOJ`e3BAYN>fDT+ha0Ue2mQP zyh^~L%^kC)_^G&wuwHpFHrBPoGKi zsnfsk$xd0^XTbt;a7_TYe_V%Ld0$16>rA*kw}jL_9U=AEbSY)OER86A%OpJq^ZA+Q zCh(ia2l0DU3;3N+`*@_3M~>wMQ`Lhhbk!R%U1qV3dSaEp4SOvmyMAmSO%FZE+q5~n zWz0!F;mbk3So0lUdhIQry7C!s^O?v1ftv&RykO5jdYBu)*Z6j5GR+77F zk4fKzVAAy_i<}rEBDszW z@!K(8!&SsXT83YZXG_jz{(Qdv3qC73m5*;q4&i)#Y^dy`YpI%CR`_z8t*c`AyS8~N zM!4A8iNsRnH;GwkMU<3es0s8I>dTee!ds5piJZJ2(bxX%vih))c6~lb12utb%E?>A zV91B4eE!GX>7Pw{lkV}!sTcT&no8z!w=dh@wH}0NegcIa^Fi_9dtgOM0FaZ~!Mf~z zPv>O~6ZaVhM8B_ICd%d;$fcqMP<}0y z(cHjk@w>U6(tq5+EL&lr<^gJW7NB**eW>L2bXq1clxAkD(!P^y=?TBhsKe6kR1{I8 z?nFJOL*%~GjY?|tH@9(&&ZG)P-(oi-Ti-~pm^PJoce(J>nkVyXJfrvxwa)qP$* zL6P*ko+7U@y~xe1d&Is&mR46Tq>mmep!cpzrjEb*Lv%jeCMRbs=Vg`d@}?aRdE6)D z12vcPbLuefY-Gkq-kn^u(B&;If8@9KCh(;jAM(|``}yK||M)F;Pw_7Q zqj^xh`jov%Bu&M@}|4@^M)=V(-V#ie4B7qXfpM7NRMHpfWg9(}UESMsa!?I+Z%DLRyCb{vs?lTY@0 zd6UMV0kZe)SW>V@K>pjF!|R+MLq>+bigugZ(0!FWJ?Y~H-Xi8AC*#w=9vx#2(iLpM z$Uqr1?P`b9rG-%XwkycGwSuj(?BO-{JmZ&zT%oru|I7$(ofUPSSV4+=9Yl*xInuQ; zKj^}*bs~$y)+A~052?01Kq}Y#M{3m~NlC5-vANsh(w*5#eeM22D|Eh~$oAdTQM8tq z-X2S8mGj9C+(>HQrtyM|DZF{}Dc(H%f4TugaHSru|MOf&YVwl zx^^wy8@ZSsDAl1WwlvY>`*Va7-`wK9>pmijLXMH(ob93~-I{ccjXR@BCo#@BJTq>M z6zvKvMIUuLnb@jNZ0vVM_I+V3&`0LdQC)Q3lvXLLXlqMtw_6Y^QlvBZ%`>QEamjjNYu1Eoik{1qI}Z+(sHW@DA9ysVfpq& z!mlGe)FwMDI%hUWY(AxsxzE3H*^NWgnH8DTuU8rr?RA06Jr_yb!w!+47u{6&^)UKk z)g@t(S`xqC&Vcup0N0 zI^})Lv|nerkAfKTuSS8$uDU}?+}#>1I^*kq;c{dqy%=uOK;& z;Uqe?f)tI_A|sQWdDCqxcr)eu?Nxa_+(2g`3Cv$cR-PurOl7htZI&x-+OAAzpRS@4 z6vL@j;|pX$nKT)`mC6Te+~(s7*78%Y)N<=>lIR0rcC>$vm>WuaPu8x^;I1`P2_J|l z;dpRERF*JJnC|wDv)ufclq~$rtC^YcWBG;Tj&e2GeM5^ZIWv~X>qQF7R;W|e85=}x zYYr0kx_{*OroW`WQjR=5xsL1`ZOe^a`kVSGx<#e+Yj8Ub*>W8xHgeC_OZ@scigYxJ zs09OinMwy8)?B=d4KlJ~EsXS-+>_em?64j$ot(-FRASiQ_d3D0;v&$bvJ|w&Ed{%J z)xfBvl}vAS3ZE3@#(VuV<-SE^auEYx$*H+$qpUbnk#)Td_D>PgDl&V1|Nt8|% z$*?fuPS`Y1ZY{=?)ZdewQJfQZiCA!D21jXYeRalS*G48|uN5=rowM0PXWq4`$SnQ;e%4O`3zgm=l-6%WXG zv!}$+aV;s`FhY*JnMY{72JYbtp3EKJOZN1BA@&Qdav>QLxUTVTBvgXmi?j<2_~ve1ac-f*c5LMTK-)bpFGBZ zdFUYvh0oI&hU*}ocP=HY zie;n5kSilwLH1oo7}ci&FYS8@KUojL>l2*dh9oO+V)uSl&e4j`&{{@+ThvXrC4J!4 z<&W~CH>_|yBJD)I`XVOgmF?v4sZS)~LIW`qT9Ym6mq}f3ABp&x*|z85R!aKF74CD| zQz9tvran$%>8$Bj$OC+ZSJ|FG97oAgUk>(@wCEdrf}en|`S6iHy!j=6d#Qm~mt)12 zoAvp@?NOX=P8k#bbS$G(7)H9BgZN1uNrZl5Mp>P)C5k`ylR15-xIi@@ZcCaa*-1Sk zE3TAMCw6b9Q}SA9m0P>0cq)Q6eB((^`(wy4x;KdZhc@oYL|ZQJ$T|}4w}z|~%@ke; z-A;SojHML1youHLYuv$a}-<(jlu)q;L)$ZIVzd85iRDgVmp5JwHh{}G#3~oD1iK!F`z@q0q|C0?j=4HzBMhTdQ0;H@)FXw)GC_~WW0 zEEXAq_a$H0E0IGCAG4gP|CmAzwhr-nD@GBi`Go2}=sxI2+XRyVlBi^oaFPdjobZ7UIaTat1zk@WAgB)e*|xr%=(+`shk z1iB@0dzQRxzd2w?Caj)J=3e^9{nffo%63jBU$3rZtfw4hV}>-?Yqu`2H(Ix|F&+wZ z-Rg;ajMp;y-kH1X3X4*pWmW+S<5j^obPMV|dIPnl^n&vbN`V>}%S%zs;t3`4e8`$b z%-}==_QG2O;OyK8mMMh+r1z73Xg`+K^vs|)zp^9#qn42r880$xN)KngZn>yIGn1%u z95>`)OF67sB1{OIK{V3DT>eK}s!t^AnyaWmoNM|xwRs8jc<~|bfYA+dFfW@sKK}~U z^VyAf=e;0>&4^C=cZq(xnIkcqf_U}zakST^a7L=ulvf&kp7-ScG2@nBCKpa`6EC|H z!(JSrAiZ)Me6oo`lj3{P*lr)#zI_YSz1a<%Pn=?#0}imBr6#1QZw`O(ww=qtt8Vnp z$$sRz;sMhChvSmxe;4_hCAaOaIo9#mdbXiNpRLc^&$_YSnfc#qIFM~Z z48NF=si9xFziJhtTZSxWe`U91Z}KCS_sv~9)=RnWn&M8(l`axZ=`A9`xoYlfrX1OB zX3WXeIZ#6z?hsQS0Z9$~Mo$&#(3{64lj5!Byf-R^N({E-^p?c)MaY?>=NJY96J^4f=HE2}8Pg>Z|%iW5jQOR-YlJh0f zXFrJ~hHs_5o|(qc8&$aH{^qo|?it}*39s|zAzC}{GoAl_lvp)#y8B9A9 z4M&RnkyY&zME575$&+PayG{?3HI-v!IAgJ;DNp=N1&H zoppgbDoo%^k|U|_<&Kn8?s{&hXbq+E?>;s7x0`6cjwA*~bLpV%eYEwg^(1S`60-D_ z6K#we+Oy}IkX{)h!iE;mXG7P~<|gO(kkfVix{nr2-LCnppbCjIJj%t(ec!>UXOT;R5&d9s%rb*SKG24$Z6@TikdaF1f8r$~e1@L1^kr3D@l-G-M| z(y-mYA6E5mhq;TLV4??5LE94?Kr=&vkwWX806S9fulsx5D zMC=f4Of2D2pBZxFA6ymLn(X9G9G=d3I8{;gBNalUXUatScZ#TWv@=CDjO8BHIdFH~ z#<{-th$GYS7!oqofF4(VfjT|-j_h9)PyH+T%#7-#$+co*e*T;gdT*&aeYN#9sejc= zyZ_rN_W3&~u6^tS$IzS6L~Mczqq9-nDU4$L!{MnRM{t1_Kz;ZBU~+;oTu19dt$|5k zxm-AH(Vi`iWG9j5uSb}i@5Q8`^9iq6)J&5NUexa3MZAL41?v1nAG$gBF}bsPG^t*k zPG2nXCGke{d86z&CRlnqpGEbE$I4s-m1Sx0(EYc_s7Z*{oY{tQUH71(PdrMELda@c zDl8ti1-MnOcC*cH{qKDusBIt!oiadB~su5kmMaio_QIIQ4KOZ}q# z$9R#r;l-rQV;)yBT}gEIY%h1dVk?)vW;ZuGELW&i+9UL+pUw5HOQy%AeWqvE&EsdO zMY9GEy}^%QPUY+*QVv#T>0X|!Yq&N!p5?4k~(1x$E~TLdqQfstnO;wF?1pA8Pvqsh9&b! z=STBf7Vc%9O|GIlq!Pu^ZX4-T`A6*ROE<)gMc$z9K`O-*kGiPB|R^Nm75Z zvj+vm$)TN_rP1yspHbHJ0<_`RS!Ax~4a+(M!NwKuSkuohz{NAekp3(MsTCVR_kn+G zqW)~L;_G$vZVxeIHeHi9KfjUGF${gWEW!1|*BYYPB1@Z6>eLI1uUyIMaxP=YgZnjP z!M$A>!0Dg3N`me`B-7K*3Ey}@^1d^d)!g?J?3pkGK~OrZaxQ?E(~rWw6${|&v%2u7 zo)UaHUL7``bc1WH(xLay5x8>OM3}6V2}2cJq124CfV%pD=_zUxJ$fj^RBmoyuFkAu z78@U;^De%mN>jg4d#|O?`W{i#UC}A7dSfZK?&&q^_U~>gJ#$!8OuJBpPP?hv&^cUu zToX6BDW5w1NRy)9+H%uhE)j{z1d+M#FW29%dZ?xLdfW`jS$9%kJ*BX~kJcY{<^G(0 zK~%hLB|0py(mT8;cZxI+Z}Y{$u5NMU4biK{DVtAZh_Z|cEDe+W8quTM|k?HHuQPg z0CwxWXEoOL@RP?6@?)`xxVcQGJ-#Ior-EeCxp0^kJW~>?Nz$G%7QGzL*3#>u=JMXk zncUi|TbRi~|HR5Jm)Ty^A-MKb2AVuP9c`KP4eid^i894~D9I-lEtB^^GgQ=}X!;uP zd&X2L`u8ZeAq3KfD!Q@BRc2Sx3Qjn+#x--A0(OrW7vMOoVz*dO#x3 zWyhCU@DU~9bmibC=GmbI?5KZb%-OCyMmOLXebyv_kvVme8GZH%o$EGQbfIlEcdz>z z7ifKrOIjGpt^IdZgcknb)+PSnO7;#@b!u1|~FZvGWH zGq1Q6EwMzUNu5iLJ4RK-j^`{t{2@6R9Cz7rG;REr;ueQfT_{bC9xwHf+C}01eCU1I3?jdFO#eWH73i#=mZH3kK~;_Je4SGu%nr z#6INQ)yqhuxSyK0?k_DR{K1?0I&x=%4v`7PrhJRzUl3Do0}n1biJV{GM46L6qJpQP zXqU`9l;j|(=NZUEZgX;wOjRCCZLtR*gC9V3&Jw1|UV~T(rzs|gszL>L)YgpGfZBxS8~I_=J{*DQ>|)f+g1R#x9h^-zp9;3hMWmlH(hhcXM_ymuJ3Xyc~)cr`kFu zE9L}~yhg}q9BQPahBi?RAuoj~d3!jsV;Y?4y(!$B(ZO7;O*LgmCea~fggj#6?qPa+W_oDt8NC(5JwxQ>kXM>>r3dFO7(cmS}^VXJ6s{pSS-{E%6s+ zA1qJrMHd>hCAq*ico1s9;!WkS&)_Ih9Ww!${62(?FL%Q4r$570lDdgSt~2=D>yWpr z4`igRrO4bhO{81*vuN{N(0*};E}6BUm4tTHQ|`*c)O>CZd5AN)j0?@AJ76x~df^91 zm752TKE92R;uMtg#2yt}oJG6)15n1qu_$H3Hx%nuj%+;@;J{KDI5&MC_*}Ren)P3T zLAe!hJYNm`G#IMkU@VU#)wv%Ur9`Z)%H8;Io$53`$?<=_bCGJxsDm>9g#B9C!smz9 z2;-8M5YL4>Noq=<=>7g$*P-*6toD$+)6#Y!sS7sZGylMKe#zW~bzxX{;PjWqg-* ziGN=#1{!*iu%&4yTJ3oNb;?1#fGVMQDXgdt+<<7x-Qk6*Rr8$~t z^Bfsw?2y#BCBQu+8$qMpIr`HBZT`STV|uSnAhAuBCYh*FxaWo{vAUB&R-AVsTKYcR z2l*vLbMYr~@pmpAVS1T%dKMsd6#W9)HoxJXmAz=@%xbi=(-`e7N<@2152CCAZIrF@ z8>Rl;k0O24kq+Gn_be#^Err$~?Xe>ey^R8Sl}@a9ZW3)*#gmN3axMCsxZ(B3h=K7cqOFTa((f8_W9A%^GyXj%6vvVo>z?phd*|~`M#G{cki=YF zxSkEQ-OHwszpRJcV^)2s3tMcG53K5sfgE{ba2Q8}{0l0;=cs&^qH{r{Y;_)%VAJ7_bao=7=TEPu zlPxUi%uRTv|lsZ+=Lfi-lZuzn$n) z(nC6YvWBQB{wXO6NTbZ%6R7y5$4RkEIaM1tKu3Fg|x9A6jTiS`#YPEJC7lJ?OZ~60{^(6TXUE2Dc6V zf*CKS!(%&KVSCg9c(=<837#k;m7}?EB=RM!4Pv22u^0O-^%6lga7pkPfXY*Up2PP zvXcFECJQW$4F|8xYM{-`Z0Hob1q|EX2VP4Ku=7_turik3lG@$v%*o$B8DZ5m+95NU zTTm?!w(e3C@i#wnh4Nx*?=5rcUrY;CVR4eGU(_s`Chx^@8zNmxG#XqkM;mZm8Uj&a zWgg{0Ig6BczZR`2wBd}}ez?XojG+zV4si|(c9G)U$yDpoVLH7`lPp7HiM!NV>fZgS zBr?g4i#R`%e!DJ|D|r_|4yHY)7UU)J(@X@yf8tWc|BInGC0Lf_-rR!u%kLnUtCcA2 z=O46njwLddzW^(p$3iXe0_weZ4Oh;JguCN6!M)|bV0Bjk?2!2cA1&SsA1{~!PdXMr z{LvPqeS5)bhEKFWHLiah5Xf}BhO zDCu++Gl~x6s+~6dt;?H-dKbvkXHDdl;xv9z^iwj!U4f_%JSE%yZ4hpMb*cTe%wn## zxS2Y7dvjaSPz`1N%7E5rpUj&a+0EM)*RbZ2_p{R29N_ZNV9_Ztm_P0m0DlhykT?M1 zzNLel2^wI*zF79o`7CzDhCje2b{u$A8V}u;Vwf}h7gn_^!JNSB(Bj=)kh6zl59j}2 z&A04hm5)qda?=~>wNlmGjWI~{@_7lhcWoWFUiT~aW=D!}f6FN0<-j&k*z^6=mIs}} z2g?*W?SNQHdHyJo$Cy3bf!Q%sF|&-)QSlzbwsE*tFkQ&*B>5V}*D2wupW> zY!%9U4W%|dI!2tsb`rxQHnc%rDOGQ1han|HDAUU!Vo?)|*b>9@k=iiVEe1!Pb%Xb@hHy%F0(3h!8iuQN z!{rLjFzLZlSQO9(Ydj9Z0@p$4EIk+Gjf`PE-mD`7LowW=s0eC8e>ACf+(Q;Oz2=e+ zoFhH^Vu_B5D;*kffY%@8PwE6_WOcV4lkqtiEL^S&-Ae93vC$VKxM+iva4OR7^hPd` zp(tVA5>zaE36VQ_ zKEfI6%;nfP8;*{eDO$Ebn_Iu-EO&IcR5attT+aCEJFaFZPk3rv1s5c|L)`BPs2mT5 zj!%-}eqAaeVHfo2$G$Db-9ZK4Sl61?#-d1{qJ*%-#2rueh-QD%q-G6JcbB1 zxpp@aUe+P@ zM$~oQmxKlqKafL6`~jgy^CP3kUP6u8T@Wym4GpJ`LbvB(c%xMfzdV0pJ?}mEKo7=o zivn>9_Zpx4a~4aT>j9%vnM}xt~=+UiU6yI?ena}@( z0)JYdACa{%ug(+nQon&@_)>H$croH@*&w5W6m&D`8q7>v3hNL1!n(9SFgwTs3F1DW zsa6q;R&xfO5$#PMZuj7AH0mY^OU*5#BKPxzyAYdynCqf(UnRYKAvB39`ua=iKxG3A$$tD-wvcUqGfb5WqbMy}-yKQ)r>T7AK~u6&~8wLnm& z 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 literal 0 HcmV?d00001 From f56e8d79a6cb5ec6ba69a50056e8cc349c20f4f6 Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Fri, 21 May 2021 13:14:37 +0100 Subject: [PATCH 218/304] Update begginers_guide.rst Added info about native file browsers on linux/macOS when viewing/transferring files. --- docs/source/begginers_guide.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/begginers_guide.rst b/docs/source/begginers_guide.rst index d7b07296d..98af6a8a9 100644 --- a/docs/source/begginers_guide.rst +++ b/docs/source/begginers_guide.rst @@ -110,7 +110,7 @@ Transferring Files (SFTP/SCP) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Now you have made plots – or indeed any file you want to transfer between the computer you have SSH’d into and your own – you will need a way of transferring them. There are several ways of doing this. -*SFTP (SSH File Transfer Protocol)* is one, it will work on all operating systems and is the easiest for windows. One way of using SFTP is with an *SFTP client*, many are available. One of them is `Cyberduck `_. It will require setting up but it is fairly straight forward. These clients tend to have a GUI so you can just drag and drop the files you want to transfer. +*SFTP (SSH File Transfer Protocol)* is one, it will work on all operating systems and is the easiest for windows. One way of using SFTP is with an *SFTP client*, many are available. One of them is `Cyberduck `_. It will require setting up but it is fairly straight forward. These clients tend to have a GUI so you can just drag and drop the files you want to transfer. It is also possible to view and transfer files using the native file browser if you're using Linux or macOS, using their built-in functions to connect via SFTP. Other option is to use a command line function, for example ``scp``. This is a secure file copy protol, which uses SSH. The usage is simple, for example on the computer you want to transfer the file to, type: From dcf2af38be7a1606ee972c78528e12ebd6d781f9 Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Fri, 21 May 2021 13:50:12 +0100 Subject: [PATCH 219/304] Update begginers_guide.rst Added links in the document to the relevant sections. e.g. see Conda in Advanced. --- docs/source/begginers_guide.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/source/begginers_guide.rst b/docs/source/begginers_guide.rst index 98af6a8a9..039d4faf6 100644 --- a/docs/source/begginers_guide.rst +++ b/docs/source/begginers_guide.rst @@ -36,19 +36,19 @@ If you are an apple/linux user, you can just open the terminal app on your lapto Python (namelists) ^^^^^^^^^^^^^^^^^^ -Isca is configured using *python* scripts, although the actual model is coded in *FORTRAN* (see 'Advanced'). `Python `_ is a powerful high-level programming language, similar to Matlab – but far better. +Isca is configured using *python* scripts, although the actual model is coded in *FORTRAN* (see :ref:`FORTRAN` in Advanced). `Python `_ is a powerful high-level programming language, similar to Matlab – but far better. At this stage you don’t need to be able to code in python, as Isca has prewritten scripts called *test cases* which you can just edit in order to change the model set up. Editing will require changing one or more *namelists*. The namelists are actually part of the FORTRAN code but we use *python packages* to pass these variables between the python script and the FORTRAN model. For example say that in the model the value for the CO2 concentration was 300, and you wanted to make it 600, all you would need to do is change: -``'co2_conc' : 300.`` to ``'co2_conc' : 600.`` in your text editor (see below). +``'co2_conc' : 300.`` to ``'co2_conc' : 600.`` in your text editor (see :ref:`below`). -If you haven’t used python before and want to become more familiar, there are hundreds of tutorials (e.g. `here `_) and videos. To practise you can use a *python notebook* on something like `Colab `_, or download software like `Anaconda `_. Python is comprised of the basic python *packages* and then additional *libraries* you have to install and *import*. In the future it may be useful to have python *environments* (see 'Conda' in 'Intermediate'). +If you haven’t used python before and want to become more familiar, there are hundreds of tutorials (e.g. `here `_) and videos. To practise you can use a *python notebook* on something like `Colab `_, or download software like `Anaconda `_. Python is comprised of the basic python *packages* and then additional *libraries* you have to install and *import*. In the future it may be useful to have python *environments* (see :ref:`Conda` in Intermediate). Text Editors ^^^^^^^^^^^^ -You will need to be able to edit text based files, this includes code files like python and other scripts relevant to scientific computing (see 'shell'/'bash' in 'Advanced'). +You will need to be able to edit text based files, this includes code files like python and other scripts relevant to scientific computing (see :ref:`shell/bash` in Advanced). Every unix server will have *vim*, which is a powerful text editor, but it does take some getting used to. For example, unlike in 'MS Word' or editors with *GUIs*, you cannot click to place your cursor in vim. You can try out this `tutorial `_. Note: I have found that you can usually also use the `up/down/left/right` keys to navigate the text, not just `h/j/k/l` as is stated here. You can practise freely using terminal (Mac/Linux) or the unix `emulator `_. @@ -63,7 +63,7 @@ This opens a new text file in vim. You can edit an existing file in exactly the vim is not the only option! *emacs* is a similar editor which is guaranteed to be installed. emacs is opened in the same way as vim. -Perhaps a better option is *gedit*. This is a simple text editor with a GUI which is usually installed on servers (it is on the GV machines). **This is what I would recommend using as a beginner, if available**. It’s a little clunky but more intuitive to use then the previous options. It is opened exactly the same as vim/emacs. In some cases you may need to set up *X11 forwarding* (see 'Intermediate'). +Perhaps a better option is *gedit*. This is a simple text editor with a GUI which is usually installed on servers (it is on the GV machines). **This is what I would recommend using as a beginner, if available**. It’s a little clunky but more intuitive to use then the previous options. It is opened exactly the same as vim/emacs. In some cases you may need to set up *X11 forwarding* (see :ref:`X11 forwarding` in Intermediate). As you get more comfortable with this scientific computing, you will likely find that you prefer a different text editor with a GUI which is far more user friendly. However, it will require a bit of setting up. Talk to your supervisor/research group about what they use and how they got it to work. @@ -137,7 +137,7 @@ Supercomputers ^^^^^^^^^^^^^^ You may be able to run Isca on a supercomputer, for example at Exeter we have *ISCA HPC (High Performance Computer)* - the same name get’s confusing. Your supervisor will help get you set up on this as they are a little more complicated, although usually faster. -When you login to a supercomputer you are in fact logging in to a small *login node* which is not designed to run code. It is designed to allow you to submit your job to a *queue* which will then be run on the main computer (see 'Slurm' below). Here is some `documentation for ISCA HPC `_, see the ISCA User Guide. +When you login to a supercomputer you are in fact logging in to a small *login node* which is not designed to run code. It is designed to allow you to submit your job to a *queue* which will then be run on the main computer (see :ref:`Slurm` below). Here is some `documentation for ISCA HPC `_, see the ISCA User Guide. Slurm ^^^^^ @@ -147,11 +147,11 @@ FORTRAN ^^^^^^^ The actual Isca model is written in a coding language called *FORTRAN.90*. Therefor if you intend on modifying the source code, you’ll need to know a little FORTRAN. It is incredibly fast, but it has to be *compiled* before use (it is a *low level* language) and is slightly different from *high level* code. For example, you have to define variables before you can use them. There are plenty of FORTRAN tutorials around, e.g. `here `_, however you will probably learn as you go by modifying the Isca code. -Shell scripts +Shell Scripts ^^^^^^^^^^^^^ A *shell script* (``scriptname.sh``) is a useful tool if you have a series of command lines you have to write, especially if you do it often. For example, I have a shell script that transfers data from one server to another. The `example file `_ to submit a job to ISCA HPC is also a shell script. See `here `_ for more details or google. -.bashrc script (aliases) +.bashrc Script (aliases) ^^^^^^^^^^^^^^^^^^^^^^^^ One particular shell script is your ``.bashrc`` script, see `here `_. Your supervisor will set this up for you, as some Isca file locations need to be included in it. One very useful thing that you can set up in this script is *aliases*. This is where a text string is assigned to a command. From f4f0bf3ec1bd4104633060eac71fe64853bed1d3 Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Fri, 21 May 2021 13:55:46 +0100 Subject: [PATCH 220/304] Update conf.py This is to enable the internal links on the pages. --- docs/source/conf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/conf.py b/docs/source/conf.py index 7f0c43201..86fdfbedc 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -51,6 +51,7 @@ "sphinx.ext.viewcode", "sphinx.ext.napoleon", "nbsphinx", + "sphinx.ext.autosectionlabel" ] napoleon_numpy_docstring = True napoleon_include_init_with_doc = False From 15f9b25f5b9f76b5afe12ffe20ed4fec0b80cc03 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 11 Jun 2021 08:03:38 +0100 Subject: [PATCH 221/304] Changes to code folling the review by Qun. Should not change the science of the schemes. --- src/atmos_param/cloud_simple/cloud_simple.F90 | 117 ++++++++------- .../rrtm_radiation/rrtm_radiation.f90 | 2 +- .../socrates/interface/set_dimen.F90 | 11 +- .../driver/solo/idealized_moist_phys.F90 | 142 +++++++++--------- 4 files changed, 142 insertions(+), 130 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index 347438f02..e1eaffbbe 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -1,12 +1,8 @@ module cloud_simple_mod -#ifdef INTERNAL_FILE_NML - use mpp_mod, only: input_nml_file -#else - use fms_mod, only: open_namelist_file, close_file -#endif - - use fms_mod, only: stdlog, FATAL, WARNING, error_mesg + use fms_mod, only: stdlog, FATAL, WARNING, error_mesg, & + open_namelist_file, close_file, close_file, & + check_nml_error, mpp_pe use time_manager_mod, only: time_type use sat_vapor_pres_mod, only: compute_qs use constants_mod, only: KELVIN @@ -15,24 +11,32 @@ module cloud_simple_mod implicit none + character(len=128) :: version='$Id: cloud_simple.F90,v 1.0 2021/05/11$' + character(len=128) :: tag='Simple cloud scheme' + logical :: do_init = .true. ! update to false after init has been run real :: cca_lower_limit = 0.0 ! simple convective cloud fraction min ! the default is zero. Not being used but ! could be adapted in future. - ! There were two testing schenarios developed for the sppookie-2 project. - ! The first was implemented but not tested very much. The second protocol is - ! what was used for that project and what has been more tested in Isca. + ! There are two testing scenarios developed for SPOOKIE-2 project. Which + ! is why this code was created. The first was implemented and found not to + ! work very well in other models. It has been implemented her for curiousity + ! testing but not tested very much yet. The second protocol is what was used + ! for the SPOOKIE-2 runs and has been more widely tested. For this reason, + ! the default spookie_protocol is 2. The 1st protocol could be removed in + ! time (once the SPOOKIE-2 project is complete, but is left in the code for + ! now in case it is needed. - integer :: spookie_protocol = 2 + integer :: spookie_protocol = 2 ! default is 2 - ! Critical RH (fraction) values - spookie-2 protocol version 1 + ! Critical RH (fraction) values - SPOOKIE-2 protocol version 1 real :: rhc_sfc = 1.0 real :: rhc_base = 0.7 real :: rhc_top = 0.3 - ! Critical RH (fraction) values - spookie-2 protocol version 2 + ! Critical RH (fraction) values - SPOOKIE-2 protocol version 2 ! initial values for RH. Updated in calc_rh_min_max real :: rh_min_sfc = 1.0 real :: rh_min_base = 0.8 @@ -46,7 +50,8 @@ module cloud_simple_mod real :: p_base = 70000. real :: p_top = 20000. - namelist /cloud_simple_nml/ cca_lower_limit, rhc_sfc, rhc_base, rhc_top, & + namelist /cloud_simple_nml/ cca_lower_limit, spookie_protocol, & + rhc_sfc, rhc_base, rhc_top, & rh_min_top, rh_min_sfc, rh_min_base, & rh_max_top, rh_max_sfc, rh_max_base @@ -65,20 +70,22 @@ subroutine cloud_simple_init (axes, Time) type(time_type), intent(in) :: Time integer, intent(in), dimension(4) :: axes - integer :: io, stdlog_unit + integer :: io, ierr, unit + unit = open_file ('input.nml', action='read') + ierr=1 + do while (ierr /= 0) + read (unit, nml=cloud_simple_nml, iostat=io, end=10) + ierr = check_nml_error (io, 'cloud_simple_nml') + enddo + 10 call close_file (unit) -#ifdef INTERNAL_FILE_NML - read (input_nml_file, nml=cloud_simple_nml, iostat=io) -#else - if ( file_exist('input.nml') ) then - nml_unit = open_namelist_file() - read (nml_unit, cloud_simple_nml, iostat=io) - call close_file(nml_unit) - endif -#endif - stdlog_unit = stdlog() - write(stdlog_unit, cloud_simple_nml) + unit = open_file (file='logfile.out', action='append') + if ( mpp_pe() == 0 ) then + write (unit,'(/,80("="),/(a))') trim(version), trim(tag) + write (unit,nml=cloud_simple_nml) + endif + call close_file(unit) !register diagnostics id_cf = & @@ -141,8 +148,6 @@ subroutine cloud_simple(p_half, p_full, Time, & integer :: i, j, k, k_surf - logical :: es_over_liq_and_ice - !check initiation has been done if (do_init) call error_mesg ('cloud_simple', & 'cloud_simple_init has not been called.', FATAL) @@ -153,9 +158,11 @@ subroutine cloud_simple(p_half, p_full, Time, & k_surf = size(temp, 3) !set the location of the lowest model level - do i=1, size(temp, 1) + + ! For future revisions, consider rewriting to remove the loops. + do k=1, size(temp, 3) do j=1, size(temp, 2) - do k=1, size(temp, 3) + do i=1, size(temp, 1) ! calculate the liquid fraction call calc_liq_frac(temp(i,j,k), frac_liq(i,j,k)) @@ -165,25 +172,29 @@ subroutine cloud_simple(p_half, p_full, Time, & if (spookie_protocol .eq. 1) then ! calculate the critical RH - call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), simple_rhcrit(i,j,k)) + call calc_rhcrit(p_full(i,j,k), p_full(i,j,k_surf), & + simple_rhcrit(i,j,k)) else ! calculate the min and max RH - call calc_rh_min_max(p_full(i,j,k), p_full(i,j,k_surf),rh_min(i,j,k), rh_max(i,j,k)) + call calc_rh_min_max(p_full(i,j,k), p_full(i,j,k_surf), & + rh_min(i,j,k), rh_max(i,j,k)) endif ! calculate the cloud fraction - call calc_cf(q_hum(i,j,k), qs(i,j,k), cf(i,j,k), cca(i,j,k), rh_in_cf(i,j,k), & - simple_rhcrit = simple_rhcrit(i,j,k), & + call calc_cf(q_hum(i,j,k), qs(i,j,k), cf(i,j,k), cca(i,j,k), + rh_in_cf(i,j,k), simple_rhcrit = simple_rhcrit(i,j,k), & rh_min = rh_min(i,j,k), rh_max = rh_max(i,j,k) ) ! calculate the specific humidity of cloud liquid - call calc_mixing_ratio(p_full(i,j,k), cf(i,j,k), temp(i,j,k), qcl_rad(i,j,k) ) + call calc_mixing_ratio(p_full(i,j,k), cf(i,j,k), temp(i,j,k), + qcl_rad(i,j,k) ) end do end do end do !save some diagnotics - call output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, rh_min, Time ) + call output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, & + simple_rhcrit, rh_min, Time ) end subroutine cloud_simple @@ -203,7 +214,6 @@ subroutine calc_liq_frac(temp, frac_liq) frac_liq = 1.0 - (KELVIN-temp) / 40.0 end if - end subroutine calc_liq_frac subroutine calc_reff(frac_liq, reff_rad) @@ -224,14 +234,14 @@ subroutine calc_rhcrit(p_full, p_surf, simple_rhcrit) real, intent(out) :: simple_rhcrit ! Calculate RHcrit as function of pressure - if (p_full > p_base ) then + if (p_full > p_base) then - simple_rhcrit = rhc_sfc - ( rhc_sfc - rhc_base ) * & - ( p_surf - p_full ) / ( p_surf - p_base ) + simple_rhcrit = rhc_sfc - (rhc_sfc - rhc_base) * & + (p_surf - p_full) / (p_surf - p_base) - else if ( p_full > p_top ) then + else if (p_full > p_top) then - simple_rhcrit = rhc_base - ( rhc_base - rhc_top ) * & + simple_rhcrit = rhc_base - (rhc_base - rhc_top) * & (p_base - p_full) / (p_base - p_top) else @@ -271,7 +281,6 @@ subroutine calc_rh_min_max(p_full, p_surf, rh_min, rh_max) rh_max = rh_max_top endif - end subroutine calc_rh_min_max subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) @@ -284,16 +293,15 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) real, intent(out) :: cf, rh, cca ! The environment RH - rh = q_hum/qsat + rh = q_hum / qsat if (spookie_protocol .eq. 1) then - cf = (rh - simple_rhcrit ) / ( 1.0 - simple_rhcrit ) - + cf = (rh - simple_rhcrit ) / (1.0 - simple_rhcrit) else - cf = (rh - rh_min ) / ( rh_max - rh_min ) + cf = (rh - rh_min) / (rh_max - rh_min) end if - cf = MAX( 0.0, MIN( 1.0, cf)) + cf = MAX(0.0, MIN( 1.0, cf)) ! include simple convective cloud fraction where present ! This is currently not being used and array are zeros as @@ -304,7 +312,6 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) ! cf = MAX( cca_lower_limit, cf ) !end if - end subroutine calc_cf subroutine calc_mixing_ratio(p_full, cf, temp, qcl_rad) @@ -321,7 +328,7 @@ subroutine calc_mixing_ratio(p_full, cf, temp, qcl_rad) ! bounded between: ! 1 g/kg at 1000hpa ! 3e-4 g/kg at 200 hpa - in_cloud_qcl = 3.0e-4 + (1.0-3.0e-4)*(p_full-p_top)/80000.0 + in_cloud_qcl = 3.0e-4 + (1.0 - 3.0e-4) * (p_full - p_top) / 80000.0 in_cloud_qcl = MAX ( 0.0, in_cloud_qcl) ! in g/kg ELSE ! temperatue dependent in_cloud_qcl @@ -329,16 +336,18 @@ subroutine calc_mixing_ratio(p_full, cf, temp, qcl_rad) ! 3e-4 g/kg at 220 K ! 0.2 g/kg at 280K in_cloud_qcl = MIN(0.2, 0.2 * ( temp - 220. ) / ( 280. - 220. )) - in_cloud_qcl = MAX (3.0e-4, in_cloud_qcl) ! in g/kg + in_cloud_qcl = MAX(3.0e-4, in_cloud_qcl) ! in g/kg ENDIF - qcl_rad = cf * in_cloud_qcl/1000. ! convert to kg/kg + qcl_rad = cf * in_cloud_qcl / 1000. ! convert to kg/kg end subroutine calc_mixing_ratio - subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, simple_rhcrit, rh_min, Time) + subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, & + simple_rhcrit, rh_min, Time) - real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, rh_in_cf + real, intent(in), dimension(:,:,:) :: cf, reff_rad, frac_liq, qcl_rad, & + rh_in_cf real, intent(in), dimension(:,:,:), optional :: simple_rhcrit, rh_min type(time_type) , intent(in) :: Time diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index 0f58a75ca..cc8278a50 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -859,7 +859,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & liqflglw = 1 !Sets liquid water radii to be used rather than being inactive (zero is inactive) cldfr = reshape( cf_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) !already in microns - reice = 10*ones(pt1,:,:) !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros + reice = zeros(pt1,:,:) !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros else pt1 = 1 pt2 = 1 diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index 01d9aca75..da18d8473 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -62,15 +62,10 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & dimen%nd_subcol_req = cld_subcol_req dimen%id_cloud_top = dimen%nd_layer + 1 - n_cloud_layer !ie TOA -IF (control%l_cloud) THEN - ! this gives the allocate the full column for radiation - ! rather than the layers over which cloud is present - dimen%nd_layer_clr = dimen%nd_layer - -ELSE - dimen%nd_layer_clr = dimen%nd_layer -END IF +! this gives the allocate the full column for radiation +! rather than the layers over which cloud is present +dimen%nd_layer_clr = dimen%nd_layer ! Aerosol dimen%nd_aerosol_mode = MAX(1,n_aer_mode) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 3bb6d7eed..f41c44c9d 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -203,12 +203,12 @@ module idealized_moist_phys_mod albedo, & ! albedo now defined in mixed_layer_init coszen, & ! make sure this is ready for assignment in run_rrtmg pbltop, & ! used as an input to damping_driver, outputted from vert_turb_driver - ex_del_m, & ! used for 10m winds and 2m temp - ex_del_h, & ! used for 10m winds and 2m temp - ex_del_q, & ! used for 10m winds and 2m temp - temp_2m, & ! used for 10m winds and 2m temp - u_10m, & ! used for 10m winds and 2m temp - v_10m, & ! used for 10m winds and 2m temp + ex_del_m, & ! used for 10m winds and 2m temp + ex_del_h, & ! used for 10m winds and 2m temp + ex_del_q, & ! used for 10m winds and 2m temp + temp_2m, & ! used for 10m winds and 2m temp + u_10m, & ! used for 10m winds and 2m temp + v_10m, & ! used for 10m winds and 2m temp q_2m, & ! used for 2m specific humidity rh_2m ! used for 2m relative humidity @@ -273,15 +273,15 @@ module idealized_moist_phys_mod id_bucket_depth_conv, & ! bucket depth variation induced by convection id_bucket_depth_cond, & ! bucket depth variation induced by condensation id_bucket_depth_lh, & ! bucket depth variation induced by LH - id_rh, & ! Relative humidity + id_rh, & ! Relative humidity id_diss_heat_ray,& ! Heat dissipated by rayleigh bottom drag if gp_surface=.True. id_z_tg, & ! Relative humidity id_cape, & - id_cin, & + id_cin, & id_flux_u, & ! surface flux of zonal mom. id_flux_v, & ! surface flux of meridional mom. id_temp_2m, & ! used for 10m winds and 2m temp - id_u_10m, & ! used for 10m winds and 2m temp + id_u_10m, & ! used for 10m winds and 2m temp id_v_10m, & ! used for 10m winds and 2m temp id_q_2m, & ! used for 2m specific humidity id_rh_2m ! used for 2m relative humidity @@ -292,11 +292,11 @@ module idealized_moist_phys_mod real, allocatable, dimension(:,:) :: capeflag !s Added for Betts Miller scheme (rather than the simplified Betts Miller scheme). type(surf_diff_type) :: Tri_surf ! used by gcm_vert_diff - -!s initialise constants ready to be used in rh_calc + +!s initialise constants ready to be used in rh_calc real :: d622 = 0. real :: d378 = 0. - + logical :: used, doing_edt, doing_entrain, do_strat integer, dimension(4) :: axes integer :: is, ie, js, je, num_levels, nsphum, dt_integer @@ -432,8 +432,8 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l allocate(rad_lat (is:ie, js:je)); rad_lat = rad_lat_2d allocate(rad_lon (is:ie, js:je)); rad_lon = rad_lon_2d -allocate (dt_bucket (is:ie, js:je)); dt_bucket = 0.0 -allocate (filt (is:ie, js:je)); filt = 0.0 +allocate(dt_bucket (is:ie, js:je)); dt_bucket = 0.0 +allocate(filt (is:ie, js:je)); filt = 0.0 allocate(bucket_depth (is:ie, js:je, num_time_levels)); bucket_depth = init_bucket_depth allocate(depth_change_lh(is:ie, js:je)) allocate(depth_change_cond(is:ie, js:je)) @@ -530,41 +530,41 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l !s read in land nc file !s adapted from spectral_init_cond.F90 - if(file_exist(trim(land_file_name))) then - call mpp_get_global_domain(grid_domain, xsize=global_num_lon, ysize=global_num_lat) - call field_size(trim(land_file_name), trim(land_field_name), siz) - if ( siz(1) == global_num_lon .or. siz(2) == global_num_lat ) then - call read_data(trim(land_file_name), trim(land_field_name), land_ones, grid_domain) - !s write something to screen to let the user know what's happening. - else - write(ctmp1(1: 4),'(i4)') siz(1) - write(ctmp1(9:12),'(i4)') siz(2) - write(ctmp2(1: 4),'(i4)') global_num_lon - write(ctmp2(9:12),'(i4)') global_num_lat - call error_mesg ('idealized_moist_phys','Land file contains data on a '// & - ctmp1//' grid, but atmos model grid is '//ctmp2, FATAL) - endif - else - call error_mesg('idealized_moist_phys','land_option="'//trim(land_option)//'"'// & - ' but '//trim(land_file_name)//' does not exist', FATAL) - endif - - !s convert data in land nc file to land logical array - where(land_ones > 0.) land = .true. + if(file_exist(trim(land_file_name))) then + call mpp_get_global_domain(grid_domain, xsize=global_num_lon, ysize=global_num_lat) + call field_size(trim(land_file_name), trim(land_field_name), siz) + if ( siz(1) == global_num_lon .or. siz(2) == global_num_lat ) then + call read_data(trim(land_file_name), trim(land_field_name), land_ones, grid_domain) + !s write something to screen to let the user know what's happening. + else + write(ctmp1(1: 4),'(i4)') siz(1) + write(ctmp1(9:12),'(i4)') siz(2) + write(ctmp2(1: 4),'(i4)') global_num_lon + write(ctmp2(9:12),'(i4)') global_num_lat + call error_mesg ('idealized_moist_phys','Land file contains data on a '// & + ctmp1//' grid, but atmos model grid is '//ctmp2, FATAL) + endif + else + call error_mesg('idealized_moist_phys','land_option="'//trim(land_option)//'"'// & + ' but '//trim(land_file_name)//' does not exist', FATAL) + endif + + !s convert data in land nc file to land logical array + where(land_ones > 0.) land = .true. elseif(trim(land_option) .eq. 'zsurf')then - !s wherever zsurf is greater than some threshold height then make land = .true. - where ( z_surf > 10. ) land = .true. + !s wherever zsurf is greater than some threshold height then make land = .true. + where ( z_surf > 10. ) land = .true. endif !option to alter surface roughness length over land if(trim(land_option) .eq. 'input') then - where(land) - rough_mom = land_roughness_prefactor * rough_mom - rough_heat = land_roughness_prefactor * rough_heat - rough_moist = land_roughness_prefactor * rough_moist - end where + where(land) + rough_mom = land_roughness_prefactor * rough_mom + rough_heat = land_roughness_prefactor * rough_heat + rough_moist = land_roughness_prefactor * rough_moist + end where endif @@ -586,11 +586,12 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l ! initialize damping_driver_mod. if(do_damping) then call pressure_variables(p_half_1d,ln_p_half_1d,pref(1:num_levels),ln_p_full_1d,PSTD_MKS) - pref(num_levels+1) = PSTD_MKS - call damping_driver_init (rad_lonb_2d(:,1),rad_latb_2d(1,:), pref(:), get_axis_id(), Time, & -!note that in the original this is pref(:,1), which is the full model pressure levels and -!the surface pressure at the bottom. There is pref(:2) in this version with 81060 as surface pressure?? - sgsmtn) + pref(num_levels+1) = PSTD_MKS + call damping_driver_init(rad_lonb_2d(:,1),rad_latb_2d(1,:), pref(:), get_axis_id(), Time, & + sgsmtn) + !note that in the original this is pref(:,1), which is the full model pressure levels and + !the surface pressure at the bottom. There is pref(:2) in this version with 81060 as + !surface pressure?? endif @@ -772,7 +773,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l endif id_rh = register_diag_field ( mod_name, 'rh', & - axes(1:3), Time, 'relative humidity', 'percent') + axes(1:3), Time, 'relative humidity', 'percent') end subroutine idealized_moist_phys_init !================================================================================================================================= @@ -956,7 +957,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! Call the simple cloud scheme in line with SPOOKIE-2 requirements ! Using start of time step variables -! using soecific humidity NOT mixing ratios +! using specific humidity NOT mixing ratios ! initialise outs to zero @@ -1049,15 +1050,15 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg dedq_atm(:,:), & dtaudu_atm(:,:), & dtaudv_atm(:,:), & - ex_del_m(:,:), & - ex_del_h(:,:), & - ex_del_q(:,:), & - temp_2m(:,:), & - u_10m(:,:), & - v_10m(:,:), & + ex_del_m(:,:), & + ex_del_h(:,:), & + ex_del_q(:,:), & + temp_2m(:,:), & + u_10m(:,:), & + v_10m(:,:), & q_2m(:,:), & rh_2m(:,:), & - delta_t, & + delta_t, & land(:,:), & .not.land(:,:), & avail(:,:) ) @@ -1090,7 +1091,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg #else if(do_rrtm_radiation) then !need t at half grid - tg_interp=tg(:,:,:,previous) + tg_interp=tg(:,:,:,previous) call interp_temp(z_full(:,:,:,current),z_half(:,:,:,current),tg_interp, Time) call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current), & albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:), & @@ -1108,30 +1109,37 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! Socrates interface if(do_cloud_simple) then - reff_rad = 1.e-6 * reff_rad ! Simple cloud scheme outputs radii in microns. Socrates expects it in metres. + ! Simple cloud scheme outputs radii in microns, but Socrates expects + ! it in metres so convert it. + reff_rad = 1.e-6 * reff_rad endif - call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), t_surf(:,:), p_full(:,:,:,current), & - p_half(:,:,:,current),z_full(:,:,:,current),z_half(:,:,:,current), albedo, dt_tg(:,:,:), net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, do_cloud_simple, cf_rad(:,:,:), cca_rad(:,:,:), reff_rad(:,:,:), & - qcl_rad(:,:,:) ) + call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, & + tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), & + t_surf(:,:), p_full(:,:,:,current), & + p_half(:,:,:,current), z_full(:,:,:,current), & + z_half(:,:,:,current), albedo, dt_tg(:,:,:), & + net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, & + do_cloud_simple, cf_rad(:,:,:), cca_rad(:,:,:), & + reff_rad(:,:,:), qcl_rad(:,:,:) ) endif #endif if(gp_surface) then - call gp_surface_flux (dt_tg(:,:,:), p_half(:,:,:,current), num_levels) - + call gp_surface_flux (dt_tg(:,:,:), p_half(:,:,:,current), num_levels) + call compute_rayleigh_bottom_drag( 1, ie-is+1, & 1, je-js+1, & Time, delta_t, & - rad_lat(:,:), dt_ug(:,:,: ), & + rad_lat(:,:), dt_ug(:,:,: ), & dt_vg(:,:,: ), & ug(:,:,:,previous), vg(:,:,:,previous), & p_half(:,:,:,previous), p_full(:,:,:,previous), & dt_tg, diss_heat_ray ) - if(id_diss_heat_ray > 0) used = send_data(id_diss_heat_ray, diss_heat_ray, Time) + if(id_diss_heat_ray > 0) used = send_data(id_diss_heat_ray, diss_heat_ray, Time) endif @@ -1226,7 +1234,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! ! update surface temperature ! - if(mixed_layer_bc) then + if(mixed_layer_bc) then call mixed_layer( & Time, Time+Time_step, & js, & @@ -1370,7 +1378,7 @@ subroutine rh_calc(pfull,T,qv,RH) !s subroutine copied from 2006 FMS MoistModel !calculate water saturated vapor pressure from table !and store temporarily in the variable esat - CALL LOOKUP_ES(T,esat) !same as escomp + CALL LOOKUP_ES(T,esat) !same as escomp !calculate denominator in qsat formula if(do_simple) then From 6ac66f10749e54050a44b02ad06148abb3a38f6b Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 11 Jun 2021 10:05:38 +0100 Subject: [PATCH 222/304] Following review, these changes were needed to make the model compile. I also noticed the runscripts needed updating too. --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 1 - ...ocrates_aquaplanet_amip_with_original_era_topo.py | 5 ++--- .../socrates_aquaplanet_amip_with_topo_gibbs_fix.py | 1 - .../socrates_test/socrates_aquaplanet_with_cloud.py | 10 +++------- .../socrates_aquaplanet_with_cloud_amip_with_topo.py | 12 +++--------- src/atmos_param/cloud_simple/cloud_simple.F90 | 12 +++++++----- .../driver/solo/idealized_moist_phys.F90 | 2 +- 7 files changed, 16 insertions(+), 27 deletions(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 23ebebf55..6cc051973 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -49,7 +49,6 @@ diag.add_field('dynamics', 'vcomp', time_avg=True) diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_original_era_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_original_era_topo.py index dc4677185..13241cf16 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_original_era_topo.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_original_era_topo.py @@ -27,7 +27,7 @@ exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), - os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc') + os.path.join(GFDL_BASE,'input/land_masks/era_land_t42.nc'), os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/sst_clim_amip.nc'), os.path.join(GFDL_BASE,'exp/test_cases/realistic_continents/input/siconc_clim_amip.nc'), ] @@ -53,7 +53,6 @@ diag.add_field('dynamics', 'vcomp', time_avg=True) diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) @@ -225,7 +224,7 @@ #Set up the experiment object, with the first argument being the experiment name. #This will be the name of the folder that the data will appear in. - overwrite=True + overwrite=False exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) for i in range(2,61): diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py index 561cc14a9..20f152983 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py @@ -53,7 +53,6 @@ diag.add_field('dynamics', 'vcomp', time_avg=True) diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py index a55aedf63..5d93e03e3 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py @@ -49,7 +49,6 @@ diag.add_field('dynamics', 'vcomp', time_avg=True) diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) @@ -125,14 +124,11 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True + 'do_cloud_simple': True # this is where the clouds scheme is turned on }, - 'cloud_simple_nml': { - 'cca_lower_limit':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3 + 'cloud_simple_nml': { #use all existing defaults as in code + 'spookie_protocol':2 }, 'vert_turb_driver_nml': { diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py index 556cad4ad..fba743c96 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py @@ -52,7 +52,6 @@ diag.add_field('dynamics', 'vcomp', time_avg=True) diag.add_field('dynamics', 'omega', time_avg=True) diag.add_field('dynamics', 'temp', time_avg=True) -diag.add_field('mixed_layer', 't_surf', time_avg=True) #temperature tendency - units are K/s diag.add_field('socrates', 'soc_tdt_lw', time_avg=True) # net flux lw 3d (up - down) @@ -87,9 +86,7 @@ diag.add_field('cloud_simple', 'rh_in_cf', time_avg=True) diag.add_field('mixed_layer', 'albedo', time_avg=True) - exp.diag_table = diag -exp.inputfiles = inputfiles #Define values for the 'core' namelist exp.namelist = namelist = Namelist({ @@ -128,17 +125,14 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': True, + 'do_cloud_simple': True, # this is where the clouds scheme is turned on 'land_option' : 'input', 'land_file_name' : 'INPUT/era-spectral7_T42_64x128.out.nc', 'land_roughness_prefactor' :10.0, }, - 'cloud_simple_nml': { - 'cca_lower_limit':0.0, - 'rhcsfc': 0.95, - 'rhc700': 0.7, - 'rhc200': 0.3 + 'cloud_simple_nml': { #use all existing defaults as in code + 'spookie_protocol':2 }, 'vert_turb_driver_nml': { diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index e1eaffbbe..7657f250e 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -1,7 +1,7 @@ module cloud_simple_mod use fms_mod, only: stdlog, FATAL, WARNING, error_mesg, & - open_namelist_file, close_file, close_file, & + open_namelist_file, close_file, open_file, & check_nml_error, mpp_pe use time_manager_mod, only: time_type use sat_vapor_pres_mod, only: compute_qs @@ -34,7 +34,9 @@ module cloud_simple_mod ! Critical RH (fraction) values - SPOOKIE-2 protocol version 1 real :: rhc_sfc = 1.0 real :: rhc_base = 0.7 - real :: rhc_top = 0.3 + real :: rhc_top = 0.2 ! In the protocol this was 20 % and in + ! implementation it was 30%. To check in + ! next round of validation. ! Critical RH (fraction) values - SPOOKIE-2 protocol version 2 ! initial values for RH. Updated in calc_rh_min_max @@ -72,7 +74,7 @@ subroutine cloud_simple_init (axes, Time) integer :: io, ierr, unit - unit = open_file ('input.nml', action='read') + unit = open_file (file='input.nml', action='read') ierr=1 do while (ierr /= 0) read (unit, nml=cloud_simple_nml, iostat=io, end=10) @@ -181,12 +183,12 @@ subroutine cloud_simple(p_half, p_full, Time, & endif ! calculate the cloud fraction - call calc_cf(q_hum(i,j,k), qs(i,j,k), cf(i,j,k), cca(i,j,k), + call calc_cf(q_hum(i,j,k), qs(i,j,k), cf(i,j,k), cca(i,j,k), & rh_in_cf(i,j,k), simple_rhcrit = simple_rhcrit(i,j,k), & rh_min = rh_min(i,j,k), rh_max = rh_max(i,j,k) ) ! calculate the specific humidity of cloud liquid - call calc_mixing_ratio(p_full(i,j,k), cf(i,j,k), temp(i,j,k), + call calc_mixing_ratio(p_full(i,j,k), cf(i,j,k), temp(i,j,k), & qcl_rad(i,j,k) ) end do end do diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index f41c44c9d..33ab736a6 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -111,7 +111,7 @@ module idealized_moist_phys_mod logical :: do_ras = .false. ! Cloud options -logical :: do_cloud_simple = .false. +logical :: do_cloud_simple = .false. ! by default the cloud scheme is off. !s Radiation options logical :: two_stream_gray = .true. From 927e3d523e2387adcfde2cd4b3c3d1c369e21f0d Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 11 Jun 2021 10:27:30 +0100 Subject: [PATCH 223/304] Make file names more meaningful and made experiment names more general --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 2 +- ..._aquaplanet_amip_with_original_era_topo_testing_only.py} | 6 +++++- ...o_gibbs_fix.py => socrates_aquaplanet_amip_with_topo.py} | 5 ++--- ...topo.py => socrates_aquaplanet_amip_with_topo_clouds.py} | 4 ++-- ...quaplanet_with_cloud.py => socrates_aquaplanet_cloud.py} | 2 +- 5 files changed, 11 insertions(+), 8 deletions(-) rename exp/test_cases/socrates_test/{socrates_aquaplanet_amip_with_original_era_topo.py => socrates_aquaplanet_amip_with_original_era_topo_testing_only.py} (97%) rename exp/test_cases/socrates_test/{socrates_aquaplanet_amip_with_topo_gibbs_fix.py => socrates_aquaplanet_amip_with_topo.py} (98%) rename exp/test_cases/socrates_test/{socrates_aquaplanet_with_cloud_amip_with_topo.py => socrates_aquaplanet_amip_with_topo_clouds.py} (98%) rename exp/test_cases/socrates_test/{socrates_aquaplanet_with_cloud.py => socrates_aquaplanet_cloud.py} (98%) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 6cc051973..d86dee4f3 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_without_clouds', codebase=cb) +exp = Experiment('soc_aquaplanet', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_original_era_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_original_era_topo_testing_only.py similarity index 97% rename from exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_original_era_topo.py rename to exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_original_era_topo_testing_only.py index 13241cf16..f26730041 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_original_era_topo.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_original_era_topo_testing_only.py @@ -23,7 +23,11 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_amip_ssts_land_low_albedo', codebase=cb) +# note on this experiement. +# The original era land file will generate Gibbs ripples if land is used. +# This files only purpose if for testing the behaviour of era land. +# +exp = Experiment('soc_aquaplanet_amip_old_era_land', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py similarity index 98% rename from exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py rename to exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py index 20f152983..a8cf5a3e6 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_gibbs_fix.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo.py @@ -23,8 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_amip_ssts_land_low_albedo_gibbs_fix', codebase=cb) - +exp = Experiment('soc_aquaplanet_amip', codebase=cb) exp.clear_rundir() exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), @@ -221,7 +220,7 @@ #Set up the experiment object, with the first argument being the experiment name. #This will be the name of the folder that the data will appear in. - overwrite=True + overwrite=False exp.run(1, use_restart=False, num_cores=NCORES, overwrite_data=overwrite)#, run_idb=True) for i in range(2,61): diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_clouds.py similarity index 98% rename from exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py rename to exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_clouds.py index fba743c96..d2de46e0f 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud_amip_with_topo.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_amip_with_topo_clouds.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_with_clouds_post_jm_suggestions_amip_ssts_land_low_albedo_with_land_gibbs_fix', codebase=cb) +exp = Experiment('soc_aquaplanet_amip_clouds', codebase=cb) exp.clear_rundir() exp.inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc'), @@ -142,7 +142,7 @@ 'constant_gust': 0.0, # default: 1.0 'use_tau': False }, - + 'diffusivity_nml': { 'do_entrain':False, 'do_simple': True, diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py b/exp/test_cases/socrates_test/socrates_aquaplanet_cloud.py similarity index 98% rename from exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py rename to exp/test_cases/socrates_test/socrates_aquaplanet_cloud.py index 5d93e03e3..ee30c5f60 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet_with_cloud.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet_cloud.py @@ -23,7 +23,7 @@ # create an Experiment object to handle the configuration of model parameters # and output diagnostics -exp = Experiment('validate_clouds_soc/soc_test_aquaplanet_with_clouds_post_jm_suggestions', codebase=cb) # need to update after testing is complete. +exp = Experiment('soc_aquaplanet_with_clouds', codebase=cb) exp.clear_rundir() inputfiles = [os.path.join(GFDL_BASE,'input/rrtm_input_files/ozone_1990.nc')] From f95b01854b5cfae19115e0751a0912f0ffaf5e88 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Tue, 22 Jun 2021 13:20:14 +0100 Subject: [PATCH 224/304] Minor style changes to code following Quns second review --- src/atmos_param/cloud_simple/cloud_simple.F90 | 4 ++-- src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index 7657f250e..a0369e152 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -213,7 +213,7 @@ subroutine calc_liq_frac(temp, frac_liq) frac_liq = 0.0 else ! linearly interpolate between T=0 and -40C - frac_liq = 1.0 - (KELVIN-temp) / 40.0 + frac_liq = 1.0 - (KELVIN - temp) / 40.0 end if end subroutine calc_liq_frac @@ -303,7 +303,7 @@ subroutine calc_cf(q_hum, qsat, cf, cca, rh, simple_rhcrit, rh_min, rh_max) cf = (rh - rh_min) / (rh_max - rh_min) end if - cf = MAX(0.0, MIN( 1.0, cf)) + cf = MAX(0.0, MIN(1.0, cf)) ! include simple convective cloud fraction where present ! This is currently not being used and array are zeros as diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 33ab736a6..51613f1d2 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -586,7 +586,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l ! initialize damping_driver_mod. if(do_damping) then call pressure_variables(p_half_1d,ln_p_half_1d,pref(1:num_levels),ln_p_full_1d,PSTD_MKS) - pref(num_levels+1) = PSTD_MKS + pref(num_levels+1) = PSTD_MKS call damping_driver_init(rad_lonb_2d(:,1),rad_latb_2d(1,:), pref(:), get_axis_id(), Time, & sgsmtn) !note that in the original this is pref(:,1), which is the full model pressure levels and @@ -658,7 +658,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l id_v_10m = register_diag_field(mod_name, 'v_10m', & axes(1:2), Time, 'Meridional wind 10m above surface', 'm/s') -id_q_2m = register_diag_field(mod_name, 'sphum_2m', & +id_q_2m = register_diag_field(mod_name, 'sphum_2m', & axes(1:2), Time, 'Specific humidity 2m above surface', 'kg/kg') id_rh_2m = register_diag_field(mod_name, 'rh_2m', & axes(1:2), Time, 'Relative humidity 2m above surface', 'percent') @@ -772,8 +772,8 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l axes(1:3), Time, 'moisture diffusion tendency','kg/kg/s') endif - id_rh = register_diag_field ( mod_name, 'rh', & - axes(1:3), Time, 'relative humidity', 'percent') + id_rh = register_diag_field ( mod_name, 'rh', & + axes(1:3), Time, 'relative humidity', 'percent') end subroutine idealized_moist_phys_init !================================================================================================================================= From b0d088a2f0461cbebd2eb030854f7b17d2ddbc70 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 24 Jun 2021 13:56:04 +0100 Subject: [PATCH 225/304] Changed path in travis tests following Denis suggestion --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8660ad98c..575bc28ba 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ branches: env: global: - GFDL_BASE=$TRAVIS_BUILD_DIR - - GFDL_ENV="$TRAVIS_BUILD_DIR/src/extra/env/ubuntu_conda" + - GFDL_ENV="ubuntu_conda" - GFDL_WORK="$HOME/gfdl_work" - GFDL_DATA="$HOME/gfdl_data" - GFDL_PYDIR="$TRAVIS_BUILD_DIR/src/extra/python" @@ -37,7 +37,7 @@ install: else conda env create -n test_env --file ci/environment_$CONDA_ENV.yml; fi; - - source $GFDL_ENV + - source $TRAVIS_BUILD_DIR/src/extra/env/$GFDL_ENV - source $HOME/miniconda/etc/profile.d/conda.sh - conda activate test_env - conda list From 9b740612dabd92de99e9af7e777954577cc9df66 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 24 Jun 2021 14:18:17 +0100 Subject: [PATCH 226/304] Add socrates cloud test case to trip tests --- .../trip_test/trip_test_functions.py | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/exp/test_cases/trip_test/trip_test_functions.py b/exp/test_cases/trip_test/trip_test_functions.py index 714c678cc..68b1622fa 100644 --- a/exp/test_cases/trip_test/trip_test_functions.py +++ b/exp/test_cases/trip_test/trip_test_functions.py @@ -79,6 +79,13 @@ def get_nml_diag(test_case_name): input_files = exp_temp.inputfiles nml_out = exp_temp.namelist + if 'socrates_aquaplanet_with_clouds' in test_case_name: + sys.path.insert(0, os.path.join(GFDL_BASE, 'exp/test_cases/socrates_test/')) + from socrates_aquaplanet_cloud import exp as exp_temp + input_files = exp_temp.inputfiles + nml_out = exp_temp.namelist + + if 'top_down_test' in test_case_name: sys.path.insert(0, os.path.join(GFDL_BASE, 'exp/test_cases/top_down_test/')) from top_down_test import namelist as nml_out @@ -107,7 +114,20 @@ def get_nml_diag(test_case_name): def list_all_test_cases_implemented_in_trip_test(): #List of test cases to check - exps_implemented = ['axisymmetric', 'bucket_model', 'frierson', 'giant_planet', 'held_suarez', 'MiMA', 'realistic_continents_fixed_sst', 'realistic_continents_variable_qflux', 'socrates_aquaplanet', 'top_down_test', 'variable_co2_grey', 'variable_co2_rrtm', 'ape_aquaplanet'] + exps_implemented = ['axisymmetric', + 'bucket_model', + 'frierson', + 'giant_planet', + 'held_suarez', + 'MiMA', + 'realistic_continents_fixed_sst', + 'realistic_continents_variable_qflux', + 'socrates_aquaplanet', + 'socrates_aquaplanet_with_clouds', + 'top_down_test', + 'variable_co2_grey', + 'variable_co2_rrtm', + 'ape_aquaplanet'] return exps_implemented From 12cd8909c9d9dcf8d5ab6260870910bce72c0627 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 24 Jun 2021 14:41:31 +0100 Subject: [PATCH 227/304] Add fatal error to catch the case the RRTM might be run with clouds on - which currently does not work --- src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 51613f1d2..b08afd4a0 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -358,6 +358,10 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l if(two_stream_gray .and. do_rrtm_radiation) & call error_mesg('physics_driver_init','do_grey_radiation and do_rrtm_radiation cannot both be .true.',FATAL) +if(do_rrtm_radiation .and. do_cloud_simple) & + call error_mesg('idealized_moist_phys','RRTM is not configured to run with the cloud scheme at present.',FATAL) + + if(uppercase(trim(convection_scheme)) == 'NONE') then r_conv_scheme = NO_CONV lwet_convection = .false. From cceda96bec5caa51347a29ea520381ade3936923 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 24 Jun 2021 14:43:27 +0100 Subject: [PATCH 228/304] Add clouds to grey path names but it does not yet work for grey scheme --- src/extra/model/grey/path_names | 1 + 1 file changed, 1 insertion(+) diff --git a/src/extra/model/grey/path_names b/src/extra/model/grey/path_names index 96bc7b6bf..51c284f52 100644 --- a/src/extra/model/grey/path_names +++ b/src/extra/model/grey/path_names @@ -10,6 +10,7 @@ atmos_param/sea_esf_rad/null/rad_utilities.F90 atmos_param/shallow_conv/shallow_conv.F90 atmos_param/stable_bl_turb/stable_bl_turb.F90 atmos_param/strat_cloud/null/strat_cloud.F90 +atmos_param/cloud_simple/cloud_simple.F90 atmos_param/two_stream_gray_rad/two_stream_gray_rad.F90 atmos_param/qflux/qflux.f90 atmos_param/monin_obukhov/monin_obukhov_interfaces.h From 84cf8c43b8fccdb9c93582f10f4aaf20bbd4fd38 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 24 Jun 2021 14:57:14 +0100 Subject: [PATCH 229/304] Added a fatal error if someone tried to run the clouds scheme and grey scheme at the same time --- src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index b08afd4a0..dcdf822ff 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -358,10 +358,12 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l if(two_stream_gray .and. do_rrtm_radiation) & call error_mesg('physics_driver_init','do_grey_radiation and do_rrtm_radiation cannot both be .true.',FATAL) +if(two_stream_gray .and. do_cloud_simple) & + call error_mesg('idealized_moist_phys','Gray radiation is not configured to run with the cloud scheme at present.',FATAL) + if(do_rrtm_radiation .and. do_cloud_simple) & call error_mesg('idealized_moist_phys','RRTM is not configured to run with the cloud scheme at present.',FATAL) - if(uppercase(trim(convection_scheme)) == 'NONE') then r_conv_scheme = NO_CONV lwet_convection = .false. From 7d2f0abe0d0cb0a21e97c8d8061fba4b7cc19f04 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 24 Jun 2021 15:06:02 +0100 Subject: [PATCH 230/304] Added context to explain that cloud scheme does not work for RRTM but the essentials of the problem are there ready for someone else to get working. The code in its current form would not compile as the variables changed in this commit had the following error: The shape matching rules of actual arguments and dummy arguments have been violated. This is a quick and dirty fix which should be investigated in the future --- .../rrtm_radiation/rrtm_radiation.f90 | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index cc8278a50..dca51c2af 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -853,6 +853,16 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! where(cosz_rr < 1.e-2)cosz_rr=0. if (do_cloud_simple) then + !Important - please read: + ! When the simple cloud scheme was implemented into Isca, it was + ! implemented into Socrates first. This was easier to do. + ! We (Stephen Tomson and Penelope Maher) tried to get the cloud + ! scheme running for RRTM too, but did not get to the point of + ! getting it working before needing to move onto other projects. + ! The code skeleton is in place on the master so that if someone + ! wants to pick up this problem they can without this initial + ! outlay of work. + pt1 = 1 pt2 = ngptsw inflglw = 2 !RRTM responsible for calculating optical properties of clouds @@ -898,9 +908,9 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass_sw(pt1:pt2,:,:), & + cldfr_pass_sw(pt1,:,:), & taucld_sw , sw_zro , sw_zro , sw_zro , & - zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & + zeros(pt1,:,:) , zeros(pt1,:,:) , reice , reliq , & tauaer_sw , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) @@ -913,9 +923,9 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & cosz_rr , solrad , dyofyr , solr_cnst, & inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass_sw(pt1:pt2,:,:), & + cldfr_pass_sw(pt1,:,:), & taucld_sw , sw_zro , sw_zro , sw_zro , & - zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice , reliq , & + zeros(pt1,:,:) , zeros(pt1,:,:) , reice , reliq , & tauaer_sw , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) @@ -961,7 +971,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! emissivity and cloud composition emis , inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass_lw(pt1:pt2,:,:) , taucld_lw , zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:) , reice, reliq, & + cldfr_pass_lw(pt1,:,:) , taucld_lw , zeros(pt1,:,:) , zeros(pt1,:,:) , reice, reliq, & tauaer_lw , & ! output uflx , dflx , hr , uflxc , dflxc , hrc) @@ -974,7 +984,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! emissivity and cloud composition emis , inflglw , iceflglw, liqflglw, & ! cloud parameters - cldfr_pass_lw(pt1:pt2,:,:) , taucld_lw , zeros(pt1:pt2,:,:) , zeros(pt1:pt2,:,:), reice, reliq, & + cldfr_pass_lw(pt1,:,:) , taucld_lw , zeros(pt1,:,:) , zeros(pt1,:,:), reice, reliq, & tauaer_lw , & ! output uflx , dflx , hr , uflxc, dflxc , hrc) From c93bc97ce63393dff07145e68948adef2db4d682 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 25 Jun 2021 09:36:00 +0100 Subject: [PATCH 231/304] Added cloud scheme in dry path name list as it calls idealised moist physics --- exp/test_cases/trip_test/trip_test_functions.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/exp/test_cases/trip_test/trip_test_functions.py b/exp/test_cases/trip_test/trip_test_functions.py index 68b1622fa..d4a63d22d 100644 --- a/exp/test_cases/trip_test/trip_test_functions.py +++ b/exp/test_cases/trip_test/trip_test_functions.py @@ -79,13 +79,12 @@ def get_nml_diag(test_case_name): input_files = exp_temp.inputfiles nml_out = exp_temp.namelist - if 'socrates_aquaplanet_with_clouds' in test_case_name: + if 'socrates_aquaplanet_cloud' in test_case_name: sys.path.insert(0, os.path.join(GFDL_BASE, 'exp/test_cases/socrates_test/')) from socrates_aquaplanet_cloud import exp as exp_temp input_files = exp_temp.inputfiles nml_out = exp_temp.namelist - if 'top_down_test' in test_case_name: sys.path.insert(0, os.path.join(GFDL_BASE, 'exp/test_cases/top_down_test/')) from top_down_test import namelist as nml_out @@ -123,7 +122,7 @@ def list_all_test_cases_implemented_in_trip_test(): 'realistic_continents_fixed_sst', 'realistic_continents_variable_qflux', 'socrates_aquaplanet', - 'socrates_aquaplanet_with_clouds', + 'socrates_aquaplanet_cloud', 'top_down_test', 'variable_co2_grey', 'variable_co2_rrtm', @@ -196,6 +195,7 @@ def conduct_comparison_on_test_case(base_commit, later_commit, test_case_name, r 'days': 3, }}) + try: # run with a progress bar with exp_progress(exp, description=s) as pbar: @@ -206,6 +206,8 @@ def conduct_comparison_on_test_case(base_commit, later_commit, test_case_name, r test_pass = False continue + + data_dir_dict[s] = exp.datadir if run_complete: #For each of the diag files defined, compare the output From 5dc49a6cc39e898848381c2b49f82b1d028c99f3 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 25 Jun 2021 09:36:18 +0100 Subject: [PATCH 232/304] Added cloud scheme in dry path name list as it calls idealised moist physics --- src/extra/model/dry/path_names | 1 + 1 file changed, 1 insertion(+) diff --git a/src/extra/model/dry/path_names b/src/extra/model/dry/path_names index 635b45dfc..6ba7695f8 100644 --- a/src/extra/model/dry/path_names +++ b/src/extra/model/dry/path_names @@ -8,6 +8,7 @@ atmos_param/qe_moist_convection/qe_moist_convection.F90 atmos_param/betts_miller/betts_miller.f90 atmos_param/sea_esf_rad/null/rad_utilities.F90 atmos_param/shallow_conv/shallow_conv.F90 +atmos_param/cloud_simple/cloud_simple.F90 atmos_param/stable_bl_turb/stable_bl_turb.F90 atmos_param/strat_cloud/null/strat_cloud.F90 atmos_param/two_stream_gray_rad/two_stream_gray_rad.F90 From a0585592793842e4b51d3903f1dba948f7b3c9e3 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 11:17:42 +0100 Subject: [PATCH 233/304] Script to look for the fortran files that contain namelists but do not do namelist checking. --- .../python/scripts/find_namelists_to_check.py | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/extra/python/scripts/find_namelists_to_check.py diff --git a/src/extra/python/scripts/find_namelists_to_check.py b/src/extra/python/scripts/find_namelists_to_check.py new file mode 100644 index 000000000..d4e55b705 --- /dev/null +++ b/src/extra/python/scripts/find_namelists_to_check.py @@ -0,0 +1,45 @@ +import subprocess +import os +import glob +from pathlib import Path +import pdb + +#find the location of the source code +GFDL_BASE = os.environ['GFDL_BASE'] + +#setup some output dictionaries and lists +fortran_file_dict = {} +includes_namelist_dict = {} +includes_check_namelist_dict = {} +namelists_to_flag = [] + +#find ALL of the fortran files within GFDL_BASE/src directory +for path in Path(f'{GFDL_BASE}/src/').rglob('*.*90'): + #exclude files with ._ at the start + if path.name[0:2]!='._': + #add all the remaining files to a dictionary + fortran_file_dict[path.name] = path + +#go through each file and check if it contains a namelist, and if it does namelist checking +for file_name in fortran_file_dict.keys(): + file_path = fortran_file_dict[file_name] + namelist_in_file=False + check_namelist_in_file=False + #open each of the fortran files + with open(file_path, 'r') as read_obj: + for line in read_obj: + #check if it contains a namelist + if 'namelist /' in line and not namelist_in_file: + namelist_in_file=True + # does it contain the check_nml_error command? + if 'check_nml_error(' in line and not check_namelist_in_file: + check_namelist_in_file=True + + #make a list of those files that do have a namelist but don't do checking + if namelist_in_file and not check_namelist_in_file: + namelists_to_flag.append(file_name) + + #keep a record of the files that include a namelist + includes_namelist_dict[file_name]=namelist_in_file + #keep a record of the files that do and don't do namelist checking + includes_check_namelist_dict[file_name]=check_namelist_in_file From 9bf399319ed70431d46be6f27d192074465989fa Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 25 Jun 2021 11:28:13 +0100 Subject: [PATCH 234/304] Remove simple cloud flag so trip tests will run --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index d86dee4f3..023728c71 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -105,7 +105,7 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection - 'do_cloud_simple': False +# 'do_cloud_simple': False }, From cb534b416d337fb1d123d49970ef63d704ad8ea0 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 11:33:06 +0100 Subject: [PATCH 235/304] Adding more outputs. --- src/extra/python/scripts/find_namelists_to_check.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/extra/python/scripts/find_namelists_to_check.py b/src/extra/python/scripts/find_namelists_to_check.py index d4e55b705..67e10a4c8 100644 --- a/src/extra/python/scripts/find_namelists_to_check.py +++ b/src/extra/python/scripts/find_namelists_to_check.py @@ -32,7 +32,7 @@ if 'namelist /' in line and not namelist_in_file: namelist_in_file=True # does it contain the check_nml_error command? - if 'check_nml_error(' in line and not check_namelist_in_file: + if 'check_nml_error' in line and not check_namelist_in_file: check_namelist_in_file=True #make a list of those files that do have a namelist but don't do checking @@ -43,3 +43,8 @@ includes_namelist_dict[file_name]=namelist_in_file #keep a record of the files that do and don't do namelist checking includes_check_namelist_dict[file_name]=check_namelist_in_file + +list_of_filepaths_to_check = [str(fortran_file_dict[path]) for path in namelists_to_flag] + +print(namelists_to_flag) +print(list_of_filepaths_to_check) \ No newline at end of file From 77f2150007d346f30bab26b6ee243632837f4cf3 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 25 Jun 2021 11:33:35 +0100 Subject: [PATCH 236/304] Removed flag entirely --- exp/test_cases/socrates_test/socrates_aquaplanet.py | 1 - 1 file changed, 1 deletion(-) diff --git a/exp/test_cases/socrates_test/socrates_aquaplanet.py b/exp/test_cases/socrates_test/socrates_aquaplanet.py index 023728c71..cc7d68363 100644 --- a/exp/test_cases/socrates_test/socrates_aquaplanet.py +++ b/exp/test_cases/socrates_test/socrates_aquaplanet.py @@ -105,7 +105,6 @@ 'two_stream_gray': False, #Use the grey radiation scheme 'do_socrates_radiation': True, 'convection_scheme': 'SIMPLE_BETTS_MILLER', #Use simple Betts miller convection -# 'do_cloud_simple': False }, From 7257b23145dda30f88b41a1924eb9a8668dce631 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 11:33:45 +0100 Subject: [PATCH 237/304] Adding namelist checking to idealized-moist-phys. This will raise an error if there is a problem in the namelist. --- src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 8115c08a2..bcd49bc61 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -6,7 +6,7 @@ module idealized_moist_phys_mod use fms_mod, only: open_namelist_file, close_file #endif -use fms_mod, only: write_version_number, file_exist, close_file, stdlog, error_mesg, NOTE, FATAL, read_data, field_size, uppercase, mpp_pe +use fms_mod, only: write_version_number, file_exist, close_file, stdlog, error_mesg, NOTE, FATAL, read_data, field_size, uppercase, mpp_pe, check_nml_error use constants_mod, only: grav, rdgas, rvgas, cp_air, PSTD_MKS, dens_h2o !mj cp_air needed for rrtmg !s pstd_mks needed for pref calculation @@ -308,7 +308,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l !s added for land reading integer, dimension(4) :: siz -integer :: global_num_lon, global_num_lat +integer :: global_num_lon, global_num_lat, ierr character(len=12) :: ctmp1=' by ', ctmp2=' by ' !s end added for land reading @@ -327,10 +327,12 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l #ifdef INTERNAL_FILE_NML read (input_nml_file, nml=idealized_moist_phys_nml, iostat=io) + ierr = check_nml_error (io,'idealized_moist_phys_nml') #else if ( file_exist('input.nml') ) then nml_unit = open_namelist_file() read (nml_unit, idealized_moist_phys_nml, iostat=io) + ierr = check_nml_error (io,'idealized_moist_phys_nml') call close_file(nml_unit) endif #endif From 9f479c268559aaa87e18e825b558cdb11cc4aea5 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 11:58:07 +0100 Subject: [PATCH 238/304] Problem is that sometimes check_nml_error is done for one method of reading but not another. Trying to catch these cases. --- .../python/scripts/find_namelists_to_check.py | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/extra/python/scripts/find_namelists_to_check.py b/src/extra/python/scripts/find_namelists_to_check.py index 67e10a4c8..5257f39dd 100644 --- a/src/extra/python/scripts/find_namelists_to_check.py +++ b/src/extra/python/scripts/find_namelists_to_check.py @@ -11,7 +11,13 @@ fortran_file_dict = {} includes_namelist_dict = {} includes_check_namelist_dict = {} +n_check_namelist_dict = {} +if_def_internal_nml_dict={} + +files_with_namelists = [] namelists_to_flag = [] +namelists_to_flag_possible = [] + #find ALL of the fortran files within GFDL_BASE/src directory for path in Path(f'{GFDL_BASE}/src/').rglob('*.*90'): @@ -25,6 +31,8 @@ file_path = fortran_file_dict[file_name] namelist_in_file=False check_namelist_in_file=False + number_of_checks=0 + if_def_internal_nml_in_file=False #open each of the fortran files with open(file_path, 'r') as read_obj: for line in read_obj: @@ -34,17 +42,31 @@ # does it contain the check_nml_error command? if 'check_nml_error' in line and not check_namelist_in_file: check_namelist_in_file=True + if 'check_nml_error' in line: + number_of_checks=number_of_checks+1 + if '#ifdef INTERNAL_FILE_NML' in line and not if_def_internal_nml_in_file: + if_def_internal_nml_in_file=True #make a list of those files that do have a namelist but don't do checking + if namelist_in_file: + files_with_namelists.append(file_name) + if namelist_in_file and not check_namelist_in_file: namelists_to_flag.append(file_name) + if namelist_in_file and if_def_internal_nml_in_file and number_of_checks<3: + namelists_to_flag_possible.append(file_name) + #keep a record of the files that include a namelist includes_namelist_dict[file_name]=namelist_in_file #keep a record of the files that do and don't do namelist checking includes_check_namelist_dict[file_name]=check_namelist_in_file -list_of_filepaths_to_check = [str(fortran_file_dict[path]) for path in namelists_to_flag] + n_check_namelist_dict[file_name] = number_of_checks + +list_of_filepaths_to_check = [str(fortran_file_dict[path]) for path in namelists_to_flag_possible] + +print([n_check_namelist_dict[path] for path in namelists_to_flag_possible]) -print(namelists_to_flag) +print(namelists_to_flag_possible) print(list_of_filepaths_to_check) \ No newline at end of file From a8b886a463f59278bfe105724d93f06ebb1a4c4e Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 11:58:31 +0100 Subject: [PATCH 239/304] Adding namelist checking to case when using an internal-file-nml. --- src/coupler/surface_flux.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/coupler/surface_flux.F90 b/src/coupler/surface_flux.F90 index 97a207f51..74a9eb861 100644 --- a/src/coupler/surface_flux.F90 +++ b/src/coupler/surface_flux.F90 @@ -910,6 +910,7 @@ subroutine surface_flux_init ! read namelist #ifdef INTERNAL_FILE_NML read (input_nml_file, surface_flux_nml, iostat=io) + ierr = check_nml_error(io,'surface_flux_nml') #else if ( file_exist('input.nml')) then unit = open_namelist_file () From 5e62d9611613736a6e07c6cc765d25b35fcefadc Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 11:59:23 +0100 Subject: [PATCH 240/304] Added check-nml-error. --- src/shared/astronomy/astronomy.f90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/shared/astronomy/astronomy.f90 b/src/shared/astronomy/astronomy.f90 index b5181b56d..e3e88854e 100644 --- a/src/shared/astronomy/astronomy.f90 +++ b/src/shared/astronomy/astronomy.f90 @@ -296,6 +296,7 @@ subroutine astronomy_init (latb, lonb) !----------------------------------------------------------------------- #ifdef INTERNAL_FILE_NML read (input_nml_file, astronomy_nml, iostat=io) + ierr = check_nml_error(io,'astronomy_nml') #else if ( file_exist('input.nml')) then unit = open_namelist_file ( ) From 73e9d4d29fad59429300d9db179039348cedb5d8 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 12:00:10 +0100 Subject: [PATCH 241/304] Added check-nml-error. --- src/shared/sat_vapor_pres/sat_vapor_pres.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/shared/sat_vapor_pres/sat_vapor_pres.F90 b/src/shared/sat_vapor_pres/sat_vapor_pres.F90 index 1e1a6f3aa..f182831a6 100644 --- a/src/shared/sat_vapor_pres/sat_vapor_pres.F90 +++ b/src/shared/sat_vapor_pres/sat_vapor_pres.F90 @@ -2278,6 +2278,7 @@ subroutine sat_vapor_pres_init(err_msg) !---- read namelist input ---- #ifdef INTERNAL_FILE_NML read (input_nml_file, sat_vapor_pres_nml, iostat=io) + ierr = check_nml_error(io,'sat_vapor_pres_nml') #else if (file_exist('input.nml')) then unit = open_namelist_file ( ) From f0de438d315750baa7fe2f34ba018519b97f193a Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 12:01:12 +0100 Subject: [PATCH 242/304] Added check-nml-error. --- src/shared/topography/gaussian_topog.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/shared/topography/gaussian_topog.F90 b/src/shared/topography/gaussian_topog.F90 index d76073a31..314563124 100644 --- a/src/shared/topography/gaussian_topog.F90 +++ b/src/shared/topography/gaussian_topog.F90 @@ -270,6 +270,7 @@ subroutine read_namelist #ifdef INTERNAL_FILE_NML read (input_nml_file, gaussian_topog_nml, iostat=io) + ierr = check_nml_error(io,'gaussian_topog_nml') #else if ( file_exist('input.nml')) then unit = open_namelist_file ( ) From 850b733f5bd7be6b4d0491b2c9530eb0b8a082fb Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 12:01:29 +0100 Subject: [PATCH 243/304] Added check-nml-error. --- src/shared/topography/topography.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/shared/topography/topography.F90 b/src/shared/topography/topography.F90 index cce81005b..156a5a50a 100644 --- a/src/shared/topography/topography.F90 +++ b/src/shared/topography/topography.F90 @@ -920,6 +920,7 @@ subroutine read_namelist #ifdef INTERNAL_FILE_NML read (input_nml_file, topography_nml, iostat=io) + ierr = check_nml_error(io,'topography_nml') #else if ( file_exist('input.nml')) then unit = open_namelist_file ( ) From 503e7f2806d2ef6b2a7aed3beff683046bcdc7af Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 12:03:13 +0100 Subject: [PATCH 244/304] Added check-nml-error. --- src/shared/time_manager/time_manager.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/shared/time_manager/time_manager.F90 b/src/shared/time_manager/time_manager.F90 index 8d78b0ae8..6f7654f26 100644 --- a/src/shared/time_manager/time_manager.F90 +++ b/src/shared/time_manager/time_manager.F90 @@ -3479,6 +3479,7 @@ program test #ifdef INTERNAL_FILE_NML read (input_nml_file, test_nml, iostat=io) + ierr = check_nml_error (io, 'test_nml') #else nmlunit = open_namelist_file() ierr=1 From fe3a948a667c39856bd1566aa3e3d3a6e37569c1 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 12:03:56 +0100 Subject: [PATCH 245/304] Added check-nml-error. --- src/shared/time_manager/get_cal_time.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/shared/time_manager/get_cal_time.F90 b/src/shared/time_manager/get_cal_time.F90 index 912686a57..dc36d084f 100644 --- a/src/shared/time_manager/get_cal_time.F90 +++ b/src/shared/time_manager/get_cal_time.F90 @@ -188,6 +188,7 @@ function get_cal_time(time_increment, units, calendar, permit_calendar_conversio if(.not.module_is_initialized) then #ifdef INTERNAL_FILE_NML read (input_nml_file, get_cal_time_nml, iostat=io) + ierr = check_nml_error (io, 'get_cal_time_nml') #else namelist_unit = open_namelist_file() ierr=1 From 35ba489e6ea4397ec4c4a9e535f9b8ed2cdccaf4 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 12:04:51 +0100 Subject: [PATCH 246/304] Added check-nml-error. --- src/shared/time_interp/time_interp.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/shared/time_interp/time_interp.F90 b/src/shared/time_interp/time_interp.F90 index 94d7046db..442beb020 100644 --- a/src/shared/time_interp/time_interp.F90 +++ b/src/shared/time_interp/time_interp.F90 @@ -233,6 +233,7 @@ subroutine time_interp_init() #ifdef INTERNAL_FILE_NML read (input_nml_file, time_interp_nml, iostat=io) + ierr = check_nml_error (io, 'time_interp_nml') #else namelist_unit = open_namelist_file() ierr=1 From bd86ce22225047f4fc2c8488e506b9d4f0e98c17 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 12:05:39 +0100 Subject: [PATCH 247/304] Added check-nml-error. --- src/shared/horiz_interp/horiz_interp_spherical.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/shared/horiz_interp/horiz_interp_spherical.F90 b/src/shared/horiz_interp/horiz_interp_spherical.F90 index 5c52909f7..6603650c8 100644 --- a/src/shared/horiz_interp/horiz_interp_spherical.F90 +++ b/src/shared/horiz_interp/horiz_interp_spherical.F90 @@ -104,6 +104,7 @@ subroutine horiz_interp_spherical_init call write_version_number (version, tagname) #ifdef INTERNAL_FILE_NML read (input_nml_file, horiz_interp_spherical_nml, iostat=io) + ierr = check_nml_error(io,'horiz_interp_spherical_nml') ! also initializes nml error codes #else if (file_exist('input.nml')) then unit = open_namelist_file ( ) From 283d0de4f06ebf54540158218db59be3bf9f8946 Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 12:06:20 +0100 Subject: [PATCH 248/304] Added check-nml-error. --- src/shared/horiz_interp/horiz_interp.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/shared/horiz_interp/horiz_interp.F90 b/src/shared/horiz_interp/horiz_interp.F90 index 9a5263a05..a54aa34ca 100644 --- a/src/shared/horiz_interp/horiz_interp.F90 +++ b/src/shared/horiz_interp/horiz_interp.F90 @@ -1288,6 +1288,7 @@ program horiz_interp_test !--- read namelist #ifdef INTERNAL_FILE_NML read (input_nml_file, test_horiz_interp_nml, iostat=io) + ierr = check_nml_error(io, 'test_horiz_interp_nml') #else if (file_exist('input.nml')) then ierr=1 From 3b170ce6f3eadaaaf475111020a7ae43d90f9dcf Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 12:07:41 +0100 Subject: [PATCH 249/304] Added check-nml-error. --- src/shared/axis_utils/axis_utils.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/shared/axis_utils/axis_utils.F90 b/src/shared/axis_utils/axis_utils.F90 index c83e35be9..461029193 100644 --- a/src/shared/axis_utils/axis_utils.F90 +++ b/src/shared/axis_utils/axis_utils.F90 @@ -854,6 +854,7 @@ program test !---reading namelist #ifdef INTERNAL_FILE_NML read (input_nml_file, test_axis_utils_nml, iostat=io) + ierr = check_nml_error(io,'test_axis_utils_nml') ! also initializes nml error codes #else if(file_exist('input.nml')) then unit = open_namelist_file() From 669c366513ef3c079d37ef3423712298de42295b Mon Sep 17 00:00:00 2001 From: sit23 Date: Fri, 25 Jun 2021 16:42:12 +0100 Subject: [PATCH 250/304] Added extra comments for clarity. --- .../python/scripts/find_namelists_to_check.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/extra/python/scripts/find_namelists_to_check.py b/src/extra/python/scripts/find_namelists_to_check.py index 5257f39dd..f13956ada 100644 --- a/src/extra/python/scripts/find_namelists_to_check.py +++ b/src/extra/python/scripts/find_namelists_to_check.py @@ -4,6 +4,9 @@ from pathlib import Path import pdb +#A script to find the fortran files within Isca's src directory +#that include namelists, and to check if namelist checking is done. + #find the location of the source code GFDL_BASE = os.environ['GFDL_BASE'] @@ -29,6 +32,8 @@ #go through each file and check if it contains a namelist, and if it does namelist checking for file_name in fortran_file_dict.keys(): file_path = fortran_file_dict[file_name] + + #initialise some of the checking variables namelist_in_file=False check_namelist_in_file=False number_of_checks=0 @@ -42,31 +47,42 @@ # does it contain the check_nml_error command? if 'check_nml_error' in line and not check_namelist_in_file: check_namelist_in_file=True + # count how many times this string is mentioned if 'check_nml_error' in line: number_of_checks=number_of_checks+1 + #check if there's more than one type of namelist reading available if '#ifdef INTERNAL_FILE_NML' in line and not if_def_internal_nml_in_file: if_def_internal_nml_in_file=True - #make a list of those files that do have a namelist but don't do checking + #make a list of those files that do have a namelist if namelist_in_file: files_with_namelists.append(file_name) + #make a list of those files that do have a namelist but don't do checking if namelist_in_file and not check_namelist_in_file: namelists_to_flag.append(file_name) + #making a list of files that have namelists, that read them in more than one way, and have fewer than 3 mentions of check_nml_error. This is to catch cases where there is some namelist checking taking place, but it's not on all the methods of namelist reading. if namelist_in_file and if_def_internal_nml_in_file and number_of_checks<3: namelists_to_flag_possible.append(file_name) #keep a record of the files that include a namelist includes_namelist_dict[file_name]=namelist_in_file + #keep a record of the files that do and don't do namelist checking includes_check_namelist_dict[file_name]=check_namelist_in_file + #keep a record of the number of checks taking place n_check_namelist_dict[file_name] = number_of_checks +#create a list of files that appear in namelists_to_flag_possible list_of_filepaths_to_check = [str(fortran_file_dict[path]) for path in namelists_to_flag_possible] +#print the number of checks print([n_check_namelist_dict[path] for path in namelists_to_flag_possible]) +#print the list of files print(namelists_to_flag_possible) + +#print their directories print(list_of_filepaths_to_check) \ No newline at end of file From 01c382b006c2e5b8ec6b6d9e0525fd7c5eaca6fa Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Mon, 28 Jun 2021 09:46:00 +0100 Subject: [PATCH 251/304] Change used from real to logical. Working through travis checks --- src/atmos_param/cloud_simple/cloud_simple.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/atmos_param/cloud_simple/cloud_simple.F90 b/src/atmos_param/cloud_simple/cloud_simple.F90 index a0369e152..a720c52c4 100644 --- a/src/atmos_param/cloud_simple/cloud_simple.F90 +++ b/src/atmos_param/cloud_simple/cloud_simple.F90 @@ -354,7 +354,7 @@ subroutine output_cloud_diags(cf, reff_rad, frac_liq, qcl_rad, rh_in_cf, & type(time_type) , intent(in) :: Time - real :: used + logical :: used if ( id_cf > 0 ) then used = send_data ( id_cf, cf, Time) From 1c42c8e559750c6a50ac34e83d6bcd993b524c62 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Mon, 28 Jun 2021 10:29:04 +0100 Subject: [PATCH 252/304] Reverted changes to RRTM back to the master. Shape (rank) mismatches were causing travis tests to fail. Given the rrtm code does not work with the cloud scheme yet, I have left this as a seperate issue to fix at a later time. --- .../rrtm_radiation/rrtm_radiation.f90 | 193 +++++------------- .../driver/solo/idealized_moist_phys.F90 | 3 +- 2 files changed, 54 insertions(+), 142 deletions(-) diff --git a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 index dca51c2af..808d5239d 100644 --- a/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 +++ b/src/atmos_param/rrtm_radiation/rrtm_radiation.f90 @@ -54,10 +54,9 @@ module rrtm_vars ! dimension (ncols_rrt x nlay_rrt) real(kind=rb),allocatable,dimension(:,:) :: co2 ! CO2 [vmr] ! dimension (ncols_rrt x nlay_rrt) - real(kind=rb),allocatable,dimension(:,:,:) :: zeros ! place holder for any species set + real(kind=rb),allocatable,dimension(:,:) :: zeros ! place holder for any species set ! to zero - real(kind=rb),allocatable,dimension(:,:,:) :: ones ! place holder for any species set - ! to one + real(kind=rb),allocatable,dimension(:,:) :: ones ! place holder for secondary species ! the following species are only set if use_secondary_gases=.true. real(kind=rb),allocatable,dimension(:,:) :: ch4 ! CH4 [vmr] ! dimension (ncols_rrt x nlay_rrt) @@ -78,7 +77,7 @@ module rrtm_vars ! =1 for black body ! clouds stuff ! cloud & aerosol optical depths, cloud and aerosol specific parameters. Set to zero - real(kind=rb),allocatable,dimension(:,:,:) :: taucld_lw, taucld_sw, tauaer_lw, tauaer_sw, sw_zro, zro_sw + real(kind=rb),allocatable,dimension(:,:,:) :: taucld,tauaer, sw_zro, zro_sw ! heating rates and fluxes, zenith angle when in-between radiation time steps real(kind=rb),allocatable,dimension(:,:) :: sw_flux,lw_flux,zencos, olr, toa_sw! surface and TOA fluxes, cos(zenith angle) ! dimension (lon x lat) @@ -103,7 +102,7 @@ module rrtm_vars ! some constants real(kind=rb) :: daypersec=1./86400.,deg2rad !RG: daypersec=1./86400. left in when conversion to non-specific day length made as this only converts heatrates from RRTM from K/day to K/sec ! no clouds in the radiative scheme - integer(kind=im) :: idrv=0, & + integer(kind=im) :: icld=0,idrv=0, & inflglw=0,iceflglw=0,liqflglw=0, & iaer=0 !--------------------------------------------------------------------------------------------------------------- @@ -161,10 +160,15 @@ module rrtm_vars integer(kind=im) :: dt_rad_avg = -1 ! If averaging, over what time? dt_rad_avg=dt_rad if dt_rad_avg<=0 integer(kind=im) :: lonstep=1 ! Subsample fields along longitude ! for faster radiation calculation + +!!!!!! mp586 added for annual mean insolation!!!!! + logical :: frierson_solar_rad =.false. real(kind=rb) :: del_sol = 0.95 ! frierson 2006 default = 1.4, but 0.95 gets the curve closer to the annual mean insolation real(kind=rb) :: del_sw = 0.0 !frierson 2006 default +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! some fancy radiation tweaks real(kind=rb) :: slowdown_rad = 1.0 ! factor do simulate slower seasonal cycle: >1 means faster, <1 slower logical :: do_zm_rad=.false. ! Only compute zonal mean radiation @@ -184,9 +188,6 @@ module rrtm_vars ! day of the year = solday \in [0,days per year] real(kind=rb) :: equinox_day=0.75 ! fraction of the year defining NH autumn equinox \in [0,1] real(kind=rb) :: solr_cnst= 1368.22 ! solar constant [W/m2] - - integer(kind=im) :: icld=0 ! Cloud overlap method - !-------------------------------------------------s-------------------------------------------------------------- ! !-------------------- diagnostics fields ------------------------------- @@ -205,22 +206,18 @@ module rrtm_vars &h2o_lower_limit,temp_lower_limit,temp_upper_limit,co2ppmv, & &do_fixed_water,fixed_water,fixed_water_pres,fixed_water_lat, & &slowdown_rad, & - &store_intermediate_rad, do_rad_time_avg, & - &frierson_solar_rad, del_sol, del_sw, dt_rad, dt_rad_avg, & + &store_intermediate_rad, do_rad_time_avg, frierson_solar_rad, del_sol, del_sw, dt_rad, dt_rad_avg, & !mp586 added frierson_solar_rad, del_sol, del_sw for annual mean insolation &lonstep, do_zm_tracers, do_zm_rad, & &do_precip_albedo, precip_albedo_mode, precip_albedo, precip_lat,& &do_read_co2, co2_file, co2_variable_name, use_dyofyr, solrad, & - &solday, equinox_day,solr_cnst, icld + &solday, equinox_day,solr_cnst end module rrtm_vars !***************************************************************************************** !***************************************************************************************** module rrtm_radiation - use parkind, only : im => kind_im, rb => kind_rb - use constants_mod, only: pi, wtmozone, wtmh2o, gas_constant, rdgas - use parrrtm, only: nbndlw, ngptlw - use parrrsw, only: nbndsw, ngptsw - + use parkind, only : im => kind_im, rb => kind_rb + use constants_mod, only: pi, wtmozone, wtmh2o, gas_constant, rdgas implicit none contains @@ -233,6 +230,8 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) ! Modules use rrtm_vars use astronomy_mod, only: astronomy_init + use parrrtm, only: nbndlw + use parrrsw, only: nbndsw use diag_manager_mod, only: register_diag_field, send_data use interpolator_mod, only: interpolate_type, interpolator_init, & &CONSTANT, ZERO,INTERP_WEIGHTED_P @@ -406,13 +405,11 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) if(.not. do_read_radiation .or. .not. do_read_sw_flux .and. .not. do_read_lw_flux)then allocate(h2o(ncols_rrt,nlay_rrt),o3(ncols_rrt,nlay_rrt), & co2(ncols_rrt,nlay_rrt)) - allocate(ones(ngptsw,ncols_rrt,nlay_rrt), & - zeros(ngptsw,ncols_rrt,nlay_rrt)) + allocate(ones(ncols_rrt,nlay_rrt), & + zeros(ncols_rrt,nlay_rrt)) allocate(emis(ncols_rrt,nbndlw)) - allocate(taucld_lw(nbndlw,ncols_rrt,nlay_rrt), & - tauaer_lw(ncols_rrt,nlay_rrt,nbndlw)) - allocate(taucld_sw(nbndsw,ncols_rrt,nlay_rrt), & - tauaer_sw(ncols_rrt,nlay_rrt,nbndsw)) + allocate(taucld(nbndlw,ncols_rrt,nlay_rrt), & + tauaer(ncols_rrt,nlay_rrt,nbndlw)) allocate(sw_zro(nbndsw,ncols_rrt,nlay_rrt), & zro_sw(ncols_rrt,nlay_rrt,nbndsw)) if(id_coszen > 0)allocate(zencos (size(lonb,1)-1,size(latb,2)-1)) @@ -427,10 +424,8 @@ subroutine rrtm_radiation_init(axes,Time,ncols,nlay,lonb,latb, Time_step) emis = 1. !black body: 1.0 ! absorption - taucld_sw = 0. - tauaer_sw = 0. - taucld_lw = 0. - tauaer_lw = 0. + taucld = 0. + tauaer = 0. ! clouds sw_zro = 0. zro_sw = 0. @@ -536,10 +531,7 @@ subroutine interp_temp(z_full,z_half,t, Time) end subroutine interp_temp !***************************************************************************************** !***************************************************************************************** - subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & - albedo,q,t,t_surf_rad,tdt, & - coszen,flux_sw,flux_lw,cf_rad,reff_rad, & - do_cloud_simple) + subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half,albedo,q,t,t_surf_rad,tdt,coszen,flux_sw,flux_lw) ! ! Driver for RRTMG radiation scheme. ! Prepares all inputs, calls SW and LW radiation schemes, @@ -550,9 +542,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & use mpp_mod, only: mpp_pe,mpp_root_pe use rrtmg_lw_rad, only: rrtmg_lw use rrtmg_sw_rad, only: rrtmg_sw - use mcica_subcol_gen_lw, only: mcica_subcol_lw - use mcica_subcol_gen_sw, only: mcica_subcol_sw - use astronomy_mod, only: diurnal_solar + use astronomy_mod, only: diurnal_solar use rrtm_vars use time_manager_mod,only: time_type,get_time,set_time, length_of_year, length_of_day use interpolator_mod,only: interpolator @@ -587,24 +577,14 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & real(kind=rb),dimension(:,:),intent(out),optional :: flux_sw,flux_lw ! surface fluxes [W/m2] ! dimension (lat x lon) ! need to have both or none! - real(kind=rb), dimension(:,:,:), intent(in) :: cf_rad,reff_rad !cloud properties - - logical, intent(in) :: do_cloud_simple - - !--------------------------------------------------------------------------------------------------------------- ! Local variables integer k,j,i,ij,j1,i1,ij1,kend,dyofyr,seconds,days integer si,sj,sk,locmin(3) real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: o3f real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: co2f,co2f_temp - real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: pfull,tfull,fracday& - , hr,hrc, swhr, swhrc, cldfr, reliq, reice - - real(kind=rb),dimension(ngptsw,ncols_rrt,nlay_rrt) :: cldfr_pass_sw - real(kind=rb),dimension(ngptlw,ncols_rrt,nlay_rrt) :: cldfr_pass_lw - + , hr,hrc, swhr, swhrc real(kind=rb),dimension(size(tdt,1),size(tdt,2),size(tdt,3)) :: tdt_rrtm real(kind=rb),dimension(ncols_rrt,nlay_rrt+1) :: uflx, dflx, uflxc, dflxc& ,swuflx, swdflx, swuflxc, swdflxc @@ -617,22 +597,15 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & real(kind=rb),dimension(size(q,1),size(q,2)) :: albedo_loc real(kind=rb),dimension(size(q,1),size(q,2),size(q,3)) :: q_tmp, h2o_vmr real(kind=rb),dimension(size(q,1),size(q,2)) :: fracsun - real(kind=rb),dimension(size(q,1),size(q,2)) :: p2 !used for annual mean insolation + real(kind=rb),dimension(size(q,1),size(q,2)) :: p2 !mp586 addition for annual mean insolation - integer :: year_in_s + integer :: year_in_s real :: r_seconds, r_days, r_total_seconds, frac_of_day, frac_of_year, gmt, time_since_ae, rrsun, dt_rad_radians, day_in_s, r_solday, r_dt_rad_avg - !mcica variables - integer :: permuteseed, irng - real(kind=rb),dimension(ncols_rrt,nlay_rrt) :: reicmcl, relqmcl - real(kind=rb),dimension(ngptsw, ncols_rrt,nlay_rrt) :: cldfmcl_sw, ciwpmcl_sw, clwpmcl_sw, taucmcl_sw, ssacmcl, asmcmcl, fsfcmcl - - real(kind=rb),dimension(ngptlw, ncols_rrt,nlay_rrt) :: cldfmcl_lw, ciwpmcl_lw, clwpmcl_lw, taucmcl_lw ! debug - - integer :: indx2(2),indx(3),ii,ji,ki, pt1,pt2 + integer :: indx2(2),indx(3),ii,ji,ki logical :: used !--------------------------------------------------------------------------------------------------------------- @@ -672,14 +645,17 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & Time_loc = Time endif +!!!!! mp586 addition for annual mean insolation !!!!! +!!!! following https://github.com/sit23/Isca/blob/master/src/atmos_param/socrates/interface/socrates_interface.F90#L888 !!!! + if (frierson_solar_rad) then p2 = (1. - 3.*sin(lat(:,:))**2)/4. coszen = 0.25 * (1.0 + del_sol * p2 + del_sw * sin(lat(:,:))) - rrsun = 1 - ! rrsun needs to be set to 1 so that stellar_radiation - ! is unchanged in socrates_interface + rrsun = 1 ! needs to be set, set to 1 so that stellar_radiation is unchanged in socrates_interface else +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! ! compute zenith angle ! this is also an output, so need to compute even if we read radiation from file @@ -711,7 +687,7 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & call diurnal_solar(lat, lon, gmt, time_since_ae, coszen, fracsun, rrsun) end if - end if + end if !mp586 addition for annual mean insolation ! input files: only deal with case where we don't need to call radiation at all if(do_read_radiation .and. do_read_sw_flux .and. do_read_lw_flux) then @@ -852,81 +828,32 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! anything lower than 0.01 (about 15min) is set to zero ! where(cosz_rr < 1.e-2)cosz_rr=0. - if (do_cloud_simple) then - !Important - please read: - ! When the simple cloud scheme was implemented into Isca, it was - ! implemented into Socrates first. This was easier to do. - ! We (Stephen Tomson and Penelope Maher) tried to get the cloud - ! scheme running for RRTM too, but did not get to the point of - ! getting it working before needing to move onto other projects. - ! The code skeleton is in place on the master so that if someone - ! wants to pick up this problem they can without this initial - ! outlay of work. - - pt1 = 1 - pt2 = ngptsw - inflglw = 2 !RRTM responsible for calculating optical properties of clouds - liqflglw = 1 !Sets liquid water radii to be used rather than being inactive (zero is inactive) - cldfr = reshape( cf_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) - reliq = reshape(reff_rad (1:si:lonstep,:,sk :1:-1),(/ si*sj/lonstep,sk /)) !already in microns - reice = zeros(pt1,:,:) !Ice particle radii not used as iceflglw=0 meaning it is inactive. Setting to fill value of zeros - else - pt1 = 1 - pt2 = 1 - cldfr = zeros(pt1,:,:) - reliq = 10*ones(pt1,:,:) ! not requires to be 10 microns but assumed a valid number - reice = 10*ones(pt1,:,:) ! needs to be 10 microns - cldfr_pass_sw(pt1,:,:) = cldfr - endif - - - if (do_cloud_simple) then - !need to run monty carlo independent column approcimation (mcica) - permuteseed = 1 - irng = 1 !use a random number gerator either 0 (Kissvec) or 1(Mersenne Twister) - - call mcica_subcol_sw(0, ncols_rrt, nlay_rrt, icld, permuteseed, irng, pfull, & - cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer_sw, zro_sw, zro_sw, zro_sw , & - !outs - cldfmcl_sw, ciwpmcl_sw, clwpmcl_sw, reicmcl, relqmcl, taucmcl_sw, ssacmcl, asmcmcl, fsfcmcl) - - cldfr_pass_sw = cldfmcl_sw - reice = reicmcl - reliq = relqmcl - taucld_sw = taucmcl_sw - !other vars not needed - endif - - - !TODO PM: the below code changes compared to the master need to be discussed with ST in detail. if(include_secondary_gases)then call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & pfull , phalf , tfull , thalf , tsrf , & - h2o , o3 , co2 , ch4_val*ones(pt1,:,:) , n2o_val*ones(pt1,:,:) , o2_val*ones(pt1,:,:) , & + h2o , o3 , co2 , ch4_val*ones , n2o_val*ones , o2_val*ones , & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & - inflglw , iceflglw , liqflglw , & + inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass_sw(pt1,:,:), & - taucld_sw , sw_zro , sw_zro , sw_zro , & - zeros(pt1,:,:) , zeros(pt1,:,:) , reice , reliq , & - tauaer_sw , zro_sw , zro_sw , zro_sw , & + zeros , taucld , sw_zro , sw_zro , sw_zro , & + zeros , zeros , 10*ones , 10*ones , & + tauaer , zro_sw , zro_sw , zro_sw , & ! output - swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) + swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) else call rrtmg_sw & (ncols_rrt, nlay_rrt , icld , iaer , & pfull , phalf , tfull , thalf , tsrf , & - h2o , o3 , co2 , zeros(pt1,:,:) , zeros(pt1,:,:), zeros(pt1,:,:), & + h2o , o3 , co2 , zeros , zeros, zeros, & albedo_rr , albedo_rr, albedo_rr, albedo_rr, & cosz_rr , solrad , dyofyr , solr_cnst, & - inflglw , iceflglw , liqflglw , & + inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass_sw(pt1,:,:), & - taucld_sw , sw_zro , sw_zro , sw_zro , & - zeros(pt1,:,:) , zeros(pt1,:,:) , reice , reliq , & - tauaer_sw , zro_sw , zro_sw , zro_sw , & + zeros , taucld , sw_zro , sw_zro , sw_zro , & + zeros , zeros , 10*ones , 10*ones , & + tauaer , zro_sw , zro_sw , zro_sw , & ! output swuflx , swdflx , swhr , swuflxc , swdflxc, swhrc) endif @@ -940,20 +867,6 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & ! swhr (:,i) = 0. ! endwhere ! enddo - - if(do_cloud_simple) then - - permuteseed = 2 - - call mcica_subcol_lw(0, ncols_rrt, nlay_rrt, icld, permuteseed, irng, pfull, & - cldfr, zeros(pt1,:,:), zeros(pt1,:,:), reice, reliq, tauaer_lw, & - cldfmcl_lw, ciwpmcl_lw, clwpmcl_lw, reicmcl, relqmcl, taucmcl_lw) - cldfr_pass_lw = cldfmcl_lw - reice = reicmcl - reliq = relqmcl - taucld_lw = taucmcl_lw - endif - swijk = reshape(swhr(:,sk:1:-1),(/ si/lonstep,sj,sk /))*daypersec @@ -966,26 +879,26 @@ subroutine run_rrtmg(is,js,Time,lat,lon,p_full,p_half, & pfull , phalf , tfull , thalf, tsrf , & h2o , o3 , co2 , & ! secondary gases - ch4_val*ones(pt1,:,:) , n2o_val*ones(pt1,:,:) , o2_val*ones(pt1,:,:) , & - cfc11_val*ones(pt1,:,:) , cfc12_val*ones(pt1,:,:) , cfc22_val*ones(pt1,:,:) , ccl4_val*ones(pt1,:,:) , & + ch4_val*ones , n2o_val*ones , o2_val*ones , & + cfc11_val*ones , cfc12_val*ones , cfc22_val*ones , ccl4_val*ones , & ! emissivity and cloud composition emis , inflglw , iceflglw , liqflglw , & ! cloud parameters - cldfr_pass_lw(pt1,:,:) , taucld_lw , zeros(pt1,:,:) , zeros(pt1,:,:) , reice, reliq, & - tauaer_lw , & + zeros , taucld , zeros , zeros , 10*ones, 10*ones, & + tauaer , & ! output uflx , dflx , hr , uflxc , dflxc , hrc) else call rrtmg_lw & (ncols_rrt, nlay_rrt, icld , idrv , & pfull , phalf , tfull , thalf, tsrf , & - h2o , o3 , co2 , zeros(pt1,:,:), zeros(pt1,:,:), zeros(pt1,:,:), & - zeros(pt1,:,:) , zeros(pt1,:,:) , zeros(pt1,:,:) , zeros(pt1,:,:), & + h2o , o3 , co2 , zeros, zeros, zeros, & + zeros , zeros , zeros , zeros, & ! emissivity and cloud composition emis , inflglw , iceflglw, liqflglw, & ! cloud parameters - cldfr_pass_lw(pt1,:,:) , taucld_lw , zeros(pt1,:,:) , zeros(pt1,:,:), reice, reliq, & - tauaer_lw , & + zeros , taucld , zeros , zeros, 10*ones, 10*ones, & + tauaer , & ! output uflx , dflx , hr , uflxc, dflxc , hrc) endif diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index dcdf822ff..31bacc238 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -1101,8 +1101,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg call interp_temp(z_full(:,:,:,current),z_half(:,:,:,current),tg_interp, Time) call run_rrtmg(is,js,Time,rad_lat(:,:),rad_lon(:,:),p_full(:,:,:,current),p_half(:,:,:,current), & albedo,grid_tracers(:,:,:,previous,nsphum),tg_interp,t_surf(:,:),dt_tg(:,:,:), & - coszen,net_surf_sw_down(:,:),surf_lw_down(:,:), cf_rad(:,:,:), reff_rad(:,:,:), & - do_cloud_simple ) + coszen,net_surf_sw_down(:,:),surf_lw_down(:,:)) endif #endif From 95074a15700df297f9cf62ddfaeccf415477267f Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Mon, 28 Jun 2021 13:22:49 +0100 Subject: [PATCH 253/304] Reverted path names for RRTM back to master. --- src/extra/model/isca/path_names | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/extra/model/isca/path_names b/src/extra/model/isca/path_names index c147c0ba3..eebdfd2b0 100644 --- a/src/extra/model/isca/path_names +++ b/src/extra/model/isca/path_names @@ -47,7 +47,7 @@ atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/modules/rrlw_wvn.f90 atmos_param/rrtm_radiation/rrtm_radiation.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/mcica_random_numbers.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_cldprop.f90 -atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rad.f90 +atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rad.nomcica.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_rtrn.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/rrtmg_lw_setcoef.f90 atmos_param/rrtm_radiation/rrtmg_lw/gcm_model/src/mcica_subcol_gen_lw.f90 @@ -83,7 +83,7 @@ atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/modules/rrsw_vsn.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/modules/rrsw_wvn.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/mcica_random_numbers.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/mcica_subcol_gen_sw.f90 -atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_rad.f90 +atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_rad.nomcica.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_cldprop.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_cldprmc.f90 atmos_param/rrtm_radiation/rrtmg_sw/gcm_model/src/rrtmg_sw_init.f90 From 656a21eb6d02c46a08fc07bf2399036d72c85c4d Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 1 Jul 2021 09:50:49 +0100 Subject: [PATCH 254/304] Found part of cloud scheme without the do_simple_cloud flag. Attempted to fix, but not code will not compile. Investigating --- .../socrates/interface/set_cld.F90 | 4 +-- .../socrates/interface/socrates_calc.F90 | 36 +++++++++++-------- .../socrates/interface/socrates_set_cld.F90 | 12 +++---- 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/src/atmos_param/socrates/interface/set_cld.F90 b/src/atmos_param/socrates/interface/set_cld.F90 index 96d2ad603..2fe19861a 100644 --- a/src/atmos_param/socrates/interface/set_cld.F90 +++ b/src/atmos_param/socrates/interface/set_cld.F90 @@ -9,7 +9,7 @@ MODULE set_cld_mod ! Subroutine to set the cloud fields for the core radiation code. !------------------------------------------------------------------------------ -SUBROUTINE set_cld(control, dimen, spectrum, cld, n_profile) +SUBROUTINE set_no_cld(control, dimen, spectrum, cld, n_profile) USE rad_pcf USE def_spectrum, ONLY: StrSpecData @@ -41,5 +41,5 @@ SUBROUTINE set_cld(control, dimen, spectrum, cld, n_profile) CALL allocate_cld(cld, dimen, spectrum) CALL allocate_cld_prsc(cld, dimen, spectrum) -END SUBROUTINE set_cld +END SUBROUTINE set_no_cld END MODULE set_cld_mod diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index c4a6018ff..79f7e1e05 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -33,10 +33,10 @@ subroutine socrates_calc(Time_diag,control, spectrum, & t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity, & layer_heat_capacity, & - cld_frac, cld_conv_frac, reff_rad, mmr_cl_rad, & + cld_frac, cld_conv_frac, reff_rad, mmr_cl_rad, do_cloud_simple, & flux_direct, flux_down, flux_up, & flux_down_clear, flux_up_clear, & - heating_rate, spectral_olr) + heating_rate, spectral_olr) use rad_pcf use def_control, only: StrCtrl @@ -52,7 +52,8 @@ subroutine socrates_calc(Time_diag,control, spectrum, & use set_dimen_mod, only: set_dimen use set_atm_mod, only: set_atm use set_bound_mod, only: set_bound -use socrates_set_cld, only: set_cld +use socrates_set_cld_mod, only: set_simple_cld +use set_cld_mod, only: set_no_cld use set_aer_mod, only: set_aer use soc_constants_mod, only: i_def, r_def @@ -129,6 +130,9 @@ subroutine socrates_calc(Time_diag,control, spectrum, & real(r_def), intent(in) :: mmr_cl_rad(n_profile, n_layer) ! Cloud liquid mmr at layer centres +logical, INTENT(in) :: do_cloud_simple +! Logical for if cloud scheme is on or not + real(r_def), intent(out) :: flux_direct(n_profile, 0:n_layer) ! Direct (unscattered) downwards flux (Wm-2) real(r_def), intent(out) :: flux_down(n_profile, 0:n_layer), & @@ -143,7 +147,6 @@ subroutine socrates_calc(Time_diag,control, spectrum, & REAL(r_def), INTENT(inout), optional :: spectral_olr(:,:) ! Spectral OLR - ! Dimensions: TYPE (StrDim) :: dimen @@ -183,17 +186,20 @@ subroutine socrates_calc(Time_diag,control, spectrum, & t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity) - - zeros_cld = 0. - ten_microns_cld = 1. -call set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & - conv_frac = cld_conv_frac,& - liq_frac = cld_frac, & - ice_frac = zeros_cld, & - liq_mmr = mmr_cl_rad, & - ice_mmr = zeros_cld, & - liq_dim = reff_rad, & - ice_dim = zeros_cld ) + !if (do_cloud_simple) then + zeros_cld = 0. + ten_microns_cld = 1. + call set_simple_cld(cld, control, dimen, spectrum, n_profile, n_layer, & + conv_frac = cld_conv_frac,& + liq_frac = cld_frac, & + ice_frac = zeros_cld, & + liq_mmr = mmr_cl_rad, & + ice_mmr = zeros_cld, & + liq_dim = reff_rad, & + ice_dim = zeros_cld ) + !else + ! call set_no_cld(control, dimen, spectrum, cld, n_profile) + !endif call set_aer(control, dimen, spectrum, aer, n_profile) diff --git a/src/atmos_param/socrates/interface/socrates_set_cld.F90 b/src/atmos_param/socrates/interface/socrates_set_cld.F90 index 3af8423b8..f544c26f4 100644 --- a/src/atmos_param/socrates/interface/socrates_set_cld.F90 +++ b/src/atmos_param/socrates/interface/socrates_set_cld.F90 @@ -7,12 +7,12 @@ ! Set the variables in the Socrates cloud type ! !------------------------------------------------------------------------------ -module socrates_set_cld +module socrates_set_cld_mod implicit none -character(len=*), parameter, private :: ModuleName = 'SOCRATES_SET_CLD' +character(len=*), parameter, private :: ModuleName = 'SOCRATES_SET_CLD_MOD' contains -subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & +subroutine set_simple_cld(cld, control, dimen, spectrum, n_profile, n_layer, & cloud_frac, conv_frac, & liq_frac, ice_frac, liq_conv_frac, ice_conv_frac, & liq_mmr, ice_mmr, liq_conv_mmr, ice_conv_mmr, & @@ -81,7 +81,7 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & real(r_def) :: min_cloud_fraction = 0.0001 integer :: ierr = i_normal -character (len=*), parameter :: RoutineName = 'SET_CLD' +character (len=*), parameter :: RoutineName = 'SET_SIMPLE_CLD' character (len=128) :: cmessage ! Functions called @@ -499,5 +499,5 @@ subroutine set_cld(cld, control, dimen, spectrum, n_profile, n_layer, & end do end do -end subroutine set_cld -end module socrates_set_cld +end subroutine set_simple_cld +end module socrates_set_cld_mod From 8c39828d3b57ec611857eaaa6036fbe3436cf51b Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 1 Jul 2021 10:04:51 +0100 Subject: [PATCH 255/304] Forgot to pass cloud logical flat back to interface. Will not compile with the subroutine name set_no_cld. No idea why. --- src/atmos_param/socrates/interface/set_cld.F90 | 4 ++-- src/atmos_param/socrates/interface/socrates_calc.F90 | 10 +++++----- .../socrates/interface/socrates_interface.F90 | 4 +++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/atmos_param/socrates/interface/set_cld.F90 b/src/atmos_param/socrates/interface/set_cld.F90 index 2fe19861a..96d2ad603 100644 --- a/src/atmos_param/socrates/interface/set_cld.F90 +++ b/src/atmos_param/socrates/interface/set_cld.F90 @@ -9,7 +9,7 @@ MODULE set_cld_mod ! Subroutine to set the cloud fields for the core radiation code. !------------------------------------------------------------------------------ -SUBROUTINE set_no_cld(control, dimen, spectrum, cld, n_profile) +SUBROUTINE set_cld(control, dimen, spectrum, cld, n_profile) USE rad_pcf USE def_spectrum, ONLY: StrSpecData @@ -41,5 +41,5 @@ SUBROUTINE set_no_cld(control, dimen, spectrum, cld, n_profile) CALL allocate_cld(cld, dimen, spectrum) CALL allocate_cld_prsc(cld, dimen, spectrum) -END SUBROUTINE set_no_cld +END SUBROUTINE set_cld END MODULE set_cld_mod diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index 79f7e1e05..4bed571f1 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -53,7 +53,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, & use set_atm_mod, only: set_atm use set_bound_mod, only: set_bound use socrates_set_cld_mod, only: set_simple_cld -use set_cld_mod, only: set_no_cld +use set_cld_mod, only: set_cld use set_aer_mod, only: set_aer use soc_constants_mod, only: i_def, r_def @@ -186,7 +186,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, & t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity) - !if (do_cloud_simple) then + if (do_cloud_simple) then zeros_cld = 0. ten_microns_cld = 1. call set_simple_cld(cld, control, dimen, spectrum, n_profile, n_layer, & @@ -197,9 +197,9 @@ subroutine socrates_calc(Time_diag,control, spectrum, & ice_mmr = zeros_cld, & liq_dim = reff_rad, & ice_dim = zeros_cld ) - !else - ! call set_no_cld(control, dimen, spectrum, cld, n_profile) - !endif + else + call set_cld(control, dimen, spectrum, cld, n_profile) + endif call set_aer(control, dimen, spectrum, aer, n_profile) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index a5abe3219..4e45bdfa9 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -745,6 +745,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + do_cloud_simple, & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & soc_flux_down(idx_chunk_start:idx_chunk_end,:), & soc_flux_up(idx_chunk_start:idx_chunk_end,:), & @@ -776,7 +777,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_cld_frac(idx_chunk_start:idx_chunk_end,:), & input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & input_reff_rad(idx_chunk_start:idx_chunk_end,:), & - input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + do_cloud_simple, & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & soc_flux_down(idx_chunk_start:idx_chunk_end,:), & soc_flux_up(idx_chunk_start:idx_chunk_end,:), & From 803051d923fd878259786d070b5d6ca15e11b8a1 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 1 Jul 2021 10:45:01 +0100 Subject: [PATCH 256/304] Testing if nd_layer_clr is the case for difference in the trip test --- src/atmos_param/socrates/interface/set_dimen.F90 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index da18d8473..a1d835cba 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -65,7 +65,12 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & ! this gives the allocate the full column for radiation ! rather than the layers over which cloud is present -dimen%nd_layer_clr = dimen%nd_layer +!dimen%nd_layer_clr = dimen%nd_layer +IF (control%l_cloud) THEN + dimen%nd_layer_clr = dimen%id_cloud_top - 1 +ELSE + dimen%nd_layer_clr = dimen%nd_layer +END IF ! Aerosol dimen%nd_aerosol_mode = MAX(1,n_aer_mode) From 35d666cc2b5aec42d93d32ff61fc34aef136140f Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Thu, 1 Jul 2021 10:56:22 +0100 Subject: [PATCH 257/304] Not the case of the trip test fail --- src/atmos_param/socrates/interface/set_dimen.F90 | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index a1d835cba..da18d8473 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -65,12 +65,7 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & ! this gives the allocate the full column for radiation ! rather than the layers over which cloud is present -!dimen%nd_layer_clr = dimen%nd_layer -IF (control%l_cloud) THEN - dimen%nd_layer_clr = dimen%id_cloud_top - 1 -ELSE - dimen%nd_layer_clr = dimen%nd_layer -END IF +dimen%nd_layer_clr = dimen%nd_layer ! Aerosol dimen%nd_aerosol_mode = MAX(1,n_aer_mode) From d69839e07840af6e7cdc7c3aa2c1edd40d8fcf59 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 2 Jul 2021 10:00:08 +0100 Subject: [PATCH 258/304] Removed the four vars used in the simple cloud scheme to test if they are the case of the change in SOC behaviour --- .../socrates/interface/socrates_interface.F90 | 30 +++++++++---------- .../driver/solo/idealized_moist_phys.F90 | 8 ++--- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index 4e45bdfa9..effab2a19 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -809,7 +809,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & end subroutine socrates_interface subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf_in, p_full_in, p_half_in, z_full_in, z_half_in, albedo_in, & - temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple, cf_rad, cca_rad, reff_rad, qcl_rad) + temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple)!, cf_rad, cca_rad, reff_rad, qcl_rad) use astronomy_mod, only: diurnal_solar use constants_mod, only: pi, wtmco2, wtmozone, rdgas, gas_constant @@ -825,7 +825,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down real, intent(in) :: delta_t logical, intent(in) :: do_cloud_simple - real, intent(in), dimension(:,:,:) :: cf_rad, cca_rad, reff_rad, qcl_rad + !real, intent(in), dimension(:,:,:) :: cf_rad, cca_rad, reff_rad, qcl_rad integer(i_def) :: n_profile, n_layer @@ -1155,23 +1155,23 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif endif + !turn off the cloud scheme for trip test error finding + ! if(do_cloud_simple) then + ! cld_frac_soc = REAL(cf_rad, kind(r_def)) + ! cld_conv_frac_soc = REAL(cca_rad, kind(r_def)) - if(do_cloud_simple) then - cld_frac_soc = REAL(cf_rad, kind(r_def)) - cld_conv_frac_soc = REAL(cca_rad, kind(r_def)) + ! reff_rad_soc = REAL(reff_rad, kind(r_def)) - reff_rad_soc = REAL(reff_rad, kind(r_def)) - - qcl_rad_soc = REAL(qcl_rad, kind(r_def)) - mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) !check if qcl is indeed specific humidity and not mmr + ! qcl_rad_soc = REAL(qcl_rad, kind(r_def)) + ! mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) !check if qcl is indeed specific humidity and not mmr - else - cld_frac_soc = 0. - cld_conv_frac_soc = 0. - reff_rad_soc = 0. - mmr_cl_rad_soc = 0. + ! else + ! cld_frac_soc = 0. + ! cld_conv_frac_soc = 0. + ! reff_rad_soc = 0. + ! mmr_cl_rad_soc = 0. - endif + ! endif n_profile = INT(size(temp_in,2)*size(temp_in,1), kind(i_def)) n_layer = INT(size(temp_in,3), kind(i_def)) t_surf_for_soc = REAL(t_surf_in(:,:), kind(r_def)) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 31bacc238..354eea7e3 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -967,7 +967,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! initialise outs to zero -cf_rad(:,:,:) = 0. +cf_rad(:,:,:) = 0. !TODO could it be setting to zero? reff_rad(:,:,:) = 0. qcl_rad(:,:,:) = 0. cca_rad(:,:,:) = 0. @@ -1116,7 +1116,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg if(do_cloud_simple) then ! Simple cloud scheme outputs radii in microns, but Socrates expects ! it in metres so convert it. - reff_rad = 1.e-6 * reff_rad + reff_rad = 1.e-6 * reff_rad endif call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, & @@ -1125,8 +1125,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg p_half(:,:,:,current), z_full(:,:,:,current), & z_half(:,:,:,current), albedo, dt_tg(:,:,:), & net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, & - do_cloud_simple, cf_rad(:,:,:), cca_rad(:,:,:), & - reff_rad(:,:,:), qcl_rad(:,:,:) ) + do_cloud_simple)!, cf_rad(:,:,:), cca_rad(:,:,:), & !TODO what happens when these are off? + !reff_rad(:,:,:), qcl_rad(:,:,:)) endif #endif From a367654c8cd8f146b4531b004703d1d78e3ab326 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 2 Jul 2021 10:40:04 +0100 Subject: [PATCH 259/304] Manually turned off all cloud related sections and vars --- .../driver/solo/idealized_moist_phys.F90 | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 354eea7e3..adc938875 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -350,9 +350,9 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l d622 = rdgas/rvgas d378 = 1.-d622 -if(do_cloud_simple) then - call cloud_simple_init(get_axis_id(), Time) -end if +!if(do_cloud_simple) then +! call cloud_simple_init(get_axis_id(), Time) +!end if !s need to make sure that gray radiation and rrtm radiation are not both called. if(two_stream_gray .and. do_rrtm_radiation) & @@ -797,7 +797,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv ! Simple cloud scheme variabilies to pass to radiation -real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad, cca_rad +!real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad, cca_rad real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot @@ -967,23 +967,23 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! initialise outs to zero -cf_rad(:,:,:) = 0. !TODO could it be setting to zero? -reff_rad(:,:,:) = 0. -qcl_rad(:,:,:) = 0. -cca_rad(:,:,:) = 0. +!cf_rad(:,:,:) = 0. !TODO could it be setting to zero? +!reff_rad(:,:,:) = 0. +!qcl_rad(:,:,:) = 0. +!cca_rad(:,:,:) = 0. -if(do_cloud_simple) then +!if(do_cloud_simple) then - call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & - Time, & - tg(:,:,:,previous), & - grid_tracers(:,:,:,previous,nsphum), & - ! inouts - - cf_rad(:,:,:), cca_rad(:,:,:), & - reff_rad(:,:,:), qcl_rad(:,:,:) & - ) +! call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & +! Time, & +! tg(:,:,:,previous), & +! grid_tracers(:,:,:,previous,nsphum), & +! ! inouts - +! cf_rad(:,:,:), cca_rad(:,:,:), & +! reff_rad(:,:,:), qcl_rad(:,:,:) & +! ) -endif +!endif ! Begin the radiation calculation by computing downward fluxes. ! This part of the calculation does not depend on the surface temperature. @@ -1113,11 +1113,11 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg if (do_socrates_radiation) then ! Socrates interface - if(do_cloud_simple) then - ! Simple cloud scheme outputs radii in microns, but Socrates expects - ! it in metres so convert it. - reff_rad = 1.e-6 * reff_rad - endif + !if(do_cloud_simple) then + ! ! Simple cloud scheme outputs radii in microns, but Socrates expects + ! ! it in metres so convert it. + ! reff_rad = 1.e-6 * reff_rad + !endif call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, & tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), & From 665d967a4197eca594fb60e057ec11081ecebad8 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 2 Jul 2021 10:54:58 +0100 Subject: [PATCH 260/304] Removed more cloud vars --- .../socrates/interface/socrates_calc.F90 | 37 ++++++++-------- .../socrates/interface/socrates_interface.F90 | 42 +++++++++---------- 2 files changed, 40 insertions(+), 39 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index 4bed571f1..9bdded661 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -33,7 +33,8 @@ subroutine socrates_calc(Time_diag,control, spectrum, & t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity, & layer_heat_capacity, & - cld_frac, cld_conv_frac, reff_rad, mmr_cl_rad, do_cloud_simple, & + !cld_frac, cld_conv_frac, reff_rad, mmr_cl_rad, + do_cloud_simple, & flux_direct, flux_down, flux_up, & flux_down_clear, flux_up_clear, & heating_rate, spectral_olr) @@ -118,16 +119,16 @@ subroutine socrates_calc(Time_diag,control, spectrum, & real(r_def), intent(in) :: layer_heat_capacity(n_profile, n_layer) ! Heat capacity of layer -real(r_def), intent(in) :: cld_frac(n_profile, n_layer) +!real(r_def), intent(in) :: cld_frac(n_profile, n_layer) ! Cloud fraction at layer centres for stratocumulus cloud -real(r_def), intent(in) :: cld_conv_frac(n_profile, n_layer) +!real(r_def), intent(in) :: cld_conv_frac(n_profile, n_layer) ! Cloud fraction at layer centres for convective cloud -real(r_def), intent(in) :: reff_rad(n_profile, n_layer) +!real(r_def), intent(in) :: reff_rad(n_profile, n_layer) ! Cloud liquid particle radius from simple cloud scheme -real(r_def), intent(in) :: mmr_cl_rad(n_profile, n_layer) +!real(r_def), intent(in) :: mmr_cl_rad(n_profile, n_layer) ! Cloud liquid mmr at layer centres logical, INTENT(in) :: do_cloud_simple @@ -186,20 +187,20 @@ subroutine socrates_calc(Time_diag,control, spectrum, & t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity) - if (do_cloud_simple) then - zeros_cld = 0. - ten_microns_cld = 1. - call set_simple_cld(cld, control, dimen, spectrum, n_profile, n_layer, & - conv_frac = cld_conv_frac,& - liq_frac = cld_frac, & - ice_frac = zeros_cld, & - liq_mmr = mmr_cl_rad, & - ice_mmr = zeros_cld, & - liq_dim = reff_rad, & - ice_dim = zeros_cld ) - else +! if (do_cloud_simple) then +! zeros_cld = 0. +! ten_microns_cld = 1. +! call set_simple_cld(cld, control, dimen, spectrum, n_profile, n_layer, & +! conv_frac = cld_conv_frac,& +! liq_frac = cld_frac, & +! ice_frac = zeros_cld, & +! liq_mmr = mmr_cl_rad, & +! ice_mmr = zeros_cld, & +! liq_dim = reff_rad, & +! ice_dim = zeros_cld ) +! else call set_cld(control, dimen, spectrum, cld, n_profile) - endif +! endif call set_aer(control, dimen, spectrum, aer, n_profile) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index effab2a19..e662cea34 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -500,7 +500,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, & fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, & fms_coszen, fms_rrsun, n_profile, n_layer, & - fms_cld_frac, fms_cld_conv_frac, fms_reff_rad, fms_mmr_cl_rad,& + !fms_cld_frac, fms_cld_conv_frac, fms_reff_rad, fms_mmr_cl_rad,& output_heating_rate, output_flux_down, output_flux_up, & output_flux_down_clear, output_flux_up_clear, & do_cloud_simple, & @@ -544,8 +544,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), intent(in) :: rlat(:,:) real(r_def), intent(in) :: fms_z_full(:,:,:), fms_z_half(:,:,:) real(r_def), intent(in) :: fms_rrsun - real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) - real(r_def), intent(in) :: fms_cld_conv_frac(:,:,:) + !real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) + !real(r_def), intent(in) :: fms_cld_conv_frac(:,:,:) logical, intent(in) :: do_cloud_simple @@ -568,8 +568,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), dimension(n_profile, n_layer) :: input_p, input_t, input_mixing_ratio, & input_d_mass, input_density, input_layer_heat_capacity, & soc_heating_rate, input_o3_mixing_ratio, & - input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad, & - input_cld_conv_frac + input_co2_mixing_ratio,z_full_reshaped!, input_cld_frac, input_reff_rad, input_mmr_cl_rad, & + !input_cld_conv_frac real(r_def), dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & soc_flux_down, soc_flux_up, z_half_reshaped, & @@ -615,11 +615,11 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_p = reshape(fms_p_full(:,:,:),(/si*sj,sk /)) input_p_level = reshape(fms_p_half(:,:,:),(/si*sj,sk+1 /)) - input_cld_frac = reshape(fms_cld_frac(:,:,:),(/si*sj,sk /)) - input_cld_conv_frac = reshape(fms_cld_conv_frac(:,:,:),(/si*sj,sk /)) + !input_cld_frac = reshape(fms_cld_frac(:,:,:),(/si*sj,sk /)) + !input_cld_conv_frac = reshape(fms_cld_conv_frac(:,:,:),(/si*sj,sk /)) - input_reff_rad = reshape(fms_reff_rad(:,:,:),(/si*sj,sk /)) - input_mmr_cl_rad = reshape(fms_mmr_cl_rad(:,:,:),(/si*sj,sk/)) + !input_reff_rad = reshape(fms_reff_rad(:,:,:),(/si*sj,sk /)) + !input_mmr_cl_rad = reshape(fms_mmr_cl_rad(:,:,:),(/si*sj,sk/)) if (account_for_effect_of_water == .true.) then input_mixing_ratio = reshape(fms_spec_hum(:,:,:) / (1. - fms_spec_hum(:,:,:)),(/si*sj,sk /)) !Mass mixing ratio = q / (1-q) @@ -741,10 +741,10 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_albedo(idx_chunk_start:idx_chunk_end), & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & - input_cld_frac(idx_chunk_start:idx_chunk_end,:), & - input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & - input_reff_rad(idx_chunk_start:idx_chunk_end,:), & - input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + !input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + !input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & + !input_reff_rad(idx_chunk_start:idx_chunk_end,:), & + !input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & do_cloud_simple, & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & soc_flux_down(idx_chunk_start:idx_chunk_end,:), & @@ -774,10 +774,10 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_albedo(idx_chunk_start:idx_chunk_end), & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & - input_cld_frac(idx_chunk_start:idx_chunk_end,:), & - input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & - input_reff_rad(idx_chunk_start:idx_chunk_end,:), & - input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + !input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + !input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & + !input_reff_rad(idx_chunk_start:idx_chunk_end,:), & + !input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & do_cloud_simple, & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & soc_flux_down(idx_chunk_start:idx_chunk_end,:), & @@ -833,8 +833,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: output_heating_rate_sw, output_heating_rate_lw real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: output_heating_rate_total, z_full_soc - real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: cld_frac_soc, cld_conv_frac_soc - real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc +! real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: cld_frac_soc, cld_conv_frac_soc +! real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, z_half_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: output_soc_flux_sw_down, output_soc_flux_sw_up @@ -1194,7 +1194,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & - n_profile, n_layer, cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc,& + n_profile, n_layer, &!cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc,& output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, & output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear, & do_cloud_simple, & @@ -1225,7 +1225,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & - n_profile, n_layer, cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + n_profile, n_layer, &!cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, & output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear, & do_cloud_simple) From 67d951e8050b0130d4afb98cde901bf1e6908873 Mon Sep 17 00:00:00 2001 From: Penelope Maher Date: Fri, 2 Jul 2021 11:26:18 +0100 Subject: [PATCH 261/304] Reverting to master version of this file. Still bug finding --- src/atmos_param/socrates/interface/set_dimen.F90 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index da18d8473..e99a90de2 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -65,7 +65,13 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & ! this gives the allocate the full column for radiation ! rather than the layers over which cloud is present -dimen%nd_layer_clr = dimen%nd_layer +!dimen%nd_layer_clr = dimen%nd_layer + +IF (control%l_cloud) THEN + dimen%nd_layer_clr = dimen%id_cloud_top - 1 +ELSE + dimen%nd_layer_clr = dimen%nd_layer +END IF ! Aerosol dimen%nd_aerosol_mode = MAX(1,n_aer_mode) From 9b7717bfc3e3fa86124066afc117e1ac0f827e06 Mon Sep 17 00:00:00 2001 From: daw538 Date: Mon, 5 Jul 2021 16:00:48 +0100 Subject: [PATCH 262/304] Modified to allow release with current version of isca. Full documentation orginally uploaded with docs PR will be saved for when the changes to constants.f90 can be implemented without trip test issues --- docs/source/modules/constants.rst | 57 +++++-------------------------- 1 file changed, 9 insertions(+), 48 deletions(-) diff --git a/docs/source/modules/constants.rst b/docs/source/modules/constants.rst index 5a7244119..2be2f6685 100644 --- a/docs/source/modules/constants.rst +++ b/docs/source/modules/constants.rst @@ -21,12 +21,8 @@ Below are a set of controls that allow the physical size and rotation of a plane +---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ |``omega`` | :math:`7.2921150\times 10^{-5}` | rad :math:`\cdot` s :math:`^{-1}`| Rotation rate of planet | +---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ -|``rotation_period`` | :math:`-1.0` (inactive) | s | Rotation period of planet (overrides ``omega`` ) | -+---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ |``orbital_period`` | :math:`31557600` | s | Orbital period of planet | +---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ -|``orbital_rate`` | :math:`2\pi` / ``orbital_period``| rad :math:`\cdot` s :math:`^{-1}`| Orbital rate of planet | -+---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ |``solar_constant`` | :math:`1368.22` | Wm :math:`^{-2}` | Stellar irradiance | +---------------------+----------------------------------+----------------------------------+-----------------------------------------------------------+ |``earthday_multiple``| False | n/a | Modifies seconds per sol calculation (planetary solar day)| @@ -42,10 +38,10 @@ whereas setting ``earthday_multiple`` to true modifies the calculation to .. note:: Whilst the rotation and orbital rates are set within this module, other parameters associated with planetary motion such as axial tilt (obliquity) and eccentricity are controlled from the ``astronomy_mod`` module. -Dry Atmosphere -^^^^^^^^^^^^^^ +Atmospheric Parameters +^^^^^^^^^^^^^^^^^^^^^^ -Changing the dry atmosphere values allows atmospheres with a wide range of compositions to be studied, including both terrestrial planets (e.g. Earth) and gas giants such as Jupiter. In the case of Earth, the reference surface pressure is taken to be the mean sea level pressure. +Changing the basic atmospheric properties allows atmospheres with a wide range of compositions to be studied, including both terrestrial planets (e.g. Earth/Mars) and gas giants such as Jupiter. In the case of Earth, the reference surface pressure is taken to be the mean sea level pressure. The dry air gas constant for any homogeneous atmosphere can be calculated from its chemical composition. It is calculated by dividing the universal gas constant :math:`R` by the average molar mass of the atmosphere. @@ -60,51 +56,16 @@ The dry air gas constant for any homogeneous atmosphere can be calculated from i +------------+----------------------------+-------------------------------------+-------------------------------------------------------+ |``kappa`` | :math:`2/7` | dimensionless | Heat capacity ratio ( :math:`\gamma` for an ideal gas)| +------------+----------------------------+-------------------------------------+-------------------------------------------------------+ - -.. note:: If the mean surface pressure value is changed here, it is necessary to also set ``reference_sea_level_press`` from the ``spectral_dynamics`` namelist, else the output file will not extend to the pressure specified. - - -Moist Atmosphere -^^^^^^^^^^^^^^^^ - -With the addition of moist physics, a number of additional namelist parameters can be used to change the primary condensate present in the atmosphere. This allows atmospheres in temperature regimes significantly different from Earth to be modelled, including Titan, which has an active methane cycle. - -+---------------+-------------------------+----------------------------------+-------------------------------------------+ -| Name | Default | Units | Description | -+===============+=========================+==================================+===========================================+ -|``rvgas`` | :math:`461.50` | Jkg :math:`^{-1}` K :math:`^{-1}`| Vapour gas constant | -+---------------+-------------------------+----------------------------------+-------------------------------------------+ -|``dens_liquid``| :math:`1000` | kgm :math:`^{-3}` | Density of condensate in the liquid phase | -+---------------+-------------------------+----------------------------------+-------------------------------------------+ -|``hlv`` | :math:`2.500\times 10^6`| Jkg :math:`^{-1}` | Latent heat of vaporisation of condensate| -+---------------+-------------------------+----------------------------------+-------------------------------------------+ -|``hlf`` | :math:`3.34\times 10^5` | Jkg :math:`^{-1}` | Latent heat of fusion of condensate | -+---------------+-------------------------+----------------------------------+-------------------------------------------+ -|``tfreeze`` | :math:`273.16` | K | Freezing point of condensate | -+---------------+-------------------------+----------------------------------+-------------------------------------------+ -|``tppress`` | :math:`610.78` | Pa / Nm :math:`^{-2}` | Triple point pressure of condensate | -+---------------+-------------------------+----------------------------------+-------------------------------------------+ -|``es0`` | :math:`1.0` | dimensionless | Humidity factor :math:`^\dagger` | -+---------------+-------------------------+----------------------------------+-------------------------------------------+ +|``es0`` | :math:`1.0` | dimensionless | Humidity factor :math:`^\dagger` | ++------------+----------------------------+-------------------------------------+-------------------------------------------------------+ :math:`^\dagger`: The humidity factor controls the atmospheric humidity content via the expression for saturation vapor pressure *if* ``do_simple: True`` is set within the ``idealized_moist_phys`` namelist. -Derived Constants -^^^^^^^^^^^^^^^^^ - -From the above namelist variables a few more derived atmospheric constants are calculated that are called by other modules, these are: - -+------------+-----------------------+---------------------------------+------------------------------------------+ -| Name | Default | Units | Description | -+============+=======================+=================================+==========================================+ -|``cp_air`` | ``rvgas`` / ``kappa`` |Jkg :math:`^{-1}` K :math:`^{-1}`| Dry air heat capacity | -+------------+-----------------------+---------------------------------+------------------------------------------+ -|``cp_vapor``| :math:`4` * ``rvgas`` |Jkg :math:`^{-1}` K :math:`^{-1}`| Vapour heat capacity | -+------------+-----------------------+---------------------------------+------------------------------------------+ -|``hls`` |``hlv`` + ``hlf`` |Jkg :math:`^{-1}` | Latent heat of sublimation of condensate | -+------------+-----------------------+---------------------------------+------------------------------------------+ - +.. note:: If the mean surface pressure value is changed here, it is necessary to also set ``reference_sea_level_press`` from the ``spectral_dynamics`` namelist, else the output file will not extend to the pressure specified. +Moist Atmospheres +^^^^^^^^^^^^^^^^^ +We hope to be able to introduce controls for moist atmospheres in a future update to Isca. This will allow condensable species other than water to be easily modelled. Relevant Modules ---------------- From 0282f7bdc67453a3168ddd08a808594895b394af Mon Sep 17 00:00:00 2001 From: sit23 Date: Mon, 12 Jul 2021 14:42:02 +0100 Subject: [PATCH 263/304] Revert "Reverting to master version of this file. Still bug finding" This reverts commit 67d951e8050b0130d4afb98cde901bf1e6908873. --- src/atmos_param/socrates/interface/set_dimen.F90 | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index e99a90de2..da18d8473 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -65,13 +65,7 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & ! this gives the allocate the full column for radiation ! rather than the layers over which cloud is present -!dimen%nd_layer_clr = dimen%nd_layer - -IF (control%l_cloud) THEN - dimen%nd_layer_clr = dimen%id_cloud_top - 1 -ELSE - dimen%nd_layer_clr = dimen%nd_layer -END IF +dimen%nd_layer_clr = dimen%nd_layer ! Aerosol dimen%nd_aerosol_mode = MAX(1,n_aer_mode) From 2d7ee520b52bbd984b4565e129fe072db06eceb0 Mon Sep 17 00:00:00 2001 From: sit23 Date: Mon, 12 Jul 2021 14:42:19 +0100 Subject: [PATCH 264/304] Revert "Removed more cloud vars" This reverts commit 665d967a4197eca594fb60e057ec11081ecebad8. --- .../socrates/interface/socrates_calc.F90 | 37 ++++++++-------- .../socrates/interface/socrates_interface.F90 | 42 +++++++++---------- 2 files changed, 39 insertions(+), 40 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_calc.F90 b/src/atmos_param/socrates/interface/socrates_calc.F90 index 9bdded661..4bed571f1 100644 --- a/src/atmos_param/socrates/interface/socrates_calc.F90 +++ b/src/atmos_param/socrates/interface/socrates_calc.F90 @@ -33,8 +33,7 @@ subroutine socrates_calc(Time_diag,control, spectrum, & t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity, & layer_heat_capacity, & - !cld_frac, cld_conv_frac, reff_rad, mmr_cl_rad, - do_cloud_simple, & + cld_frac, cld_conv_frac, reff_rad, mmr_cl_rad, do_cloud_simple, & flux_direct, flux_down, flux_up, & flux_down_clear, flux_up_clear, & heating_rate, spectral_olr) @@ -119,16 +118,16 @@ subroutine socrates_calc(Time_diag,control, spectrum, & real(r_def), intent(in) :: layer_heat_capacity(n_profile, n_layer) ! Heat capacity of layer -!real(r_def), intent(in) :: cld_frac(n_profile, n_layer) +real(r_def), intent(in) :: cld_frac(n_profile, n_layer) ! Cloud fraction at layer centres for stratocumulus cloud -!real(r_def), intent(in) :: cld_conv_frac(n_profile, n_layer) +real(r_def), intent(in) :: cld_conv_frac(n_profile, n_layer) ! Cloud fraction at layer centres for convective cloud -!real(r_def), intent(in) :: reff_rad(n_profile, n_layer) +real(r_def), intent(in) :: reff_rad(n_profile, n_layer) ! Cloud liquid particle radius from simple cloud scheme -!real(r_def), intent(in) :: mmr_cl_rad(n_profile, n_layer) +real(r_def), intent(in) :: mmr_cl_rad(n_profile, n_layer) ! Cloud liquid mmr at layer centres logical, INTENT(in) :: do_cloud_simple @@ -187,20 +186,20 @@ subroutine socrates_calc(Time_diag,control, spectrum, & t_rad_surf, cos_zenith_angle, solar_irrad, orog_corr, & l_planet_grey_surface, planet_albedo, planet_emissivity) -! if (do_cloud_simple) then -! zeros_cld = 0. -! ten_microns_cld = 1. -! call set_simple_cld(cld, control, dimen, spectrum, n_profile, n_layer, & -! conv_frac = cld_conv_frac,& -! liq_frac = cld_frac, & -! ice_frac = zeros_cld, & -! liq_mmr = mmr_cl_rad, & -! ice_mmr = zeros_cld, & -! liq_dim = reff_rad, & -! ice_dim = zeros_cld ) -! else + if (do_cloud_simple) then + zeros_cld = 0. + ten_microns_cld = 1. + call set_simple_cld(cld, control, dimen, spectrum, n_profile, n_layer, & + conv_frac = cld_conv_frac,& + liq_frac = cld_frac, & + ice_frac = zeros_cld, & + liq_mmr = mmr_cl_rad, & + ice_mmr = zeros_cld, & + liq_dim = reff_rad, & + ice_dim = zeros_cld ) + else call set_cld(control, dimen, spectrum, cld, n_profile) -! endif + endif call set_aer(control, dimen, spectrum, aer, n_profile) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index e662cea34..effab2a19 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -500,7 +500,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & fms_temp, fms_spec_hum, fms_ozone, fms_co2, fms_t_surf, & fms_p_full, fms_p_half, fms_z_full, fms_z_half, fms_albedo, & fms_coszen, fms_rrsun, n_profile, n_layer, & - !fms_cld_frac, fms_cld_conv_frac, fms_reff_rad, fms_mmr_cl_rad,& + fms_cld_frac, fms_cld_conv_frac, fms_reff_rad, fms_mmr_cl_rad,& output_heating_rate, output_flux_down, output_flux_up, & output_flux_down_clear, output_flux_up_clear, & do_cloud_simple, & @@ -544,8 +544,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), intent(in) :: rlat(:,:) real(r_def), intent(in) :: fms_z_full(:,:,:), fms_z_half(:,:,:) real(r_def), intent(in) :: fms_rrsun - !real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) - !real(r_def), intent(in) :: fms_cld_conv_frac(:,:,:) + real(r_def), intent(in) :: fms_cld_frac(:,:,:), fms_reff_rad(:,:,:), fms_mmr_cl_rad(:,:,:) + real(r_def), intent(in) :: fms_cld_conv_frac(:,:,:) logical, intent(in) :: do_cloud_simple @@ -568,8 +568,8 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & real(r_def), dimension(n_profile, n_layer) :: input_p, input_t, input_mixing_ratio, & input_d_mass, input_density, input_layer_heat_capacity, & soc_heating_rate, input_o3_mixing_ratio, & - input_co2_mixing_ratio,z_full_reshaped!, input_cld_frac, input_reff_rad, input_mmr_cl_rad, & - !input_cld_conv_frac + input_co2_mixing_ratio,z_full_reshaped, input_cld_frac, input_reff_rad, input_mmr_cl_rad, & + input_cld_conv_frac real(r_def), dimension(n_profile, 0:n_layer) :: input_p_level, input_t_level, soc_flux_direct, & soc_flux_down, soc_flux_up, z_half_reshaped, & @@ -615,11 +615,11 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_p = reshape(fms_p_full(:,:,:),(/si*sj,sk /)) input_p_level = reshape(fms_p_half(:,:,:),(/si*sj,sk+1 /)) - !input_cld_frac = reshape(fms_cld_frac(:,:,:),(/si*sj,sk /)) - !input_cld_conv_frac = reshape(fms_cld_conv_frac(:,:,:),(/si*sj,sk /)) + input_cld_frac = reshape(fms_cld_frac(:,:,:),(/si*sj,sk /)) + input_cld_conv_frac = reshape(fms_cld_conv_frac(:,:,:),(/si*sj,sk /)) - !input_reff_rad = reshape(fms_reff_rad(:,:,:),(/si*sj,sk /)) - !input_mmr_cl_rad = reshape(fms_mmr_cl_rad(:,:,:),(/si*sj,sk/)) + input_reff_rad = reshape(fms_reff_rad(:,:,:),(/si*sj,sk /)) + input_mmr_cl_rad = reshape(fms_mmr_cl_rad(:,:,:),(/si*sj,sk/)) if (account_for_effect_of_water == .true.) then input_mixing_ratio = reshape(fms_spec_hum(:,:,:) / (1. - fms_spec_hum(:,:,:)),(/si*sj,sk /)) !Mass mixing ratio = q / (1-q) @@ -741,10 +741,10 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_albedo(idx_chunk_start:idx_chunk_end), & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & - !input_cld_frac(idx_chunk_start:idx_chunk_end,:), & - !input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & - !input_reff_rad(idx_chunk_start:idx_chunk_end,:), & - !input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & + input_reff_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & do_cloud_simple, & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & soc_flux_down(idx_chunk_start:idx_chunk_end,:), & @@ -774,10 +774,10 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & input_planet_albedo(idx_chunk_start:idx_chunk_end), & input_planet_emissivity, & input_layer_heat_capacity(idx_chunk_start:idx_chunk_end,:), & - !input_cld_frac(idx_chunk_start:idx_chunk_end,:), & - !input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & - !input_reff_rad(idx_chunk_start:idx_chunk_end,:), & - !input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & + input_cld_frac(idx_chunk_start:idx_chunk_end,:), & + input_cld_conv_frac(idx_chunk_start:idx_chunk_end,:), & + input_reff_rad(idx_chunk_start:idx_chunk_end,:), & + input_mmr_cl_rad(idx_chunk_start:idx_chunk_end,:), & do_cloud_simple, & soc_flux_direct(idx_chunk_start:idx_chunk_end,:), & soc_flux_down(idx_chunk_start:idx_chunk_end,:), & @@ -833,8 +833,8 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: tg_tmp_soc, q_soc, ozone_soc, co2_soc, p_full_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: output_heating_rate_sw, output_heating_rate_lw real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: output_heating_rate_total, z_full_soc -! real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: cld_frac_soc, cld_conv_frac_soc -! real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: cld_frac_soc, cld_conv_frac_soc + real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)) :: reff_rad_soc, mmr_cl_rad_soc, qcl_rad_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: p_half_soc, t_half_out, z_half_soc real(r_def), dimension(size(temp_in,1), size(temp_in,2), size(temp_in,3)+1) :: output_soc_flux_sw_down, output_soc_flux_sw_up @@ -1194,7 +1194,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & - n_profile, n_layer, &!cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc,& + n_profile, n_layer, cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc,& output_heating_rate_lw, output_soc_flux_lw_down, output_soc_flux_lw_up, & output_soc_flux_lw_down_clear, output_soc_flux_lw_up_clear, & do_cloud_simple, & @@ -1225,7 +1225,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf CALL socrates_interface(Time, rad_lat_soc, rad_lon_soc, soc_lw_mode, & tg_tmp_soc, q_soc, ozone_soc, co2_soc, t_surf_for_soc, p_full_soc, & p_half_soc, z_full_soc, z_half_soc, albedo_soc, coszen, rrsun, & - n_profile, n_layer, &!cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & + n_profile, n_layer, cld_frac_soc, cld_conv_frac_soc, reff_rad_soc, mmr_cl_rad_soc, & output_heating_rate_sw, output_soc_flux_sw_down, output_soc_flux_sw_up, & output_soc_flux_sw_down_clear, output_soc_flux_sw_up_clear, & do_cloud_simple) From 3e34a61d48e94f1905e81dfe0f3302fa48601292 Mon Sep 17 00:00:00 2001 From: sit23 Date: Mon, 12 Jul 2021 14:42:32 +0100 Subject: [PATCH 265/304] Revert "Manually turned off all cloud related sections and vars" This reverts commit a367654c8cd8f146b4531b004703d1d78e3ab326. --- .../driver/solo/idealized_moist_phys.F90 | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index adc938875..354eea7e3 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -350,9 +350,9 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l d622 = rdgas/rvgas d378 = 1.-d622 -!if(do_cloud_simple) then -! call cloud_simple_init(get_axis_id(), Time) -!end if +if(do_cloud_simple) then + call cloud_simple_init(get_axis_id(), Time) +end if !s need to make sure that gray radiation and rrtm radiation are not both called. if(two_stream_gray .and. do_rrtm_radiation) & @@ -797,7 +797,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: tg_tmp, qg_tmp, RH,tg_interp, mc, dt_ug_conv, dt_vg_conv ! Simple cloud scheme variabilies to pass to radiation -!real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad, cca_rad +real, dimension(size(ug,1), size(ug,2), size(ug,3)) :: cf_rad, reff_rad, qcl_rad, cca_rad real, intent(in) , dimension(:,:,:), optional :: mask integer, intent(in) , dimension(:,:), optional :: kbot @@ -967,23 +967,23 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! initialise outs to zero -!cf_rad(:,:,:) = 0. !TODO could it be setting to zero? -!reff_rad(:,:,:) = 0. -!qcl_rad(:,:,:) = 0. -!cca_rad(:,:,:) = 0. +cf_rad(:,:,:) = 0. !TODO could it be setting to zero? +reff_rad(:,:,:) = 0. +qcl_rad(:,:,:) = 0. +cca_rad(:,:,:) = 0. -!if(do_cloud_simple) then +if(do_cloud_simple) then -! call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & -! Time, & -! tg(:,:,:,previous), & -! grid_tracers(:,:,:,previous,nsphum), & -! ! inouts - -! cf_rad(:,:,:), cca_rad(:,:,:), & -! reff_rad(:,:,:), qcl_rad(:,:,:) & -! ) + call cloud_simple(p_half(:,:,:,current), p_full(:,:,:,current), & + Time, & + tg(:,:,:,previous), & + grid_tracers(:,:,:,previous,nsphum), & + ! inouts - + cf_rad(:,:,:), cca_rad(:,:,:), & + reff_rad(:,:,:), qcl_rad(:,:,:) & + ) -!endif +endif ! Begin the radiation calculation by computing downward fluxes. ! This part of the calculation does not depend on the surface temperature. @@ -1113,11 +1113,11 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg if (do_socrates_radiation) then ! Socrates interface - !if(do_cloud_simple) then - ! ! Simple cloud scheme outputs radii in microns, but Socrates expects - ! ! it in metres so convert it. - ! reff_rad = 1.e-6 * reff_rad - !endif + if(do_cloud_simple) then + ! Simple cloud scheme outputs radii in microns, but Socrates expects + ! it in metres so convert it. + reff_rad = 1.e-6 * reff_rad + endif call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, & tg(:,:,:,previous), grid_tracers(:,:,:,previous,nsphum), & From 9f2239926b32866321a391149d677a7c3d9ac7fb Mon Sep 17 00:00:00 2001 From: sit23 Date: Mon, 12 Jul 2021 14:42:47 +0100 Subject: [PATCH 266/304] Revert "Removed the four vars used in the simple cloud scheme to test if they are the case of the change in SOC behaviour" This reverts commit d69839e07840af6e7cdc7c3aa2c1edd40d8fcf59. --- .../socrates/interface/socrates_interface.F90 | 30 +++++++++---------- .../driver/solo/idealized_moist_phys.F90 | 8 ++--- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/atmos_param/socrates/interface/socrates_interface.F90 b/src/atmos_param/socrates/interface/socrates_interface.F90 index effab2a19..4e45bdfa9 100644 --- a/src/atmos_param/socrates/interface/socrates_interface.F90 +++ b/src/atmos_param/socrates/interface/socrates_interface.F90 @@ -809,7 +809,7 @@ subroutine socrates_interface(Time_diag, rlat, rlon, soc_lw_mode, & end subroutine socrates_interface subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf_in, p_full_in, p_half_in, z_full_in, z_half_in, albedo_in, & - temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple)!, cf_rad, cca_rad, reff_rad, qcl_rad) + temp_tend, net_surf_sw_down, surf_lw_down, delta_t, do_cloud_simple, cf_rad, cca_rad, reff_rad, qcl_rad) use astronomy_mod, only: diurnal_solar use constants_mod, only: pi, wtmco2, wtmozone, rdgas, gas_constant @@ -825,7 +825,7 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf real, intent(out), dimension(:,:) :: net_surf_sw_down, surf_lw_down real, intent(in) :: delta_t logical, intent(in) :: do_cloud_simple - !real, intent(in), dimension(:,:,:) :: cf_rad, cca_rad, reff_rad, qcl_rad + real, intent(in), dimension(:,:,:) :: cf_rad, cca_rad, reff_rad, qcl_rad integer(i_def) :: n_profile, n_layer @@ -1155,23 +1155,23 @@ subroutine run_socrates(Time, Time_diag, rad_lat, rad_lon, temp_in, q_in, t_surf endif endif - !turn off the cloud scheme for trip test error finding - ! if(do_cloud_simple) then - ! cld_frac_soc = REAL(cf_rad, kind(r_def)) - ! cld_conv_frac_soc = REAL(cca_rad, kind(r_def)) - ! reff_rad_soc = REAL(reff_rad, kind(r_def)) + if(do_cloud_simple) then + cld_frac_soc = REAL(cf_rad, kind(r_def)) + cld_conv_frac_soc = REAL(cca_rad, kind(r_def)) - ! qcl_rad_soc = REAL(qcl_rad, kind(r_def)) - ! mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) !check if qcl is indeed specific humidity and not mmr + reff_rad_soc = REAL(reff_rad, kind(r_def)) + + qcl_rad_soc = REAL(qcl_rad, kind(r_def)) + mmr_cl_rad_soc = qcl_rad_soc / (1.0 - qcl_rad_soc) !check if qcl is indeed specific humidity and not mmr - ! else - ! cld_frac_soc = 0. - ! cld_conv_frac_soc = 0. - ! reff_rad_soc = 0. - ! mmr_cl_rad_soc = 0. + else + cld_frac_soc = 0. + cld_conv_frac_soc = 0. + reff_rad_soc = 0. + mmr_cl_rad_soc = 0. - ! endif + endif n_profile = INT(size(temp_in,2)*size(temp_in,1), kind(i_def)) n_layer = INT(size(temp_in,3), kind(i_def)) t_surf_for_soc = REAL(t_surf_in(:,:), kind(r_def)) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 354eea7e3..31bacc238 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -967,7 +967,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg ! initialise outs to zero -cf_rad(:,:,:) = 0. !TODO could it be setting to zero? +cf_rad(:,:,:) = 0. reff_rad(:,:,:) = 0. qcl_rad(:,:,:) = 0. cca_rad(:,:,:) = 0. @@ -1116,7 +1116,7 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg if(do_cloud_simple) then ! Simple cloud scheme outputs radii in microns, but Socrates expects ! it in metres so convert it. - reff_rad = 1.e-6 * reff_rad + reff_rad = 1.e-6 * reff_rad endif call run_socrates(Time, Time+Time_step, rad_lat, rad_lon, & @@ -1125,8 +1125,8 @@ subroutine idealized_moist_phys(Time, p_half, p_full, z_half, z_full, ug, vg, tg p_half(:,:,:,current), z_full(:,:,:,current), & z_half(:,:,:,current), albedo, dt_tg(:,:,:), & net_surf_sw_down(:,:), surf_lw_down(:,:), delta_t, & - do_cloud_simple)!, cf_rad(:,:,:), cca_rad(:,:,:), & !TODO what happens when these are off? - !reff_rad(:,:,:), qcl_rad(:,:,:)) + do_cloud_simple, cf_rad(:,:,:), cca_rad(:,:,:), & + reff_rad(:,:,:), qcl_rad(:,:,:) ) endif #endif From 949f1f0eb46017212d9a7f0e19ab4f3554483cad Mon Sep 17 00:00:00 2001 From: sit23 Date: Mon, 12 Jul 2021 14:43:28 +0100 Subject: [PATCH 267/304] Revert "Not the case of the trip test fail" This reverts commit 35d666cc2b5aec42d93d32ff61fc34aef136140f. --- src/atmos_param/socrates/interface/set_dimen.F90 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index da18d8473..a1d835cba 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -65,7 +65,12 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & ! this gives the allocate the full column for radiation ! rather than the layers over which cloud is present -dimen%nd_layer_clr = dimen%nd_layer +!dimen%nd_layer_clr = dimen%nd_layer +IF (control%l_cloud) THEN + dimen%nd_layer_clr = dimen%id_cloud_top - 1 +ELSE + dimen%nd_layer_clr = dimen%nd_layer +END IF ! Aerosol dimen%nd_aerosol_mode = MAX(1,n_aer_mode) From e70400c17f4c97c4a3bda553279b224f967e48b3 Mon Sep 17 00:00:00 2001 From: sit23 Date: Mon, 12 Jul 2021 14:43:58 +0100 Subject: [PATCH 268/304] Revert "Testing if nd_layer_clr is the case for difference in the trip test" This reverts commit 803051d923fd878259786d070b5d6ca15e11b8a1. --- src/atmos_param/socrates/interface/set_dimen.F90 | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/atmos_param/socrates/interface/set_dimen.F90 b/src/atmos_param/socrates/interface/set_dimen.F90 index a1d835cba..da18d8473 100644 --- a/src/atmos_param/socrates/interface/set_dimen.F90 +++ b/src/atmos_param/socrates/interface/set_dimen.F90 @@ -65,12 +65,7 @@ SUBROUTINE set_dimen(control, dimen, spectrum, n_profile, n_layer, & ! this gives the allocate the full column for radiation ! rather than the layers over which cloud is present -!dimen%nd_layer_clr = dimen%nd_layer -IF (control%l_cloud) THEN - dimen%nd_layer_clr = dimen%id_cloud_top - 1 -ELSE - dimen%nd_layer_clr = dimen%nd_layer -END IF +dimen%nd_layer_clr = dimen%nd_layer ! Aerosol dimen%nd_aerosol_mode = MAX(1,n_aer_mode) From f81a6bb11277a3380acd91a152fd736e467b876a Mon Sep 17 00:00:00 2001 From: sit23 Date: Mon, 12 Jul 2021 18:40:04 +0100 Subject: [PATCH 269/304] Adding functionality to check not only if code exists, but also if code is checked out with the requested commit id. --- src/extra/python/isca/codebase.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/extra/python/isca/codebase.py b/src/extra/python/isca/codebase.py index e6703813a..09353e7ce 100644 --- a/src/extra/python/isca/codebase.py +++ b/src/extra/python/isca/codebase.py @@ -9,6 +9,7 @@ from .loghandler import Logger from .helpers import url_to_folder, destructive, useworkdir, mkdir, cd, git, P, git_run_in_directory +import pdb class CodeBase(Logger): """The CodeBase. @@ -91,6 +92,28 @@ def __init__(self, repo=None, commit=None, directory=None, storedir=P(GFDL_WORK, self.checkout() else: self.link_source_to(directory) + elif self.code_is_available and self.commit is not None: + # problem is that if you try to checkout a specific commit, and it doesn't work, the next time you try it, the above code will only check if code exists, which it will, but it won't be at the correct commit. This will cause problems for e.g. the trip tests. Following code checks if the code that's checked out is the correct commit ID compared to what was asked for, and gives an error if they are different. + commit_at_HEAD_of_repo = self.git_commit.split('"')[1] + commit_desired = self.commit + if len(commit_desired)==len(commit_at_HEAD_of_repo): + commit_to_compare_1 = commit_desired + commit_to_compare_2 = commit_at_HEAD_of_repo + elif len(commit_desired)>len(commit_at_HEAD_of_repo): + commit_to_compare_1 = commit_desired[0:len(commit_at_HEAD_of_repo)] + commit_to_compare_2 = commit_at_HEAD_of_repo + else: + commit_to_compare_1 = commit_desired + commit_to_compare_2 = commit_at_HEAD_of_repo[0:len(commit_desired)] + + if commit_to_compare_1==commit_to_compare_2: + self.log.info('commit requested successfully checked out') + else: + self.log.warn('commit requested is not the commit to be used') + raise NotImplementedError("commit requested %s but commit supplied %s. This happens when you've previously tried to checkout a particular commit, but the commit was not found in the repo supplied. Try removing %s and trying again, making sure to select a repo that contains your desired commit." % (commit_to_compare_1, commit_to_compare_2, self.workdir )) + + + #TODO self.templates = Environment(loader=FileSystemLoader(self.templatedir)) From eaa2dc3b4b7cd4298082945d1472738f56297c21 Mon Sep 17 00:00:00 2001 From: sit23 Date: Mon, 12 Jul 2021 18:40:39 +0100 Subject: [PATCH 270/304] Adding functionality to trip test that makes sure that the input namelists for the experiments being compared are the same. This avoids unecessary test failures. --- exp/test_cases/trip_test/trip_test_functions.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/exp/test_cases/trip_test/trip_test_functions.py b/exp/test_cases/trip_test/trip_test_functions.py index d4a63d22d..2445e92e8 100644 --- a/exp/test_cases/trip_test/trip_test_functions.py +++ b/exp/test_cases/trip_test/trip_test_functions.py @@ -13,6 +13,7 @@ import numpy as np import os import sys +import f90nml def get_nml_diag(test_case_name): """Gets the appropriate namelist and input files from each of the test case scripts in the test_cases folder @@ -224,6 +225,12 @@ def conduct_comparison_on_test_case(base_commit, later_commit, test_case_name, r print('Test failed for '+var+' max diff value = '+str(maxval.values)) test_pass = False + base_experiment_input_nml = f90nml.read(data_dir_dict[base_commit] +'/run0001/input.nml') + later_commit_input_nml = f90nml.read(data_dir_dict[later_commit] +'/run0001/input.nml') + + if base_experiment_input_nml!=later_commit_input_nml: + raise AttributeError(f'The two experiments to be compared have been run using different input namelists, and so the results may be different because of this. This only happens when you have run the trip tests using one of the commit IDs before, and that you happen to have used a different version of the test cases on that previous occasion. Try removing both {data_dir_dict[base_commit]} and {data_dir_dict[later_commit]} and try again.') + if test_pass: print('Test passed for '+test_case_name+'. Commit '+later_commit+' gives the same answer as commit '+base_commit) return_test_result = 'pass' From 30a58f750e671636a4252b2180a0767ceba144c1 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 15:27:24 +0100 Subject: [PATCH 271/304] add docs github action --- .github/workflows/docs.yml | 76 ++++++++++++++++++++++++++++++++++++++ .travis.yml | 2 +- 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000..fc95d00a7 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,76 @@ +name: docs + +on: + push: + branches: [ main, gh_actions ] + paths: + - 'docs/**' + - 'examples/**' + - 'src/**' + +env: + GFDL_BASE: $PWD + GFDL_ENV: "ubuntu_conda" + GFDL_WORK: "$HOME/gfdl_work" + GFDL_DATA: "$HOME/gfdl_data" + GFDL_PYDIR: "$PWD/src/extra/python" + +jobs: + docs: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + python-version: ['3.9'] + + steps: + - name: Checkout source + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Setup Conda Environment + uses: conda-incubator/setup-miniconda@v2 + with: + python-version: ${{ matrix.python-version }} + environment-file: docs/environment.yml + miniforge-variant: Mambaforge + miniforge-version: "latest" + use-mamba: true + activate-environment: isca_docs + auto-activate-base: false + + - name: Install + shell: bash -l {0} + run: | + cd $GFDL_PYDIR + python -m pip install -e . + cd $GFDL_BASE + + - name: List installed packages + shell: bash -l {0} + run: conda list + + - name: Build docs + shell: bash -l {0} + run: | + cd docs/ + make html -e + + - name: Commit documentation changes + run: | + git clone https://github.com/$GITHUB_REPOSITORY.git --branch gh-pages --single-branch gh-pages + cp -r docs/_build/html/* gh-pages/ + cd gh-pages + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add . + git commit -m "Update documentation" -a || true + # The above command will fail if no changes were present, so we ignore that. + + - name: Push changes + uses: ad-m/github-push-action@master + with: + branch: gh-pages + directory: gh-pages + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.travis.yml b/.travis.yml index 575bc28ba..87ae63f57 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,7 @@ env: matrix: fast_finish: true include: - - env: CONDA_ENV=docs + # - env: CONDA_ENV=docs - env: CONDA_ENV=py37 before_install: From 571a1e36de3f96f4c2cdfff54acf4c0da0c72563 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 15:29:21 +0100 Subject: [PATCH 272/304] update docs workflow --- .github/workflows/docs.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index fc95d00a7..6004ab007 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -5,7 +5,6 @@ on: branches: [ main, gh_actions ] paths: - 'docs/**' - - 'examples/**' - 'src/**' env: From 8bf4a827c0f718147a5a32a759b44a4225743c9e Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 15:35:05 +0100 Subject: [PATCH 273/304] update docs environment --- docs/environment.yml | 2 +- docs/source/conf.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/environment.yml b/docs/environment.yml index c1e1e31d3..da8cdbe0e 100644 --- a/docs/environment.yml +++ b/docs/environment.yml @@ -13,7 +13,7 @@ dependencies: - numpy - openmpi - pandas -- python=3.7 +- python=3.9 - pip - pytest - sh diff --git a/docs/source/conf.py b/docs/source/conf.py index 7f0c43201..99d2eff15 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -198,7 +198,7 @@ # Options for intersphinx. intersphinx_mapping = { "matplotlib": ("https://matplotlib.org", None), - "numpy": ("https://docs.scipy.org/doc/numpy", None), + "numpy": ("https://numpy.org/doc/stable", None), "pandas": ("http://pandas.pydata.org/", None), "python": ("https://docs.python.org/3/", None), "xarray": ("https://xarray.pydata.org/en/stable", None), From bf0b72f12596683df2e25c8e3d5c35f3341aec42 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 15:36:24 +0100 Subject: [PATCH 274/304] fix the name of the branch in the docs workflow --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 6004ab007..daf847cd1 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -2,7 +2,7 @@ name: docs on: push: - branches: [ main, gh_actions ] + branches: [ master ] paths: - 'docs/**' - 'src/**' From ce1bbedf67df5dc6bc73278488929b05a5558692 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 15:38:21 +0100 Subject: [PATCH 275/304] link the remote_access guide to docs --- docs/source/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/index.rst b/docs/source/index.rst index 1d8c63175..13df12ebc 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -131,6 +131,7 @@ Contents contributing testing/index.rst references + remote_access See also ======== From d5c84a8ed38bf19b954865b5bddcd9c68fa9f96f Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 15:44:08 +0100 Subject: [PATCH 276/304] update docs workflow --- .github/workflows/docs.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index daf847cd1..261059417 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -4,15 +4,16 @@ on: push: branches: [ master ] paths: + - '.github/workflows/docs.yml' - 'docs/**' - 'src/**' env: - GFDL_BASE: $PWD + GFDL_BASE: ${PWD} GFDL_ENV: "ubuntu_conda" GFDL_WORK: "$HOME/gfdl_work" GFDL_DATA: "$HOME/gfdl_data" - GFDL_PYDIR: "$PWD/src/extra/python" + GFDL_PYDIR: ${PWD}/"src/extra/python" jobs: docs: From 8d2bc8d80fb627acbc85f8cbddc93e41ced2a4e6 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 15:52:44 +0100 Subject: [PATCH 277/304] change env paths in the docs workflow --- .github/workflows/docs.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 261059417..375056b82 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -9,11 +9,11 @@ on: - 'src/**' env: - GFDL_BASE: ${PWD} + GFDL_BASE: $GITHUB_WORKSPACE GFDL_ENV: "ubuntu_conda" GFDL_WORK: "$HOME/gfdl_work" GFDL_DATA: "$HOME/gfdl_data" - GFDL_PYDIR: ${PWD}/"src/extra/python" + GFDL_PYDIR: "$GITHUB_WORKSPACE/src/extra/python" jobs: docs: @@ -43,6 +43,10 @@ jobs: - name: Install shell: bash -l {0} run: | + echo $GFDL_BASE + echo $GFDL_PYDIR + echo $GITHUB_WORKSPACE + echo $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID cd $GFDL_PYDIR python -m pip install -e . cd $GFDL_BASE From 01641eb83c8618b7138693e7c4cabc15a6708442 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 16:05:03 +0100 Subject: [PATCH 278/304] test docs workflow --- .github/workflows/docs.yml | 86 ++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 375056b82..646f226b4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -29,52 +29,56 @@ jobs: with: fetch-depth: 0 - - name: Setup Conda Environment - uses: conda-incubator/setup-miniconda@v2 - with: - python-version: ${{ matrix.python-version }} - environment-file: docs/environment.yml - miniforge-variant: Mambaforge - miniforge-version: "latest" - use-mamba: true - activate-environment: isca_docs - auto-activate-base: false - - - name: Install - shell: bash -l {0} + - name: Check environment variables run: | echo $GFDL_BASE echo $GFDL_PYDIR echo $GITHUB_WORKSPACE echo $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID - cd $GFDL_PYDIR - python -m pip install -e . - cd $GFDL_BASE - - - name: List installed packages - shell: bash -l {0} - run: conda list - - name: Build docs + - name: Install shell: bash -l {0} run: | - cd docs/ - make html -e - - - name: Commit documentation changes - run: | - git clone https://github.com/$GITHUB_REPOSITORY.git --branch gh-pages --single-branch gh-pages - cp -r docs/_build/html/* gh-pages/ - cd gh-pages - git config --local user.email "action@github.com" - git config --local user.name "GitHub Action" - git add . - git commit -m "Update documentation" -a || true - # The above command will fail if no changes were present, so we ignore that. - - - name: Push changes - uses: ad-m/github-push-action@master - with: - branch: gh-pages - directory: gh-pages - github_token: ${{ secrets.GITHUB_TOKEN }} + cd $GFDL_PYDIR + python -m pip install -e . + cd $GFDL_BASE +# +# - name: Setup Conda Environment +# uses: conda-incubator/setup-miniconda@v2 +# with: +# python-version: ${{ matrix.python-version }} +# environment-file: docs/environment.yml +# miniforge-variant: Mambaforge +# miniforge-version: "latest" +# use-mamba: true +# activate-environment: isca_docs +# auto-activate-base: false +# +# +# - name: List installed packages +# shell: bash -l {0} +# run: conda list +# +# - name: Build docs +# shell: bash -l {0} +# run: | +# cd docs/ +# make html -e +# +# - name: Commit documentation changes +# run: | +# git clone https://github.com/$GITHUB_REPOSITORY.git --branch gh-pages --single-branch gh-pages +# cp -r docs/_build/html/* gh-pages/ +# cd gh-pages +# git config --local user.email "action@github.com" +# git config --local user.name "GitHub Action" +# git add . +# git commit -m "Update documentation" -a || true +# # The above command will fail if no changes were present, so we ignore that. +# +# - name: Push changes +# uses: ad-m/github-push-action@master +# with: +# branch: gh-pages +# directory: gh-pages +# github_token: ${{ secrets.GITHUB_TOKEN }} From 02f3dd52ce2ac1f6c0a7ea27451d5b27a36a1996 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 16:08:06 +0100 Subject: [PATCH 279/304] test docs workflow --- .github/workflows/docs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 646f226b4..5b640b241 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -31,6 +31,7 @@ jobs: - name: Check environment variables run: | + echo "Testing" echo $GFDL_BASE echo $GFDL_PYDIR echo $GITHUB_WORKSPACE From 27aa1e23ba91f5d66f5f9fa147df33577a39a5e4 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 16:20:14 +0100 Subject: [PATCH 280/304] test docs workflow --- .github/workflows/docs.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 5b640b241..40bf39963 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -9,11 +9,11 @@ on: - 'src/**' env: - GFDL_BASE: $GITHUB_WORKSPACE + GFDL_BASE: ${{ env.GITHUB_WORKSPACE }} GFDL_ENV: "ubuntu_conda" GFDL_WORK: "$HOME/gfdl_work" GFDL_DATA: "$HOME/gfdl_data" - GFDL_PYDIR: "$GITHUB_WORKSPACE/src/extra/python" + GFDL_PYDIR: "${{ env.GITHUB_WORKSPACE }}/src/extra/python" jobs: docs: @@ -32,6 +32,7 @@ jobs: - name: Check environment variables run: | echo "Testing" + echo $PWD echo $GFDL_BASE echo $GFDL_PYDIR echo $GITHUB_WORKSPACE From 0e05d63b495edba1458143fdf2514220b7f7d4e5 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 16:21:20 +0100 Subject: [PATCH 281/304] test docs workflow --- .github/workflows/docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 40bf39963..53dfe6759 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -9,11 +9,11 @@ on: - 'src/**' env: - GFDL_BASE: ${{ env.GITHUB_WORKSPACE }} + GFDL_BASE: ${{ GITHUB_WORKSPACE }} GFDL_ENV: "ubuntu_conda" GFDL_WORK: "$HOME/gfdl_work" GFDL_DATA: "$HOME/gfdl_data" - GFDL_PYDIR: "${{ env.GITHUB_WORKSPACE }}/src/extra/python" + GFDL_PYDIR: "${{ GITHUB_WORKSPACE }}/src/extra/python" jobs: docs: From 37d969ea57c7bd7734b6b3f3eb860b45898f0d88 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 16:24:46 +0100 Subject: [PATCH 282/304] test docs workflow --- .github/workflows/docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 53dfe6759..44884cfa8 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -9,11 +9,11 @@ on: - 'src/**' env: - GFDL_BASE: ${{ GITHUB_WORKSPACE }} + GFDL_BASE: ${{ github.workspace }} GFDL_ENV: "ubuntu_conda" GFDL_WORK: "$HOME/gfdl_work" GFDL_DATA: "$HOME/gfdl_data" - GFDL_PYDIR: "${{ GITHUB_WORKSPACE }}/src/extra/python" + GFDL_PYDIR: "${{ github.workspace }}/src/extra/python" jobs: docs: From 10362f2057344ea94175849a79fd148fb1d42658 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 16:27:26 +0100 Subject: [PATCH 283/304] test docs workflow --- .github/workflows/docs.yml | 95 +++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 48 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 44884cfa8..94d4efcbe 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -29,14 +29,29 @@ jobs: with: fetch-depth: 0 - - name: Check environment variables - run: | - echo "Testing" - echo $PWD - echo $GFDL_BASE - echo $GFDL_PYDIR - echo $GITHUB_WORKSPACE - echo $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID + # - name: Check environment variables + # run: | + # echo "Testing" + # echo $PWD + # echo $GFDL_BASE + # echo $GFDL_PYDIR + # echo $GITHUB_WORKSPACE + # echo $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID + + - name: Setup Conda Environment + uses: conda-incubator/setup-miniconda@v2 + with: + python-version: ${{ matrix.python-version }} + environment-file: docs/environment.yml + miniforge-variant: Mambaforge + miniforge-version: "latest" + use-mamba: true + activate-environment: isca_docs + auto-activate-base: false + + - name: List installed packages + shell: bash -l {0} + run: conda list - name: Install shell: bash -l {0} @@ -44,43 +59,27 @@ jobs: cd $GFDL_PYDIR python -m pip install -e . cd $GFDL_BASE -# -# - name: Setup Conda Environment -# uses: conda-incubator/setup-miniconda@v2 -# with: -# python-version: ${{ matrix.python-version }} -# environment-file: docs/environment.yml -# miniforge-variant: Mambaforge -# miniforge-version: "latest" -# use-mamba: true -# activate-environment: isca_docs -# auto-activate-base: false -# -# -# - name: List installed packages -# shell: bash -l {0} -# run: conda list -# -# - name: Build docs -# shell: bash -l {0} -# run: | -# cd docs/ -# make html -e -# -# - name: Commit documentation changes -# run: | -# git clone https://github.com/$GITHUB_REPOSITORY.git --branch gh-pages --single-branch gh-pages -# cp -r docs/_build/html/* gh-pages/ -# cd gh-pages -# git config --local user.email "action@github.com" -# git config --local user.name "GitHub Action" -# git add . -# git commit -m "Update documentation" -a || true -# # The above command will fail if no changes were present, so we ignore that. -# -# - name: Push changes -# uses: ad-m/github-push-action@master -# with: -# branch: gh-pages -# directory: gh-pages -# github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Build docs + shell: bash -l {0} + run: | + cd docs/ + make html -e + + - name: Commit documentation changes + run: | + git clone https://github.com/$GITHUB_REPOSITORY.git --branch gh-pages --single-branch gh-pages + cp -r docs/_build/html/* gh-pages/ + cd gh-pages + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add . + git commit -m "Update documentation" -a || true + # The above command will fail if no changes were present, so we ignore that. + + - name: Push changes + uses: ad-m/github-push-action@master + with: + branch: gh-pages + directory: gh-pages + github_token: ${{ secrets.GITHUB_TOKEN }} From a3622d9476a99222d4b5d85ada348e18d68f8a30 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 16:38:57 +0100 Subject: [PATCH 284/304] add docs makefile --- .gitignore | 1 + docs/Makefile | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 docs/Makefile diff --git a/.gitignore b/.gitignore index ea7c8f958..2c18e651e 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ src/atmos_param/socrates/src/trunk* ~* nohup.out Makefile +!docs/Makefile *.DS_Store ._* *.mod diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 000000000..00f45750b --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,19 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = -d _build/doctrees +SPHINXBUILD = sphinx-build +SOURCEDIR = source +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) From 2e6ca1d0579bfb672db7d0a332ec6885e3819112 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 16:54:11 +0100 Subject: [PATCH 285/304] add tests workflow and switch to python 3.9 --- .github/workflows/docs.yml | 1 - .github/workflows/tests.yml | 63 +++++++++++++++++++ ...ronment_py37.yml => environment-py3.9.yml} | 2 +- 3 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/tests.yml rename ci/{environment_py37.yml => environment-py3.9.yml} (93%) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 94d4efcbe..72bbfc05b 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -4,7 +4,6 @@ on: push: branches: [ master ] paths: - - '.github/workflows/docs.yml' - 'docs/**' - 'src/**' diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 000000000..87b2847a4 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,63 @@ +name: tests + +on: + push: + branches: [ master ] + paths: + - 'ci/**' + - 'src/**' + - 'tests/**' + - 'setup.*' + pull_request: + branches: [ master ] + paths: + - 'ci/**' + - 'src/**' + - 'tests/**' + - 'setup.*' + +env: + GFDL_BASE: ${{ github.workspace }} + GFDL_ENV: "ubuntu_conda" + GFDL_WORK: "$HOME/gfdl_work" + GFDL_DATA: "$HOME/gfdl_data" + GFDL_PYDIR: "${{ github.workspace }}/src/extra/python" + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + python-version: ['3.9'] + + steps: + - name: Checkout source + uses: actions/checkout@v2 + + - name: Setup Conda for OS ${{ matrix.os }} and Python ${{ matrix.python-version }} + uses: conda-incubator/setup-miniconda@v2 + with: + python-version: ${{ matrix.python-version }} + environment-file: ci/environment-py${{ matrix.python-version }}.yml + miniforge-variant: Mambaforge + miniforge-version: "latest" + use-mamba: true + activate-environment: isca_test + auto-activate-base: false + + - name: Install + shell: bash -l {0} + run: | + cd $GFDL_PYDIR + python -m pip install -e . + cd $GFDL_BASE + + - name: List installed packages + shell: bash -l {0} + run: conda list + + - name: Run tests + shell: bash -l {0} + run: | + python -m pytest diff --git a/ci/environment_py37.yml b/ci/environment-py3.9.yml similarity index 93% rename from ci/environment_py37.yml rename to ci/environment-py3.9.yml index 4c3f97de0..169e3adef 100644 --- a/ci/environment_py37.yml +++ b/ci/environment-py3.9.yml @@ -12,7 +12,7 @@ dependencies: - numpy - openmpi - pandas -- python=3.7 +- python=3.9 - pip - pytest - sh From 887b72d5ca0159887e361168e2e089e9e11f594a Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 17:35:22 +0100 Subject: [PATCH 286/304] rename conda environment in the tests workflow --- .github/workflows/tests.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 87b2847a4..65cee3f02 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -4,17 +4,21 @@ on: push: branches: [ master ] paths: + - 'bin/**' - 'ci/**' + - 'exp/**' + - 'input/**' - 'src/**' - - 'tests/**' - - 'setup.*' + - 'test/**' pull_request: branches: [ master ] paths: + - 'bin/**' - 'ci/**' + - 'exp/**' + - 'input/**' - 'src/**' - - 'tests/**' - - 'setup.*' + - 'test/**' env: GFDL_BASE: ${{ github.workspace }} @@ -43,7 +47,7 @@ jobs: miniforge-variant: Mambaforge miniforge-version: "latest" use-mamba: true - activate-environment: isca_test + activate-environment: isca_env auto-activate-base: false - name: Install From 1241df3c59ca26cd15c31b3ab37675b33d2ec2fe Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 17:41:32 +0100 Subject: [PATCH 287/304] update tests workflow --- .github/workflows/tests.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 65cee3f02..0a61f923b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -4,6 +4,8 @@ on: push: branches: [ master ] paths: + - '.github/workflows/tests.yml' + - 'bin/**' - 'bin/**' - 'ci/**' - 'exp/**' @@ -13,6 +15,7 @@ on: pull_request: branches: [ master ] paths: + - '.github/workflows/tests.yml' - 'bin/**' - 'ci/**' - 'exp/**' @@ -32,7 +35,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest] # , macos-latest] python-version: ['3.9'] steps: From 7a39452fbb5b59ab48ccb7b07eb7d43f1668f5f8 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 17:54:38 +0100 Subject: [PATCH 288/304] change GFDL_ paths in the tests workflow --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0a61f923b..d8a4d68c9 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -26,8 +26,8 @@ on: env: GFDL_BASE: ${{ github.workspace }} GFDL_ENV: "ubuntu_conda" - GFDL_WORK: "$HOME/gfdl_work" - GFDL_DATA: "$HOME/gfdl_data" + GFDL_WORK: "${{ github.workspace }}/../gfdl_work" + GFDL_DATA: "${{ github.workspace }}/../gfdl_data" GFDL_PYDIR: "${{ github.workspace }}/src/extra/python" jobs: From a6170d3c345187d806dcd7ca6eabca31de286de1 Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 18:07:32 +0100 Subject: [PATCH 289/304] update readme badges --- .github/workflows/docs.yml | 1 + ReadMe.md | 30 +++++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 72bbfc05b..94d4efcbe 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -4,6 +4,7 @@ on: push: branches: [ master ] paths: + - '.github/workflows/docs.yml' - 'docs/**' - 'src/**' diff --git a/ReadMe.md b/ReadMe.md index 096c19ef7..3c5d09194 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,8 +1,28 @@ -[![Build Status](https://travis-ci.com/execlim/Isca.svg?branch=master)](https://travis-ci.com/execlim/Isca) -[![Documentation](https://img.shields.io/badge/docs-latest-green?logo=github)](https://execlim.github.io/Isca) -[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg?logo=gnu)](LICENSE) - -# Isca +

+ + Isca
+

+ +

+ +Python 3.7+ + +black + +Tests + +Documentation + +twitter IscaModel + +License: GPL v3 +

Isca is a framework for the idealized modelling of the global circulation of planetary atmospheres at varying levels of complexity and realism. The From a38349be1288bbcd7f16b2145a0f1bb7ff5b103b Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 18:23:39 +0100 Subject: [PATCH 290/304] add citation file --- CITATION.cff | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 CITATION.cff diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 000000000..27dc52038 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,38 @@ +cff-version: 1.1.0 +authors: + - family-names: Vallis + given-names: Geoffrey K. + orcid: https://orcid.org/0000-0002-5971-8995 + - family-names: Colyer + given-names: Greg + - family-names: Geen + given-names: Ruth + - family-names: Gerber + given-names: Edwin + orcid: https://orcid.org/0000-0002-6010-6638 + - family-names: Jucker + given-names: Martin + orcid: https://orcid.org/0000-0002-4227-315X + - family-names: Maher + given-names: Penelope + orcid: https://orcid.org/0000-0001-8513-8700 + - family-names: Paterson + given-names: Alexander + - family-names: Pietschnig + given-names: Marianne + orcid: https://orcid.org/0000-0002-7405-5536 + - family-names: Penn + given-names: James + - family-names: Thomson + given-names: Stephen I. + orcid: https://orcid.org/0000-0002-4775-3259 +title: "Isca, v1.0: a framework for the global modelling of the atmospheres of Earth and other planets at varying levels of complexity" +journal: Geoscientific Model Development +volume: 11 +year: 2018 +number: 3 +pages: 843--859 +version: v1.0 +doi: 10.5194/gmd-11-843-2018 +url: https://gmd.copernicus.org/articles/11/843/2018/ +date-released: 2018-03-06 From 41aadce25d2fd5e6233443abd4cf53eacdcc8cac Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 18:46:32 +0100 Subject: [PATCH 291/304] add gmd logo to readme --- ReadMe.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 3c5d09194..eae717832 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -4,6 +4,9 @@

+ +Python 3.7+ Python 3.7+ @@ -16,12 +19,12 @@ Documentation - -twitter IscaModel License: GPL v3 + +twitter IscaModel

Isca is a framework for the idealized modelling of the global circulation of From c83453b9123aac28be490765c019b74ff6c7d18c Mon Sep 17 00:00:00 2001 From: Dennis Sergeev Date: Fri, 30 Jul 2021 18:51:44 +0100 Subject: [PATCH 292/304] move .travis.yml and other old files to the deprecated/ folder --- .travis.yml => deprecated/.travis.yml | 0 Jenkinsfile.in_prep => deprecated/Jenkinsfile.in_prep | 0 deprecated/README.md | 1 + {ci => deprecated}/deploy_docs.sh | 0 4 files changed, 1 insertion(+) rename .travis.yml => deprecated/.travis.yml (100%) rename Jenkinsfile.in_prep => deprecated/Jenkinsfile.in_prep (100%) create mode 100644 deprecated/README.md rename {ci => deprecated}/deploy_docs.sh (100%) diff --git a/.travis.yml b/deprecated/.travis.yml similarity index 100% rename from .travis.yml rename to deprecated/.travis.yml diff --git a/Jenkinsfile.in_prep b/deprecated/Jenkinsfile.in_prep similarity index 100% rename from Jenkinsfile.in_prep rename to deprecated/Jenkinsfile.in_prep diff --git a/deprecated/README.md b/deprecated/README.md new file mode 100644 index 000000000..daf28977a --- /dev/null +++ b/deprecated/README.md @@ -0,0 +1 @@ +Files in this directory will be deleted in the next release. diff --git a/ci/deploy_docs.sh b/deprecated/deploy_docs.sh similarity index 100% rename from ci/deploy_docs.sh rename to deprecated/deploy_docs.sh From f250c6669613f8538e36d1b27158e6fc99f2b7a4 Mon Sep 17 00:00:00 2001 From: RuthG Date: Mon, 23 Aug 2021 17:56:49 +0100 Subject: [PATCH 293/304] Edit Readme.md to refer to .yml file and recommend Miniforge' --- ReadMe.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index eae717832..52b4a717a 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -65,16 +65,15 @@ $ git clone https://github.com/ExeClim/Isca $ cd Isca ``` -The python module is found in the `src` directory and can be installed using `pip`. It's recommended (but not essential) that you use some sort of python environment manager to do this, such as using the Anaconda distribution and creating an environment (in the code below called "`isca_env`"), or using `virtualenv` instead. This getting started will use Anaconda. +The python module is found in the `src` directory and can be installed using `pip`. It's recommended that you use some sort of python environment manager to do this, such as using a conda distribution and creating an environment (in the code below called "`isca_env`"), or using `virtualenv` instead. This getting started will show you how to create a python environment that includes Isca's required packages, and then install the model. +*Optional step*: Note that some workstations may have outdated default python and conda installations, which may cause conflicts during installation. As a lightweight solution to get up-to-date installations, we recommend downloading [Miniforge](https://github.com/conda-forge/miniforge) + +Requirements for Isca can be installed via the .yml file included with the model in `Isca/ci/environment-py3.9.yml` +First we create a conda environment `isca_env` containing the required packages, and activate the environment: ```{bash} -$ conda create -n isca_env python ipython -... +$ conda env create -f ci/environment-py3.9.yml $ source activate isca_env -(isca_env)$ cd src/extra/python -(isca_env)$ pip install -r requirements.txt -... -Successfully installed MarkupSafe-1.0 f90nml jinja2-2.9.6 numpy-1.13.3 pandas-0.21.0 python-dateutil-2.6.1 pytz-2017.3 sh-1.12.14 six-1.11.0 xarray-0.9.6 ``` Now install the `isca` python module in "development mode". This will allow you, if you wish, to edit the `src/extra/python/isca` files and have those changes be used when you next run an Isca script. From dfa08ce88f7332c6f0328e4b61259a3bed4d1f8a Mon Sep 17 00:00:00 2001 From: RuthG Date: Mon, 23 Aug 2021 17:57:47 +0100 Subject: [PATCH 294/304] Fix typo, missing full stop --- ReadMe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadMe.md b/ReadMe.md index 52b4a717a..bc61d1777 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -67,7 +67,7 @@ $ cd Isca The python module is found in the `src` directory and can be installed using `pip`. It's recommended that you use some sort of python environment manager to do this, such as using a conda distribution and creating an environment (in the code below called "`isca_env`"), or using `virtualenv` instead. This getting started will show you how to create a python environment that includes Isca's required packages, and then install the model. -*Optional step*: Note that some workstations may have outdated default python and conda installations, which may cause conflicts during installation. As a lightweight solution to get up-to-date installations, we recommend downloading [Miniforge](https://github.com/conda-forge/miniforge) +*Optional step*: Note that some workstations may have outdated default python and conda installations, which may cause conflicts during installation. As a lightweight solution to get up-to-date installations, we recommend downloading [Miniforge](https://github.com/conda-forge/miniforge). Requirements for Isca can be installed via the .yml file included with the model in `Isca/ci/environment-py3.9.yml` First we create a conda environment `isca_env` containing the required packages, and activate the environment: From 15bc373d589b1896b61f667608ef9e3fad5a2c36 Mon Sep 17 00:00:00 2001 From: RuthG Date: Mon, 23 Aug 2021 18:36:15 +0100 Subject: [PATCH 295/304] Edits to ReadMe.md: Correct conda activate command; add miniforge recommendations; add information on directory for installation --- ReadMe.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index bc61d1777..f5afae162 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -67,16 +67,17 @@ $ cd Isca The python module is found in the `src` directory and can be installed using `pip`. It's recommended that you use some sort of python environment manager to do this, such as using a conda distribution and creating an environment (in the code below called "`isca_env`"), or using `virtualenv` instead. This getting started will show you how to create a python environment that includes Isca's required packages, and then install the model. -*Optional step*: Note that some workstations may have outdated default python and conda installations, which may cause conflicts during installation. As a lightweight solution to get up-to-date installations, we recommend downloading [Miniforge](https://github.com/conda-forge/miniforge). +*Recommended step*: Note that some workstations may have outdated default python and conda installations, which may cause conflicts during installation. As a lightweight solution to get up-to-date installations, we recommend downloading [Miniforge](https://github.com/conda-forge/miniforge). +To ensure this works as expected, check that `$PYTHONPATH` is unset and that your `.bashrc` does not contain `module load` statements that may cause conda conflicts. Requirements for Isca can be installed via the .yml file included with the model in `Isca/ci/environment-py3.9.yml` First we create a conda environment `isca_env` containing the required packages, and activate the environment: ```{bash} $ conda env create -f ci/environment-py3.9.yml -$ source activate isca_env +$ conda activate isca_env ``` -Now install the `isca` python module in "development mode". This will allow you, if you wish, to edit the `src/extra/python/isca` files and have those changes be used when you next run an Isca script. +Now install the `isca` python module in "development mode". This will allow you, if you wish, to edit the `src/extra/python/isca` files and have those changes be used when you next run an Isca script. Change directory to `Isca/src/extra/python/` and run: ```{bash} (isca_env)$ pip install -e . From af7a6ac329d5fc0268d51d70f9c99c70a9035077 Mon Sep 17 00:00:00 2001 From: RuthG Date: Mon, 23 Aug 2021 18:51:03 +0100 Subject: [PATCH 296/304] Enumerate steps as per Denis' suggestion --- ReadMe.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index f5afae162..2f1dc49a4 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -58,6 +58,14 @@ A python module `isca` (note lowercase) is provided alongside the Fortran source ### Installing the `isca` python module +The python module is found in the `src` directory and can be installed using `pip`. It's recommended that you use some sort of python environment manager to do this, such as using a conda distribution and creating an environment (in the code below called "`isca_env`"), or using `virtualenv` instead. This getting started will show you how to create a python environment that includes Isca's required packages, and then install the model. + +1. Install [Miniforge](https://github.com/conda-forge/miniforge) +*Recommended step*: Some workstations may have outdated default python and conda installations, which may cause conflicts during installation. As a lightweight solution to get up-to-date installations, we recommend downloading [Miniforge](https://github.com/conda-forge/miniforge). +To ensure this works as expected, check that `$PYTHONPATH` is unset and that your `.bashrc` does not contain `module load` statements that may cause conda conflicts. +If you have a recent conda installed in your home directory already you may wish to skip this step. + +2. Check out or download this repository. To begin you'll need a copy of the source code. Either fork the Isca repository to your own github username, or clone directly from the ExeClim group. ```{bash} @@ -65,19 +73,20 @@ $ git clone https://github.com/ExeClim/Isca $ cd Isca ``` -The python module is found in the `src` directory and can be installed using `pip`. It's recommended that you use some sort of python environment manager to do this, such as using a conda distribution and creating an environment (in the code below called "`isca_env`"), or using `virtualenv` instead. This getting started will show you how to create a python environment that includes Isca's required packages, and then install the model. - -*Recommended step*: Note that some workstations may have outdated default python and conda installations, which may cause conflicts during installation. As a lightweight solution to get up-to-date installations, we recommend downloading [Miniforge](https://github.com/conda-forge/miniforge). -To ensure this works as expected, check that `$PYTHONPATH` is unset and that your `.bashrc` does not contain `module load` statements that may cause conda conflicts. +3. Create a conda environment Requirements for Isca can be installed via the .yml file included with the model in `Isca/ci/environment-py3.9.yml` -First we create a conda environment `isca_env` containing the required packages, and activate the environment: +Navigate to the downloaded Isca folder, and create a conda environment `isca_env` containing the required packages using: ```{bash} $ conda env create -f ci/environment-py3.9.yml +``` +Then activate the environment; you'll need to do this each time you launch a new bash session. +```{bash} $ conda activate isca_env ``` -Now install the `isca` python module in "development mode". This will allow you, if you wish, to edit the `src/extra/python/isca` files and have those changes be used when you next run an Isca script. Change directory to `Isca/src/extra/python/` and run: +4. Install the model +Now install the `isca` python module in "development mode". This will allow you, if you wish, to edit the `src/extra/python/isca` files and have those changes be used when you next run an Isca script. Navigate to `Isca/src/extra/python/` and run: ```{bash} (isca_env)$ pip install -e . From 62a89c62490105cd1ff6f4c4ace8782c191b8552 Mon Sep 17 00:00:00 2001 From: RuthG Date: Mon, 23 Aug 2021 18:52:25 +0100 Subject: [PATCH 297/304] Fix formatting --- ReadMe.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 2f1dc49a4..444c02b52 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -60,12 +60,13 @@ A python module `isca` (note lowercase) is provided alongside the Fortran source The python module is found in the `src` directory and can be installed using `pip`. It's recommended that you use some sort of python environment manager to do this, such as using a conda distribution and creating an environment (in the code below called "`isca_env`"), or using `virtualenv` instead. This getting started will show you how to create a python environment that includes Isca's required packages, and then install the model. -1. Install [Miniforge](https://github.com/conda-forge/miniforge) +1. **Install [Miniforge](https://github.com/conda-forge/miniforge)** + *Recommended step*: Some workstations may have outdated default python and conda installations, which may cause conflicts during installation. As a lightweight solution to get up-to-date installations, we recommend downloading [Miniforge](https://github.com/conda-forge/miniforge). To ensure this works as expected, check that `$PYTHONPATH` is unset and that your `.bashrc` does not contain `module load` statements that may cause conda conflicts. If you have a recent conda installed in your home directory already you may wish to skip this step. -2. Check out or download this repository. +2. **Check out or download this repository** To begin you'll need a copy of the source code. Either fork the Isca repository to your own github username, or clone directly from the ExeClim group. ```{bash} @@ -73,7 +74,7 @@ $ git clone https://github.com/ExeClim/Isca $ cd Isca ``` -3. Create a conda environment +3. **Create a conda environment** Requirements for Isca can be installed via the .yml file included with the model in `Isca/ci/environment-py3.9.yml` Navigate to the downloaded Isca folder, and create a conda environment `isca_env` containing the required packages using: @@ -85,7 +86,8 @@ Then activate the environment; you'll need to do this each time you launch a new $ conda activate isca_env ``` -4. Install the model +4. **Install the model** + Now install the `isca` python module in "development mode". This will allow you, if you wish, to edit the `src/extra/python/isca` files and have those changes be used when you next run an Isca script. Navigate to `Isca/src/extra/python/` and run: ```{bash} From ad277324be66118a96fa82290e81348f462c9d79 Mon Sep 17 00:00:00 2001 From: RuthG Date: Mon, 23 Aug 2021 18:52:53 +0100 Subject: [PATCH 298/304] Fix formatting II --- ReadMe.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ReadMe.md b/ReadMe.md index 444c02b52..3e6038b4f 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -67,6 +67,7 @@ To ensure this works as expected, check that `$PYTHONPATH` is unset and that you If you have a recent conda installed in your home directory already you may wish to skip this step. 2. **Check out or download this repository** + To begin you'll need a copy of the source code. Either fork the Isca repository to your own github username, or clone directly from the ExeClim group. ```{bash} From bf6a8b593c48c7f55145246bdcd4b5120e2e7edc Mon Sep 17 00:00:00 2001 From: RuthG Date: Mon, 23 Aug 2021 18:53:58 +0100 Subject: [PATCH 299/304] Italicise note on miniforge --- ReadMe.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ReadMe.md b/ReadMe.md index 3e6038b4f..e71603088 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -64,7 +64,8 @@ The python module is found in the `src` directory and can be installed using `pi *Recommended step*: Some workstations may have outdated default python and conda installations, which may cause conflicts during installation. As a lightweight solution to get up-to-date installations, we recommend downloading [Miniforge](https://github.com/conda-forge/miniforge). To ensure this works as expected, check that `$PYTHONPATH` is unset and that your `.bashrc` does not contain `module load` statements that may cause conda conflicts. -If you have a recent conda installed in your home directory already you may wish to skip this step. + +*If you have a recent conda installed in your home directory already you may wish to skip this step.* 2. **Check out or download this repository** From c50316d0b17bd3f1653c9516819c0eb094ac5e70 Mon Sep 17 00:00:00 2001 From: RuthG Date: Mon, 23 Aug 2021 18:54:44 +0100 Subject: [PATCH 300/304] conda installed -> conda version installed --- ReadMe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadMe.md b/ReadMe.md index e71603088..64f292920 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -65,7 +65,7 @@ The python module is found in the `src` directory and can be installed using `pi *Recommended step*: Some workstations may have outdated default python and conda installations, which may cause conflicts during installation. As a lightweight solution to get up-to-date installations, we recommend downloading [Miniforge](https://github.com/conda-forge/miniforge). To ensure this works as expected, check that `$PYTHONPATH` is unset and that your `.bashrc` does not contain `module load` statements that may cause conda conflicts. -*If you have a recent conda installed in your home directory already you may wish to skip this step.* +*If you have a recent conda version installed in your home directory already you may wish to skip this step.* 2. **Check out or download this repository** From 96940025d5c0989ce7daa8bd0a6b9ef22f3ad39d Mon Sep 17 00:00:00 2001 From: RuthG Date: Mon, 23 Aug 2021 18:57:56 +0100 Subject: [PATCH 301/304] Add apostrophes --- ReadMe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadMe.md b/ReadMe.md index 64f292920..9f59ce350 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -58,7 +58,7 @@ A python module `isca` (note lowercase) is provided alongside the Fortran source ### Installing the `isca` python module -The python module is found in the `src` directory and can be installed using `pip`. It's recommended that you use some sort of python environment manager to do this, such as using a conda distribution and creating an environment (in the code below called "`isca_env`"), or using `virtualenv` instead. This getting started will show you how to create a python environment that includes Isca's required packages, and then install the model. +The python module is found in the `src` directory and can be installed using `pip`. It's recommended that you use some sort of python environment manager to do this, such as using a conda distribution and creating an environment (in the code below called "`isca_env`"), or using `virtualenv` instead. This "getting started" will show you how to create a python environment that includes Isca's required packages, and then install the model. 1. **Install [Miniforge](https://github.com/conda-forge/miniforge)** From d8fb5983877ef437e67ea8b35a9ec1cbd7cec0a9 Mon Sep 17 00:00:00 2001 From: RuthG Date: Thu, 26 Aug 2021 18:14:21 +0100 Subject: [PATCH 302/304] Allocation of v_10m was deleted during cleaning of initials from code, causing segfaults when code is compiled with gfortran. This bug fix corrects this deletion --- src/atmos_spectral/driver/solo/idealized_moist_phys.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 index 150a5a6a5..1b86aff46 100644 --- a/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 +++ b/src/atmos_spectral/driver/solo/idealized_moist_phys.F90 @@ -481,6 +481,7 @@ subroutine idealized_moist_phys_init(Time, Time_step_in, nhum, rad_lon_2d, rad_l allocate(ex_del_q (is:ie, js:je)) allocate(temp_2m (is:ie, js:je)) allocate(u_10m (is:ie, js:je)) +allocate(v_10m (is:ie, js:je)) allocate(q_2m (is:ie, js:je)) allocate(rh_2m (is:ie, js:je)) allocate(land (is:ie, js:je)); land = .false. From bf03df4913fed7098176fbc6fa0318d14c33a3d2 Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Thu, 7 Oct 2021 14:31:42 +0100 Subject: [PATCH 303/304] Update index.rst --- docs/source/modules/index.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index ee4e81ba0..99a03c0de 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -13,5 +13,6 @@ Components of Isca idealised_moist_phys two_stream_gray_rad convection_simple_betts_miller - socrates + socrates + surface_flux_mod diag_manager_mod From b7d50a3e000f6f0c7b836415834bfca358bdd4f3 Mon Sep 17 00:00:00 2001 From: rosscastle <43442986+rosscastle@users.noreply.github.com> Date: Thu, 7 Oct 2021 14:35:26 +0100 Subject: [PATCH 304/304] Update index.rst --- docs/source/modules/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/modules/index.rst b/docs/source/modules/index.rst index 0fe76a2e2..c4fee55f6 100644 --- a/docs/source/modules/index.rst +++ b/docs/source/modules/index.rst @@ -16,6 +16,6 @@ Components of Isca two_stream_gray_rad convection_simple_betts_miller socrates - surface_flux_mod + surface_flux diag_manager_mod

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 z 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