[PYTHON] Ein Memo mit RADEX-Umgebungskonstruktion

Umgebung

・ MacBook Pro 2017 ・ Mojave 10.14.5

Aufbau einer RADEX-Umgebung

Befolgen Sie die Schritte zum Erstellen der Umgebung gemäß der folgenden Seite.

https://personal.sron.nl/~vdtak/radex/index.shtml#install

Laden Sie den Quellcode herunter und entpacken Sie ihn.

$ tar xf radex_public.tar

Wechseln Sie zu src im erstellten Radex-Verzeichnis.

$ cd Radex/src

Bearbeiten Sie "Makefile" und geben Sie den Compiler für "make" an. Verwenden Sie zunächst den Standard-Gfortran ohne Bearbeitung.

Bearbeiten Sie Radex.inc und geben Sie den Ort der molekularen Daten und die Berechnungsmethode für die Photonenaustrittswahrscheinlichkeit an.

parameter(radat   = '/.../Radex/data/')
parameter (method = 1)  ! uniform sphere

Im Verzeichnis src

$ make

Schlagen.

Dann ein langer Fehler ---.

$ make
gfortran -O2   -c main.f -o main.o
gfortran -O2   -c io.f -o io.o
io.f:47:62:

   47 |      $     molfile = radat(1:length(radat))//molfile(1:length(molfile))
      |                                                              1
Warning: Character length of actual argument shorter than of dummy argument 'st' (120/200) at (1) [-Wargument-mismatch]
io.f:47:36:

   47 |      $     molfile = radat(1:length(radat))//molfile(1:length(molfile))
      |                                    1
Warning: Character length of actual argument shorter than of dummy argument 'st' (120/200) at (1) [-Wargument-mismatch]
io.f:47:36:

   47 |      $     molfile = radat(1:length(radat))//molfile(1:length(molfile))
      |                                    1
Warning: Character length of actual argument shorter than of dummy argument 'st' (120/200) at (1) [-Wargument-mismatch]
io.f:48:36:

   48 |       write(13,20) molfile(1:length(molfile))
      |                                    1
Warning: Character length of actual argument shorter than of dummy argument 'st' (120/200) at (1) [-Wargument-mismatch]
io.f:52:36:

   52 |       write(13,20) outfile(1:length(outfile))
      |                                    1
Warning: Character length of actual argument shorter than of dummy argument 'st' (120/200) at (1) [-Wargument-mismatch]
io.f:234:31:

  234 |      $      //version(1:length(version))
      |                               1
Warning: Character length of actual argument shorter than of dummy argument 'st' (20/200) at (1) [-Wargument-mismatch]
io.f:234:31:

  234 |      $      //version(1:length(version))
      |                               1
Warning: Character length of actual argument shorter than of dummy argument 'st' (20/200) at (1) [-Wargument-mismatch]
io.f:234:31:

  234 |      $      //version(1:length(version))
      |                               1
Warning: Character length of actual argument shorter than of dummy argument 'st' (20/200) at (1) [-Wargument-mismatch]
gfortran -O2   -c readdata.f -o readdata.o
gfortran -O2   -c matrix.f -o matrix.o
gfortran -O2   -c background.f -o background.o
background.f:405:72:

  405 |       if (h.eq.0.d0) pause 'Warning: bad xin input in splintrp '
      |                                                                        
Warning: Deleted feature: PAUSE statement at (1)
gfortran -O2   -c slatec.f -o slatec.o
slatec.f:824:72:

  824 |       IF (INCX .EQ. INCY) IF (INCX-1) 5,20,60
      |                                                                        
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)
slatec.f:1204:72:

 1204 |       IF (INCX .EQ. INCY) IF (INCX-1) 5,20,60
      |                                                                        
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)
slatec.f:1512:72:

 1512 |       IF (INCX .EQ. INCY) IF (INCX-1) 5,20,60
      |                                                                        
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)
gfortran -O2    main.o io.o readdata.o matrix.o background.o slatec.o -o radex
strip radex
install -m 755 -p -s radex ../bin/
rm *.o
rm radex

Es scheint, dass die Anzahl der Zeichen im Argument nicht übereinstimmt. Bearbeiten Sie es daher.

Bearbeiten Sie FUNCTION length (str) in io.f. Passend zum Charakter in radex.inc.

CHARACTER*200 str → CHARACTER*120 str

Dann verschwand der Fehler über "Länge (Radat)". Der Fehler "Länge (Version)" wird ebenfalls gelöscht.

"Charakter" der "Version" in "radex.inc" geändert. Mit "Radat" ausrichten.

character*20 version → character*120 version

Der Fehler length (version) ist ebenfalls verschwunden.

Jedoch,

gfortran -O2   -c background.f -o background.o
background.f:405:72:

  405 |       if (h.eq.0.d0) pause 'Warning: bad xin input in splintrp '
      |                                                                        
