Hmm, try using a standalone variable PetscReal value value = int_impl(k,5)]
>>>>> call >>>>> MatSetValues(A_mat_uv,[ione],II,[ione],[value],impl_mat_A,INSERT_VALUES,ierr) >>>>> unfortunately Fortan compilers in this situation are not good at telling us exactly what argument is giving it grief. Barry > On Aug 22, 2024, at 10:33 AM, TAY Wee Beng <zon...@gmail.com> wrote: > > > > On 22/8/2024 10:28 pm, Barry Smith wrote: >> >> Should be PetscReal as it is a numerical value. > Ok, I changed it but I still get the same error. >> >> >>> On Aug 22, 2024, at 9:55 AM, TAY Wee Beng <zon...@gmail.com> >>> <mailto:zon...@gmail.com> wrote: >>> >>> >>> >>> On 22/8/2024 9:54 pm, Barry Smith wrote: >>>> >>>> What is int_impl(k,5) defined type? >>> PetscInt >>>> >>>>> On Aug 22, 2024, at 9:45 AM, TAY Wee Beng <zon...@gmail.com> >>>>> <mailto:zon...@gmail.com> wrote: >>>>> >>>>> Hi Barry, >>>>> >>>>> Do you mean that I change from: >>>>> >>>>> call >>>>> MatSetValues(A_mat_uv,ione,II,ione,int_impl(k,5),impl_mat_A,INSERT_VALUES,ierr) >>>>> >>>>> to >>>>> >>>>> call >>>>> MatSetValues(A_mat_uv,[ione],II,[ione],[int_impl(k,5)],impl_mat_A,INSERT_VALUES,ierr) >>>>> >>>>> ? >>>>> >>>>> I did it but the error is still there. >>>>> >>>>> On 22/8/2024 9:40 pm, Barry Smith wrote: >>>>>> >>>>>> Fortran 90 type checking is very tight; The dimension of the array, >>>>>> or scalar passed as arguments must match the expected dimension (f77 did >>>>>> not do this type checking). Thus the ione argument must be a 1-d array >>>>>> as well as the numerical values so do >>>>>> >>>>>>> call >>>>>>> MatSetValues(A_mat_uv,[ione],II,[ione],[int_impl(k,5)],impl_mat_A,INSERT_VALUES,ierr) >>>>>>> >>>>>> >>>>>> See Fortran at >>>>>> https://urldefense.us/v3/__https://petsc.org/main/changes/dev/__;!!G_uCfscf7eWS!b2f2s3CzjxVoPuzYvafOupk882EeGhmMhGIGBixXIP3SRNSBy6JkxfMOXE_aqVmSFgCwaEIhK4WHFyybLs7x4K8$ >>>>>> >>>>>> >>>>>> I am trying to support the old-fashion F77 model, allowing miss-matches >>>>>> in the array dimensions while still doing proper type checking but it >>>>>> will take some time to simplify the API. >>>>>> >>>>>> Barry >>>>>> >>>>>> >>>>>> >>>>>>> On Aug 21, 2024, at 9:44 PM, TAY Wee Beng <zon...@gmail.com> >>>>>>> <mailto:zon...@gmail.com> wrote: >>>>>>> >>>>>>> Hi Barry, >>>>>>> >>>>>>> I have declared them as integers in Fortran. Is that different from >>>>>>> PetscInt and how come it works in debug mode? >>>>>>> >>>>>>> Anyway, I changed them and it solved the problem. However, I have a >>>>>>> similar problem in my boundary.F90: >>>>>>> >>>>>>> boundary.F90(6685): error #6285: There is no matching specific >>>>>>> subroutine for this generic subroutine call. [MATSETVALUES] >>>>>>> call >>>>>>> MatSetValues(A_mat_uv,ione,II,ione,int_impl(k,5),impl_mat_A,INSERT_VALUES,ierr) >>>>>>> -----^ >>>>>>> I changed all to PetscInt and also PetscReal but I still got the error. >>>>>>> >>>>>>> Why is this so now? Any solution? >>>>>>> >>>>>>> Thanks! >>>>>>> >>>>>>> On 22/8/2024 12:03 am, Barry Smith wrote: >>>>>>>> >>>>>>>> You must declare as >>>>>>>> >>>>>>>> PetscInt ksta_p,kend_p >>>>>>>> >>>>>>>> Perhaps they are declared as arrays? >>>>>>>> >>>>>>>> >>>>>>>>> On Aug 21, 2024, at 11:19 AM, TAY Wee Beng <zon...@gmail.com> >>>>>>>>> <mailto:zon...@gmail.com> wrote: >>>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> I am using the latest PETSc thru github. I compiled both the debug >>>>>>>>> and rel ver of PETSc w/o problem. >>>>>>>>> >>>>>>>>> I then use it with my CFD code and the debug ver works. >>>>>>>>> >>>>>>>>> However, I have problems with the rel ver: >>>>>>>>> >>>>>>>>> ftn -o global.o -c -O3 -g -ip -ipo -fPIC -save -w >>>>>>>>> -I/home/project/11003851/lib/petsc_210824_intel_rel/include >>>>>>>>> global.F90 >>>>>>>>> ifort: remark #10448: Intel(R) Fortran Compiler Classic (ifort) is >>>>>>>>> now deprecated and will be discontinued late 2024. Intel recommends >>>>>>>>> that customers transition now to using the LLVM-based Intel(R) >>>>>>>>> Fortran Compiler (ifx) for continued Windows* and Linux* support, new >>>>>>>>> language support, new language features, and optimizations. Use >>>>>>>>> '-diag-disable=10448' to disable this message. >>>>>>>>> global.F90(444): error #6285: There is no matching specific >>>>>>>>> subroutine for this generic subroutine call. [MATGETOWNERSHIPRANGE] >>>>>>>>> call MatGetOwnershipRange(A_mat,ksta_p,kend_p,ierr) >>>>>>>>> -------------^ >>>>>>>>> global.F90(720): error #6285: There is no matching specific >>>>>>>>> subroutine for this generic subroutine call. [MATGETOWNERSHIPRANGE] >>>>>>>>> call MatGetOwnershipRange(A_mat_uv,ksta_m,kend_m,ierr) >>>>>>>>> -----^ >>>>>>>>> global.F90(774): error #6285: There is no matching specific >>>>>>>>> subroutine for this generic subroutine call. [MATGETOWNERSHIPRANGE] >>>>>>>>> call MatGetOwnershipRange(A_semi_x,ksta_mx,kend_mx,ierr) >>>>>>>>> -----^ >>>>>>>>> global.F90(776): error #6285: There is no matching specific >>>>>>>>> subroutine for this generic subroutine call. [MATGETOWNERSHIPRANGE] >>>>>>>>> call MatGetOwnershipRange(A_semi_y,ksta_my,kend_my,ierr) >>>>>>>>> -----^ >>>>>>>>> global.F90(949): error #6285: There is no matching specific >>>>>>>>> subroutine for this generic subroutine call. [MATGETOWNERSHIPRANGE] >>>>>>>>> call MatGetOwnershipRange(A_semi_x,ksta_mx,kend_mx,ierr) >>>>>>>>> -----^ >>>>>>>>> global.F90(957): error #6285: There is no matching specific >>>>>>>>> subroutine for this generic subroutine call. [MATGETOWNERSHIPRANGE] >>>>>>>>> call MatGetOwnershipRange(A_semi_y,ksta_my,kend_my,ierr) >>>>>>>>> -----^ >>>>>>>>> compilation aborted for global.F90 (code 1) >>>>>>>>> >>>>>>>>> May I know what's the problem? >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> Thank you very much. >>>>>>>>> >>>>>>>>> Yours sincerely, >>>>>>>>> >>>>>>>>> ================================================ >>>>>>>>> TAY Wee-Beng 郑伟明 (Zheng Weiming) >>>>>>>>> ================================================ >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> -- >>>>>>> >>>>>>> Thank you very much. >>>>>>> >>>>>>> Yours sincerely, >>>>>>> >>>>>>> ================================================ >>>>>>> TAY Wee-Beng 郑伟明 (Zheng Weiming) >>>>>>> ================================================ >>>>>>> >>>>>>> >>>>>> >>>>> -- >>>>> >>>>> Thank you very much. >>>>> >>>>> Yours sincerely, >>>>> >>>>> ================================================ >>>>> TAY Wee-Beng 郑伟明 (Zheng Weiming) >>>>> ================================================ >>>>> >>>>> >>>> >>> -- >>> >>> Thank you very much. >>> >>> Yours sincerely, >>> >>> ================================================ >>> TAY Wee-Beng 郑伟明 (Zheng Weiming) >>> ================================================ >>> >>> >> > -- > > Thank you very much. > > Yours sincerely, > > ================================================ > TAY Wee-Beng 郑伟明 (Zheng Weiming) > ================================================ > >