head	8.7;
access;
symbols;
locks; strict;
comment	@c @;


8.7
date	2026.05.11.12.01.11;	author mcalabre;	state Exp;
branches;
next	8.6;

8.6
date	2026.03.29.13.53.57;	author mcalabre;	state Exp;
branches
	8.6.1.1;
next	8.5;

8.5
date	2025.12.06.13.47.41;	author mcalabre;	state Exp;
branches
	8.5.1.1;
next	8.4;

8.4
date	2024.10.28.13.56.17;	author mcalabre;	state Exp;
branches
	8.4.1.1;
next	8.3;

8.3
date	2024.05.13.16.33.01;	author mcalabre;	state Exp;
branches
	8.3.1.1;
next	8.2;

8.2
date	2023.11.16.10.00.30;	author mcalabre;	state Exp;
branches
	8.2.1.1;
next	8.1;

8.1
date	2023.07.05.17.12.07;	author mcalabre;	state Exp;
branches
	8.1.1.1;
next	8.0;

8.0
date	2023.07.01.06.15.05;	author mcalabre;	state Exp;
branches
	8.0.1.1;
next	7.13;

7.13
date	2022.10.07.03.43.35;	author mcalabre;	state Exp;
branches
	7.13.1.1;
next	7.12;

7.12
date	2022.09.09.04.57.58;	author mcalabre;	state Exp;
branches
	7.12.1.1;
next	7.11;

7.11
date	2022.04.26.06.13.52;	author mcalabre;	state Exp;
branches
	7.11.1.1;
next	7.10;

7.10
date	2022.04.23.14.25.15;	author mcalabre;	state Exp;
branches
	7.10.1.1;
next	7.9;

7.9
date	2022.03.25.15.14.49;	author mcalabre;	state Exp;
branches
	7.9.1.1;
next	7.8;

7.8
date	2022.03.25.06.11.49;	author mcalabre;	state Exp;
branches
	7.8.1.1;
next	7.7;

7.7
date	2021.07.12.06.36.49;	author mcalabre;	state Exp;
branches
	7.7.1.1;
next	7.6;

7.6
date	2021.04.13.12.57.02;	author mcalabre;	state Exp;
branches
	7.6.1.1;
next	7.5;

7.5
date	2021.03.20.05.54.58;	author mcalabre;	state Exp;
branches
	7.5.1.1;
next	7.4;

7.4
date	2021.01.31.02.24.52;	author mcalabre;	state Exp;
branches
	7.4.1.1;
next	7.3;

7.3
date	2020.06.03.03.37.03;	author mcalabre;	state Exp;
branches
	7.3.1.1;
next	7.2;

7.2
date	2020.03.09.07.31.24;	author mcalabre;	state Exp;
branches
	7.2.1.1;
next	7.1;

7.1
date	2019.12.31.13.25.19;	author mcalabre;	state Exp;
branches
	7.1.1.1;
next	6.4;

6.4
date	2019.08.15.09.30.18;	author mcalabre;	state Exp;
branches
	6.4.1.1;
next	6.3;

6.3
date	2019.07.12.07.33.40;	author mcalabre;	state Exp;
branches
	6.3.1.1;
next	6.2;

6.2
date	2018.10.20.10.03.14;	author mcalabre;	state Exp;
branches
	6.2.1.1;
next	6.1;

6.1
date	2018.10.19.08.35.17;	author mcalabre;	state Exp;
branches
	6.1.1.1;
next	5.20;

5.20
date	2018.10.05.05.32.42;	author mcalabre;	state Exp;
branches
	5.20.1.1;
next	5.19;

5.19
date	2018.07.26.15.37.05;	author mcalabre;	state Exp;
branches
	5.19.1.1;
next	5.18;

5.18
date	2018.01.10.08.32.14;	author mcalabre;	state Exp;
branches
	5.18.1.1;
next	5.17;

5.17
date	2017.09.18.08.44.24;	author mcalabre;	state Exp;
branches
	5.17.1.1;
next	5.16;

5.16
date	2017.01.15.04.25.03;	author mcalabre;	state Exp;
branches
	5.16.1.1;
next	5.15;

5.15
date	2016.04.05.12.55.12;	author mcalabre;	state Exp;
branches
	5.15.1.1;
next	5.14;

5.14
date	2016.02.07.10.49.32;	author mcalabre;	state Exp;
branches
	5.14.1.1;
next	5.13;

5.13
date	2016.01.26.08.51.16;	author mcalabre;	state Exp;
branches
	5.13.1.1;
next	5.12;

5.12
date	2015.11.15.02.13.02;	author mcalabre;	state Exp;
branches
	5.12.1.1;
next	5.11;

5.11
date	2015.10.18.09.13.07;	author mcalabre;	state Exp;
branches
	5.11.1.1;
next	5.10;

5.10
date	2015.10.09.08.19.17;	author mcalabre;	state Exp;
branches
	5.10.1.1;
next	5.9;

5.9
date	2015.07.21.09.20.04;	author mcalabre;	state Exp;
branches
	5.9.1.1;
next	5.8;

5.8
date	2015.07.08.11.04.02;	author mcalabre;	state Exp;
branches
	5.8.1.1;
next	5.7;

5.7
date	2015.06.29.02.44.18;	author mcalabre;	state Exp;
branches
	5.7.1.1;
next	5.6;

5.6
date	2015.06.14.07.11.26;	author mcalabre;	state Exp;
branches
	5.6.1.1;
next	5.5;

5.5
date	2015.05.05.13.16.33;	author mcalabre;	state Exp;
branches
	5.5.1.1;
next	5.4;

5.4
date	2015.04.21.14.41.07;	author mcalabre;	state Exp;
branches
	5.4.1.1;
next	5.3;

5.3
date	2015.04.21.02.50.53;	author mcalabre;	state Exp;
branches
	5.3.1.1;
next	5.2;

5.2
date	2015.04.15.12.35.09;	author mcalabre;	state Exp;
branches
	5.2.1.1;
next	5.1;

5.1
date	2015.04.07.10.56.38;	author mcalabre;	state Exp;
branches
	5.1.1.1;
next	5.0;

5.0
date	2015.04.05.12.25.02;	author mcalabre;	state Exp;
branches
	5.0.1.1;
next	4.25;

4.25
date	2014.12.14.14.29.38;	author mcalabre;	state Exp;
branches
	4.25.1.1;
next	4.24;

4.24
date	2014.09.18.15.25.02;	author mcalabre;	state Exp;
branches
	4.24.1.1;
next	4.23;

4.23
date	2014.05.13.05.50.53;	author mcalabre;	state Exp;
branches
	4.23.1.1;
next	4.22;

4.22
date	2014.04.12.15.03.53;	author mcalabre;	state Exp;
branches
	4.22.1.1;
next	4.21;

4.21
date	2014.03.24.05.12.29;	author mcalabre;	state Exp;
branches
	4.21.1.1;
next	4.20;

4.20
date	2013.12.18.05.42.50;	author mcalabre;	state Exp;
branches
	4.20.1.1;
next	4.19;

4.19
date	2013.09.29.14.17.53;	author mcalabre;	state Exp;
branches
	4.19.1.1;
next	4.18;

4.18
date	2013.07.13.10.00.06;	author mcalabre;	state Exp;
branches
	4.18.1.1;
next	4.17;

4.17
date	2013.01.29.05.29.22;	author cal103;	state Exp;
branches
	4.17.1.1;
next	4.16;

4.16
date	2012.11.07.04.42.45;	author cal103;	state Exp;
branches
	4.16.1.1;
next	4.15;

4.15
date	2012.09.26.14.26.06;	author cal103;	state Exp;
branches
	4.15.1.1;
next	4.14;

4.14
date	2012.07.13.10.02.42;	author cal103;	state Exp;
branches
	4.14.1.1;
next	4.13;

4.13
date	2012.03.14.07.39.31;	author cal103;	state Exp;
branches
	4.13.1.1;
next	4.12;

4.12
date	2012.02.29.07.57.57;	author cal103;	state Exp;
branches
	4.12.1.1;
next	4.11;

4.11
date	2012.02.20.23.30.03;	author cal103;	state Exp;
branches
	4.11.1.1;
next	4.10;

4.10
date	2012.02.05.23.41.44;	author cal103;	state Exp;
branches
	4.10.1.1;
next	4.9;

4.9
date	2012.01.24.05.40.30;	author cal103;	state Exp;
branches
	4.9.1.1;
next	4.8;

4.8
date	2011.08.15.08.05.54;	author cal103;	state Exp;
branches
	4.8.1.1;
next	4.7;

4.7
date	2011.02.07.07.03.43;	author cal103;	state Exp;
branches
	4.7.1.1;
next	4.6;

4.6
date	2010.11.16.06.15.32;	author cal103;	state Exp;
branches
	4.6.1.1;
next	4.5;

4.5
date	2010.07.16.07.01.26;	author cal103;	state Exp;
branches
	4.5.1.1;
next	4.4;

4.4
date	2009.08.06.07.52.43;	author cal103;	state Exp;
branches
	4.4.1.1;
next	4.3;

4.3
date	2007.12.27.05.42.52;	author cal103;	state Exp;
branches
	4.3.1.1;
next	4.2;

4.2
date	2005.09.21.13.37.53;	author cal103;	state Exp;
branches
	4.2.1.1;
next	4.1;

4.1
date	2005.08.26.13.45.18;	author cal103;	state Exp;
branches;
next	4.0;

4.0
date	2005.02.04.12.45.05;	author cal103;	state Exp;
branches;
next	3.6;

3.6
date	2004.08.25.06.32.57;	author cal103;	state Exp;
branches;
next	3.5;

3.5
date	2004.06.28.04.51.35;	author mcalabre;	state Exp;
branches;
next	3.4;

3.4
date	2004.02.11.00.04.18;	author mcalabre;	state Exp;
branches;
next	3.3;

3.3
date	2003.10.21.08.36.48;	author mcalabre;	state Exp;
branches;
next	3.2;

3.2
date	2003.09.09.03.54.37;	author mcalabre;	state Exp;
branches;
next	3.1;

3.1
date	2003.04.28.04.48.53;	author mcalabre;	state Exp;
branches;
next	3.0;

3.0
date	2003.04.01.05.10.21;	author mcalabre;	state Exp;
branches;
next	2.10;

2.10
date	2002.04.03.01.24.44;	author mcalabre;	state Exp;
branches;
next	2.9;

2.9
date	2001.11.16.03.56.40;	author mcalabre;	state Exp;
branches;
next	2.8;

2.8
date	2000.12.04.05.10.36;	author mcalabre;	state Exp;
branches;
next	2.7;

2.7
date	2000.05.10.04.51.30;	author mcalabre;	state Exp;
branches;
next	2.6;

2.6
date	99.06.16.00.18.06;	author mcalabre;	state Exp;
branches;
next	2.5;

2.5
date	98.02.25.07.02.23;	author mcalabre;	state Exp;
branches;
next	2.4;

2.4
date	98.02.25.06.54.31;	author mcalabre;	state Exp;
branches;
next	2.3;

2.3
date	96.09.10.06.48.12;	author mcalabre;	state Exp;
branches;
next	2.2;

2.2
date	96.05.07.21.11.46;	author mcalabre;	state Exp;
branches;
next	2.1;

2.1
date	95.12.22.02.40.38;	author mcalabre;	state Exp;
branches;
next	2.0;

2.0
date	95.09.12.06.40.24;	author mcalabre;	state Exp;
branches;
next	1.2;

1.2
date	95.09.12.06.39.57;	author mcalabre;	state Exp;
branches;
next	1.1;

1.1
date	95.01.31.03.20.39;	author mcalabre;	state Exp;
branches;
next	;

4.2.1.1
date	2005.12.05.01.37.43;	author cal103;	state Exp;
branches;
next	4.2.1.2;

4.2.1.2
date	2007.07.03.08.32.37;	author cal103;	state Exp;
branches;
next	4.2.1.3;

4.2.1.3
date	2007.08.02.06.40.51;	author cal103;	state Exp;
branches;
next	4.2.1.4;

4.2.1.4
date	2007.12.03.05.37.50;	author cal103;	state Exp;
branches;
next	;

4.3.1.1
date	2007.12.27.13.25.35;	author cal103;	state Exp;
branches;
next	4.3.1.2;

4.3.1.2
date	2009.07.22.07.28.07;	author cal103;	state Exp;
branches;
next	4.3.1.3;

4.3.1.3
date	2009.08.06.02.50.21;	author cal103;	state Exp;
branches;
next	;

4.4.1.1
date	2009.08.10.08.55.07;	author cal103;	state Exp;
branches;
next	4.4.1.2;

4.4.1.2
date	2010.01.19.03.44.57;	author cal103;	state Exp;
branches;
next	;

4.5.1.1
date	2010.07.16.07.05.32;	author cal103;	state Exp;
branches;
next	;

4.6.1.1
date	2010.11.16.06.16.19;	author cal103;	state Exp;
branches;
next	4.6.1.2;

4.6.1.2
date	2011.01.14.06.34.16;	author cal103;	state Exp;
branches;
next	4.6.1.3;

4.6.1.3
date	2011.01.27.01.22.13;	author cal103;	state Exp;
branches;
next	;

4.7.1.1
date	2011.02.07.07.04.23;	author cal103;	state Exp;
branches;
next	;

4.8.1.1
date	2011.08.15.08.07.07;	author cal103;	state Exp;
branches;
next	4.8.1.2;

4.8.1.2
date	2011.08.16.01.34.41;	author cal103;	state Exp;
branches;
next	4.8.1.3;

4.8.1.3
date	2012.01.24.05.24.12;	author cal103;	state Exp;
branches;
next	;

4.9.1.1
date	2012.01.24.05.41.46;	author cal103;	state Exp;
branches;
next	;

4.10.1.1
date	2012.02.05.23.42.47;	author cal103;	state Exp;
branches;
next	;

4.11.1.1
date	2012.02.20.23.31.14;	author cal103;	state Exp;
branches;
next	;

4.12.1.1
date	2012.02.29.07.59.11;	author cal103;	state Exp;
branches;
next	;

4.13.1.1
date	2012.03.14.07.40.38;	author cal103;	state Exp;
branches;
next	4.13.1.2;

4.13.1.2
date	2012.07.13.03.41.54;	author cal103;	state Exp;
branches;
next	;

4.14.1.1
date	2012.07.13.10.04.58;	author cal103;	state Exp;
branches;
next	;

4.15.1.1
date	2012.09.26.14.27.52;	author cal103;	state Exp;
branches;
next	;

4.16.1.1
date	2012.11.07.04.45.57;	author cal103;	state Exp;
branches;
next	4.16.1.2;

4.16.1.2
date	2013.01.29.05.11.18;	author cal103;	state Exp;
branches;
next	;

4.17.1.1
date	2013.01.29.05.32.33;	author cal103;	state Exp;
branches;
next	4.17.1.2;

4.17.1.2
date	2013.07.12.04.11.31;	author mcalabre;	state Exp;
branches;
next	;

4.18.1.1
date	2013.07.13.10.02.39;	author mcalabre;	state Exp;
branches;
next	;

4.19.1.1
date	2013.09.29.14.20.40;	author mcalabre;	state Exp;
branches;
next	;

4.20.1.1
date	2013.12.18.05.46.56;	author mcalabre;	state Exp;
branches;
next	4.20.1.2;

4.20.1.2
date	2014.03.21.06.41.05;	author mcalabre;	state Exp;
branches;
next	;

4.21.1.1
date	2014.03.24.05.15.30;	author mcalabre;	state Exp;
branches;
next	;

4.22.1.1
date	2014.04.12.15.06.34;	author mcalabre;	state Exp;
branches;
next	;

4.23.1.1
date	2014.05.13.05.53.51;	author mcalabre;	state Exp;
branches;
next	;

4.24.1.1
date	2014.09.18.15.28.12;	author mcalabre;	state Exp;
branches;
next	;

4.25.1.1
date	2014.12.14.14.32.47;	author mcalabre;	state Exp;
branches;
next	4.25.1.2;

4.25.1.2
date	2015.01.06.01.02.37;	author mcalabre;	state Exp;
branches;
next	;

5.0.1.1
date	2015.04.05.12.28.03;	author mcalabre;	state Exp;
branches;
next	;

5.1.1.1
date	2015.04.07.11.01.12;	author mcalabre;	state Exp;
branches;
next	;

5.2.1.1
date	2015.04.15.12.39.18;	author mcalabre;	state Exp;
branches;
next	;

5.3.1.1
date	2015.04.21.02.54.05;	author mcalabre;	state Exp;
branches;
next	;

