What is causing issues with WRF and Fortran compilation?

  • Context: Fortran 
  • Thread starter Thread starter EternalLive
  • Start date Start date
  • Tags Tags
    Fortran
Click For Summary

Discussion Overview

The discussion revolves around issues encountered during the compilation of the Weather Research and Forecasting (WRF) model using Fortran. Participants share specific error messages related to variable assignments and argument mismatches, seeking assistance in resolving these compilation problems.

Discussion Character

  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant reports an error regarding an illegal assignment operation to an external procedure, specifically mentioning the variable vfnsew.
  • Another participant questions whether the variable mw has been defined as a parameter, suggesting a potential source of the issue.
  • A participant indicates that they have resolved an initial problem but are now facing new compilation issues, expressing frustration over the lack of feedback.
  • Further errors are reported related to kind mismatches in arguments passed to the subroutine set_geo_vf, with multiple instances of this error noted in the compile log.
  • Another participant expresses confusion over the kind mismatch errors, despite analyzing the subroutine and the variables involved, and notes that attempts to modify the code have not resolved the issue.

Areas of Agreement / Disagreement

Participants do not appear to reach a consensus on the source of the compilation issues, with multiple competing views and unresolved questions remaining throughout the discussion.

Contextual Notes

Participants mention specific error messages and code snippets, but the discussion lacks clarity on the definitions of certain variables and parameters, which may be contributing to the compilation problems.

EternalLive
Messages
4
Reaction score
0
Dear all,

I am having some problems with WRF and Fortran. When I compile a software I got the following result:

PGF90-S-0072-Assignment operation illegal to external procedure vfnsew.



real (8) mm_vfnsew(mw,mw)
real (8) vfnsew, vf_n_s, vf_e_w, vfns_f, vfns_s, vff_ns, vfew_f, vfew_s, vff_ew

vfnsew(i,j) = mm_vfnsew(i,j)

How could I fix this problem?


EternalLive
 
Technology news on Phys.org
Is mw previously defined as a parameter?
 
Hi, minger

I had shown part of the software, but fortunately, I solved it. I am now facing other problems, for which I will post later...let me finish my compiling now (I am walking in circles with nobody whom to exchange opinions...)
 
Hi minger,

Okay, after several attempts, I will show my problem. My compile.log shows the following error messages:

../external/esmf_time_f90 -I../external -I../frame -I../share -I../phys -I../inc -I../chem -r4 -i4 module_sf_urban.f90
-I../inc -I../chem -r4 -i4 module_SSSSS.f90
PGF90-S-0450-Argument number 1 to set_geo_vf: kind mismatch (module_SSSSS.f90: 5998)
PGF90-S-0450-Argument number 2 to set_geo_vf: kind mismatch (module_SSSSS.f90: 5998)
PGF90-S-0450-Argument number 3 to set_geo_vf: kind mismatch (module_SSSSS.f90: 5998)
PGF90-S-0450-Argument number 4 to set_geo_vf: kind mismatch (module_SSSSS.f90: 5998)
PGF90-S-0450-Argument number 5 to set_geo_vf: kind mismatch (module_SSSSS.f90: 5998)
PGF90-S-0450-Argument number 6 to set_geo_vf: kind mismatch (module_SSSSS.f90: 5998)
PGF90-S-0450-Argument number 7 to set_geo_vf: kind mismatch (module_sf_urban.f90: 5998)
PGF90-S-0450-Argument number 8 to set_geo_vf: kind mismatch (module_SSSSS.f90: 5998)
PGF90-S-0450-Argument number 9 to set_geo_vf: kind mismatch (module_SSSSSn.f90: 5998)
PGF90-S-0450-Argument number 10 to set_geo_vf: kind mismatch (module_SSSSS.f90: 5998)
PGF90-S-0450-Argument number 11 to set_geo_vf: kind mismatch (module_SSSSS.f90: 5998)
PGF90-S-0450-Argument number 12 to set_geo_vf: kind mismatch (module_SSSSS.f90: 5998)
0 inform, 0 warnings, 12 severes, 0 fatal for "XXXXX"

call set_geo_vf (m_pindex, m_findex,vfnsew,vf_n_s,vf_e_w,vfns_f, &
vfns_s, vff_ns, vfew_f,vfew_s, vff_ew, vf_f_s)

subroutine set_geo_vf (mm_pindex, mm_findex, vfnsew, vf_n_s, vf_e_w, vfns_f, vfns_s, vff_ns, &
vfew_f, vfew_s, vff_ew, vf_f_s)Dear minger, do you have any hint? It is hampering my program at this moment...

Thanks in advance
 
Okay, can someone give me a hint?

I have the following problem: my compile.report shows problems from arguments numbers 3 to 11, of kind mismatch, e.g.

PGF90-S-0450-Argument number 9 to set_geo_vf: kind mismatch (module_sf_noahlsm.f90: 5680)

