FORTRAN 90 Help- reading input in format DDMMYYYY + more

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 reply · 3K views
cooljosh2k2
Messages
67
Reaction score
0

Homework Statement



This is assignment is on FORTRAN 90:

In an assignment i have, i am to enter a date in the format DDMMYYYY, and its suppose to compute and display the day of the week that date falls on (based on a given algorithm). I was able to code a program that would give me the right day of the week, however, i was only able to get it to work in the format: date, month, year (with commas separating each of them). How can i get my program to read the date DDMMYYYY, without the commas.

For part 2, i am to use the program to determine the day of the week my birthday falls on, then i should find the next five times (after 2011) that my birthday falls on that same day of the week.

The Attempt at a Solution



For part 1, this is what i did:

-----------------------------------------------------

PROGRAM assignment2
IMPLICIT NONE

INTEGER:: Day, Month, Year, Century, H

READ(*,*) Day,Month,Year !to read in format DD,MM,YYYY

Month = Month -2
!this accounts for unusual format for months (eg. March=01...February=12)
If (Month <= 0) Month = Month + 12
IF (Month >= 11) Year = Year - 1
Century = INT(Year / 100)
!eg. 2011 = 20
Year = MOD(Year, 100)
!eg. 2011= 11
H = INT(13 * Month - 1)/5 + Day + Year + &
(Year / 4) + (Century / 4) - 2*Century
H = MOD(H,7)
IF (MOD(H,7) < 0) H = MOD(H,7) + 7
!this will make sure our day of the week is a positive integer
write(*,*) 'Day Of the Week :',HEND PROGRAM assignment2

---------------------------------------------

For part 2, i am completely lost. I understand that i will need to do a DO LOOP, but have no idea what to do.

Please help.

Thanks
 
Physics news on Phys.org
If I am understanding you correctly regarding your comma question, you could use a formatted input.

integer dd,mm,yyyy

read(5,100)dd,mm,yy
100 format(2i2,1i4)

Thus February 4, 1977 would be entered as: 04021977. It would have to be left justified. The 5 in the format statement means it is reading from keyboard input. It won't work unless it is left justified.


100 format(2i2,1i4)