Subversion Repositories lagranto.um

Rev

Rev 3 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3 Rev 14
1
#!/bin/csh
1
#!/bin/csh
2
 
2
 
3
# -----------------------------------------------------------------------------
3
# -----------------------------------------------------------------------------
4
# Set some parameters
4
# Set some parameters
5
# -----------------------------------------------------------------------------
5
# -----------------------------------------------------------------------------
6
 
6
 
7
# Get arguments
7
# Get arguments
8
if ( ${#argv} == 0 ) then
8
if ( ${#argv} == 0 ) then
9
    set poleprint = 1
9
    set poleprint = 1
10
    set inpfile   = ""
10
    set inpfile   = ""
11
    set outfile   = ""
11
    set outfile   = ""
12
else
12
else
13
    set poleprint = 0
13
    set poleprint = 0
14
    set inpfile   = $1
14
    set inpfile   = $1
15
    set outfile   = $2
15
    set outfile   = $2
16
endif
16
endif
17
 
17
 
18
# Get the pole position
18
# Get the pole position
19
if ( -f rot2geo.pole ) then
19
if ( -f rot2geo.pole ) then
20
   set pole = `cat rot2geo.pole` 
20
   set pole = `cat rot2geo.pole` 
21
else if ( -f geo2rot.pole ) then 
21
else if ( -f geo2rot.pole ) then 
22
   set pole = `cat geo2rot.pole` 
22
   set pole = `cat geo2rot.pole` 
23
else
23
else
24
   set pole = "0. 90."
24
   set pole = "0. 90."
25
endif
25
endif
26
 
26
 
27
# Handle optional arguments
27
# Handle optional arguments
28
set polefile = 0
28
set polefile = 0
29
 
29
 
30
while ( $#argv > 0 )
30
while ( $#argv > 0 )
31
 
31
 
32
  switch ( $argv[1] )
32
  switch ( $argv[1] )
33
 
33
 
34
   case -lonlat
34
   case -lonlat
35
     set pole = "$argv[2] $argv[3]"
35
     set pole = "$argv[2] $argv[3]"
36
     shift; shift;
36
     shift; shift;
37
   breaksw
37
   breaksw
38
 
38
 
39
   case -file
39
   case -file
40
     set polefile = 1
40
     set polefile = 1
41
     set filename = $argv[2] 
41
     set filename = $argv[2] 
42
     shift;
42
     shift;
43
   breaksw
43
   breaksw
44
 
44
 
45
  endsw
45
  endsw
46
 
46
 
47
  shift;
47
  shift;
48
 
48
 
49
end
49
end
50
 
50
 
51
# Get the pole position from file  if requested
51
# Get the pole position from file  if requested
52
if ( "${polefile}" == "1" ) then
52
if ( "${polefile}" == "1" ) then
53
    
53
    
54
    # Check whether file is available
54
    # Check whether file is available
55
    if ( ! -f ${filename} ) then
55
    if ( ! -f ${filename} ) then
56
       echo "file ${filename} not found... stop"
56
       echo "file ${filename} not found... stop"
57
       exit 1
57
       exit 1
58
    endif
58
    endif
59
 
59
 
60
    # Get pole directly from cst or from P,S file
60
    # Get pole directly from cst or from P,S file
61
    set pollon = ""
61
    set pollon = ""
62
    set ok     = `ncdump -h ${filename} | grep pollon`
62
    set ok     = `ncdump -h ${filename} | grep pollon`
63
    if ( "${ok}" != "" ) then
63
    if ( "${ok}" != "" ) then
64
       set pollon = `ncdump ${filename} | grep 'pollon =' | awk '{print $3}'`
64
       set pollon = `ncdump ${filename} | grep 'pollon =' | awk '{print $3}'`
65
    else 
65
    else 
66
       set ok       = `ncdump -h ${filename} | grep constants_file_name`
66
       set ok       = `ncdump -h ${filename} | grep constants_file_name`
67
       set filename = `ncdump -h ${filename} | grep 'constants_file_name' | awk '{print $3}'`
67
       set filename = `ncdump -h ${filename} | grep 'constants_file_name' | awk '{print $3}'`
68
       set filename = `echo ${filename} | sed -e 's/\"//g'`
68
       set filename = `echo ${filename} | sed -e 's/\"//g'`
69
       set ok       = `ncdump -h ${filename} | grep pollon`
69
       set ok       = `ncdump -h ${filename} | grep pollon`
70
       set pollon   = `ncdump ${filename}    | grep 'pollon =' | awk '{print $3}'`
70
       set pollon   = `ncdump ${filename}    | grep 'pollon =' | awk '{print $3}'`
71
    endif
71
    endif
72
 
72
 
73
    set pollat = ""
73
    set pollat = ""
74
    set ok     = `ncdump -h ${filename} | grep pollat`
74
    set ok     = `ncdump -h ${filename} | grep pollat`
75
    if ( "${ok}" != "" ) then
75
    if ( "${ok}" != "" ) then
76
       set pollat = `ncdump ${filename} | grep 'pollat =' | awk '{print $3}'`
76
       set pollat = `ncdump ${filename} | grep 'pollat =' | awk '{print $3}'`
77
    else 
77
    else 
78
       set ok       = `ncdump -h ${filename} | grep constants_file_name`
78
       set ok       = `ncdump -h ${filename} | grep constants_file_name`
79
       set filename = `ncdump -h ${filename} | grep 'constants_file_name' | awk '{print $3}'`
79
       set filename = `ncdump -h ${filename} | grep 'constants_file_name' | awk '{print $3}'`
80
       set filename = `echo ${filename} | sed -e 's/\"//g'`
80
       set filename = `echo ${filename} | sed -e 's/\"//g'`
81
       set ok       = `ncdump -h ${filename} | grep pollat`
81
       set ok       = `ncdump -h ${filename} | grep pollat`
82
       set pollat   = `ncdump ${filename}    | grep 'pollat =' | awk '{print $3}'`
82
       set pollat   = `ncdump ${filename}    | grep 'pollat =' | awk '{print $3}'`
83
    endif
83
    endif
84
 
84
 
85
    if ( ( "${pollon}" == "" ) | ( "${pollat}" == "" ) ) then
85
    if ( ( "${pollon}" == "" ) | ( "${pollat}" == "" ) ) then
86
       echo "cannot find pollon/pollat on ${filename}... Stop"
86
       echo "cannot find pollon/pollat on ${filename}... Stop"
87
       exit 1
87
       exit 1
88
    endif
88
    endif
89
 
89
 
90
    set pole = "${pollon} ${pollat}"
90
    set pole = "${pollon} ${pollat}"
91
 
91
 
92
endif
92
endif
93
 
93
 
94
# Write the pole position to the pole file  
94
# Write the pole position to the pole file  
95
\rm -f rot2geo.pole
95
\rm -f rot2geo.pole
96
echo ${pole} > rot2geo.pole
96
echo ${pole} > rot2geo.pole
97
 
97
 
98
# Decide whether to exit from the script
98
# Decide whether to exit from the script
99
if ( "${inpfile}" == "-lonlat" ) set poleprint = 1
99
if ( "${inpfile}" == "-lonlat" ) set poleprint = 1
100
if ( "${inpfile}" == "-file"   ) set poleprint = 1
100
if ( "${inpfile}" == "-file"   ) set poleprint = 1
101
 
101
 
102
# On request, print the pole position and exit
102
# On request, print the pole position and exit
103
if ( ${poleprint} == 1 ) then
103
if ( ${poleprint} == 1 ) then
104
    cat rot2geo.pole
104
    cat rot2geo.pole
105
    exit 0
105
    exit 0
106
endif
106
endif
107
 
107
 
108
# Decide whether a position or a trajectory is to be rotated
108
# Decide whether a position or a trajectory is to be rotated
109
set ok1 = `echo ${inpfile} | sed -e 's/[0123456789.-]//g' | wc -w`
109
set ok1 = `echo ${inpfile} | sed -e 's/[0123456789.-]//g' | wc -w`
110
set ok2 = `echo ${outfile} | sed -e 's/[0123456789.-]//g' | wc -w`
110
set ok2 = `echo ${outfile} | sed -e 's/[0123456789.-]//g' | wc -w`
111
 
111
 
112
if ( ( ${ok1} == 0 ) && ( ${ok2} == 0 ) ) then
112
if ( ( ${ok1} == 0 ) && ( ${ok2} == 0 ) ) then
113
    set mode = 'position'
113
    set mode = 'position'
114
    set lon  = ${inpfile}
114
    set lon  = ${inpfile}
115
    set lat  = ${outfile}
115
    set lat  = ${outfile}
116
else if ( ( ${ok1} != 0 ) && ( ${ok2} != 0 ) ) then
116
else if ( ( ${ok1} != 0 ) && ( ${ok2} != 0 ) ) then
117
    set mode = 'trajectory'
117
    set mode = 'trajectory'
118
    if ( ! -f ${inpfile} ) then
118
    if ( ! -f ${inpfile} ) then
119
       echo "${inpfile} is missing... Stop"
119
       echo "${inpfile} is missing... Stop"
120
       exit 1
120
       exit 1
121
    endif
121
    endif
122
else
122
else
123
    set mode = 'nil'
123
    set mode = 'nil'
124
endif
124
endif
125
 
125
 
126
# Decide whether the Fortran programe needs to be launched
126
# Decide whether the Fortran programe needs to be launched
127
if ( "${mode}" == "nil" ) then
127
if ( "${mode}" == "nil" ) then
128
    exit 0
128
    exit 0
129
endif
129
endif
130
    
130
    
131
# Prepare the parameter file and run Fortran program
131
# Prepare the parameter file and run Fortran program
132
\rm -f rot2geo.param
132
\rm -f rot2geo.param
133
echo \"${mode}\"                             >! rot2geo.param
133
echo \"${mode}\"                             >! rot2geo.param
134
if ( "${mode}" == "position" ) then
134
if ( "${mode}" == "position" ) then
135
   echo ${lon}                               >> rot2geo.param
135
   echo ${lon}                               >> rot2geo.param
136
   echo ${lat}                               >> rot2geo.param
136
   echo ${lat}                               >> rot2geo.param
137
else if ( "${mode}" == "trajectory" ) then
137
else if ( "${mode}" == "trajectory" ) then
138
   echo \"${inpfile}\"                       >> rot2geo.param
138
   echo \"${inpfile}\"                       >> rot2geo.param
139
   echo \"${outfile}\"                       >> rot2geo.param
139
   echo \"${outfile}\"                       >> rot2geo.param
140
   ${LAGRANTO}/bin/trainfo.sh ${inpfile} dim >> rot2geo.param
140
   ${LAGRANTO}/bin/trainfo.sh ${inpfile} dim >> rot2geo.param
141
endif
141
endif
142
echo ${pole}                                 >> rot2geo.param
142
echo ${pole}                                 >> rot2geo.param
143
 
143
 
144
${LAGRANTO}/goodies/rot2geo
144
${LAGRANTO}/goodies/rot2geo
145
 
145
 
146
# Make clean
146
# Make clean
147
#\rm -f rot2geo.param
147
#\rm -f rot2geo.param
148
 
148
 
149
exit 0
149
exit 0
150
 
150