- Timestamp:
- Feb 12, 2026, 9:09:12 AM (3 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/evolution/deftank/lib_launchPEM.sh
r3981 r4065 150 150 # To check if a PCM run is one year 151 151 check_runyear() { 152 if [ -f " run_PCM.def" ]; then152 if [ -f "startfi.nc" ]; then 153 153 year_sol=$(ncdump -v controle startfi.nc 2>/dev/null | \ 154 154 sed -n '/controle =/,/;/p' | tr -d '[:space:]' | \ 155 155 sed 's/.*=//; s/;//' | tr ',' '\n' | sed -n '14p') 156 156 else 157 echo "Warning: no \"startfi.nc\" found! So default year_sol=669 (Mars year) is taken..." 157 158 year_sol=669 # Length of Martian year (sols) 158 159 fi … … 182 183 LC_NUMERIC=en_US.UTF-8 183 184 184 if [ -v n_ mars_years ] && [ ! -z "$n_mars_years" ]; then185 if [ $(echo "$n_ mars_years <= 0." | bc -l) -eq 1 ]; then186 echo "Error: 'n_ mars_years' must be > 0!"185 if [ -v n_planetary_years ] && [ ! -z "$n_planetary_years" ]; then 186 if [ $(echo "$n_planetary_years <= 0." | bc -l) -eq 1 ]; then 187 echo "Error: 'n_planetary_years' must be > 0!" 187 188 errlaunch 188 189 fi … … 259 260 myear=686.9725 # Number of Earth days in Martian year 260 261 eyear=365.256363004 # Number of days in Earth year 261 convert_years=$(echo "$myear/$eyear" | bc -l)262 convert_years=$(printf "%.4f" $convert_years) # Rounding to the 4th decimal to respect the precision of Martian year263 if [ -v n_ mars_years ]; then264 n_ myear=$n_mars_years265 echo "Number of years to be simulated: $n_ myear Martian years."262 r_plnt2earth_yr=$(echo "$myear/$eyear" | bc -l) 263 r_plnt2earth_yr=$(printf "%.4f" $r_plnt2earth_yr) # Rounding to the 4th decimal to respect the precision of Martian year 264 if [ -v n_planetary_years ]; then 265 n_year=$n_planetary_years 266 echo "Number of years to be simulated: $n_year Martian years." 266 267 elif [ -v n_earth_years ]; then 267 n_ myear=$(echo "$n_earth_years/$convert_years" | bc -l)268 echo "Number of years to be simulated: $n_earth_years Earth years = $n_ myear Martian years."268 n_year=$(echo "$n_earth_years/$r_plnt2earth_yr" | bc -l) 269 echo "Number of years to be simulated: $n_earth_years Earth years = $n_year Martian years." 269 270 fi 270 271 } … … 274 275 echo "This is a chained simulation for PEM and PCM runs in $dir on $machine by $user." 275 276 convertyears 276 i_ myear=0.277 i_year=0. 277 278 iPEM=1 278 279 iPCM=1 … … 290 291 291 292 # Create a file to manage years of the chained simulation and store some info from the PEM runs 292 echo $i_ myear $n_myear $convert_years$iPCM $iPEM $nPCM $nPCM_ini > launchPEM.info293 echo $i_year $n_year $r_plnt2earth_yr $iPCM $iPEM $nPCM $nPCM_ini > launchPEM.info 293 294 } 294 295 … … 303 304 ii=$3 304 305 fi 305 if [ $(echo "$i_ myear < $n_myear" | bc -l) -eq 1 ]; then306 if [ $(echo "$i_year < $n_year" | bc -l) -eq 1 ]; then 306 307 echo "Run \"PCM $iPCM\" ($ii/$2)" 307 308 if [ $1 -eq 0 ]; then # Mode: processing scripts … … 331 332 fi 332 333 for ((i = $ii; i <= $2; i++)); do 333 if [ $(echo "$i_ myear < $n_myear" | bc -l) -eq 1 ]; then334 if [ $(echo "$i_year < $n_year" | bc -l) -eq 1 ]; then 334 335 echo "Run \"PCM $iPCM\" ($i/$2)" 335 336 if [ $1 -eq 0 ]; then # Mode: processing scripts … … 360 361 # arg1: launching mode 361 362 submitPEM() { 362 if [ $(echo "$i_ myear < $n_myear" | bc -l) -eq 1 ]; then363 if [ $(echo "$i_year < $n_year" | bc -l) -eq 1 ]; then 363 364 echo "Run \"PEM $iPEM\"" 364 365 if [ $1 -eq 0 ]; then # Mode: processing scripts … … 393 394 394 395 # PEM run 395 if [ $(echo "$i_ myear < $n_myear" | bc -l) -eq 1 ]; then396 if [ $(echo "$i_year < $n_year" | bc -l) -eq 1 ]; then 396 397 echo "Run \"PEM $iPEM\"" 397 398 if [ $1 -eq 0 ]; then # Mode: processing scripts … … 460 461 # PCM relaunch during the initialization cycle 461 462 iPEM=1 462 i_ myear=0463 sed -i "1s/.*/$i_ myear $n_myear $convert_years$iPCM $iPEM $nPCM $nPCM_ini/" launchPEM.info464 cleanfiles diags/diag pem.nc $(($iPEM - 1))465 cleanfiles diags/diag soilpem.nc $(($iPEM - 1))463 i_year=0 464 sed -i "1s/.*/$i_year $n_year $r_plnt2earth_yr $iPCM $iPEM $nPCM $nPCM_ini/" launchPEM.info 465 cleanfiles diags/diagevol .nc $(($iPEM - 1)) 466 cleanfiles diags/diagevol_soil .nc $(($iPEM - 1)) 466 467 cleanfiles logs/runPEM .log $(($iPEM - 1)) 467 468 cleanfiles starts/restart1D_postPEM .txt $(($iPEM - 1)) … … 490 491 iPEM=$(echo "($iPCM - $nPCM_ini)/$nPCM + 1" | bc) 491 492 il=$(echo "($irelaunch - $nPCM_ini + 1)%$nPCM + 1" | bc) 492 i_ myear=$(awk "NR==$iPEM {printf \"%s\n\", \$3}" "launchPEM.info")493 sed -i "1s/.*/$i_ myear $n_myear $convert_years$iPCM $iPEM $nPCM $nPCM_ini/" launchPEM.info494 cleanfiles diags/diag pem.nc $(($iPEM - 1))495 cleanfiles diags/diag soilpem.nc $(($iPEM - 1))493 i_year=$(awk "NR==$iPEM {printf \"%s\n\", \$3}" "launchPEM.info") 494 sed -i "1s/.*/$i_year $n_year $r_plnt2earth_yr $iPCM $iPEM $nPCM $nPCM_ini/" launchPEM.info 495 cleanfiles diags/diagevol .nc $(($iPEM - 1)) 496 cleanfiles diags/diagevol_soil .nc $(($iPEM - 1)) 496 497 cleanfiles logs/runPEM .log $(($iPEM - 1)) 497 498 cleanfiles starts/restart1D_postPEM .txt $(($iPEM - 1)) … … 521 522 iPEM=$(echo "$irelaunch + 1" | bc) 522 523 iPCM=$(echo "$nPCM_ini + $nPCM*($irelaunch - 1) + 1" | bc) 523 i_ myear=$(awk "NR==$iPEM {printf \"%s\n\", \$3}" "launchPEM.info")524 sed -i "1s/.*/$i_ myear $n_myear $convert_years$iPCM $iPEM $nPCM $nPCM_ini/" launchPEM.info524 i_year=$(awk "NR==$iPEM {printf \"%s\n\", \$3}" "launchPEM.info") 525 sed -i "1s/.*/$i_year $n_year $r_plnt2earth_yr $iPCM $iPEM $nPCM $nPCM_ini/" launchPEM.info 525 526 cleanfiles diags/diagfi .nc $(($iPCM - 1)) 526 527 cleanfiles diags/diagsoil .nc $(($iPCM - 1)) … … 531 532 cleanfiles diags/Xoutdaily4pem .nc $(($iPCM - 1)) 532 533 cleanfiles diags/Xoutyearly4pem .nc $(($iPCM - 1)) 533 cleanfiles diags/diag pem.nc $irelaunch534 cleanfiles diags/diag soilpem.nc $irelaunch534 cleanfiles diags/diagevol .nc $irelaunch 535 cleanfiles diags/diagevol_soil .nc $irelaunch 535 536 cleanfiles logs/runPEM .log $irelaunch 536 537 cleanfiles starts/restart1D_postPEM .txt $irelaunch
Note: See TracChangeset
for help on using the changeset viewer.
