The type of the actual argument differs from the type of the dummy argument. [RUNOFF_OPTION]

The type of the actual argument differs from the type of the dummy argument. [RUNOFF_OPTION]

Hi all!

 

I met a problem when I compiled Noah-MP (a model) using intel fortran (ifort) on linux platform. 

module_NoahMP_hrldas_driver.f(852): error #6633: The type of the actual argument differs from the type of the dummy argument.   [NSOIL]
                   NSOIL,  .false.,                                                   &
-------------------^
module_NoahMP_hrldas_driver.f(852): error #6633: The type of the actual argument differs from the type of the dummy argument.
                   NSOIL,  .false.,                                                   &
---------------------------^
module_NoahMP_hrldas_driver.f(853): error #6633: The type of the actual argument differs from the type of the dummy argument.
                  .true.,runoff_option,                                                   &
------------------^
module_NoahMP_hrldas_driver.f(853): error #6633: The type of the actual argument differs from the type of the dummy argument.   [RUNOFF_OPTION]
                  .true.,runoff_option,                                                   &
-------------------------^
module_NoahMP_hrldas_driver.f(854): error #6633: The type of the actual argument differs from the type of the dummy argument.   [IDS]
                  ids,ide+1, jds,jde+1, kds,kde,                &  ! domain
------------------^
module_NoahMP_hrldas_driver.f(857): error #6633: The type of the actual argument differs from the type of the dummy argument.   [SMOISEQ]
                     ,smoiseq  ,smcwtdxy ,rechxy   ,deeprechxy, areaxy ,dx, dy, msftx, msfty,&
----------------------^
module_NoahMP_hrldas_driver.f(857): error #6633: The type of the actual argument differs from the type of the dummy argument.   [SMCWTDXY]
                     ,smoiseq  ,smcwtdxy ,rechxy   ,deeprechxy, areaxy ,dx, dy, msftx, msfty,&
--------------------------------^
module_NoahMP_hrldas_driver.f(858): error #6633: The type of the actual argument differs from the type of the dummy argument.   [STEPWTD]
                     wtddt    ,stepwtd  ,dtbl  ,qrfsxy ,qspringsxy  ,qslatxy,                  &
-------------------------------^
module_NoahMP_hrldas_driver.f(858): error #6633: The type of the actual argument differs from the type of the dummy argument.   [QRFSXY]
                     wtddt    ,stepwtd  ,dtbl  ,qrfsxy ,qspringsxy  ,qslatxy,                  &
------------------------------------------------^
module_NoahMP_hrldas_driver.f(852): error #6638: An actual argument is an expression or constant; this is not valid since the associated dummy argument has the explicit INTENT(OUT) or INTENT(INOUT) attribute.
                   NSOIL,  .false.,                                                   &
