#!/bin/sh

# ------------------------------------------------------------------------------
TRAITER_PLASTIC () {
# ------------------------------------------------------------------------------
#
# $1: "1" ou "10"
# $2: nom du fichier  lire
# $3: debut des noms des fichiers  crire
#
# ------------------------------------------------------------------------------

TYPE=$1
NOM1=$2
NOM2=$3
INFO=`basename $NOM1`
VERSION=`echo $NOM1 | awk '{print substr($1,length($1)-6,3)}'`

#echo "TYPE="$TYPE
#echo "NOM1="$NOM1
#echo "NOM2="$NOM2
#echo "INFO="$INFO
#echo "VERSION="$VERSION

cat $NOM1 | awk -v NOM2=$NOM2 -v TYPE=$TYPE -v INFO=$INFO -v VERSION=$VERSION '{

	if (FNR >= 3 && ((TYPE=="1" && NF>=12) || (TYPE=="10" && NF>=9))) {

		if (TYPE=="1") {

			#2007    354     00      00      30      0.551   2007-12-20/00:00:30     2007-12-20/00:01:12     7.07    473.0     8.58E+04      37.6 ...
			#$1      $2      $3(HH)  $4(MM)  $5      $6      $7                      $8                      $9     $10        $11           $12

			sdate = $7
                        split($6,tmp,".")
                        MILLI = tmp[2]
			Np_cm3 = $9
			Vp_km_sec = $10
			Tp_K = $11
			Vthermal_km_sec = $12
			N_S_Inst_deg = $13
			E_W_Inst_deg = $14
			Vr_HERTN_km_s = $15
			Vt_HERTN_km_s = $16
			Vn_HERTN_km_s = $17
			N_S_HERTN_deg = $18
			E_W_HERTN_deg = $19
			Vr_RTN_km_s = $20
			Vt_RTN_km_s = $21
			Vn_RTN_km_s = $22
			N_S_RTN_deg = $23
			E_W_RTN_deg = $24


		} else if (TYPE=="10") {

			#2007    354     00      00      2007-12-20/00:00:00     6.76    476.0     8.34E+04      37.1 ...
			#$1      $2      $3(HH)  $4(MM)  $5                      $6      $7        $8            $9

			sdate = $5
			MILLI = 0
			Np_cm3 = $6
			Vp_km_sec = $7
			Tp_K = $8
			Vthermal_km_sec = $9
			N_S_Inst_deg = $10
			E_W_Inst_deg = $11
			Vr_HERTN_km_s = $12
			Vt_HERTN_km_s = $13
			Vn_HERTN_km_s = $14
			N_S_HERTN_deg = $15
			E_W_HERTN_deg = $16
			Vr_RTN_km_s = $17
			Vt_RTN_km_s = $18
			Vn_RTN_km_s = $19
			N_S_RTN_deg = $20
			E_W_RTN_deg = $21

		}

		if (sdate == "-1.0E+31") {
			#printf ("AIE\n");
		} else {

			split (sdate, tmp1, "/")
			split (tmp1[1], tmp, "-")
			ANNEE=tmp[1]
			MOIS=tmp[2]
			JOUR=tmp[3]

			split (tmp1[2], tmp, ":")
			HEURE=tmp[1]
			MINUTE=tmp[2]
			SECONDE=tmp[3]
			YYYYMMDD = sprintf ("%4d%02d%02d", ANNEE, MOIS, JOUR)
			FICHIER = sprintf ("%s_%s_%s.asc.tmp", NOM2, YYYYMMDD, VERSION)

			# Vrification
			HH = $3
			MM = $4
			# Y a marre de tous ces messages ...
			#if (HH!=HEURE || MM!=MINUTE) {
			#	printf "%s: WARNING HH!=HEURE OR MM!=MINUTE %s\n", INFO, $0
			#}

			#printf ("sdate=%s  Np=%s  Vp=%s  Tp=%s  Vth=%s ANNEE=%s  MOIS=%s  JOUR=%s HEURE=%s  MINUTE=%s FICHIER=%s\n", sdate, Np_cm3, Vp_km_sec, Tp_K, Vthermal_km_sec, ANNEE, MOIS, JOUR, HEURE, MINUTE, FICHIER);
			if (OUVERT[YYYYMMDD]==0) {
				#printf "%s -> %s\n", INFO, FICHIER
				printf "Start_variable = Epoch\n"		>  FICHIER
				printf "End_variable = Epoch\n"			>> FICHIER
				printf "Start_variable = Np_cm3\n"		>> FICHIER
				printf "End_variable = Np_cm3\n"		>> FICHIER
				printf "Start_variable = Vp_km_sec\n"		>> FICHIER
				printf "End_variable = Vp_km_sec\n"		>> FICHIER
				printf "Start_variable = Tp_K\n"		>> FICHIER
				printf "End_variable = Tp_K\n"			>> FICHIER
				printf "Start_variable = Vthermal_km_sec\n"	>> FICHIER
				printf "End_variable = Vthermal_km_sec\n"	>> FICHIER

				printf "Start_variable = N_S_Inst_deg\n"	>> FICHIER
				printf "End_variable = N_S_Inst_deg\n"		>> FICHIER
				printf "Start_variable = E_W_Inst_deg\n"	>> FICHIER
				printf "End_variable = E_W_Inst_deg\n"		>> FICHIER
				printf "Start_variable = Vr_HERTN_km_s\n"	>> FICHIER
				printf "End_variable = Vr_HERTN_km_s\n"		>> FICHIER
				printf "Start_variable = Vt_HERTN_km_s\n"	>> FICHIER
				printf "End_variable = Vt_HERTN_km_s\n"		>> FICHIER
				printf "Start_variable = Vn_HERTN_km_s\n"	>> FICHIER
				printf "End_variable = Vn_HERTN_km_s\n"		>> FICHIER
				printf "Start_variable = N_S_HERTN_deg\n"	>> FICHIER
				printf "End_variable = N_S_HERTN_deg\n"		>> FICHIER
				printf "Start_variable = E_W_HERTN_deg\n"	>> FICHIER
				printf "End_variable = E_W_HERTN_deg\n"		>> FICHIER
				printf "Start_variable = Vr_RTN_km_s\n"		>> FICHIER
				printf "End_variable = Vr_RTN_km_s\n"		>> FICHIER
				printf "Start_variable = Vt_RTN_km_s\n"		>> FICHIER
				printf "End_variable = Vt_RTN_km_s\n"		>> FICHIER
				printf "Start_variable = Vn_RTN_km_s\n"		>> FICHIER
				printf "End_variable = Vn_RTN_km_s\n"		>> FICHIER
				printf "Start_variable = N_S_RTN_deg\n"		>> FICHIER
				printf "End_variable = N_S_RTN_deg\n"		>> FICHIER
				printf "Start_variable = E_W_RTN_deg\n"		>> FICHIER
				printf "End_variable = E_W_RTN_deg\n"		>> FICHIER

			}
			printf "%4d %02d %02d %02d %02d %02d.%03d %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\n",
				ANNEE,MOIS,JOUR,HEURE,MINUTE,SECONDE,MILLI,
				Np_cm3, Vp_km_sec, Tp_K, Vthermal_km_sec,
				N_S_Inst_deg, E_W_Inst_deg, 
				Vr_HERTN_km_s, Vt_HERTN_km_s, Vn_HERTN_km_s, 
				N_S_HERTN_deg, E_W_HERTN_deg, 
				Vr_RTN_km_s, Vt_RTN_km_s, Vn_RTN_km_s, 
				N_S_RTN_deg, E_W_RTN_deg >> FICHIER
			OUVERT[YYYYMMDD]=1

		}

	}

} '

