1 | #!/bin/bash |
---|
2 | ############################################################################## |
---|
3 | # Script to run successive monthly (a month spans 30 deg. in Ls) |
---|
4 | # simulations of the LMD Mars GCM. |
---|
5 | # This script uses the following files: |
---|
6 | # - "run0": script to compute a given month |
---|
7 | # - "num_run": single line file containing a value, which is the value of |
---|
8 | # the 'initializing' month |
---|
9 | # - "run.def.ref": a "run.def" file, exept that variable "nday" is set to 9999 |
---|
10 | # - all files usually neaded to run the GCM. Note that initialization |
---|
11 | # datafiles "start.nc" and "startfi.nc" must be |
---|
12 | # "start${num_run}.nc" and "startfi${num_run}.nc" |
---|
13 | ############################################################################## |
---|
14 | # DON'T FORGET TO: |
---|
15 | # 1) Set the "number of simulation" to 1 in "run0" |
---|
16 | # 2) Copy "run.def" to "run.def.ref" and SET nday to 9999 in run.def.ref |
---|
17 | # 3) uncomment the various lines below (those which begin with "sed ...") |
---|
18 | # 4) If restarting in the middle of a year: |
---|
19 | # -Below, Comment all the month already computed |
---|
20 | # -Write "N" in file "num_run" if starting from startN.nc ! |
---|
21 | ############################################################################## |
---|
22 | |
---|
23 | |
---|
24 | # Remove old "error" file (if any) and create a brand new (blank) one |
---|
25 | \rm -f error; touch error |
---|
26 | |
---|
27 | # 12 martian months (=30°deg Ls) of unequal length (excentric orbit) |
---|
28 | sed s/9999/61/ run.def.ref > run.def ; run0 >> error #1 |
---|
29 | sed s/9999/66/ run.def.ref > run.def ; run0 >> error #2 |
---|
30 | sed s/9999/66/ run.def.ref > run.def ; run0 >> error #3 |
---|
31 | sed s/9999/65/ run.def.ref > run.def ; run0 >> error #4 |
---|
32 | sed s/9999/60/ run.def.ref > run.def ; run0 >> error #5 |
---|
33 | sed s/9999/54/ run.def.ref > run.def ; run0 >> error #6 |
---|
34 | sed s/9999/50/ run.def.ref > run.def ; run0 >> error #7 |
---|
35 | sed s/9999/46/ run.def.ref > run.def ; run0 >> error #8 |
---|
36 | sed s/9999/47/ run.def.ref > run.def ; run0 >> error #9 |
---|
37 | sed s/9999/47/ run.def.ref > run.def ; run0 >> error #10 |
---|
38 | sed s/9999/51/ run.def.ref > run.def ; run0 >> error #11 |
---|
39 | sed s/9999/56/ run.def.ref > run.def ; run0 >> error #12 |
---|
40 | # |
---|
41 | # 12 martian months (=30°deg Ls) of unequal length (excentric orbit) |
---|
42 | # sed s/9999/61/ run.def.ref > run.def ; run0 >> error #13 |
---|
43 | # sed s/9999/66/ run.def.ref > run.def ; run0 >> error #14 |
---|
44 | # sed s/9999/66/ run.def.ref > run.def ; run0 >> error #15 |
---|
45 | # sed s/9999/65/ run.def.ref > run.def ; run0 >> error #16 |
---|
46 | # sed s/9999/60/ run.def.ref > run.def ; run0 >> error #17 |
---|
47 | # sed s/9999/54/ run.def.ref > run.def ; run0 >> error #18 |
---|
48 | # sed s/9999/50/ run.def.ref > run.def ; run0 >> error #19 |
---|
49 | # sed s/9999/46/ run.def.ref > run.def ; run0 >> error #20 |
---|
50 | # sed s/9999/47/ run.def.ref > run.def ; run0 >> error #21 |
---|
51 | # sed s/9999/47/ run.def.ref > run.def ; run0 >> error #22 |
---|
52 | # sed s/9999/51/ run.def.ref > run.def ; run0 >> error #23 |
---|
53 | # sed s/9999/56/ run.def.ref > run.def ; run0 >> error #24 |
---|
54 | # |
---|
55 | # 12 martian months (=30°deg Ls) of unequal length (excentric orbit) |
---|
56 | # sed s/9999/61/ run.def.ref > run.def ; run0 >> error #25 |
---|
57 | # sed s/9999/66/ run.def.ref > run.def ; run0 >> error #26 |
---|
58 | # sed s/9999/66/ run.def.ref > run.def ; run0 >> error #27 |
---|
59 | # sed s/9999/65/ run.def.ref > run.def ; run0 >> error #28 |
---|
60 | # sed s/9999/60/ run.def.ref > run.def ; run0 >> error #29 |
---|
61 | # sed s/9999/54/ run.def.ref > run.def ; run0 >> error #30 |
---|
62 | # sed s/9999/50/ run.def.ref > run.def ; run0 >> error #31 |
---|
63 | # sed s/9999/46/ run.def.ref > run.def ; run0 >> error #32 |
---|
64 | # sed s/9999/47/ run.def.ref > run.def ; run0 >> error #33 |
---|
65 | # sed s/9999/47/ run.def.ref > run.def ; run0 >> error #34 |
---|
66 | # sed s/9999/51/ run.def.ref > run.def ; run0 >> error #35 |
---|
67 | # sed s/9999/56/ run.def.ref > run.def ; run0 >> error #36 |
---|
68 | |
---|
69 | # These last lines allow to reconstruct the last num_run after a model crash |
---|
70 | # (because after crash, num_run was set to 9999 so that no further simulation |
---|
71 | # Could be performed |
---|
72 | number=`cat num_run` |
---|
73 | if (( $number == 99999)) ; then |
---|
74 | set numold=`cat num_run.crash` |
---|
75 | echo '-----' >> error |
---|
76 | echo 'Seasonal simulation aborted after starting from start'$numold >> error |
---|
77 | \mv -f num_run.crash num_run |
---|
78 | fi |
---|