However, by analizing the subroutine and the variables, the problematic variables are depicted. So, what is hampering the compilation? I cannot understand, because I tried several changes without any result so far...


subroutine summ_ini (ims,ime,jms,jme, PINDEX_SUMM, FINDEX_SUMM, VFNSEW_SUMM, VF_N_S_SUMM, VF_E_W_SUMM, VFNS_F_SUMM, VFNS_S_SUMM, VFF_NS_SUMM, VFEW_F_SUMM, VFEW_S_SUMM, VFF_EW_SUMM, VF_F_S_SUMM, TIN_SUMM, T_VEG_SUMM, T_VEG_SUMM1, TTS_F_SUMM, TTS_N_SUMM, TTS_S_SUMM, TTS_E_SUMM, TTS_W_SUMM, TTS_R_SUMM)

implicit none

real (8) ::m_pindex, m_findex
real (8) m_vf_f_s
! real, dimension(1:mw,1:mw),intent (inout) :: m_vfnsew
real, dimension(1:mw,1:mw) :: m_vfnsew
! real :: m_vfnsew (1:mw, 1:mw)
! real (8) :: m_vfnsew
real, dimension(1:mw,1:mw) :: m_vf_n_s
real, dimension(1:mw,1:mw) :: m_vf_e_w
real, dimension(1:mw) :: m_vfns_f
real, dimension(1:mw) :: m_vfns_s
real, dimension(1:mw) :: m_vff_ns
real, dimension(1:mw) :: m_vfew_f
real, dimension(1:mw) :: m_vfew_s
real, dimension(1:mw) :: m_vff_ew

!
INTEGER, INTENT(IN) :: ims,ime,jms,jme
INTEGER I,J,K

!-------------------------------------------------
! summ related variables are added to declaration
!-------------------------------------------------
! input variables surface_driver --> lsm
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: PINDEX_SUMM
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: FINDEX_SUMM
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: VF_F_S_SUMM
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: VFNSEW_SUMM
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: VF_N_S_SUMM
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: VF_E_W_SUMM
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: VFNS_F_SUMM
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: VFNS_S_SUMM
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: VFF_NS_SUMM
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: VFEW_F_SUMM
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: VFEW_S_SUMM
REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: VFF_EW_SUMM


! state variable surface_driver <--> lsm <--> summ

REAL, DIMENSION( ims:ime,jms:jme ),INTENT(INOUT):: TIN_SUMM
REAL, DIMENSION( ims:ime,jms:jme ),INTENT(INOUT):: T_VEG_SUMM
REAL, DIMENSION( ims:ime,jms:jme ),INTENT(INOUT):: T_VEG_SUMM1

REAL, DIMENSION(ims:ime, 1:kdiv+1, jms:jme),INTENT(INOUT):: TTS_F_SUMM
REAL, DIMENSION(ims:ime, 1:idiv+1, jms:jme),INTENT(INOUT):: TTS_N_SUMM
REAL, DIMENSION(ims:ime, 1:idiv+1, jms:jme),INTENT(INOUT):: TTS_S_SUMM
REAL, DIMENSION(ims:ime, 1:idiv+1, jms:jme),INTENT(INOUT):: TTS_E_SUMM
REAL, DIMENSION(ims:ime, 1:idiv+1, jms:jme),INTENT(INOUT):: TTS_W_SUMM
REAL, DIMENSION(ims:ime, 1:idiv+1, jms:jme),INTENT(INOUT):: TTS_R_SUMM
!
!
! *** view factors ***
DO I=ims,ime
DO J=jms,jme

VFNSEW_SUMM(I,J) = 0.0
VF_N_S_SUMM(I,J) = 0.0
VF_E_W_SUMM(I,J) = 0.0
VFNS_F_SUMM(I,J) = 0.0
VFNS_S_SUMM(I,J) = 0.0
VFF_NS_SUMM(I,J) = 0.0
VFEW_F_SUMM(I,J) = 0.0
VFEW_S_SUMM(I,J) = 0.0
VFF_EW_SUMM(I,J) = 0.0
VF_F_S_SUMM(I,J) = 0.0

IF (PINDEX_SUMM(I,J) > 0.146) THEN

m_pindex = PINDEX_SUMM(I,J)
m_findex = FINDEX_SUMM(I,J)
!

call set_geo_vf (m_pindex, m_findex, m_vfnsew, m_vf_n_s, m_vf_e_w, m_vfns_f, &
m_vfns_s, m_vff_ns, m_vfew_f, m_vfew_s, m_vff_ew, m_vf_f_s)

!
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
5K
  • · Replies 17 ·
Replies
17
Views
7K
  • · Replies 2 ·
Replies
2
Views
9K
  • · Replies 9 ·
Replies
9
Views
9K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 3 ·
Replies
3
Views
14K
  • · Replies 9 ·
Replies
9
Views
10K
  • · Replies 25 ·
Replies
25
Views
10K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 3 ·
Replies
3
Views
12K