Re: WRAPIT issue with PARAMETER

From: Mary Haley <haley_at_nyahnyahspammersnyahnyah>
Date: Wed Feb 23 2011 - 15:45:14 MST

Hi Debasish,

I think you are still running into the same problem with PARAMETER statements. MAXQ is defined only in the parameter statement, and according to the WRAPIT dcumentation, you can't use parameter values in this stub. You will need to either hard-code the value (Q array, for example):

       DOUBLE PRECISION PROB(NPROB),Q(30),RMOM(5),RPARA(4),SMAT(3,3),TMOM(4),T4FIT(5)

or have it passed in as an argument to the subroutine.

There are other potential issues, but maybe you've already resolved them: some of your lines are too long.

This worked for me:

C NCLFORTSTART
      SUBROUTINE REGTST(NSITES,NAMES,LEN,XMOM,A,B,SEED,NSIM,NPROB,PROB,
     + KPRINT,KOUT,RMOM,D,VOBS,VBAR,VSD,H,Z,PARA)
      CHARACTER*1 BLANK,STAR,LOOK1,LOOK2
      CHARACTER*12 NAMES(NSITES)
      CHARACTER*18 DISTRI(6)
      DOUBLE PRECISION D(NSITES),DC1(14),DC2(18),H(3),PARA(5,6)
      DOUBLE PRECISION PROB(NPROB),Q(30),RMOM(5),RPARA(4),SMAT(3,3)
      DOUBLE PRECISION TMOM(4),T4FIT(5)
      DOUBLE PRECISION VBAR(3),VOBS(3),VSD(3),WORK(200,3),X(200)
      DOUBLE PRECISION XMOM(5,NSITES),Z(5)
      INTEGER LEN(NSITES)
C NCLEND

--Mary

On Feb 23, 2011, at 12:29 PM, Debasish wrote:

