ESCOMP / CTSM

Community Terrestrial Systems Model (includes the Community Land Model of CESM)
http://www.cesm.ucar.edu/models/cesm2.0/land/
Other
297 stars 303 forks source link

Not all hard-coded constants in the CLM model are double precision... #142

Open ekluzek opened 6 years ago

ekluzek commented 6 years ago

Erik Kluzek < erik > - 2016-07-25 10:56:16 -0600 Bugzilla Id: 2336 Bugzilla Depends: 2141, Bugzilla CC: andre, dlawren, oleson, rfisher, sacks,

There's a bunch of hard-coded constants in the model that should be double precision, but are single precision...

Here's a sampling...

biogeochem/CNC14DecayMod.F90: spinup_term = 1. biogeochem/CNDVDriverMod.F90: long_name='land/ocean mask (0.=ocean and 1.=land)') biogeochem/CNDVDriverMod.F90: long_name='land/ocean mask (0.=ocean and 1.=land)') biogeochem/CNDVEstablishmentMod.F90: real(r8), parameter :: ramp_agddtw = 300.0 biogeochem/CNDVEstablishmentMod.F90: greffic(p) = 0. biogeochem/CNDVEstablishmentMod.F90: heatstress(p) = 0. biogeochem/CNFUNMod.F90: if(delta_CN .gt.0.and. frac_ideal_C_use.lt.1.0)then
biogeochem/CNFUNMod.F90: if(delta_CN.lt.0.0)then biogeochem/CNFUNMod.F90: do while(exitloop==0.and.cost_retrans_temp .lt. total_n_resistance.and. & biogeochem/CNFireBaseMod.F90: baf_peatf(c))/2.0dt))/(dtrotr_col(c)dayspyrsecspday/dt)/dt biogeochem/CNGapMortalityMod.F90: real(r8):: k_mort = 0.3 ! coeff of growth efficiency in mortality equation biogeochem/CNProductsMod.F90: kprod1 = 7.2e-8 biogeochem/CNProductsMod.F90: kprod10 = 7.2e-9 biogeochem/CNProductsMod.F90: kprod100 = 7.2e-10 biogeochem/DUSTMod.F90: write(iulog,) 'p2l_1d error: sumwt is greater than 1.0 at l= ',index biogeochem/DUSTMod.F90: write(iulog,) 'dstmbl: ryn_nbr_frc_thr_prx_opt < 0.03' biogeochem/DryDepVelocity.F90: if (elai(pi) < (minlai+0.05(maxlai-minlai))) then
biogeochem/DryDepVelocity.F90: if(ispec.eq.index_o3.or.ispec.eq.index_o3a.or.ispec.eq.index_so2) then biogeochem/DryDepVelocity.F90: rs=(fsun(pi)rssun(pi)/elai(pi))+((rssha(pi)/elai(pi))(1.-fsun(pi))) biogeochem/DryDepVelocity.F90: if(ispec.ne.index_o3.and.ispec.ne.index_o3a.and.ispec.ne.index_so2) then biogeochem/NutrientCompetitionCLM45defaultMod.F90: f3 = (2.7/(1.0+exp(-0.004(annsum_npp(p) - 300.0)))) - 0.4 biogeochem/NutrientCompetitionCLM45defaultMod.F90: f3 = (2.7/(1.0+exp(-0.004(annsum_npp(p) - 300.0)))) - 0.4 biogeochem/NutrientCompetitionFlexibleCNMod.F90: f3 = (2.7/(1.0+exp(-0.004(annsum_npp(p) - 300.0)))) - 0.4 biogeochem/NutrientCompetitionFlexibleCNMod.F90: f3 = (2.7/(1.0+exp(-0.004(annsum_npp(p) - 300.0)))) - 0.4 biogeochem/VOCEmissionMod.F90: co2_ppmv = 1.e6forc_pco2(g)/forc_pbot(c) biogeochem/ch4Mod.F90: write(iulog,)'CH4 Conservation Error in CH4Mod driver, nstep, c, errch4 (gC /m^2.timestep)', & biogeochem/ch4Mod.F90: write(iulog,)'CH4 Conservation Error in CH4Mod driver for lake column, nstep, c, errch4 (gC/m^2.timestep)', & biogeochem/ch4Mod.F90: write(iulog,)'CH4 Conservation Error in CH4Mod during diffusion, nstep, c, errch4 (mol /m^2.timestep)', & biogeochem/dynConsBiogeochemMod.F90: if(patch%itype(p)==4.or.patch%itype(p)==6)then biogeophys/ActiveLayerMod.F90: if ( grc%lat(g) > 0. ) then biogeophys/ActiveLayerMod.F90: altmax(c) = 0. biogeophys/ActiveLayerMod.F90: if ( grc%lat(g) <= 0. ) then biogeophys/ActiveLayerMod.F90: altmax(c) = 0. biogeophys/BalanceCheckMod.F90: forc_rain_col(c) = 0. biogeophys/BalanceCheckMod.F90: forc_snow_col(c) = 0. biogeophys/BandDiagonalMod.F90: ab=0.0 biogeophys/CanopyHydrologyMod.F90: qflx_prec_grnd_snow(p) = 0. biogeophys/CanopyHydrologyMod.F90: qflx_prec_grnd_rain(p) = 0. biogeophys/CanopyHydrologyMod.F90: accum_factor=0.1 biogeophys/CanopyHydrologyMod.F90: if (h2osno(c) > 0.0) then biogeophys/CanopyHydrologyMod.F90: int_snow(c) = 0. !reset prior to adding newsnow below biogeophys/CanopyHydrologyMod.F90: d=0.0 biogeophys/CanopyHydrologyMod.F90: sigma=1.0e3 micro_sigma(c) ! convert to mm biogeophys/CanopyHydrologyMod.F90: +sigma/sqrt(2.0shr_const_pi)*exp(-d2/(2.0*sigma*2)) & biogeophys/CanopyTemperatureMod.F90: qred = (1.-frac_sno(c))hr_road_perv + frac_sno(c) biogeophys/LakeFluxesMod.F90: real(r8), parameter :: prn = 0.713 ! Prandtl # for air at neutral stability biogeophys/LakeFluxesMod.F90: real(r8), parameter :: sch = 0.66 ! Schmidt # for water in air at neutral stability biogeophys/LakeTemperatureMod.F90: hc_soisno(c) = hc_soisno(c) + cv_lake(c,j)t_lake(c,j)/1.e6 biogeophys/LakeTemperatureMod.F90: hc_soisno(c) = hc_soisno(c) + cv(c,j)t_soisno(c,j)/1.e6 biogeophys/LakeTemperatureMod.F90: if (j >= 1) hc_soi(c) = hc_soi(c) + cv(c,j)t_soisno(c,j)/1.e6 biogeophys/LunaMod.F90: if(tlai(p) > 0.0)then
biogeophys/LunaMod.F90: PARTop = RadTop
4.6 !conversion from w/m2 to umol/m2/s. PAR is still in umol photons, not electrons. Also the par240d_z is only for radiation at visible range. Hence 4.6 not 2.3 multiplier. biogeophys/LunaMod.F90: if(gpp_day(p)>0.0 )then !only optimize if there is growth and it is C3 plants biogeophys/LunaMod.F90: write(iulog, ) 'Warning: leaf nitrogen content become unrealistically high (>15.0 g N/m2 leaf) ', & biogeophys/LunaMod.F90: if(enzs_z(p,z)<1.0) then biogeophys/LunaMod.F90: if(ndaysteps(p)>0.0) then biogeophys/LunaMod.F90: if(ndaysteps(p)>0.0)then biogeophys/LunaMod.F90: chg_per_step = 0.02 FNCa biogeophys/PhotosynthesisMod.F90: long_name='enzyme decay status during stress: 1.0-fully active; 0.0-all decayed', units='unitless', & biogeophys/PhotosynthesisMod.F90: if(abs(xm) <= tol1 .or. fb == 0.)then biogeophys/PhotosynthesisMod.F90: real(r8), parameter :: tolf=1.e-6,toldx=1.e-9 biogeophys/RootBiophysMod.F90: rootfr(p,:) = 0. biogeophys/RootBiophysMod.F90: real(r8), parameter :: rootprof_exp = 3. ! how steep profile is for root C inputs (1/ e-folding depth) (1/m)
biogeophys/RootBiophysMod.F90: rootfr(p,1) = 0. biogeophys/SnowHydrologyMod.F90: real(r8), parameter :: min_snow_to_keep = 1.e-9 ! fraction of bottom snow layer to keep with capping biogeophys/SnowSnicarMod.F90: mu_one = 0.5 biogeophys/SnowSnicarMod.F90: gamma1(i) = (3
0.5)(2-(omega_star(i)(1+g_star(i))))/2 biogeophys/SnowSnicarMod.F90: gamma2(i) = omega_star(i)*(30.5)*(1-g_star(i))/2 biogeophys/SnowSnicarMod.F90: gamma3(i) = (1-((30.5)g_star(i)mu_not))/2 biogeophys/SnowSnicarMod.F90: mu_one = 1/(30.5) biogeophys/SnowSnicarMod.F90: gamma3(i) = (1-((3*0.5)g_star(i)mu_not))/2 biogeophys/SnowSnicarMod.F90: mu_one = 0.5 biogeophys/SnowSnicarMod.F90: n=floor(i/2.0) biogeophys/SnowSnicarMod.F90: if (flx_abs_lcl(i,bnd_idx) < -0.00001) then biogeophys/SnowSnicarMod.F90: write (iulog,"(a,e12.6,a,i6,a,i6)") "SNICAR ERROR: Energy conservation error of : ", energy_sum, & biogeophys/SnowSnicarMod.F90: if (albout_lcl(bnd_idx) > 1.0) then biogeophys/SnowSnicarMod.F90: write (iulog,) "SNICAR ERROR: Albedo > 1.0 at c: ", c_idx, " NSTEP= ",nstep biogeophys/SoilFluxesMod.F90: if ((h2osoi_liq(c,j)+h2osoi_ice(c,j)) > 0.) then biogeophys/SoilFluxesMod.F90: qflx_evap_grnd(p) = 0. biogeophys/SoilFluxesMod.F90: + (1-frac_veg_nosno(p))(1.-emg(c))forc_lwrad(c) & biogeophys/SoilHydrologyInitTimeConstMod.F90: if ( soil_layerstruct /= '10SL_3.5m' )then biogeophys/SoilHydrologyInitTimeConstMod.F90: d = 0.0 biogeophys/SoilHydrologyInitTimeConstMod.F90: dfdd = exp(-d2/(2.0*micro_sigma(c)2))/(micro_sigma(c)sqrt(2.0shr_const_pi)) biogeophys/SoilHydrologyInitTimeConstMod.F90: micro_sigma(c)/sqrt(2.0shr_const_pi)exp(-d2/(2.0*micro_sigma(c)2))
biogeophys/SoilHydrologyInitTimeConstMod.F90: xksat = 0.0070556 *( 10.*(-0.884+0.0153sandvic(i)) ) biogeophys/SoilHydrologyMod.F90: if (xs(c) > 0.) then biogeophys/SoilHydrologyMod.F90: if (h2osfc(c) < 0.0) then biogeophys/SoilHydrologyMod.F90: h2osfc(c) = 0.0 biogeophys/SoilHydrologyMod.F90: ( 1. - (1.+1.e3zwt(c)/sucsat(c,nlevsoi))
(-1./bsw(c,nlevsoi))) biogeophys/SoilHydrologyMod.F90: if(qcharge_tot > 0.) then !rising water table biogeophys/SoilHydrologyMod.F90: ( 1. - (1.+1.e3zwt(c)/sucsat(c,j))(-1./bsw(c,j))) biogeophys/SoilHydrologyMod.F90: qcharge_layer=min(qcharge_tot,(s_y(zwt(c) - zi(c,j-1))1.e3)) biogeophys/SoilHydrologyMod.F90: if (qcharge_tot <= 0.) exit biogeophys/SoilHydrologyMod.F90: ( 1. - (1.+1.e3zwt(c)/sucsat(c,j))(-1./bsw(c,j))) biogeophys/SoilHydrologyMod.F90: qcharge_layer=max(qcharge_tot,-(s_y(zi(c,j) - zwt(c))1.e3)) biogeophys/SoilHydrologyMod.F90: if (qcharge_tot >= 0.) then biogeophys/SoilHydrologyMod.F90: sat_lev=0.9 biogeophys/SoilHydrologyMod.F90: if (rsub_top_tot >= 0.) then biogeophys/SoilHydrologyMod.F90: sat_lev=0.9 biogeophys/SoilHydrologyMod.F90: if (rsub_top_tot >= 0.) then biogeophys/SoilHydrologyMod.F90: ( 1. - (1.+1.e3zwt(c)/sucsat(c,nlevsoi))(-1./bsw(c,nlevsoi))) biogeophys/SoilHydrologyMod.F90: if(rsub_top_tot > 0.) then !rising water table biogeophys/SoilHydrologyMod.F90: ( 1. - (1.+1.e3zwt(c)/sucsat(c,j))(-1./bsw(c,j))) biogeophys/SoilHydrologyMod.F90: rsub_top_layer=max(rsub_top_tot,-(s_y(zi(c,j) - zwt(c))1.e3)) biogeophys/SoilHydrologyMod.F90: if (rsub_top_tot >= 0.) then biogeophys/SoilHydrologyMod.F90: sat_lev=0.9 biogeophys/SoilHydrologyMod.F90: ( 1. - (1.+1.e3zwt(c)/sucsat(c,k))(-1./bsw(c,k))) biogeophys/SoilHydrologyMod.F90: if (drainage_tot >= 0.) then biogeophys/SoilHydrologyMod.F90: sat_lev=0.9 biogeophys/SoilHydrologyMod.F90: if(rsub_top_tot > 0.) then !rising water table biogeophys/SoilHydrologyMod.F90: ( 1. - (1.+1.e3zwt(c)/sucsat(c,j))(-1./bsw(c,j))) biogeophys/SoilHydrologyMod.F90: rsub_top_layer=max(rsub_top_tot,-(s_y(zi(c,j) - zwt(c))1.e3)) biogeophys/SoilHydrologyMod.F90: if (rsub_top_tot >= 0.) then biogeophys/SoilStateInitTimeConstMod.F90: if ( soil_layerstruct /= '10SL_3.5m' )then ! apply soil texture from 10 layer input dataset biogeophys/SoilStateInitTimeConstMod.F90: soilstate_inst%bsw_col(c,lev) = 2.91 + 0.159clay biogeophys/SoilStateInitTimeConstMod.F90: xksat = 0.0070556 ( 10.(-0.884+0.0153sand) ) ! mm/s biogeophys/SoilStateInitTimeConstMod.F90: xksat = 0.0070556 ( 10.(-0.884+0.0153sand) ) ! mm/s biogeophys/SoilTemperatureMod.F90: xmf_h2osfc(c) = 0. biogeophys/SoilTemperatureMod.F90: zh2osfc=1.0e-3(0.5h2osfc(c)) !convert to [m] from [mm] biogeophys/SoilTemperatureMod.F90: if (h2osoi_ice(c,j) > 0. .AND. t_soisno(c,j) > tfrz) then biogeophys/SoilTemperatureMod.F90: dzm=(0.5dz_h2osfc(c)+col%z(c,1)) biogeophys/SoilTemperatureMod.F90: dzm=(0.5dz_h2osfc(c)+col%z(c,1)) biogeophys/SoilTemperatureMod.F90: dzm=(0.5dz_h2osfc(c)+col%z(c,1)) biogeophys/SoilTemperatureMod.F90: dzm=(0.5dz_h2osfc(c)+col%z(c,1)) biogeophys/SoilTemperatureMod.F90: dzm=(0.5dz_h2osfc(c)+col%z(c,1)) biogeophys/SoilWaterMovementMod.F90: baseflow_sink = 0. biogeophys/SoilWaterMovementMod.F90: vwc_zwt(c) = min(vwc_zwt(c), 0.5(watsat(c,nlevsoi) + h2osoi_vol(c,nlevsoi)) ) biogeophys/SoilWaterMovementMod.F90: dwat_temp = 0. biogeophys/SoilWaterMovementMod.F90: qout(j) = 0. biogeophys/SoilWaterMovementMod.F90: dqodw1(j) = 0. biogeophys/SoilWaterMovementMod.F90: dqodw2(j) = 0. biogeophys/SoilWaterMovementMod.F90: qout(j) = 0. biogeophys/SoilWaterMovementMod.F90: dqodw1(j) = 0. biogeophys/SoilWaterMovementMod.F90: qcharge(c) = -ka (wh_zwt-wh) /((zwt(c)+1.e-3)m_to_mm) biogeophys/SoilWaterMovementMod.F90: qcharge(c) = -ka (wh_zwt-wh)/((zwt(c)-z(c,jwt))m_to_mm2.0) biogeophys/SurfaceAlbedoMod.F90: albgrd_bc(c,ib) = albsod(c,ib)(1.-frac_sno(c)) + albsnd_bc(c,ib)frac_sno(c) biogeophys/SurfaceAlbedoMod.F90: albgri_bc(c,ib) = albsoi(c,ib)(1.-frac_sno(c)) + albsni_bc(c,ib)frac_sno(c) biogeophys/SurfaceAlbedoMod.F90: albgrd_oc(c,ib) = albsod(c,ib)(1.-frac_sno(c)) + albsnd_oc(c,ib)frac_sno(c) biogeophys/SurfaceAlbedoMod.F90: albgri_oc(c,ib) = albsoi(c,ib)(1.-frac_sno(c)) + albsni_oc(c,ib)frac_sno(c) biogeophys/SurfaceAlbedoMod.F90: albgrd_dst(c,ib) = albsod(c,ib)(1.-frac_sno(c)) + albsnd_dst(c,ib)frac_sno(c) biogeophys/SurfaceAlbedoMod.F90: albgri_dst(c,ib) = albsoi(c,ib)(1.-frac_sno(c)) + albsni_dst(c,ib)frac_sno(c) biogeophys/SurfaceAlbedoMod.F90: albgrd_pur(c,ib) = albsod(c,ib)(1.-frac_sno(c)) + albsnd_pur(c,ib)frac_sno(c) biogeophys/SurfaceAlbedoMod.F90: albgri_pur(c,ib) = albsoi(c,ib)(1.-frac_sno(c)) + albsni_pur(c,ib)frac_sno(c) biogeophys/SurfaceAlbedoMod.F90: ((1.-frac_sno(c))(1-albsod(c,ib))(flx_absd_snw(c,i,ib)/(1.-albsnd(c,ib)))) biogeophys/SurfaceAlbedoMod.F90: ((1.-frac_sno(c))(1-albsoi(c,ib))(flx_absi_snw(c,i,ib)/(1.-albsni(c,ib)))) biogeophys/SurfaceAlbedoMod.F90: ((1.-frac_sno(c))(1-albsod(c,ib))(flx_absd_snw(c,i,ib)/(1.-albsnd(c,ib)))) biogeophys/SurfaceAlbedoMod.F90: ((1.-frac_sno(c))(1-albsoi(c,ib))(flx_absi_snw(c,i,ib)/(1.-albsni(c,ib)))) biogeophys/SurfaceAlbedoMod.F90: flx_absdv(c,i) = flx_absd_snw(c,i,ib)(1.-albsnd(c,ib)) biogeophys/SurfaceAlbedoMod.F90: flx_absiv(c,i) = flx_absi_snw(c,i,ib)(1.-albsni(c,ib)) biogeophys/SurfaceAlbedoMod.F90: flx_absdn(c,i) = flx_absd_snw(c,i,ib)(1.-albsnd(c,ib)) biogeophys/SurfaceAlbedoMod.F90: flx_absin(c,i) = flx_absi_snw(c,i,ib)(1.-albsni(c,ib)) biogeophys/SurfaceRadiationMod.F90: write(iulog,)"flx_absdv1 = ",trd(p,1)(1.-albgrd(c,1)) biogeophys/SurfaceRadiationMod.F90: write(iulog,)"flx_absiv1 = ",tri(p,1)(1.-albgri(c,1)) biogeophys/SurfaceRadiationMod.F90: write(iulog,)"flx_absdn1 = ",trd(p,2)(1.-albgrd(c,2)) biogeophys/SurfaceRadiationMod.F90: write(iulog,)"flx_absin1 = ",tri(p,2)(1.-albgri(c,2)) biogeophys/SurfaceResistanceMod.F90: d0 = 2.12e-5*(t_soisno(c,1)/273.15)1.75 ![Bitelli et al., JH, 08] biogeophys/TemperatureType.F90: this%t_soisno_col(c,j) = 297.56 - (j-1) ((297.56-293.16)/(nlevgrnd-1)) biogeophys/TemperatureType.F90: this%t_soisno_col(c,1:nlevurb) = 297.56 biogeophys/TemperatureType.F90: this%t_soisno_col(c,j) = 289.46 - (j-1) ((289.46-295.16)/(nlevgrnd-1)) biogeophys/TemperatureType.F90: this%t_soisno_col(c,1:nlevurb) = 289.46 biogeophys/TemperatureType.F90: this%t_veg_patch(p) = 297.56 biogeophys/TemperatureType.F90: this%t_veg_patch(p) = 289.46 biogeophys/TemperatureType.F90: this%t_ref2m_patch(p) = 297.56 biogeophys/TemperatureType.F90: this%t_ref2m_patch(p) = 289.46 biogeophys/TemperatureType.F90: this%t_ref2m_u_patch(p) = 297.56 biogeophys/TemperatureType.F90: this%t_ref2m_u_patch(p) = 289.46 biogeophys/TemperatureType.F90: this%t_ref2m_r_patch(p) = 297.56 biogeophys/TemperatureType.F90: this%t_ref2m_r_patch(p) = 289.46 biogeophys/UrbanFluxesMod.F90: write(iulog,)'clm model is stopping - error is greater than 4.e-9 kg/m2/s' biogeophys/WaterStateType.F90: avgflag='A', long_name='soil water as frac. of whc for top 0.05 m', & biogeophys/WaterStateType.F90: if(this%snow_depth_col(c) > 0.0) then biogeophys/WaterStateType.F90: fmelt = (snowbd/100.)1. biogeophys/WaterStateType.F90: this%frac_sno_col(c) = tanh( this%snow_depth_col(c) /(2.5 zlnd fmelt) ) cpl/lnd_comp_esmf.F90: "The Community Land Model version 4.0 is " // & cpl/lnd_comp_esmf.F90: "the land model used in the CESM1.0. " // & dyn_subgrid/dynLandunitAreaMod.F90: real(r8), parameter :: tol = 1.e-14 ! tolerance for making sure sum of landunit weights equals 1 main/FuncPedotransferMod.F90: bsw = 3.10+0.157clay-0.003sand
main/FuncPedotransferMod.F90: xksat = 0.0070556
(10.
(-0.60+0.0126sand-0.0064clay) ) !mm/s now use table 4. main/FuncPedotransferMod.F90: bsw = 2.91 + 0.159clay main/FuncPedotransferMod.F90: xksat = 0.0070556 ( 10.*(-0.884+0.0153sand) ) ! mm/s, from table 5 main/FuncPedotransferMod.F90: watsat = -0.00108sand+0.494305 main/FuncPedotransferMod.F90: bsw = 0.137clay + 3.501 main/clm_driver.F90:1000 format (1x,'nstep = ',i10,' TS = ',f21.15) main/clm_initializeMod.F90: max_decl = 0.409571 main/clm_varcon.F90: real(r8), parameter :: n_melt=0.7 ! fsca shape parameter main/clm_varcon.F90: real(r8), parameter :: e_ice=6.0 ! soil ice impedance factor main/clm_varcon.F90: real(r8), parameter :: pc = 0.4 ! threshold probability main/clm_varcon.F90: real(r8), parameter :: mu = 0.13889 ! connectivity exponent main/clm_varcon.F90: real(r8), parameter :: preind_atm_del13c = -6.0 ! preindustrial value for atmospheric del13C main/clm_varcon.F90: real(r8), parameter :: preind_atm_ratio = SHR_CONST_PDB + (preind_atm_del13c SHR_CONST_PDB)/1000.0 ! 13C/12C main/clm_varcon.F90: real(r8) :: c13ratio = preind_atm_ratio/(1.0+preind_atm_ratio) ! 13C/(12+13)C preind atmosphere main/clm_varcon.F90: real(r8) :: vent_ach = 0.3 ! ventilation rate (air exchanges per hour) main/clm_varctl.F90: character(len=256), public :: source = "Community Land Model CLM4.0" main/clm_varctl.F90: character(len=256), public :: conventions = "CF-1.0"
main/clm_varctl.F90: character(len=16), public :: soil_layerstruct = '10SL_3.5m' main/clm_varpar.F90: if ( soil_layerstruct == '10SL_3.5m' ) then main/clm_varpar.F90: else if ( soil_layerstruct == '23SL_3.5m' ) then main/clm_varpar.F90: else if ( soil_layerstruct == '20SL_8.5m' ) then main/controlMod.F90: write(iulog,
)'ERROR: nlevsno = ',nlevsno,' is not supported, must be in range 3-12.' main/controlMod.F90: write(iulog,)'ERROR: h2osno_max = ',h2osno_max,' is not supported, must be greater than 0.0.' main/controlMod.F90: 'as compared with 0.60, 0.40 for cold frozen lakes with no snow.' main/histFileMod.F90: long_name='land/ocean mask (0.=ocean and 1.=land)', ncid=nfid(t), & main/histFileMod.F90: long_name='land/ocean mask (0.=ocean and 1.=land)', ncid=nfid(t), & main/histFileMod.F90: long_name='pft real/fake mask (0.=fake and 1.=real)', ncid=nfid(t), & main/histFileMod.F90: long_name='pft real/fake mask (0.=fake and 1.=real)', ncid=nfid(t), & main/initGridCellsMod.F90: wtcol2lunit = (1. - wtlunit_roof)/3 main/initGridCellsMod.F90: wtcol2lunit = (1. - wtlunit_roof)/3 main/initGridCellsMod.F90: wtcol2lunit = ((1. - wtlunit_roof)/3) (1.-wtroad_perv) main/initGridCellsMod.F90: wtcol2lunit = ((1. - wtlunit_roof)/3) (wtroad_perv) main/initVerticalMod.F90: real(r8) :: thick_equal = 0.2 main/initVerticalMod.F90: if ( soil_layerstruct == '10SL_3.5m' ) then main/initVerticalMod.F90: else if ( soil_layerstruct == '23SL_3.5m' )then main/initVerticalMod.F90: zsoi(j) = 0.5(zisoi(j-1) + zisoi(j)) main/initVerticalMod.F90: else if ( soil_layerstruct == '20SL_8.5m' ) then main/initVerticalMod.F90: zsoi(j) = 0.5(zisoi(j-1) + zisoi(j)) main/initVerticalMod.F90: dzsoi_decomp(1) = 1. main/initVerticalMod.F90: ziurb_wall(l,0) = 0. main/initVerticalMod.F90: ziurb_roof(l,0) = 0. main/initVerticalMod.F90: ziurb_wall(l,0) = 0. main/initVerticalMod.F90: ziurb_roof(l,0) = 0. main/initVerticalMod.F90: zurb_wall(l,j) = (j-0.5)(thick_wall(l)/float(nlevurb)) !node depths main/initVerticalMod.F90: zurb_roof(l,j) = (j-0.5)(thick_roof(l)/float(nlevurb)) !node depths main/initVerticalMod.F90: dzurb_roof(l,1) = 0.5(zurb_roof(l,1)+zurb_roof(l,2)) !thickness b/n two interfaces main/initVerticalMod.F90: dzurb_roof(l,j)= 0.5(zurb_roof(l,j+1)-zurb_roof(l,j-1)) main/initVerticalMod.F90: dzurb_wall(l,1) = 0.5(zurb_wall(l,1)+zurb_wall(l,2)) !thickness b/n two interfaces main/initVerticalMod.F90: dzurb_wall(l,j)= 0.5(zurb_wall(l,j+1)-zurb_wall(l,j-1)) main/initVerticalMod.F90: ziurb_wall(l,0) = 0. main/initVerticalMod.F90: ziurb_wall(l,j) = 0.5(zurb_wall(l,j)+zurb_wall(l,j+1)) !interface depths main/initVerticalMod.F90: ziurb_wall(l,nlevurb) = zurb_wall(l,nlevurb) + 0.5dzurb_wall(l,nlevurb) main/initVerticalMod.F90: ziurb_roof(l,0) = 0. main/initVerticalMod.F90: ziurb_roof(l,j) = 0.5(zurb_roof(l,j)+zurb_roof(l,j+1)) !interface depths main/initVerticalMod.F90: ziurb_roof(l,nlevurb) = zurb_roof(l,nlevurb) + 0.5dzurb_roof(l,nlevurb) main/subgridAveMod.F90: write(iulog,)'p2c_1d error: sumwt is greater than 1.0' main/subgridAveMod.F90: write(iulog,)'p2c_2d error: sumwt is greater than 1.0 at c= ',index,' lev= ',j main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = 3.0 / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: write(iulog,)'p2l_1d error: sumwt is greater than 1.0 at l= ',index main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = 3.0 / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: write(iulog,)'p2l_2d error: sumwt is greater than 1.0 at l= ',index,' j= ',j main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = 3.0 / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: write(iulog,)'p2g_1d error: sumwt is greater than 1.0 at g= ',index main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = 3.0 / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: write(iulog,)'p2g_2d error: sumwt gt 1.0 at g/sumwt = ',index,sumwt(index) main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = 3.0 / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: write(iulog,)'c2l_1d error: sumwt is greater than 1.0 at l= ',index main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = 3.0 / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: write(iulog,)'c2l_2d error: sumwt is greater than 1.0 at l= ',index,' lev= ',j main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = 3.0 / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: write(iulog,)'c2g_1d error: sumwt is greater than 1.0 at g= ',index main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = 3.0 lun%canyon_hwr(l) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = (3.0 lun%canyon_hwr(l)) / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: scale_c2l(c) = 3.0 / (2.lun%canyon_hwr(l) + 1.) main/subgridAveMod.F90: write(iulog,)'c2g_2d error: sumwt is greater than 1.0 at g= ',index main/subgridAveMod.F90: write(iulog,)'l2g_1d error: sumwt is greater than 1.0 at g= ',index main/subgridAveMod.F90: write(iulog,)'l2g_2d error: sumwt is greater than 1.0 at g= ',index,' lev= ',j main/subgridRestMod.F90: real(r8), parameter :: tol = 5.e-3 ! tolerance for checking weights main/surfrdMod.F90: if (ldomain%lonc(n)-surfdata_domain%lonc(n) > 300.) then main/surfrdMod.F90: elseif (ldomain%lonc(n)-surfdata_domain%lonc(n) < -300.) then main/surfrdUtilsMod.F90: write(iulog,) trim(caller), ' ERROR: sum of ', trim(name), ' not 1.0 at nl=', nindx soilbiogeochem/SoilBiogeochemCarbonStateType.F90: if (zsoi(j) < 0.3 ) then !! only initialize upper soil column soilbiogeochem/SoilBiogeochemCarbonStateType.F90: m = 1. / decomp_cascade_con%spinup_factor(k) soilbiogeochem/SoilBiogeochemCompetitionMod.F90: sminn_tot(c) = 0. soilbiogeochem/SoilBiogeochemCompetitionMod.F90: if (sminn_tot(c) > 0.) then soilbiogeochem/SoilBiogeochemCompetitionMod.F90: sminn_tot(c) = 0. soilbiogeochem/SoilBiogeochemCompetitionMod.F90: if (sminn_tot(c) > 0.) then soilbiogeochem/SoilBiogeochemDecompCascadeBGCMod.F90: tau_l1 = 1./18.5 soilbiogeochem/SoilBiogeochemDecompCascadeBGCMod.F90: tau_l2_l3 = 1./4.9 soilbiogeochem/SoilBiogeochemDecompCascadeBGCMod.F90: tau_s1 = 1./7.3 soilbiogeochem/SoilBiogeochemDecompCascadeBGCMod.F90: tau_s2 = 1./0.2 soilbiogeochem/SoilBiogeochemDecompCascadeBGCMod.F90: tau_s3 = 1./.0045 soilbiogeochem/SoilBiogeochemDecompCascadeBGCMod.F90: tau_cwd = 1./0.3 soilbiogeochem/SoilBiogeochemDecompCascadeCNMod.F90: rf_decomp_cascade(bounds%begc:bounds%endc,1:nlevdecomp,i_s4atm) = 1. soilbiogeochem/SoilBiogeochemLittVertTranspMod.F90: epsilon = 1.e-30 soilbiogeochem/SoilBiogeochemLittVertTranspMod.F90: trcr_tendency_ptr(c,j,s) = 0.-(conc_trcr(c,j) + source(c,j,s)) soilbiogeochem/SoilBiogeochemNLeachingMod.F90: real(r8), parameter :: depth_runoff_Nloss = 0.05 ! (m) depth over which runoff mixes with soil water for N loss to runoff soilbiogeochem/SoilBiogeochemNitrifDenitrifMod.F90: pH(bounds%begc:bounds%endc) = 6.5 !!! set all soils with the same pH as placeholder here soilbiogeochem/SoilBiogeochemNitrifDenitrifMod.F90: k_nitr_ph_vr(c,j) = 0.56 + atan(rpi 0.45 (-5.+ pH(c)))/rpi soilbiogeochem/SoilBiogeochemNitrifDenitrifMod.F90: n2_n2o_ratio_denit_vr(c,j) = max(0.16ratio_k1(c,j), ratio_k1(c,j)exp(-0.8 ratio_no3_co2(c,j))) fr_WFPS(c,j) soilbiogeochem/SoilBiogeochemNitrogenStateType.F90: m = 1. / decomp_cascade_con%spinup_factor(k) soilbiogeochem/SoilBiogeochemNitrogenUptakeMod.F90: sminn_tot(c) = 0. soilbiogeochem/SoilBiogeochemNitrogenUptakeMod.F90: if (sminn_tot(c) > 0.) then soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: real(r8), public :: rootprof_exp = 3. ! how steep profile is for root C inputs (1/ e-folding depth) (1/m)
soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: real(r8), public :: surfprof_exp = 10. ! how steep profile is for surface components (1/ e_folding depth) (1/m)
soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: real(r8) :: delta = 1.e-10 soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: cinput_rootfr(p,1) = 0. soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: froot_prof(p,1) = 1./dzsoi_decomp(1) soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: croot_prof(p,1) = 1./dzsoi_decomp(1) soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: leaf_prof(p,1) = 1./dzsoi_decomp(1) soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: stem_prof(p,1) = 1./dzsoi_decomp(1) soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: nfixation_prof(c,1) = 1./dzsoi_decomp(1) soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: ndep_prof(c,1) = 1./dzsoi_decomp(1) soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: ndep_prof_sum = 0. soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: nfixation_prof_sum = 0. soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: froot_prof_sum = 0. soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: croot_prof_sum = 0. soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: leaf_prof_sum = 0. soilbiogeochem/SoilBiogeochemVerticalProfileMod.F90: stem_prof_sum = 0. utils/clm_time_manager.F90: if ( (get_curr_calday > 366.0) .and. (get_curr_calday <= 367.0) .and. & utils/clm_time_manager.F90: if ( (get_curr_calday < 1.0) .or. (get_curr_calday > 366.0) )then utils/clm_time_manager.F90: if ( (get_calday > 366.0) .and. (get_calday <= 367.0) .and. & utils/clm_time_manager.F90: if ( (get_calday < 1.0) .or. (get_calday > 366.0) )then utils/domainMod.F90: domain%frac = -1.0e36

ekluzek commented 6 years ago

Erik Kluzek < erik > - 2016-07-25 10:57:33 -0600

Also see 2141 for constants in SoilTemperature...

ekluzek commented 6 years ago

Dr. Dr. Prabhakar Shrestha notes the following...

Was checking CLM5.0 codes, why is r8 missing in this line in SoilHydrologyInitTimeConstMod.F90 ?

xksat = 0.0070556 *( 10.*(-0.884+0.0153sandvic(i)) )

Best Regards, Prabhakar


Dr. Prabhakar Shrestha

ekluzek commented 5 years ago

Still plenty of this around in the code.

slevis-lmwg commented 7 months ago

Sturm1997 needs _r8 added to all hardwired values. CN-matrix same.