導航:首頁 > 源碼編譯 > pgf90編譯成a文件

pgf90編譯成a文件

發布時間:2022-08-05 20:17:00

A. fortran90 裡面一個conformable的錯誤

這個好理解。

① 主程序,用了parameter,那麼就是一個常量,因此編譯器編譯的是,是靜態的,直接替換,a=matmul(ft,f)和a=matmul(f,ft)先編譯好,然後才是if邏輯判斷(內部是一個表作跳轉實現的),因此當a=matmul(,)時,其實已經被「換成」了a=(3,10)x(3,10),當然錯了。

② 而subroutine,這個是動態的,因為編譯器不知道會傳遞什麼進去,因此只能在「運行」時刻作判斷。所以你的編譯可以通過。

③ 你可以作測試,讓主程序也成為「動態」編譯,那麼就可以正常通過,比如:

...
implicitnone
integer,parameter::n=3,m=10
integer,parameter::mnh=min(m,n)
real,dimension(:,:),allocatable::f,ft,a
!dataf/10,15,29,15,46,13,23,21,30,11,9,35,&
!42,45,11,9,48,5,11,21,14,8,5,15,&
!11,12,21,21,20,25/
allocate(f(n,m))
allocate(ft(m,n))
allocate(a(mnh,mnh))
f=reshape((/10,15,29,15,46,13,23,21,30,11,9,35,&
42,45,11,9,48,5,11,21,14,8,5,15,&
11,12,21,21,20,25/),shape(f))
ft=transpose(f)
if(m<n)then
a=matmul(ft,f)
else
a=matmul(f,ft)
endif
!callmul(n,m,mnh,f,a)
...

B. FVCOM編譯求助-PGI編譯器

看你這樣認真的問,真是同情,但是你來錯地方了,你不知道網路知道上都是刷經驗的傻x嗎?真正有技術性的問題哪個是在網路知道上解決的,建議你多看看別的博客吧,CSDN上了等等的,本人也是學了linux,不過是web開發方面的的所以幫不了你,抱歉

C. pgf90 是pgi fortran嗎

是PGI
不過linux下還是用gFortran吧, 網上有免費的

D. debian如何安裝pgf90

