PDA

Visualizza la versione completa : [Fortran] Ordinare dati di pių vettori


lollazzo
14-07-2011, 09:30
Salve vorrei scrivere un programma in fortran che partendo da una tabella di dati :

Hs | Tp | Dir |
1 12 12

e cosė via


mi divida i dati in settori di 30 (0-30,31-60........301-360) in base alla colonna Dir e salvi i dati contenuti nei settori in file diversi ,oppure nello stesso file ma ordinati per settore

Ho scritto un abbozzo di programma, ma non riesco a fare il ciclo IF per due condizioni.Mi potreste spiegare come fare?



PROGRAM Ordine

COMMON HS(200000) ,TP(200000)
COMMON DIR(200000)
* APERTURA FILE
OPEN(UNIT=10,STATUS='OLD',FILE='DATI.TXT')
* DEFINISCO L'INDICE IN CUI INSERISCO IL DATO
I=0
DO WHILE (.NOT.EOF(10))
READ(10,*) Q1,Q2,Q3
I=I+1
HS(I)=Q1
TP(I)=Q2
DIR(I)=Q3
END DO
Imax=I
Write(6,*) IMax

************************
Do i=1,imax
D=DIR(I)
IF ( D.GT.0.AND.D.LT.31)
WRITE(11,*) D(I),HS(I),TP(I)

IF ( D.GT.30.AND.D.LT.61)
WRITE(12,*) D(I),HS(I),TP(I)

IF ( D.GT.60 && D.LT.91)
WRITE(13,*) D(I),HS(I),TP(I)

IF ( D.GT.90 && D.LT.121)
WRITE(14,*) D(I),HS(I),TP(I)

IF ( D.GT.120 && D.LT.151)
WRITE(15,*) D(I),HS(I),TP(I)

IF ( D.GT.150 && D.LT.181)
WRITE(16,*) D(I),HS(I),TP(I)

IF ( D.GT.180 && D.LT.211)
WRITE(17,*) D(I),HS(I),TP(I)

IF ( D.GT.210 && D.LT.241)
WRITE(18,*) D(I),HS(I),TP(I)

IF ( D.GT.240 && D.LT.271)
WRITE(19,*) D(I),HS(I),TP(I)

IF ( D.GT.270 && D.LT.301)
WRITE(20,*) D(I),HS(I),TP(I)

IF ( D.GT.300 && D.LT.331)
WRITE(21,*) D(I),HS(I),TP(I)

IF ( D.GT.330 && D.LT.361)
WRITE(22,*) D(I),HS(I),TP(I)

END DO

END

Loading