Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-07-2007, 09:36   #1
Warlord
Senior Member
 
L'Avatar di Warlord
 
Iscritto dal: Dec 2002
Città: Padova
Messaggi: 1513
[Fortran] Implementazione DO

mi trovo alle strette nella consegna di qualche porgrammino di fortran ( il bello e' che mi laureo dopo domani e l simulazioni le ho fatte con matlab quasi tutte.. ma la prof si e' convinta che sarebbe bello implementarle in fortran .. )

quindi, sfruttando il lavoro di a2000.1 che mi aveva all'epoca dato una grossisima mano ( ty again ) dovrei aggiungere soltanto la funzione DO al programma gia' scritto . Mi spiego meglio :

il porgramma scritto mi da 1 singolo risultato per un valore ( f nel mio caso ) che fisso a priori ...
devo fare in modo che mi esca una colonna di valori per f compreso da 0 a 0.1 ( con intervallo di 0.01 .. cioe' per 0 - 0.01 - 0.02 fino a 0.1 )

il porgramma e' questo
Quote:
Program Confronto_HC_KOO_PR
Implicit Real*8(a-z) ! METODO IMPLICITO
Parameter (bolz=1.381d-23, pi=3.14159, c=1d0, prh2o=6.8, preg=207d0, a=4*10**4) ! costanti
Integer*2 x

print *,"Desideri usare acqua o glicoletilenico?"; print*, "1)Acqua"; print*,"2)EG"
read*, x
print *, "Calcolo il valore con Hamilton-Crosser"
print*, "Inserisci il valore della conduttivita' termica delle nanoparticelle"
read*, kp
print*, "Inserisci la sfericita' delle nanoparticelle"
read*, n
print*, "Inserisci la frazione volumetrica delle nanoparticelle"
read*, f
print*, "Inserisci il valore della temperatura"
read*, t
print*, "Inserisci il valore del diametro medio nanoparticellare"
read*, dp
print*, "Inserisci il valore della densita' della nanoparticella"
read*, p

! scelgo b a seconda che f sia maggiore o minore dell'unità
if ( f < 1 ) then
b = bmin1
bmin1 = 0.0137*((100*f)**(-0.8229))
else
b = bmag1
bmag1 = 0.0011*((100*f)**(-0.7272))
endif

! Implementazione tutto su una sola riga (prova)
if (x==1) then; ham = hamiltoncrosser(kp,0.613d0,n,f); else; ham = hamiltoncrosser(kp,0.253d0,n,f); endif
write (1,*), ham !"Valore calcolato con la formula di Hamilton-Crosser:", ham

!Implementazione su piu' righe (prova)
if (x==1) then
ko=koo(kp, 0.613d0, t, p, 1000d0, 4186d0, dp, f, b)
else
ko=koo(kp, 0.613d0, t, p, 1000d0, 4186d0, dp, f, b)
end if

write (2,*) , ko !"Valore calcolato con la formula di Koo:", ko

if(x==1) then
rey=reynolds(t, p, dp, 0.001d0)
pra=prasher(kp,0.613d0,f,prh2o,rey,2.5d0)
else
rey=reynolds(t, p, dp, 0.0021d0);
pra=prasher(kp,0.253d0,f,preg,rey,1.6d0);
endif
write (3,*) , pra !"Valore calcolato con la formula di Prasher:", pra

CONTAINS

Function hamiltoncrosser(kp, kb, n, f)
hamiltoncrosser=((kp+(((3d0/n)-1d0)*kb)-(((3d0/n)-1)*(kb-kp)*f))/(kp+(((3d0/n)-1)*kb)+((kb-kp)*f)));
End Function

Function reynolds(t, p, dp, v)
reynolds=sqrt((18d0*(bolz*t))/(pi*p*dp))/v
End Function

Function koo(kp, kb, t, p, pl, cl, dp, f, b)
koo = ((kp+(2*kb)+2*(kp-kb)*f)/(kp+(2*kb)-(kp-kb)*f)) + (14.8479*f*((100*f)**(-0,8229)));
End Function

Function prasher(kp, kb, f, pr, rey, m)
prasher=((kp+(2*kb)+2*(kp-kb)*f)/(kp+(2*kb)-(kp-kb)*f))*(1+2.97929*f)
End Function

End Program Confronto_HC_KOO_PR
delle 60 e rotte simulazioni volevo almeno portare questo programma in fortran per dare un contentino alla prof ( magari lo scorporo in 3 programmi per ogni function + questo di confronto per aumentare il volume ) solo che ho fatto delle porve ma nn ne vengo fuori con l'implementare il DO

dovrebbe essere qualcosa come

do f = 0, 0.1
....
end do

MA non so come impostare l'intervallo di 0.01 come imcremento di volta in volta

Potrebbe essere , dico potrebbe :

do f = 0, 0.1 , 0.01
....
end do

???

Giuro che potrei pagare anche in natura ciunque mi dia qualche dritta entro domani a riguardo !!! sono 3 mesi che lavoro su simulazioni e dover fare ste 4 stupidissime formule sfruttando fortran ( basterebbe un foglio excel ) solo per dare contentino al mio relatore mi sta facendo impazzire!! ( mi laureo giovedi' in ing.mecc VO )

grazie infinite a chiunque mi puo' dare 1 dritta ... rinnovo il ringraziamento a a2000.1 che all'apoca mi aveva in pratica scritto questo programma ( uso visual fortran )
__________________
CPU: E8400 cold by 7700 Cu (Ybris A.C.S. on work) M/B: Asus P5K-E WiFi GPU: POV 8800GT (Modding in progress) HD : 2x Raptor 74GB 16mb cache + 2x WD 500GB 32mb cache ALI: Enermax EG565AX-VE DXX
E8400 : 4050 [email protected]@SPi 1M : 11.562s / Air Cooling - My Ex GirlFriend : [email protected]@1.5V by Lunasio AV-TEC - My SuperPi 1M record@E2180 : 16.578s @ 3700 mhz @ 1.584V
NetBook: AsusEEE 1000HE@2gb
Warlord è offline   Rispondi citando il messaggio o parte di esso
Old 10-07-2007, 10:14   #2
Warlord
Senior Member
 
L'Avatar di Warlord
 
Iscritto dal: Dec 2002
Città: Padova
Messaggi: 1513
allora mi sono ingegnato provando su una function soltanto per vedere come va :
Quote:
Program Confronto_HC_KOO_PR
Implicit Real*8(a-z) ! METODO IMPLICITO
Parameter (bolz=1.381d-23, pi=3.14159, c=1d0, prh2o=6.8, preg=207d0, a=4*10**4) ! costanti
Integer*2 x

print *,"Desideri usare acqua o glicoletilenico?"; print*, "1)Acqua"; print*,"2)EG"
read*, x
print *, "Calcolo il valore con Hamilton-Crosser"
print*, "Inserisci il valore della conduttivita' termica delle nanoparticelle"
read*, kp
print*, "Inserisci la sfericita' delle nanoparticelle"
read*, n
print*, "Inserisci il valore della temperatura"
read*, t
print*, "Inserisci il valore del diametro medio nanoparticellare"
read*, dp
print*, "Inserisci il valore della densita' della nanoparticella"
read*, p


! Implementazione tutto su una sola riga (prova)
if (x==1) then
do f=0, 0.1 , 0.01
ham = hamiltoncrosser(kp,0.613d0,n,f)
end do
else
do f=0, 0.1 , 0.01
ham = hamiltoncrosser(kp,0.253d0,n,f)
end do
endif

print *, ham

! write (1,*), ham !"Valore calcolato con la formula di Hamilton-Crosser:", ham


CONTAINS

Function hamiltoncrosser(kp, kb, n, f)
hamiltoncrosser=((kp+(((3d0/n)-1d0)*kb)-(((3d0/n)-1)*(kb-kp)*f))/(kp+(((3d0/n)-1)*kb)+((kb-kp)*f)));
End Function

End Program Confronto_HC_KOO_PR
il programma pero' mi visualizza SOLO 1 valore di output

quindi :
o ho sbagliato la sintassi del do
o ho sbagliato la sintassi del print ( o del write se volessi usare il write )

l'output dovrebbe essere un array o cmq una colonna di valori !!!

dove sbaglio ????????
__________________
CPU: E8400 cold by 7700 Cu (Ybris A.C.S. on work) M/B: Asus P5K-E WiFi GPU: POV 8800GT (Modding in progress) HD : 2x Raptor 74GB 16mb cache + 2x WD 500GB 32mb cache ALI: Enermax EG565AX-VE DXX
E8400 : 4050 [email protected]@SPi 1M : 11.562s / Air Cooling - My Ex GirlFriend : [email protected]@1.5V by Lunasio AV-TEC - My SuperPi 1M record@E2180 : 16.578s @ 3700 mhz @ 1.584V
NetBook: AsusEEE 1000HE@2gb
Warlord è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
Nutanix accelera la migrazione da VMware...
Nutanix apre ai neocloud: piattaforma mu...
Nutanix amplia la piattaforma cloud e st...
Le fotografie dell'eclissi solare e dell...
Oracle AI Database si potenzia con nuove...
Russia offline: blackout internet mobile...
Gemini, Google investe 30 milioni per la...
Roborock Qrevo Edge S5A: 17.000 Pa, acqu...
Resa pubblica la foto della ''Terra che ...
Il robot che ha piegato 200 scatole di f...
SteelSeries Aerox 3 Wireless Gen 2: nuov...
"Quasi sociopatico": Sam Altma...
Star Wars Eclipse in difficoltà: ...
Gestione del team e romance organiche: l...
Intel lancia Core Ultra X9 378H: hardwar...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:58.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v