#!/bin/bash # # SCRIPTS USED: # ROUTINES USED: flex2dc, vload # GMT PROGRAMS USED: grdedit, grdinfo # # make_greenfct_segs.com cchile_75k_list.txt 263.0 -40.0039553203 rigid_inv1_xy.grd 1 topo_cmd.dat grav_md.dat if (( "$#" != 9 )); then echo "Usage: make_greenfct.com trench_segments_list.txt lon0 lat0 rigidity.grd iterationno" echo " bath.dat grav.dat mscale vscale" exit fi mscale=$8 vscale=$9 NITER=3 # # input $1 is a list of the load segment files # $2 and $3 are the longitude and latitude required by vload # $4 is input rigidity file # $5 is iteration number # housekeeping # rm mseg_*dat vseg_*dat gg*dat gb*dat fz_mseg_*grd fz_vseg_*grd gvb*grd gmb*grd let seg=1 let iter=$5+1 while read segfile do segno=$(printf "%02d" $seg) echo "Super Segment number: " $segno echo $segfile rm vseg_${segno}.dat mseg_${segno}.dat touch vseg_${segno}.dat touch mseg_${segno}.dat while read lon1 lon2 lat1 lat2 do echo $lon1 $lon2 $lat1 $lat2 $vscale "0.0" >> vseg_${segno}.dat echo $lon1 $lon2 $lat1 $lat2 "0.0" $mscale >> mseg_$segno.dat done < $segfile vload $2 $3 vseg_$segno.dat fz_vseg_${segno}.grd & vload $2 $3 mseg_$segno.dat fz_mseg_${segno}.grd & wait PREVRIGV=$4 PREVRIGM=$4 COUNTER=0 while [ $COUNTER -lt $NITER ]; do let COUNTER=COUNTER+1 echo "Iteration $COUNTER" rm wvb_inv_xy_prev.grd curvvb_inv_xy_prev.grd gravvb_inv_xy_prev.grd rm wmb_inv_xy_prev.grd curvmb_inv_xy_prev.grd gravmb_inv_xy_prev.grd flex2dc fz_vseg_${segno}.grd ${PREVRIGV} 1 \ wvb_inv_xy_prev.grd curvvb_inv_xy_prev.grd gravvb_inv_xy_prev.grd & flex2dc fz_mseg_${segno}.grd ${PREVRIGM} 1 \ wmb_inv_xy_prev.grd curvmb_inv_xy_prev.grd gravmb_inv_xy_prev.grd & wait grd_interp rigid.grd_lookup age_xy.grd curvvb_inv_xy_prev.grd rigidvb_inv_prev.grd & grd_interp moment.grd_lookup age_xy.grd curvvb_inv_xy_prev.grd momentvb_inv_prev.grd & grd_interp yld.grd_lookup age_xy.grd curvvb_inv_xy_prev.grd yldvb_inv_prev.grd & wait grd_interp rigid.grd_lookup age_xy.grd curvmb_inv_xy_prev.grd rigidmb_inv_prev.grd & grd_interp moment.grd_lookup age_xy.grd curvmb_inv_xy_prev.grd momentmb_inv_prev.grd & grd_interp yld.grd_lookup age_xy.grd curvmb_inv_xy_prev.grd yldmb_inv_prev.grd & wait PREVRIGV=rigidvb_inv_prev.grd PREVRIGM=rigidmb_inv_prev.grd done cp wvb_inv_xy_prev.grd gvb_seg${segno}_iter${iter}.grd cp curvvb_inv_xy_prev.grd gvcurv_seg${segno}_iter${iter}.grd cp gravvb_inv_xy_prev.grd gvg_seg${segno}_iter${iter}.grd cp wmb_inv_xy_prev.grd gmb_seg${segno}_iter${iter}.grd cp curvmb_inv_xy_prev.grd gmcurv_seg${segno}_iter${iter}.grd cp gravmb_inv_xy_prev.grd gmg_seg${segno}_iter${iter}.grd # see if these are still needed gmt grdedit gvb_seg${segno}_iter${iter}.grd $(gmt grdinfo -I- grav_merc.grd) gmt grdedit gmb_seg${segno}_iter${iter}.grd $(gmt grdinfo -I- grav_merc.grd) gmt grdedit gvg_seg${segno}_iter${iter}.grd $(gmt grdinfo -I- grav_merc.grd) gmt grdedit gmg_seg${segno}_iter${iter}.grd $(gmt grdinfo -I- grav_merc.grd) awk '{print $1,$2}' < ${6} | gmt grdtrack -Ggvb_seg${segno}_iter${iter}.grd > gvb_seg${segno}_iter${iter}.dat awk '{print $1,$2}' < ${6} | gmt grdtrack -Ggmb_seg${segno}_iter${iter}.grd > gmb_seg${segno}_iter${iter}.dat awk '{print $1,$2}' < ${7} | gmt grdtrack -Ggvg_seg${segno}_iter${iter}.grd > gvg_seg${segno}_iter${iter}.dat awk '{print $1,$2}' < ${7} | gmt grdtrack -Ggmg_seg${segno}_iter${iter}.grd > gmg_seg${segno}_iter${iter}.dat join gmb_seg${segno}_iter${iter}.dat gvb_seg${segno}_iter${iter}.dat \ | awk '{print $1,$2,$3,$5}' > gb_seg${segno}_iter${iter}.dat join gmg_seg${segno}_iter${iter}.dat gvg_seg${segno}_iter${iter}.dat \ | awk '{print $1,$2,$3,$5}' > gg_seg${segno}_iter${iter}.dat let seg++ done < $1 #