Programme informatique sous gwbasic permettant de connaître

les dates de lever et de coucher du soleil

sur un point choisi de l'horizon

(par exemple couchers sur le canigou vus de la région marseillaise).

par Jean Pakhomoff gnomoniste à Marseille

 

50 REM PROGRAMME GW-BASIC JEAN PAKHOMOFF https://www.pakhomoff.net

60 REM azca1 cos (g) = (1+ h/6*r)/(1+ h/r) r = 6368000 m. La réfraction est prise égale à 0.61° (36'36'') valeur de la théorie de RADAU.21/8/1992///29/5/1998///6/11/2002.

65 OPEN"azca4.dat" FOR OUTPUT AS #1:rem open idée suggérée novembre 2000

70 KEY OFF : CLS

80 DEFDBL A-Z:PI=4#*ATN(1#)

90 INPUT "Année de l'observation ?",AN

100 REM L'inclinaison e de l'équateur céleste sur l'écliptique diminue actuellement et pendant encore 15000 ans pour croître à nouveau pendant 50000 ans etc...

110 REM Cette variation est traduite avec une approximation suffisante par la formule

e = 23°27'6'' - 0,46845'' X t. t étant compté en années depuis le 1/1/1900.

120 REM A cette date e égalait 23.451666°. On obtiendra la valeur proche d'ep au

moment de l'observation en posant e = 23.451666 - 0.46845'' X (date en année - 1900).

130 EPSILON=23.451666#-.46845#*(AN-1900#)/3600#:print:rem on transforme 0,46845 seconde en degré en divisant par 3600.

150 INPUT "identification des lieux: appuyez sur y pour oui, sur une autre lettre pour non.",KN$

160 IF KN$<>"y" THEN 190

170 INPUT"NOMS DANS CET ORDRE : LIEU D'OBSERVATION, LIEU DU PHENOMENE",OB$,PH$

180 PRINT #1,"Observation de ";OB$;" vers "PH$:PRINT

190 INPUT "Coucher sur le CANIGOU appuyez sur c, autre lieu sur une autre lettre",V$

200 IF V$<>"c" THEN PRINT:GOTO 240

210 PRINT: INPUT "Latitude du lieu d'observation et longitude (+ pour le nord et l'ouest, - pour le sud et l'est en ° décimaux ?",FOM,LM:LOM=LM

220 FOC=42.52014#:LC=-2.45818#:HP=2784#:LIC=LC:GOTO 330:PRINT

240 PRINT "latitude du lieu d'observation ? :fm > 0 au nord, < 0 au sud"

250 PRINT

260 PRINT "longitude du lieu d'observation ? :lm > 0 à l'ouest , < 0 à l'est"

270 PRINT

280 PRINT "latitude du lieu choisi pour le coucher ( ou le lever ) ? :fc > 0 au nord, < 0 au sud"

290 PRINT

300 PRINT "longitude du lieu choisi pour le coucher ( ou le lever ) ? :lc > 0 à l'ouest, < 0 à l'est":print

320 INPUT FOM,LM,FOC,LC:LOM=LM:LIC=LC

330 IF V$="c" THEN PRINT #1,"f = ";FOM;" Lo = ";LM;" f Canigou = ";FOC;" Lo Canigou = ";LC:GOTO 350

340 PRINT #1,"f obs = ";FOM;" Lo obs = ";LM;" f lieu choisi = ";FOC;" Lo lieu choisi = ";LC

350 FM=FOM*PI/180#:LM=LM*PI/180#:FC=FOC*PI/180#:LC=LC*PI/180#

360 UJ=ABS(LC-LM)

370 A=(SIN(FC)-SIN(FM)*(SIN(FC)*SIN(FM)+COS(FC)*COS(FM)*COS(UJ)))/(COS(FM)*COS(F

C)*SIN(UJ))

380 Z=ATN(1#/A)

390 IF Z>0 THEN 410

400 Z=PI+Z

410 X=PI-Z:print

430 INPUT "votre altitude en mètres ",H

440 CLS:R=6368#:REM valeur du rayon du géoïde terrestre à la latitude de 45°

450 PRINT #1,"Altitude = ";H;" m.":IF V$="c" THEN PRINT:PRINT:GOTO 470

460 PRINT:PRINT:INPUT "Altitude du phénomène observé en mètres ?",HP

470 PRINT #1,"Altitude du phénomène observé = ";HP;" mètres.":PRINT:HO=H/1000#:HHPP=HP:HP=HP/1000#

480 DD=SIN(FC)*SIN(FM)+COS(FC)*COS(FM)*COS(UJ):REM dd<=>cos alfa du travail.

490 DD=ATN(SQR(1#-DD^2#)/DD):REM dd est toujours un petit angle proche du degré.

Donc on n'envisage pas le cas où le cosinus devient <0 (angle >PI/2).

500 DDD=FIX(DD*6368000#)/1000#:REM R*alfa radian

510 PRINT#1,"Distance géographique des lieux = ";DDD;" Km.":PRINT

520 DDDD=123.693#*(SQR(HO)+SQR(HP)):PRINT #1,"Distance maximale visible ";DDDD;"

Km.":PRINT:IF DDDD>DDD THEN 540

530 PRINT"La distance géographique est trop importante pour que les 2 lieux soient visibles l'un de l'autre malgré la dépression de l'horizon: visibilité maximum = ";DDDD;"Km.":GOTO 1195

540 TB=ABS(HP-HO)/(TAN(DD/2#)*(2#*R+HO+HP)):REM Que hp>ho ou ho>hp la formule

est la même mais la hauteur la plus grande est avant le signe -.

550 TBB=ATN(TB):REM valeur de b

560 IF HP>HO THEN HH=HP ELSE HH=HO:REM car dans le calcul de OG'' on tient compte de la hauteur du lieu le plus élevé.

570 OGG=(R+HH)*COS(DD/2#+TBB):REM valeur de OG''

580 OOGG=R-OGG:OOGG=FIX(OOGG*100000#)/100#:REM valeur de O''G''

590 IF OOGG=0 THEN PRINT#1,"tangence entre les 2 points d'observation et la surface terrestre.":SR$=" Il y a tangence":GOTO 620

600 IF OOGG<0 THEN OOGG=-OOGG:PRINT #1,"LIGNE DE JONCTION ENTRE LES 2 POINTS D'observation passe à ";OOGG;

" M. AU-DESSUS DE LA SURFACE TERRESTRE.":SR$=" Au-dessus de la surface terrestre":GOTO 620

610 PRINT #1,"La ligne de jonction entre les 2 points d'observation passe à ";OOGG;" M. au-dessous de la surface terrestre.":

PRINT:SR$=" Au-dessous de la surface terrestre."

620 PRINT:PRINT

630 DELTA=-COS(FM)*COS(X)

640 DELTA=ATN(DELTA/SQR(1#-(DELTA)^2#))

650 SIGMA=SIN(FM)/COS(DELTA)

660 IF SIGMA>0 THEN 680

670 SIGMA=-SIGMA:REM cos p (ou S) = -sin f / cos avec f <0 pour l'hémisphère Sud (voir l'étude).

680 SIGMA=ATN(SQR(1#-SIGMA^2#)/SIGMA):REM S varie entre p/2-f et 0. Si d=0 alors

cos p = sin f <===> cos(p/2-f) et p = p/2-f (cas de l'équateur).

690 REM Si abs(d) = p/2-f (cas où l'astre tangente l'horizon sans se coucher (ou se lever) alors cos d = sin f et cos p = 1 d'où p = 0.

L'arc tangente Sigma sera donc toujours >0.

700 GAMMA=(1#+H/(6#*6368000#))/(1#+H/6368000#)

710 G=ATN((SQR(1#-(GAMMA)^2#))/GAMMA)

720 DG=.61#*PI/180#+G

730 IF FM>0 THEN 750

740 TG=X+DG/SIGMA:GOTO 760

750 TG=X-DG/SIGMA

760 UT=-COS(FM)*COS(TG)

770 DGX=ATN(UT/SQR(1#-(UT)^2#))*180#/PI

780 PRINT "azimut = ";X*180#/PI

790 PRINT #1,"azimut = ";X*180#/PI

800 PRINT

810 PRINT

820 PRINT "azimut aprés corrections = ";TG*180#/PI

830 PRINT #1,"azimut aprés corrections = ";TG*180#/PI

840 PRINT

850 REM si la valeur absolue de dgx est > e alors les conditions ne sont pas réunies pour qu'il y ait un lever ou un coucher de

soleil entre ces 2 points de l'horizon.

860 IF ABS(DGX)<EPSILON THEN 890

870 PRINT:PRINT #1,"Il ne peut y avoir de coucher ou de lever entre ces deux points de l'horizon.

La déclinaison de l'astre répondant aux conditions d'observation = ";DGX;"°"

880 PRINT:PRINT"Il ne peut y avoir de coucher ou de lever entre ces deux points

de l'horizon. La déclinaison de l'astre répondant aux conditions d'observation = ";DGX;"°":goto 1195

890 PRINT "déclinaison du soleil à prendre en compte = ";DGX

900 PRINT #1,"déclinaison du soleil à prendre en compte = ";DGX:PRINT:PRINT:PRINT:PRINT:IF KN$<>"y" THEN 1195

910 INPUT "Voulez-vous un tableau récapitulatif ? Si oui appuyez sur y si non su

r une autre lettre.",TAB$

920 IF TAB$="y" THEN 940

930 GOTO 1195

940 PRINT #1,TAB(4);"***********************************************************

**********"

950 PRINT #1,TAB(4);"*";TAB(27);"*";TAB(30);"Lieu d'observation";TAB(50);"*";TAB

(53);"Lieu du phénomène";TAB(72);"*"

960 PRINT #1,TAB(4);"*";TAB(27);"*";TAB(50);"*";TAB(72);"*"

970 PRINT #1,TAB(4);"***********************************************************

**********"

980 PRINT #1,TAB(4);"*";TAB(13);"NOM";TAB(27);"*";TAB(29);OB$;TAB(50);"*";TAB(52

);PH$;TAB(72);"*"

990 PRINT #1,TAB(4);"*";TAB(27);"*";TAB(50);"*";TAB(72);"*"

1000 PRINT #1,TAB(4);"**********************************************************

***********"

1010 PRINT #1,TAB(4);"*";TAB(10);"LATITUDE";TAB(27);"*";TAB(29);FOM;TAB(50);"*";

TAB(52);FOC;TAB(72);"*"

1020 PRINT #1,TAB(4);"**********************************************************

***********"

1030 PRINT #1,TAB(4);"*";TAB(10);"LONGITUDE";TAB(27);"*";TAB(29);LOM;TAB(50);"*"

;TAB(52);LIC;TAB(72);"*"

1040 PRINT #1,TAB(4);"**********************************************************

***********"

1050 PRINT #1,TAB(4);"*";TAB(10);"HAUTEUR en m.";TAB(27);"*";TAB(29);H;TAB(50);"

*";TAB(52);HHPP;TAB(72);"*"

1060 PRINT #1,TAB(4);"**********************************************************

***********"

1070 PRINT #1,TAB(4);"*";TAB(6);"DISTANCE GEOGRAPHIQUE ENTRE CES 2 LIEUX EN KM.: ";TAB(58);DDD;TAB(72);"*"

1080 PRINT #1,TAB(4);"*";TAB(6);"DISTANCE MAXIMALE VISIBLE D'UN LIEU VERS L'AUTRE EN KM.:";TAB(63);FIX(DDDD*1000#)/1000#;TAB(72);"*"

1090 PRINT #1,TAB(4);"********************************************************************"

1100 PRINT #1,TAB(4);"*";TAB(6);"La ligne non déviée joignant ces 2 lieux passeà";TAB(72);"*"

1110 PRINT #1,TAB(4);"*";TAB(6);OOGG;TAB(15);" mètres ";TAB(24);SR$;TAB(72);"*"

1120 PRINT #1,TAB(4);"**********************************************************

***********"

1130 PRINT #1,TAB(4);"*";TAB(6);"DECLINAISON CORRIGEE A RETENIR en °: ";TAB(47);

FIX(DGX*10000#)/10000#;TAB(72);"*"

1140 PRINT #1,TAB(4);"**********************************************************

***********"

1150 PRINT #1,TAB(4);"*";TAB(6);"Ce qui correspond aux dates les plus favorables

ci-dessous :";TAB(72);"*"

1160 PRINT #1,TAB(4);"*";TAB(72);"*"

1170 PRINT #1,TAB(4);"*";TAB(72);"*"

1180 PRINT #1,TAB(4);"**********************************************************

***********"

1190 PRINT:PRINT:PRINT:PRINT:PRINT

1195 CLOSE

1200 END

jean pakhomoff au sommet du canigou

le 6 Août 1986

retour page précédente

retour à "mes travaux personnels"

retour au menu