---------------------------^
module_NoahMP_hrldas_driver.f(844): error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic.   [T2MBXY]
     CALL NOAHMP_INIT(    LLANDUSE,     SNOW,    SNOWH,   CANWAT,   ISLTYP,   IVGTYP,ISURBAN, &   ! call from WRF phys_init
----------^
module_NoahMP_hrldas_driver.f(844): error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic.   [CHSTARXY]
     CALL NOAHMP_INIT(    LLANDUSE,     SNOW,    SNOWH,   CANWAT,   ISLTYP,   IVGTYP,ISURBAN, &   ! call from WRF phys_init
----------^
module_NoahMP_hrldas_driver.f(857): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated.   [SMOISEQ]
                     ,smoiseq  ,smcwtdxy ,rechxy   ,deeprechxy, areaxy ,dx, dy, msftx, msfty,&
----------------------^
module_NoahMP_hrldas_driver.f(857): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated.   [SMCWTDXY]
                     ,smoiseq  ,smcwtdxy ,rechxy   ,deeprechxy, areaxy ,dx, dy, msftx, msfty,&
--------------------------------^
module_NoahMP_hrldas_driver.f(844): error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic.   [DEEPRECHXY]
     CALL NOAHMP_INIT(    LLANDUSE,     SNOW,    SNOWH,   CANWAT,   ISLTYP,   IVGTYP,ISURBAN, &   ! call from WRF phys_init
----------^
module_NoahMP_hrldas_driver.f(844): error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic.   [AREAXY]
     CALL NOAHMP_INIT(    LLANDUSE,     SNOW,    SNOWH,   CANWAT,   ISLTYP,   IVGTYP,ISURBAN, &   ! call from WRF phys_init
----------^
module_NoahMP_hrldas_driver.f(857): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated.   [MSFTX]
                     ,smoiseq  ,smcwtdxy ,rechxy   ,deeprechxy, areaxy ,dx, dy, msftx, msfty,&
--------------------------------------------------------------------------------^
module_NoahMP_hrldas_driver.f(857): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated.   [MSFTY]
                     ,smoiseq  ,smcwtdxy ,rechxy   ,deeprechxy, areaxy ,dx, dy, msftx, msfty,&
---------------------------------------------------------------------------------------^
module_NoahMP_hrldas_driver.f(844): error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic.   [MSFTX]
     CALL NOAHMP_INIT(    LLANDUSE,     SNOW,    SNOWH,   CANWAT,   ISLTYP,   IVGTYP,ISURBAN, &   ! call from WRF phys_init
----------^
module_NoahMP_hrldas_driver.f(844): error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic.   [MSFTY]
     CALL NOAHMP_INIT(    LLANDUSE,     SNOW,    SNOWH,   CANWAT,   ISLTYP,   IVGTYP,ISURBAN, &   ! call from WRF phys_init
----------^
module_NoahMP_hrldas_driver.f(858): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated.   [QRFSXY]
                     wtddt    ,stepwtd  ,dtbl  ,qrfsxy ,qspringsxy  ,qslatxy,                  &
------------------------------------------------^
module_NoahMP_hrldas_driver.f(858): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated.   [QSPRINGSXY]
                     wtddt    ,stepwtd  ,dtbl  ,qrfsxy ,qspringsxy  ,qslatxy,                  &
--------------------------------------------------------^
module_NoahMP_hrldas_driver.f(1072): error #6633: The type of the actual argument differs from the type of the dummy argument.   [IDS]
                ids,ide, jds,jde, kds,kde,                      &
----------------^
module_NoahMP_hrldas_driver.f(1072): error #6633: The type of the actual argument differs from the type of the dummy argument.   [IDE]
                ids,ide, jds,jde, kds,kde,                      &
--------------------^
module_NoahMP_hrldas_driver.f(1072): error #6633: The type of the actual argument differs from the type of the dummy argument.   [JDS]
                ids,ide, jds,jde, kds,kde,                      &
-------------------------^
module_NoahMP_hrldas_driver.f(1072): error #6633: The type of the actual argument differs from the type of the dummy argument.   [JDE]
                ids,ide, jds,jde, kds,kde,                      &
-----------------------------^
module_NoahMP_hrldas_driver.f(1072): error #6633: The type of the actual argument differs from the type of the dummy argument.   [KDS]
                ids,ide, jds,jde, kds,kde,                      &
----------------------------------^
module_NoahMP_hrldas_driver.f(1043): error #6631: A non-optional actual argument must be present when invoking a procedure with an explicit interface.   [ITE]
         CALL noahmplsm(ITIMESTEP,       YR, JULIAN_IN,   COSZEN, XLAT_URB2D, &
--------------^
module_NoahMP_hrldas_driver.f(1043): error #6631: A non-optional actual argument must be present when invoking a procedure with an explicit interface.   [JTS]
         CALL noahmplsm(ITIMESTEP,       YR, JULIAN_IN,   COSZEN, XLAT_URB2D, &
--------------^
module_NoahMP_hrldas_driver.f(1043): error #6631: A non-optional actual argument must be present when invoking a procedure with an explicit interface.   [JTE]
         CALL noahmplsm(ITIMESTEP,       YR, JULIAN_IN,   COSZEN, XLAT_URB2D, &
--------------^
module_NoahMP_hrldas_driver.f(1265): catastrophic error: Too many errors, exiting
compilation aborted for module_NoahMP_hrldas_driver.f (code 1)
make[1]: *** [module_NoahMP_hrldas_driver.o] Error 1

 

I searched many times and checked the type of actual argument and dummy arguments. I did not find the difference between them. So can someone help this?

 

I attached two files including actual argument and dummy one!

publicaciones de 7 / 0 nuevos
Último envío
Para obtener más información sobre las optimizaciones del compilador, consulte el aviso sobre la optimización.

How did you compile this program?  What were the command line options?

This looks like an argument mis-alignment somewhere, and it's possible that a line was truncated.

 

I tried looking at the sources, but was annoyed at having to count more than 50 actual and dummy arguments. Since these sources are not compilable by themselves, it's hard to analyze. I did notice that the source files had a .F file type, indicating fixed-form, but the sources themselves were clearly free-form, so I agree with Lorri that there is something else at work here.

Steve (aka "Doctor Fortran") - Retired from Intel

Zhang,

The two source files that you provided use modules for which you did not provide sources. Without those modules, the two files cannot be run through the compiler in order that we may reproduce the error messages that you reported.

Searching with the module name took me to this source file: https://github.com/NCAR/WRFV3/blob/master/phys/module_sf_noahmplsm.F . In this file we have the source code for the module MODULE_SF_NOAHMPLSM . In the first file that you provided (Line 869), we find the following reference to that module:

  USE module_sf_noahmplsm, ONLY : BB, SATPSI, MAXSMC  ! Added to have access 

However, the module source has no variables called SATPSI or MAXSMC anywhere, and BB is just a local variable in a couple of subprograms and, therefore, not available by USE association.

The only explanation that I can think of is that you are using a modified version of module_sf_noahmplsm.F . If you want more help with this issue, you should provide a complete set of source files and instructions to compile them. Just listing an error message is simply not enough to find out what caused the error.

You are right! I made some changes, and when I use USE statement, I found that I changed the name of variables from USE statement. That's why I got these errors!

If you want more help with this issue, you should provide a complete set of source files (with your changes) and instructions to compile them.

Thank you! I have solved it!

Deje un comentario

Por favor inicie sesión para agregar un comentario. ¿No es socio? Únase ya