Revision: | 1.3 |

Committed: | Thu Feb 16 20:32:38 2012 UTC (11 years, 7 months ago) by phil |

Content type: | application/x-csh |

Branch: | MAIN |

CVS Tags: | Ver_6-2, Ver_6-3, Ver_6-4, Ver_8-2, Ver_8-3, Ver_8-0, Ver_8-1, Ver_8-4, Ver_8-5, Ver_7-1, Ver_7-0 |

Changes since 1.2: |
+2 -1 lines |

Log Message: | Many changes |

# | Content |
---|---|

1 | #! /bin/csh -f |

2 | # Script to make HMI V drift coefficient tables from hmi.V_45s_nrt data |

3 | # |

4 | # set echo |

5 | |

6 | # XXXXXXXXXX test |

7 | # set echo |

8 | # XXXXXXXXXX test |

9 | |

10 | set HERE = $cwd |

11 | set LOG = $HERE/runlog |

12 | |

13 | if ($?WORKFLOW_ROOT) then |

14 | set WFDIR = $WORKFLOW_DATA |

15 | set WFCODE = $WORKFLOW_ROOT |

16 | else |

17 | echo Need WORKFLOW_ROOT variable to be set. |

18 | exit 1 |

19 | endif |

20 | |

21 | foreach ATTR (WANTLOW WANTHIGH GATE) |

22 | set ATTRTXT = `grep $ATTR ticket` |

23 | set $ATTRTXT |

24 | end |

25 | |

26 | # set CoefProgram = /home/couvidat/cvs/JSOC/bin/linux_x86_64/correction_velocities |

27 | # copied 29 Oct 2010 2:00 PM |

28 | #set CoefProgram = $WFCODE/bin/correction_velocities |

29 | set CoefProgram = /home/jsoc/cvs/Development/JSOC/bin/linux_x86_64/correction_velocities |

30 | |

31 | # verify that there is at least one V_drift record within 24 hours |

32 | # both before and after both the first and last record to be processed. |

33 | # step by 24 hour increments through the desired range, including the exact |

34 | # end time. |

35 | |

36 | set wantlow_t = `time_convert time=$WANTLOW` |

37 | set wanthigh_t = `time_convert time=$WANTHIGH` |

38 | |

39 | set need_t = $wantlow_t |

40 | |

41 | while ($need_t <= $wanthigh_t) |

42 | @ needlow_t = $need_t - 86400 |

43 | @ needhigh_t = $need_t + 86400 |

44 | set need = `time_convert zone=TAI s=$need_t` |

45 | set needlow = `time_convert zone=TAI s=$needlow_t` |

46 | set needhigh = `time_convert zone=TAI s=$needhigh_t` |

47 | set n = `show_info -cq hmi.coefficients'['$needlow'-'$need']'` |

48 | if ($n <= 0) then |

49 | echo >>$LOG Need V_drift record for $needlow - $need |

50 | # make a new coef record on the nearest 06:45 or 18:45 before the needed time. |

51 | # do this by rounding the time down to closest target. |

52 | # do this by subtract 06h45m, divide by 12h, then mult by 12, then add 6h45m |

53 | @ targ_t = $need_t - 24300 |

54 | @ targ_t = $targ_t / 43200 |

55 | @ targ_t = $targ_t * 43200 |

56 | @ targ_t = $targ_t + 24300 |

57 | @ targlow_t = $targ_t - 43200 |

58 | @ targhigh_t = $targ_t + 43200 |

59 | set targlow = `time_convert s=$targlow_t zone=TAI` |

60 | set targhigh = `time_convert s=$targhigh_t zone=TAI` |

61 | $CoefProgram begin=$targlow end=$targhigh levin=hmi.V_45s_nrt levout=hmi.coefficients >>$LOG |

62 | if ($retstatus) then |

63 | echo >>$LOG "FAIL $CoefProgram failed for $targ with status=$retstatus" |

64 | goto FAILURE |

65 | endif |

66 | endif |

67 | set n = `show_info -cq hmi.coefficients'['$need'-'$needhigh']'` |

68 | if ($n <= 0) then |

69 | echo >>$LOG Need V_drift record for $need - $needhigh |

70 | # make a new coef record on the nearest 06:45 or 18:45 after the needed time. |

71 | # do this by rounding the time up to closest target. |

72 | # do this by adding 06h45m, divide by 12h, then mult by 12, then add 6h45m |

73 | @ targ_t = $need_t + 24300 |

74 | @ targ_t = $targ_t / 43200 |

75 | @ targ_t = $targ_t * 43200 |

76 | @ targ_t = $targ_t + 24300 |

77 | @ targlow_t = $targ_t - 43200 |

78 | @ targhigh_t = $targ_t + 43200 |

79 | set targlow = `time_convert s=$targlow_t zone=TAI` |

80 | set targhigh = `time_convert s=$targhigh_t zone=TAI` |

81 | $CoefProgram begin=$targlow end=$targhigh levin=hmi.V_45s_nrt levout=hmi.coefficients >>$LOG |

82 | set retstatus = $status |

83 | if ($retstatus) then |

84 | echo >>$LOG "FAIL $CoefProgram failed for $targ with status=$retstatus" |

85 | goto FAILURE |

86 | endif |

87 | endif |

88 | if ($need_t == $wanthigh_t) goto DONE |

89 | @ need_t = $need_t + 86400 |

90 | if ($need_t > $wanthigh_t) set need_t = $wanthigh_t |

91 | end |

92 | |

93 | DONE: |

94 | exit 0 |

95 | |

96 | FAILURE: |

97 | tail -1 $LOG > FAIL_reason |

98 | # allow failures to be treated as OK for times before 9 Sept 2010. |

99 | # these may need to be done by hand in an iterative fashion. |

100 | |

101 | set good_processing_t = `time_convert time=2010.09.09_TAI` |

102 | |

103 | if ($wantlow_t < $good_processing_t) then |

104 | echo "Allow drift calc to fail for earliest times. >>$LOG |

105 | exit 0 |

106 | endif |

107 | |

108 | exit 1 |