From f65825e5eeade51f32eccc4afeb68dd2bcd09caa Mon Sep 17 00:00:00 2001 From: aantonyb Date: Fri, 4 Apr 2025 08:58:04 -0700 Subject: [PATCH 1/8] inc --- C/projects/CARDAMOM_GENERAL/CARDAMOM_NETCDF_DATA_STRUCTURE.c | 2 ++ C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c | 4 ++++ C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c | 5 ++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/C/projects/CARDAMOM_GENERAL/CARDAMOM_NETCDF_DATA_STRUCTURE.c b/C/projects/CARDAMOM_GENERAL/CARDAMOM_NETCDF_DATA_STRUCTURE.c index 3112cf79..bac02cf0 100644 --- a/C/projects/CARDAMOM_GENERAL/CARDAMOM_NETCDF_DATA_STRUCTURE.c +++ b/C/projects/CARDAMOM_GENERAL/CARDAMOM_NETCDF_DATA_STRUCTURE.c @@ -114,6 +114,8 @@ TIMESERIES_DRIVER_STRUCT TIME_INDEX; TIMESERIES_DRIVER_STRUCT TOTAL_PREC; TIMESERIES_DRIVER_STRUCT VPD; TIMESERIES_DRIVER_STRUCT YIELD; +TIMESERIES_DRIVER_STRUCT ET_REF;//For precip-recycling experiments only + //Summary variables diff --git a/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c b/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c index e6e93703..b812cc13 100644 --- a/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c +++ b/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c @@ -325,6 +325,10 @@ printf("Done reading all other edc "); DEFAULT_REFERENCE_MEAN(&DATA->YIELD); + + DATA->ET_REF.values=ncdf_read_double_var(ncid, "ET_REF", &(DATA->ET_REF.length)); + DATA->ET_REF.reference_mean=ncdf_read_double_attr(ncid, "ET_REF","reference_mean"); + DEFAULT_REFERENCE_MEAN(&DATA->ET_REF); //Summary & derived variables diff --git a/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c b/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c index d53ecb5c..4f8f02df 100644 --- a/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c +++ b/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c @@ -269,6 +269,8 @@ double *SKT=DATA.ncdf_data.SKT.values; double *STRD=DATA.ncdf_data.STRD.values; double *DIST=DATA.ncdf_data.DISTURBANCE_FLUX.values; double *YIELD=DATA.ncdf_data.YIELD.values; +double *ET_REF=DATA.ncdf_data.ET_REF.values; + /*C-pools, fluxes, meteorology indices*/ int p=0,f,m,nxp, i; @@ -671,7 +673,8 @@ FLUXES[f+F.gh_in] =FLUXES[f+F.ground_heat] *DGCM_SEC_DAY; FLUXES[f+F.sensible_heat] = Rn - FLUXES[f+F.ground_heat] - FLUXES[f+F.latent_heat]; // Infiltration (mm/day) -double liquid_in = (PREC[n] - SNOWFALL[n] + FLUXES[f+F.melt]); + double et_recycled=(FLUXES[f+F.ets]-ET_REF[n])*0.25; +double liquid_in = (PREC[n] - SNOWFALL[n] + FLUXES[f+F.melt]+et_recycled); FLUXES[f+F.infil] = pars[P.max_infil]*(1 - exp(-liquid_in/pars[P.max_infil])); // Surface runoff (mm/day) From 2af00670a5b5f379b48ffa9dadc5f31759b6169c Mon Sep 17 00:00:00 2001 From: aantonyb Date: Fri, 15 Aug 2025 11:12:55 -0700 Subject: [PATCH 2/8] inc --- C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c | 6 ++++-- MATLAB/auxi_fun/plotfun_freeze_xyticks.m | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 MATLAB/auxi_fun/plotfun_freeze_xyticks.m diff --git a/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c b/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c index 4f8f02df..76750fec 100644 --- a/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c +++ b/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c @@ -458,6 +458,7 @@ int nofluxes=((DALEC *)DATA.MODEL)->nofluxes; /*repeating loop for each timestep*/ + for (n=0; n < N_timesteps; n++){ /*pool index*/ p=nopools*n; @@ -673,7 +674,7 @@ FLUXES[f+F.gh_in] =FLUXES[f+F.ground_heat] *DGCM_SEC_DAY; FLUXES[f+F.sensible_heat] = Rn - FLUXES[f+F.ground_heat] - FLUXES[f+F.latent_heat]; // Infiltration (mm/day) - double et_recycled=(FLUXES[f+F.ets]-ET_REF[n])*0.25; +double et_recycled=(FLUXES[f+F.ets]-ET_REF[n])*0; double liquid_in = (PREC[n] - SNOWFALL[n] + FLUXES[f+F.melt]+et_recycled); FLUXES[f+F.infil] = pars[P.max_infil]*(1 - exp(-liquid_in/pars[P.max_infil])); @@ -1138,6 +1139,7 @@ POOLS[nxp+S.D_PSI_LY3]=fmax(HYDROFUN_MOI2PSI( POOLS[nxp+S.D_SM_LY3],psi_porosit + return 0; } @@ -1565,4 +1567,4 @@ DALECmodel->OBSOPE=OBSOPE; -return 0;} \ No newline at end of file +return 0;} diff --git a/MATLAB/auxi_fun/plotfun_freeze_xyticks.m b/MATLAB/auxi_fun/plotfun_freeze_xyticks.m new file mode 100644 index 00000000..f06c149b --- /dev/null +++ b/MATLAB/auxi_fun/plotfun_freeze_xyticks.m @@ -0,0 +1,3 @@ +function plotfun_freeze_xyticks +set(gca,'xtick',get(gca,'xtick'),'ytick',get(gca,'ytick')); +end \ No newline at end of file From efe0c845cd39432c2c536d1275580e02b3691e60 Mon Sep 17 00:00:00 2001 From: aantonyb Date: Tue, 19 Aug 2025 13:52:59 -0700 Subject: [PATCH 3/8] inc --- C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c b/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c index 76750fec..70e08a2d 100644 --- a/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c +++ b/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c @@ -674,7 +674,7 @@ FLUXES[f+F.gh_in] =FLUXES[f+F.ground_heat] *DGCM_SEC_DAY; FLUXES[f+F.sensible_heat] = Rn - FLUXES[f+F.ground_heat] - FLUXES[f+F.latent_heat]; // Infiltration (mm/day) -double et_recycled=(FLUXES[f+F.ets]-ET_REF[n])*0; +double et_recycled=(FLUXES[f+F.ets]-ET_REF[n])*0.25; double liquid_in = (PREC[n] - SNOWFALL[n] + FLUXES[f+F.melt]+et_recycled); FLUXES[f+F.infil] = pars[P.max_infil]*(1 - exp(-liquid_in/pars[P.max_infil])); From a3b01c73494711f6773b8502f38e64d8a22fd50d Mon Sep 17 00:00:00 2001 From: aantonyb Date: Tue, 19 Aug 2025 14:01:06 -0700 Subject: [PATCH 4/8] inc --- C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c b/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c index 70e08a2d..0a66000e 100644 --- a/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c +++ b/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c @@ -675,6 +675,8 @@ FLUXES[f+F.sensible_heat] = Rn - FLUXES[f+F.ground_heat] - FLUXES[f+F.latent_hea // Infiltration (mm/day) double et_recycled=(FLUXES[f+F.ets]-ET_REF[n])*0.25; +/*printf ET_rec*/ +printf("et_recycled = %2.2f\n",et_recycled); double liquid_in = (PREC[n] - SNOWFALL[n] + FLUXES[f+F.melt]+et_recycled); FLUXES[f+F.infil] = pars[P.max_infil]*(1 - exp(-liquid_in/pars[P.max_infil])); From f13b45e9d9ba0d8eab16ddb87dad834fa2d785cd Mon Sep 17 00:00:00 2001 From: aantonyb Date: Tue, 19 Aug 2025 14:04:36 -0700 Subject: [PATCH 5/8] inc --- C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c b/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c index 0a66000e..eaa22dcc 100644 --- a/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c +++ b/C/projects/CARDAMOM_MODELS/DALEC/DALEC_1100/DALEC_1100.c @@ -674,7 +674,7 @@ FLUXES[f+F.gh_in] =FLUXES[f+F.ground_heat] *DGCM_SEC_DAY; FLUXES[f+F.sensible_heat] = Rn - FLUXES[f+F.ground_heat] - FLUXES[f+F.latent_heat]; // Infiltration (mm/day) -double et_recycled=(FLUXES[f+F.ets]-ET_REF[n])*0.25; +double et_recycled=(FLUXES[f+F.ets]-ET_REF[n])*0.5; /*printf ET_rec*/ printf("et_recycled = %2.2f\n",et_recycled); double liquid_in = (PREC[n] - SNOWFALL[n] + FLUXES[f+F.melt]+et_recycled); From eddfeaddb2bf89b9a3eaa4e4efbbe6859dfd410e Mon Sep 17 00:00:00 2001 From: aantonyb Date: Thu, 21 Aug 2025 12:32:42 -0700 Subject: [PATCH 6/8] inc --- .../.CARDAMOM_READ_NETCDF_DATA.c.swo | Bin 0 -> 16384 bytes .../CARDAMOM_NETCDF_DATA_STRUCTURE.c | 1 + .../CARDAMOM_READ_NETCDF_DATA.c | 14 +++++++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 C/projects/CARDAMOM_GENERAL/.CARDAMOM_READ_NETCDF_DATA.c.swo diff --git a/C/projects/CARDAMOM_GENERAL/.CARDAMOM_READ_NETCDF_DATA.c.swo b/C/projects/CARDAMOM_GENERAL/.CARDAMOM_READ_NETCDF_DATA.c.swo new file mode 100644 index 0000000000000000000000000000000000000000..f56fccefcc742b5e2c976553700cd87b4f801b79 GIT binary patch literal 16384 zcmeHNU5q4E6)r>;1_TT|fG==qSncka?wX#Rh1s2*i9OvlI}QCacGv6=f<;Z$?dj6$ zs-~)XW@i^P#uyWW#K?;Z_-atzL`-}jsGz~9i7$o#{$N5ve9*)g@d1CnbE~SmW_D&6 zcr?|SuczzYbIv{I+;i^F>0X~cQ){pj#gc^AMFc)Z_Nn9G zS3@lvE8RUeCuAHz`uR|xTq(D!_CBJD~&ka}QW4_q%Dn<-6G_nnzL*v&Vs?Ms<Veb)sRvRIq#j5;ka{5XKxxfm?uUfwyjuq~8KB0N(??3D^J!^1v0qzpj_0cYuEae+J$J z{sjC2I0d}@5lOlY_~Uhw^mE{4;3eQYz|+7}z>~nYf%8BGSOTVjSFV+$Zvi&~f0%$y zzyxp&a5ZoQxDt5%8cF&Y@C5L6zyM}}5>N!*yjqer00USDbl@RC13m*V;BQAH>DR#b z0UO|e2CM@20rvtmU0JeZlzybO|4=?}?xEEl+iywwBflmP$ z;11w+;5OhU;CENTFTg{<$AQ11So0ik5%?r<1fcn&Uq=)cn@h?<@;4J|t)X<3c1`JM zt)-5(TvO`RPS!CjbBbj^oXO2cob__;@SGqXbDmyZJv=9f$DGTx_Tf1}Jmyr+s)y$U zaf0*xFedn_t;XR;1o3#p%Gp-y@T^3g;9Z%0AFM00W6tu@>7~Q75;gJ4a+~WWGxb16 zcuII?ChzJ)JJ3vbxNdW8Q@4jai(o4Hfj2aQp{Lv0&@rZ_1^fQw?jX?mmZJqdkNZ8> zHm7WNBRieT&C4>{hd#5MuH{(4c5+n92@*q+jILz|+}l0e<#dkg^>y32s0Wto5V=+p!0H zVwV_R;hT7;CpdQEQD8!8x3eA(;8D14!s@bY^hjD7nmgc57S?h{??dBeMQgUswri>~ z#Xe3MoXh1dfz1g(Y?&khA47R;VS1j?Tw;10CZ-JUo`v6Fan^M`2&*nLL$__eC|#0> zG5%eamRvq)QOO!T-DCNYB8gvPu{;svU=bMyo9G1%Xwd2T@G*Rk`l{_(VbSAV?s3Q9 z8hL(lK{N^-{ZBg&%Gof`a-tc=Zv?&hh@CXgIw1wG40pane_i?QyQXyA+-%EHWoF{4>I+^^+` zIZ|V-t>CwEEI-j~sme*Rdm9?SJ)8z|S>H9S?l#-%=>dZp9%Vho+v;&gJXp>K)0x8q z3KW|ADF_SygpMbfx=ULK6;j9wT0dwomu!zCCuAAuFx~A6W2uLfS?7W^5?>Ai-X8=$ z^~8FSP($}jz3=u(E5qyxxg@`^$BWvRk)f3PC)vo2mj$;Z=fyPLiB-;WI73QmWmUyn zv#M2EO;tIkW|4e)5O`C}aN)lT!4&0Et(s$(1|E#;W;2TCAvEE?qdrL4QIl<1Fq62f z^4Y=oHrb7_-rLO4 z$`V?6@*qn<`@vO@2RcY|_~L+hIZ(Iv^k~9C zWHh2X@;kN^5i26CoUj#s_kDeXi`=Klqs}mHL`=%^ot9(RL+nVI(dyj5xOK$EQoGzf zUo#eg|v|M#q2?0{pw5WlWxBBr6C(c{MFXk|l6 zL5nSVqYc>=VJ`9v1DU)COF$LbHBEMNtbCSjBONejP5_Nei!->Vt6O$x9F`ZD0ISA> zBgIDL zW_bKz^at=_oB(jb4po|1=vZ+n7fZdo3~x;C8#ofU|Q~FO}4eZvkj`_Paj^ewC>Q6 zDb!3$-w^fqrGo;F2Xy~m!X0!I z_gA|ApT<9Wy@LDx6TsuZHqZlpiTnLiz~jIG_ylk}@DJSU{|?Z7|Es{mfDGIPTnD^` z`~LI5R{#~b8h91=`JV#M0$&E+#hw05;0@qa;77pozz>1vfFA%)15W`D153coz-zeg zKMOnxJOW$-E&_|dJGkrr7`O=B1-y-W{WAdF_df>Q3j7{+zX7}syav1syafCNcoFy- z@EGtV-~vE?8UpDn^+4)@)B~vpK8Ob%l_qx82yijSrV`zys;JM1dmo*{8kI&RJRj*| z*BhO`e5zJq?~4ncL|CgXg#XYZNjOerE#J|dY}i;7$1K!Ll8<}b`*CxUA`+i-Q*(y> zb?z-V*nKs+j>d&BQYEgWhV+@KOoD?HjO3uah2z`6w=VKS%1Lk}qmO#u!rtUUn;q1N*xQ>W5o<|CN7Nek87A!9K`z|8AGzqm7AcQA_i2E1nmoi^uab zv*0B+N7kX8#3CnhsC%}~!wVrzjvZxLK@E3B#MLrrXO0zTj|+>lGjp?(q5r@cuAWq& z&E;qE@X@imkE7;<%N^geM2UT;p3n}`P88?v5yEEjOS!^5#pB0>U+}pEZON}oA^xMor>do z38X!FZ0gumi>0W5Pw@oBn3@=LOm?}t(f0$=1l@vBcNSKOlR~J-n3ulo5CMa_2MSrZ zJNFPbsQl1<9KnKXHKi(iOXMfDg3 zJQ7W{Z3LGP7wRKyK}}&4b5X;p#|s$CKp7A_hG>kZ2kTDaq(I$!ZYUtjuqduVgK-8L NpAPort5pTt{{U>|_V)k) literal 0 HcmV?d00001 diff --git a/C/projects/CARDAMOM_GENERAL/CARDAMOM_NETCDF_DATA_STRUCTURE.c b/C/projects/CARDAMOM_GENERAL/CARDAMOM_NETCDF_DATA_STRUCTURE.c index bac02cf0..c81792d7 100644 --- a/C/projects/CARDAMOM_GENERAL/CARDAMOM_NETCDF_DATA_STRUCTURE.c +++ b/C/projects/CARDAMOM_GENERAL/CARDAMOM_NETCDF_DATA_STRUCTURE.c @@ -115,6 +115,7 @@ TIMESERIES_DRIVER_STRUCT TOTAL_PREC; TIMESERIES_DRIVER_STRUCT VPD; TIMESERIES_DRIVER_STRUCT YIELD; TIMESERIES_DRIVER_STRUCT ET_REF;//For precip-recycling experiments only +TWO_DIM_VAR_STRUCT ET_REF2;//For precip-recycling experiments only //Summary variables diff --git a/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c b/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c index b812cc13..2aeb4070 100644 --- a/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c +++ b/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c @@ -330,7 +330,19 @@ printf("Done reading all other edc "); DATA->ET_REF.reference_mean=ncdf_read_double_attr(ncid, "ET_REF","reference_mean"); DEFAULT_REFERENCE_MEAN(&DATA->ET_REF); - + + DATA->ET_REF2.values=ncdf_read_double_2D(ncid, "ET_REF2", DATA->ET_REF2.dimensions); + // DATA->ET_REF2.reference_mean=ncdf_read_double_attr(ncid, "ET_REF2","reference_mean"); + //DEFAULT_REFERENCE_MEAN(&DATA->ET_REF2); + +// printf("%9.4f\t", DATA->ET_REF2.values[0][1]); + // printf("%9.4f\t", DATA->ET_REF2.values[0][2]); + // printf("%9.4f\t", DATA->ET_REF2.values[2][2]); + + + + + //Summary & derived variables // double EDC; // double EDCDIAG; From 8c30138c67587810b32f9073f88f8aec1e57482c Mon Sep 17 00:00:00 2001 From: aantonyb Date: Mon, 25 Aug 2025 08:12:15 -0700 Subject: [PATCH 7/8] inc --- .../.CARDAMOM_READ_NETCDF_DATA.c.swo | Bin 16384 -> 0 bytes .../CARDAMOM_READ_NETCDF_DATA.c | 26 +- MATLAB/io_fun/CARDAMOM_WRITE_NC_CBF_FILE.m | 14 + .../CARDAMOM_MAPS_GC4x5_DATASETS_NOV24.m | 894 ++++++++++++++++++ .../CARDAMOM_MAPS_READ_GFED_NOV24.m | 86 ++ .../DATASCRIPT_READ_NOAA_GLOBAL_CO2_MAR24.m | 614 ++++++++++++ 6 files changed, 1630 insertions(+), 4 deletions(-) delete mode 100644 C/projects/CARDAMOM_GENERAL/.CARDAMOM_READ_NETCDF_DATA.c.swo create mode 100644 MATLAB/prototypes/CARDAMOM_MAPS_GC4x5_DATASETS_NOV24.m create mode 100644 MATLAB/prototypes/CARDAMOM_MAPS_READ_GFED_NOV24.m create mode 100644 MATLAB/prototypes/DATASCRIPT_READ_NOAA_GLOBAL_CO2_MAR24.m diff --git a/C/projects/CARDAMOM_GENERAL/.CARDAMOM_READ_NETCDF_DATA.c.swo b/C/projects/CARDAMOM_GENERAL/.CARDAMOM_READ_NETCDF_DATA.c.swo deleted file mode 100644 index f56fccefcc742b5e2c976553700cd87b4f801b79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeHNU5q4E6)r>;1_TT|fG==qSncka?wX#Rh1s2*i9OvlI}QCacGv6=f<;Z$?dj6$ zs-~)XW@i^P#uyWW#K?;Z_-atzL`-}jsGz~9i7$o#{$N5ve9*)g@d1CnbE~SmW_D&6 zcr?|SuczzYbIv{I+;i^F>0X~cQ){pj#gc^AMFc)Z_Nn9G zS3@lvE8RUeCuAHz`uR|xTq(D!_CBJD~&ka}QW4_q%Dn<-6G_nnzL*v&Vs?Ms<Veb)sRvRIq#j5;ka{5XKxxfm?uUfwyjuq~8KB0N(??3D^J!^1v0qzpj_0cYuEae+J$J z{sjC2I0d}@5lOlY_~Uhw^mE{4;3eQYz|+7}z>~nYf%8BGSOTVjSFV+$Zvi&~f0%$y zzyxp&a5ZoQxDt5%8cF&Y@C5L6zyM}}5>N!*yjqer00USDbl@RC13m*V;BQAH>DR#b z0UO|e2CM@20rvtmU0JeZlzybO|4=?}?xEEl+iywwBflmP$ z;11w+;5OhU;CENTFTg{<$AQ11So0ik5%?r<1fcn&Uq=)cn@h?<@;4J|t)X<3c1`JM zt)-5(TvO`RPS!CjbBbj^oXO2cob__;@SGqXbDmyZJv=9f$DGTx_Tf1}Jmyr+s)y$U zaf0*xFedn_t;XR;1o3#p%Gp-y@T^3g;9Z%0AFM00W6tu@>7~Q75;gJ4a+~WWGxb16 zcuII?ChzJ)JJ3vbxNdW8Q@4jai(o4Hfj2aQp{Lv0&@rZ_1^fQw?jX?mmZJqdkNZ8> zHm7WNBRieT&C4>{hd#5MuH{(4c5+n92@*q+jILz|+}l0e<#dkg^>y32s0Wto5V=+p!0H zVwV_R;hT7;CpdQEQD8!8x3eA(;8D14!s@bY^hjD7nmgc57S?h{??dBeMQgUswri>~ z#Xe3MoXh1dfz1g(Y?&khA47R;VS1j?Tw;10CZ-JUo`v6Fan^M`2&*nLL$__eC|#0> zG5%eamRvq)QOO!T-DCNYB8gvPu{;svU=bMyo9G1%Xwd2T@G*Rk`l{_(VbSAV?s3Q9 z8hL(lK{N^-{ZBg&%Gof`a-tc=Zv?&hh@CXgIw1wG40pane_i?QyQXyA+-%EHWoF{4>I+^^+` zIZ|V-t>CwEEI-j~sme*Rdm9?SJ)8z|S>H9S?l#-%=>dZp9%Vho+v;&gJXp>K)0x8q z3KW|ADF_SygpMbfx=ULK6;j9wT0dwomu!zCCuAAuFx~A6W2uLfS?7W^5?>Ai-X8=$ z^~8FSP($}jz3=u(E5qyxxg@`^$BWvRk)f3PC)vo2mj$;Z=fyPLiB-;WI73QmWmUyn zv#M2EO;tIkW|4e)5O`C}aN)lT!4&0Et(s$(1|E#;W;2TCAvEE?qdrL4QIl<1Fq62f z^4Y=oHrb7_-rLO4 z$`V?6@*qn<`@vO@2RcY|_~L+hIZ(Iv^k~9C zWHh2X@;kN^5i26CoUj#s_kDeXi`=Klqs}mHL`=%^ot9(RL+nVI(dyj5xOK$EQoGzf zUo#eg|v|M#q2?0{pw5WlWxBBr6C(c{MFXk|l6 zL5nSVqYc>=VJ`9v1DU)COF$LbHBEMNtbCSjBONejP5_Nei!->Vt6O$x9F`ZD0ISA> zBgIDL zW_bKz^at=_oB(jb4po|1=vZ+n7fZdo3~x;C8#ofU|Q~FO}4eZvkj`_Paj^ewC>Q6 zDb!3$-w^fqrGo;F2Xy~m!X0!I z_gA|ApT<9Wy@LDx6TsuZHqZlpiTnLiz~jIG_ylk}@DJSU{|?Z7|Es{mfDGIPTnD^` z`~LI5R{#~b8h91=`JV#M0$&E+#hw05;0@qa;77pozz>1vfFA%)15W`D153coz-zeg zKMOnxJOW$-E&_|dJGkrr7`O=B1-y-W{WAdF_df>Q3j7{+zX7}syav1syafCNcoFy- z@EGtV-~vE?8UpDn^+4)@)B~vpK8Ob%l_qx82yijSrV`zys;JM1dmo*{8kI&RJRj*| z*BhO`e5zJq?~4ncL|CgXg#XYZNjOerE#J|dY}i;7$1K!Ll8<}b`*CxUA`+i-Q*(y> zb?z-V*nKs+j>d&BQYEgWhV+@KOoD?HjO3uah2z`6w=VKS%1Lk}qmO#u!rtUUn;q1N*xQ>W5o<|CN7Nek87A!9K`z|8AGzqm7AcQA_i2E1nmoi^uab zv*0B+N7kX8#3CnhsC%}~!wVrzjvZxLK@E3B#MLrrXO0zTj|+>lGjp?(q5r@cuAWq& z&E;qE@X@imkE7;<%N^geM2UT;p3n}`P88?v5yEEjOS!^5#pB0>U+}pEZON}oA^xMor>do z38X!FZ0gumi>0W5Pw@oBn3@=LOm?}t(f0$=1l@vBcNSKOlR~J-n3ulo5CMa_2MSrZ zJNFPbsQl1<9KnKXHKi(iOXMfDg3 zJQ7W{Z3LGP7wRKyK}}&4b5X;p#|s$CKp7A_hG>kZ2kTDaq(I$!ZYUtjuqduVgK-8L NpAPort5pTt{{U>|_V)k) diff --git a/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c b/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c index 2aeb4070..04abaca1 100644 --- a/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c +++ b/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c @@ -330,14 +330,32 @@ printf("Done reading all other edc "); DATA->ET_REF.reference_mean=ncdf_read_double_attr(ncid, "ET_REF","reference_mean"); DEFAULT_REFERENCE_MEAN(&DATA->ET_REF); - + printf("Made it here 1\n"); DATA->ET_REF2.values=ncdf_read_double_2D(ncid, "ET_REF2", DATA->ET_REF2.dimensions); // DATA->ET_REF2.reference_mean=ncdf_read_double_attr(ncid, "ET_REF2","reference_mean"); //DEFAULT_REFERENCE_MEAN(&DATA->ET_REF2); + printf("Made it here 2\n"); + + printf("%9.4f\t", DATA->ET_REF.values[0]); + + + printf("Made it here 3\n"); + + printf("%9i\n", DATA->ET_REF2.dimensions[0]); + printf("%9i\n", DATA->ET_REF2.dimensions[1]); + + printf("%9.4f\t", DATA->ET_REF2.values[0][0]); + printf("%9.4f\t", DATA->ET_REF2.values[1][0]); + printf("%9.4f\t", DATA->ET_REF2.values[1][1]); + printf("%9.4f\t", DATA->ET_REF2.values[1][2]); + printf("%9.4f\t", DATA->ET_REF2.values[2][2]); + printf("%9.4f\t", DATA->ET_REF2.values[2][0]); + + printf("Made it here 4\n"); + -// printf("%9.4f\t", DATA->ET_REF2.values[0][1]); - // printf("%9.4f\t", DATA->ET_REF2.values[0][2]); - // printf("%9.4f\t", DATA->ET_REF2.values[2][2]); +// printf("%9.4f\t", DATA->ET_REF2.values[0][2]); + // printf("%9.4f\t", DATA->ET_REF2.values[2][2]); diff --git a/MATLAB/io_fun/CARDAMOM_WRITE_NC_CBF_FILE.m b/MATLAB/io_fun/CARDAMOM_WRITE_NC_CBF_FILE.m index 91ae5cb7..4d7b6d2e 100644 --- a/MATLAB/io_fun/CARDAMOM_WRITE_NC_CBF_FILE.m +++ b/MATLAB/io_fun/CARDAMOM_WRITE_NC_CBF_FILE.m @@ -19,6 +19,9 @@ function CARDAMOM_WRITE_NC_CBF_FILE(CBF,fname) for f=1:numel(fieldnames) +s1=size(CBF.(fieldnames{f}).values,1); +s2=size(CBF.(fieldnames{f}).values,2); + if numel(CBF.(fieldnames{f}).values)==notimesteps %Enforcing "double" type @@ -33,6 +36,17 @@ function CARDAMOM_WRITE_NC_CBF_FILE(CBF,fname) nccreate(fname,fieldnames{f}); ncwrite(fname,fieldnames{f},CBF.(fieldnames{f}).values); + + elseif s1>1 & s2>1 + + %Enforcing "double" type + nccreate(fname,fieldnames{f},'Dimensions',{'dim1',s1,'dim2',s2},'FillValue',-9999,'Datatype','double' ); + + ncwrite(fname,fieldnames{f},CBF.(fieldnames{f}).values); + + + disp('Wrote 2D array') + end diff --git a/MATLAB/prototypes/CARDAMOM_MAPS_GC4x5_DATASETS_NOV24.m b/MATLAB/prototypes/CARDAMOM_MAPS_GC4x5_DATASETS_NOV24.m new file mode 100644 index 00000000..cc1cb7f8 --- /dev/null +++ b/MATLAB/prototypes/CARDAMOM_MAPS_GC4x5_DATASETS_NOV24.m @@ -0,0 +1,894 @@ +function CARDAMOM_MAPS_GC4x5_DATASETS_NOV24 + + + + +INFO.version=date; +INFO.versionname=['v2.1 (',date,')']; + + +INFO.DATAPATH='CARDAMOM-MAPS-DATASETS/CARDAMOM-MAPS_GC4x5_V2/'; + +%naming convention: "4x5deg" +INFO.START_YEAR=2001; +INFO.END_YEAR=2023; + + + +%Other auxiliary stuff +[LSM,LSFRAC]=loadlandseamask('4x5'); +[LSM05,LSFRAC05]=loadlandseamask(0.5); + [x,y,A]=loadworldmesh('4x5'); + + +INFO.x=x; +INFO.y=y; +INFO.A=A; +INFO.LSM=LSM; +INFO.LSFRAC=LSFRAC; + + + +%Data structure + DATA0.x=x(1,:); + DATA0.y=y(:,1); + DATA0.t=1:12; + DATA0.info.name='data'; + DATA0.timeunits = 'months since Dec of previous year'; + DATA0.Attributes.description='CARDAMOM-MAPS dataset'; + DATA0.Attributes.details='CARDAMOM-MAPS datasets are CARDAMOM-compliant data'; + DATA0.data=repmat(zeros(size(A)),[1,1,12])*NaN; +% keyboard + + +INFO.DATA0=DATA0; + + + + +%***********All met data and burned area dealt with here*************** +DATASCRIPT_PROCESS_ERA5_MONTHLY_CARDAMOM_DATASETS_NOV23(INFO); + + + + + +% **********All auxiliary datasets dealt with here****************** + DATA=DATA0; + DATA.filename=[INFO.DATAPATH,'CARDAMOM-MAPS_GC4x5_LAND_SEA_MASK.nc']; + DATA.data=double(LSM); +DATA.Attribute.variable_info='MODIS-based land-sea mask classification for CARDAMOM runs'; +DATA.info.units='land=1, sea=0'; + CARDAMOM_MAPS_WRITE_2D_DATASET(DATA); + + + +DATA=DATA0; +DATA.filename=[INFO.DATAPATH,'CARDAMOM-MAPS_GC4x5_LAND_SEA_FRAC.nc']; +DATA.data=LSFRAC; +DATA.Attribute.variable_info='MODIS-based land-sea mask classification for CARDAMOM runs'; +DATA.info.units='Value= 1: land=100%, sea=0%;Value= 0: land=0%, sea=100%;'; +CARDAMOM_MAPS_WRITE_2D_DATASET(DATA); +% + + + + + + + + %******************LOADING AND WRITING OBSERVATIONS****************** + + + + %FLUXSAT GPP + %Source: CARDAMOM-MAPS folder + + %Step 1. Load FLUXSAT GPP + + + + +%GPP +v=1; +%GPP +variables{1}='FLUXSAT_GPP'; +var_category{1}='FLUXSAT_GPP'; +var_info{1}='FLUXSAT GPP regridded as 4x5 degree dataset: monthly average GPP "PER UNIT LAND AREA"'; +var_units{1}='gC/m2/day'; +mkdir([INFO.DATAPATH,'/',variables{v}]); + + + + for yr=INFO.START_YEAR:INFO.END_YEAR + + %Read FLUXSAT data layer + fname=sprintf('CARDAMOM-MAPS-DATASETS/ObsDrivers/%s/CARDAMOM-MAPS_05deg_%s_%i.nc',var_category{v},variables{v},yr); + if isfile(fname) + disp('Reading data') + data_fineres=permute(ncread(fname,'data'),[2,1,3]); + %Setting all empty land pixels to zero (rather than nan) + data_fineres(~isfinite( data_fineres) & repmat(LSM05,[1,1,12])==1)=0; + disp('Declaring GC data') + + DATA=DATA0; + DATA.filename=sprintf('%s/%s/CARDAMOM-MAPS_GC4x5_%s_%i.nc',INFO.DATAPATH,variables{v},variables{v},yr); + %Converting from m/day to mm/day + disp('Regridding data') + DATA.data=GEOSChem_regular_grid_to_GC( data_fineres); + DATA.Attribute.variable_info=var_info{v}; + DATA.info.units=var_units{v}; + disp('Writing data') + CARDAMOM_MAPS_WRITE_3D_DATASET(DATA); + else + disp('Following file does not exist') + disp(fname) + end + end + + + + + + +%GPP +v=2; + +variables{2}='Xu_ABGB'; +var_category{2}='ABGB'; +var_info{2}='ABGB regridded as 4x5 degree dataset: monthly average ABGB "PER UNIT LAND AREA"'; +var_units{2}='gC/m2'; +mkdir([INFO.DATAPATH,'/',variables{v}]); + + + for yr=INFO.START_YEAR:INFO.END_YEAR + + %Read FLUXSAT data layer + fname=sprintf('CARDAMOM-MAPS-DATASETS/ObsDrivers/%s/CARDAMOM-MAPS_05deg_%s_%i.nc',var_category{v},variables{v},yr); + if isfile(fname) + disp('Reading data') + data_fineres=ncread(fname,'data'); + %Setting all empty land pixels to zero (rather than nan) + data_fineres(~isfinite( data_fineres) & repmat(LSM05,[1,1,12])==1)=0; + disp('Declaring GC data') + + DATA=DATA0; + DATA.filename=sprintf('%s/%s/CARDAMOM-MAPS_GC4x5_%s_%i.nc',INFO.DATAPATH,variables{v},variables{v},yr); + %Converting from m/day to mm/day + disp('Regridding data') + DATA.data=GEOSChem_regular_grid_to_GC( data_fineres); + DATA.Attribute.variable_info=var_info{v}; + DATA.info.units=var_units{v}; + disp('Writing data') + CARDAMOM_MAPS_WRITE_3D_DATASET(DATA); + else + disp('Following file does not exist') + disp(fname) + end + end + + +%ABGB + + + +v=3; +variables{3}='GRACE_EWT'; +var_category{3}='GRACE'; +var_info{3}='EWT regridded as 4x5 degree dataset: monthly average relative water storage anomaly'; +var_units{3}='mm H2O'; +mkdir([INFO.DATAPATH,'/',variables{v}]); + + + for yr=INFO.START_YEAR:INFO.END_YEAR + + %Read FLUXSAT data layer + fname=sprintf('CARDAMOM-MAPS-DATASETS/ObsDrivers/%s/CARDAMOM-MAPS_05deg_%s_%i.nc',var_category{v},variables{v},yr); + if isfile(fname) + disp('Reading data') + data_fineres=ncread(fname,'data'); + %Setting all empty land pixels to zero (rather than nan) + data_fineres(~isfinite( data_fineres) & repmat(LSM05,[1,1,12])==1)=0; + disp('Declaring GC data') + + DATA=DATA0; + DATA.filename=sprintf('%s/%s/CARDAMOM-MAPS_GC4x5_%s_%i.nc',INFO.DATAPATH,variables{v},variables{v},yr); + %Converting from m/day to mm/day + disp('Regridding data') + DATA.data=GEOSChem_regular_grid_to_GC( data_fineres); + DATA.Attribute.variable_info=var_info{v}; + DATA.info.units=var_units{v}; + disp('Writing data') + CARDAMOM_MAPS_WRITE_3D_DATASET(DATA); + else + disp('Following file does not exist') + disp(fname) + end + end + + + +%LAI +v=4; +variables{4}='MODIS_LAI'; +var_category{4}='LAI'; +var_info{4}='LAI regridded as 4x5 degree dataset: monthly average leaf area index'; +var_units{4}='m2/m2'; +mkdir([INFO.DATAPATH,'/',variables{v}]); + + + for yr=INFO.START_YEAR:INFO.END_YEAR + + %Read FLUXSAT data layer + fname=sprintf('CARDAMOM-MAPS-DATASETS/ObsDrivers/%s/CARDAMOM-MAPS_05deg_%s_%i.nc',var_category{v},variables{v},yr); + if isfile(fname) + disp('Reading data') + data_fineres=ncread(fname,'data'); + %Setting all empty land pixels to zero (rather than nan) + data_fineres(~isfinite( data_fineres) & repmat(LSM05,[1,1,12])==1)=0; + disp('Declaring GC data') + + DATA=DATA0; + DATA.filename=sprintf('%s/%s/CARDAMOM-MAPS_GC4x5_%s_%i.nc',INFO.DATAPATH,variables{v},variables{v},yr); + %Converting from m/day to mm/day + disp('Regridding data') + DATA.data=GEOSChem_regular_grid_to_GC( data_fineres); + DATA.Attribute.variable_info=var_info{v}; + DATA.info.units=var_units{v}; + disp('Writing data') + CARDAMOM_MAPS_WRITE_3D_DATASET(DATA); + else + disp('Following file does not exist') + disp(fname) + end + end + + +%Now import NEE from FLUXCOM + + +FLUXCOM=DATASCRIPT_READ_FLUXCOM_DATASETS_APR23; + +v=5; +variables{5}='FLUXCOM_NEE'; +var_category{5}='FLUXCOM_NEE'; +var_info{5}='NEE regridded as 4x5 degree dataset: monthly NEE'; +var_units{5}='gC/m2/d'; +mkdir([INFO.DATAPATH,'/',variables{v}]); + + + for yr=INFO.START_YEAR:INFO.END_YEAR + + %Read FLUXSAT data layer + + disp('Reading data') + data_fineres=FLUXCOM.NEE.data(:,:,FLUXCOM.NEE.year==yr); + if ~isempty(data_fineres); + %Setting all empty land pixels to zero (rather than nan) + data_fineres(~isfinite( data_fineres) & repmat(LSM05,[1,1,12])==1)=0; + disp('Declaring GC data') + + DATA=DATA0; + DATA.filename=sprintf('%s/%s/CARDAMOM-MAPS_GC4x5_%s_%i.nc',INFO.DATAPATH,variables{v},variables{v},yr); + %Converting from m/day to mm/day + disp('Regridding data') + DATA.data=GEOSChem_regular_grid_to_GC( data_fineres); + DATA.Attribute.variable_info=var_info{v}; + DATA.info.units=var_units{v}; + disp('Writing data') + CARDAMOM_MAPS_WRITE_3D_DATASET(DATA); + else + disp('Year does not exist'); + end + end + + + + +%Now do same for static datasets + + +v=6; +variables{6}='HWSD_PEQ_iniSOM'; +var_category{6}='PEQ_iniSOM'; +var_info{6}='HWSD soil carbon database (top 1m)'; +var_units{6}='gC/m2'; +mkdir([INFO.DATAPATH,'/',variables{v}]); + + %Read FLUXSAT data layer + fname='CARDAMOM-MAPS-DATASETS/ObsDrivers/PEQ_iniSOM/CARDAMOM-MAPS_05deg_HWSD_PEQ_iniSOM.nc'; + disp('Reading data') + data_fineres=ncread(fname,'data'); + %Setting all empty land pixels to zero (rather than nan) + data_fineres(~isfinite( data_fineres) & LSM05==1)=0; + disp('Declaring GC data') + + DATA=DATA0; + DATA.filename=sprintf('%s/%s/CARDAMOM-MAPS_GC4x5_%s.nc',INFO.DATAPATH,'HWSD_PEQ_iniSOM','HWSD_PEQ_iniSOM'); + %Converting from m/day to mm/day + disp('Regridding data') + DATA.data=GEOSChem_regular_grid_to_GC(data_fineres); + DATA.Attribute.variable_info=var_info{v}; + DATA.info.units=var_units{v}; + disp('Writing data') + CARDAMOM_MAPS_WRITE_2D_DATASET(DATA); + + + + + + + + %GFED fires + %Source: GFED +%Load directly using +%"GFED=quickload('CARDAMOM_MAPS_READ_GFED_APR23(''GC4x5'')');" + + + + + +%GFED fires +v=7; +%GPP +variables{v}='GFED_FIRE_C'; +var_category{v}='FIRE_C'; +var_info{v}='GFED_FIRE_C regridded as 4x5 degree dataset: monthly average GPP "PER UNIT LAND AREA"'; +var_units{v}='gC/m2/day'; +mkdir([INFO.DATAPATH,'/',variables{v}]); + +GFED=quickload('CARDAMOM_MAPS_READ_GFED_NOV24(''GC4x5'')'); + + for yr=INFO.START_YEAR:INFO.END_YEAR + + % %Read FLUXSAT data layer + % fname=sprintf('CARDAMOM-MAPS-DATASETS/ObsDrivers/%s/CARDAMOM-MAPS_05deg_%s_%i.nc',var_category{v},variables{v},yr); + % if isfile(fname) + % disp('Reading data') + % data_fineres=permute(ncread(fname,'data'),[2,1,3]); + % %Setting all empty land pixels to zero (rather than nan) + % data_fineres(~isfinite( data_fineres) & repmat(LSM05,[1,1,12])==1)=0; + % disp('Declaring GC data') + + DATA=DATA0; + DATA.filename=sprintf('%s/%s/CARDAMOM-MAPS_GC4x5_%s_%i.nc',INFO.DATAPATH,variables{v},variables{v},yr); + %Converting from m/day to mm/day + disp('Regridding data') + if ~isempty(find(GFED.year==yr)) + DATA.data=GFED.FireC(:,:,GFED.year==yr); + DATA.Attribute.variable_info=var_info{v}; + DATA.info.units=var_units{v}; + disp('Writing data') + CARDAMOM_MAPS_WRITE_3D_DATASET(DATA); + else + disp('Following file does not exist') + disp(fname) + end + + end + + +end + + + + + + + +function CARDAMOM_MAPS_WRITE_3D_TEMPLATE(DATA); + +DATA.data=nan(46,72,12); + + + +DATA.filename='DATA/CARDAMOM-MAPS_GC4x5_MET/CARDAMOM-MAPS_GC4x5_3D_TEMPLATE.nc'; + +if isfile(DATA.filename);delete(DATA.filename);end + +nccreate(DATA.filename,'longitude','Dimensions',{'longitude',size(DATA.data,2)}) +ncwrite(DATA.filename,'longitude',DATA.x); +ncwriteatt(DATA.filename,'longitude','units', 'degrees') + + +nccreate(DATA.filename,'latitude','Dimensions',{'latitude',size(DATA.data,1)}) +ncwrite(DATA.filename,'latitude',DATA.y); +ncwriteatt(DATA.filename,'latitude','units', 'degrees') +%*****CONTINUE FROM HERE***** + +nccreate(DATA.filename,'time','Dimensions',{'time',size(DATA.data,3)}) +ncwrite(DATA.filename,'time',1:12); +ncwriteatt(DATA.filename,'time','units', 'months since Dec of previous year') + +DATA.info.units='unitless '; +DATA.Attribute.variable_info='TEMPLATE DATASET'; +nccreate(DATA.filename,'data','Dimensions',{'latitude',size(DATA.data,1),'longitude',size(DATA.data,2),'time',size(DATA.data,3)}) +ncwrite(DATA.filename,'data',DATA.data); +ncwriteatt(DATA.filename,'data','units',DATA.info.units); +ncwriteatt(DATA.filename,'data','variable_info', DATA.Attribute.variable_info) + +disp(sprintf('Done with %s',DATA.filename)); + + + + +end + +function CARDAMOM_MAPS_WRITE_2D_TEMPLATE(DATA); + +DATA.data=nan(46,72) + + + +DATA.filename='DATA/CARDAMOM-MAPS_GC4x5_MET/CARDAMOM-MAPS_GC4x5_2D_TEMPLATE.nc'; + +if isfile(DATA.filename);delete(DATA.filename);end + +nccreate(DATA.filename,'longitude','Dimensions',{'longitude',size(DATA.data,2)}) +ncwrite(DATA.filename,'longitude',DATA.x); +ncwriteatt(DATA.filename,'longitude','units', 'degrees') + + +nccreate(DATA.filename,'latitude','Dimensions',{'latitude',size(DATA.data,1)}) +ncwrite(DATA.filename,'latitude',DATA.y); +ncwriteatt(DATA.filename,'latitude','units', 'degrees') + + +DATA.info.units='unitless '; +DATA.Attribute.variable_info='TEMPLATE DATASET'; +nccreate(DATA.filename,'data','Dimensions',{'latitude',size(DATA.data,1),'longitude',size(DATA.data,2)}) +ncwrite(DATA.filename,'data',DATA.data); +ncwriteatt(DATA.filename,'data','units',DATA.info.units); +ncwriteatt(DATA.filename,'data','variable_info', DATA.Attribute.variable_info) + +disp(sprintf('Done with %s',DATA.filename)); + + + + +end + + + +function DATASCRIPT_PROCESS_ERA5_MONTHLY_CARDAMOM_DATASETS_NOV23(INFO) + + + +%Step 0. Read "STATUS" array which includes all ERA datasets +%available/downloaded +ERA5_DATA_STATUS=DATASCRIPT_DOWNLOAD_ERA5_MONTHLY_CARDAMOM_DATASETS_NOV23(0); + + + + +INFO.START_YEAR; +INFO.END_YEAR; +version=INFO.version; +versionname=INFO.versionname; + + + +mkdir(INFO.DATAPATH); +YEARS=INFO.START_YEAR:INFO.END_YEAR; + + + [x,y,A]=loadworldmesh('4x5'); + +% +x=INFO.x; +y=INFO.y; +A=INFO.A; +DATA0=INFO.DATA0; + + + +% keyboard + + +LSFRAC=INFO.LSFRAC; +LSM=INFO.LSM; + + + + +% +% DATA=DATA0; +% DATA.filename=[DATAPATH,'CARDAMOM-MAPS_GC4x5_LAND_SEA_MASK.nc']; +% DATA.data=double(LSM); +% DATA.Attribute.variable_info='MODIS-based land-sea mask classification for CARDAMOM runs'; +% DATA.info.units='land=1, sea=0'; +% CARDAMOM_MAPS_WRITE_2D_DATASET(DATA); +% +% +% +% DATA=DATA0; +% DATA.filename=[DATAPATH,'CARDAMOM-MAPS_GC4x5_LAND_SEA_FRAC.nc']; +% DATA.data=LSFRAC; +% DATA.Attribute.variable_info='MODIS-based land-sea mask classification for CARDAMOM runs'; +% DATA.info.units='Value= 1: land=100%, sea=0%;Value= 0: land=0%, sea=100%;'; +% CARDAMOM_MAPS_WRITE_2D_DATASET(DATA); +% % + + + +%SW down +%Should be SSRD + + %Read solar radiation from file + + + DRIVER.CONVERSION_FAC=1e-6; + DRIVER.NAME='ssrd'; + + DRIVER.PATH=[INFO.DATAPATH,'/SSRD']; + mkdir( DRIVER.PATH); + + for YR=INFO.START_YEAR:INFO.END_YEAR; + DATA=DATA0; + DATA.filename=sprintf('%s/CARDAMOM-MAPS_GC4x5_ERA5_SSRD_%i.nc', DRIVER.PATH,YR); + DATA.Attribute.variable_info='ERA5 4x5 degree dataset: monthly average daily shortwave downward radiation'; + DATA.info.units='MJ/m2/day'; + %Populate with existing fields + for M=1:12 + F=read_era_field_month_year(YR,M,DRIVER.NAME,ERA5_DATA_STATUS); + + %QC and/or QC corrections + %1. Capping bottom values at zero + F(F<0)=0; + + if isempty(F)==0 + + %Converting from m/day to mm/day + DATA.data(:,:,M)=GEOSChem_regular_grid_to_GC(F)* DRIVER.CONVERSION_FAC; + + + end + + end + +CARDAMOM_MAPS_WRITE_3D_DATASET(DATA) + + %Writing yearly dataset +end + + + + + + + %****************2M TEMPERATURE AND VPD******************* + DRIVER.CONVERSION_OFFSET=-273.15; + + + ERA5_T2M.NAME='t2m'; + ERA5_D2M.NAME='d2m'; + + + %EVPD.data=(SCIFUN_H2O_SATURATION_PRESSURE(ET2M.datamax) - SCIFUN_H2O_SATURATION_PRESSURE(ED2M.datamax))*10; + + + T2M_MIN_PATH=[INFO.DATAPATH,'/T2M_MIN']; + T2M_MAX_PATH=[INFO.DATAPATH,'/T2M_MAX']; + VPD_MAX_PATH=[INFO.DATAPATH,'/VPD_MAX']; + mkdir( T2M_MIN_PATH); + mkdir( T2M_MAX_PATH); + mkdir( VPD_MAX_PATH); + + for YR=INFO.START_YEAR:INFO.END_YEAR; + DATA_T2M_MIN=DATA0; + DATA_T2M_MAX=DATA0; + DATA_VPD_MAX=DATA0; + DATA_T2M_MIN.filename=sprintf('%s/CARDAMOM-MAPS_GC4x5_ERA5_T2M_MIN_%i.nc', T2M_MIN_PATH,YR); + DATA_T2M_MAX.filename=sprintf('%s/CARDAMOM-MAPS_GC4x5_ERA5_T2M_MAX_%i.nc', T2M_MAX_PATH,YR); + DATA_VPD_MAX.filename=sprintf('%s/CARDAMOM-MAPS_GC4x5_ERA5_VPD_MAX_%i.nc', VPD_MAX_PATH,YR); + + + DATA_T2M_MIN.info.units='K'; + DATA_T2M_MAX.info.units='K'; + DATA_VPD_MAX.info.units='K'; + + DATA_T2M_MIN.Attribute.variable_info='ERA5 4x5 degree dataset: monthly average daily minimum temperature'; + DATA_T2M_MAX.Attribute.variable_info='ERA5 4x5 degree dataset: monthly average daily maximum temperature'; + DATA_VPD_MAX.Attribute.variable_info='ERA5 4x5 degree dataset derived maximum VPD'; + + + + %Populate with existing fields + for M=1:12 + T2M=read_era_field_month_year(YR,M, ERA5_T2M.NAME,ERA5_DATA_STATUS); + D2M=read_era_field_month_year(YR,M, ERA5_D2M.NAME,ERA5_DATA_STATUS); + if isempty(T2M)==0 & isempty(D2M)==0 + + %QC and/or QC corrections and/or postprocessing deriations + %1. Capping bottom values at zero + T2M_MIN=min(T2M,[],3); + T2M_MAX=max(T2M,[],3); + %Update to deriving (1) VPD first, and then (2) VPD max + %Step 1. derive VPD + + VPD=(SCIFUN_H2O_SATURATION_PRESSURE(T2M+ DRIVER.CONVERSION_OFFSET) - SCIFUN_H2O_SATURATION_PRESSURE(D2M+ DRIVER.CONVERSION_OFFSET))*10; + VPD_MAX=max(VPD,[],3); + VPD_MAX(VPD_MAX<0)=0; + + + + %Converting from m/day to mm/day + DATA_T2M_MIN.data(:,:,M)=GEOSChem_regular_grid_to_GC(T2M_MIN) + DRIVER.CONVERSION_OFFSET; + DATA_T2M_MAX.data(:,:,M)=GEOSChem_regular_grid_to_GC(T2M_MAX) + DRIVER.CONVERSION_OFFSET; + DATA_VPD_MAX.data(:,:,M)=GEOSChem_regular_grid_to_GC(VPD_MAX); + + + end + + end + +%Annually + +CARDAMOM_MAPS_WRITE_3D_DATASET(DATA_T2M_MIN) +CARDAMOM_MAPS_WRITE_3D_DATASET(DATA_T2M_MAX) +CARDAMOM_MAPS_WRITE_3D_DATASET(DATA_VPD_MAX) + + %Writing yearly dataset + end + + + + %**********************Precipitation ****************** + + + DRIVER.CONVERSION_FAC=1e3; + DRIVER.NAME='tp'; + + DRIVER.PATH=[INFO.DATAPATH,'/PREC']; + mkdir( DRIVER.PATH); + + for YR=INFO.START_YEAR:INFO.END_YEAR; + DATA=DATA0; + DATA.filename=sprintf('%s/CARDAMOM-MAPS_GC4x5_ERA5_PREC_%i.nc', DRIVER.PATH,YR); + DATA.Attribute.variable_info='ERA5 4x5 degree dataset: monthly average daily precipitation'; + DATA.info.units='mm/day'; + %Populate with existing fields + for M=1:12 + F=read_era_field_month_year(YR,M,DRIVER.NAME,ERA5_DATA_STATUS); + + %QC and/or QC corrections + %1. Capping bottom values at zero + F(F<0)=0; + + if isempty(F)==0 + + %Converting from m/day to mm/day + DATA.data(:,:,M)=GEOSChem_regular_grid_to_GC(F)* DRIVER.CONVERSION_FAC; + + + end + + end + %Writing yearly dataset + +CARDAMOM_MAPS_WRITE_3D_DATASET(DATA) + +end + + + + +%*******************SNOWFALL*********************** + + + + + + DRIVER.CONVERSION_FAC=1e3; + DRIVER.NAME='sf'; + + DRIVER.PATH=[INFO.DATAPATH,'/SNOWFALL']; + mkdir( DRIVER.PATH); + + for YR=INFO.START_YEAR:INFO.END_YEAR; + DATA=DATA0; + DATA.filename=sprintf('%s/CARDAMOM-MAPS_GC4x5_ERA5_SNOWFALL_%i.nc', DRIVER.PATH,YR); + DATA.Attribute.variable_info='ERA5 4x5 degree dataset: monthly average daily snowfall'; + DATA.info.units='mm/day'; + %Populate with existing fields + for M=1:12 + F=read_era_field_month_year(YR,M,DRIVER.NAME,ERA5_DATA_STATUS); + + %QC and/or QC corrections + %1. Capping bottom values at zero + F(F<0)=0; + + if isempty(F)==0 + + %Converting from m/day to mm/day + DATA.data(:,:,M)=GEOSChem_regular_grid_to_GC(F)* DRIVER.CONVERSION_FAC; + + + end + + end + %Writing yearly dataset + +CARDAMOM_MAPS_WRITE_3D_DATASET(DATA) + +end + + + +%*******************Land surface temp (SKT)************************ + + + + + + + DRIVER.CONVERSION_OFFSET = 273.15; + DRIVER.NAME='skt'; + + DRIVER.PATH=[INFO.DATAPATH,'/SKT']; + mkdir( DRIVER.PATH); + + for YR=INFO.START_YEAR:INFO.END_YEAR; + DATA=DATA0; + DATA.filename=sprintf('%s/CARDAMOM-MAPS_GC4x5_ERA5_SKT_%i.nc', DRIVER.PATH,YR); + DATA.Attribute.variable_info='ERA5 4x5 degree dataset: monthly average surface skin temp'; + DATA.info.units='deg C'; + %Populate with existing fields + for M=1:12 + F=read_era_field_month_year(YR,M,DRIVER.NAME,ERA5_DATA_STATUS); + + %QC and/or QC corrections + %1. Capping bottom values at zero + F(F<0)=0; + + if isempty(F)==0 + + %Converting from m/day to mm/day + DATA.data(:,:,M)=GEOSChem_regular_grid_to_GC(F) + DRIVER.CONVERSION_OFFSET; + + + + end + + end + %Writing yearly dataset + +CARDAMOM_MAPS_WRITE_3D_DATASET(DATA) + +end + + + + +%**************************GFED BURNED AREA************* + +%Note not low latency as others, need to address + %Note: GFED already gridded to appropriate resolution + + GFED=quickload('CARDAMOM_MAPS_READ_GFED_JAN24(''GC4x5'')'); + + + + + + + + DRIVER.PATH=[INFO.DATAPATH,'/BURNED_AREA']; + mkdir( DRIVER.PATH); + + for YR=INFO.START_YEAR:INFO.END_YEAR; + DATA=DATA0; + DATA.filename=sprintf('%s/CARDAMOM-MAPS_GC4x5_ERA5_BURNED_AREA_%i.nc', DRIVER.PATH,YR); + DATA.Attribute.variable_info='GFED4.1s 4x5 degree dataset: monthly total burned area'; + DATA.info.units='m2/m2'; + %Populate with existing fields + %Note: GFED already gridded to appropriate resolution + for M=1:12 + gfedidx=find(GFED.month==M & GFED.year==YR); + if isempty(gfedidx)==0 + F=GFED.BA(:,:,gfedidx); + + %QC and/or QC corrections + %1. Capping bottom values at zero + F(F<0)=0; + + + + %Converting from m/day to mm/day + DATA.data(:,:,M)=F; + + + + end + + end + %Writing yearly dataset + +CARDAMOM_MAPS_WRITE_3D_DATASET(DATA) + +end + + + + + + + + + + + %Temperature min and max + + +%Max temp +% for yr=startyear:endyear +% DATA=DATA0; +% DATA.filename=sprintf('%s/T2M_MAX/CARDAMOM-MAPS_GC4x5_ERA5_T2M_MAX_%i.nc',DATAPATH,yr); +% DATA.data=GEOSChem_regular_grid_to_GC(ET2M.datamax(:,:,ET2M.year==yr)); +% DATA.Attribute.variable_info='ERA5 4x5 degree dataset: monthly average daily maximum temperature'; +% DATA.info.units='deg C'; +% +% CARDAMOM_MAPS_WRITE_3D_DATASET(DATA) +% +% DATA=DATA0; +% DATA.filename=sprintf('%s/T2M_MIN/CARDAMOM-MAPS_GC4x5_ERA5_T2M_MIN_%i.nc',DATAPATH,yr); +% DATA.data=GEOSChem_regular_grid_to_GC(ET2M.datamin(:,:,ET2M.year==yr)); +% DATA.Attribute.variable_info='ERA5 4x5 degree dataset: monthly average daily minumum temperature'; +% DATA.info.units='deg C'; +% +% CARDAMOM_MAPS_WRITE_3D_DATASET(DATA) +% end + + + + + + + + + + + + + + + + + end + + + +function F=read_era_field_month_year(YR,M,FNAME,STATUS) + + +yridx=YR-2000; + + efn=FNAME; + efidx=find(strcmp(STATUS.fields,efn)); + + if STATUS.FNAMES_PRESENT{yridx,M,efidx}>0 + filename=STATUS.FNAMES{yridx,M,efidx}; + + %Step 1. read radiation file + F=ncread(filename, efn); + %Transposing + + F=permute(F,[2,1,3]); + + %flipping upside down + F=flipud(F); + else + F=[]; + + end + + + + +end + + + + + + diff --git a/MATLAB/prototypes/CARDAMOM_MAPS_READ_GFED_NOV24.m b/MATLAB/prototypes/CARDAMOM_MAPS_READ_GFED_NOV24.m new file mode 100644 index 00000000..4a491ab2 --- /dev/null +++ b/MATLAB/prototypes/CARDAMOM_MAPS_READ_GFED_NOV24.m @@ -0,0 +1,86 @@ + +function GFED=CARDAMOM_MAPS_READ_GFED_NOV24(RES) + +%This function reads 2001-latest burned area, and works around continuity +%issues and land-sea mask issues, +%also reads emissions, as/when these are needed +%gridding in commonly used resolutions done internally + +YEARS=2001:2023; + +[~,lsfrac025]=loadlandseamask(0.25); + + + +GBA=[]; +GCE=[]; +for yr=YEARS + GF4=DATASCRIPT_READ_GFED4_DATA_MAY16(yr); + GBA(:,:,(yr-2001)*12+[1:12])=GF4.BA; + GCE(:,:,(yr-2001)*12+[1:12])=GF4.ES(:,:,:,4); +end + + + M4D=repmat(lsfrac025>0.5,[1,1,size(GBA,3),size(GBA,4)]); + GBA(M4D==0)=NaN;GBA(isnan(GBA) & M4D)=0; + GCE(M4D==0)=NaN;GCE(isnan(GCE) & M4D)=0; + %Ensures land fire-free regions = 0 but sea regions are = NaN + + switch RES + case '05deg' + + GFED.BA=GBA(2:2:end,2:2:end,:)*0; + GFED.FireC=GCE(2:2:end,2:2:end,:)*0; + Fcount=GBA(2:2:end,2:2:end,:)*0; + + for r=1:2 + for c=1:2 + GFED.BA=GFED.BA + nan2zero(GBA(2:2:end,2:2:end,:)); + GFED.FireC=GFED.FireC + nan2zero(GCE(2:2:end,2:2:end,:)); + Fcount=Fcount + double( isnan(GBA(2:2:end,2:2:end,:))==0); + + end + end + GFED.BA=GFED.BA./Fcount; + GFED.FireC=GFED.FireC*12/365.25./Fcount; + + + case 'GC4x5' + + + GFED.BA=GEOSChem_regular_grid_to_GC(GBA); + GFED.FireC=GEOSChem_regular_grid_to_GC(GCE)*12/365.25;%g species/m2/month + + case '0.25deg' +GFED.BA=GBA; + GFED.FireC=GCE*12/365.25;%g species/m2/month + + end + %nantotal(nanmean(GCDRIOBS.FireC,3).*GC.area)*365.25/1e15 + + disp('GFEDv4s beta does not provide 2017-21 burned area'); + disp('Using GFEDv4s 2001-2016 BA/Emissions ratio') + idxdec16=16*12; + + %Using climatology of emissions and fluxes + for m=1:(YEARS(end)-2016)*12 + BAextra(:,:,m)=sum(GFED.BA(:,:,m:12:idxdec16),3)./sum(GFED.FireC(:,:,m:12:idxdec16),3).*GFED.FireC(:,:,idxdec16+m); + end + %storing and replacing NaNs with zeros (Nans occur when 2010-2016 fires + %are zero) +GFED.BA(:,:,idxdec16+1:end)= BAextra; +GFED.BA=nan2zero(GFED.BA); + + +yrdates=YEARS(1)+1/24:1/12:YEARS(end)+1; +GFED.year=floor(yrdates); +GFED.month=round(mod(yrdates*12-0.5,12)+1); + + + +end + + + + + diff --git a/MATLAB/prototypes/DATASCRIPT_READ_NOAA_GLOBAL_CO2_MAR24.m b/MATLAB/prototypes/DATASCRIPT_READ_NOAA_GLOBAL_CO2_MAR24.m new file mode 100644 index 00000000..7436176a --- /dev/null +++ b/MATLAB/prototypes/DATASCRIPT_READ_NOAA_GLOBAL_CO2_MAR24.m @@ -0,0 +1,614 @@ +function DATA=DATASCRIPT_READ_NOAA_GLOBAL_CO2_MAR24 +% # -------------------------------------------------------------------- +% # USE OF NOAA GML DATA +% # +% # These data are made freely available to the public and the +% # scientific community in the belief that their wide dissemination +% # will lead to greater understanding and new scientific insights. +% # The availability of these data does not constitute publication +% # of the data. NOAA relies on the ethics and integrity of the user to +% # ensure that GML receives fair credit for their work. If the data +% # are obtained for potential use in a publication or presentation, +% # GML should be informed at the outset of the nature of this work. +% # If the GML data are essential to the work, or if an important +% # result or conclusion depends on the GML data, co-authorship +% # may be appropriate. This should be discussed at an early stage in +% # the work. Manuscripts using the GML data should be sent to GML +% # for review before they are submitted for publication so we can +% # ensure that the quality and limitations of the data are accurately +% # represented. +% # +% # Contact: Xin Lan (xin.lan@noaa.gov) +% # +% # File Creation: Wed Apr 5 03:55:14 2023 +% # +% # RECIPROCITY +% # +% # Use of these data implies an agreement to reciprocate. +% # Laboratories making similar measurements agree to make their +% # own data available to the general public and to the scientific +% # community in an equally complete and easily accessible form. +% # Modelers are encouraged to make available to the community, +% # upon request, their own tools used in the interpretation +% # of the GML data, namely well documented model code, transport +% # fields, modeled mole fractions, and additional information +% # necessary for other scientists to repeat the work and to run +% # modified versions. Model availability includes collaborative +% # support for new users of the models. +% # -------------------------------------------------------------------- +% # +% # +% # See gml.noaa.gov/ccgg/trends/ for additional details. +% # +% # The uncertainty in the global monthly mean is estimated using a +% # a monte carlo technique that computes 200 globally-averaged time +% # series, each time using a slightly different set of measurement +% # records from the NOAA GML cooperative air sampling network. The +% # reported uncertainty is the mean of the standard deviations +% # for each monthly mean using this technique. Please see Conway et al., +% # 1994, JGR, vol. 99, no. D11. for a complete discussion. Units are ppm. +% # +% # CO2 expressed as a mole fraction in dry air, micromol/mol, abbreviated as ppm +% # +% # NOTE: In general, the data presented for the last year are subject to change, +% # depending on recalibration of the reference gas mixtures used, and other quality +% # control procedures. Occasionally, earlier years may also be changed for the same +% # reasons. Usually these changes are minor. +% # +% # year month decimal average average_unc trend trend_unc + + + +A=ALLDATA; + +DATA.year=A(:,1); +DATA.month=A(:,2); +DATA.data=A(:,4); + + + +end + +function A=ALLDATA; + + A=[ 1979 1 1979.042 336.56 0.11 335.92 0.09 + 1979 2 1979.125 337.29 0.09 336.25 0.10 + 1979 3 1979.208 337.88 0.11 336.51 0.10 + 1979 4 1979.292 338.32 0.12 336.72 0.10 + 1979 5 1979.375 338.26 0.03 336.71 0.10 + 1979 6 1979.458 337.38 0.17 336.61 0.11 + 1979 7 1979.542 335.56 0.27 336.41 0.11 + 1979 8 1979.625 334.37 0.29 336.65 0.11 + 1979 9 1979.708 335.02 0.22 337.40 0.11 + 1979 10 1979.792 336.36 0.22 337.71 0.11 + 1979 11 1979.875 337.36 0.18 337.68 0.11 + 1979 12 1979.958 337.85 0.13 337.61 0.10 + 1980 1 1980.042 338.55 0.13 337.91 0.10 + 1980 2 1980.125 339.26 0.10 338.23 0.09 + 1980 3 1980.208 339.59 0.08 338.23 0.09 + 1980 4 1980.292 339.99 0.08 338.39 0.08 + 1980 5 1980.375 340.44 0.10 338.88 0.07 + 1980 6 1980.458 339.99 0.09 339.22 0.07 + 1980 7 1980.542 338.44 0.16 339.28 0.07 + 1980 8 1980.625 337.21 0.19 339.50 0.06 + 1980 9 1980.708 337.05 0.12 339.44 0.06 + 1980 10 1980.792 337.83 0.07 339.17 0.07 + 1980 11 1980.875 338.93 0.06 339.26 0.07 + 1980 12 1980.958 339.64 0.08 339.40 0.07 + 1981 1 1981.042 340.18 0.10 339.55 0.08 + 1981 2 1981.125 340.75 0.11 339.71 0.08 + 1981 3 1981.208 341.38 0.12 340.01 0.08 + 1981 4 1981.292 341.68 0.08 340.08 0.08 + 1981 5 1981.375 341.43 0.06 339.88 0.09 + 1981 6 1981.458 340.63 0.10 339.86 0.09 + 1981 7 1981.542 339.22 0.15 340.07 0.09 + 1981 8 1981.625 338.08 0.17 340.37 0.09 + 1981 9 1981.708 337.98 0.11 340.36 0.08 + 1981 10 1981.792 339.07 0.09 340.42 0.08 + 1981 11 1981.875 340.18 0.11 340.50 0.07 + 1981 12 1981.958 340.75 0.09 340.52 0.07 + 1982 1 1982.042 341.37 0.08 340.74 0.06 + 1982 2 1982.125 341.95 0.08 340.91 0.05 + 1982 3 1982.208 342.23 0.07 340.84 0.05 + 1982 4 1982.292 342.52 0.07 340.91 0.04 + 1982 5 1982.375 342.36 0.07 340.82 0.04 + 1982 6 1982.458 341.49 0.03 340.72 0.03 + 1982 7 1982.542 339.75 0.08 340.61 0.03 + 1982 8 1982.625 338.11 0.09 340.40 0.03 + 1982 9 1982.708 338.16 0.07 340.54 0.03 + 1982 10 1982.792 339.62 0.05 340.97 0.03 + 1982 11 1982.875 340.95 0.06 341.27 0.03 + 1982 12 1982.958 341.77 0.06 341.53 0.03 + 1983 1 1983.042 342.37 0.05 341.71 0.03 + 1983 2 1983.125 342.74 0.08 341.71 0.03 + 1983 3 1983.208 343.04 0.08 341.70 0.03 + 1983 4 1983.292 343.51 0.05 341.94 0.04 + 1983 5 1983.375 343.84 0.10 342.30 0.04 + 1983 6 1983.458 343.50 0.10 342.71 0.04 + 1983 7 1983.542 342.14 0.14 342.90 0.05 + 1983 8 1983.625 340.62 0.16 342.85 0.05 + 1983 9 1983.708 340.53 0.09 342.94 0.05 + 1983 10 1983.792 341.75 0.11 343.15 0.06 + 1983 11 1983.875 342.83 0.14 343.19 0.06 + 1983 12 1983.958 343.49 0.11 343.26 0.06 + 1984 1 1984.042 344.32 0.05 343.66 0.06 + 1984 2 1984.125 344.82 0.05 343.82 0.07 + 1984 3 1984.208 344.96 0.07 343.60 0.07 + 1984 4 1984.292 345.19 0.13 343.56 0.07 + 1984 5 1984.375 345.33 0.10 343.78 0.08 + 1984 6 1984.458 344.57 0.05 343.80 0.08 + 1984 7 1984.542 343.20 0.11 344.02 0.08 + 1984 8 1984.625 342.21 0.16 344.51 0.08 + 1984 9 1984.708 342.13 0.15 344.57 0.09 + 1984 10 1984.792 342.99 0.13 344.37 0.09 + 1984 11 1984.875 344.16 0.14 344.46 0.09 + 1984 12 1984.958 345.00 0.12 344.72 0.09 + 1985 1 1985.042 345.35 0.10 344.66 0.09 + 1985 2 1985.125 345.80 0.10 344.78 0.09 + 1985 3 1985.208 346.64 0.11 345.31 0.09 + 1985 4 1985.292 346.94 0.11 345.33 0.09 + 1985 5 1985.375 346.78 0.10 345.20 0.09 + 1985 6 1985.458 346.26 0.11 345.47 0.09 + 1985 7 1985.542 344.92 0.14 345.75 0.09 + 1985 8 1985.625 343.41 0.13 345.73 0.08 + 1985 9 1985.708 343.37 0.08 345.82 0.08 + 1985 10 1985.792 344.64 0.08 346.03 0.08 + 1985 11 1985.875 345.79 0.10 346.11 0.08 + 1985 12 1985.958 346.55 0.10 346.25 0.07 + 1986 1 1986.042 347.11 0.11 346.42 0.07 + 1986 2 1986.125 347.34 0.12 346.34 0.07 + 1986 3 1986.208 347.71 0.12 346.38 0.07 + 1986 4 1986.292 348.22 0.13 346.61 0.07 + 1986 5 1986.375 348.32 0.11 346.75 0.07 + 1986 6 1986.458 347.76 0.09 346.99 0.07 + 1986 7 1986.542 346.29 0.15 347.14 0.07 + 1986 8 1986.625 344.92 0.12 347.22 0.07 + 1986 9 1986.708 344.86 0.10 347.26 0.07 + 1986 10 1986.792 346.03 0.14 347.40 0.07 + 1986 11 1986.875 347.30 0.16 347.63 0.08 + 1986 12 1986.958 347.76 0.14 347.46 0.08 + 1987 1 1987.042 348.02 0.11 347.24 0.08 + 1987 2 1987.125 348.57 0.11 347.47 0.09 + 1987 3 1987.208 349.29 0.11 347.88 0.09 + 1987 4 1987.292 349.98 0.13 348.29 0.09 + 1987 5 1987.375 350.26 0.16 348.69 0.10 + 1987 6 1987.458 349.48 0.13 348.81 0.10 + 1987 7 1987.542 347.86 0.15 348.85 0.10 + 1987 8 1987.625 346.61 0.17 349.01 0.10 + 1987 9 1987.708 346.70 0.12 349.15 0.10 + 1987 10 1987.792 347.97 0.13 349.36 0.10 + 1987 11 1987.875 349.25 0.13 349.58 0.09 + 1987 12 1987.958 350.21 0.13 349.88 0.09 + 1988 1 1988.042 350.91 0.10 350.13 0.09 + 1988 2 1988.125 351.47 0.08 350.37 0.08 + 1988 3 1988.208 351.85 0.10 350.39 0.08 + 1988 4 1988.292 352.30 0.11 350.52 0.08 + 1988 5 1988.375 352.46 0.11 350.83 0.07 + 1988 6 1988.458 351.76 0.09 351.07 0.07 + 1988 7 1988.542 350.28 0.13 351.27 0.06 + 1988 8 1988.625 349.10 0.15 351.56 0.06 + 1988 9 1988.708 349.27 0.11 351.79 0.06 + 1988 10 1988.792 350.44 0.10 351.85 0.06 + 1988 11 1988.875 351.61 0.09 351.98 0.06 + 1988 12 1988.958 352.46 0.10 352.16 0.06 + 1989 1 1989.042 353.01 0.08 352.19 0.06 + 1989 2 1989.125 353.46 0.09 352.34 0.06 + 1989 3 1989.208 354.01 0.10 352.58 0.06 + 1989 4 1989.292 354.38 0.10 352.60 0.07 + 1989 5 1989.375 354.19 0.10 352.51 0.07 + 1989 6 1989.458 353.27 0.08 352.58 0.07 + 1989 7 1989.542 351.56 0.12 352.59 0.07 + 1989 8 1989.625 350.21 0.14 352.70 0.07 + 1989 9 1989.708 350.56 0.09 353.10 0.07 + 1989 10 1989.792 351.85 0.11 353.28 0.07 + 1989 11 1989.875 353.04 0.11 353.39 0.07 + 1989 12 1989.958 353.91 0.10 353.59 0.07 + 1990 1 1990.042 354.47 0.12 353.69 0.07 + 1990 2 1990.125 354.87 0.14 353.82 0.07 + 1990 3 1990.208 355.20 0.13 353.77 0.07 + 1990 4 1990.292 355.51 0.11 353.73 0.07 + 1990 5 1990.375 355.40 0.10 353.74 0.07 + 1990 6 1990.458 354.32 0.08 353.66 0.07 + 1990 7 1990.542 352.70 0.09 353.80 0.06 + 1990 8 1990.625 351.58 0.10 354.09 0.06 + 1990 9 1990.708 351.79 0.06 354.31 0.06 + 1990 10 1990.792 353.19 0.08 354.60 0.06 + 1990 11 1990.875 354.45 0.11 354.70 0.06 + 1990 12 1990.958 355.19 0.07 354.75 0.06 + 1991 1 1991.042 355.76 0.07 354.96 0.06 + 1991 2 1991.125 356.19 0.07 355.10 0.06 + 1991 3 1991.208 356.68 0.09 355.24 0.06 + 1991 4 1991.292 357.19 0.11 355.44 0.06 + 1991 5 1991.375 357.11 0.11 355.48 0.06 + 1991 6 1991.458 356.17 0.08 355.56 0.07 + 1991 7 1991.542 354.53 0.12 355.65 0.07 + 1991 8 1991.625 353.05 0.14 355.56 0.07 + 1991 9 1991.708 352.93 0.10 355.45 0.07 + 1991 10 1991.792 354.00 0.10 355.41 0.07 + 1991 11 1991.875 355.16 0.11 355.38 0.07 + 1991 12 1991.958 355.95 0.11 355.49 0.07 + 1992 1 1992.042 356.54 0.09 355.72 0.07 + 1992 2 1992.125 356.89 0.09 355.78 0.07 + 1992 3 1992.208 357.26 0.08 355.79 0.07 + 1992 4 1992.292 357.75 0.09 355.96 0.07 + 1992 5 1992.375 357.83 0.10 356.19 0.07 + 1992 6 1992.458 356.87 0.08 356.27 0.07 + 1992 7 1992.542 355.18 0.11 356.34 0.07 + 1992 8 1992.625 353.67 0.13 356.22 0.07 + 1992 9 1992.708 353.58 0.14 356.14 0.07 + 1992 10 1992.792 354.81 0.09 356.21 0.07 + 1992 11 1992.875 355.99 0.09 356.20 0.07 + 1992 12 1992.958 356.74 0.09 356.27 0.07 + 1993 1 1993.042 357.21 0.10 356.37 0.07 + 1993 2 1993.125 357.55 0.11 356.39 0.07 + 1993 3 1993.208 357.96 0.11 356.52 0.07 + 1993 4 1993.292 358.43 0.11 356.66 0.07 + 1993 5 1993.375 358.38 0.12 356.73 0.07 + 1993 6 1993.458 357.34 0.10 356.68 0.07 + 1993 7 1993.542 355.72 0.13 356.74 0.07 + 1993 8 1993.625 354.44 0.14 356.91 0.07 + 1993 9 1993.708 354.47 0.08 357.05 0.07 + 1993 10 1993.792 355.70 0.09 357.19 0.07 + 1993 11 1993.875 356.95 0.09 357.29 0.07 + 1993 12 1993.958 357.85 0.10 357.49 0.07 + 1994 1 1994.042 358.47 0.10 357.61 0.07 + 1994 2 1994.125 359.01 0.10 357.85 0.08 + 1994 3 1994.208 359.36 0.09 357.91 0.08 + 1994 4 1994.292 359.71 0.10 357.93 0.08 + 1994 5 1994.375 359.74 0.13 358.06 0.08 + 1994 6 1994.458 358.81 0.10 358.10 0.08 + 1994 7 1994.542 357.27 0.10 358.27 0.08 + 1994 8 1994.625 356.06 0.12 358.56 0.07 + 1994 9 1994.708 356.02 0.08 358.67 0.07 + 1994 10 1994.792 357.26 0.08 358.80 0.07 + 1994 11 1994.875 358.69 0.10 359.03 0.06 + 1994 12 1994.958 359.55 0.12 359.15 0.06 + 1995 1 1995.042 360.13 0.10 359.27 0.06 + 1995 2 1995.125 360.61 0.11 359.51 0.05 + 1995 3 1995.208 361.08 0.09 359.70 0.05 + 1995 4 1995.292 361.55 0.07 359.85 0.05 + 1995 5 1995.375 361.47 0.08 359.84 0.05 + 1995 6 1995.458 360.61 0.07 359.93 0.05 + 1995 7 1995.542 358.99 0.08 360.00 0.05 + 1995 8 1995.625 357.73 0.12 360.20 0.05 + 1995 9 1995.708 358.05 0.08 360.64 0.05 + 1995 10 1995.792 359.42 0.08 360.89 0.05 + 1995 11 1995.875 360.77 0.07 361.04 0.05 + 1995 12 1995.958 361.65 0.05 361.20 0.04 + 1996 1 1996.042 362.14 0.05 361.23 0.04 + 1996 2 1996.125 362.50 0.08 361.33 0.04 + 1996 3 1996.208 362.82 0.10 361.40 0.04 + 1996 4 1996.292 363.14 0.09 361.42 0.04 + 1996 5 1996.375 363.29 0.08 361.68 0.04 + 1996 6 1996.458 362.88 0.06 362.23 0.04 + 1996 7 1996.542 361.57 0.07 362.61 0.04 + 1996 8 1996.625 360.07 0.09 362.57 0.04 + 1996 9 1996.708 359.70 0.10 362.31 0.04 + 1996 10 1996.792 360.67 0.07 362.15 0.04 + 1996 11 1996.875 361.78 0.06 362.09 0.04 + 1996 12 1996.958 362.63 0.07 362.19 0.04 + 1997 1 1997.042 363.28 0.06 362.34 0.04 + 1997 2 1997.125 363.65 0.08 362.47 0.04 + 1997 3 1997.208 364.03 0.09 362.62 0.05 + 1997 4 1997.292 364.51 0.10 362.81 0.05 + 1997 5 1997.375 364.51 0.09 362.93 0.05 + 1997 6 1997.458 363.60 0.08 362.97 0.05 + 1997 7 1997.542 361.93 0.10 362.96 0.05 + 1997 8 1997.625 360.41 0.09 362.89 0.05 + 1997 9 1997.708 360.41 0.07 363.01 0.05 + 1997 10 1997.792 361.94 0.06 363.42 0.05 + 1997 11 1997.875 363.61 0.09 363.89 0.05 + 1997 12 1997.958 364.68 0.09 364.22 0.05 + 1998 1 1998.042 365.19 0.09 364.26 0.05 + 1998 2 1998.125 365.46 0.09 364.31 0.05 + 1998 3 1998.208 365.93 0.09 364.53 0.04 + 1998 4 1998.292 366.58 0.07 364.91 0.04 + 1998 5 1998.375 366.86 0.07 365.32 0.04 + 1998 6 1998.458 366.27 0.06 365.67 0.04 + 1998 7 1998.542 364.84 0.09 365.88 0.04 + 1998 8 1998.625 363.79 0.09 366.28 0.04 + 1998 9 1998.708 364.04 0.06 366.61 0.04 + 1998 10 1998.792 365.34 0.07 366.78 0.04 + 1998 11 1998.875 366.60 0.07 366.85 0.04 + 1998 12 1998.958 367.47 0.05 366.97 0.04 + 1999 1 1999.042 368.11 0.08 367.18 0.04 + 1999 2 1999.125 368.51 0.10 367.37 0.04 + 1999 3 1999.208 368.91 0.10 367.52 0.05 + 1999 4 1999.292 369.29 0.09 367.64 0.05 + 1999 5 1999.375 369.21 0.08 367.70 0.05 + 1999 6 1999.458 368.36 0.06 367.79 0.05 + 1999 7 1999.542 366.69 0.11 367.74 0.05 + 1999 8 1999.625 365.33 0.15 367.79 0.06 + 1999 9 1999.708 365.45 0.12 367.99 0.06 + 1999 10 1999.792 366.75 0.08 368.18 0.06 + 1999 11 1999.875 368.04 0.08 368.27 0.06 + 1999 12 1999.958 368.88 0.08 368.36 0.06 + 2000 1 2000.042 369.39 0.10 368.47 0.06 + 2000 2 2000.125 369.65 0.12 368.51 0.06 + 2000 3 2000.208 369.97 0.11 368.57 0.06 + 2000 4 2000.292 370.35 0.10 368.67 0.06 + 2000 5 2000.375 370.24 0.09 368.72 0.06 + 2000 6 2000.458 369.31 0.07 368.78 0.06 + 2000 7 2000.542 367.91 0.12 369.05 0.06 + 2000 8 2000.625 366.76 0.14 369.27 0.06 + 2000 9 2000.708 366.71 0.11 369.25 0.06 + 2000 10 2000.792 367.91 0.08 369.31 0.06 + 2000 11 2000.875 369.28 0.09 369.44 0.06 + 2000 12 2000.958 370.10 0.09 369.54 0.06 + 2001 1 2001.042 370.69 0.09 369.79 0.06 + 2001 2 2001.125 371.18 0.12 370.03 0.06 + 2001 3 2001.208 371.59 0.11 370.17 0.06 + 2001 4 2001.292 371.90 0.08 370.22 0.05 + 2001 5 2001.375 371.80 0.07 370.27 0.05 + 2001 6 2001.458 370.85 0.06 370.32 0.05 + 2001 7 2001.542 369.46 0.09 370.57 0.05 + 2001 8 2001.625 368.32 0.10 370.80 0.05 + 2001 9 2001.708 368.36 0.08 370.88 0.04 + 2001 10 2001.792 369.71 0.09 371.11 0.04 + 2001 11 2001.875 371.05 0.08 371.25 0.04 + 2001 12 2001.958 371.97 0.12 371.46 0.04 + 2002 1 2002.042 372.51 0.09 371.56 0.05 + 2002 2 2002.125 372.91 0.07 371.65 0.05 + 2002 3 2002.208 373.38 0.08 371.86 0.05 + 2002 4 2002.292 373.73 0.09 371.96 0.05 + 2002 5 2002.375 373.71 0.08 372.13 0.05 + 2002 6 2002.458 372.84 0.06 372.30 0.05 + 2002 7 2002.542 371.41 0.07 372.54 0.04 + 2002 8 2002.625 370.35 0.08 372.89 0.04 + 2002 9 2002.708 370.67 0.08 373.29 0.04 + 2002 10 2002.792 371.95 0.08 373.44 0.04 + 2002 11 2002.875 373.28 0.08 373.58 0.04 + 2002 12 2002.958 374.26 0.11 373.80 0.04 + 2003 1 2003.042 374.94 0.09 373.95 0.04 + 2003 2 2003.125 375.47 0.09 374.13 0.04 + 2003 3 2003.208 375.91 0.08 374.34 0.04 + 2003 4 2003.292 376.39 0.07 374.60 0.04 + 2003 5 2003.375 376.55 0.09 374.95 0.05 + 2003 6 2003.458 375.71 0.07 375.16 0.05 + 2003 7 2003.542 374.16 0.08 375.31 0.05 + 2003 8 2003.625 372.93 0.13 375.52 0.05 + 2003 9 2003.708 373.09 0.10 375.77 0.05 + 2003 10 2003.792 374.36 0.08 375.90 0.05 + 2003 11 2003.875 375.66 0.07 376.00 0.05 + 2003 12 2003.958 376.52 0.06 376.09 0.05 + 2004 1 2004.042 377.21 0.07 376.23 0.05 + 2004 2 2004.125 377.73 0.10 376.41 0.05 + 2004 3 2004.208 378.16 0.09 376.56 0.05 + 2004 4 2004.292 378.48 0.08 376.68 0.05 + 2004 5 2004.375 378.40 0.10 376.81 0.05 + 2004 6 2004.458 377.51 0.07 376.95 0.06 + 2004 7 2004.542 375.96 0.07 377.15 0.06 + 2004 8 2004.625 374.49 0.10 377.13 0.06 + 2004 9 2004.708 374.39 0.08 377.06 0.06 + 2004 10 2004.792 375.73 0.07 377.23 0.06 + 2004 11 2004.875 377.20 0.09 377.49 0.06 + 2004 12 2004.958 378.17 0.08 377.69 0.05 + 2005 1 2005.042 378.73 0.09 377.75 0.05 + 2005 2 2005.125 379.27 0.11 377.95 0.05 + 2005 3 2005.208 379.87 0.10 378.26 0.05 + 2005 4 2005.292 380.32 0.07 378.51 0.05 + 2005 5 2005.375 380.42 0.07 378.81 0.05 + 2005 6 2005.458 379.60 0.06 379.01 0.04 + 2005 7 2005.542 377.94 0.08 379.11 0.04 + 2005 8 2005.625 376.73 0.10 379.37 0.04 + 2005 9 2005.708 376.76 0.08 379.47 0.04 + 2005 10 2005.792 378.07 0.09 379.64 0.04 + 2005 11 2005.875 379.53 0.11 379.86 0.04 + 2005 12 2005.958 380.53 0.09 380.05 0.05 + 2006 1 2006.042 381.33 0.07 380.32 0.05 + 2006 2 2006.125 381.95 0.08 380.58 0.05 + 2006 3 2006.208 382.34 0.09 380.70 0.05 + 2006 4 2006.292 382.67 0.08 380.84 0.05 + 2006 5 2006.375 382.63 0.08 380.97 0.05 + 2006 6 2006.458 381.76 0.07 381.14 0.05 + 2006 7 2006.542 380.07 0.06 381.27 0.05 + 2006 8 2006.625 378.49 0.10 381.21 0.05 + 2006 9 2006.708 378.63 0.08 381.40 0.05 + 2006 10 2006.792 380.08 0.09 381.67 0.05 + 2006 11 2006.875 381.44 0.07 381.76 0.05 + 2006 12 2006.958 382.39 0.05 381.92 0.05 + 2007 1 2007.042 383.03 0.07 382.00 0.05 + 2007 2 2007.125 383.55 0.09 382.14 0.05 + 2007 3 2007.208 384.02 0.10 382.36 0.04 + 2007 4 2007.292 384.28 0.09 382.45 0.04 + 2007 5 2007.375 384.13 0.06 382.50 0.04 + 2007 6 2007.458 383.26 0.06 382.69 0.04 + 2007 7 2007.542 381.55 0.09 382.82 0.04 + 2007 8 2007.625 380.29 0.08 383.06 0.04 + 2007 9 2007.708 380.68 0.08 383.46 0.04 + 2007 10 2007.792 382.10 0.08 383.65 0.04 + 2007 11 2007.875 383.45 0.07 383.73 0.04 + 2007 12 2007.958 384.46 0.06 383.96 0.05 + 2008 1 2008.042 385.23 0.07 384.20 0.05 + 2008 2 2008.125 385.74 0.10 384.35 0.05 + 2008 3 2008.208 386.15 0.09 384.51 0.05 + 2008 4 2008.292 386.53 0.07 384.73 0.05 + 2008 5 2008.375 386.49 0.08 384.86 0.05 + 2008 6 2008.458 385.58 0.05 385.02 0.05 + 2008 7 2008.542 384.10 0.08 385.42 0.05 + 2008 8 2008.625 382.77 0.09 385.57 0.05 + 2008 9 2008.708 382.54 0.06 385.29 0.05 + 2008 10 2008.792 383.67 0.07 385.15 0.05 + 2008 11 2008.875 385.18 0.06 385.40 0.05 + 2008 12 2008.958 386.27 0.06 385.74 0.05 + 2009 1 2009.042 387.03 0.07 385.98 0.05 + 2009 2 2009.125 387.48 0.07 386.06 0.04 + 2009 3 2009.208 387.71 0.08 386.05 0.04 + 2009 4 2009.292 387.99 0.08 386.18 0.04 + 2009 5 2009.375 387.95 0.06 386.35 0.04 + 2009 6 2009.458 386.96 0.05 386.46 0.04 + 2009 7 2009.542 385.01 0.15 386.43 0.04 + 2009 8 2009.625 383.63 0.14 386.50 0.03 + 2009 9 2009.708 383.93 0.10 386.66 0.03 + 2009 10 2009.792 385.50 0.11 386.92 0.03 + 2009 11 2009.875 386.94 0.09 387.12 0.03 + 2009 12 2009.958 387.84 0.07 387.27 0.03 + 2010 1 2010.042 388.62 0.08 387.60 0.04 + 2010 2 2010.125 389.33 0.10 387.94 0.05 + 2010 3 2010.208 389.68 0.11 388.03 0.05 + 2010 4 2010.292 389.98 0.13 388.17 0.05 + 2010 5 2010.375 389.95 0.16 388.35 0.06 + 2010 6 2010.458 389.01 0.12 388.52 0.06 + 2010 7 2010.542 387.35 0.16 388.74 0.06 + 2010 8 2010.625 386.23 0.12 389.05 0.06 + 2010 9 2010.708 386.70 0.10 389.40 0.06 + 2010 10 2010.792 388.25 0.10 389.68 0.06 + 2010 11 2010.875 389.62 0.11 389.80 0.06 + 2010 12 2010.958 390.36 0.09 389.82 0.05 + 2011 1 2011.042 390.93 0.09 389.88 0.05 + 2011 2 2011.125 391.35 0.07 389.93 0.05 + 2011 3 2011.208 391.67 0.08 390.03 0.05 + 2011 4 2011.292 392.05 0.09 390.24 0.05 + 2011 5 2011.375 392.07 0.09 390.45 0.05 + 2011 6 2011.458 391.13 0.07 390.63 0.05 + 2011 7 2011.542 389.19 0.18 390.56 0.05 + 2011 8 2011.625 387.86 0.19 390.65 0.05 + 2011 9 2011.708 388.26 0.14 390.98 0.05 + 2011 10 2011.792 389.83 0.13 391.30 0.05 + 2011 11 2011.875 391.21 0.11 391.43 0.05 + 2011 12 2011.958 392.04 0.09 391.53 0.05 + 2012 1 2012.042 392.61 0.10 391.55 0.05 + 2012 2 2012.125 393.20 0.16 391.78 0.05 + 2012 3 2012.208 393.72 0.14 392.08 0.06 + 2012 4 2012.292 393.99 0.11 392.20 0.06 + 2012 5 2012.375 393.88 0.09 392.27 0.06 + 2012 6 2012.458 392.84 0.06 392.36 0.06 + 2012 7 2012.542 391.00 0.12 392.43 0.06 + 2012 8 2012.625 389.89 0.15 392.74 0.06 + 2012 9 2012.708 390.55 0.11 393.27 0.06 + 2012 10 2012.792 392.16 0.13 393.59 0.06 + 2012 11 2012.875 393.56 0.11 393.73 0.05 + 2012 12 2012.958 394.39 0.10 393.82 0.05 + 2013 1 2013.042 395.07 0.09 394.08 0.05 + 2013 2 2013.125 395.70 0.12 394.34 0.05 + 2013 3 2013.208 396.29 0.09 394.66 0.05 + 2013 4 2013.292 396.74 0.08 394.94 0.05 + 2013 5 2013.375 396.75 0.10 395.14 0.06 + 2013 6 2013.458 395.96 0.07 395.45 0.06 + 2013 7 2013.542 394.47 0.20 395.83 0.06 + 2013 8 2013.625 393.23 0.16 396.01 0.06 + 2013 9 2013.708 393.21 0.13 395.89 0.06 + 2013 10 2013.792 394.51 0.13 395.93 0.06 + 2013 11 2013.875 395.96 0.10 396.15 0.06 + 2013 12 2013.958 396.88 0.08 396.35 0.06 + 2014 1 2014.042 397.51 0.08 396.45 0.06 + 2014 2 2014.125 397.97 0.08 396.53 0.06 + 2014 3 2014.208 398.27 0.07 396.60 0.06 + 2014 4 2014.292 398.63 0.06 396.78 0.06 + 2014 5 2014.375 398.69 0.07 397.03 0.06 + 2014 6 2014.458 397.72 0.10 397.16 0.06 + 2014 7 2014.542 396.13 0.15 397.45 0.06 + 2014 8 2014.625 395.02 0.14 397.84 0.06 + 2014 9 2014.708 395.12 0.10 397.89 0.06 + 2014 10 2014.792 396.38 0.10 397.91 0.06 + 2014 11 2014.875 397.86 0.08 398.16 0.05 + 2014 12 2014.958 398.84 0.08 398.35 0.05 + 2015 1 2015.042 399.56 0.07 398.52 0.05 + 2015 2 2015.125 400.12 0.07 398.69 0.05 + 2015 3 2015.208 400.57 0.07 398.86 0.05 + 2015 4 2015.292 400.96 0.07 399.09 0.05 + 2015 5 2015.375 400.91 0.10 399.27 0.05 + 2015 6 2015.458 400.06 0.11 399.50 0.05 + 2015 7 2015.542 398.38 0.09 399.66 0.05 + 2015 8 2015.625 397.07 0.13 399.85 0.06 + 2015 9 2015.708 397.34 0.09 400.14 0.06 + 2015 10 2015.792 398.80 0.12 400.37 0.06 + 2015 11 2015.875 400.37 0.12 400.68 0.06 + 2015 12 2015.958 401.66 0.10 401.17 0.06 + 2016 1 2016.042 402.62 0.08 401.59 0.06 + 2016 2 2016.125 403.26 0.09 401.86 0.06 + 2016 3 2016.208 403.85 0.08 402.18 0.06 + 2016 4 2016.292 404.36 0.07 402.50 0.06 + 2016 5 2016.375 404.41 0.09 402.76 0.06 + 2016 6 2016.458 403.62 0.10 403.03 0.07 + 2016 7 2016.542 402.10 0.08 403.31 0.07 + 2016 8 2016.625 400.78 0.09 403.52 0.07 + 2016 9 2016.708 400.96 0.11 403.76 0.07 + 2016 10 2016.792 402.41 0.09 404.00 0.07 + 2016 11 2016.875 403.76 0.09 404.09 0.07 + 2016 12 2016.958 404.67 0.08 404.19 0.07 + 2017 1 2017.042 405.32 0.07 404.25 0.07 + 2017 2 2017.125 405.91 0.09 404.47 0.07 + 2017 3 2017.208 406.32 0.09 404.63 0.07 + 2017 4 2017.292 406.60 0.10 404.73 0.07 + 2017 5 2017.375 406.64 0.13 405.00 0.07 + 2017 6 2017.458 405.85 0.11 405.28 0.07 + 2017 7 2017.542 404.10 0.10 405.37 0.07 + 2017 8 2017.625 402.57 0.16 405.39 0.07 + 2017 9 2017.708 402.66 0.16 405.50 0.07 + 2017 10 2017.792 404.16 0.10 405.74 0.07 + 2017 11 2017.875 405.70 0.08 406.00 0.07 + 2017 12 2017.958 406.75 0.08 406.23 0.07 + 2018 1 2018.042 407.53 0.11 406.48 0.07 + 2018 2 2018.125 408.23 0.10 406.85 0.07 + 2018 3 2018.208 408.77 0.09 407.12 0.07 + 2018 4 2018.292 409.07 0.08 407.24 0.07 + 2018 5 2018.375 408.93 0.09 407.30 0.07 + 2018 6 2018.458 408.06 0.08 407.47 0.07 + 2018 7 2018.542 406.49 0.09 407.76 0.07 + 2018 8 2018.625 405.11 0.13 407.95 0.07 + 2018 9 2018.708 405.18 0.13 408.03 0.07 + 2018 10 2018.792 406.65 0.09 408.20 0.07 + 2018 11 2018.875 408.12 0.09 408.34 0.07 + 2018 12 2018.958 409.19 0.09 408.60 0.08 + 2019 1 2019.042 409.92 0.11 408.90 0.08 + 2019 2 2019.125 410.34 0.11 408.99 0.08 + 2019 3 2019.208 410.89 0.11 409.24 0.08 + 2019 4 2019.292 411.33 0.10 409.50 0.08 + 2019 5 2019.375 411.34 0.08 409.70 0.08 + 2019 6 2019.458 410.53 0.08 409.95 0.08 + 2019 7 2019.542 408.88 0.12 410.17 0.07 + 2019 8 2019.625 407.65 0.13 410.48 0.07 + 2019 9 2019.708 407.92 0.11 410.75 0.07 + 2019 10 2019.792 409.44 0.11 410.97 0.07 + 2019 11 2019.875 410.87 0.11 411.05 0.07 + 2019 12 2019.958 411.76 0.09 411.17 0.07 + 2020 1 2020.042 412.43 0.07 411.40 0.06 + 2020 2 2020.125 412.95 0.09 411.59 0.06 + 2020 3 2020.208 413.44 0.10 411.82 0.06 + 2020 4 2020.292 413.86 0.10 412.04 0.06 + 2020 5 2020.375 413.81 0.09 412.17 0.06 + 2020 6 2020.458 412.88 0.10 412.32 0.06 + 2020 7 2020.542 411.17 0.12 412.47 0.07 + 2020 8 2020.625 409.73 0.14 412.58 0.07 + 2020 9 2020.708 410.00 0.15 412.82 0.07 + 2020 10 2020.792 411.66 0.15 413.15 0.07 + 2020 11 2020.875 413.25 0.12 413.41 0.07 + 2020 12 2020.958 414.14 0.08 413.55 0.07 + 2021 1 2021.042 414.74 0.11 413.71 0.07 + 2021 2 2021.125 415.20 0.12 413.84 0.07 + 2021 3 2021.208 415.49 0.10 413.87 0.06 + 2021 4 2021.292 415.81 0.11 413.98 0.06 + 2021 5 2021.375 416.01 0.11 414.37 0.06 + 2021 6 2021.458 415.20 0.07 414.64 0.06 + 2021 7 2021.542 413.45 0.09 414.75 0.06 + 2021 8 2021.625 412.15 0.08 414.99 0.06 + 2021 9 2021.708 412.38 0.08 415.21 0.06 + 2021 10 2021.792 413.83 0.08 415.32 0.06 + 2021 11 2021.875 415.58 0.11 415.73 0.06 + 2021 12 2021.958 416.61 0.11 416.02 0.06 + 2022 1 2022.042 417.18 0.10 416.15 0.06 + 2022 2 2022.125 417.64 0.11 416.29 0.06 + 2022 3 2022.208 418.16 0.13 416.54 0.06 + 2022 4 2022.292 418.58 0.13 416.76 0.07 + 2022 5 2022.375 418.45 0.16 416.82 0.07 + 2022 6 2022.458 417.43 0.11 416.87 0.07 + 2022 7 2022.542 415.68 0.15 416.98 0.07 + 2022 8 2022.625 414.41 0.14 417.25 0.08 + 2022 9 2022.708 414.63 0.14 417.46 0.08 + 2022 10 2022.792 416.14 0.18 417.63 0.09 + 2022 11 2022.875 417.77 0.15 417.92 0.09 + 2022 12 2022.958 418.80 0.12 418.21 0.09 + 2023 1 2023.042 419.30 0.10 418.28 0.10 + 2023 2 2023.125 419.65 0.10 418.29 0.06 + 2023 3 2023.208 420.01 0.10 418.39 0.06 + 2023 4 2023.292 420.50 0.10 418.67 0.06 + 2023 5 2023.375 420.52 0.10 418.88 0.06 + 2023 6 2023.458 419.54 0.10 418.98 0.06 + 2023 7 2023.542 417.86 0.10 419.16 0.06 + 2023 8 2023.625 416.60 0.10 419.45 0.06 + 2023 9 2023.708 416.98 0.10 419.80 0.06 + 2023 10 2023.792 418.65 0.10 420.13 0.06 + 2023 11 2023.875 420.17 0.10 420.33 0.06 + 2023 12 2023.958 421.23 0.10 420.65 0.06]; +end From b83657cfee3f3b111d3a563de7213e22db5eb094 Mon Sep 17 00:00:00 2001 From: aantonyb Date: Tue, 7 Oct 2025 09:43:25 -0700 Subject: [PATCH 8/8] inc --- .../CARDAMOM_READ_NETCDF_DATA.c | 24 +++++++++++-------- .../CARDAMOM_GENERAL/CARDAMOM_RUN_MODEL.c | 14 +++++++++++ .../NETCDF_AUXILLIARY_FUNCTIONS.c | 8 +++++++ .../DALEC/DALEC_1100/DALEC_1100.c | 2 +- 4 files changed, 37 insertions(+), 11 deletions(-) diff --git a/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c b/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c index 04abaca1..7cc30e79 100644 --- a/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c +++ b/C/projects/CARDAMOM_GENERAL/CARDAMOM_READ_NETCDF_DATA.c @@ -334,9 +334,9 @@ printf("Done reading all other edc "); DATA->ET_REF2.values=ncdf_read_double_2D(ncid, "ET_REF2", DATA->ET_REF2.dimensions); // DATA->ET_REF2.reference_mean=ncdf_read_double_attr(ncid, "ET_REF2","reference_mean"); //DEFAULT_REFERENCE_MEAN(&DATA->ET_REF2); - printf("Made it here 2\n"); + //printf("Made it here 2\n"); - printf("%9.4f\t", DATA->ET_REF.values[0]); + // printf("%9.4f\t", DATA->ET_REF.values[0]); printf("Made it here 3\n"); @@ -344,14 +344,18 @@ printf("Done reading all other edc "); printf("%9i\n", DATA->ET_REF2.dimensions[0]); printf("%9i\n", DATA->ET_REF2.dimensions[1]); - printf("%9.4f\t", DATA->ET_REF2.values[0][0]); - printf("%9.4f\t", DATA->ET_REF2.values[1][0]); - printf("%9.4f\t", DATA->ET_REF2.values[1][1]); - printf("%9.4f\t", DATA->ET_REF2.values[1][2]); - printf("%9.4f\t", DATA->ET_REF2.values[2][2]); - printf("%9.4f\t", DATA->ET_REF2.values[2][0]); - - printf("Made it here 4\n"); + printf("%9.4f\n", DATA->ET_REF2.values[0][0]); + printf("%9.4f\n", DATA->ET_REF2.values[0][1]); + printf("%9.4f\n", DATA->ET_REF2.values[0][2]); + printf("%9.4f\n", DATA->ET_REF2.values[1][0]); + printf("%9.4f\n", DATA->ET_REF2.values[1][1]); + printf("%9.4f\n", DATA->ET_REF2.values[1][2]); + printf("%9.4f\n", DATA->ET_REF2.values[2][0]); + printf("%9.4f\n", DATA->ET_REF2.values[2][1]); + printf("%9.4f\n", DATA->ET_REF2.values[2][2]); + + + printf("Made it here 4\n"); // printf("%9.4f\t", DATA->ET_REF2.values[0][2]); diff --git a/C/projects/CARDAMOM_GENERAL/CARDAMOM_RUN_MODEL.c b/C/projects/CARDAMOM_GENERAL/CARDAMOM_RUN_MODEL.c index 6564e15e..29745f2e 100644 --- a/C/projects/CARDAMOM_GENERAL/CARDAMOM_RUN_MODEL.c +++ b/C/projects/CARDAMOM_GENERAL/CARDAMOM_RUN_MODEL.c @@ -359,6 +359,20 @@ for (n=0;n