. 首先安裝pgi編譯器,我在這里就不說了,網上應該很多資料。

  2. 配置環境變數(因為要使用pgf90編譯,因此必須設置一下環境變數)
     # vi ~/.bashrc 編輯 .bashrc文件,在文件中添加以下幾行        

     # source ~/.bashrc    (為了確保設置生效,最好重新啟動命令行)    

  3. 下載 mpich-3.2。tar.gz (網址:http://www.mpich.org/downloads/)到目錄/home/legna/Doucument(這個路徑可以自己指定,安裝完成後,安裝包可以刪除,所以放哪個目錄下都沒有關系)

  4. 解壓mpich-3.2.tar.gz,得到mpich-3.2文件夾
     # tar -zxvf mpich-3.2.tar.gz

  5. 進入mpich-3.2目錄
    # cd mpich-3.2

  6. 設置安裝目錄
    # ./configure --prefix=/home/legna/mpich(這個目錄也可以自己指定,而且要看一下輸出的內容有沒有出現error的,如果有,那麼就不能進行下一步)

  7. 編譯
    # make(這邊應該也不會報錯,如果報錯,肯定是前面的步驟沒有成功)

  8. 安裝
    # make install

  9. 配置環境變數
     # vi ~/.bashrc 編輯 .bashrc文件,在文件中添加如下的一行

     # source ~/.bashrc(為了確保設置生效,最好重新啟動命令行)
  
   10. 測試
         自己寫代碼試試吧~~~

E. 請教ifort和pgf90編譯差別的問題

方法一:
假如現在有兩個Fortran程序1.f90和2.f90,其中1.f90是主程序,2.f90是在主程序中調用的子程序,將這兩個程序傳到Linux的一個目錄下,使用fortran編譯命令,如PGI的pgf90,Intel的ifort,命令如下:
pgf90 -o exe_name 1.f90 2.f90
ifort -o exe_name 1.f90 2.f90
方法二:
在主程序1.f90中加入include '2.f90'語句,然後在Linux下用fortran命令編譯,命令如下:
pgf90 -o exe_name 1.f90
ifort -o exe_name 1.f90

F. Linux系統下如何安裝Abinit5.6.4

一.首先了解DHCP的概念
DHCP是實現主機IP地址DNS等動態配置的網路協議. DNCP可以在多種操作系統中實現,包括最常用的linux系統和windows系統 DHCP網路服務的結構中具有伺服器和客戶機兩個角色 DHCP伺服器用於為網路中所有的DHCP客戶機提供網路配置信息,在同一網路中, DHCP伺服器通常是唯一存在在. 網路中的任何主機都可以配置成為DHCP客戶機,向DHCP伺服器發出配置請求並按照服務 器返回的信息進行網路配置
二.DHCP伺服器能夠提供的網路配置信息
1.網路介面的IP地址和子網掩碼. 2.網路介面的IP地址對應的網路地址和廣播地址 3.默認網關地址 4.DNS伺服器地址
三.DHCP伺服器的配置
1.安裝DHCP伺服器軟體(在RHEL4系統的安裝光碟中包括RPM格式的DHCP伺服器軟體包,包文件的名稱是dhcp-3.0.1-12_EL.i386.rpm),在RHEL4的第4安裝光碟中,在同一張安裝盤中還包括與DHCP相關的其它軟體包 # cd /media/cdrom/rehat/rpms/ #ks -l dhcp* dhcp-3.0.1-12_EL.i386,rpm在REL4中沒有被默認安裝,需要手動安裝 #rpm -qa | grep dhcp #rpm -ivh dhcp-3.0.1-12_EL.i386.rpm
2.其中/usr/sbin/dhcpd 是DHCP伺服器的執行文件,/etc/rc.d/init.d/dhcpd是DHCP伺服器的啟動腳本,雖然文件名都是DHCPD,但是文件位於不同的目錄,功能也不一樣. DHCPD.CONF配置文件以及建立配置文件和配置文件的格式 #ls /etc/dhcp* #vi /etc/dhcpd.conf

G. pgf是什麼文件格式,什麼意思

如果是PPSDS.PGF,那麼它就是PPS的緩存文件.
在使用PPS的用戶。在磁碟的根目錄下會有一個ppsds.pgf文件。這個文件常有幾百兆。直接刪除的方法無法清除這個文件,下面介紹一下方法和生成這個文件的原因:

出現這個文件的原因是你使用了最新版PPSTREAM的點播功能。ppsds.pgf的作用用主要用於點播時的緩沖,使緩沖時間更短,打開點播視頻更快。如果你安裝了最新版的PPSTREM而不使用點播功能,ppsds.pgf不會出現。但只要你第一次使用PPSTREM的點播功能,就會在PPSTREM 安裝硬碟根目錄下生成隱藏文件ppsds.pgf有1G大小,硬碟空間不夠大的要注意一下。個人感覺PPSTERM應該告訴大家這點,因為不注意根本找不到這個文件,要選擇不隱藏系統文件屬性,才能看到這個文件夾。這個文件不能用WINDOWS的垃圾清理自動清理,感覺有點「流氓」的味道。

這是PPS的點播緩存文件,程PPS序會搜索硬碟中剩餘空間最大的分區生成 ppsds.pgf 文件,ppsds.pgf 的文件大小可能和虛擬內存大小設置有關系(自己的猜測)。ppsds.pgf 緩存文件中基本能緩存2部左右的點播電影,方便網路不流暢的用戶,不會對你的機器造成危害。達到1G的時候會自動刪除

1.打開注冊表。開始--運行--regedit,然後依次展開
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvata
或 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvatabus
...不使用點播功能,ppsds.pgf不會出現。.

經實踐,還有一種更直接快捷的辦法:

到任務管理器里把一個以PP開頭的(類似PPAS。EXE)進程停了再刪就沒問題了!呵呵~

H. 請教:fortran程序中 北京時間 轉換為 國際時間 的程序代碼 如何寫

北京時間減8小時就是世界時。 8小時=8*60*60=28800秒。 把下面的代碼復製成get_new_time.f
然後編譯:pgf90 -o get_new_time get_new_time.f
比如運行: get_new_time 2008071620 -28800 會輸出2008071612_00:00

get_new_time.f:

program new_time
!yuanbing, 2006
character*16 ndate, odate, idt
character*19 odate1
character*256 cm,cn
real m,n
integer idts,method

odate=' '

numarg = iargc()
if(numarg<2) call help

if(numarg==2) method = 1
if(numarg==3) then
method = 2
endif
if(numarg==4) then
call getarg(4,cn)
read(cn,*) n
if(n>0) method = 3
if(n==0 ) call help
if(n<0 ) method = 4
endif

call getarg(1,odate1)

if(method == 3 .or. method == 4) then
odate(1:4)=odate1(1:4)
odate(5:6)=odate1(6:7)
odate(7:8)=odate1(9:10)
if(len(trim(odate1))>=13) odate(9:10)=odate1(12:13)
if(len(trim(odate1))>=16) then
odate(11:11)='_'
odate(12:13)=odate1(15:16)
endif
if(len(trim(odate1))>=19) then
odate(14:14)=':'
odate(15:16)=odate1(18:19)
endif
else
odate=odate1(1:16)
endif

call getarg(2,idt)
read(idt,*) idts
! print*,odate,method
call geth_newdate (ndate, odate, idts)

if(method == 1 .or. method == 4) then
write(*,"(a16)") ndate
else
write(*,"(a19)") ndate(1:4)//'-'//ndate(5:6)//'-'//ndate(7:8)//
- '_'//ndate(9:10)//':'//ndate(12:13)//':'//ndate(15:16)
endif

end
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
subroutine geth_newdate (ndate, odate, idts)
implicit none

!**********************************************************************
!
! purpose - from old date ('YYYYMMDDHH_MM:SS') and time in
! seconds, compute the new date.
!
! on entry - odate - the old hdate.
! idts - the change in time in seconds.
!
! on exit - ndate - the new hdate.
! idts - the change in time in seconds.
!
!**********************************************************************

integer idts
character*(*) ndate, odate
integer nlen, olen

!
! Local Variables
!
! yrold - indicates the year associated with "odate"
! moold - indicates the month associated with "odate"
! dyold - indicates the day associated with "odate"
! hrold - indicates the hour associated with "odate"
! miold - indicates the minute associated with "odate"
! scold - indicates the second associated with "odate"
!
! yrnew - indicates the year associated with "ndate"
! monew - indicates the month associated with "ndate"
! dynew - indicates the day associated with "ndate"
! hrnew - indicates the hour associated with "ndate"
! minew - indicates the minute associated with "ndate"
! scnew - indicates the second associated with "ndate"
!
! mday - a list assigning the number of days in each month

! dth - the number of hours represented by "idts"
! i - loop counter
! nday - the integer number of days represented by "idts"
! nhour - the integer number of hours in "idts" after taking out
! all the whole days
! nmin - the integer number of minutes in "idts" after taking out
! all the whole days and whole hours.
! nsec - the integer number of minutes in "idts" after taking out
! all the whole days, whole hours, and whole minutes.
!

integer yrnew, monew, dynew, hrnew, minew, scnew
integer yrold, moold, dyold, hrold, miold, scold
integer mday(12), nday, nhour, nmin, nsec, i
real dth
logical opass

!************************* Subroutine Begin *************************

!
! Assign the number of days in a months
!

mday( 1) = 31
mday( 2) = 28
mday( 3) = 31
mday( 4) = 30
mday( 5) = 31
mday( 6) = 30
mday( 7) = 31
mday( 8) = 31
mday( 9) = 30
mday(10) = 31
mday(11) = 30
mday(12) = 31

!
! Break down old hdate into parts
!
hrold = 0
miold = 0
scold = 0
olen = len(odate)

read(odate(1:4), '(I4)') yrold
read(odate(5:6), '(I2)') moold
read(odate(7:8), '(I2)') dyold
if (olen.ge.10) then
read(odate(9:10),'(I2)') hrold
if (olen.ge.13) then
read(odate(12:13),'(I2)') miold
if (olen.ge.16) then
read(odate(15:16),'(I2)') scold
endif
endif
endif
!
! Set the number of days in February for that year.
!
mday(2) = 28
if (mod(yrold,4).eq.0) then
mday(2) = 29
if (mod(yrold,100).eq.0) then
mday(2) = 28
if (mod(yrold,400).eq.0) then
mday(2) = 29
endif
endif
endif
!
! Check that ODATE makes sense.
!
opass = .TRUE.

! Check that the month of ODATE makes sense.

if ((moold.gt.12).or.(moold.lt.1)) then
print*, 'GETH_NEWDATE: Month of ODATE = ', moold
opass = .FALSE.
endif

! Check that the day of ODATE makes sense.

if ((dyold.gt.mday(moold)).or.(dyold.lt.1)) then
print*, 'GET_NEWDATE: Day of ODATE = ', dyold
opass = .FALSE.
endif

! Check that the hour of ODATE makes sense.

if ((hrold.gt.23).or.(hrold.lt.0)) then
print*, 'GET_NEWDATE: Hour of ODATE = ', hrold
opass = .FALSE.
endif

! Check that the minute of ODATE makes sense.

if ((miold.gt.59).or.(miold.lt.0)) then
print*, 'GET_NEWDATE: Minute of ODATE = ', miold
opass = .FALSE.
endif

! Check that the second of ODATE makes sense.

if ((scold.gt.59).or.(scold.lt.0)) then
print*, 'GET_NEWDATE: Second of ODATE = ', scold
opass = .FALSE.
endif

if (.not.opass) then
print*, 'Crazy ODATE: ', odate(1:olen), olen
STOP 'Error_odate'
! stop
endif
!
! Date Checks are completed. Continue.
!

!
! Compute the number of days, hours, minutes, and seconds in idts
!
if(idts>=0) then
nday = idts/86400 ! Integer number of days in delta-time
nhour = mod(idts,86400)/3600
nmin = mod(idts,3600)/60
nsec = mod(idts,60)
scnew = scold + nsec
if (scnew .ge. 60) then
scnew = scnew - 60
nmin = nmin + 1
end if
minew = miold + nmin
if (minew .ge. 60) then
minew = minew - 60
nhour = nhour + 1
end if
hrnew = hrold + nhour
if (hrnew .ge. 24) then
hrnew = hrnew - 24
nday = nday + 1
end if

dynew = dyold
monew = moold
yrnew = yrold
do i = 1, nday
dynew = dynew + 1
if (dynew.gt.mday(monew)) then
dynew = dynew - mday(monew)
monew = monew + 1
if (monew .gt. 12) then
monew = 1
yrnew = yrnew + 1

mday(2) = 28
if (mod(yrnew,4).eq.0) then
mday(2) = 29
if (mod(yrnew,100).eq.0) then
mday(2) = 28
if (mod(yrnew,400).eq.0) then
mday(2) = 29
endif
endif
endif

end if
endif
enddo

else
nday = -idts/86400
nhour = -mod(idts,86400)/3600
nmin = -mod(idts,3600)/60
nsec = -mod(idts,60)
scnew = scold - nsec
if (scnew .lt. 0) then
scnew = 60 + scnew
nmin = nmin + 1
end if
minew = miold - nmin
if (minew .lt. 0) then
minew = 60 + minew
nhour = nhour + 1
endif
hrnew = hrold - nhour
if (hrnew .lt. 0) then
hrnew = 24 + hrnew
nday = nday + 1
end if

dynew = dyold
monew = moold
yrnew = yrold
do i = 1, nday
dynew = dynew - 1
if (dynew.lt.1) then
monew = monew - 1
dynew = mday(monew) - abs(dynew)
if (monew .lt. 1) then
monew = 12
dynew = mday(monew) - abs(dynew)
yrnew = yrnew - 1
mday(2) = 28
if (mod(yrnew,4).eq.0) then
mday(2) = 29
if (mod(yrnew,100).eq.0) then
mday(2) = 28
if (mod(yrnew,400).eq.0) then
mday(2) = 29
endif
endif
endif

endif
endif
enddo
endif
!
! Now construct the new mdate
!
nlen = len(ndate)

if (nlen.ge.16) then
write(ndate,19) yrnew, monew, dynew, hrnew, minew, scnew
19 format(I4,I2.2,I2.2,I2.2,'_',I2.2,':',I2.2)

else if (nlen.eq.13) then
write(ndate,16) yrnew, monew, dynew, hrnew, minew
16 format(I4,I2.2,I2.2,I2.2,'_',I2.2)

else if (nlen.eq.10) then
write(ndate,13) yrnew, monew, dynew, hrnew
13 format(I4,I2.2,I2.2,I2.2)

else if (nlen.eq.8) then
write(ndate,10) yrnew, monew, dynew
10 format(I4,I2.2,I2.2)

endif

!************************** Subroutine End **************************

end

subroutine help
print*
print*,'usage: '
print*,' get_new_time.exe date_time idts [m] [n]'
print*
print*,'if m,n not given, date_time in YYYYMMDDHH_MM:SS'
print*,' ouput in YYYYMMDDHH_MM:SS'
print*
print*,'if m given,n not, date_time in YYYYMMDDHH_MM:SS'
print*,' ouput in YYYY-MM-DD_HH:MM:SS'
print*
print*,'if m,n given,n>0, date_time in YYYY-MM-DD_HH:MM:SS'
print*,' ouput in YYYY-MM-DD_HH:MM:SS'
print*
print*,'if m,n given,n<0, date_time in YYYY-MM-DD_HH:MM:SS'
print*,' ouput in YYYYMMDDHH_MM:SS'
print*
print*,'Here, idts means the time inteval in seconds. '
print*,' idts may be postive or negtive'
stop ' '
end

I. 什麼是pgf格式文件如何打開pgf文件

1.什麼是pgf?
pgf 是一個在tex系統中的畫圖宏包,tex,尤其是beamer中使用pgf作圖,「作精確圖還比較方便, 色彩銳麗」(huangzh73)。除了可以精確的作圖外,對於某些不要求精確控制的圖形繪制,如:流程圖,樹圖,等等,也提供了簡便易用的支持。

2.pgf的作者?
pgf也是beamer 的作者 Till Tantau 教授開發的. 起初只有 pgf, 後來有了 tikz and pgf 宏包的說法, 一般還是稱為 pgf 宏包. 在使用中 \usepackage{tikz} 就自動加入了 pgf . 也許 tikz 可以認為是 pgf 進一步發展的產物.
正因為兩者出自同一個牛人之手,所以beamer和pgf結合使用確實非常的完美。

3.pgf 下載地址: http://sourceforge.net/projects/pgf/

4.安裝和更新的方法:
使用pgf,需要xcolor宏包的支持

如果你用的是 CTeX 套裝, 在目錄 C:\CTeX\texmf\tex\latex 下找到 pgf 文件夾, 刪除該文件夾後, 粘貼上新版本的 pgf 宏包文件夾(直接粘就可以了, 不需要拆開). 記得要刷新.

如果你用的是Unix(like)系統,這樣安裝:

1)下載 xcolor 宏包, version 2.00 或者更高。解壓放在TeXHOME/texmf/tex/latex/路徑下。TeXHOME是你的TeX系統的根目錄。
2) 下載pgf宏包,解壓放在同樣的目錄下。
3) 更新TeX系統的資料庫:mktexlsr

