2017-04-13 3 views
1

Quand je soumets mon colis à CRAN, il ne passe pas les contrôles entrants automatique avec un avertissement suivant:Avertissement: GNU Extension

* checking whether package 'EpiILM' can be installed ... WARNING 
    Found the following significant warnings: 
    Warning: GNU Extension: Different type kinds at (1) 

et le fichier journal correspondant dit

Epimcmc.f95:440.25: 

     psi= min(1.0,exp(ratio)) 
        1 
Warning: GNU Extension: Different type kinds at (1) 

Lorsque j'ai testé mon paquetage utilisant R CMD CHECK et R CMD CHECK - comme-cran, n'aboutissent à aucun avertissement ni aucune note. J'utilise un R version 3.3.2 (2016-10-31) - "Sincere Pumpkin Patch" sur mon MacOS et les codes sont écrits en Fortran 95.

Des suggestions?

Répondre

5

Votre code est trop court pour pouvoir être diagnostiqué avec précision, mais on peut probablement déduire en toute sécurité ce que la partie non-montrée du code est.

Votre ratio est de type différent de celui par défaut, probablement `double précision.

Mais 1.0 est le type par défaut (alias, simple précision).

mélange différents types de min() n'est pas autorisé en Fortran, mais vous faites ceci en:

min(1.0,exp(ratio)) 

Pour résoudre le problème, l'utilisation littéraux du même genre que ratio est. Donc, si c'est un double precision, vous pouvez utiliser:

min(1.0d0, exp(ratio)) 

et si elle est un peu real(rk) vous pouvez utiliser

min(1.0_rk, exp(ratio)) 

La fonction real(.., kind=rk) peut également être utilisé.


L'avertissement dit que le compilateur GNU Fortran reconnaît qu'il est interdit en Fortran, mais il permet une extension non standard. Que l'utilisation de cette extension soit autorisée par les normes de codage CRAN est une question différente. Probablement non, s'il a été rejeté.

+0

Merci. Les deux 'ratio' et 'psi' sont double précision. Va changer 1.0 à 1.0d0 et voir comment ça se passe. – Vineetha

+0

Cela a fonctionné et le paquet est sur le CRAN maintenant. – Vineetha