#echo

}




# ------------------------------------------------------------------------------
# MAIN () {
# ------------------------------------------------------------------------------

YYYY=`date +%Y`

for TYPE in 10 1; do

	for SC in A B; do

		for YYYY in `seq 2007 $YYYY`; do
			REP1=/DATA/STEREO/DATA/PLASTIC/1dmax_ascii/stereo-ssc.nascom.nasa.gov/data/ins_data/plastic/level2/Protons/Derived_from_1D_Maxwellian/ASCII/"$TYPE"min/"$SC"/"$YYYY"
			NOM2=/DATA/STEREO/DATA/PLASTIC/L2/ST"$SC"_Proton_Bulk_"$TYPE"mn
			for NOM1 in "$REP1"/ST"$SC"_L2_PLA_1DMax_"$TYPE"min_"$YYYY"????_???_V??.txt; do
				TRAITER_PLASTIC $TYPE $NOM1 $NOM2
			done
		done

	done

done

cd /DATA/STEREO/DATA/PLASTIC/L2

for nom1 in `ls | grep "asc.tmp"`; do

	nom2=`echo $nom1 | awk '{print substr($1,0,length($1)-4)}'`
	cmp $nom1 /DATA/STEREO/DATA/PLASTIC/L2/$nom2 2> /dev/null
	code=$?
	if [ $code -eq 0 ]; then
		      rm $nom1 
		#echo "rm $nom1"
	else
		      mv $nom1 $nom2 
		echo "mv $nom1 $nom2"
	fi

done
