[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 20050117: Ice bulb temperature
- Subject: Re: 20050117: Ice bulb temperature
- Date: 24 Jan 2005 10:33:02 -0700
Patrick,
This means that your dfrmik.o isn't in your gemlib.a file.
Assuming hhere that you have written that routine.
Go to $GEMPAK/source/gemlib/df
and type:
make
I'm assuming you have added the dftmik.o to the Makefile to
build. Assuming you have dftmik.o now, to make sure it is added
to your gemlib.a, type:
ar rv $GEMLIB/gemlib.a dftmik.o
Steve Chiswell
Unidata User Support
On Mon, 2005-01-24 at 07:55, Patrick S. Market wrote:
> Steve:
>
> This hasn't quite worked. Have I missed a step. Make bombs out
> with the following:
>
> ar: creating /asp/met/GEMPAK5.7.4/lib/sol_gcc/gdgrib.a
> ar: writing /asp/met/GEMPAK5.7.4/lib/sol_gcc/gdgrib.a
> rm -f *.o
> g77 -fno-second-underscore -I/asp/met/GEMPAK5.7.4/gempak/include
> -I/asp/met/GEMPAK5.7.4/gempak/include/SunOS.gcc gdgrib.f
> /asp/met/GEMPAK5.7.4/lib/sol_gcc/gdgrib.a
> /asp/met/GEMPAK5.7.4/lib/sol_gcc/gemlib.a
> /asp/met/GEMPAK5.7.4/lib/sol_gcc/appl.a
> /asp/met/GEMPAK5.7.4/lib/sol_gcc/syslib.a
> /asp/met/GEMPAK5.7.4/lib/sol_gcc/cgemlib.a -lm -o gdgrib
> Undefined first referenced
> symbol in file
> df_tmik_
> /asp/met/GEMPAK5.7.4/lib/sol_gcc/gemlib.a(dgdriv.o)
> ld: fatal: Symbol referencing errors. No output written to gdgrib
> collect2: ld returned 1 exit status
> *** Error code 1
> make: Fatal error: Command failed for target `gdgrib'
> Current working directory
> /asp/met/GEMPAK5.7.4/gempak/source/contrib/hpc/gdgrib
> *** Error code 1
> make: Fatal error: Command failed for target `gdgrib'
> Current working directory
> /asp/met/GEMPAK5.7.4/gempak/source/programs/na/gd2ndfd
> *** Error code 1
> make: Fatal error: Command failed for target `all'
> Current working directory /asp/met/GEMPAK5.7.4/gempak/source/programs/na
> *** Error code 1
> make: Fatal error: Command failed for target `all'
> Current working directory /asp/met/GEMPAK5.7.4/gempak/source/programs
> *** Error code 1
> make: Fatal error: Command failed for target `all'
> Current working directory /asp/met/GEMPAK5.7.4/gempak/source
> *** Error code 1
> make: Fatal error: Command failed for target `all'
> Current working directory /asp/met/GEMPAK5.7.4/gempak
> *** Error code 1
> make: Fatal error: Command failed for target `all'
>
>
>
>
> Pat
>
>
>
>
>
>
>
>
>
>
> >
> > Pat,
> >
> > your PR_ routine would be used for SF and SN programs.
> > You need to add your function to $GEMTBL/parms/pcconv.tbl,
> >
> > and
> >
> > Add your PR_TMIB routine to the call list in
> > $GEMPAK/sounrce/gemlib/pc/pcfunc.f.
> >
> > To create a grid program function, you would need to create a
> > DF library function to call your PR routine for every grid point
> > and add this routine to the call list of $GEMPAK/source/gemlib/dg/dgdriv.f.
> >
> > Steve Chiswell
> >
> > On Mon, 17 Jan 2005, Patrick S. Market wrote:
> >
> > > Steve:
> > >
> > > I am trying to include a subroutine into GEMPAK that I have modified.
> > >
> > > I have rewritten TMWB to calculate to include the latent heat of fusion
> > > as well (see below). The code compiles alright, but trying to use it
> > > turns up:
> > >
> > > [DG -19] Operator TMIB is not recognized.
> > >
> > > How do I get this new function into GEMPAK?
> > >
> > > Pat
> > >
> > >
> > >
> > > *******************************begin include****************************
> > > FUNCTION PR_TMIB ( tmpk, rmix, pres )
> > > C************************************************************************
> > > C* PR_TMIB *
> > > C* *
> > > C* This function computes ice bulb temperature from the temperature, *
> > > C* mixing ratio, and pressure. The result is obtained by solving *
> > > C* for the temperature at which saturation occurs when the latent *
> > > C* heat required to vaporize/melt ice is provided by a cooling of *
> > > C* the air. The equation representing the process is *
> > > C* *
> > > C* ( TMPK - TMWB ) * CP - ( Rsat (TMWB) - RMIX ) * LVAP = 0 *
> > > C* *
> > > C* This implicit equation is solved by Newton's method, since the *
> > > C* saturation mixing ratio Rsat is a transcendental function of *
> > > C* TMWB. *
> > > C* *
> > > C* The expressions for the heat of vaporization (LVAP) and saturation *
> > > C* vapor pressure are equations (2) and (10) from Bolton (MWR, 1980). *
> > > C* *
> > > C* REAL PR_TMIB ( TMPK, RMIX, PRES ) *
> > > C* *
> > > C* Input parameters: *
> > > C* TMPK REAL Temperature (K) *
> > > C* RMIX REAL Mixing ratio (g/kg) *
> > > C* PRES REAL Pressure (mb) *
> > > C* *
> > > C* Output parameters: *
> > > C* PR_TMIB REAL Wet bulb temperature (K) *
> > > C** *
> > > C* Log: *
> > > C* K. Brill/NMC 4/94 *
> > > C* S. Jacobs/NMC 4/94 Changed input RMIX from kg/kg to g/kg *
> > > C* G. Krueger/EAI 4/96 Replaced C->K constant with PR_TMKC *
> > > C* T. Lee/GSC 11/96 Changed constant *
> > > C* S. Jacobs/NCEP 8/97 Changed latent heat calc to use PR_LHVP *
> > > C* T. Lee/GSC 8/97 Set TMWB <= temp; Simplify computation *
> > > C************************************************************************
> > > INCLUDE 'GEMPRM.PRM'
> > > C*
> > > PARAMETER ( A = 6.112, B = 17.67, C = 243.5, EPSI = .622 )
> > > PARAMETER ( G = B * C )
> > > PARAMETER ( ERRMAX = .001 )
> > > C*
> > > LOGICAL convrg
> > > C*
> > > INCLUDE 'ERMISS.FNC'
> > > C------------------------------------------------------------------------
> > > C* Check for missing values.
> > > C
> > > IF ( ERMISS ( tmpk ) .or. ERMISS ( rmix ) .or. ERMISS ( pres )
> > > + .or. ( pres .le. 0. ) ) THEN
> > > PR_TMWB = RMISSD
> > > ELSE
> > > C
> > > C* Change temperature to degrees Celsius.
> > > C
> > > tmp = PR_TMKC (tmpk)
> > > C
> > > C* Compute the latent heat of sublimation.
> > > C
> > > lvap = PR_LHVP ( tmp ) + (0.333 * 1.0E6)
> > > C
> > > C* Compute the specific heat of moist air.
> > > C
> > > rmix = rmix / 1000.
> > > cp = 1005.7 * ( 1. + .887 * rmix )
> > > C
> > > C* Compute L / cp.
> > > C
> > > rlocp = lvap / cp
> > > C
> > > C* Do Newton iteration.
> > > C
> > > iter = 0
> > > tib = tmp
> > > convrg = .false.
> > > DO WHILE ( iter .le. 50 .and. .not. convrg )
> > > iter = iter + 1
> > > bt = B * tib
> > > tpc = tib + C
> > > d = ( pres / A ) * EXP ( -bt / tpc )
> > > dm1 = d - 1.
> > > f = ( tmp - tib ) - rlocp * ( EPSI / dm1 - rmix )
> > > df = - G / ( tpc * tpc )
> > > df = d * df * rlocp * EPSI / ( dm1 * dm1 ) - 1.
> > > cor = f / df
> > > tib = tib - cor
> > > IF ( ABS ( cor ) .le. ERRMAX ) convrg = .true.
> > > END DO
> > > C*
> > > IF ( .not. convrg ) THEN
> > > PR_TMWB = RMISSD
> > > ELSE
> > > twk = PR_TMCK (tib)
> > > IF ( twk .gt. tmpk ) twk = tmpk
> > > PR_TMIB = twk
> > > END IF
> > > END IF
> > > C*
> > > RETURN
> > > END
> > >
> > > *******************************begin include****************************
> > >
> > > --
> > > ========================================================================
> > > Dr. Patrick S. Market
> > > Dept. of Soil, Env. & Atmospheric Sci.
> > > University of Missouri-Columbia Phone: (573) 882 - 1496
> > > 331 ABNR Hall Lab: (573) 882 - 4401
> > > Columbia, MO 65211 USA E-mail: address@hidden
> > > ========================================================================
> > >
> >
>