1 | #!/bin/ksh |
---|
2 | |
---|
3 | #D- Driver du script pour ORCHIDEE_OL (off-line) |
---|
4 | |
---|
5 | function DRIVER_sed |
---|
6 | { |
---|
7 | IGCM_debug_PushStack "DRIVER_sed" |
---|
8 | |
---|
9 | sed -e "s/^${1}\ *=.*/${1}= ${2}/" \ |
---|
10 | driver.def > driver.def.tmp |
---|
11 | RET=$? |
---|
12 | echo "DRIVER_sed : ${1} ${2}" |
---|
13 | \mv driver.def.tmp driver.def |
---|
14 | |
---|
15 | IGCM_debug_PopStack "DRIVER_sed" |
---|
16 | return $RET |
---|
17 | } |
---|
18 | |
---|
19 | #----------------------------------------------------------------- |
---|
20 | function OOL_Initialize |
---|
21 | { |
---|
22 | IGCM_debug_PushStack "OOL_Initialize" |
---|
23 | |
---|
24 | NUM_PROC=1 |
---|
25 | #D- Number of processors used for lmdz and oasis coupler computed from PBS variable |
---|
26 | if [ X"${BATCH_NUM_PROC_TOT}" != X ] ; then |
---|
27 | NUM_PROC=${BATCH_NUM_PROC_TOT} |
---|
28 | fi |
---|
29 | echo BATCH_NUM_PROC_TOT=${BATCH_NUM_PROC_TOT} |
---|
30 | echo NUM_PROC=${NUM_PROC} |
---|
31 | |
---|
32 | if ( [ X${BATCH_NUM_PROC_TOT} != X ] && [ "${BATCH_NUM_PROC_TOT}" -gt 1 ] ) ; then |
---|
33 | MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND} |
---|
34 | fi |
---|
35 | |
---|
36 | IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/COMP/orchidee_ol.card UserChoices |
---|
37 | RESOL=${orchidee_ol_UserChoices_RESOL} |
---|
38 | |
---|
39 | IGCM_debug_PopStack "OOL_Initialize" |
---|
40 | } |
---|
41 | |
---|
42 | #----------------------------------------------------------------- |
---|
43 | function OOL_Update |
---|
44 | { |
---|
45 | IGCM_debug_PushStack "OOL_Update" |
---|
46 | |
---|
47 | if [ X"${orchidee_ol_UserChoices_TIMELENGTH}" = Xy ] ; then |
---|
48 | case ${config_UserChoices_PeriodLength} in |
---|
49 | *Y|*y|*M|*m|*D|*d) |
---|
50 | DRIVER_sed TIME_LENGTH ${PeriodLengthInDays}D |
---|
51 | ;; |
---|
52 | *s) |
---|
53 | DRIVER_sed TIME_LENGTH ${config_UserChoices_PeriodLength} |
---|
54 | esac |
---|
55 | fi |
---|
56 | |
---|
57 | if ( ${FirstInitialize} ) ; then |
---|
58 | if ( [ "${config_OOL_Restart}" = "y" ] ) ; then |
---|
59 | DRIVER_sed RESTART_FILEIN driver_rest_in.nc |
---|
60 | else |
---|
61 | DRIVER_sed TIME_SKIP $( IGCM_date_DaysBetweenGregorianDate ${DateBegin} ${year}0101 )D |
---|
62 | fi |
---|
63 | else |
---|
64 | if [ X${orchidee_ol_UserChoices_NORESTART} = Xn ] ; then |
---|
65 | DRIVER_sed RESTART_FILEIN driver_rest_in.nc |
---|
66 | else |
---|
67 | if [ ${DRYRUN} -le 2 ] ; then |
---|
68 | IGCM_sys_Rm driver_rest_in.nc |
---|
69 | fi |
---|
70 | DRIVER_sed RESTART_FILEIN NONE |
---|
71 | fi |
---|
72 | fi |
---|
73 | |
---|
74 | # IGCM_sys_Put_Out run.def ${R_OUT_OOL}/${PREFIX}_run.def |
---|
75 | FileToBeDeleted[${#FileToBeDeleted[@]}]=run.def |
---|
76 | FileToBeDeleted[${#FileToBeDeleted[@]}]=driver.def |
---|
77 | |
---|
78 | IGCM_debug_PopStack "OOL_Update" |
---|
79 | } |
---|
80 | |
---|
81 | #----------------------------------------------------------------- |
---|
82 | function OOL_Finalize |
---|
83 | { |
---|
84 | IGCM_debug_PushStack "OOL_Finalize" |
---|
85 | |
---|
86 | echo FINALIZE OOL !!! |
---|
87 | |
---|
88 | IGCM_debug_PopStack "OOL_Finalize" |
---|
89 | } |
---|