Recentemente, compilei o ortep3 em um servidor CentOS mais antigo usando o gfortran -o ortep3 ortep.f -lpgplot -lX11
. Acho que a gfortran
versão era 6.5 ou algo assim. Minha versão gfortran
é:gcc version 9.2.1
Eu gostaria agora de compilar o ORTEP3 em algumas máquinas Ubuntu versão 18.04 ou posterior. quando tento compilar ortep
, recebo erros, como:
Error: Actual argument contains too few elements for dummy argument ‘itxt’ (1/72) at (1)
e avisos como:
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 10 at (1)
Eu tentei usar o sinalizador de código legado -ff2c
, que não tem efeito. libx11
, e pgplot
estão instalados e operacionais.
Eu tentei compilar com fort77
, que compila, mas o código compilado não será executado. Tentar compilar com gfortran
, ortep.f
não compilará.
LD_TRACE Do servidor CentOS:
$ LD_TRACE_LOADED_OBJECTS=1 ./Working_ortep3
linux-vdso.so.1 (0x00007ffc82f42000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f185a9cf000)
libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3 (0x00007f185a89d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f185a74e000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f185a734000)
libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007f185a6ea000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f185a4f9000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f185a4ce000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f185a4c8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f185ab51000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f185a4c2000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f185a4ba000)
libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f185a4a0000)
Em um esforço para corresponder ao local onde consegui compilar e executar o ortep3, passei e instalei pacotes que correspondem às bibliotecas daqueles dependentes da versão de trabalho do ortep3
. Acabei instalando:
sudo apt-get install libxdmcp-dev libbsd-dev
Os erros ainda persistem.
Não estou mais trabalhando no servidor em que consegui compilar o ortep3. Posso perguntar sobre isso, mas terminei o trabalho (instalar uma versão funcional do ortep3) quando consegui compilá-lo lá.
Aqui está uma lista de apenas os erros:
$ gfortran -w -g -o ortep3 ortep.f -lpgplot -lX11
ortep.f:576:36:
576 | CALL SIMBOL(W(2,1),W(3,1),HGT,' ',0.,-1)
| 1
Error: Actual argument contains too few elements for dummy argument ‘itxt’ (1/72) at (1)
ortep.f:577:36:
577 | CALL SIMBOL(W(2,2),W(3,2),HGT,' ',0.,-2)
| 1
Error: Actual argument contains too few elements for dummy argument ‘itxt’ (1/72) at (1)
ortep.f:3678:27:
3678 | CALL SIMBOL(W,W2,HGT,ITEX,THT,NC)
| 1
Error: Actual argument contains too few elements for dummy argument ‘itxt’ (8/72) at (1)
ortep.f:3934:48:
3934 | 185 if (nout.ge.0) WRITE (NOUT,176)I,maksym(1,fsym)
| 1
Error: Actual argument contains too few elements for dummy argument ‘gp’ (12/2304) at (1)
ortep.f:1258:19:
1258 | CALL AXEQB(A,V,V,1)
| 1
Error: Actual argument contains too few elements for dummy argument ‘x’ (3/9) at (1)
ortep.f:2084:16:
2084 | 945 CALL PROJ(D(1,65),DP(1,65),X,XO,VIEW,1,65,L)
| 1
Error: Actual argument contains too few elements for dummy argument ‘d’ (198/387) at (1)
ortep.f:2117:16:
2117 | CALL PROJ(V1,DP,X,XO,VIEW,1,1,1)
| 1
Error: Actual argument contains too few elements for dummy argument ‘d’ (4/387) at (1)
ortep.f:2123:16:
2123 | 988 CALL PROJ(DA,DP,X,XO,VIEW,1,3,1)
| 1
Error: Actual argument contains too few elements for dummy argument ‘d’ (9/387) at (1)
ortep.f:2550:32:
2550 | CALL SIMBOL(Y(1),Y(2),HGT,' ',TH,7-NJ3)
| 1
Error: Actual argument contains too few elements for dummy argument ‘itxt’ (1/72) at (1)
Não tenho ideia de como isso realmente começou a funcionar na máquina CentOS. O ortep3
código é Fortran77 até onde eu sei, mas o termo SIMBOL parece um erro de digitação, pensei que poderia ser SYMBOl, mas não precisei modificar o código para conseguir compilar anteriormente.
Objetivos finais: Adicionar uma função de saída de arquivo svg, escrever um pacote deb, mantê-lo.
O que posso ver na Repology - a versão 1.0.3 é a mais recente disponível.
O Gentoo tem ebuild para esta aplicação na versão 1.0.3-r1.
Para compilá-lo no Ubuntu 18.04 LTS, precisamos instalar as ferramentas de compilação necessárias:
e então baixe
ortep.f
de alguns espelhos de distfiles do Gentoo:(^ esta versão foi
pgplot
desativada, portanto, se você normalmente trabalha em um dos anos 2000 - useortep.f
em https://github.com/ornl-ndav/ortep )e compile-o
Vai funcionar:
Outra alternativa possível é usar binários pré-compilados de https://ornl-ndav.github.io/ortep/compiled.html .