Warning: Deleted feature: PAUSE statement at (1)
gfortran -O2   -c slatec.f -o slatec.o
slatec.f:824:72:

  824 |       IF (INCX .EQ. INCY) IF (INCX-1) 5,20,60
      |                                                                        
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)

Diese beiden Arten von Fehlern verschwinden nicht.

Versuchen Sie, das alte gcc mit Homebrew herunterzuladen. Die aktuellste Version ist 9.1.0. Installieren Sie also die vorherige.

$ brew install gcc@8

Verwenden Sie dann den Makefile-Compiler

FC = gfortran-8

ändern. Dann verschwindet der Fehler "Fortran 2018 gelöschte Funktion" und nur "PAUSE-Anweisung".

Bearbeiten Sie background.f direkt.

if (h.eq.0.d0) pause 'Warning: bad xin input in splintrp '
→
if (h.eq.0.d0) then
      write(*,*) 'Warning: bad xin input in splintrp '
      read(*,*)
      endif

Keine Fehler mehr!

Recommended Posts

Ein Memo mit RADEX-Umgebungskonstruktion
ConoHa Umweltbau Memo
BigGorilla Umwelt Bau Memo
Anaconda Umwelt Bau Memo
[Memo] Erstellen Sie eine virtuelle Umgebung mit Pyenv + anaconda
Django Entwicklungsumgebung Bau Memo
[Memo] Bau einer Cygwin-Umgebung
Anaconda3 × Pycharm-Umgebungskonstruktionsnotiz
[MEMO] [Entwicklung der Entwicklungsumgebung] Python
[MEMO] [Entwicklungsumgebung Bau] Wein
[Memo] Erstellen Sie mit Docker eine Entwicklungsumgebung für Django + Nuxt.js
Erstellen einer Kubernetes-Umgebung mit ansible 2
Beginnen Sie mit Python! ~ ① Umweltbau ~
Einfache Jupyter-Umgebungskonstruktion mit Cloud9
Erstellen Sie eine virtuelle Umgebung mit Python!
Konstruktionsnotiz für die Python-Umgebung auf dem Mac
Erstellen einer virtuellen Umgebung mit Python 3
Bauarbeiten für StarCluster-Umgebungsnotizen
[MEMO] [Aufbau der Entwicklungsumgebung] Jupyter Notebook
Automatisieren Sie die Umgebungserstellung mit ShellScript
Python3-Umgebungskonstruktion mit pyenv-virtualenv (CentOS 7.3)
Verwenden von Chainer mit CentOS7 [Umgebungskonstruktion]
Konstruktionsnotiz für die Emacs Python-Entwicklungsumgebung
Konstruktionsnotiz für die Ubuntu Desktop 20.04-Entwicklungsumgebung
pytorch @ python3.8 Umgebungskonstruktion mit pipenv
Erstellen einer Kubernetes-Umgebung mit ansible 1
Erstellen einer Umgebung mit pyenv und pyenv-virtualenv
Postgres-Umgebungskonstruktion mit Docker Ich hatte ein wenig Probleme, also beachten Sie
Aufbau einer LaTeX- und R-Umgebung (ein wenig Python) mit SublimeText3 (Windows)
[Pyenv] Erstellen einer Python-Umgebung mit Ubuntu 16.04
Erstellen Sie mit Laragon ganz einfach eine Entwicklungsumgebung
Vue.js + Konstruktionsmemorandum zur Flaschenumgebung ~ mit Anaconda3 ~
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
Ein Memo mit Python2.7 und Python3 in CentOS
Erstellen einer Python 3.6-Umgebung mit Windows + PowerShell
Erstellen Sie mit Docker-Compose eine schnelle API-Umgebung
Holen Sie sich mit Docker eine lokale Umgebung für DynamoDB
Konstruktionsnotiz für die Mac OS X-Entwicklungsumgebung
Erstellen Sie mit pyenv eine virtuelle Umgebung für Python
Erstellen Sie mit Neovim eine moderne Python-Umgebung
Kommen wir zu Python # 0 (Umgebungskonstruktion)
[Linux] Aufbau einer Docker-Umgebung mit Amazon Linux 2
Erstellen Sie mit Docker auf RaspberryPi3 eine Python + Flasche + MySQL-Umgebung! [Einfache Konstruktion]
Ein Hinweis, mit dem Sie die Python-Umgebung von Pineapple mit pyenv ändern können
Django Umweltbau
Erstellen Sie eine Entwicklungsumgebung für die C-Sprache mit einem Container
DeepIE3D-Umgebungskonstruktion
Emacs-basierte Umgebungskonstruktion
Erstellen einer Analyseumgebung mit Docker (Jupyter Notebook + PostgreSQL)
Aufbau einer MacOS 10.11-Umgebung: Powerline mit Anaconda und Dein.vim
Aufbau einer Linux-Umgebung
Erstellen einer Python-Umgebung mit virtualenv und direnv
Memo, mit dem ein Diagramm zum Plotten animiert wurde
Erstellen Sie eine Python-Umgebung mit ansible auf centos6