5.4.1.1
date	2015.04.21.14.44.31;	author mcalabre;	state Exp;
branches;
next	;

5.5.1.1
date	2015.05.05.13.21.03;	author mcalabre;	state Exp;
branches;
next	;

5.6.1.1
date	2015.06.14.07.14.47;	author mcalabre;	state Exp;
branches;
next	;

5.7.1.1
date	2015.06.29.02.47.26;	author mcalabre;	state Exp;
branches;
next	;

5.8.1.1
date	2015.07.08.11.07.22;	author mcalabre;	state Exp;
branches;
next	;

5.9.1.1
date	2015.07.21.09.28.11;	author mcalabre;	state Exp;
branches;
next	;

5.10.1.1
date	2015.10.09.08.22.39;	author mcalabre;	state Exp;
branches;
next	;

5.11.1.1
date	2015.10.18.09.16.30;	author mcalabre;	state Exp;
branches;
next	;

5.12.1.1
date	2015.11.15.02.16.17;	author mcalabre;	state Exp;
branches;
next	5.12.1.2;

5.12.1.2
date	2016.01.25.05.21.36;	author mcalabre;	state Exp;
branches;
next	;

5.13.1.1
date	2016.01.26.08.54.35;	author mcalabre;	state Exp;
branches;
next	;

5.14.1.1
date	2016.02.07.10.52.48;	author mcalabre;	state Exp;
branches;
next	;

5.15.1.1
date	2016.04.05.12.58.38;	author mcalabre;	state Exp;
branches;
next	5.15.1.2;

5.15.1.2
date	2017.01.15.04.08.23;	author mcalabre;	state Exp;
branches;
next	;

5.16.1.1
date	2017.01.15.04.29.03;	author mcalabre;	state Exp;
branches;
next	;

5.17.1.1
date	2017.09.18.08.46.00;	author mcalabre;	state Exp;
branches;
next	5.17.1.2;

5.17.1.2
date	2018.01.10.08.26.53;	author mcalabre;	state Exp;
branches;
next	;

5.18.1.1
date	2018.01.10.08.33.04;	author mcalabre;	state Exp;
branches;
next	;

5.19.1.1
date	2018.07.26.15.41.42;	author mcalabre;	state Exp;
branches;
next	;

5.20.1.1
date	2018.10.05.05.33.33;	author mcalabre;	state Exp;
branches;
next	;

6.1.1.1
date	2018.10.19.08.36.15;	author mcalabre;	state Exp;
branches;
next	;

6.2.1.1
date	2018.10.20.10.04.15;	author mcalabre;	state Exp;
branches;
next	6.2.1.2;

6.2.1.2
date	2019.05.10.02.08.35;	author mcalabre;	state Exp;
branches;
next	6.2.1.3;

6.2.1.3
date	2019.07.09.12.41.37;	author mcalabre;	state Exp;
branches;
next	;

6.3.1.1
date	2019.07.12.07.34.37;	author mcalabre;	state Exp;
branches;
next	;

6.4.1.1
date	2019.08.15.09.31.29;	author mcalabre;	state Exp;
branches;
next	6.4.1.2;

6.4.1.2
date	2019.12.31.03.29.14;	author mcalabre;	state Exp;
branches;
next	;

7.1.1.1
date	2019.12.31.13.28.19;	author mcalabre;	state Exp;
branches;
next	;

7.2.1.1
date	2020.03.09.07.34.50;	author mcalabre;	state Exp;
branches;
next	7.2.1.2;

7.2.1.2
date	2020.05.07.04.05.21;	author mcalabre;	state Exp;
branches;
next	;

7.3.1.1
date	2020.06.03.03.38.11;	author mcalabre;	state Exp;
branches;
next	7.3.1.2;

7.3.1.2
date	2021.01.19.14.11.08;	author mcalabre;	state Exp;
branches;
next	7.3.1.3;

7.3.1.3
date	2021.01.28.12.32.09;	author mcalabre;	state Exp;
branches;
next	;

7.4.1.1
date	2021.01.31.02.26.24;	author mcalabre;	state Exp;
branches;
next	;

7.5.1.1
date	2021.03.20.05.56.42;	author mcalabre;	state Exp;
branches;
next	;

7.6.1.1
date	2021.04.13.13.00.36;	author mcalabre;	state Exp;
branches;
next	;

7.7.1.1
date	2021.07.12.06.38.28;	author mcalabre;	state Exp;
branches;
next	7.7.1.2;

7.7.1.2
date	2022.03.25.06.06.00;	author mcalabre;	state Exp;
branches;
next	;

7.8.1.1
date	2022.03.25.06.14.15;	author mcalabre;	state Exp;
branches;
next	;

7.9.1.1
date	2022.03.25.15.16.40;	author mcalabre;	state Exp;
branches;
next	;

7.10.1.1
date	2022.04.23.14.26.54;	author mcalabre;	state Exp;
branches;
next	;

7.11.1.1
date	2022.04.26.06.15.33;	author mcalabre;	state Exp;
branches;
next	;

7.12.1.1
date	2022.09.09.05.00.36;	author mcalabre;	state Exp;
branches;
next	;

7.13.1.1
date	2022.10.07.03.45.47;	author mcalabre;	state Exp;
branches;
next	7.13.1.2;

7.13.1.2
date	2023.06.15.04.17.21;	author mcalabre;	state Exp;
branches;
next	;

8.0.1.1
date	2023.07.01.06.22.44;	author mcalabre;	state Exp;
branches;
next	8.0.1.2;

8.0.1.2
date	2023.07.04.15.11.25;	author mcalabre;	state Exp;
branches;
next	;

8.1.1.1
date	2023.07.05.17.15.01;	author mcalabre;	state Exp;
branches;
next	;

8.2.1.1
date	2023.11.16.10.05.58;	author mcalabre;	state Exp;
branches;
next	8.2.1.2;

8.2.1.2
date	2024.04.02.14.06.12;	author mcalabre;	state Exp;
branches;
next	;

8.3.1.1
date	2024.05.13.16.35.40;	author mcalabre;	state Exp;
branches;
next	;

8.4.1.1
date	2024.10.28.13.58.42;	author mcalabre;	state Exp;
branches;
next	8.4.1.2;

8.4.1.2
date	2025.12.06.13.37.19;	author mcalabre;	state Exp;
branches;
next	;

8.5.1.1
date	2025.12.06.14.05.16;	author mcalabre;	state Exp;
branches;
next	8.5.1.2;

8.5.1.2
date	2026.03.29.13.36.19;	author mcalabre;	state Exp;
branches;
next	;

8.6.1.1
date	2026.03.29.14.19.27;	author mcalabre;	state Exp;
branches;
next	;


desc
@Program to test the WCSLIB spherical projection routines by plotting test grids
(requires PGPLOT and X11).
@


8.7
log
@WCSLIB 8.7
@
text
@*=======================================================================
*
* WCSLIB 8.7 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2026, Mark Calabretta
*
* This file is part of WCSLIB.
*
* WCSLIB is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* WCSLIB is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with WCSLIB.  If not, see http://www.gnu.org/licenses.
*
* Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
* http://www.atnf.csiro.au/computing/software/wcs
* $Id: tprj2.f,v 8.6.1.1 2026/03/29 14:19:27 mcalabre Exp mcalabre $
*=======================================================================

      PROGRAM TPRJ2
*-----------------------------------------------------------------------
*
* TPRJ2 tests projection routines by plotting test graticules using
* PGPLOT.
*
*-----------------------------------------------------------------------
      INTEGER   J
      DOUBLE PRECISION PV(0:29)

      DOUBLE PRECISION PI
      PARAMETER (PI = 3.141592653589793238462643D0)
*-----------------------------------------------------------------------
      WRITE (*, 10)
 10   FORMAT (
     :  'Testing WCSLIB spherical projection routines (tprj2.f)',/,
     :  '------------------------------------------------------')

      DO 20 J = 0, 29
        PV(J) = 0D0
 20   CONTINUE

*     PGPLOT initialization.
      CALL PGBEG (0, '/xwindow', 1, 1)

*     Define pen colours.
      CALL PGSCR (0, 0.00, 0.00, 0.00)
      CALL PGSCR (1, 1.00, 1.00, 0.00)
      CALL PGSCR (2, 1.00, 1.00, 1.00)
      CALL PGSCR (3, 0.50, 0.50, 0.80)
      CALL PGSCR (4, 0.80, 0.50, 0.50)
      CALL PGSCR (5, 0.80, 0.80, 0.80)
      CALL PGSCR (6, 0.50, 0.50, 0.80)
      CALL PGSCR (7, 0.80, 0.50, 0.50)
      CALL PGSCR (8, 0.30, 0.50, 0.30)

 30   FORMAT(/,A,' projection')
 40   FORMAT(/,A,' projection',/,'Parameters:',5F12.5,/,5F12.5)

*     AZP: zenithal/azimuthal perspective.
      PV(1) =  2D0
      PV(2) = 30D0
      WRITE (*, 40) 'Zenithal/azimuthal perspective', (PV(J), J=1,2)
      CALL PRJPLT ('AZP', 90, -90, PV)

*     SZP: zenithal/azimuthal perspective.
      PV(1) =   2D0
      PV(2) = 210D0
      PV(3) =  60D0
      WRITE (*, 40) 'Slant zenithal perspective', (PV(J), J=1,3)
      CALL PRJPLT ('SZP', 90, -90, PV)

*     TAN: gnomonic.
      WRITE (*, 30) 'Gnomonic'
      CALL PRJPLT ('TAN', 90,   5, PV)

*     STG: stereographic.
      WRITE (*, 30) 'Stereographic'
      CALL PRJPLT ('STG', 90, -85, PV)

*     SIN: orthographic.
      PV(1) = -0.3D0
      PV(2) =  0.5D0
      WRITE (*, 40) 'Orthographic/synthesis', (PV(J), J=1,2)
      CALL PRJPLT ('SIN', 90, -90, PV)

*     ARC: zenithal/azimuthal equidistant.
      WRITE (*, 30) 'Zenithal/azimuthal equidistant'
      CALL PRJPLT ('ARC', 90, -90, PV)

*     ZPN: zenithal/azimuthal polynomial.
      PV(0) =  0.05000D0
      PV(1) =  0.95000D0
      PV(2) = -0.02500D0
      PV(3) = -0.15833D0
      PV(4) =  0.00208D0
      PV(5) =  0.00792D0
      PV(6) = -0.00007D0
      PV(7) = -0.00019D0
      PV(8) =  0.00000D0
      PV(9) =  0.00000D0
      WRITE (*, 40) 'Zenithal/azimuthal polynomial', (PV(J), J=0,9)
      CALL PRJPLT ('ZPN', 90,  10, PV)

*     ZEA: zenithal/azimuthal equal area.
      WRITE (*, 30) 'Zenithal/azimuthal equal area'
      CALL PRJPLT ('ZEA', 90, -90, PV)

*     AIR: Airy's zenithal projection.
      PV(1) = 45D0
      WRITE (*, 40) 'Airy''s zenithal', PV(1)
      CALL PRJPLT ('AIR', 90, -85, PV)

*     CYP: cylindrical perspective.
      PV(1) = 3.0D0
      PV(2) = 0.8D0
      WRITE (*, 40) 'Cylindrical perspective', (PV(J), J=1,2)
      CALL PRJPLT ('CYP', 90, -90, PV)

*     CEA: cylindrical equal area.
      PV(1) = 0.75D0
      WRITE (*, 40) 'Cylindrical equal area', PV(1)
      CALL PRJPLT ('CEA', 90, -90, PV)

*     CAR: plate carree.
      WRITE (*, 30) 'Plate carree'
      CALL PRJPLT ('CAR', 90, -90, PV)

*     MER: Mercator's.
      WRITE (*, 30) 'Mercator''s'
      CALL PRJPLT ('MER', 85, -85, PV)

*     SFL: Sanson-Flamsteed.
      WRITE (*, 30) 'Sanson-Flamsteed (global sinusoid)'
      CALL PRJPLT ('SFL', 90, -90, PV)

*     PAR: parabolic.
      WRITE (*, 30) 'Parabolic'
      CALL PRJPLT ('PAR', 90, -90, PV)

*     MOL: Mollweide's projection.
      WRITE (*, 30) 'Mollweide''s'
      CALL PRJPLT ('MOL', 90, -90, PV)

*     AIT: Hammer-Aitoff.
      WRITE (*, 30) 'Hammer-Aitoff'
      CALL PRJPLT ('AIT', 90, -90, PV)

*     COP: conic perspective.
      PV(1) =  60D0
      PV(2) =  15D0
      WRITE (*, 40) 'Conic perspective', (PV(J), J=1,2)
      CALL PRJPLT ('COP', 90, -25, PV)

*     COE: conic equal area.
      PV(1) =  60D0
      PV(2) = -15D0
      WRITE (*, 40) 'Conic equal area', (PV(J), J=1,2)
      CALL PRJPLT ('COE', 90, -90, PV)

*     COD: conic equidistant.
      PV(1) = -60D0
      PV(2) =  15D0
      WRITE (*, 40) 'Conic equidistant', (PV(J), J=1,2)
      CALL PRJPLT ('COD', 90, -90, PV)

*     COO: conic orthomorphic.
      PV(1) = -60D0
      PV(2) = -15D0
      WRITE (*, 40) 'Conic orthomorphic', (PV(J), J=1,2)
      CALL PRJPLT ('COO', 85, -90, PV)

*     BON: Bonne's projection.
      PV(1) = 30D0
      WRITE (*, 40) 'Bonne''s', PV(1)
      CALL PRJPLT ('BON', 90, -90, PV)

*     PCO: polyconic.
      WRITE (*, 30) 'Polyconic'
      CALL PRJPLT ('PCO', 90, -90, PV)

*     TSC: tangential spherical cube.
      WRITE (*, 30) 'Tangential spherical cube'
      CALL PRJPLT ('TSC', 90, -90, PV)

*     CSC: COBE quadrilateralized spherical cube.
      WRITE (*, 30) 'COBE quadrilateralized spherical cube'
      CALL PRJPLT ('CSC', 90, -90, PV)

*     QSC: quadrilateralized spherical cube.
      WRITE (*, 30) 'Quadrilateralized spherical cube'
      CALL PRJPLT ('QSC', 90, -90, PV)

*     HPX: HEALPix projection.
      PV(1) = 4D0
      PV(2) = 3D0
      WRITE (*, 40) 'HEALPix', (PV(J), J=1,2)
      CALL PRJPLT ('HPX', 90, -90, PV)

*     XPH: HEALPix polar, aka "butterfly" projection.
      WRITE (*, 40) 'Butterfly', (PV(J), J=1,2)
      CALL PRJPLT ('XPH', 90, -90, PV)

      CALL PGASK (0)
      CALL PGEND

      END


      SUBROUTINE PRJPLT (PCODE, NORTH, SOUTH, PV)
*-----------------------------------------------------------------------
*   PRJPLT draws a 15 degree coordinate graticule.
*
*   Given:
*      PCODE    C*3      Projection code.
*      NORTH    I        Northern cutoff latitude, degrees.
*      SOUTH    I        Southern cutoff latitude, degrees.
*      PV       D(0:29)  Projection parameters.
*-----------------------------------------------------------------------
      LOGICAL   CUBIC, HEALPX, INTRRP
      INTEGER   CI, H, ILAT, ILNG, J, K, LEN, NORTH, SOUTH, STAT(361),
     :          STATUS
      REAL      HX, HY, SX, SY, XR(512), XR0, YR(512), YR0
      DOUBLE PRECISION LAT(361), LNG(361), PV(0:29), X(361), X0, Y(361),
     :          Y0
      CHARACTER PCODE*3

*     On some systems, such as Sun Sparc, the struct MUST be aligned
*     on a double precision boundary, done here using an equivalence.
*     Failure to do this may result in mysterious "bus errors".
      INCLUDE 'prj.inc'
      INTEGER   PRJ(PRJLEN)
      DOUBLE PRECISION DUMMY
      EQUIVALENCE (PRJ,DUMMY)
*-----------------------------------------------------------------------
      STATUS = PRJINI(PRJ)

      DO 10 J = 0, 29
        STATUS = PRJPTD (PRJ, PRJ_PV, PV(J), J)
 10   CONTINUE

      STATUS = PRJPTC (PRJ, PRJ_CODE, PCODE, 0)

      WRITE (*, 20) PCODE, NORTH, SOUTH
 20   FORMAT ('Plotting ',A3,'; latitudes',I3,' to',I4,'.')

      CALL PGASK (0)

      STATUS = PRJSET(PRJ)
      STATUS = PRJGTI (PRJ, PRJ_CATEGORY, J)
      CUBIC  = J.EQ.PRJ_QUADCUBE
      HEALPX = J.EQ.PRJ_HEALPIX
      IF (CUBIC) THEN
