Ignore:
Timestamp:
Jul 16, 2025, 3:25:48 PM (10 days ago)
Author:
jbclement
Message:

PEM:

  • Making the computation of CO2 mass balance more robust, especially regarding 'CO2cond_ps'.
  • Small correction about the dust tendency management for the layering algorithm.
  • Small improvement of the visualization in "visu_evol_layering.py".
  • File "log_launchPEM.txt" renamed into "launchPEM.log".

JBC

Location:
trunk/LMDZ.COMMON/libf/evolution/deftank
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/evolution/deftank/PCMrun.job

    r3667 r3851  
    44### GENOA nodes accommodate 96 cores
    55#SBATCH --constraint=GENOA
    6 ### Number of Nodes to use
     6### Number of nodes/cores to use
    77#SBATCH --nodes=1
    88#SBATCH --ntasks-per-node=24
  • trunk/LMDZ.COMMON/libf/evolution/deftank/PEMrun.job

    r3850 r3851  
    44### GENOA nodes accommodate 96 cores
    55#SBATCH --constraint=GENOA
    6 ### Number of Nodes to use
     6### Number of nodes/cores to use
    77#SBATCH --nodes=1
    88#SBATCH --ntasks=1
  • trunk/LMDZ.COMMON/libf/evolution/deftank/clean.sh

    r3579 r3851  
    1717rm -f *.out
    1818rm -f kill_launchPEM.sh
    19 rm -f log_launchPEM.txt
     19rm -f launchPEM.log
    2020rm -f out_run*
    2121rm -f run.def
  • trunk/LMDZ.COMMON/libf/evolution/deftank/launchPEM.sh

    r3639 r3851  
    4848    # Starting from scratch
    4949    echo "The launching script is starting!"
    50     echo "The output file is \"log_launchPEM.txt\"."
    51     exec > log_launchPEM.txt 2>&1
     50    echo "The output file is \"launchPEM.log\"."
     51    exec > launchPEM.log 2>&1
    5252    echo "Beginning of the launching script for the PEM simulation."
    5353    date
     
    5959    # Starting a new cycle
    6060    if [ $1 = "new" ]; then
    61         exec >> log_launchPEM.txt 2>&1
     61        exec >> launchPEM.log 2>&1
    6262        echo
    6363        echo "This is a new cycle for the PEM simulation."
     
    111111            fi
    112112        done
    113         exec >> log_launchPEM.txt 2>&1
     113        exec >> launchPEM.log 2>&1
    114114        echo
    115115        echo "This is a relaunch for the PEM simulation from the run \"$relaunch $irelaunch\"."
     
    138138    # Continuing the PEM run
    139139    elif [ $1 = "cont" ]; then
    140         exec >> log_launchPEM.txt 2>&1
     140        exec >> launchPEM.log 2>&1
    141141        echo
    142142        echo "This is a continuation of the previous PEM run."
  • trunk/LMDZ.COMMON/libf/evolution/deftank/visu_evol_layering.py

    r3850 r3851  
    10301030    """
    10311031    h2o = gridded_data['h2o_ice']
     1032    co2 = gridded_data['co2_ice']
    10321033    dust = gridded_data['dust']
    10331034    ngrid, ntime, nslope, nz = h2o.shape
     
    10771078        for isl in range(nslope):
    10781079            ti = top_index[ig, :, isl].copy().astype(int)
     1080            frac_all = np.zeros((nz, ntime, 3), dtype=float)  # store fH2O, fCO2, fDust
    10791081            for t in range(1, ntime):
    10801082                if ti[t] <= 0:
     
    10871089                if zmax <= 0:
    10881090                    continue
     1091                cH2O = np.clip(h2o[ig, t, isl, :zmax], 0, None)
     1092                cCO2 = np.clip(co2[ig, t, isl, :zmax], 0, None)
     1093                cDust = np.clip(dust[ig, t, isl, :zmax], 0, None)
     1094                total = cH2O + cCO2 + cDust
     1095                total[total == 0] = 1.0
     1096                fH2O = cH2O / total
     1097                fCO2 = cCO2 / total
     1098                fDust = cDust / total
     1099                frac_all[:zmax, t, :] = np.stack([fH2O, fCO2, fDust], axis=1)
    10891100
    10901101                h2o_profile = np.clip(h2o[ig, t, isl, :zmax], 0, None)
     
    11051116            ratio_array = 10**log_ratio_array
    11061117            ratio_display = ratio_array[elevation_mask, :]
     1118            display_frac = frac_all[elevation_mask, :, :]
    11071119
    11081120            # Plot
     
    11171129            )
    11181130            x_edges = np.concatenate([date_time, [date_time[-1] + (date_time[-1]-date_time[-2])]])
    1119             attach_format_coord(ax, ratio_display, x_edges, np.concatenate([elev, [elev[-1] + (elev[-1]-elev[-2])]]), is_pcolormesh=True)
     1131            y_edges = np.concatenate([elev, [elev[-1] + (elev[-1]-elev[-2])]])
     1132            def format_coord_all(x, y):
     1133                # check bounds
     1134                if x < x_edges[0] or x > x_edges[-1] or y < y_edges[0] or y > y_edges[-1]:
     1135                    return ''
     1136                # locate cell
     1137                i = np.searchsorted(x_edges, x) - 1
     1138                j = np.searchsorted(y_edges, y) - 1
     1139                i = np.clip(i, 0, display_frac.shape[1]-1)
     1140                j = np.clip(j, 0, display_frac.shape[0]-1)
     1141                # get fractions
     1142                fH2O  = display_frac[j, i, 0]
     1143                fDust = display_frac[j, i, 2]
     1144                obl   = np.interp(x, date_time, obliquity)
     1145                return f"Time={x:.2f}, Elev={y:.2f}, H2O={fH2O:.2f}, Dust={fDust:.2f}, Obl={obl:.2f}°"
     1146
     1147            ax.format_coord = format_coord_all
    11201148            ax.set_title(f"Dust-to-Ice ratio over time (Grid point {ig+1}, Slope {isl+1})", fontweight='bold')
    11211149            ax.set_xlabel('Time (Mars years)')
     
    11381166                    linewidth=1.5
    11391167                )
     1168            ax2.format_coord = format_coord_all
    11401169            ax2.set_ylabel('Obliquity (°)')
    11411170            ax2.tick_params(axis='y')
Note: See TracChangeset for help on using the changeset viewer.