FCC Logo - Return to the FCC Home Page  
  Audio Division                                                                   Doppler Shift
(202)-418-2700
Fax: 202-418-1411

    Help | Advanced




Media Bureau Home
  Bureau Documents

  MB People
MB Divisions
  Office of the Bureau   Chief

  Audio Division

  Video Division

  Policy Division

  Industry Analysis   Division

  Engineering Division

  Office of   Communication &   Industry Information

  Management and   Resources Staff


The Audio Division

  Alphabetical Index

  Audio's Contact   Persons list

  Internet Queries

  Radio Tools Popup

  Conversions

  Most Requested   Information

  Major Subject Areas

  Audio Headlines

  Electronic Filing

Electronic Filing Skip Bureau and Office Links


Visit the FirstGov Portal
Easy, one-stop access to all online U.S. Federal Government resources
www.USA.gov

 

Doppler Shift

A Fortran GET + POST CGI example

The program computes the Doppler shift upward or downwards in frequency caused by constant motion toward or away from a radio source. Three elements must be entered -- the frequency in Megahertz, the velocity, and a choice of metric or English units. The numbers here represent double precision, real, and integer numbers. Parsing the name=value pairs is performed by a DO loop which searches along the input string for the names; actual parsing is performed by the "char2" subroutines -- char2double, char2real, and char2int.


      Metric Units (POST method submission)

      Frequency (MHz)

      Velocity in kilometers per hour      

         
  • + velocity = approaching radio source      
  • - velocity = receding from radio source

      Metric units (units=1)

       




      English Units (GET method submission)

      Frequency (MHz)

      Velocity in Miles per hour      

         
  • + velocity = approaching radio source      
  • - velocity = receding from radio source

      English units (units=2)

       


The source code for this program (HTML and Fortran CGI) is available for download. If the HTML form uses the GET method to send data, the program reads the input string from the environment variable QUERY_STRING using the intrinsic routine getenv. If the form submits the data via the POST method, the input data appears at the standard input (STDIN) and we use the READ command to retrieve the input character string. The character string is subsequently parsed to retrieve the name=value data pairs sent by the form. In a GET method string, the QUERY_STRING string consists of everything to the right of the input URL, e.g. input=8CDC5F in http://www.fcc.gov/fcc-bin/colorit?input=8cdc6f.

  • FORTRAN:

    • The QUERY_STRING or is a character string. If numbers are contained in the string, they are ASCII characters and must be converted to numbers before use.

    • In this example, the HTML output is established by the statements

          write(6,55)
      55 Format("Content-type: text/html"//)

      This code must be placed before any HTML statements are written to output. (Yes, you can change the Format statement number.) The two // are VERY IMPORTANT! Also, note the placement of the " quotation marks. Compare to the corrsponding C language statement

      printf("Content-type: text/html\n\n");

    • For HTML OUTPUT, the HTML tags are contained inside Format statements, as shown in the example Fortran code. BE SURE to have the usual HTML ending tags, or you may not see any HTML output or receive an execution error code.

    • Carefully watch use of  ' and " in Format statements: it's too easy to miss one ' or " or add too many.

    • When generating output, statements must be no longer than the 72 character limit in Fortran 77. Another Format statement or a continuation character in Column 6 may be used for longer statements.

    • A CGI can output a new HTML form, or call a CGI. The Fortran program can also incorporate subroutines, called in the usual manner, although none are needed for this example.

    • Fortran carriage control characters are unneeded when generating HTML output. Use the HTML tags to perform this function. However, to keep the browsers' source code view tidy, you can include returns at the end of HTML lines:

           write(6,111)
      111 format(" HTML text here! " /)

    • The program has not been optimized. There certainly are better ways to do some of the tasks or changes which could be made to reduce the code, but it's not necessary for this simple example. Please note that no Fortran or CGI library functions were used in the preparation or execution of this example. The program was designed as a stand-alone CGI.

    • A POST method CGI example (AMwave) and a GET example (COLORIT are also available for your review.

    Dale Bickel
    Senior Electronics Engineer
    Audio Division, Media Bureau

    Original page October 2000; revised March 25, 2002



  •      


    Please send comments via standard mail to the Federal Communications Commission, Consumer and Governmental Affairs Bureau, 445 12th Street, S.W., Washington, D.C., 20554. Questions can also be answered by calling the FCC's National Call Center, toll free, at 1-888-Call FCC (1-888-225-5322).

    Skip FCC Footer and Contact InfoFederal Communications Commission
    445 12th Street SW
    Washington, DC 20554
    More FCC Contact Information...
    Phone:  1-888-CALL-FCC (1-888-225-5322)
    TTY:  1-888-TELL-FCC (1-888-835-5322)
    Fax:  1-866-418-0232
    E-mail:  fccinfo@fcc.gov
    - Privacy Policy
    - Website Policies & Notices
    - Required Browser Plug-ins
    - Freedom of Information Act