*       Draw the perimeter of the quadcube projection.
        CALL PGENV (-335.0, 65.0, -200.0, 200.0, 1, -2)
        CALL PGSCI (2)
        CALL PGTEXT (-340.0, -220.0, PCODE // ' - 15 degree graticule')

        CALL PGSCI (8)

        STATUS = PRJGTD (PRJ, PRJ_X0, X0)
        STATUS = PRJGTD (PRJ, PRJ_Y0, Y0)

        XR0 = REAL(X0)
        YR0 = REAL(Y0)

        XR(1) =      45.0 + XR0
        YR(1) =      45.0 - YR0
        XR(2) =      45.0 + XR0
        YR(2) =  3.0*45.0 - YR0
        XR(3) =     -45.0 + XR0
        YR(3) =  3.0*45.0 - YR0
        XR(4) =     -45.0 + XR0
        YR(4) = -3.0*45.0 - YR0
        XR(5) =      45.0 + XR0
        YR(5) = -3.0*45.0 - YR0
        XR(6) =      45.0 + XR0
        YR(6) =      45.0 - YR0
        XR(7) = -7.0*45.0 + XR0
        YR(7) =      45.0 - YR0
        XR(8) = -7.0*45.0 + XR0
        YR(8) =     -45.0 - YR0
        XR(9) =      45.0 + XR0
        YR(9) =     -45.0 - YR0
        CALL PGLINE (9, XR, YR)

      ELSE
        CALL PGENV (-200.0, 200.0, -200.0, 200.0, 1, -2)
        CALL PGSCI (2)
        CALL PGTEXT (-240.0, -220.0, PCODE//' - 15 degree graticule')

        IF (HEALPX) THEN
          IF (PCODE.EQ.'HPX') THEN
*           Draw the perimeter of the HEALPix projection.
            CALL PGSCI (8)

            H = NINT(PV(1))
            SX = 180.0 / H
            SY = SX * NINT(PV(2) + 1D0) / 2.0

            STATUS = PRJGTD (PRJ, PRJ_X0, X0)
            STATUS = PRJGTD (PRJ, PRJ_Y0, Y0)

            XR0 = REAL(X0)
            YR0 = REAL(Y0)

            HX = 180.0 + XR0
            HY = SY - SX - YR0
            CALL PGMOVE (HX, HY)

            DO 30 J = 1, H
              HX = HX - SX
              HY = HY + SX
              CALL PGDRAW (HX, HY)

              HX = HX - SX
              HY = HY - SX
              CALL PGDRAW (HX, HY)
 30         CONTINUE

            HX = 180.0 + XR0
            HY = -SY + SX - YR0

            IF (MOD(INT(PV(2)),2).EQ.1) THEN
              K = 1
            ELSE
              K = -1
              HY = HY - SX
            END IF

            CALL PGMOVE (HX, HY)

            DO 40 J = 1, H
              HX = HX - SX
              HY = HY - K*SX
              CALL PGDRAW (HX, HY)

              HX = HX - SX
              HY = HY + K*SX
              CALL PGDRAW (HX, HY)
 40         CONTINUE

          ELSE IF (PCODE.EQ.'XPH') THEN
            DO 70 ILNG = -90, 180, 90
              LNG(1) = DBLE(ILNG) - 0.0001

              J = 1
              DO 50 ILAT = 90, -90, -1
                LAT(J) = DBLE(ILAT)
                J = J + 1
 50           CONTINUE

              STATUS = PRJS2X(PRJ, 1, 181, 1, 1, LNG, LAT, X, Y, STAT)

              DO 60 J = 1, 181
                XR(J) = -REAL(X(J))
                YR(J) =  REAL(Y(J))
 60           CONTINUE

              CALL PGLINE(181, XR, YR)
 70         CONTINUE
          END IF

        END IF
      END IF


      CI = 1
      DO 100 ILNG = -180, 180, 15
        CI = CI + 1
        IF (CI.GT.7) CI = 2

        LNG(1) = DBLE(ILNG)

        IF (ILNG.EQ.0) THEN
          CALL PGSCI (1)
        ELSE
          CALL PGSCI (CI)
        END IF

        J = 1
        DO 80 ILAT = NORTH, SOUTH, -1
          LAT(J) = DBLE(ILAT)
          J = J + 1
 80     CONTINUE

        LEN  = NORTH - SOUTH + 1
        STATUS = PRJS2X (PRJ, 1, LEN, 1, 1, LNG, LAT, X, Y, STAT)

        K = 0
        DO 90 J = 1, LEN
          IF (STAT(J).NE.0) THEN
            IF (K.GT.1) CALL PGLINE (K, XR, YR)
            K = 0
            GO TO 90
          END IF

          IF (CUBIC .AND. J.GT.1) THEN
            IF (ABS(X(J) - X(J-1)).GT.2D0 .OR.
     :          ABS(Y(J) - Y(J-1)).GT.5D0) THEN
              IF (K.GT.1) CALL PGLINE (K, XR, YR)
              K = 0
            END IF
          ELSE IF (HEALPX .AND. ILNG.EQ.180) THEN
            IF (X(J).GT.180D0) GO TO 90
          END IF

          K = K + 1
          XR(K) = -REAL(X(J))
          YR(K) =  REAL(Y(J))
 90     CONTINUE

        CALL PGLINE (K, XR, YR)
 100  CONTINUE

      CI = 1
      INTRRP = CUBIC .OR. HEALPX
      DO 130 ILAT = -90, 90, 15
        CI = CI + 1
        IF (CI.GT.7) CI = 2

        IF (ILAT.GT.NORTH) GO TO 130
        IF (ILAT.LT.SOUTH) GO TO 130

        LAT(1) = DBLE(ILAT)

        IF (ILAT.EQ.0) THEN
          CALL PGSCI (1)
        ELSE
          CALL PGSCI (CI)
        END IF

        ILNG = -180
        DO 110 J = 1, 361
          LNG(J) = DBLE(ILNG)
          ILNG = ILNG + 1
 110    CONTINUE

        STATUS = PRJS2X (PRJ, 361, 1, 1, 1, LNG, LAT, X, Y, STAT)

        K = 0
        DO 120 J = 1, 361
          IF (STAT(J).NE.0) THEN
            IF (K.GT.1) CALL PGLINE (K, XR, YR)
            K = 0
            GO TO 120
          END IF

          IF (INTRRP .AND. J.GT.1) THEN
            IF (ABS(X(J) - X(J-1)).GT.2D0 .OR.
     :          ABS(Y(J) - Y(J-1)).GT.5D0) THEN
              IF (K.GT.1) CALL PGLINE (K, XR, YR)
              K = 0
            END IF
          END IF

          K = K + 1
          XR(K) = -REAL(X(J))
          YR(K) =  REAL(Y(J))
 120    CONTINUE

        CALL PGLINE (K, XR, YR)
 130  CONTINUE

      CALL PGSCI(1)
      XR(1) = 0.0
      YR(1) = 0.0
      CALL PGPT (1, XR, YR, 21)

      CALL PGASK (1)
      CALL WCSLEEP (250)
      CALL PGPAGE()


      RETURN
      END
@


8.6
log
@WCSLIB 8.6
@
text
@d3 1
a3 1
* WCSLIB 8.6 - an implementation of the FITS WCS standard.
d23 1
a23 1
* $Id: tprj2.f,v 8.5.1.2 2026/03/29 13:36:19 mcalabre Exp mcalabre $
@


8.6.1.1
log
@WCSLIB 8.6 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 8.6 2026/03/29 13:53:57 mcalabre Exp $
@


8.5
log
@WCSLIB 8.5
@
text
@d3 2
a4 2
* WCSLIB 8.5 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2025, Mark Calabretta
d22 2
a23 2
* http://www.atnf.csiro.au/people/Mark.Calabretta
* $Id: tprj2.f,v 8.4.1.2 2025/12/06 13:37:19 mcalabre Exp mcalabre $
@


8.5.1.1
log
@WCSLIB 8.5 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 8.5 2025/12/06 13:47:41 mcalabre Exp $
@


8.5.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2026, Mark Calabretta
d22 2
a23 2
* http://www.atnf.csiro.au/computing/software/wcs
* $Id: tprj2.f,v 8.5.1.1 2025/12/06 14:05:16 mcalabre Exp mcalabre $
@


8.4
log
@WCSLIB 8.4
@
text
@d3 2
a4 2
* WCSLIB 8.4 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2024, Mark Calabretta
d23 1
a23 1
* $Id: tprj2.f,v 8.3.1.1 2024/05/13 16:35:40 mcalabre Exp mcalabre $
@


8.4.1.1
log
@WCSLIB 8.4 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 8.4 2024/10/28 13:56:17 mcalabre Exp $
@


8.4.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2025, Mark Calabretta
d23 1
a23 1
* $Id: tprj2.f,v 8.4.1.1 2024/10/28 13:58:42 mcalabre Exp mcalabre $
@


8.3
log
@WCSLIB 8.3
@
text
@d3 1
a3 1
* WCSLIB 8.3 - an implementation of the FITS WCS standard.
d23 1
a23 1
* $Id: tprj2.f,v 8.2.1.2 2024/04/02 14:06:12 mcalabre Exp mcalabre $
@


8.3.1.1
log
@WCSLIB 8.3 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 8.3 2024/05/13 16:33:01 mcalabre Exp $
@


8.2
log
@WCSLIB 8.2
@
text
@d3 2
a4 2
* WCSLIB 8.2 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2023, Mark Calabretta
d23 1
a23 1
* $Id: tprj2.f,v 8.1.1.1 2023/07/05 17:15:01 mcalabre Exp mcalabre $
@


8.2.1.1
log
@WCSLIB 8.2 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 8.2 2023/11/16 10:00:30 mcalabre Exp $
@


8.2.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2024, Mark Calabretta
d23 1
a23 1
* $Id: tprj2.f,v 8.2.1.1 2023/11/16 10:05:58 mcalabre Exp mcalabre $
@


8.1
log
@WCSLIB 8.1
@
text
@d3 1
a3 1
* WCSLIB 8.1 - an implementation of the FITS WCS standard.
d23 1
a23 1
* $Id: tprj2.f,v 8.0.1.2 2023/07/04 15:11:25 mcalabre Exp mcalabre $
@


8.1.1.1
log
@WCSLIB 8.1 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 8.1 2023/07/05 17:12:07 mcalabre Exp $
@


8.0
log
@WCSLIB 8.0
@
text
@d3 1
a3 1
* WCSLIB 8.0 - an implementation of the FITS WCS standard.
d23 1
a23 1
* $Id: tprj2.f,v 7.13.1.2 2023/06/15 04:17:21 mcalabre Exp mcalabre $
d476 1
@


8.0.1.1
log
@WCSLIB 8.0 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 8.0 2023/07/01 06:15:05 mcalabre Exp $
@


8.0.1.2
log
@Pause for 250ms between plots using new utility function, WCSLEEP().
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 8.0.1.1 2023/07/01 06:22:44 mcalabre Exp mcalabre $
a475 1
      CALL WCSLEEP (250)
@


7.13
log
@WCSLIB 7.13
@
text
@d3 2
a4 2
* WCSLIB 7.13 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2022, Mark Calabretta
d23 1
a23 1
* $Id: tprj2.f,v 7.12.1.1 2022/09/09 05:00:36 mcalabre Exp mcalabre $
@


7.13.1.1
log
@WCSLIB 7.13 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 7.13 2022/10/07 03:43:35 mcalabre Exp $
@


7.13.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2023, Mark Calabretta
d23 1
a23 1
* $Id: tprj2.f,v 7.13.1.1 2022/10/07 03:45:47 mcalabre Exp mcalabre $
@


7.12
log
@WCSLIB 7.12
@
text
@d3 1
a3 1
* WCSLIB 7.12 - an implementation of the FITS WCS standard.
d23 1
a23 1
* $Id: tprj2.f,v 7.11.1.1 2022/04/26 06:15:33 mcalabre Exp mcalabre $
@


7.12.1.1
log
@WCSLIB 7.12 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 7.12 2022/09/09 04:57:58 mcalabre Exp $
@


7.11
log
@WCSLIB 7.11
@
text
@d3 1
a3 1
* WCSLIB 7.11 - an implementation of the FITS WCS standard.
d23 1
a23 1
* $Id: tprj2.f,v 7.10.1.1 2022/04/23 14:26:54 mcalabre Exp mcalabre $
@


7.11.1.1
log
@WCSLIB 7.11 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 7.11 2022/04/26 06:13:52 mcalabre Exp $
@


7.10
log
@WCSLIB 7.10
@
text
@d3 1
a3 1
* WCSLIB 7.10 - an implementation of the FITS WCS standard.
d23 1
a23 1
* $Id: tprj2.f,v 7.9.1.1 2022/03/25 15:16:40 mcalabre Exp mcalabre $
@


7.10.1.1
log
@WCSLIB 7.10 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 7.10 2022/04/23 14:25:15 mcalabre Exp $
@


7.9
log
@WCSLIB 7.9
@
text
@d3 1
a3 1
* WCSLIB 7.9 - an implementation of the FITS WCS standard.
d23 1
a23 1
* $Id: tprj2.f,v 7.8.1.1 2022/03/25 06:14:15 mcalabre Exp mcalabre $
@


7.9.1.1
log
@WCSLIB 7.9 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 7.9 2022/03/25 15:14:49 mcalabre Exp $
@


7.8
log
@WCSLIB 7.8
@
text
@d3 1
a3 1
* WCSLIB 7.8 - an implementation of the FITS WCS standard.
d23 1
a23 1
* $Id: tprj2.f,v 7.7.1.2 2022/03/25 06:06:00 mcalabre Exp mcalabre $
@


7.8.1.1
log
@WCSLIB 7.8 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 7.8 2022/03/25 06:11:49 mcalabre Exp $
@


7.7
log
@WCSLIB 7.7
@
text
@d3 2
a4 2
* WCSLIB 7.7 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2021, Mark Calabretta
d23 1
a23 1
* $Id: tprj2.f,v 7.6.1.1 2021/04/13 13:00:36 mcalabre Exp mcalabre $
@


7.7.1.1
log
@WCSLIB 7.7 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 7.7 2021/07/12 06:36:49 mcalabre Exp $
@


7.7.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2022, Mark Calabretta
d23 1
a23 1
* $Id: tprj2.f,v 7.7.1.1 2021/07/12 06:38:28 mcalabre Exp mcalabre $
@


7.6
log
@WCSLIB 7.6
@
text
@d3 1
a3 1
* WCSLIB 7.6 - an implementation of the FITS WCS standard.
d23 1
a23 1
* $Id: tprj2.f,v 7.5.1.1 2021/03/20 05:56:42 mcalabre Exp mcalabre $
@


7.6.1.1
log
@WCSLIB 7.6 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 7.6 2021/04/13 12:57:02 mcalabre Exp $
@


7.5
log
@WCSLIB 7.5
@
text
@d3 1
a3 1
* WCSLIB 7.5 - an implementation of the FITS WCS standard.
d23 1
a23 1
* $Id: tprj2.f,v 7.4.1.1 2021/01/31 02:26:24 mcalabre Exp mcalabre $
@


7.5.1.1
log
@WCSLIB 7.5 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 7.5 2021/03/20 05:54:58 mcalabre Exp $
@


7.4
log
@WCSLIB 7.4
@
text
@d3 1
a3 1
* WCSLIB 7.4 - an implementation of the FITS WCS standard.
d23 1
a23 1
* $Id: tprj2.f,v 7.3.1.3 2021/01/28 12:32:09 mcalabre Exp mcalabre $
@


7.4.1.1
log
@WCSLIB 7.4 development branch.
@
text
@d23 1
a23 1
* $Id: tprj2.f,v 7.4 2021/01/31 02:24:52 mcalabre Exp $
@


7.3
log
@WCSLIB 7.3
@
text
@d3 2
a4 2
* WCSLIB 7.3 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2020, Mark Calabretta
a20 2
* Direct correspondence concerning WCSLIB to mark@@calabretta.id.au
*
d23 1
a23 1
* $Id: tprj2.f,v 7.2.1.2 2020/05/07 04:05:21 mcalabre Exp mcalabre $
@


7.3.1.1
log
@WCSLIB 7.3 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 7.3 2020/06/03 03:37:03 mcalabre Exp $
@


7.3.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2021, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 7.3.1.1 2020/06/03 03:38:11 mcalabre Exp mcalabre $
@


7.3.1.3
log
@Removed my email address from the copyright notice.
@
text
@d21 2
d25 1
a25 1
* $Id: tprj2.f,v 7.3.1.2 2021/01/19 14:11:08 mcalabre Exp mcalabre $
@


7.2
log
@WCSLIB 7.2
@
text
@d3 1
a3 1
* WCSLIB 7.2 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 7.1.1.1 2019/12/31 13:28:19 mcalabre Exp mcalabre $
d246 1
a246 1
        STATUS = PRJPUT (PRJ, PRJ_PV, PV(J), J)
d249 1
a249 1
      STATUS = PRJPUT (PRJ, PRJ_CODE, PCODE, 0)
d257 1
a257 1
      STATUS = PRJGET (PRJ, PRJ_CATEGORY, J)
d268 2
a269 2
        STATUS = PRJGET (PRJ, PRJ_X0, X0)
        STATUS = PRJGET (PRJ, PRJ_Y0, Y0)
d308 2
a309 2
            STATUS = PRJGET (PRJ, PRJ_X0, X0)
            STATUS = PRJGET (PRJ, PRJ_Y0, Y0)
@


7.2.1.1
log
@WCSLIB 7.2 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 7.2 2020/03/09 07:31:24 mcalabre Exp $
@


7.2.1.2
log
@Replaced calls to PRJPUT and PRJGET with their type-specific equivalents.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 7.2.1.1 2020/03/09 07:34:50 mcalabre Exp mcalabre $
d246 1
a246 1
        STATUS = PRJPTD (PRJ, PRJ_PV, PV(J), J)
d249 1
a249 1
      STATUS = PRJPTC (PRJ, PRJ_CODE, PCODE, 0)
d257 1
a257 1
      STATUS = PRJGTI (PRJ, PRJ_CATEGORY, J)
d268 2
a269 2
        STATUS = PRJGTD (PRJ, PRJ_X0, X0)
        STATUS = PRJGTD (PRJ, PRJ_Y0, Y0)
d308 2
a309 2
            STATUS = PRJGTD (PRJ, PRJ_X0, X0)
            STATUS = PRJGTD (PRJ, PRJ_Y0, Y0)
@


7.1
log
@WCSLIB 7.1
@
text
@d3 1
a3 1
* WCSLIB 7.1 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 6.4.1.2 2019/12/31 03:29:14 mcalabre Exp mcalabre $
@


7.1.1.1
log
@WCSLIB 7.1 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 7.1 2019/12/31 13:25:19 mcalabre Exp $
@


6.4
log
@WCSLIB 6.4
@
text
@d3 2
a4 2
* WCSLIB 6.4 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2019, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 6.3.1.1 2019/07/12 07:34:37 mcalabre Exp mcalabre $
@


6.4.1.1
log
@WCSLIB 6.4 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 6.4 2019/08/15 09:30:18 mcalabre Exp $
@


6.4.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2020, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 6.4.1.1 2019/08/15 09:31:29 mcalabre Exp mcalabre $
@


6.3
log
@WCSLIB 6.3
@
text
@d3 1
a3 1
* WCSLIB 6.3 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 6.2.1.3 2019/07/09 12:41:37 mcalabre Exp mcalabre $
@


6.3.1.1
log
@WCSLIB 6.3 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 6.3 2019/07/12 07:33:40 mcalabre Exp $
@


6.2
log
@WCSLIB 6.2
@
text
@d3 2
a4 2
* WCSLIB 6.2 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2018, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 6.1.1.1 2018/10/19 08:36:15 mcalabre Exp mcalabre $
d405 1
a405 1
          IF (CUBIC .AND. J.GT.0) THEN
d456 1
a456 1
          IF (INTRRP .AND. J.GT.0) THEN
@


6.2.1.1
log
@WCSLIB 6.2 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 6.2 2018/10/20 10:03:14 mcalabre Exp $
@


6.2.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2019, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 6.2.1.1 2018/10/20 10:04:15 mcalabre Exp mcalabre $
@


6.2.1.3
log
@In PRJPLT, fixed an out-of-bounds array access uncovered by -fsanitize=address,
present in the code since version 3.0 (2003/04/01)!
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 6.2.1.2 2019/05/10 02:08:35 mcalabre Exp mcalabre $
d405 1
a405 1
          IF (CUBIC .AND. J.GT.1) THEN
d456 1
a456 1
          IF (INTRRP .AND. J.GT.1) THEN
@


6.1
log
@WCSLIB 6.1
@
text
@d3 1
a3 1
* WCSLIB 6.1 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.20.1.1 2018/10/05 05:33:33 mcalabre Exp mcalabre $
@


6.1.1.1
log
@WCSLIB 6.1 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 6.1 2018/10/19 08:35:17 mcalabre Exp $
@


5.20
log
@WCSLIB 5.20
@
text
@d3 1
a3 1
* WCSLIB 5.20 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.19.1.1 2018/07/26 15:41:42 mcalabre Exp mcalabre $
@


5.20.1.1
log
@WCSLIB 5.20 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.20 2018/10/05 05:32:42 mcalabre Exp $
@


5.19
log
@WCSLIB 5.19
@
text
@d3 1
a3 1
* WCSLIB 5.19 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.18.1.1 2018/01/10 08:33:04 mcalabre Exp mcalabre $
@


5.19.1.1
log
@WCSLIB 5.19 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.19 2018/07/26 15:37:05 mcalabre Exp $
@


5.18
log
@WCSLIB 5.18
@
text
@d3 1
a3 1
* WCSLIB 5.18 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.17.1.2 2018/01/10 08:26:53 mcalabre Exp mcalabre $
@


5.18.1.1
log
@WCSLIB 5.18 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.18 2018/01/10 08:32:14 mcalabre Exp $
@


5.17
log
@WCSLIB 5.17
@
text
@d3 2
a4 2
* WCSLIB 5.17 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2017, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 5.16.1.1 2017/01/15 04:29:03 mcalabre Exp mcalabre $
@


5.17.1.1
log
@WCSLIB 5.17 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.17 2017/09/18 08:44:24 mcalabre Exp $
@


5.17.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2018, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 5.17.1.1 2017/09/18 08:46:00 mcalabre Exp mcalabre $
@


5.16
log
@WCSLIB 5.16
@
text
@d3 1
a3 1
* WCSLIB 5.16 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.15.1.2 2017/01/15 04:08:23 mcalabre Exp mcalabre $
@


5.16.1.1
log
@WCSLIB 5.16 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.16 2017/01/15 04:25:03 mcalabre Exp $
@


5.15
log
@WCSLIB 5.15
@
text
@d3 2
a4 2
* WCSLIB 5.15 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2016, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 5.14.1.1 2016/02/07 10:52:48 mcalabre Exp mcalabre $
@


5.15.1.1
log
@WCSLIB 5.15 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.15 2016/04/05 12:55:12 mcalabre Exp $
@


5.15.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2017, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 5.15.1.1 2016/04/05 12:58:38 mcalabre Exp mcalabre $
@


5.14
log
@WCSLIB 5.14
@
text
@d3 1
a3 1
* WCSLIB 5.14 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.13.1.1 2016/01/26 08:54:35 mcalabre Exp mcalabre $
@


5.14.1.1
log
@WCSLIB 5.14 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.14 2016/02/07 10:49:32 mcalabre Exp $
@


5.13
log
@WCSLIB 5.13
@
text
@d3 1
a3 1
* WCSLIB 5.13 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.12.1.2 2016/01/25 05:21:36 mcalabre Exp mcalabre $
@


5.13.1.1
log
@WCSLIB 5.13 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.13 2016/01/26 08:51:16 mcalabre Exp $
@


5.12
log
@WCSLIB 5.12
@
text
@d3 2
a4 2
* WCSLIB 5.12 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2015, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 5.11.1.1 2015/10/18 09:16:30 mcalabre Exp mcalabre $
@


5.12.1.1
log
@WCSLIB 5.12 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.12 2015/11/15 02:13:02 mcalabre Exp $
@


5.12.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2016, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 5.12.1.1 2015/11/15 02:16:17 mcalabre Exp mcalabre $
@


5.11
log
@WCSLIB 5.11
@
text
@d3 1
a3 1
* WCSLIB 5.11 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.10.1.1 2015/10/09 08:22:39 mcalabre Exp mcalabre $
@


5.11.1.1
log
@WCSLIB 5.11 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.11 2015/10/18 09:13:07 mcalabre Exp $
@


5.10
log
@WCSLIB 5.10
@
text
@d3 1
a3 1
* WCSLIB 5.10 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.9.1.1 2015/07/21 09:28:11 mcalabre Exp mcalabre $
@


5.10.1.1
log
@WCSLIB 5.10 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.10 2015/10/09 08:19:17 mcalabre Exp $
@


5.9
log
@WCSLIB 5.9
@
text
@d3 1
a3 1
* WCSLIB 5.9 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.8.1.1 2015/07/08 11:07:22 mcalabre Exp mcalabre $
@


5.9.1.1
log
@WCSLIB 5.9 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.9 2015/07/21 09:20:04 mcalabre Exp $
@


5.8
log
@WCSLIB 5.8
@
text
@d3 1
a3 1
* WCSLIB 5.8 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.7.1.1 2015/06/29 02:47:26 mcalabre Exp mcalabre $
@


5.8.1.1
log
@WCSLIB 5.8 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.8 2015/07/08 11:04:02 mcalabre Exp $
@


5.7
log
@WCSLIB 5.7
@
text
@d3 1
a3 1
* WCSLIB 5.7 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.6.1.1 2015/06/14 07:14:47 mcalabre Exp mcalabre $
@


5.7.1.1
log
@WCSLIB 5.7 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.7 2015/06/29 02:44:18 mcalabre Exp $
@


5.6
log
@WCSLIB 5.6
@
text
@d3 1
a3 1
* WCSLIB 5.6 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.5.1.1 2015/05/05 13:21:03 mcalabre Exp mcalabre $
@


5.6.1.1
log
@WCSLIB 5.6 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.6 2015/06/14 07:11:26 mcalabre Exp $
@


5.5
log
@WCSLIB 5.5
@
text
@d3 1
a3 1
* WCSLIB 5.5 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.4.1.1 2015/04/21 14:44:31 mcalabre Exp mcalabre $
@


5.5.1.1
log
@WCSLIB 5.5 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.5 2015/05/05 13:16:33 mcalabre Exp $
@


5.4
log
@WCSLIB 5.4
@
text
@d3 1
a3 1
* WCSLIB 5.4 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.3.1.1 2015/04/21 02:54:05 mcalabre Exp mcalabre $
@


5.4.1.1
log
@WCSLIB 5.4 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.4 2015/04/21 14:41:07 mcalabre Exp $
@


5.3
log
@WCSLIB 5.3
@
text
@d3 1
a3 1
* WCSLIB 5.3 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.2.1.1 2015/04/15 12:39:18 mcalabre Exp mcalabre $
@


5.3.1.1
log
@WCSLIB 5.3 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.3 2015/04/21 02:50:53 mcalabre Exp $
@


5.2
log
@WCSLIB 5.2
@
text
@d3 1
a3 1
* WCSLIB 5.2 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.1.1.1 2015/04/07 11:01:12 mcalabre Exp mcalabre $
@


5.2.1.1
log
@WCSLIB 5.2 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.2 2015/04/15 12:35:09 mcalabre Exp $
@


5.1
log
@WCSLIB 5.1
@
text
@d3 1
a3 1
* WCSLIB 5.1 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 5.0.1.1 2015/04/05 12:28:03 mcalabre Exp mcalabre $
@


5.1.1.1
log
@WCSLIB 5.1 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.1 2015/04/07 10:56:38 mcalabre Exp $
@


5.0
log
@WCSLIB 5.0
@
text
@d3 1
a3 1
* WCSLIB 5.0 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
@


5.0.1.1
log
@WCSLIB 5.0 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 5.0 2015/04/05 12:25:02 mcalabre Exp $
@


4.25
log
@WCSLIB 4.25
@
text
@d3 2
a4 2
* WCSLIB 4.25 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2014, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 4.24.1.1 2014/09/18 15:28:12 mcalabre Exp mcalabre $
@


4.25.1.1
log
@WCSLIB 4.25 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.25 2014/12/14 14:29:38 mcalabre Exp $
@


4.25.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2015, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
@


4.24
log
@WCSLIB 4.24
@
text
@d3 1
a3 1
* WCSLIB 4.24 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 4.23.1.1 2014/05/13 05:53:51 mcalabre Exp mcalabre $
@


4.24.1.1
log
@WCSLIB 4.24 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.24 2014/09/18 15:25:02 mcalabre Exp $
@


4.23
log
@WCSLIB 4.23
@
text
@d3 1
a3 1
* WCSLIB 4.23 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 4.22.1.1 2014/04/12 15:06:34 mcalabre Exp mcalabre $
@


4.23.1.1
log
@WCSLIB 4.23 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.23 2014/05/13 05:50:53 mcalabre Exp $
@


4.22
log
@WCSLIB 4.22
@
text
@d3 1
a3 1
* WCSLIB 4.22 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 4.21.1.1 2014/03/24 05:15:30 mcalabre Exp mcalabre $
@


4.22.1.1
log
@WCSLIB 4.22 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.22 2014/04/12 15:03:53 mcalabre Exp $
@


4.21
log
@WCSLIB 4.21
@
text
@d3 1
a3 1
* WCSLIB 4.21 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 4.20.1.2 2014/03/21 06:41:05 mcalabre Exp mcalabre $
@


4.21.1.1
log
@WCSLIB 4.21 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.21 2014/03/24 05:12:29 mcalabre Exp $
@


4.20
log
@WCSLIB 4.20
@
text
@d3 2
a4 2
* WCSLIB 4.20 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2013, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 4.19.1.1 2013/09/29 14:20:40 mcalabre Exp mcalabre $
@


4.20.1.1
log
@WCSLIB 4.20 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.20 2013/12/18 05:42:50 mcalabre Exp $
@


4.20.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2014, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 4.20.1.1 2013/12/18 05:46:56 mcalabre Exp mcalabre $
@


4.19
log
@WCSLIB 4.19
@
text
@d3 1
a3 1
* WCSLIB 4.19 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 4.18.1.1 2013/07/13 10:02:39 mcalabre Exp mcalabre $
@


4.19.1.1
log
@WCSLIB 4.19 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.19 2013/09/29 14:17:53 mcalabre Exp $
@


4.18
log
@WCSLIB 4.18
@
text
@d3 1
a3 1
* WCSLIB 4.18 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 4.17.1.2 2013/07/12 04:11:31 mcalabre Exp mcalabre $
@


4.18.1.1
log
@WCSLIB 4.18 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.18 2013/07/13 10:00:06 mcalabre Exp $
@


4.17
log
@WCSLIB 4.17
@
text
@d3 1
a3 1
* WCSLIB 4.17 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 4.16.1.2 2013/01/29 05:11:18 cal103 Exp cal103 $
d207 4
d230 1
a230 1
      REAL      HX, HY, SX, SY, XR(512), YR(512)
d270 22
a291 18
        XR(1) =      45.0 + X0
        YR(1) =      45.0 - Y0
        XR(2) =      45.0 + X0
        YR(2) =  3.0*45.0 - Y0
        XR(3) =     -45.0 + X0
        YR(3) =  3.0*45.0 - Y0
        XR(4) =     -45.0 + X0
        YR(4) = -3.0*45.0 - Y0
        XR(5) =      45.0 + X0
        YR(5) = -3.0*45.0 - Y0
        XR(6) =      45.0 + X0
        YR(6) =      45.0 - Y0
        XR(7) = -7.0*45.0 + X0
        YR(7) =      45.0 - Y0
        XR(8) = -7.0*45.0 + X0
        YR(8) =     -45.0 - Y0
        XR(9) =      45.0 + X0
        YR(9) =     -45.0 - Y0
d300 37
a336 2
*         Draw the perimeter of the HEALPix projection.
          CALL PGSCI (8)
d338 1
a338 29
          H = NINT(PV(1))
          SX = 180.0 / H
          SY = SX * NINT(PV(2) + 1D0) / 2.0

          STATUS = PRJGET (PRJ, PRJ_X0, X0)
          STATUS = PRJGET (PRJ, PRJ_Y0, Y0)
          HX = 180.0 + X0
          HY = SY - SX - Y0
          CALL PGMOVE (HX, HY)

          DO 30 J = 1, H
            HX = HX - SX
            HY = HY + SX
            CALL PGDRAW (HX, HY)

            HX = HX - SX
            HY = HY - SX
            CALL PGDRAW (HX, HY)
 30       CONTINUE

          HX = 180.0 + X0
          HY = -SY + SX - Y0

          IF (MOD(INT(PV(2)),2).EQ.1) THEN
            K = 1
          ELSE
            K = -1
            HY = HY - SX
          END IF
d340 26
a365 1
          CALL PGMOVE (HX, HY)
d367 3
a369 9
          DO 40 J = 1, H
            HX = HX - SX
            HY = HY - K*SX
            CALL PGDRAW (HX, HY)

            HX = HX - SX
            HY = HY + K*SX
            CALL PGDRAW (HX, HY)
 40       CONTINUE
d376 1
a376 1
      DO 70 ILNG = -180, 180, 15
d389 1
a389 1
        DO 50 ILAT = NORTH, SOUTH, -1
d392 1
a392 1
 50     CONTINUE
d398 1
a398 1
        DO 60 J = 1, LEN
d402 1
a402 1
            GO TO 60
d412 1
a412 1
            IF (X(J).GT.180D0) GO TO 60
d416 3
a418 3
          XR(K) = -X(J)
          YR(K) =  Y(J)
 60     CONTINUE
d421 1
a421 1
 70   CONTINUE
d425 1
a425 1
      DO 100 ILAT = -90, 90, 15
d429 2
a430 2
        IF (ILAT.GT.NORTH) GO TO 100
        IF (ILAT.LT.SOUTH) GO TO 100
d441 1
a441 1
        DO 80 J = 1, 361
d444 1
a444 1
 80     CONTINUE
d449 1
a449 1
        DO 90 J = 1, 361
d453 1
a453 1
            GO TO 90
d465 3
a467 3
          XR(K) = -X(J)
          YR(K) =  Y(J)
 90     CONTINUE
d470 1
a470 1
 100  CONTINUE
@


4.17.1.1
log
@WCSLIB 4.17 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.17 2013/01/29 05:29:22 cal103 Exp $
@


4.17.1.2
log
@Added the XPH projection.  Fixed inconsequential warnings from gfortran
4.7.2 relating to implicit type conversions.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.17.1.1 2013/01/29 05:32:33 cal103 Exp cal103 $
a206 4
*     XPH: HEALPix polar, aka "butterfly" projection.
      WRITE (*, 40) 'Butterfly', (PV(J), J=1,2)
      CALL PRJPLT ('XPH', 90, -90, PV)

d226 1
a226 1
      REAL      HX, HY, SX, SY, XR(512), XR0, YR(512), YR0
d266 18
a283 22

        XR0 = REAL(X0)
        YR0 = REAL(Y0)

        XR(1) =      45.0 + XR0
        YR(1) =      45.0 - YR0
        XR(2) =      45.0 + XR0
        YR(2) =  3.0*45.0 - YR0
        XR(3) =     -45.0 + XR0
        YR(3) =  3.0*45.0 - YR0
        XR(4) =     -45.0 + XR0
        YR(4) = -3.0*45.0 - YR0
        XR(5) =      45.0 + XR0
        YR(5) = -3.0*45.0 - YR0
        XR(6) =      45.0 + XR0
        YR(6) =      45.0 - YR0
        XR(7) = -7.0*45.0 + XR0
        YR(7) =      45.0 - YR0
        XR(8) = -7.0*45.0 + XR0
        YR(8) =     -45.0 - YR0
        XR(9) =      45.0 + XR0
        YR(9) =     -45.0 - YR0
d292 2
a293 37
          IF (PCODE.EQ.'HPX') THEN
*           Draw the perimeter of the HEALPix projection.
            CALL PGSCI (8)

            H = NINT(PV(1))
            SX = 180.0 / H
            SY = SX * NINT(PV(2) + 1D0) / 2.0

            STATUS = PRJGET (PRJ, PRJ_X0, X0)
            STATUS = PRJGET (PRJ, PRJ_Y0, Y0)

            XR0 = REAL(X0)
            YR0 = REAL(Y0)

            HX = 180.0 + XR0
            HY = SY - SX - YR0
            CALL PGMOVE (HX, HY)

            DO 30 J = 1, H
              HX = HX - SX
              HY = HY + SX
              CALL PGDRAW (HX, HY)

              HX = HX - SX
              HY = HY - SX
              CALL PGDRAW (HX, HY)
 30         CONTINUE

            HX = 180.0 + XR0
            HY = -SY + SX - YR0

            IF (MOD(INT(PV(2)),2).EQ.1) THEN
              K = 1
            ELSE
              K = -1
              HY = HY - SX
            END IF
d295 29
a323 1
            CALL PGMOVE (HX, HY)
d325 1
a325 26
            DO 40 J = 1, H
              HX = HX - SX
              HY = HY - K*SX
              CALL PGDRAW (HX, HY)

              HX = HX - SX
              HY = HY + K*SX
              CALL PGDRAW (HX, HY)
 40         CONTINUE

          ELSE IF (PCODE.EQ.'XPH') THEN
            DO 70 ILNG = -90, 180, 90
              LNG(1) = DBLE(ILNG) - 0.0001

              J = 1
              DO 50 ILAT = 90, -90, -1
                LAT(J) = DBLE(ILAT)
                J = J + 1
 50           CONTINUE

              STATUS = PRJS2X(PRJ, 1, 181, 1, 1, LNG, LAT, X, Y, STAT)

              DO 60 J = 1, 181
                XR(J) = -REAL(X(J))
                YR(J) =  REAL(Y(J))
 60           CONTINUE
d327 9
a335 3
              CALL PGLINE(181, XR, YR)
 70         CONTINUE
          END IF
d342 1
a342 1
      DO 100 ILNG = -180, 180, 15
d355 1
a355 1
        DO 80 ILAT = NORTH, SOUTH, -1
d358 1
a358 1
 80     CONTINUE
d364 1
a364 1
        DO 90 J = 1, LEN
d368 1
a368 1
            GO TO 90
d378 1
a378 1
            IF (X(J).GT.180D0) GO TO 90
d382 3
a384 3
          XR(K) = -REAL(X(J))
          YR(K) =  REAL(Y(J))
 90     CONTINUE
d387 1
a387 1
 100  CONTINUE
d391 1
a391 1
      DO 130 ILAT = -90, 90, 15
d395 2
a396 2
        IF (ILAT.GT.NORTH) GO TO 130
        IF (ILAT.LT.SOUTH) GO TO 130
d407 1
a407 1
        DO 110 J = 1, 361
d410 1
a410 1
 110    CONTINUE
d415 1
a415 1
        DO 120 J = 1, 361
d419 1
a419 1
            GO TO 120
d431 3
a433 3
          XR(K) = -REAL(X(J))
          YR(K) =  REAL(Y(J))
 120    CONTINUE
d436 1
a436 1
 130  CONTINUE
@


4.16
log
@WCSLIB 4.16
@
text
@d3 2
a4 2
* WCSLIB 4.16 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2012, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 4.15.1.1 2012/09/26 14:27:52 cal103 Exp cal103 $
@


4.16.1.1
log
@WCSLIB 4.16 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.16 2012/11/07 04:42:45 cal103 Exp $
@


4.16.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2013, Mark Calabretta
d25 1
a25 1
* $Id: tprj2.f,v 4.16.1.1 2012/11/07 04:45:57 cal103 Exp cal103 $
@


4.15
log
@WCSLIB 4.15
@
text
@d3 1
a3 1
* WCSLIB 4.15 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 4.14.1.1 2012/07/13 10:04:58 cal103 Exp cal103 $
@


4.15.1.1
log
@WCSLIB 4.15 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.15 2012/09/26 14:26:06 cal103 Exp $
@


4.14
log
@WCSLIB 4.14
@
text
@d3 1
a3 1
* WCSLIB 4.14 - an implementation of the FITS WCS standard.
d25 1
a25 1
* $Id: tprj2.f,v 4.13.1.2 2012/07/13 03:41:54 cal103 Exp cal103 $
@


4.14.1.1
log
@WCSLIB 4.14 development branch.
@
text
@d25 1
a25 1
* $Id: tprj2.f,v 4.14 2012/07/13 10:02:42 cal103 Exp $
@


4.13
log
@WCSLIB 4.13
@
text
@d3 1
a3 1
* WCSLIB 4.13 - an implementation of the FITS WCS standard.
d21 1
a21 7
* Correspondence concerning WCSLIB may be directed to:
*   Internet email: mcalabre@@atnf.csiro.au
*   Postal address: Dr. Mark Calabretta
*                   Australia Telescope National Facility, CSIRO
*                   PO Box 76
*                   Epping NSW 1710
*                   AUSTRALIA
d23 3
a25 3
* Author: Mark Calabretta, Australia Telescope National Facility
* http://www.atnf.csiro.au/~mcalabre/index.html
* $Id: tprj2.f,v 4.12.1.1 2012/02/29 07:59:11 cal103 Exp cal103 $
@


4.13.1.1
log
@WCSLIB 4.13 development branch.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.13 2012/03/14 07:39:31 cal103 Exp $
@


4.13.1.2
log
@Changed contact details.
@
text
@d21 7
a27 1
* Direct correspondence concerning WCSLIB to mark@@calabretta.id.au
d29 3
a31 3
* Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
* http://www.atnf.csiro.au/people/Mark.Calabretta
* $Id: tprj2.f,v 4.13.1.1 2012/03/14 07:40:38 cal103 Exp cal103 $
@


4.12
log
@WCSLIB 4.12
@
text
@d3 1
a3 1
* WCSLIB 4.12 - an implementation of the FITS WCS standard.
d31 1
a31 1
* $Id: tprj2.f,v 4.11.1.1 2012/02/20 23:31:14 cal103 Exp cal103 $
@


4.12.1.1
log
@WCSLIB 4.12 development branch.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.12 2012/02/29 07:57:57 cal103 Exp $
@


4.11
log
@WCSLIB 4.11
@
text
@d3 1
a3 1
* WCSLIB 4.11 - an implementation of the FITS WCS standard.
d31 1
a31 1
* $Id: tprj2.f,v 4.10.1.1 2012/02/05 23:42:47 cal103 Exp cal103 $
@


4.11.1.1
log
@WCSLIB 4.11 development branch.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.11 2012/02/20 23:30:03 cal103 Exp $
@


4.10
log
@WCSLIB 4.10
@
text
@d3 1
a3 1
* WCSLIB 4.10 - an implementation of the FITS WCS standard.
d31 1
a31 1
* $Id: tprj2.f,v 4.9.1.1 2012/01/24 05:41:46 cal103 Exp cal103 $
@


4.10.1.1
log
@WCSLIB 4.10 development branch.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.10 2012/02/05 23:41:44 cal103 Exp $
@


4.9
log
@WCSLIB 4.9
@
text
@d3 1
a3 1
* WCSLIB 4.9 - an implementation of the FITS WCS standard.
d31 1
a31 1
* $Id: tprj2.f,v 4.8.1.3 2012/01/24 05:24:12 cal103 Exp cal103 $
@


4.9.1.1
log
@WCSLIB 4.9 development branch.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.9 2012/01/24 05:40:30 cal103 Exp $
@


4.8
log
@WCSLIB 4.8
@
text
@d3 2
a4 2
* WCSLIB 4.8 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2011, Mark Calabretta
d31 1
a31 1
* $Id: tprj2.f,v 4.7.1.1 2011/02/07 07:04:23 cal103 Exp cal103 $
d237 3
@


4.8.1.1
log
@WCSLIB 4.8 development branch.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.8 2011/08/15 08:05:54 cal103 Exp $
@


4.8.1.2
log
@Added a comment in the code reinforcing the necessity for INTEGER arrays
holding structs to be aligned on a DOUBLE PRECISION boundary.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.8.1.1 2011/08/15 08:07:07 cal103 Exp cal103 $
a236 3
*     On some systems, such as Sun Sparc, the struct MUST be aligned
*     on a double precision boundary, done here using an equivalence.
*     Failure to do this may result in mysterious "bus errors".
@


4.8.1.3
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2012, Mark Calabretta
d31 1
a31 1
* $Id: tprj2.f,v 4.8.1.2 2011/08/16 01:34:41 cal103 Exp cal103 $
@


4.7
log
@WCSLIB 4.7
@
text
@d3 1
a3 1
* WCSLIB 4.7 - an implementation of the FITS WCS standard.
d31 1
a31 1
* $Id: tprj2.f,v 4.6.1.3 2011/01/27 01:22:13 cal103 Exp cal103 $
@


4.7.1.1
log
@WCSLIB 4.7 development branch.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.7 2011/02/07 07:03:43 cal103 Exp $
@


4.6
log
@WCSLIB 4.6
@
text
@d3 2
a4 2
* WCSLIB 4.6 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2010, Mark Calabretta
d31 1
a31 1
* $Id: tprj2.f,v 4.5.1.1 2010/07/16 07:05:32 cal103 Exp cal103 $
d239 2
@


4.6.1.1
log
@WCSLIB 4.6 development branch.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.6 2010/11/16 06:15:32 cal103 Exp $
@


4.6.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2011, Mark Calabretta
d31 1
a31 1
* $Id: tprj2.f,v 4.6.1.1 2010/11/16 06:16:19 cal103 Exp cal103 $
@


4.6.1.3
log
@Use an EQUIVALENCE to ensure that the PRJ array is aligned on a
DOUBLE PRECISION boundary.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.6.1.2 2011/01/14 06:34:16 cal103 Exp cal103 $
a238 2
      DOUBLE PRECISION DUMMY
      EQUIVALENCE (PRJ,DUMMY)
@


4.5
log
@WCSLIB 4.5
@
text
@d3 1
a3 1
* WCSLIB 4.5 - an implementation of the FITS WCS standard.
d31 1
a31 1
* $Id: tprj2.f,v 4.4.1.2 2010/01/19 03:44:57 cal103 Exp cal103 $
@


4.5.1.1
log
@WCSLIB 4.5 development branch.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.5 2010/07/16 07:01:26 cal103 Exp $
@


4.4
log
@WCSLIB 4.4
@
text
@d3 2
a4 2
* WCSLIB 4.4 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2009, Mark Calabretta
d31 1
a31 1
* $Id: tprj2.f,v 4.3.1.3 2009/08/06 02:50:21 cal103 Exp cal103 $
@


4.4.1.1
log
@WCSLIB 4.4 development branch.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.4 2009/08/06 07:52:43 cal103 Exp $
@


4.4.1.2
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
* Copyright (C) 1995-2010, Mark Calabretta
d31 1
a31 1
* $Id: tprj2.f,v 4.4.1.1 2009/08/10 08:55:07 cal103 Exp cal103 $
@


4.3
log
@WCSLIB 4.3
@
text
@d3 2
a4 2
*   WCSLIB 4.3 - an implementation of the FITS WCS standard.
*   Copyright (C) 1995-2007, Mark Calabretta
d6 1
a6 1
*   This file is part of WCSLIB.
d8 4
a11 4
*   WCSLIB is free software: you can redistribute it and/or modify
*   it under the terms of the GNU Lesser General Public License as
*   published by the Free Software Foundation, either version 3 of
*   the License, or (at your option) any later version.
d13 4
a16 4
*   WCSLIB is distributed in the hope that it will be useful, but
*   WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*   GNU Lesser General Public License for more details.
d18 2
a19 2
*   You should have received a copy of the GNU Lesser General Public
*   License along with WCSLIB.  If not, see http://www.gnu.org/licenses.
d21 7
a27 7
*   Correspondence concerning WCSLIB may be directed to:
*      Internet email: mcalabre@@atnf.csiro.au
*      Postal address: Dr. Mark Calabretta
*                      Australia Telescope National Facility, CSIRO
*                      PO Box 76
*                      Epping NSW 1710
*                      AUSTRALIA
d29 3
a31 3
*   Author: Mark Calabretta, Australia Telescope National Facility
*   http://www.atnf.csiro.au/~mcalabre/index.html
*   $Id: tprj2.f,v 4.2.1.4 2007/12/03 05:37:50 cal103 Exp cal103 $
d37 2
a38 2
*   TPRJ2 tests projection routines by plotting test graticules using
*   PGPLOT.
d49 2
a50 2
     :   'Testing WCSLIB spherical projection routines (tprj2.f)',/,
     :   '------------------------------------------------------')
d53 1
a53 1
         PV(J) = 0D0
d243 1
a243 1
         STATUS = PRJPUT (PRJ, PRJ_PV, PV(J), J)
d258 28
a285 28
*        Draw the perimeter of the quadcube projection.
         CALL PGENV (-335.0, 65.0, -200.0, 200.0, 1, -2)
         CALL PGSCI (2)
         CALL PGTEXT (-340.0, -220.0, PCODE // ' - 15 degree graticule')

         CALL PGSCI (8)

         STATUS = PRJGET (PRJ, PRJ_X0, X0)
         STATUS = PRJGET (PRJ, PRJ_Y0, Y0)
         XR(1) =      45.0 + X0
         YR(1) =      45.0 - Y0
         XR(2) =      45.0 + X0
         YR(2) =  3.0*45.0 - Y0
         XR(3) =     -45.0 + X0
         YR(3) =  3.0*45.0 - Y0
         XR(4) =     -45.0 + X0
         YR(4) = -3.0*45.0 - Y0
         XR(5) =      45.0 + X0
         YR(5) = -3.0*45.0 - Y0
         XR(6) =      45.0 + X0
         YR(6) =      45.0 - Y0
         XR(7) = -7.0*45.0 + X0
         YR(7) =      45.0 - Y0
         XR(8) = -7.0*45.0 + X0
         YR(8) =     -45.0 - Y0
         XR(9) =      45.0 + X0
         YR(9) =     -45.0 - Y0
         CALL PGLINE (9, XR, YR)
d288 49
a336 39
         CALL PGENV (-200.0, 200.0, -200.0, 200.0, 1, -2)
         CALL PGSCI (2)
         CALL PGTEXT (-240.0, -220.0, PCODE//' - 15 degree graticule')

         IF (HEALPX) THEN
*           Draw the perimeter of the HEALPix projection.
            CALL PGSCI (8)

            H = NINT(PV(1))
            SX = 180.0 / H
            SY = SX * NINT(PV(2) + 1D0) / 2.0

            STATUS = PRJGET (PRJ, PRJ_X0, X0)
            STATUS = PRJGET (PRJ, PRJ_Y0, Y0)
            HX = 180.0 + X0
            HY = SY - SX - Y0
            CALL PGMOVE (HX, HY)

            DO 30 J = 1, H
               HX = HX - SX
               HY = HY + SX
               CALL PGDRAW (HX, HY)

               HX = HX - SX
               HY = HY - SX
               CALL PGDRAW (HX, HY)
 30         CONTINUE

            HX = 180.0 + X0
            HY = -SY + SX - Y0

            IF (MOD(INT(PV(2)),2).EQ.1) THEN
               K = 1
            ELSE
               K = -1
               HY = HY - SX
            END IF

            CALL PGMOVE (HX, HY)
d338 1
a338 11
            DO 40 J = 1, H
               HX = HX - SX
               HY = HY - K*SX
               CALL PGDRAW (HX, HY)

               HX = HX - SX
               HY = HY + K*SX
               CALL PGDRAW (HX, HY)
 40         CONTINUE

         END IF
d344 2
a345 4
         CI = CI + 1
         IF (CI.GT.7) CI = 2

         LNG(1) = DBLE(ILNG)
d347 1
a347 22
         IF (ILNG.EQ.0) THEN
            CALL PGSCI (1)
         ELSE
            CALL PGSCI (CI)
         END IF

         J = 1
         DO 50 ILAT = NORTH, SOUTH, -1
            LAT(J) = DBLE(ILAT)
            J = J + 1
 50      CONTINUE

         LEN  = NORTH - SOUTH + 1
         STATUS = PRJS2X (PRJ, 1, LEN, 1, 1, LNG, LAT, X, Y, STAT)

         K = 0
         DO 60 J = 1, LEN
            IF (STAT(J).NE.0) THEN
               IF (K.GT.1) CALL PGLINE (K, XR, YR)
               K = 0
               GO TO 60
            END IF
d349 28
a376 8
            IF (CUBIC .AND. J.GT.0) THEN
               IF (ABS(X(J) - X(J-1)).GT.2D0 .OR.
     :             ABS(Y(J) - Y(J-1)).GT.5D0) THEN
                  IF (K.GT.1) CALL PGLINE (K, XR, YR)
                  K = 0
               END IF
            ELSE IF (HEALPX .AND. ILNG.EQ.180) THEN
               IF (X(J).GT.180D0) GO TO 60
d378 8
d387 1
a387 6
            K = K + 1
            XR(K) = -X(J)
            YR(K) =  Y(J)
 60      CONTINUE

         CALL PGLINE (K, XR, YR)
d393 2
a394 2
         CI = CI + 1
         IF (CI.GT.7) CI = 2
d396 2
a397 2
         IF (ILAT.GT.NORTH) GO TO 100
         IF (ILAT.LT.SOUTH) GO TO 100
d399 1
a399 23
         LAT(1) = DBLE(ILAT)

         IF (ILAT.EQ.0) THEN
            CALL PGSCI (1)
         ELSE
            CALL PGSCI (CI)
         END IF

         ILNG = -180
         DO 80 J = 1, 361
            LNG(J) = DBLE(ILNG)
            ILNG = ILNG + 1
 80      CONTINUE

         STATUS = PRJS2X (PRJ, 361, 1, 1, 1, LNG, LAT, X, Y, STAT)

         K = 0
         DO 90 J = 1, 361
            IF (STAT(J).NE.0) THEN
               IF (K.GT.1) CALL PGLINE (K, XR, YR)
               K = 0
               GO TO 90
            END IF
d401 27
a427 6
            IF (INTRRP .AND. J.GT.0) THEN
               IF (ABS(X(J) - X(J-1)).GT.2D0 .OR.
     :             ABS(Y(J) - Y(J-1)).GT.5D0) THEN
                  IF (K.GT.1) CALL PGLINE (K, XR, YR)
                  K = 0
               END IF
d429 1
d431 4
a434 4
            K = K + 1
            XR(K) = -X(J)
            YR(K) =  Y(J)
 90      CONTINUE
d436 1
a436 1
         CALL PGLINE (K, XR, YR)
@


4.3.1.1
log
@WCSLIB 4.3 development branch.
@
text
@d3 2
a4 2
*   WCSLIB 4.4 - an implementation of the FITS WCS standard.
*   Copyright (C) 1995-2008, Mark Calabretta
d31 1
a31 1
*   $Id: tprj2.f,v 4.3 2007/12/27 05:42:52 cal103 Exp cal103 $
@


4.3.1.2
log
@Changed indentation.
@
text
@d3 2
a4 2
* WCSLIB 4.4 - an implementation of the FITS WCS standard.
* Copyright (C) 1995-2009, Mark Calabretta
d6 1
a6 1
* This file is part of WCSLIB.
d8 4
a11 4
* WCSLIB is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
d13 4
a16 4
* WCSLIB is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
* License for more details.
d18 2
a19 2
* You should have received a copy of the GNU Lesser General Public
* License along with WCSLIB.  If not, see http://www.gnu.org/licenses.
d21 7
a27 7
* Correspondence concerning WCSLIB may be directed to:
*   Internet email: mcalabre@@atnf.csiro.au
*   Postal address: Dr. Mark Calabretta
*                   Australia Telescope National Facility, CSIRO
*                   PO Box 76
*                   Epping NSW 1710
*                   AUSTRALIA
d29 3
a31 3
* Author: Mark Calabretta, Australia Telescope National Facility
* http://www.atnf.csiro.au/~mcalabre/index.html
* $Id: tprj2.f,v 4.3.1.1 2007/12/27 13:25:35 cal103 Exp cal103 $
d37 2
a38 2
* TPRJ2 tests projection routines by plotting test graticules using
* PGPLOT.
@


4.3.1.3
log
@Changed indentation.
@
text
@d31 1
a31 1
* $Id: tprj2.f,v 4.3.1.2 2009/07/22 07:28:07 cal103 Exp cal103 $
d49 2
a50 2
     :  'Testing WCSLIB spherical projection routines (tprj2.f)',/,
     :  '------------------------------------------------------')
d53 1
a53 1
        PV(J) = 0D0
d243 1
a243 1
        STATUS = PRJPUT (PRJ, PRJ_PV, PV(J), J)
d258 28
a285 28
*       Draw the perimeter of the quadcube projection.
        CALL PGENV (-335.0, 65.0, -200.0, 200.0, 1, -2)
        CALL PGSCI (2)
        CALL PGTEXT (-340.0, -220.0, PCODE // ' - 15 degree graticule')

        CALL PGSCI (8)

        STATUS = PRJGET (PRJ, PRJ_X0, X0)
        STATUS = PRJGET (PRJ, PRJ_Y0, Y0)
        XR(1) =      45.0 + X0
        YR(1) =      45.0 - Y0
        XR(2) =      45.0 + X0
        YR(2) =  3.0*45.0 - Y0
        XR(3) =     -45.0 + X0
        YR(3) =  3.0*45.0 - Y0
        XR(4) =     -45.0 + X0
        YR(4) = -3.0*45.0 - Y0
        XR(5) =      45.0 + X0
        YR(5) = -3.0*45.0 - Y0
        XR(6) =      45.0 + X0
        YR(6) =      45.0 - Y0
        XR(7) = -7.0*45.0 + X0
        YR(7) =      45.0 - Y0
        XR(8) = -7.0*45.0 + X0
        YR(8) =     -45.0 - Y0
        XR(9) =      45.0 + X0
        YR(9) =     -45.0 - Y0
        CALL PGLINE (9, XR, YR)
d288 39
a326 49
        CALL PGENV (-200.0, 200.0, -200.0, 200.0, 1, -2)
        CALL PGSCI (2)
        CALL PGTEXT (-240.0, -220.0, PCODE//' - 15 degree graticule')

        IF (HEALPX) THEN
*         Draw the perimeter of the HEALPix projection.
          CALL PGSCI (8)

          H = NINT(PV(1))
          SX = 180.0 / H
          SY = SX * NINT(PV(2) + 1D0) / 2.0

          STATUS = PRJGET (PRJ, PRJ_X0, X0)
          STATUS = PRJGET (PRJ, PRJ_Y0, Y0)
          HX = 180.0 + X0
          HY = SY - SX - Y0
          CALL PGMOVE (HX, HY)

          DO 30 J = 1, H
            HX = HX - SX
            HY = HY + SX
            CALL PGDRAW (HX, HY)

            HX = HX - SX
            HY = HY - SX
            CALL PGDRAW (HX, HY)
 30       CONTINUE

          HX = 180.0 + X0
          HY = -SY + SX - Y0

          IF (MOD(INT(PV(2)),2).EQ.1) THEN
            K = 1
          ELSE
            K = -1
            HY = HY - SX
          END IF

          CALL PGMOVE (HX, HY)

          DO 40 J = 1, H
            HX = HX - SX
            HY = HY - K*SX
            CALL PGDRAW (HX, HY)

            HX = HX - SX
            HY = HY + K*SX
            CALL PGDRAW (HX, HY)
 40       CONTINUE
d328 11
a338 1
        END IF
d344 4
a347 2
        CI = CI + 1
        IF (CI.GT.7) CI = 2
d349 22
a370 1
        LNG(1) = DBLE(ILNG)
d372 8
a379 28
        IF (ILNG.EQ.0) THEN
          CALL PGSCI (1)
        ELSE
          CALL PGSCI (CI)
        END IF

        J = 1
        DO 50 ILAT = NORTH, SOUTH, -1
          LAT(J) = DBLE(ILAT)
          J = J + 1
 50     CONTINUE

        LEN  = NORTH - SOUTH + 1
        STATUS = PRJS2X (PRJ, 1, LEN, 1, 1, LNG, LAT, X, Y, STAT)

        K = 0
        DO 60 J = 1, LEN
          IF (STAT(J).NE.0) THEN
            IF (K.GT.1) CALL PGLINE (K, XR, YR)
            K = 0
            GO TO 60
          END IF

          IF (CUBIC .AND. J.GT.0) THEN
            IF (ABS(X(J) - X(J-1)).GT.2D0 .OR.
     :          ABS(Y(J) - Y(J-1)).GT.5D0) THEN
              IF (K.GT.1) CALL PGLINE (K, XR, YR)
              K = 0
a380 8
          ELSE IF (HEALPX .AND. ILNG.EQ.180) THEN
            IF (X(J).GT.180D0) GO TO 60
          END IF

          K = K + 1
          XR(K) = -X(J)
          YR(K) =  Y(J)
 60     CONTINUE
d382 6
a387 1
        CALL PGLINE (K, XR, YR)
d393 2
a394 2
        CI = CI + 1
        IF (CI.GT.7) CI = 2
d396 2
a397 2
        IF (ILAT.GT.NORTH) GO TO 100
        IF (ILAT.LT.SOUTH) GO TO 100
d399 23
a421 1
        LAT(1) = DBLE(ILAT)
d423 6
a428 27
        IF (ILAT.EQ.0) THEN
          CALL PGSCI (1)
        ELSE
          CALL PGSCI (CI)
        END IF

        ILNG = -180
        DO 80 J = 1, 361
          LNG(J) = DBLE(ILNG)
          ILNG = ILNG + 1
 80     CONTINUE

        STATUS = PRJS2X (PRJ, 361, 1, 1, 1, LNG, LAT, X, Y, STAT)

        K = 0
        DO 90 J = 1, 361
          IF (STAT(J).NE.0) THEN
            IF (K.GT.1) CALL PGLINE (K, XR, YR)
            K = 0
            GO TO 90
          END IF

          IF (INTRRP .AND. J.GT.0) THEN
            IF (ABS(X(J) - X(J-1)).GT.2D0 .OR.
     :          ABS(Y(J) - Y(J-1)).GT.5D0) THEN
              IF (K.GT.1) CALL PGLINE (K, XR, YR)
              K = 0
a429 1
          END IF
d431 4
a434 4
          K = K + 1
          XR(K) = -X(J)
          YR(K) =  Y(J)
 90     CONTINUE
d436 1
a436 1
        CALL PGLINE (K, XR, YR)
@


4.2
log
@WCSLIB 4.2: identify the name of the program in the output; removed comment
on catching IEEE floating point exceptions with the Sun Fortran compiler.
@
text
@d3 2
a4 2
*   WCSLIB 4.2 - an implementation of the FITS WCS convention.
*   Copyright (C) 1995-2005, Mark Calabretta
d6 1
a6 4
*   WCSLIB is free software; you can redistribute it and/or modify it under
*   the terms of the GNU General Public License as published by the Free
*   Software Foundation; either version 2 of the License, or (at your option)
*   any later version.
d8 4
a11 4
*   WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
*   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
*   FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
*   details.
d13 7
a19 3
*   You should have received a copy of the GNU General Public License along
*   with WCSLIB; if not, write to the Free Software Foundation, Inc.,
*   59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
d31 1
a31 1
*   $Id: tprj2.f,v 4.1 2005/08/26 13:45:18 cal103 Exp cal103 $
d379 1
a379 1
               IF (X(J) > 180D0) GO TO 60
@


4.2.1.1
log
@WCSLIB 4.2 development branch.
@
text
@d3 1
a3 1
*   WCSLIB 4.3 - an implementation of the FITS WCS convention.
d30 1
a30 1
*   $Id: tprj2.f,v 4.2 2005/09/21 13:37:53 cal103 Exp cal103 $
@


4.2.1.2
log
@Replaced use of '>' in a boolean expression - the Sun Fortran compiler
complained whereas g77 happily allows it!
@
text
@d4 1
a4 1
*   Copyright (C) 1995-2007, Mark Calabretta
d30 1
a30 1
*   $Id: tprj2.f,v 4.2.1.1 2005/12/05 01:37:43 cal103 Exp cal103 $
d378 1
a378 1
               IF (X(J).GT.180D0) GO TO 60
@


4.2.1.3
log
@Fixed long lines in the GNU copyright notice.
@
text
@d6 4
a9 4
*   WCSLIB is free software; you can redistribute it and/or modify it
*   under the terms of the GNU General Public License as published by
*   the Free Software Foundation; either version 2 of the License, or
*   (at your option) any later version.
d11 4
a14 4
*   WCSLIB is distributed in the hope that it will be useful, but
*   WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
*   General Public License for more details.
d16 3
a18 3
*   You should have received a copy of the GNU General Public License
*   along with WCSLIB; if not, write to the Free Software Foundation,
*   Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
d30 1
a30 1
*   $Id: tprj2.f,v 4.2.1.2 2007/07/03 08:32:37 cal103 Exp cal103 $
@


4.2.1.4
log
@Switched to LGPL 3.0.
@
text
@d3 1
a3 1
*   WCSLIB 4.3 - an implementation of the FITS WCS standard.
d6 4
a9 6
*   This file is part of WCSLIB.
*
*   WCSLIB is free software: you can redistribute it and/or modify
*   it under the terms of the GNU Lesser General Public License as
*   published by the Free Software Foundation, either version 3 of
*   the License, or (at your option) any later version.
d13 2
a14 2
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*   GNU Lesser General Public License for more details.
d16 3
a18 2
*   You should have received a copy of the GNU Lesser General Public
*   License along with WCSLIB.  If not, see http://www.gnu.org/licenses.
d30 1
a30 1
*   $Id: tprj2.f,v 4.2.1.3 2007/08/02 06:40:51 cal103 Exp cal103 $
@


4.1
log
@WCSLIB 4.1: draw the graticule for the new HPX projection.
@
text
@d3 1
a3 1
*   WCSLIB 4.1 - an implementation of the FITS WCS convention.
d30 1
a30 1
*   $Id: tprj2.f,v 4.0 2005/02/04 12:45:05 cal103 Exp cal103 $
a45 6
*     Uncomment the following two lines to raise SIGFPE on floating
*     point exceptions for the Sun FORTRAN compiler.  This signal can
*     be caught within 'dbx' by issuing the command "catch FPE".
*#include <f77_floatingpoint.h>
*      call ieee_handler ('set', 'common', SIGFPE_ABORT)

d47 3
a49 2
 10   FORMAT ('Testing WCSLIB spherical projection routines',/,
     :        '--------------------------------------------')
@


4.0
log
@WCSLIB 4.0: changed from LGPL to GPL.
@
text
@d3 1
a3 1
*   WCSLIB 4.0 - an implementation of the FITS WCS convention.
d30 1
a30 1
*   $Id: tprj2.f,v 3.6 2004/08/25 06:32:57 cal103 Exp cal103 $
d211 6
d233 2
a234 2
      LOGICAL   CUBIC
      INTEGER   CI, ILAT, ILNG, J, K, LEN, NORTH, SOUTH, STAT(361),
d236 1
a236 1
      REAL      XR(512), YR(512)
a245 2
      STATUS = PRJPUT (PRJ, PRJ_CODE, PCODE, 0)

d250 2
d253 1
a253 1
 20   FORMAT ('Plotting ',A3,'; Latitudes',I3,' to',I4,'.')
d259 2
a260 1
      CUBIC  = J.EQ.7
d262 1
d265 1
a265 1
         CALL PGTEXT (-340.0, -220.0, PCODE//' - 15 degree graticule')
d290 1
d295 48
d347 1
a347 1
      DO 50 ILNG = -180, 180, 15
d359 2
a360 3
         LEN  = NORTH - SOUTH + 1
         ILAT = NORTH
         DO 30 J = 1, LEN
d362 2
a363 2
            ILAT = ILAT - 1
 30      CONTINUE
d365 1
d369 1
a369 1
         DO 40 J = 1, LEN
d373 1
a373 1
               GO TO 40
d382 2
d389 1
a389 1
 40      CONTINUE
d392 1
a392 1
 50   CONTINUE
d395 2
a396 1
      DO 80 ILAT = -90, 90, 15
d400 2
a401 2
         IF (ILAT.GT.NORTH) GO TO 80
         IF (ILAT.LT.SOUTH) GO TO 80
d412 1
a412 1
         DO 60 J = 1, 361
d415 1
a415 1
 60      CONTINUE
d420 1
a420 1
         DO 70 J = 1, 361
d424 1
a424 1
               GO TO 70
d427 1
a427 1
            IF (CUBIC .AND. J.GT.0) THEN
d438 1
a438 1
 70      CONTINUE
d441 1
a441 1
 80   CONTINUE
@


3.6
log
@WCSLIB 3.6: Changed "WRITE (6, ...)" to "WRITE (*, ...)" as being standard
FORTRAN and notionally more portable.
@
text
@d3 2
a4 2
*   WCSLIB 3.6 - an implementation of the FITS WCS convention.
*   Copyright (C) 1995-2004, Mark Calabretta
d6 4
a9 4
*   This program is free software; you can redistribute it and/or modify
*   it under the terms of the GNU General Public License as published by
*   the Free Software Foundation; either version 2 of the License, or
*   (at your option) any later version.
d11 4
a14 4
*   This program is distributed in the hope that it will be useful, but
*   WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
*   General Public License for more details.
d16 3
a18 3
*   You should have received a copy of the GNU General Public License
*   along with this library; if not, write to the Free Software
*   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
d30 1
a30 1
*   $Id: tprj2.f,v 3.5 2004/06/28 04:51:35 mcalabre Exp mcalabre $
@


3.5
log
@WCSLIB 3.5
@
text
@d3 1
a3 1
*   WCSLIB 3.5 - an implementation of the FITS WCS convention.
d30 1
a30 1
*   $Id: tprj2.f,v 3.4 2004/02/11 00:04:18 mcalabre Exp mcalabre $
d52 1
a52 1
      WRITE (6, 10)
d80 1
a80 1
      WRITE (6, 40) 'Zenithal/azimuthal perspective', (PV(J), J=1,2)
d87 1
a87 1
      WRITE (6, 40) 'Slant zenithal perspective', (PV(J), J=1,3)
d91 1
a91 1
      WRITE (6, 30) 'Gnomonic'
d95 1
a95 1
      WRITE (6, 30) 'Stereographic'
d101 1
a101 1
      WRITE (6, 40) 'Orthographic/synthesis', (PV(J), J=1,2)
d105 1
a105 1
      WRITE (6, 30) 'Zenithal/azimuthal equidistant'
d119 1
a119 1
      WRITE (6, 40) 'Zenithal/azimuthal polynomial', (PV(J), J=0,9)
d123 1
a123 1
      WRITE (6, 30) 'Zenithal/azimuthal equal area'
d128 1
a128 1
      WRITE (6, 40) 'Airy''s zenithal', PV(1)
d134 1
a134 1
      WRITE (6, 40) 'Cylindrical perspective', (PV(J), J=1,2)
d139 1
a139 1
      WRITE (6, 40) 'Cylindrical equal area', PV(1)
d143 1
a143 1
      WRITE (6, 30) 'Plate carree'
d147 1
a147 1
      WRITE (6, 30) 'Mercator''s'
d151 1
a151 1
      WRITE (6, 30) 'Sanson-Flamsteed (global sinusoid)'
d155 1
a155 1
      WRITE (6, 30) 'Parabolic'
d159 1
a159 1
      WRITE (6, 30) 'Mollweide''s'
d163 1
a163 1
      WRITE (6, 30) 'Hammer-Aitoff'
d169 1
a169 1
      WRITE (6, 40) 'Conic perspective', (PV(J), J=1,2)
d175 1
a175 1
      WRITE (6, 40) 'Conic equal area', (PV(J), J=1,2)
d181 1
a181 1
      WRITE (6, 40) 'Conic equidistant', (PV(J), J=1,2)
d187 1
a187 1
      WRITE (6, 40) 'Conic orthomorphic', (PV(J), J=1,2)
d192 1
a192 1
      WRITE (6, 40) 'Bonne''s', PV(1)
d196 1
a196 1
      WRITE (6, 30) 'Polyconic'
d200 1
a200 1
      WRITE (6, 30) 'Tangential spherical cube'
d204 1
a204 1
      WRITE (6, 30) 'COBE quadrilateralized spherical cube'
d208 1
a208 1
      WRITE (6, 30) 'Quadrilateralized spherical cube'
d246 1
a246 1
      WRITE (6, 20) PCODE, NORTH, SOUTH
@


3.4
log
@WCSLIB 3.4
@
text
@d3 1
a3 1
*   WCSLIB 3.4 - an implementation of the FITS WCS convention.
d28 3
d32 1
d35 1
a38 1
*   $Id: tprj2.f,v 3.3 2003/10/21 08:36:48 mcalabre Exp mcalabre $
@


3.3
log
@WCSLIB 3.3
@
text
@d3 2
a4 2
*   WCSLIB 3.3 - an implementation of the FITS WCS convention.
*   Copyright (C) 1995-2003, Mark Calabretta
d34 1
a34 1
*   $Id: tprj2.f,v 3.2 2003/09/09 03:54:37 mcalabre Exp mcalabre $
@


3.2
log
@WCSLIB 3.2
@
text
@d3 1
a3 1
*   WCSLIB 3.2 - an implementation of the FITS WCS convention.
d34 1
a34 1
*   $Id: tprj2.f,v 3.1 2003/04/28 04:48:53 mcalabre Exp mcalabre $
@


3.1
log
@WCSLIB 3.1
@
text
@d3 1
a3 1
*   WCSLIB 3.1 - an implementation of the FITS WCS convention.
d34 1
a34 1
*   $Id: tprj2.f,v 3.0 2003/04/01 05:10:21 mcalabre Exp mcalabre $
@


3.0
log
@WCSLIB 3.0 (renamed from tproj2.f).
@
text
@d3 1
a3 1
*   WCSLIB 3.0 - an implementation of the FITS WCS convention.
d34 1
a34 1
*   $Id: tproj2.f,v 2.10 2002/04/03 01:24:44 mcalabre Exp $
@


2.10
log
@Updated date in copyright notice.
@
text
@d3 2
a4 2
*   WCSLIB - an implementation of the FITS WCS proposal.
*   Copyright (C) 1995-2002, Mark Calabretta
d22 4
a25 4
*      Postal address: Dr. Mark Calabretta,
*                      Australia Telescope National Facility,
*                      P.O. Box 76,
*                      Epping, NSW, 2121,
d29 1
a29 1
      PROGRAM TPROJ2
d31 1
a31 1
*   TPROJ2 tests projection routines by plotting test grids using
d34 1
a34 1
*   $Id: tproj2.f,v 2.9 2001/11/16 03:56:40 mcalabre Exp mcalabre $
d37 1
a37 1
      DOUBLE PRECISION PRJ(0:20)
d42 13
a54 3
      WRITE (6, 5)
 5    FORMAT ('Testing WCSLIB spherical projection routines',/,
     *        '--------------------------------------------')
a55 7
      DO 10 J = 1, 20
         PRJ(J) = 0D0
 10   CONTINUE

 20   FORMAT(/,A,' projection')
 30   FORMAT(/,A,' projection',/,'Parameters:',5F12.5,/,5F12.5)

d70 3
d74 4
a77 4
      PRJ(1) =  2D0
      PRJ(2) = 30D0
      WRITE (6, 30) 'Zenithal/azimuthal perspective', (PRJ(J), J=1,2)
      CALL PRJPLT ('AZP', 90, -90, PRJ)
d80 5
a84 5
      PRJ(1) =   2D0
      PRJ(2) = 210D0
      PRJ(3) =  60D0
      WRITE (6, 30) 'Slant zenithal perspective', (PRJ(J), J=1,3)
      CALL PRJPLT ('SZP', 90, -90, PRJ)
d87 2
a88 2
      WRITE (6, 20) 'Gnomonic'
      CALL PRJPLT ('TAN', 90,   5, PRJ)
d91 2
a92 2
      WRITE (6, 20) 'Stereographic'
      CALL PRJPLT ('STG', 90, -85, PRJ)
d95 4
a98 4
      PRJ(1) = -0.3D0
      PRJ(2) =  0.5D0
      WRITE (6, 30) 'Orthographic/synthesis', (PRJ(J), J=1,2)
      CALL PRJPLT ('SIN', 90, -90, PRJ)
d101 2
a102 2
      WRITE (6, 20) 'Zenithal/azimuthal equidistant'
      CALL PRJPLT ('ARC', 90, -90, PRJ)
d105 12
a116 12
      PRJ(0) =  0.05000D0
      PRJ(1) =  0.95000D0
      PRJ(2) = -0.02500D0
      PRJ(3) = -0.15833D0
      PRJ(4) =  0.00208D0
      PRJ(5) =  0.00792D0
      PRJ(6) = -0.00007D0
      PRJ(7) = -0.00019D0
      PRJ(8) =  0.00000D0
      PRJ(9) =  0.00000D0
      WRITE (6, 30) 'Zenithal/azimuthal polynomial', (PRJ(J), J=0,9)
      CALL PRJPLT ('ZPN', 90,  10, PRJ)
d119 2
a120 2
      WRITE (6, 20) 'Zenithal/azimuthal equal area'
      CALL PRJPLT ('ZEA', 90, -90, PRJ)
d123 3
a125 3
      PRJ(1) = 45D0
      WRITE (6, 30) 'Airy''s zenithal', PRJ(1)
      CALL PRJPLT ('AIR', 90, -85, PRJ)
d128 4
a131 4
      PRJ(1) = 3.0D0
      PRJ(2) = 0.8D0
      WRITE (6, 30) 'Cylindrical perspective', (PRJ(J), J=1,2)
      CALL PRJPLT ('CYP', 90, -90, PRJ)
d134 7
a140 7
      PRJ(1) = 0.75D0
      WRITE (6, 30) 'Cylindrical equal area', PRJ(1)
      CALL PRJPLT ('CEA', 90, -90, PRJ)

*     CAR: Cartesian.
      WRITE (6, 20) 'Cartesian'
      CALL PRJPLT ('CAR', 90, -90, PRJ)
d143 2
a144 2
      WRITE (6, 20) 'Mercator''s'
      CALL PRJPLT ('MER', 85, -85, PRJ)
d147 2
a148 2
      WRITE (6, 20) 'Sanson-Flamsteed (global sinusoid)'
      CALL PRJPLT ('SFL', 90, -90, PRJ)
d151 2
a152 2
      WRITE (6, 20) 'Parabolic'
      CALL PRJPLT ('PAR', 90, -90, PRJ)
d155 2
a156 2
      WRITE (6, 20) 'Mollweide''s'
      CALL PRJPLT ('MOL', 90, -90, PRJ)
d159 2
a160 2
      WRITE (6, 20) 'Hammer-Aitoff'
      CALL PRJPLT ('AIT', 90, -90, PRJ)
d163 4
a166 4
      PRJ(1) =  60D0
      PRJ(2) =  15D0
      WRITE (6, 30) 'Conic perspective', (PRJ(J), J=1,2)
      CALL PRJPLT ('COP', 90, -25, PRJ)
d169 4
a172 4
      PRJ(1) =  60D0
      PRJ(2) = -15D0
      WRITE (6, 30) 'Conic equal area', (PRJ(J), J=1,2)
      CALL PRJPLT ('COE', 90, -90, PRJ)
d175 4
a178 4
      PRJ(1) = -60D0
      PRJ(2) =  15D0
      WRITE (6, 30) 'Conic equidistant', (PRJ(J), J=1,2)
      CALL PRJPLT ('COD', 90, -90, PRJ)
d181 4
a184 4
      PRJ(1) = -60D0
      PRJ(2) = -15D0
      WRITE (6, 30) 'Conic orthomorphic', (PRJ(J), J=1,2)
      CALL PRJPLT ('COO', 85, -90, PRJ)
d187 3
a189 3
      PRJ(1) = 30D0
      WRITE (6, 30) 'Bonne''s', PRJ(1)
      CALL PRJPLT ('BON', 90, -90, PRJ)
d192 2
a193 2
      WRITE (6, 20) 'Polyconic'
      CALL PRJPLT ('PCO', 90, -90, PRJ)
d196 2
a197 2
      WRITE (6, 20) 'Tangential spherical cube'
      CALL PRJPLT ('TSC', 90, -90, PRJ)
d200 2
a201 2
      WRITE (6, 20) 'COBE quadrilateralized spherical cube'
      CALL PRJPLT ('CSC', 90, -90, PRJ)
d204 2
a205 2
      WRITE (6, 20) 'Quadrilateralized spherical cube'
      CALL PRJPLT ('QSC', 90, -90, PRJ)
d213 1
a213 1
      SUBROUTINE PRJPLT (PCODE, NORTH, SOUTH, PRJ)
d215 1
a215 1
*   PRJPLT draws a 15 degree coordinate grid.
d221 1
a221 3
*
*   Given and returned:
*      PRJ      D(0:20)  Projection parameters.
d224 2
a225 1
      INTEGER   CI, IERR, ILAT, ILNG, J, NORTH, SOUTH
d227 2
a228 1
      DOUBLE PRECISION LAT, LNG, PHI0, PRJ(0:20), THETA0, X, Y
d230 3
d234 6
a239 2
      DO 10 J = 11, 20
         PRJ(J) = 0D0
a241 2
      CALL PRJSET (PCODE, PRJ, PHI0, THETA0, IERR)

d247 3
a249 1
      CUBIC = NINT(PRJ(11))/100.EQ.7
a255 1
         CALL PRJFWD (0D0, 0D0, PRJ, X, Y, IERR)
d257 20
a276 18
         XR(1) =  PRJ(12)
         YR(1) =  PRJ(12)
         XR(2) =  PRJ(12)
         YR(2) =  PRJ(12)*3.0
         XR(3) = -PRJ(12)
         YR(3) =  PRJ(12)*3.0
         XR(4) = -PRJ(12)
         YR(4) = -PRJ(12)*3.0
         XR(5) =  PRJ(12)
         YR(5) = -PRJ(12)*3.0
         XR(6) =  PRJ(12)
         YR(6) =  PRJ(12)
         XR(7) = -PRJ(12)*7.0
         YR(7) =  PRJ(12)
         XR(8) = -PRJ(12)*7.0
         YR(8) = -PRJ(12)
         XR(9) =  PRJ(12)
         YR(9) = -PRJ(12)
d286 1
a286 1
      DO 40 ILNG = -180, 180, 15
d290 1
a290 1
         LNG = DBLE(ILNG)
d298 15
a312 9
         J = 0
         DO 30 ILAT = NORTH, SOUTH, -1
            LAT = DBLE(ILAT)

            CALL PRJFWD (LNG, LAT, PRJ, X, Y, IERR)
            IF (IERR.NE.0) THEN
               IF (J.GT.1) CALL PGLINE (J, XR, YR)
               J = 0
               GO TO 30
d316 4
a319 3
               IF (ABS(X+XR(J)).GT.2D0 .OR. ABS(Y-YR(J)).GT.5D0) THEN
                  IF (J.GT.1) CALL PGLINE (J, XR, YR)
                  J = 0
d323 4
a326 4
            J = J + 1
            XR(J) = -X
            YR(J) =  Y
 30      CONTINUE
d328 2
a329 2
         CALL PGLINE (J, XR, YR)
 40   CONTINUE
d332 1
a332 1
      DO 60 ILAT = -90, 90, 15
d336 2
a337 2
         IF (ILAT.GT.NORTH) GO TO 60
         IF (ILAT.LT.SOUTH) GO TO 60
d339 1
a339 1
         LAT = DBLE(ILAT)
d347 14
a360 9
         J = 0
         DO 50 ILNG = -180, 180, 1
            LNG = DBLE(ILNG)

            CALL PRJFWD (LNG, LAT, PRJ, X, Y, IERR)
            IF (IERR.NE.0) THEN
               IF (J.GT.1) CALL PGLINE (J, XR, YR)
               J = 0
               GO TO 50
d364 4
a367 3
               IF (ABS(X+XR(J)).GT.2D0 .OR. ABS(Y-YR(J)).GT.5D0) THEN
                  IF (J.GT.1) CALL PGLINE (J, XR, YR)
                  J = 0
d371 4
a374 4
            J = J + 1
            XR(J) = -X
            YR(J) =  Y
 50      CONTINUE
d376 2
a377 2
         CALL PGLINE (J, XR, YR)
 60   CONTINUE
a383 5

      DO 80 J = 0, 20
         PRJ(J) = 0D0
 80   CONTINUE

d386 1
@


2.9
log
@Test AZP with gamma = 30; added new test for SZP; revised parameters for the
SIN projection; removed the pointer to the forward projection routine and
also the projection type from the argument list to PRJPLT; don't say what's
being plotted until the plot actually starts.
@
text
@d4 1
a4 1
*   Copyright (C) 1995-2001, Mark Calabretta
d34 1
a34 1
*   $Id: tproj2.f,v 2.8 2000/12/04 05:10:36 mcalabre Exp mcalabre $
@


2.8
log
@Reordered projections to match paper.
@
text
@d4 1
a4 1
*   Copyright (C) 1995-2000, Mark Calabretta
d34 1
a34 1
*   $Id: tproj2.f,v 2.7 2000/05/10 04:51:30 mcalabre Exp mcalabre $
a40 26

      EXTERNAL AZPFWD
      EXTERNAL TANFWD
      EXTERNAL STGFWD
      EXTERNAL SINFWD
      EXTERNAL ARCFWD
      EXTERNAL ZPNFWD
      EXTERNAL ZEAFWD
      EXTERNAL AIRFWD
      EXTERNAL CYPFWD
      EXTERNAL CEAFWD
      EXTERNAL CARFWD
      EXTERNAL MERFWD
      EXTERNAL SFLFWD
      EXTERNAL PARFWD
      EXTERNAL MOLFWD
      EXTERNAL AITFWD
      EXTERNAL COPFWD
      EXTERNAL COEFWD
      EXTERNAL CODFWD
      EXTERNAL COOFWD
      EXTERNAL BONFWD
      EXTERNAL PCOFWD
      EXTERNAL TSCFWD
      EXTERNAL CSCFWD
      EXTERNAL QSCFWD
d68 11
a78 3
      PRJ(1) = 2D0
      WRITE (6, 30) 'Zenithal/azimuthal perspective', PRJ(1)
      CALL PRJPLT ('AZP', AZPFWD, PRJ, 90, -30, 1)
d82 1
a82 1
      CALL PRJPLT ('TAN', TANFWD, PRJ, 90, 5, 1)
d86 1
a86 1
      CALL PRJPLT ('STG', STGFWD, PRJ, 90, -85, 1)
d89 2
a90 2
      PRJ(1) = 0.3D0
      PRJ(2) = 0.5D0
d92 1
a92 1
      CALL PRJPLT ('SIN', SINFWD, PRJ, 90, -90, 1)
d96 1
a96 1
      CALL PRJPLT ('ARC', ARCFWD, PRJ, 90, -90, 1)
d110 1
a110 1
      CALL PRJPLT ('ZPN', ZPNFWD, PRJ, 90, 10, 1)
d114 1
a114 1
      CALL PRJPLT ('ZEA', ZEAFWD, PRJ, 90, -90, 1)
d119 1
a119 1
      CALL PRJPLT ('AIR', AIRFWD, PRJ, 90, -85, 1)
d125 1
a125 1
      CALL PRJPLT ('CYP', CYPFWD, PRJ, 90, -90, 2)
d130 1
a130 1
      CALL PRJPLT ('CEA', CEAFWD, PRJ, 90, -90, 2)
d134 1
a134 1
      CALL PRJPLT ('CAR', CARFWD, PRJ, 90, -90, 2)
d138 1
a138 1
      CALL PRJPLT ('MER', MERFWD, PRJ, 85, -85, 2)
d142 1
a142 1
      CALL PRJPLT ('SFL', SFLFWD, PRJ, 90, -90, 4)
d146 1
a146 1
      CALL PRJPLT ('PAR', PARFWD, PRJ, 90, -90, 4)
d150 1
a150 1
      CALL PRJPLT ('MOL', MOLFWD, PRJ, 90, -90, 4)
d154 1
a154 1
      CALL PRJPLT ('AIT', AITFWD, PRJ, 90, -90, 4)
d160 1
a160 1
      CALL PRJPLT ('COP', COPFWD, PRJ, 90, -25, 3)
d166 1
a166 1
      CALL PRJPLT ('COE', COEFWD, PRJ, 90, -90, 3)
d172 1
a172 1
      CALL PRJPLT ('COD', CODFWD, PRJ, 90, -90, 3)
d178 1
a178 1
      CALL PRJPLT ('COO', COOFWD, PRJ, 85, -90, 3)
d183 1
a183 1
      CALL PRJPLT ('BON', BONFWD, PRJ, 90, -90, 4)
d187 1
a187 1
      CALL PRJPLT ('PCO', PCOFWD, PRJ, 90, -90, 4)
d191 1
a191 1
      CALL PRJPLT ('TSC', TSCFWD, PRJ, 90, -90, 5)
d195 1
a195 1
      CALL PRJPLT ('CSC', CSCFWD, PRJ, 90, -90, 5)
d199 1
a199 1
      CALL PRJPLT ('QSC', QSCFWD, PRJ, 90, -90, 5)
d201 1
d207 1
a207 1
      SUBROUTINE PRJPLT (PCODE, PRJFWD, PRJ, NORTH, SOUTH, TYPE)
a212 1
*      PRJFWD   E        Forward projection routine.
a214 6
*      TYPE     I        Projection classification:
*                           1: zenithal/azimuthal
*                           2: cylindrical
*                           3: conic
*                           4: conventional
*                           5: quad cube
d219 2
a220 1
      INTEGER   CI, IERR, ILAT, ILNG, J, NORTH, SOUTH, TYPE
d222 1
a222 1
      DOUBLE PRECISION LAT, LNG, PRJ(0:20), X, Y
d224 4
d229 4
a232 4
      EXTERNAL PRJFWD
*-----------------------------------------------------------------------
      WRITE (6, 10) PCODE, NORTH, SOUTH
 10   FORMAT ('Plotting ',A3,'; Latitudes',I3,' to',I4,'.')
d234 1
a234 3
      DO 20 J = 11, 20
         PRJ(J) = 0D0
 20   CONTINUE
d236 2
a237 1
      IF (TYPE.EQ.5) THEN
d295 1
a295 1
            IF (TYPE.EQ.5 .AND. J.GT.0) THEN
d337 1
a337 1
            IF (TYPE.EQ.5 .AND. J.GT.0) THEN
d361 3
@


2.7
log
@Updated date in copyright notice.
@
text
@d34 1
a34 1
*   $Id: tproj2.f,v 2.6 1999/06/16 00:18:06 mcalabre Exp mcalabre $
d44 1
a45 1
      EXTERNAL STGFWD
d51 1
d54 4
a57 1
      EXTERNAL CEAFWD
d59 1
a60 1
      EXTERNAL COEFWD
d64 1
a64 4
      EXTERNAL GLSFWD
      EXTERNAL PARFWD
      EXTERNAL AITFWD
      EXTERNAL MOLFWD
a66 1
      EXTERNAL TSCFWD
d102 4
a111 4
*     STG: stereographic.
      WRITE (6, 20) 'Stereographic'
      CALL PRJPLT ('STG', STGFWD, PRJ, 90, -85, 1)

d145 5
d158 15
a172 4
*     CEA: cylindrical equal area.
      PRJ(1) = 0.75D0
      WRITE (6, 30) 'Cylindrical equal area', PRJ(1)
      CALL PRJPLT ('CEA', CEAFWD, PRJ, 90, -90, 2)
d180 6
a191 6
*     COE: conic equal area.
      PRJ(1) =  60D0
      PRJ(2) = -15D0
      WRITE (6, 30) 'Conic equal area', (PRJ(J), J=1,2)
      CALL PRJPLT ('COE', COEFWD, PRJ, 90, -90, 3)

d207 3
a209 15
*     GLS: Sanson-Flamsteed (global sinusoid).
      WRITE (6, 20) 'Sanson-Flamsteed (global sinusoid)'
      CALL PRJPLT ('GLS', GLSFWD, PRJ, 90, -90, 4)

*     PAR: parabolic.
      WRITE (6, 20) 'Parabolic'
      CALL PRJPLT ('PAR', PARFWD, PRJ, 90, -90, 4)

*     AIT: Hammer-Aitoff.
      WRITE (6, 20) 'Hammer-Aitoff'
      CALL PRJPLT ('AIT', AITFWD, PRJ, 90, -90, 4)

*     MOL: Mollweide's projection.
      WRITE (6, 20) 'Mollweide''s'
      CALL PRJPLT ('MOL', MOLFWD, PRJ, 90, -90, 4)
a217 4

*     TSC: tangential spherical cube.
      WRITE (6, 20) 'Tangential spherical cube'
      CALL PRJPLT ('TSC', TSCFWD, PRJ, 90, -90, 5)
@


2.6
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
*   Copyright (C) 1995-1999, Mark Calabretta
d34 1
a34 1
*   $Id: tproj2.f,v 2.5 1998/02/25 07:02:23 mcalabre Exp mcalabre $
@


2.5
log
@Updated date in copyright notice.
@
text
@d4 1
a4 1
*   Copyright (C) 1995-1998, Mark Calabretta
d34 1
a34 1
*   $Id: tproj2.f,v 2.4 1998/02/25 06:54:31 mcalabre Exp mcalabre $
@


2.4
log
@Tweaked the SIN projection parameters.
@
text
@d4 1
a4 1
*   Copyright (C) 1995-1997, Mark Calabretta
d34 1
a34 1
*   $Id: tproj2.f,v 2.3 1996/09/10 06:48:12 mcalabre Exp mcalabre $
@


2.3
log
@Changed references to PRJ(11) for the quadcubes to PRJ(12).
@
text
@d4 1
a4 1
*   Copyright (C) 1995, Mark Calabretta
d34 1
a34 1
*   $Id: tproj2.f,v 2.2 1996/05/07 21:11:46 mcalabre Exp mcalabre $
d104 1
a104 1
      PRJ(2) = 1.5D0
d106 1
a106 1
      CALL PRJPLT ('SIN', SINFWD, PRJ, 90, 60, 1)
d309 5
a313 1
            IF (IERR.NE.0) GO TO 30
d351 5
a355 1
            IF (IERR.NE.0) GO TO 50
@


2.2
log
@Print header.
@
text
@d34 1
a34 1
*   $Id: tproj2.f,v 2.1 1995/12/22 02:40:38 mcalabre Exp mcalabre $
d265 18
a282 18
         XR(1) =  PRJ(11)
         YR(1) =  PRJ(11)
         XR(2) =  PRJ(11)
         YR(2) =  PRJ(11)*3.0
         XR(3) = -PRJ(11)
         YR(3) =  PRJ(11)*3.0
         XR(4) = -PRJ(11)
         YR(4) = -PRJ(11)*3.0
         XR(5) =  PRJ(11)
         YR(5) = -PRJ(11)*3.0
         XR(6) =  PRJ(11)
         YR(6) =  PRJ(11)
         XR(7) = -PRJ(11)*7.0
         YR(7) =  PRJ(11)
         XR(8) = -PRJ(11)*7.0
         YR(8) = -PRJ(11)
         XR(9) =  PRJ(11)
         YR(9) = -PRJ(11)
@


2.1
log
@Test PRJ(1) < 0 and or PRJ(2) < 0 for the conics.  Also, mark the
reference point for the projection on the grid plot.
@
text
@d34 1
a34 1
*   $Id: tproj2.f,v 2.0 1995/09/12 06:40:24 mcalabre Exp mcalabre $
d68 4
d226 1
a226 1
*   PROJEX exercises the spherical projection routines.
@


2.0
log
@WCSLIB 2.0
@
text
@d34 1
a34 1
*   $Id: tproj2.f,v 1.2 1995/09/12 06:39:57 mcalabre Exp mcalabre $
d155 2
a156 2
      PRJ(1) = 60D0
      PRJ(2) = 15D0
d161 2
a162 2
      PRJ(1) = 60D0
      PRJ(2) = 15D0
d167 2
a168 2
      PRJ(1) = 60D0
      PRJ(2) = 15D0
d173 2
a174 2
      PRJ(1) = 60D0
      PRJ(2) = 15D0
d176 1
a176 1
      CALL PRJPLT ('COO', COOFWD, PRJ, 90, -85, 3)
d359 5
@


1.2
log
@1) Reference latitude for conics now at the midpoint of the standard
   parallels.
2) Use pgpage() to start new plots rather then pgbeg() to save having to
   destroy the old window and create a new one.
3) Fixed the colour sequence for meridians (blue-red-white).
@
text
@d34 1
a34 1
*   $Id: tproj2.f,v 1.1 1995/01/31 03:20:39 mcalabre Exp mcalabre $
@


1.1
log
@Initial revision
@
text
@d34 1
a34 1
*   $Id$
d75 14
d155 2
a156 2
      PRJ(1) = 45D0
      PRJ(2) = 75D0
d161 2
a162 2
      PRJ(1) = 45D0
      PRJ(2) = 75D0
d167 2
a168 2
      PRJ(1) = 45D0
      PRJ(2) = 75D0
d173 2
a174 2
      PRJ(1) = 45D0
      PRJ(2) = 75D0
d215 2
a252 13
      CALL PGBEG (0, '/xwindow', 1, 1)

*     Define pen colours.
      CALL PGSCR (0, 0.00, 0.00, 0.00)
      CALL PGSCR (1, 1.00, 1.00, 0.00)
      CALL PGSCR (2, 1.00, 1.00, 1.00)
      CALL PGSCR (3, 0.80, 0.50, 0.50)
      CALL PGSCR (4, 0.50, 0.50, 0.80)
      CALL PGSCR (5, 0.80, 0.80, 0.80)
      CALL PGSCR (6, 0.80, 0.50, 0.50)
      CALL PGSCR (7, 0.50, 0.50, 0.80)
      CALL PGSCR (8, 0.30, 0.50, 0.30)

d255 1
d282 1
d323 1
a323 1
      DO 60 ILAT = 90, -90, -15
a358 2

      CALL PGEND
@