> Hello
>
> I have a fortran subroutine (beginning of the code attached below). I want to call it from my NCL script.
> I wrote a "REGTST_interface.stub"
>
> C NCLFORTSTART
> SUBROUTINE REGTST(NSITES,NAMES,LEN,XMOM,A,B,SEED,NSIM,NPROB,PROB,KPRINT,KOUT,RMOM,D,VOBS,VBAR,VSD,H,Z,PARA)
> PARAMETER (MAXNS=200,MAXQ=30,MAXREC=200)
> CHARACTER*1 BLANK,STAR,LOOK1,LOOK2
> CHARACTER*12 NAMES(NSITES)
> CHARACTER*18 DISTRI(6)
> DOUBLE PRECISION D(NSITES),DC1(14),DC2(18),H(3),PARA(5,6)
> DOUBLE PRECISION PROB(NPROB),Q(MAXQ),RMOM(5),RPARA(4),SMAT(3,3),TMOM(4),T4FIT(5)
> DOUBLE PRECISION VBAR(3),VOBS(3),VSD(3),WORK(MAXNS,3),X(MAXREC),XMOM(5,NSITES),Z(5)
> INTEGER LEN(NSITES)
> C NCLEND
>
> I run the *.stub with the fortran code and got an error massage
>
> WRAPIT Version: 100111
> A syntax error occurred while parsing: PARAMETER
>
>> From previous emails on WRAPIT, I get the impression that WRAPIT has a problem with using PARAMETER
> Therefore, I put the PARAMETER Statement outside the subroutine arguments and my new "REGTST_interface.stub" is
>
> C NCLFORTSTART
> SUBROUTINE REGTST(NSITES,NAMES,LEN,XMOM,A,B,SEED,NSIM,NPROB,PROB,KPRINT,KOUT,RMOM,D,VOBS,VBAR,VSD,H,Z,PARA)
> CHARACTER*1 BLANK,STAR,LOOK1,LOOK2
> CHARACTER*12 NAMES(NSITES)
> CHARACTER*18 DISTRI(6)
> DOUBLE PRECISION D(NSITES),DC1(14),DC2(18),H(3),PARA(5,6)
> DOUBLE PRECISION PROB(NPROB),Q(MAXQ),RMOM(5),RPARA(4),SMAT(3,3),TMOM(4),T4FIT(5)
> DOUBLE PRECISION VBAR(3),VOBS(3),VSD(3),WORK(MAXNS,3),X(MAXREC),XMOM(5,NSITES),Z(5)
> INTEGER LEN(NSITES)
> C NCLEND
> PARAMETER (MAXNS=200,MAXQ=30,MAXREC=200)
>
> When I run it it does not recognize the MAXNS and MAXQ and got an error
>
> WRAPIT Version: 100111
> A syntax error occurred while parsing: MAXQ
>
> Any suggestion and clue for solving this problem will be appreciated. Beginning of the fortran subroutine is attached below
>
> Thanks
>
> Debasish
>
>
>
> C===================================================== REGTST.FOR
> SUBROUTINE REGTST(NSITES,NAMES,LEN,XMOM,A,B,SEED,NSIM,NPROB,PROB,
> * KPRINT,KOUT,RMOM,D,VOBS,VBAR,VSD,H,Z,PARA)
> C***********************************************************************
> IMPLICIT DOUBLE PRECISION (A-H,O-Z)
> PARAMETER (MAXNS=200,MAXQ=30,MAXREC=200)
> C
> CHARACTER*1 BLANK,STAR,LOOK1,LOOK2
> CHARACTER*12 NAMES(NSITES)
> CHARACTER*18 DISTRI(6)
> DOUBLE PRECISION D(NSITES),DC1(14),DC2(18),H(3),PARA(5,6),
> * PROB(NPROB),Q(MAXQ),RMOM(5),RPARA(4),SMAT(3,3),TMOM(4),T4FIT(5),
> * VBAR(3),VOBS(3),VSD(3),WORK(MAXNS,3),X(MAXREC),XMOM(5,NSITES),
> * Z(5)
> INTEGER LEN(NSITES)
> DATA BLANK/' '/,STAR/'*'/
> DATA ZERO/0D0/,ONE/1D0/,TWO/2D0/,THREE/3D0/
> DATA DISTRI/
> * 'GEN. LOGISTIC ','GEN. EXTREME VALUE','GEN. NORMAL ',
> * 'PEARSON TYPE III ','GEN. PARETO ','WAKEBY '/
> C
> C COEFFICIENTS OF POWER-SERIES APPROXIMATIONS OF TAU-4 IN TERMS
> C OF TAU-3, FOR THE FIRST 5 DISTRIBUTIONS IN ARRAY DISTRI
> C
> DATA GLOC0,GLOC2/0.16667D0,0.83333D0/
> DATA GEVC0,GEVC1,GEVC2,GEVC3,GEVC4,GEVC5,GEVC6/
> * 0.10701D0, 0.11090D0, 0.84838D0,-0.06669D0,
> * 0.00567D0,-0.04208D0, 0.03763D0/
> DATA GNOC0,GNOC2,GNOC4,GNOC6,GNOC8/
> * 0.12282D0,0.77518D0,0.12279D0,-0.13638D0,0.11368D0/
> DATA PE3C0,PE3C2,PE3C4,PE3C6,PE3C8/
> * 0.12240D0,0.30115D0,0.95812D0,-0.57488D0,0.19383D0/
> DATA GPAC1,GPAC2,GPAC3,GPAC4/
> * 0.20196D0,0.95924D0,-0.20096D0,0.04061D0/
> C
> C CRITICAL VALUES FOR D, H AND Z STATISTICS
> C
> DATA DC1/4*3D0,1.3330D0,1.6481D0,1.9166D0,2.1401D0,2.3287D0,
> * 2.4906D0,2.6321D0,2.7573D0,2.8694D0,2.9709D0/
> DATA DC2/4*4D0,1.3333D0,1.6648D0,1.9821D0,2.2728D0,2.5337D0,
> * 2.7666D0,2.9748D0,3.1620D0,3.3310D0,3.4844D0,
> * 3.6246D0,3.7532D0,3.8718D0,3.9816D0/
> DATA HCRIT1,HCRIT2/1D0,2D0/
> DATA ZCRIT/1.645D0/
>
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Wed Feb 23 15:45:20 2011

This archive was generated by hypermail 2.1.8 : Wed Feb 23 2011 - 16:47:57 MST