#!/bin/bash set -e PROJECT_ROOT="c:/Users/fmq/Documents/astro/SpectraRust" m_dir="$PROJECT_ROOT/src/tlusty/math" dst_dir="$PROJECT_ROOT/src/tlusty" dust" new_dir="$m_dir/physics" new_dir="$m_dir/equilibrium" new_dir="$m_dir/linearization" new_dir="$m_dir/acceleration" new_dir="$m_dir/atmosphere" new_dir="$m_dir/spectral" new_dir="$m_dir/model_init" new_dir="$m_dir/io" new_dir="$m_dir/utils" mkdir -p "$m_dir/math/special" mkdir -p "$m_dir/math/solvers" mkdir -p "$m_dir/math/interpolate" mkdir -p "$m_dir/physics/opacity" mkdir -p "$m_dir/physics/collision" mkdir -p "$m_dir/physics/line_profile" mkdir -p "$m_dir/physics/radiative" mkdir -p "$m_dir/physics/thermodynamics" mkdir -p "$m_dir/physics/hydrogen" mkdir -p "$m_dir/equilibrium/statistical" mkdir -p "$m_dir/equilibrium/partition" mkdir -p "$m_dir/linearization/matrix" mkdir -p "$m_dir/linearization/solver" mkdir -p "$m_dir/linearization/rybicki" mkdir -p "$m_dir/acceleration/ali" mkdir -p "$m_dir/acceleration/convergence" mkdir -p "$m_dir/atmosphere/convection" mkdir -p "$m_dir/atmosphere/temperature" mkdir -p "$m_dir/atmosphere/depth" mkdir -p "$m_dir/atmosphere/hydrostatic" mkdir -p "$m_dir/atmosphere/grey" mkdir - p "$m_dir/atmosphere/odf" mkdir -p "$m_dir/spectral" mkdir -p "$m_dir/model_init" mkdir -p "$m_dir/io" mkdir -p "$m_dir/utils" echo "Created directories" # ============================================================ # Function to move a module # ============================================================ move_module() { local src="$1" local dst="$2" if [ -f "$src" ]; then mkdir -p "$dst" mv "$src" "$dst" echo "Moved: $src -> $dst" else echo "Skip: $src (not found)" fi } # ============================================================ # math/special # ============================================================ move_module "expo.rs" "$m_dir/math/special" move_module "expint.rs" "$m_dir/math/special" move_module "expinx.rs" "$m_dir/math/special" move_module "erfcx.rs" "$m_dir/math/special" move_module "gauleg.rs" "$m_dir/math/special" # ============================================================ # math/solvers # ============================================================ move_module "tridag.rs" "$m_dir/math/solvers" move_module "lineqs.rs" "$m_dir/math/solvers" move_module "minv3.rs" "$m_dir/math/solvers" move_module "matinv.rs" "$m_dir/math/solvers" move_module "cubic.rs" "$m_dir/math/solvers" move_module "quartc.rs" "$m_dir/math/solvers" move_module "solve.rs" "$m_dir/math/solvers" move_module "solves.rs" "$m_dir/math/solvers" move_module "laguer.rs" "$m_dir/math/solvers" move_module "ubeta.rs" "$m_dir/math/solvers" move_module "psolve.rs" "$m_dir/math/solvers" move_module "levsol.rs" "$m_dir/math/solvers" # ============================================================ # math/interpolate # ============================================================ move_module "lagran.rs" "$m_dir/math/interpolate" move_module "yint.rs" "$m_dir/math/interpolate" move_module "ylintp.rs" "$m_dir/math/interpolate" move_module "interpolate.rs" "$m_dir/math/interpolate" move_module "tabint.rs" "$m_dir/math/interpolate" move_module "locate.rs" "$m_dir/math/interpolate" move_module "indexx.rs" "$m_dir/math/interpolate" # ============================================================ # physics/opacity # ============================================================ move_module "opacf0.rs" "$m_dir/physics/opacity" move_module "opacf1.rs" "$m_dir/physics/opacity" move_module "opacfa.rs" "$m_dir/physics/opacity" move_module "opacfd.rs" "$m_dir/physics/opacity" move_module "opacfl.rs" "$m_dir/physics/opacity" move_module "opadd.rs" "$m_dir/physics/opacity" move_module "opadd0.rs" "$m_dir/physics/opacity" move_module "opahst.rs" "$m_dir/physics/opacity" move_module "opaini.rs" "$m_dir/physics/opacity" move_module "opctab.rs" "$m_dir/physics/opacity" move_module "opdata.rs" "$m_dir/physics/opacity" move_module "opfrac.rs" "$m_dir/physics/opacity" move_module "traini.rs" "$m_dir/physics/opacity" move_module "opact1.rs" "$m_dir/physics/opacity" move_module "opactd.rs" "$m_dir/physics/opacity" move_module "opactr.rs" "$m_dir/physics/opacity" move_module "meanop.rs" "$m_dir/physics/opacity" move_module "meanopt.rs" "$m_dir/physics/opacity" # ============================================================ # physics/collision # ============================================================ move_module "colh.rs" "$m_dir/physics/collision" move_module "colhe.rs" "$m_dir/physics/collision" move_module "colis.rs" "$m_dir/physics/collision" move_module "collhe.rs" "$m_dir/physics/collision" move_module "butler.rs" "$m_dir/physics/collision" move_module "ceh12.rs" "$m_dir/physics/collision" move_module "cheav.rs" "$m_dir/physics/collision" move_module "cheavj.rs" "$m_dir/physics/collision" move_module "cspec.rs" "$m_dir/physics/collision" move_module "cion.rs" "$m_dir/physics/collision" move_module "irc.rs" "$m_dir/physics/collision" move_module "szirc.rs" "$m_dir/physics/collision" move_module "dielrc.rs" "$m_dir/physics/collision" move_module "dietot.rs" "$m_dir/physics/collision" move_module "ctdata.rs" "$m_dir/physics/collision" # ============================================================ # physics/line_profile # ============================================================ move_module "voigt.rs" "$m_dir/physics/line_profile" move_module "voigte.rs" "$m_dir/physics/line_profile" move_module "profil.rs" "$m_dir/physics/line_profile" move_module "profsp.rs" "$m_dir/physics/line_profile" move_module "xk2dop.rs" "$m_dir/physics/line_profile" move_module "stark0.rs" "$m_dir/physics/line_profile" move_module "starka.rs" "$m_dir/physics/line_profile" move_module "divstr.rs" "$m_dir/physics/line_profile" move_module "inthyd.rs" "$m_dir/physics/line_profile" move_module "intlem.rs" "$m_dir/physics/line_profile" move_module "intxen.rs" "$m_dir/physics/line_profile" move_module "lemini.rs" "$m_dir/physics/line_profile" move_module "gomini.rs" "$m_dir/physics/line_profile" move_module "allard.rs" "$m_dir/physics/line_profile" move_module "allardt.rs" "$m_dir/physics/line_profile" move_module "quasim.rs" "$m_dir/physics/line_profile" move_module "dopgam.rs" "$m_dir/physics/line_profile" move_module "gami.rs" "$m_dir/physics/line_profile" move_module "gamsp.rs" "$m_dir/physics/line_profile" move_module "gvdw.rs" "$m_dir/physics/line_profile" # ============================================================ # physics/radiative # ============================================================ move_module "rteang.rs" "$m_dir/physics/radiative" move_module "rtecf0.rs" "$m_dir/physics/radiative" move_module "rtecf1.rs" "$m_dir/physics/radiative" move_module "rtedf1.rs" "$m_dir/physics/radiative" move_module "rtedf2.rs" "$m_dir/physics/radiative" move_module "rtefe2.rs" "$m_dir/physics/radiative" move_module "rtefr1.rs" "$m_dir/physics/radiative" move_module "rteint.rs" "$m_dir/physics/radiative" move_module "rtesol.rs" "$m_dir/physics/radiative" move_module "rte_sc.rs" "$m_dir/physics/radiative" move_module "compt0.rs" "$m_dir/physics/radiative" move_module "comset.rs" "$m_dir/physics/radiative" move_module "angset.rs" "$m_dir/physics/radiative" move_module "inicom.rs" "$m_dir/physics/radiative" move_module "rtecmc.rs" "$m_dir/physics/radiative" move_module "rtecmu.rs" "$m_dir/physics/radiative" move_module "rtecom.rs" "$m_dir/physics/radiative" move_module "prd.rs" "$m_dir/physics/radiative" move_module "prdin.rs" "$m_dir/physics/radiative" move_module "prdini.rs" "$m_dir/physics/radiative" move_module "radtot.rs" "$m_dir/physics/radiative" move_module "radpre.rs" "$m_dir/physics/radiative" # ============================================================ # physics/thermodynamics # ============================================================ move_module "state.rs" "$m_dir/physics/thermodynamics" move_module "rhoeos.rs" "$m_dir/physics/thermodynamics" move_module "rhonen.rs" "$m_dir/physics/thermodynamics" move_module "eldens.rs" "$m_dir/physics/thermodynamics" move_module "elcor.rs" "$m_dir/physics/thermodynamics" move_module "eldenc.rs" "$m_dir/physics/thermodynamics" move_module "entene.rs" "$m_dir/physics/thermodynamics" move_module "trmder.rs" "$m_dir/physics/thermodynamics" move_module "trmdrt.rs" "$m_dir/physics/thermodynamics" move_module "setdrt.rs" "$m_dir/physics/thermodynamics" move_module "prsent.rs" "$m_dir/physics/thermodynamics" move_module "pgset.rs" "$m_dir/physics/thermodynamics" move_module "betah.rs" "$m_dir/physics/thermodynamics" # ============================================================ # physics/hydrogen # ============================================================ move_module "wn.rs" "$m_dir/physics/hydrogen" move_module "wnstor.rs" "$m_dir/physics/hydrogen" move_module "lymlin.rs" "$m_dir/physics/hydrogen" move_module "ghydop.rs" "$m_dir/physics/hydrogen" # ============================================================ # equilibrium/statistical # ============================================================ move_module "rates1.rs" "$m_dir/equilibrium/statistical" move_module "ratmat.rs" "$m_dir/equilibrium/statistical" move_module "ratmal.rs" "$m_dir/equilibrium/statistical" move_module "ratsp1.rs" "$m_dir/equilibrium/statistical" move_module "steqeq.rs" "$m_dir/equilibrium/statistical" move_module "reflev.rs" "$m_dir/equilibrium/statistical" move_module "sabolf.rs" "$m_dir/equilibrium/statistical" move_module "newpop.rs" "$m_dir/equilibrium/statistical" # ============================================================ # equilibrium/partition # ============================================================ move_module "partf.rs" "$m_dir/equilibrium/partition" move_module "mpartf.rs" "$m_dir/equilibrium/partition" move_module "pfcno.rs" "$m_dir/equilibrium/partition" move_module "pffe.rs" "$m_dir/equilibrium/partition" move_module "pfheav.rs" "$m_dir/equilibrium/partition" move_module "pfni.rs" "$m_dir/equilibrium/partition" move_module "pfspec.rs" "$m_dir/equilibrium/partition" move_module "tiopf.rs" "$m_dir/equilibrium/partition" # ============================================================ # linearization/matrix # ============================================================ move_module "bhe.rs" "$m_dir/linearization/matrix" move_module "bre.rs" "$m_dir/linearization/matrix" move_module "brez.rs" "$m_dir/linearization/matrix" move_module "brte.rs" "$m_dir/linearization/matrix" move_module "brtez.rs" "$m_dir/linearization/matrix" move_module "bpop.rs" "$m_dir/linearization/matrix" move_module "bpopc.rs" "$m_dir/linearization/matrix" move_module "bpope.rs" "$m_dir/linearization/matrix" move_module "bpopf.rs" "$m_dir/linearization/matrix" move_module "bpopt.rs" "$m_dir/linearization/matrix" move_module "emat.rs" "$m_dir/linearization/matrix" move_module "matcon.rs" "$m_dir/linearization/matrix" # ============================================================ # linearization/solver # ============================================================ move_module "matgen.rs" "$m_dir/linearization/solver" move_module "matinv.rs" "$m_dir/linearization/solver" move_module "rhsgen.rs" "$m_dir/linearization/solver" move_module "solve.rs" "$m_dir/linearization/solver" move_module "solves.rs" "$m_dir/linearization/solver" move_module "levsol.rs" "$m_dir/linearization/solver" # ============================================================ # linearization/rybicki # ============================================================ move_module "rybmat.rs" "$m_dir/linearization/rybicki" move_module "rybheq.rs" "$m_dir/linearization/rybicki" move_module "rybene.rs" "$m_dir/linearization/rybicki" move_module "rybchn.rs" "$m_dir/linearization/rybicki" move_module "rybsol.rs" "$m_dir/linearization/rybicki" # ============================================================ # acceleration/ali # ============================================================ move_module "alifr1.rs" "$m_dir/acceleration/ali" move_module "alifr3.rs" "$m_dir/acceleration/ali" move_module "alifr6.rs" "$m_dir/acceleration/ali" move_module "alifrk.rs" "$m_dir/acceleration/ali" move_module "alisk1.rs" "$m_dir/acceleration/ali" move_module "alisk2.rs" "$m_dir/acceleration/ali" move_module "alist1.rs" "$m_dir/acceleration/ali" move_module "alist2.rs" "$m_dir/acceleration/ali" move_module "ijali2.rs" "$m_dir/acceleration/ali" move_module "ijalis.rs" "$m_dir/acceleration/ali" move_module "getlal.rs" "$m_dir/acceleration/ali" move_module "taufr1.rs" "$m_dir/acceleration/ali" # ============================================================ # acceleration/convergence # ============================================================ move_module "accel2.rs" "$m_dir/acceleration/convergence" move_module "accelp.rs" "$m_dir/acceleration/convergence" move_module "osccor.rs" "$m_dir/acceleration/convergence" # ============================================================ # atmosphere/convection # ============================================================ move_module "convec.rs" "$m_dir/atmosphere/convection" move_module "concor.rs" "$m_dir/atmosphere/convection" move_module "conout.rs" "$m_dir/atmosphere/convection" move_module "conref.rs" "$m_dir/atmosphere/convection" move_module "contmd.rs" "$m_dir/atmosphere/convection" move_module "contmp.rs" "$m_dir/atmosphere/convection" # ============================================================ # atmosphere/temperature # ============================================================ move_module "temper.rs" "$m_dir/atmosphere/temperature" move_module "temcor.rs" "$m_dir/atmosphere/temperature" move_module "tlocal.rs" "$m_dir/atmosphere/temperature" move_module "lucy.rs" "$m_dir/atmosphere/temperature" move_module "tdpini.rs" "$m_dir/atmosphere/temperature" # ============================================================ # atmosphere/depth # ============================================================ move_module "newdm.rs" "$m_dir/atmosphere/depth" move_module "newdmt.rs" "$m_dir/atmosphere/depth" move_module "dmder.rs" "$m_dir/atmosphere/depth" move_module "dmeval.rs" "$m_dir/atmosphere/depth" move_module "zmrho.rs" "$m_dir/atmosphere/depth" move_module "column.rs" "$m_dir/atmosphere/depth" move_module "gridp.rs" "$m_dir/atmosphere/depth" # ============================================================ # atmosphere/hydrostatic # ============================================================ move_module "hesolv.rs" "$m_dir/atmosphere/hydrostatic" move_module "hesol6.rs" "$m_dir/atmosphere/hydrostatic" # ============================================================ # atmosphere/grey # ============================================================ move_module "greyd.rs" "$m_dir/atmosphere/grey" # ============================================================ # atmosphere/odf # ============================================================ move_module "odf1.rs" "$m_dir/atmosphere/odf" move_module "odffr.rs" "$m_dir/atmosphere/odf" move_module "odfhst.rs" "$m_dir/atmosphere/odf" move_module "odfhyd.rs" "$m_dir/atmosphere/odf" move_module "odfhys.rs" "$m_dir/atmosphere/odf" move_module "odfmer.rs" "$m_dir/atmosphere/odf" # ============================================================ # spectral # ============================================================ move_module "linpro.rs" "$m_dir/spectral" move_module "linsel.rs" "$m_dir/spectral" move_module "linspl.rs" "$m_dir/spectral" move_module "linfrq.rs" "$m_dir/spectral" move_module "linovr.rs" "$m_dir/spectral" move_module "linfxd.rs" "$m_dir/spectral" move_module "sigmar.rs" "$m_dir/spectral" move_module "sigave.rs" "$m_dir/spectral" move_module "sigk.rs" "$m_dir/spectral" move_module "rossop.rs" "$m_dir/spectral" move_module "rosstd.rs" "$m_dir/spectral" move_module "radpre.rs" "$m_dir/spectral" move_module "radtot.rs" "$m_dir/spectral" move_module "meanop.rs" "$m_dir/spectral" move_module "meanopt.rs" "$m_dir/spectral" # ============================================================ # model_init # ============================================================ move_module "inilam.rs" "$m_dir/model_init" move_module "inifrc.rs" "$m_dir/model_init" move_module "inifrs.rs" "$m_dir/model_init" move_module "inifrt.rs" "$m_dir/model_init" move_module "inpdis.rs" "$m_dir/model_init" move_module "change.rs" "$m_dir/model_init" move_module "hedif.rs" "$m_dir/model_init" move_module "chctab.rs" "$m_dir/model_init" move_module "dwnfr.rs" "$m_dir/model_init" move_module "dwnfr0.rs" "$m_dir/model_init" move_module "dwnfr1.rs" "$m_dir/model_init" move_module "levset.rs" "$m_dir/model_init" move_module "levgrp.rs" "$m_dir/model_init" move_module "visini.rs" "$m_dir/model_init" move_module "grcor.rs" "$m_dir/model_init" move_module "rap.rs" "$m_dir/model_init" # ============================================================ # io # ============================================================ move_module "output.rs" "$m_dir/io" move_module "rdata.rs" "$m_dir/io" move_module "rdatax.rs" "$m_dir/io" move_module "readbf.rs" "$m_dir/io" move_module "inkul.rs" "$m_dir/io" move_module "timing.rs" "$m_dir/io" move_module "getwrd.rs" "$m_dir/io" move_module "quit.rs" "$m_dir/io" move_module "prchan.rs" "$m_dir/io" move_module "princ.rs" "$m_dir/io" move_module "prnt.rs" "$m_dir/io" # ============================================================ # utils # ============================================================ move_module "pzert.rs" "$m_dir/utils" move_module "pzevld.rs" "$m_dir/utils" move_module "pzeval.rs" "$m_dir/utils" move_module "corrwm.rs" "$m_dir/utils" move_module "coolrt.rs" "$m_dir/utils" move_module "rechck.rs" "$m_dir/utils" move_module "russel.rs" "$m_dir/utils" move_module "moleq.rs" "$m_dir/utils" move_module "rhonen.rs" "$m_dir/utils" move_module "rhoeos.rs" "$m_dir/utils" move_module "radpre.rs" "$m_dir/utils" move_module "radtot.rs" "$m_dir/utils" move_module "raph.rs" "$m_dir/utils" move_module "brte.rs" "$m_dir/utils" move_module "brtez.rs" "$m_dir/utils" echo "Done"