J. pgf格式的文件是什麼類型的

筆者經過網上查找資料,才發現這個東東並不是什麼可怕的東西,它只出現安裝了PPS網路電視(ppstream)的機器上。之所以出現這個文件,原因是你使用了最新版PPS網路電視的點播功能。ppsds.pgf的作用主要用於點播時的緩沖,使緩沖時間更短,打開點播視頻更快。如果你安裝了最新版的PPS網路電視而不使用點播功能,ppsds.pgf不會出現。但只要你第一次使用PPS網路電視的點播功能,就會在PPSTREM安裝硬碟根目錄下生成隱藏文件ppsds.pgf,硬碟空間不夠大的要注意一下。

這個1G的ppsds.pgf並不會對我們的系統造成什麼不良的影響,唯一讓人不爽的就是佔用了將近1G的空間。這時我們可以通過顯示系統文件的方式來找到它,刪除。如果以後都不想出現這個文件,那麼就不要使用PPS網路電視的點播功能,那樣就沒這種事了。

顯示系統文件的步驟如下:

任何打開一個文件夾——點擊菜單欄上的工具——選擇文件夾選項——點擊「查看」標簽。然後在下面的高級設置框里,找到「隱藏受保護的操作系統文件」這項,把前面的勾去掉,這時系統會提示你,別理它,點「是」,再點確定。這樣你就可以看到隱藏的系統文件了。

閱讀全文

與pgf90編譯成a文件相關的資料

熱點內容
linux當前進程號 瀏覽:728
老死pdf 瀏覽:25
雲伺服器關機網址不見了 瀏覽:69
余冠英pdf 瀏覽:755
開發一個app上市需要什麼步驟 瀏覽:28
phpsleep方法 瀏覽:430
時間同步伺服器ip地址6 瀏覽:926
鋼琴譜pdf下載 瀏覽:524
香港阿里雲伺服器怎麼封udp 瀏覽:875
APp買海鮮到哪裡 瀏覽:501
遼油社保app總提示更新怎麼辦 瀏覽:586
導入源碼教程視頻 瀏覽:613
天翼貸app在哪裡下載 瀏覽:186
app開發源碼查看器 瀏覽:516
程序員發展到了一個瓶頸 瀏覽:120
程序員去機房幹嘛 瀏覽:697
英雄訓練師怎麼看曾經伺服器 瀏覽:546
魔獸世界單機輸入gm命令 瀏覽:372
51單片機最大負跳距是多少 瀏覽:418
android聊天控制項 瀏覽:128