From f89e20bf268da14386ea56235d07e36b746fd596 Mon Sep 17 00:00:00 2001 From: Dominic Orchard Date: Wed, 27 May 2026 07:33:06 +0100 Subject: [PATCH 1/2] fix readme instructions --- test/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/README.md b/test/README.md index 2fd8a96..c029050 100644 --- a/test/README.md +++ b/test/README.md @@ -6,5 +6,5 @@ copied into this directory. You can run it directly here: ```bash -./rum_main.sh +./run_main.sh ``` \ No newline at end of file From 494e483483ce0275a5678a81f98f916a33af178e Mon Sep 17 00:00:00 2001 From: Dominic Orchard Date: Wed, 27 May 2026 07:35:12 +0100 Subject: [PATCH 2/2] use continuation lines for clarity and cross compiler support --- src/mod_calcost.f90 | 13 ++++++++----- src/mod_constants.f90 | 9 ++++++--- src/mod_functions.f90 | 3 ++- src/mod_inout.f90 | 9 ++++++--- src/mod_interface.f90 | 9 ++++++--- src/mod_model_core.f90 | 9 ++++++--- 6 files changed, 34 insertions(+), 18 deletions(-) diff --git a/src/mod_calcost.f90 b/src/mod_calcost.f90 index ddb5c34..a006118 100644 --- a/src/mod_calcost.f90 +++ b/src/mod_calcost.f90 @@ -88,10 +88,12 @@ subroutine calcost_c14(nx,isoc14,bgcopt,xopt,micparam,miccpool,micinput,zse,totc ! xcost(np) = xcost(np) + ((xmodp(np) - xobsp(np))/xobsp(np))**2 +((xmodm(np) - xobsm(np))/xobsm(np))**2 xcost(np) = xcost(np) + (xfracpmod(np)-xfracpobs(np))** 2 + (xfracmmod(np) - xfracmobs(np))**2 endif - write(91,901) micparam%siteid(np),micparam%pft(np),micparam%top(np),micparam%bot(np),xobs(np),xmod(np),xobsp(np),xmodp(np),xobsm(np),xmodm(np) + write(91,901) micparam%siteid(np),micparam%pft(np),micparam%top(np),micparam%bot(np), & + xobs(np),xmod(np),xobsp(np),xmodp(np),xobsm(np),xmodm(np) do ns = 1,ms - write(92,*) micparam%siteid(np),micparam%pft(np), ns, (1000.0*miccpool%cpooleq(np,ns,ip)/micinput%bulkd(np,ns),ip=1,mcpool) + write(92,*) micparam%siteid(np),micparam%pft(np), ns, & + (1000.0*miccpool%cpooleq(np,ns,ip)/micinput%bulkd(np,ns),ip=1,mcpool) enddo else @@ -104,7 +106,8 @@ subroutine calcost_c14(nx,isoc14,bgcopt,xopt,micparam,miccpool,micinput,zse,totc micparam%c14soilobsm(np),xmodm(np)/miccpool%c12pooleqm(np) do ns = 1,ms - write(94,*) micparam%siteid(np),micparam%pft(np), ns, (1000.0*miccpool%cpooleq(np,ns,ip)/micinput%bulkd(np,ns),ip=1,mcpool) + write(94,*) micparam%siteid(np),micparam%pft(np), ns, & + (1000.0*miccpool%cpooleq(np,ns,ip)/micinput%bulkd(np,ns),ip=1,mcpool) enddo endif @@ -284,8 +287,8 @@ subroutine calcost_hwsd2(nx,bgcopt,xopt,micpxdef,micparam,miccpool,micinput,micg do ns = 1,msobs if(ns==1) then - xobs7(np,ns) = (micparam%csoilobs(np,2) * zse(2)+ micparam%csoilobs(np,3) * zse(3) + micparam%csoilobs(np,4) * zse(4)) & - /(zse(2)+zse(3)+zse(4)) + xobs7(np,ns) = (micparam%csoilobs(np,2) * zse(2)+ micparam%csoilobs(np,3) * zse(3) & + + micparam%csoilobs(np,4) * zse(4)) /(zse(2)+zse(3)+zse(4)) xmod7(np,ns) = (xmod(np,2) * zse(2) +xmod(np,3) * zse(3) + xmod(np,4) * zse(4)) & /(zse(2)+zse(3)+zse(4)) else diff --git a/src/mod_constants.f90 b/src/mod_constants.f90 index 417a17c..9028fad 100644 --- a/src/mod_constants.f90 +++ b/src/mod_constants.f90 @@ -30,7 +30,8 @@ module mic_constant ! CABLE PFT-dependent parameter values real(r_2), dimension(17) :: cnleaf1,cnroot1,cnwood1,ligleaf1,ligroot1,ligwood1 data cnLeaf1/99.60,46.20,118.60,62.80,75.20,69.60,88.00,98.40,43.20,50.00,99.60,46.20,62.80,100.00,80.00,80.00,80.00/ - data cnwood1/250.63,142.00,256.63,164.42,149.58,157.89,157.89,155.05,157.89,131.58,250.63,142.00,164.42,157.89,157.89,142.11,157.89/ + data cnwood1/250.63,142.00,256.63,164.42,149.58,157.89,157.89,155.05,157.89,131.58, & + 250.63,142.00,164.42,157.89,157.89,142.11,157.89/ data cnroot1/81.89,68.00,83.33,70.22,74.56,71.67,69.67,76.67,67.44,78.89,81.89,68.00,70.22,78.89,78.89,78.89,78.89/ data ligleaf1/0.25,0.20,0.20,0.20,0.20,0.10,0.10,0.10,0.10,0.10,0.25,0.20,0.20,0.15,0.15,0.25,0.10/ data ligwood1/0.40,0.40,0.40,0.40,0.40,0.40,0.40,0.40,0.40,0.40,0.40,0.40,0.40,0.40,0.40,0.40,0.40/ @@ -39,8 +40,10 @@ module mic_constant ! ORCHIDEE PFT-dependent parameter values real(r_2), dimension(18) :: cnleaf2,cnroot2,cnwood2,ligleaf2,ligroot2,ligwood2 data cnleaf2/47.12,51.42,94.78,49.99,54.55,94.78,54.55,94.78,75.29,101.21,75.29,93.80,75.29,101.21,75.29,101.21,75.29,101.21/ - data cnwood2/115.74,113.64,208.96,125.00,145.45,208.96,145.45,36.36,16.00,22.00,16.00,16.00,16.00,22.00,16.00,22.00,16.00,22.00/ - data cnroot2/81.43,82.53,151.87,87.49,100.00,151.87,100.00,65.57,45.64,61.60,45.64,54.90,45.64,61.60,45.64,61.60,45.64,61.60/ + data cnwood2/115.74,113.64,208.96,125.00,145.45,208.96,145.45,36.36,16.00,22.00,16.00, & + 16.00,16.00,22.00,16.00,22.00,16.00,22.00/ + data cnroot2/81.43,82.53,151.87,87.49,100.00,151.87,100.00,65.57,45.64,61.60,45.64, & + 54.90,45.64,61.60,45.64,61.60,45.64,61.60/ data ligleaf2/0.20,0.20,0.25,0.20,0.20,0.25,0.20,0.25,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10/ data ligwood2/0.25,0.25,0.30,0.25,0.25,0.30,0.25,0.30,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10/ data ligroot2/0.20,0.20,0.25,0.20,0.20,0.25,0.20,0.25,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10/ diff --git a/src/mod_functions.f90 b/src/mod_functions.f90 index 6df9207..a68d618 100644 --- a/src/mod_functions.f90 +++ b/src/mod_functions.f90 @@ -2,7 +2,8 @@ module function_module use mic_constant use mic_variable use mesc_inout_module, only: getdata_c14, getdata_frc_dim, getdata_frc, getdata_hwsd_dim, getdata_hwsd, screenout - use mesc_interface_module, only: vmic_param_xscale, vmic_param_time, vmic_param_time_single, vmicsoil_c14, vmicsoil_frc1_cpu, vmicsoil_hwsd_cpu, vmicsoil_hwsd_gpu + use mesc_interface_module, only: vmic_param_xscale, vmic_param_time, vmic_param_time_single, vmicsoil_c14, & + vmicsoil_frc1_cpu, vmicsoil_hwsd_cpu, vmicsoil_hwsd_gpu use calcost_module, only: calcost_c14, calcost_frc1, calcost_hwsd2 implicit none diff --git a/src/mod_inout.f90 b/src/mod_inout.f90 index f01507e..2ee87cc 100644 --- a/src/mod_inout.f90 +++ b/src/mod_inout.f90 @@ -886,9 +886,12 @@ subroutine getdata_frc(cfraction,filecluster,jglobal,bgcopt,micinput,micparam,mi msite=msite + 1 endif if(jglobal==1) then - write(100,901) micparam%siteid(np),micparam%dataid(np),micparam%pft(np),micparam%bgctype(nP),micparam%top(np),micparam%bot(np) , & - fnpp(np),fanpp(np),fbnpp(np),fcna(np),fcnb(np),flignin(np),ftemp(np),fmoist(np),fclay(np),fsilt(np),fph(np), & - fporosity(np),fmatpot(np),fbulkd(np),fald(np),falo(np),ffed(np),ffeo(np),fsoc(np),fpoc(np),fmaoc(np) + write(100,901) micparam%siteid(np),micparam%dataid(np),micparam%pft(np), & + micparam%bgctype(nP),micparam%top(np),micparam%bot(np), & + fnpp(np),fanpp(np),fbnpp(np),fcna(np),fcnb(np),flignin(np), & + ftemp(np),fmoist(np),fclay(np),fsilt(np),fph(np), & + fporosity(np),fmatpot(np),fbulkd(np),fald(np),falo(np), & + ffed(np),ffeo(np),fsoc(np),fpoc(np),fmaoc(np) endif enddo ! "np=1,mp" diff --git a/src/mod_interface.f90 b/src/mod_interface.f90 index 4e80c8f..31729cb 100644 --- a/src/mod_interface.f90 +++ b/src/mod_interface.f90 @@ -2,7 +2,8 @@ module mesc_interface_module use mic_constant use mic_variable use mesc_inout_module, only: vmic_restart_read, vmic_restart_write, vmic_output_write - use mesc_model_module, only: rk4modelx, tridag, bioturb, bgc_fractions, mget, turnovert, desorpt, vmaxt, kmt, bgc_fractions_single, mget_single, turnovert_single, desorpt_single, vmaxt_single, kmt_single + use mesc_model_module, only: rk4modelx, tridag, bioturb, bgc_fractions, mget, turnovert, desorpt, vmaxt, kmt, & + bgc_fractions_single, mget_single, turnovert_single, desorpt_single, vmaxt_single, kmt_single implicit none contains @@ -533,7 +534,8 @@ subroutine vmicsoil_c14(jrestart,frestart_in,frestart_out,foutput,kinetics,isoc1 enddo ! "ip=1,mcpool" ! computing daily leaching loss from bottom-layer LWMC - cleachloss = micparam%tvac(np,ms) * sqrt(micinput%wavg(np,ms)/micinput%porosity(np,ms)) * miccpool%cpool(np,ms,7) * 24.0 + cleachloss = micparam%tvac(np,ms) * sqrt(micinput%wavg(np,ms)/micinput%porosity(np,ms)) & + * miccpool%cpool(np,ms,7) * 24.0 cleachloss = max(0.0,min(cleachloss,miccpool%cpool(np,ms,7))) micoutput%fluxcleach(np) = micoutput%fluxcleach(np) + cleachloss miccpool%cpool(np,ms,7) = miccpool%cpool(np,ms,7) - cleachloss @@ -1089,7 +1091,8 @@ subroutine vmicsoil_hwsd_gpu(jrestart,frestart_in,frestart_out,foutput,kinetics, enddo ! "ip=1,mcpool" ! computing daily leaching loss from bottom-layer LWMC - cleachloss = micparam%tvac(np,ms) * sqrt(micinput%wavg(np,ms)/micinput%porosity(np,ms)) * miccpool%cpool(np,ms,7) * 24.0 + cleachloss = micparam%tvac(np,ms) * sqrt(micinput%wavg(np,ms)/micinput%porosity(np,ms)) & + * miccpool%cpool(np,ms,7) * 24.0 cleachloss = max(0.0,min(cleachloss,miccpool%cpool(np,ms,7))) micoutput%fluxcleach(np) = micoutput%fluxcleach(np) + cleachloss miccpool%cpool(np,ms,7) = miccpool%cpool(np,ms,7) - cleachloss diff --git a/src/mod_model_core.f90 b/src/mod_model_core.f90 index bea2d63..b7d4449 100644 --- a/src/mod_model_core.f90 +++ b/src/mod_model_core.f90 @@ -441,8 +441,10 @@ subroutine turnovert(kinetics,micpxdef,micpdef,micparam,micinput) ! endif do ns=1,ms - micparam%tvmicR(np,ns) = micpxdef%xtvmic(nopt) * micpdef%tvmicR * tvref(np) * exp(0.3 * micparam%fmetave(np,ns)) * delt - micparam%tvmicK(np,ns) = micpxdef%xtvmic(nopt) * micpdef%tvmicK * tvref(np) * exp(0.1 * micparam%fmetave(np,ns)) * delt + micparam%tvmicR(np,ns) = micpxdef%xtvmic(nopt) * micpdef%tvmicR * tvref(np) & + * exp(0.3 * micparam%fmetave(np,ns)) * delt + micparam%tvmicK(np,ns) = micpxdef%xtvmic(nopt) * micpdef%tvmicK * tvref(np) & + * exp(0.1 * micparam%fmetave(np,ns)) * delt micparam%betamicR(np,ns) = micpdef%betamic * micpxdef%xbeta(nopt) micparam%betamicK(np,ns) = micpdef%betamic * micpxdef%xbeta(nopt) enddo @@ -578,7 +580,8 @@ subroutine bgc_fractions(micpxdef,micpdef,micparam,micinput) +drootx(np,ns)*(1.0-fmetroot(np))/micparam%xcnroot(np) & +dwoodx(np,ns)*(1.0-fmetwood(np))/micparam%xcnwood(np)) - micparam%fmetave(np,ns) = (dleafx(np,ns)*fmetleaf(np) + drootx(np,ns)*fmetroot(np) + dwoodx(np,ns) * fmetwood(np)) & + micparam%fmetave(np,ns) = (dleafx(np,ns)*fmetleaf(np) + drootx(np,ns)*fmetroot(np) & + + dwoodx(np,ns) * fmetwood(np)) & /(dleafx(np,ns) + drootx(np,ns) + dwoodx(np,ns) + 1.0e-10) ! else