[MITgcm-support] Fwd: New added Diagnostics-problem
Jean-Michel Campin
jmc at ocean.mit.edu
Thu Oct 29 15:17:44 EDT 2015
Hi Kaveh,
I am a little bit confused: within MITgcm code, there is a package
called "mypackage" and I was assuming that when you refer to
mypackage_diagnostics_init.F like here:
> > > 1- New diagnostic in mypackage_diagnostics_init.F is added like below:
you mean a modification in MITgcm/pkg/mypackage/mypackage_diagnostics_init.F
But as I understand now, it might be in a new subroutine/file called
sediment_diagnostics_init.F
> CALL SEDIMENT_DIAGNOSTICS_INIT( myThid )
Could you please clarify this point above ?
Cheers,
Jean-Michel
On Thu, Oct 29, 2015 at 04:36:08PM +0100, kaveh Purkiani wrote:
> Dear Michel,
>
> Here are the issues:
>
> I don't have better suggestion than to check basic things, such as:
> 1) is pkg/mypackage compiled ?
>
> Yes, it is compiled, here is the STDOUT
>
> pkg/sediment compiled and used ( useSEDIMENT
> = T )
>
>
> 2) is this package turned on ? ( useMYPACKAGE=.TRUE. in data.pkg)
>
> Yes, it is turned on.
>
> (PID.TID 0000.0001) > useSEDIMENT=.TRUE.,
>
> 3) check that S/R MYPACKAGE_DIAGNOSTICS_INIT is called
> by adding "debugMode=.TRUE." in eedata ; this print the sequence of
> subroutine calls in STDOUT files.
>
>
> The debug mode compilation and run did work but turned out that mypackage
> _DIAGNOSTICS_INIT is not at STOUT files and perhaps is not called.
>
>
> As I mentioned before in mypackage_diagnostics_init.F I have a call routine
> like below.
>
> diagName = 'TEST '
> diagTitle = 'New Concentration'
> diagUnits = 'mmol/m^3/d '
> diagCode = 'SMR MR '
> CALL DIAGNOSTICS_ADDTOLIST( diagNum,
> I diagName, diagCode, diagUnits, diagTitle,0,myThid )
> CALL DIAGNOSTICS_SETKLEV( diagName, 3, myThid )
>
>
> the mypackage_init_fixed.F calls the mypackage_diagnostics_init like below:
>
>
> #ifdef ALLOW_DIAGNOSTICS
> IF ( useDiagnostics ) THEN
> CALL SEDIMENT_DIAGNOSTICS_INIT( myThid )
> ENDIF
> #endif
>
>
> It is not sufficient to write a new diagnostics at
> available.diagnostics.log ?
>
> What do I miss?
>
> 4) check that your changes are indeed present in the "small .f" file
> version, i.e.: mypackage_diagnostics_init.f (in the build dir).
>
>
> yes, all my changes are in there.
>
>
>
> I appreciate your time in advance.
>
> regards,
>
>
> Kaveh.
>
> On Wed, Oct 28, 2015 at 8:46 PM, Jean-Michel Campin <jmc at ocean.mit.edu>
> wrote:
>
> > Hi Kaveh,
> >
> > The error you are getting is consistent with the fact that
> > the new diagnostics "new " is not present in the log file:
> > available_diagnostics.log
> > and I suspect that this piece of code you added in
> > mypackage_diagnostics_init.F
> > is not run through.
> >
> > I don't have better suggestion than to check basic things, such as:
> > 1) is pkg/mypackage compiled ?
> > 2) is this package turned on ? ( useMYPACKAGE=.TRUE. in data.pkg)
> > 3) check that S/R MYPACKAGE_DIAGNOSTICS_INIT is called
> > by adding "debugMode=.TRUE." in eedata ; this print the sequence of
> > subroutine calls in STDOUT files.
> > 4) check that your changes are indeed present in the "small .f" file
> > version, i.e.: mypackage_diagnostics_init.f (in the build dir).
> >
> > Cheers,
> > Jean-Michel
> >
> > On Wed, Oct 28, 2015 at 04:12:36PM +0100, kaveh Purkiani wrote:
> > > Hi all,
> > >
> > > I followed the user manual to add new diagnostics to the code.
> > >
> > > 1- New diagnostic in mypackage_diagnostics_init.F is added like below:
> > >
> > > diagName = 'new ' (it is 8 characters long)
> > > diagTitle = 'New Concentration'
> > > diagUnits = 'mmol/m^3/d '
> > > diagCode = 'SMR MR '
> > > CALL DIAGNOSTICS_ADDTOLIST( diagNum,
> > > I diagName, diagCode, diagUnits, diagTitle, 0,myThid )
> > >
> > >
> > > 2- At mypackage_forcing.F the diagnostics_fill call is added:
> > >
> > > #ifdef ALLOW_DIAGNOSTICS
> > > CALL DIAGNOSTICS_FILL(new_pTracer,'new ',0,Nr,1,bi,bj,myThid)
> > > #endif /* ALLOW_DIAGNOSTICS */
> > >
> > >
> > > 3- DIAGNOSTICS_SIZE.h is considered at code folder and data.diagnostics
> > has
> > > been defined in input folder.
> > > Model compiled successfully. I have this error massage at model run :
> > >
> > > (PID.TID 0001.0001) *** ERROR *** DIAGNOSTICS_SET_POINTERS: new is
> > > not a Diagnostic
> > >
> > > When I check the available.diagnostic.log in the running folder there is
> > no
> > > new variable which I thought it has been provided through the implemented
> > > code.
> > >
> > > the diagnostics_set_ponters.F says :
> > >
> > > If (ndCount.EQ.0) call this error.
> > > ndCount is number of diasable diagnostics in fldsList which is unknown to
> > > me.
> > >
> > >
> > > Any clue to solve this is very much appreciated.
> > >
> > >
> > > regards,
> > >
> > > Kaveh.
> >
> > > _______________________________________________
> > > MITgcm-support mailing list
> > > MITgcm-support at mitgcm.org
> > > http://mitgcm.org/mailman/listinfo/mitgcm-support
> >
> >
> > _______________________________________________
> > MITgcm-support mailing list
> > MITgcm-support at mitgcm.org
> > http://mitgcm.org/mailman/listinfo/mitgcm-support
> >
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support
More information about the MITgcm-support
mailing list