From 183e91a62a90b8229cfec7f8ce69a9cbe5c5483d Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 13:57:48 -0600 Subject: [PATCH 01/17] Update definition.xml --- genie-main/src/xml-config/xml/definition.xml | 24 ++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/genie-main/src/xml-config/xml/definition.xml b/genie-main/src/xml-config/xml/definition.xml index 7ba4ed407..9712909af 100644 --- a/genie-main/src/xml-config/xml/definition.xml +++ b/genie-main/src/xml-config/xml/definition.xml @@ -1510,6 +1510,14 @@ n new/continuing embm + + 86400.0 + length of solar day in embm + + + 86164.0 + length of sidereal day in embm + 365.25 number of days per year embm @@ -2471,6 +2479,14 @@ n new/continuing goldstein + + 86400.0 + length of solar day in goldstein + + + 86164.0 + length of sidereal day in goldstein + 365.25 number of days per year goldstein @@ -2793,6 +2809,14 @@ n new/continuing seaice + + 86400.0 + length of solar day in goldsteinseaice + + + 86164.0 + length of sidereal day in goldsteinseaice + 365.25 number of days per year seaice From 219c3c02228f8957edd8e4d5243179b589ac18ab Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:05:43 -0600 Subject: [PATCH 02/17] Update initialise_goldstein.F --- .../src/fortran/initialise_goldstein.F | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/genie-goldstein/src/fortran/initialise_goldstein.F b/genie-goldstein/src/fortran/initialise_goldstein.F index 5ef8ab8e0..81233bd8c 100644 --- a/genie-goldstein/src/fortran/initialise_goldstein.F +++ b/genie-goldstein/src/fortran/initialise_goldstein.F @@ -204,7 +204,7 @@ subroutine initialise_goldstein( NAMELIST /ini_gold_nml/indir_name,outdir_name,rstdir_name NAMELIST /ini_gold_nml/igrid,world NAMELIST /ini_gold_nml/npstp,iwstp,itstp,ianav - NAMELIST /ini_gold_nml/conserv_per,ans,yearlen,nyear + NAMELIST /ini_gold_nml/conserv_per,ans,sodaylen,sidaylen,yearlen,nyear NAMELIST /ini_gold_nml/temp0,temp1,rel,scf,diff,adrag NAMELIST /ini_gold_nml/hosing,hosing_trend,nyears_hosing NAMELIST /ini_gold_nml/fwanomin,cmip_model,albocn @@ -289,7 +289,7 @@ subroutine initialise_goldstein( end if c SG > syr re-defined here - syr = yearlen * 86400 + syr = yearlen * sodaylen if (debug_init) print*, 'syr = ',syr c SG < @@ -341,6 +341,16 @@ subroutine initialise_goldstein( if (debug_init) print*,'new or continuing run ?' if (debug_init) print*,ans +c CL (01/15/24) : number of seconds per solar day +c sodaylen = 86400.0 + if (debug_init) print*,'number of seconds per solar day' + if (debug_init) print*,sodaylen + +c CL (01/15/24) : number of seconds per sidereal day +c sidaylen = 86164.0 + if (debug_init) print*,'number of seconds per sidereal day' + if (debug_init) print*,sidaylen + c AY (05/05/04) : number of days per GOLDSTEIN year (usually 365.25) c yearlen = 365.25 if (debug_init) print*,'number of days per GOLDSTEIN year' @@ -366,7 +376,8 @@ subroutine initialise_goldstein( rsc = 6.37e6 c dsc = 5e3 dsc = par_dsc - fsc = 2*7.2921e-5 +c CL (01/15/24) : used sidereal day length for Coriolis effect scaling factor + fsc = 4*pi/sidaylen gsc = 9.81 rh0sc = 1e3 rhosc = rh0sc*fsc*usc*rsc/gsc/dsc @@ -496,7 +507,7 @@ subroutine initialise_goldstein( if(nyear.gt.maxnyr)stop 'goldstein : nyear > maxnyr' if (debug_init) print*,nyear - tv = 86400.0*yearlen/(nyear*tsc) + tv = sodaylen*yearlen/(nyear*tsc) c dtatm = tv/ndta @@ -507,7 +518,7 @@ subroutine initialise_goldstein( dzu(1,k) = 0 dzu(2,k) = 0 enddo - if (debug_init) print*,'dimensional ocean timestep',tv*tsc/86400 + if (debug_init) print*,'dimensional ocean timestep',tv*tsc/sodaylen c set up grid c For variable (exponential) dz use ez0 > 0, else use ez0 < 0 @@ -1098,8 +1109,8 @@ subroutine initialise_goldstein( c drgf per gridpoint close to equator and in regions of c shallow water (k1>kmxdrg) ie land in the case kmxdrg=kmax c jeb = 1/2 width of equatorial region of maximum drag - - adrag = 1.0/(adrag*86400*fsc) +c CL (01/15/24) : used sidereal day length for inverse of frictional drag + adrag = 1.0/(adrag*sidaylen*fsc) c cross equator need * 4 if drag is constant ie if drgf=1 drgf = 3.0 kmxdrg = kmax/2 @@ -1363,7 +1374,7 @@ subroutine initialise_goldstein( if (debug_init) print*,'density variation scale',rhosc,' kg/m**3' if (debug_init) print*, & 'vertical velocity scale',usc*dsc/rsc,' m/s' - if (debug_init) print*,'time scale',tsc/86400/yearlen,' yrs' + if (debug_init) print*,'time scale',tsc/sodaylen/yearlen,' yrs' if (debug_init) print*,'overturning scale',dsc*usc*rsc*1e-6,' Sv' if (debug_init) print*, & 'vertical heat flux scale',dsc*usc*rh0sc*cpsc/rsc,' W/m**2' @@ -1460,7 +1471,7 @@ subroutine initialise_goldstein( rhoice = 913. c useful constant proportional to inverse timscale for surface freezing c rsictscsf = ch_ice*u_tau_ice*rho0*cpo_ice - rsictscsf = dsc*dz(kmax)*rho0*cpo_ice/(17.5*86400.0) + rsictscsf = dsc*dz(kmax)*rho0*cpo_ice/(17.5*sodaylen) c minimum average sea-ice thickness over a grid cell hmin = 0.01 rhmin = 1.0/hmin From 67a0d99bdbb6f1b4ed3bc4a557224ed409b555a1 Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:08:09 -0600 Subject: [PATCH 03/17] Update initialise_seaice.F --- .../src/fortran/initialise_seaice.F | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/genie-goldsteinseaice/src/fortran/initialise_seaice.F b/genie-goldsteinseaice/src/fortran/initialise_seaice.F index d186a7542..bfaf31281 100644 --- a/genie-goldsteinseaice/src/fortran/initialise_seaice.F +++ b/genie-goldsteinseaice/src/fortran/initialise_seaice.F @@ -115,7 +115,7 @@ subroutine initialise_seaice( NAMELIST /ini_sic_nml/indir_name,outdir_name,rstdir_name NAMELIST /ini_sic_nml/igrid,world NAMELIST /ini_sic_nml/npstp,iwstp,itstp,ianav,conserv_per - NAMELIST /ini_sic_nml/ans,yearlen,nyear,diffsic,lout + NAMELIST /ini_sic_nml/ans,sodaylen,sidaylen,yearlen,nyear,diffsic,lout NAMELIST /ini_sic_nml/netin,netout,ascout,filenetin NAMELIST /ini_sic_nml/dirnetout,lin NAMELIST /ini_sic_nml/dosc,impsic,debug_init,debug_end,debug_loop @@ -217,6 +217,16 @@ subroutine initialise_seaice( if (debug_init) print*,'new or continuing run ?' if (debug_init) print*,ans +c CL (01/15/24) : number of seconds per solar day +c sodaylen = 86400.0 + if (debug_init) print*,'number of seconds per solar day' + if (debug_init) print*,sodaylen + +c CL (01/15/24) : number of seconds per sidereal day +c sidaylen = 86164.0 + if (debug_init) print*,'number of seconds per sidereal day' + if (debug_init) print*,sidaylen + c AY (05/05/04) : number of days per GOLDSTEIN sea-ice year (usually 365.25) c yearlen = 365.25 if (debug_init) print*,'number of days per GOLDSTEIN sea-ice year' @@ -235,7 +245,8 @@ subroutine initialise_seaice( usc = 0.05 rsc = 6.37e6 dsc = 5e3 - fsc = 2*7.2921e-5 +c CL (01/15/24) : used sidereal day length for Coriolis effect scaling factor + fsc = 4*pi/sidaylen gsc = 9.81 rh0sc = 1e3 rhosc = rh0sc*fsc*usc*rsc/gsc/dsc @@ -334,11 +345,11 @@ subroutine initialise_seaice( c v2 seasonality if (debug_init) print*,'timesteps per year' if (debug_init) print*,nyear - tv = 86400.0*yearlen/(nyear*tsc) + tv = sodaylen*yearlen/(nyear*tsc) c AY (13/01/04) : oops! left this out dtsic = tv - if (debug_init) print*,'sea-ice timestep in days',tv*tsc/86400 + if (debug_init) print*,'sea-ice timestep in days',tv*tsc/sodaylen rdtdim = 1.0/(tsc*dtsic) if (debug_init) print*,'rdtdim = ',rdtdim @@ -425,7 +436,7 @@ subroutine initialise_seaice( c read some scalings c AY (11/12/03) : year length inconsistent here - corrected to 365.25 - ryear = 1.0/(yearlen*86400) + ryear = 1.0/(yearlen*sodaylen) c more constants From 4eda34db3be2f286c5e652f1c9bd069beb04a2e9 Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:10:21 -0600 Subject: [PATCH 04/17] Update initialise_embm.F --- genie-embm/src/fortran/initialise_embm.F | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/genie-embm/src/fortran/initialise_embm.F b/genie-embm/src/fortran/initialise_embm.F index 36328945e..2f7cc33e7 100644 --- a/genie-embm/src/fortran/initialise_embm.F +++ b/genie-embm/src/fortran/initialise_embm.F @@ -214,7 +214,7 @@ subroutine initialise_embm(alon1,alat1,alon2,alat2, NAMELIST /ini_embm_nml/xu_wstress,yu_wstress,xv_wstress NAMELIST /ini_embm_nml/yv_wstress,u_wspeed,v_wspeed NAMELIST /ini_embm_nml/npstp,iwstp,itstp,ianav,ans - NAMELIST /ini_embm_nml/yearlen,nyear,ndta,scf + NAMELIST /ini_embm_nml/sodaylen,sidaylen,yearlen,nyear,ndta,scf NAMELIST /ini_embm_nml/diffamp,diffwid,difflin NAMELIST /ini_embm_nml/betaz,betam NAMELIST /ini_embm_nml/radfor_scl_co2,radfor_pc_co2_rise @@ -430,6 +430,16 @@ subroutine initialise_embm(alon1,alat1,alon2,alat2, if (debug_init) print*,'new or continuing run ?' if (debug_init) print*,ans +c CL (01/15/24) : number of seconds per solar day +c sodaylen = 86400.0 + if (debug_init) print*,'number of seconds per solar day' + if (debug_init) print*,sodaylen + +c CL (01/15/24) : number of seconds per sidereal day +c sidaylen = 86164.0 + if (debug_init) print*,'number of seconds per sidereal day' + if (debug_init) print*,sidaylen + c AY (05/05/04) : number of days per EMBM year (usually 365.25) c yearlen = 365.25 if (debug_init) print*,'number of days per EMBM year' @@ -562,8 +572,8 @@ subroutine initialise_embm(alon1,alat1,alon2,alat2, if (debug_init) print*,'timesteps per year and A/O dt ratio' if (debug_init) print*,nyear,ndta if(nyear.gt.maxnyr)stop 'embm : nyear > maxnyr' - tv = 86400.0*yearlen/(nyear*tsc) - ryear = 1.0/(yearlen*86400) + tv = sodaylen*yearlen/(nyear*tsc) + ryear = 1.0/(yearlen*sodaylen) dtatm = tv/ndta if (debug_init) print*, 'embm timestep (s) =',dtatm*tsc @@ -577,7 +587,7 @@ subroutine initialise_embm(alon1,alat1,alon2,alat2, c dzu(1,k) = 0 c dzu(2,k) = 0 enddo - if (debug_init) print*,'dimensional ocean timestep',tv*tsc/86400 + if (debug_init) print*,'dimensional ocean timestep',tv*tsc/sodaylen if (debug_init) print*,'dimensionless O/A timesteps',tv,dtatm rdtdim = 1.0/(tsc*dt(kmax)) @@ -1067,8 +1077,8 @@ subroutine initialise_embm(alon1,alat1,alon2,alat2, c diffmod0 = 60e6 diffmod0 = 0. - ppmin = 2./(yearlen*86400.) - ppmax = 4./(yearlen*86400.) + ppmin = 2./(yearlen*sodaylen) + ppmax = 4./(yearlen*sodaylen) c nre simpler diffusivity @@ -1228,7 +1238,7 @@ subroutine initialise_embm(alon1,alat1,alon2,alat2, c rsictscsf = ch_ice*u_tau_ice*rho0sea*cpo_ice rsictscsf = ch_ice*u_tau_ice*rho0*cpo_ice if (debug_init) print*,'rsictscsf = ',rsictscsf - rsictscsf = dsc*dz(kmax)*rho0*cpo_ice/(17.5*86400.0) + rsictscsf = dsc*dz(kmax)*rho0*cpo_ice/(17.5*sodaylen) if (debug_init) print*,'rsictscsf = ',rsictscsf c minimum average sea-ice thickness over a grid cell hmin = 0.01 From 3cba4a8207a4423bd800cd152bc3f5705c5b10bc Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:12:01 -0600 Subject: [PATCH 05/17] Update ocean.cmn --- genie-goldstein/src/fortran/ocean.cmn | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/genie-goldstein/src/fortran/ocean.cmn b/genie-goldstein/src/fortran/ocean.cmn index 92f450eed..ef972a654 100644 --- a/genie-goldstein/src/fortran/ocean.cmn +++ b/genie-goldstein/src/fortran/ocean.cmn @@ -127,6 +127,14 @@ c AY (29/11/04) : ASURF grid cell area real asurf(maxj) common /ocn_asurf/asurf +c CL (01/15/24) : seconds per solar day (necessary for GENIE) + real sodaylen + common /ocn_sodaylen/sodaylen + +c CL (01/15/24) : seconds per sidereal day (necessary for GENIE) + real sidaylen + common /ocn_sidaylen/sidaylen + c AY (08/04/04) : days per year (necessary for GENIE) real yearlen common /ocn_yearlen/yearlen From 669e5227456dcc071337bfdf363bf22ee714d7da Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:12:27 -0600 Subject: [PATCH 06/17] Update seaice.cmn --- genie-goldsteinseaice/src/fortran/seaice.cmn | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/genie-goldsteinseaice/src/fortran/seaice.cmn b/genie-goldsteinseaice/src/fortran/seaice.cmn index 7635a2367..51be6a6b9 100644 --- a/genie-goldsteinseaice/src/fortran/seaice.cmn +++ b/genie-goldsteinseaice/src/fortran/seaice.cmn @@ -58,6 +58,14 @@ c AY (23/09/04) : sea-ice albedo added (for restarts) 3 ,varicedy,variceth ! yka101004 4 ,maxalbice,scale_oheat +c CL (01/15/24) : seconds per solar day (necessary for GENIE) + real sodaylen + common /sic_sodaylen/sodaylen + +c CL (01/15/24) : seconds per sidereal day (necessary for GENIE) + real sidaylen + common /sic_sidaylen/sidaylen + c AY (08/04/04) : days per year (necessary for GENIE) real yearlen common /sic_yearlen/yearlen From 4012e1057caebd9fe29f9205d353cb4b55915def Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:13:43 -0600 Subject: [PATCH 07/17] Update embm.cmn --- genie-embm/src/fortran/embm.cmn | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/genie-embm/src/fortran/embm.cmn b/genie-embm/src/fortran/embm.cmn index f870758a5..a730f5c15 100644 --- a/genie-embm/src/fortran/embm.cmn +++ b/genie-embm/src/fortran/embm.cmn @@ -160,9 +160,17 @@ c adjustable freshwater forcing parameters real extra0,range0,extra1a,extra1b,extra1c common /embm_fwf_real/ extra0,range0,extra1a,extra1b,extra1c +c CL (01/15/24) : seconds per solar day (necessary for GENIE) + real sodaylen + common /embm_sodaylen/sodaylen + +c CL (01/15/24) : seconds per sidereal day (necessary for GENIE) + real sidaylen + common /embm_sidaylen/sidaylen + c AY (08/04/04) : days per year (necessary for GENIE) real yearlen - common /ocn_yearlen/yearlen + common /embm_yearlen/yearlen c v2 seasonal diagnostics c AP (03/08/06) : Addition of avg precipitated atm. humidity From 13c8973655d32051d46e4de3d22c48c6f4f4c754 Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:15:43 -0600 Subject: [PATCH 08/17] Update inm_netcdf.F --- genie-goldstein/src/fortran/inm_netcdf.F | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/genie-goldstein/src/fortran/inm_netcdf.F b/genie-goldstein/src/fortran/inm_netcdf.F index de7e726b3..317ab0494 100644 --- a/genie-goldstein/src/fortran/inm_netcdf.F +++ b/genie-goldstein/src/fortran/inm_netcdf.F @@ -31,7 +31,7 @@ subroutine inm_netcdf(lrestart_genie) logical lrestart_genie - timestep=24.0*60.0*60.0*yearlen/real(nyear) + timestep=sodaylen*yearlen/real(nyear) fnamein=trim(filenetin) @@ -77,7 +77,7 @@ subroutine inm_netcdf(lrestart_genie) day_rest=iday ioffset_rest=mod(ioffset_rest,nint(yearlen)) - day_rest=day_rest+timestep/(24*60*60.) + day_rest=day_rest+timestep/sodaylen c This bit so that we don't get too far out in our count.... c Anchor to a day if we start drifting. c Means timestep can never be less than 1/1000 of a day!!!! From 49fd1ffb65da8438a6a155662c156b15c1904a4c Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:17:15 -0600 Subject: [PATCH 09/17] Update netcdf.F --- genie-goldstein/src/fortran/netcdf.F | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/genie-goldstein/src/fortran/netcdf.F b/genie-goldstein/src/fortran/netcdf.F index 930eeb4d6..30d5f324b 100644 --- a/genie-goldstein/src/fortran/netcdf.F +++ b/genie-goldstein/src/fortran/netcdf.F @@ -43,7 +43,7 @@ SUBROUTINE INI_NETCDF_OCN(istep,imode) c c AY (17/03/04) : alon1, etc. now calculated in initialise_ocean.F c - day=(istep*dt(1)*tsc/86400.0) + day=(istep*dt(1)*tsc/sodaylen) c AY (17/03/04) : 365.25 days per GOLDSTEIN year (not 360.0) c AY (23/03/04) : small constant added to day calculation for round-off c reasons (i.e. 365.2499 vs. 365.25) From 72927373b7e2746ba25026df8e18a0d47a021677 Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:18:37 -0600 Subject: [PATCH 10/17] Update surf_ocn_sic.F --- genie-goldstein/src/fortran/surf_ocn_sic.F | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/genie-goldstein/src/fortran/surf_ocn_sic.F b/genie-goldstein/src/fortran/surf_ocn_sic.F index 7ef07201a..ceeef78eb 100644 --- a/genie-goldstein/src/fortran/surf_ocn_sic.F +++ b/genie-goldstein/src/fortran/surf_ocn_sic.F @@ -214,9 +214,9 @@ subroutine surf_ocn_sic(istep, endif enddo enddo - diff_latent=diff_latent*3600.0*24.0*yearlen*rsc*rsc*4.0*pi/ + diff_latent=diff_latent*sodaylen*yearlen*rsc*rsc*4.0*pi/ : real(nyear) - diff_sensible=diff_sensible*3600.0*24.0*yearlen*rsc*rsc*4.0*pi/ + diff_sensible=diff_sensible*sodaylen*yearlen*rsc*rsc*4.0*pi/ : real(nyear) endif c-DJL @@ -776,9 +776,9 @@ subroutine surf_ocn_sic(istep, endif enddo enddo - diff_netsolar=diff_netsolar*3600.0*24.0*yearlen*rsc*rsc*4.0*pi/ + diff_netsolar=diff_netsolar*sodaylen*yearlen*rsc*rsc*4.0*pi/ : real(nyear) - diff_netlong=diff_netlong*3600.0*24.0*yearlen*rsc*rsc*4.0*pi/ + diff_netlong=diff_netlong*sodaylen*yearlen*rsc*rsc*4.0*pi/ : real(nyear) test_energy_seaice=real( : test_energy_seaice-diff_latent-diff_sensible- From 61c55c952e9a52128cd65526004942ab89c977f7 Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:19:41 -0600 Subject: [PATCH 11/17] Update gold_seaice.F --- genie-goldsteinseaice/src/fortran/gold_seaice.F | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/genie-goldsteinseaice/src/fortran/gold_seaice.F b/genie-goldsteinseaice/src/fortran/gold_seaice.F index 3a17b6d1d..5e741c24e 100644 --- a/genie-goldsteinseaice/src/fortran/gold_seaice.F +++ b/genie-goldsteinseaice/src/fortran/gold_seaice.F @@ -313,7 +313,7 @@ subroutine gold_seaice(istep, c THE ENERGY BIT (HERE AND IN SURF_OCN_SIC) IS WELL-DODGY AND c IS A COMPLETE FIX. SEE DJL FOR MORE INFO. if (mod(istep,conserv_per).eq.0) then - tv = 86400.0*yearlen/(nyear*tsc) + tv = sodaylen*yearlen/(nyear*tsc) vsc = dphi*rsc*rsc tot_energy=0.0 tot_water=0.0 From f305ce1eca4cd42c9b7f7b986d4c7b8c164fcd1d Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:21:37 -0600 Subject: [PATCH 12/17] Update inm_netcdf_sic.F --- genie-goldsteinseaice/src/fortran/inm_netcdf_sic.F | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/genie-goldsteinseaice/src/fortran/inm_netcdf_sic.F b/genie-goldsteinseaice/src/fortran/inm_netcdf_sic.F index fc8499f8c..342df0b2a 100644 --- a/genie-goldsteinseaice/src/fortran/inm_netcdf_sic.F +++ b/genie-goldsteinseaice/src/fortran/inm_netcdf_sic.F @@ -28,7 +28,7 @@ subroutine inm_netcdf_sic integer i,j,l,icell real tmp_val(4) - timestep=24.0*60.0*60.0*yearlen/real(nyear) + timestep=sodaylen*yearlen/real(nyear) fnamein=trim(filenetin) @@ -68,7 +68,7 @@ subroutine inm_netcdf_sic day_rest=iday ioffset_rest=mod(ioffset_rest,nint(yearlen)) - day_rest=day_rest+timestep/(24*60*60.) + day_rest=day_rest+timestep/sodaylen c This bit so that we don't get too far out in our count.... c Anchor to a day if we start drifting. c Means timestep can never be less than 1/1000 of a day!!!! From 7008094f5436cd4cd673df379c524b0324a98ef8 Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:22:13 -0600 Subject: [PATCH 13/17] Update netcdf_sic.F --- genie-goldsteinseaice/src/fortran/netcdf_sic.F | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/genie-goldsteinseaice/src/fortran/netcdf_sic.F b/genie-goldsteinseaice/src/fortran/netcdf_sic.F index fe777d365..42f33e9bc 100644 --- a/genie-goldsteinseaice/src/fortran/netcdf_sic.F +++ b/genie-goldsteinseaice/src/fortran/netcdf_sic.F @@ -40,7 +40,7 @@ SUBROUTINE INI_NETCDF_SIC(istep,imode) c c AY (17/03/04) : alon1, etc. now calculated in initialise_ocean.F c - day=istep*dtsic*tsc/86400.0 + day=istep*dtsic*tsc/sodaylen c AY (17/03/04) : 365.25 days per GOLDSTEIN year (not 360.0) c AY (23/03/04) : small constant added to day calculation for round-off c reasons (i.e. 365.2499 vs. 365.25) From ba88db8a9fc5f7855a1d47aff7cfb9d7663912ac Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:23:08 -0600 Subject: [PATCH 14/17] Update surflux_goldstein_seaice.F --- genie-goldsteinseaice/src/fortran/surflux_goldstein_seaice.F | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/genie-goldsteinseaice/src/fortran/surflux_goldstein_seaice.F b/genie-goldsteinseaice/src/fortran/surflux_goldstein_seaice.F index d31aadc3c..4c862824b 100644 --- a/genie-goldsteinseaice/src/fortran/surflux_goldstein_seaice.F +++ b/genie-goldsteinseaice/src/fortran/surflux_goldstein_seaice.F @@ -137,7 +137,7 @@ subroutine surflux_goldstein_seaice( !melting factor rrholf=1.0/(rhoice*hlf) !useful constant for surface freezing (timescale 17.5 days) - rsictscsf=dsc*dz(kmax)*rho0*cpo_ice/(17.5*86400.) + rsictscsf=dsc*dz(kmax)*rho0*cpo_ice/(17.5*sodaylen) rsictscsf=scale_oheat*rsictscsf !INITIALISE VARIABLES From a8d482dd8934b720803e3cd681370a0e35586240 Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:24:34 -0600 Subject: [PATCH 15/17] Update inm_netcdf_embm.F --- genie-embm/src/fortran/inm_netcdf_embm.F | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/genie-embm/src/fortran/inm_netcdf_embm.F b/genie-embm/src/fortran/inm_netcdf_embm.F index d4426fca4..443cbeaec 100644 --- a/genie-embm/src/fortran/inm_netcdf_embm.F +++ b/genie-embm/src/fortran/inm_netcdf_embm.F @@ -28,7 +28,7 @@ subroutine inm_netcdf_embm real area c timestep=24.0*60.0*60.0*yearlen/real(nyear) - timestep=24.0*60.0*60.0*yearlen/real(nyear*ndta) + timestep=sodaylen*yearlen/real(nyear*ndta) c AY (06/10/04) : append input filename to input directory name c fnamein=trim(indir_name(1:lenin))//trim(filenetin) @@ -66,7 +66,7 @@ subroutine inm_netcdf_embm day_rest=iday ioffset_rest=mod(ioffset_rest,nint(yearlen)) - day_rest=day_rest+timestep/(24*60*60.) + day_rest=day_rest+timestep/sodaylen c This bit so that we don't get too far out in our count.... c Anchor to a day if we start drifting. c Means timestep can never be less than 1/1000 of a day!!!! From e2acba10736749181866a2bc69dc3b1caae2b89b Mon Sep 17 00:00:00 2001 From: Camillalxy98 <67026693+Camillalxy98@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:25:05 -0600 Subject: [PATCH 16/17] Update netcdf_embm.F --- genie-embm/src/fortran/netcdf_embm.F | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/genie-embm/src/fortran/netcdf_embm.F b/genie-embm/src/fortran/netcdf_embm.F index 72b59741b..e8cbc4af6 100644 --- a/genie-embm/src/fortran/netcdf_embm.F +++ b/genie-embm/src/fortran/netcdf_embm.F @@ -38,7 +38,7 @@ SUBROUTINE INI_NETCDF_EMBM(istep,imode) c c AY (17/03/04) : alon1, etc. now calculated in initialise_ocean.F c - day=istep*dtatm*tsc/86400.0 + day=istep*dtatm*tsc/sodaylen c AY (17/03/04) : 365.25 days per GOLDSTEIN year (not 360.0) c AY (23/03/04) : small constant added to day calculation for round-off c reasons (i.e. 365.2499 vs. 365.25) From 770f75fd23e2e2fb0407a4cbda6350a181571542 Mon Sep 17 00:00:00 2001 From: derpycode Date: Sun, 3 Mar 2024 18:52:42 -0800 Subject: [PATCH 17/17] added check for sidereal and solar days being different, otherwise use original code for backwards compatabilty --- genie-goldstein/src/fortran/initialise_goldstein.F | 11 ++++++++--- genie-goldsteinseaice/src/fortran/initialise_seaice.F | 8 +++++++- genie-main/src/xml-config/xml/definition.xml | 10 +++++----- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/genie-goldstein/src/fortran/initialise_goldstein.F b/genie-goldstein/src/fortran/initialise_goldstein.F index 81233bd8c..714e85229 100644 --- a/genie-goldstein/src/fortran/initialise_goldstein.F +++ b/genie-goldstein/src/fortran/initialise_goldstein.F @@ -287,7 +287,7 @@ subroutine initialise_goldstein( close(56,iostat=ios) call check_iostat(ios,__LINE__,__FILE__) end if - + c SG > syr re-defined here syr = yearlen * sodaylen if (debug_init) print*, 'syr = ',syr @@ -376,8 +376,13 @@ subroutine initialise_goldstein( rsc = 6.37e6 c dsc = 5e3 dsc = par_dsc -c CL (01/15/24) : used sidereal day length for Coriolis effect scaling factor - fsc = 4*pi/sidaylen +c CL (01/15/24) : used sidereal day length for Coriolis effect scaling factor +c AR (24/03/03) : check for sidereal and solar days being different, otherwise use original code for backwards compatabilty + if (abs(sodaylen-sidaylen).gt.0.001)then + fsc = 4*pi/sidaylen + else + fsc = 2*7.2921e-5 + endif gsc = 9.81 rh0sc = 1e3 rhosc = rh0sc*fsc*usc*rsc/gsc/dsc diff --git a/genie-goldsteinseaice/src/fortran/initialise_seaice.F b/genie-goldsteinseaice/src/fortran/initialise_seaice.F index bfaf31281..37998a4ae 100644 --- a/genie-goldsteinseaice/src/fortran/initialise_seaice.F +++ b/genie-goldsteinseaice/src/fortran/initialise_seaice.F @@ -246,7 +246,13 @@ subroutine initialise_seaice( rsc = 6.37e6 dsc = 5e3 c CL (01/15/24) : used sidereal day length for Coriolis effect scaling factor - fsc = 4*pi/sidaylen +c AR (24/03/03) : check for sidereal and solar days being different, otherwise use original code for backwards compatabilty + if (abs(sodaylen-sidaylen).gt.0.001)then + fsc = 4*pi/sidaylen + else + fsc = 2*7.2921e-5 + endif + fsc = 2*7.2921e-5 gsc = 9.81 rh0sc = 1e3 rhosc = rh0sc*fsc*usc*rsc/gsc/dsc diff --git a/genie-main/src/xml-config/xml/definition.xml b/genie-main/src/xml-config/xml/definition.xml index 8f765f867..82047b32d 100644 --- a/genie-main/src/xml-config/xml/definition.xml +++ b/genie-main/src/xml-config/xml/definition.xml @@ -2484,8 +2484,8 @@ length of solar day in goldstein - 86164.0 - length of sidereal day in goldstein + 86400.0 + length of sidereal day in goldstein -- 86400.0 is for backwards compatablity; 86164.0 is the 'real' value 365.25 @@ -2814,8 +2814,8 @@ length of solar day in goldsteinseaice - 86164.0 - length of sidereal day in goldsteinseaice + 86400.0 + length of sidereal day in goldsteinseaice -- 86400.0 is for backwards compatablity; 86164.0 is the 'real' value 365.25 @@ -9328,4 +9328,4 @@ par_bio_red_PC_alpha2 scales the offset of 6.0e-3 of Galbraith & Martiny, 2015 C - \ No newline at end of file +