MPLNDM(3NCARG)

πŸ“¦ version 6.6.2, in epel 9, fedora 43, fedora 44

πŸ’… MPLNDM β€” the NCAR Graphics girlie who draws masked boundary lines

okay bestie, so this is MPLNDM, a Fortran-callable routine from NCAR Graphics. It reads a database, pulls boundary lines out of it, and masks them against an area map. That's the whole vibe. Periodt. ✨


✨ NAME ✨

MPLNDM β€” reads a specified EZMAP database and draws boundary lines from it, masked by a specified area map. πŸ—ΊοΈπŸ¦‹


🌸 SYNOPSIS 🌸

CALL MPLNDM (FLNM,ILVL,IAMA,XCRA,YCRA,MCRA,IAAI,IAGI,NOGI,ULPR)

πŸŽ€ C-BINDING SYNOPSIS πŸŽ€

#include <ncarg/ncargC.h>

void c_mplndm (char *flnm, int ilvl, int *iama, float *xcra, float
*ycra, int mcra, int *iaai, int *iagi, int nogi, int (*ulpr_)(float
*xcra, float *ycra, int *ncra, int *iaai, int *iagi, int *ngps))

πŸ’– DESCRIPTION πŸ’–

  • FLNM β€” an input expression of type CHARACTER, and it's giving "which database tho". It specifies the name of the database to be used. MPLNDM will first look for the files of the specified database in the current working directory; if the files are not found there, MPLNDM will look for them in the NCAR Graphics database directory. The database created in 1998 and provided as part of Version 4.1 of NCAR Graphics is named "Earth..1". πŸ—ΊοΈ
  • ILVL β€” an input expression of type INTEGER, aka how deep into the details do we wanna go. It specifies the level at which the database is to be used. The value 1 says to use only land/water boundaries, the value 2 says to add continental boundaries (like the boundary which separates Africa from Eurasia), the value 3 says to add the boundaries of countries, and the value 4 says to add states. (The value 5 will eventually be used to add counties.) no cap, level 5 is still cooking 🍳
  • IAMA β€” an input/output array of type INTEGER, dimensioned as specified in a call to the AREAS routine ARINAM, and it's the array containing the area map against which boundary lines are to be masked. The area map must have been initialized by a call to ARINAM; it should contain the edges required to create a desired effect. For example, an area map might be created that defines a region of interest, within which user data is available and within which boundary lines are to be drawn. πŸ’…
  • XCRA and YCRA β€” scratch arrays, dimensioned at least MCRA, of type REAL, and they're lowkey just the little backstage crew here. They are to be used by MPLNDM in calls to the AREAS routine ARDRLN; they will eventually be used in calls to the user-provided line-processing routine ULPR. 🫢
  • MCRA β€” an input expression of type INTEGER, and it's literally the dimension of the arrays XCRA and YCRA. Size matters bestie ✨
  • IAAI and IAGI β€” scratch arrays, dimensioned at least NOGI, of type INTEGER. They are to be used by MPLNDM in calls to the AREAS routine ARDRLN; they will eventually be used in calls to the user-provided line-processing routine ULPR. The mnemonics stand for "Integer Array of Area Identifiers" and "Integer Array of Group Identifiers", respectively. iconic naming honestly πŸ’€
  • NOGI β€” an input expression of type INTEGER, the dimension of the arrays IAAI and IAGI. The mnemonic stands for "Number Of Group Identifiers (of edges in the area map)", which determines the required dimension of IAAI and IAGI. πŸ‘‘
  • ULPR β€” is the name of the user-supplied line-processing routine. It must be declared EXTERNAL in the routine that calls MPLNDM, so that the compiler and loader will know that it is the name of a routine to be called instead of a variable. The user routine ULPR will be called once for each piece of a boundary line resulting from the masking process; it may decide to draw (or to not draw) each such piece. ULPR will be called using a FORTRAN statement like
CALL ULPR (XCRA,YCRA,NCRA,IAAI,IAGI,NGPS)

where XCRA and YCRA are real arrays holding the normalized device coordinates of NCRA points defining a polyline which is part of some boundary line and IAAI and IAGI are integer arrays holding NGPS area-identifier/group-identifier pairs for the area within which that piece of the line lies. In writing ULPR, the user may rely upon a SET call's having been done which makes it possible to use normalized device coordinates in calls to routines like CURVE, CURVED, GPL, etc. For more details, see the reference document for the package named AREAS and, in particular, the description of the subroutine ARDRLN. 🧚


🌈 C-BINDING DESCRIPTION 🌈

The C-binding argument description is the same as the FORTRAN argument description. same energy, different language, we love a bilingual queen πŸ¦‹


⭐ USAGE ⭐

MPLNDM is called to draw the lines defined by the map database whose name is FLNM, masked against the area map in the array IAMA. πŸ—ΊοΈ

MPLNDM is much like MPLNDR, except that the boundary lines are drawn using calls to MAPITM and MAPIQM, which does the masking of the lines against an area map and passes the pieces resulting from the masking process along to a user-provided line-drawing routine. it's giving glow-up, not a copy πŸ’…


πŸ”₯ EXAMPLES πŸ”₯

Use the ncargex command to see the following relevant example: mpex11. go look, it ate fr fr πŸ‘‘


πŸ’œ ACCESS πŸ’œ

To use MPLNDM or c_mplndm, load the NCAR Graphics libraries ncarg, ncarg_gks, and ncarg_c, preferably in that order. order matters bestie, don't be chaotic πŸ™ˆ


πŸ“ SEE ALSO πŸ“

Online: ezmap, ezmap_params, mapaci, mapbla, mapblm, mapdrw, mapeod, mapfst, mapgci, mapgrd, mapgrm, mapgtc, mapgti, mapgtl, mapgtr, mapint, mapiq, mapiqa, mapiqd, mapiqm, mapit, mapita, mapitd, mapitm, maplbl, maplmb, maplot, mappos, maproj, maprs, maprst, mapsav, mapset, mapstc, mapsti, mapstl, mapstr, maptra, maptri, maptrn, mapusr, mapvec, mpchln, mpfnme, mpgetc, mpgeti, mpgetl, mpgetr, mpglty, mpiaty, mpifnb, mpilnb, mpiola, mpiosa, mpipai, mpipan, mpipar, mpisci, mplnam, mplndr, mplnri, mpname, mprset, mpsetc, mpseti, mpsetl, mpsetr, supmap, supcon, ncarg_cbind

the whole friend group, we stan a supportive cast 🫢✨


Copyright (C) 1987-2009 University Corporation for Atmospheric Research The use of this Software is governed by a License Agreement.


okay that's the whole thing bestie πŸ’– this page lives in the UNIX manual, April 1998 edition β€” yes she's an elder but she's still serving, and no cap she's still relevant. slay, go draw some masked boundaries, mwah πŸŽ€πŸ¦‹πŸ’…

πŸ“¦ where this page comes from