Description

This example shows: how to read data for a tropical cyclone BUFR messages.

Source code

<pre style='color:#000000;background:#ffffff;'><span style='color:#696969; '>!Copyright 2005-2015 ECMWF.</span>
<span style='color:#696969; '>!</span>
<span style='color:#696969; '>! This software is licensed under the terms of the Apache Licence Version 2.0</span>
<span style='color:#696969; '>!which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.</span>
<span style='color:#696969; '>!</span>
<span style='color:#696969; '>! In applying this licence, ECMWF does not waive the privileges and immunities granted to it by</span>
<span style='color:#696969; '>! virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.</span>
<span style='color:#696969; '>!</span>
<span style='color:#696969; '>!</span>
<span style='color:#696969; '>! FOTRAN 90 Implementation: bufr_read_tropical_cyclone</span>
<span style='color:#696969; '>!</span>
<span style='color:#696969; '>! Description: how to read data for a tropical cyclone BUFR messages.</span>
<span style='color:#696969; '>!</span>
 
<span style='color:#800000; font-weight:bold; '>program</span> bufr_read_tropical_cyclone
  <span style='color:#800000; font-weight:bold; '>use</span> eccodes
  <span style='color:#800000; font-weight:bold; '>implicit</span> none
  <span style='color:#800000; font-weight:bold; '>integer</span>            <span style='color:#808030; '>::</span> ifile
  <span style='color:#800000; font-weight:bold; '>integer</span>            <span style='color:#808030; '>::</span> iret
  <span style='color:#800000; font-weight:bold; '>integer</span>            <span style='color:#808030; '>::</span> ibufr<span style='color:#808030; '>,</span>skipMember
  <span style='color:#800000; font-weight:bold; '>integer</span>            <span style='color:#808030; '>::</span> significance
  <span style='color:#800000; font-weight:bold; '>integer</span>            <span style='color:#808030; '>::</span> year<span style='color:#808030; '>,</span>month<span style='color:#808030; '>,</span>day<span style='color:#808030; '>,</span>hour<span style='color:#808030; '>,</span>minute
  <span style='color:#800000; font-weight:bold; '>integer</span>            <span style='color:#808030; '>::</span> i<span style='color:#808030; '>,</span>j<span style='color:#808030; '>,</span>k<span style='color:#808030; '>,</span>ierr<span style='color:#808030; '>,</span>count<span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span>
  <span style='color:#800000; font-weight:bold; '>integer</span>            <span style='color:#808030; '>::</span> rankPosition<span style='color:#808030; '>,</span>rankSignificance<span style='color:#808030; '>,</span>rankPressure<span style='color:#808030; '>,</span>rankWind
  <span style='color:#800000; font-weight:bold; '>integer</span>            <span style='color:#808030; '>::</span> rankPeriod<span style='color:#808030; '>,</span>numberOfPeriods
 
  <span style='color:#800000; font-weight:bold; '>real</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>8</span><span style='color:#808030; '>)</span> <span style='color:#808030; '>::</span> latitudeCentre<span style='color:#808030; '>,</span>longitudeCentre
  <span style='color:#800000; font-weight:bold; '>real</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>8</span><span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>dimension</span><span style='color:#808030; '>(</span>:<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>allocatable</span> <span style='color:#808030; '>::</span> latitudeMaxWind0<span style='color:#808030; '>,</span>longitudeMaxWind0<span style='color:#808030; '>,</span>windMaxWind0
  <span style='color:#800000; font-weight:bold; '>real</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>8</span><span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>dimension</span><span style='color:#808030; '>(</span>:<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>allocatable</span> <span style='color:#808030; '>::</span> latitudeAnalysis<span style='color:#808030; '>,</span>longitudeAnalysis<span style='color:#808030; '>,</span>pressureAnalysis
  <span style='color:#800000; font-weight:bold; '>real</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>8</span><span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>dimension</span><span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span>:<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>allocatable</span> <span style='color:#808030; '>::</span> latitude<span style='color:#808030; '>,</span>longitude<span style='color:#808030; '>,</span>pressure
  <span style='color:#800000; font-weight:bold; '>real</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>8</span><span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>dimension</span><span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span>:<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>allocatable</span> <span style='color:#808030; '>::</span> latitudeWind<span style='color:#808030; '>,</span>longitudeWind<span style='color:#808030; '>,</span>wind
  <span style='color:#800000; font-weight:bold; '>integer</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>4</span><span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>dimension</span><span style='color:#808030; '>(</span>:<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>allocatable</span> <span style='color:#808030; '>::</span> memberNumber<span style='color:#808030; '>,</span>period
  <span style='color:#800000; font-weight:bold; '>real</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>8</span><span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>dimension</span><span style='color:#808030; '>(</span>:<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>allocatable</span> <span style='color:#808030; '>::</span> values
  <span style='color:#800000; font-weight:bold; '>integer</span><span style='color:#808030; '>(</span>kind<span style='color:#808030; '>=</span><span style='color:#008c00; '>4</span><span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>dimension</span><span style='color:#808030; '>(</span>:<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span> <span style='color:#800000; font-weight:bold; '>allocatable</span> <span style='color:#808030; '>::</span> ivalues
 
  <span style='color:#800000; font-weight:bold; '>character</span><span style='color:#808030; '>(</span>len<span style='color:#808030; '>=</span><span style='color:#008c00; '>8</span><span style='color:#808030; '>)</span>   <span style='color:#808030; '>::</span> rankSignificanceStr<span style='color:#808030; '>,</span>rankPositionStr<span style='color:#808030; '>,</span>rankPressureStr<span style='color:#808030; '>,</span>rankWindStr
  <span style='color:#800000; font-weight:bold; '>character</span><span style='color:#808030; '>(</span>len<span style='color:#808030; '>=</span><span style='color:#008c00; '>8</span><span style='color:#808030; '>)</span>   <span style='color:#808030; '>::</span> stormIdentifier<span style='color:#808030; '>,</span>rankPeriodStr
 
  <span style='color:#800000; font-weight:bold; '>call</span> codes_open_file<span style='color:#808030; '>(</span>ifile<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'../../data/bufr/tropical_cyclone.bufr'</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'r'</span><span style='color:#808030; '>)</span>
 
  <span style='color:#696969; '>! the first bufr message is loaded from file</span>
  <span style='color:#696969; '>! ibufr is the bufr id to be used in subsequent calls</span>
  <span style='color:#800000; font-weight:bold; '>call</span> codes_bufr_new_from_file<span style='color:#808030; '>(</span>ifile<span style='color:#808030; '>,</span>ibufr<span style='color:#808030; '>,</span>iret<span style='color:#808030; '>)</span>
 
  <span style='color:#800000; font-weight:bold; '>do</span> <span style='color:#800000; font-weight:bold; '>while</span> <span style='color:#808030; '>(</span>iret<span style='color:#808030; '>/</span><span style='color:#808030; '>=</span>CODES_END_OF_FILE<span style='color:#808030; '>)</span>
 
    <span style='color:#800000; font-weight:bold; '>write</span><span style='color:#808030; '>(</span><span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(A,I3,A)'</span><span style='color:#808030; '>)</span> <span style='color:#0000e6; '>'**************** MESSAGE: '</span><span style='color:#808030; '>,</span>count<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'  *****************'</span>
 
    <span style='color:#696969; '>! we need to instruct ecCodes to unpack the data values</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_set<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>"unpack"</span><span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
 
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'year'</span><span style='color:#808030; '>,</span>year<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'month'</span><span style='color:#808030; '>,</span>month<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'day'</span><span style='color:#808030; '>,</span>day<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'hour'</span><span style='color:#808030; '>,</span>hour<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'minute'</span><span style='color:#808030; '>,</span>minute<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>write</span><span style='color:#808030; '>(</span><span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(A,I0,A,I0,A,I0,A,I0,A,I0,A,I0)'</span><span style='color:#808030; '>)</span><span style='color:#0000e6; '>'Date and time: '</span><span style='color:#808030; '>,</span>day<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'.'</span><span style='color:#808030; '>,</span>month<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'.'</span><span style='color:#808030; '>,</span>year<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'  '</span><span style='color:#808030; '>,</span>hour<span style='color:#808030; '>,</span><span style='color:#0000e6; '>':'</span><span style='color:#808030; '>,</span>minute
 
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'stormIdentifier'</span><span style='color:#808030; '>,</span>stormIdentifier<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>write</span><span style='color:#808030; '>(</span><span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(A,A)'</span><span style='color:#808030; '>)</span><span style='color:#0000e6; '>'Storm identifier: '</span><span style='color:#808030; '>,</span>stormIdentifier
 
    <span style='color:#696969; '>!How many different timePeriod in the data structure?</span>
    rankPeriod<span style='color:#808030; '>=</span><span style='color:#008c00; '>0</span>
    ierr<span style='color:#808030; '>=</span><span style='color:#008c00; '>0</span>
    <span style='color:#800000; font-weight:bold; '>do</span> <span style='color:#800000; font-weight:bold; '>while</span><span style='color:#808030; '>(</span>ierr<span style='color:#808030; '>=</span><span style='color:#808030; '>=</span><span style='color:#008c00; '>0</span><span style='color:#808030; '>)</span>
      rankPeriod<span style='color:#808030; '>=</span>rankPeriod<span style='color:#808030; '>+</span><span style='color:#008c00; '>1</span>
      <span style='color:#800000; font-weight:bold; '>write</span> <span style='color:#808030; '>(</span>rankPeriodStr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(I0)'</span><span style='color:#808030; '>)</span>rankPeriod
      <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#'</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span>trim<span style='color:#808030; '>(</span>rankPeriodStr<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span><span style='color:#0000e6; '>'#timePeriod'</span><span style='color:#808030; '>,</span>period<span style='color:#808030; '>,</span>ierr<span style='color:#808030; '>)</span>
      <span style='color:#800000; font-weight:bold; '>if</span><span style='color:#808030; '>(</span>allocated<span style='color:#808030; '>(</span>period<span style='color:#808030; '>)</span><span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>period<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>enddo</span>
    <span style='color:#696969; '>!the numberOfPeriods includes the analysis (period=0)</span>
    numberOfPeriods<span style='color:#808030; '>=</span>rankPeriod
 
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'ensembleMemberNumber'</span><span style='color:#808030; '>,</span>memberNumber<span style='color:#808030; '>)</span>
 
    <span style='color:#800000; font-weight:bold; '>allocate</span><span style='color:#808030; '>(</span>latitude<span style='color:#808030; '>(</span>size<span style='color:#808030; '>(</span>memberNumber<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>numberOfPeriods<span style='color:#808030; '>)</span><span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>allocate</span><span style='color:#808030; '>(</span>longitude<span style='color:#808030; '>(</span>size<span style='color:#808030; '>(</span>memberNumber<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>numberOfPeriods<span style='color:#808030; '>)</span><span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>allocate</span><span style='color:#808030; '>(</span>pressure<span style='color:#808030; '>(</span>size<span style='color:#808030; '>(</span>memberNumber<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>numberOfPeriods<span style='color:#808030; '>)</span><span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>allocate</span><span style='color:#808030; '>(</span>latitudeWind<span style='color:#808030; '>(</span>size<span style='color:#808030; '>(</span>memberNumber<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>numberOfPeriods<span style='color:#808030; '>)</span><span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>allocate</span><span style='color:#808030; '>(</span>longitudeWind<span style='color:#808030; '>(</span>size<span style='color:#808030; '>(</span>memberNumber<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>numberOfPeriods<span style='color:#808030; '>)</span><span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>allocate</span><span style='color:#808030; '>(</span>wind<span style='color:#808030; '>(</span>size<span style='color:#808030; '>(</span>memberNumber<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>numberOfPeriods<span style='color:#808030; '>)</span><span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>allocate</span><span style='color:#808030; '>(</span>values<span style='color:#808030; '>(</span>size<span style='color:#808030; '>(</span>memberNumber<span style='color:#808030; '>)</span><span style='color:#808030; '>)</span><span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>allocate</span><span style='color:#808030; '>(</span>period<span style='color:#808030; '>(</span>numberOfPeriods<span style='color:#808030; '>)</span><span style='color:#808030; '>)</span>
    period<span style='color:#808030; '>(</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span><span style='color:#008c00; '>0</span>
 
    <span style='color:#696969; '>! Observed Storm Centre</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#1#meteorologicalAttributeSignificance'</span><span style='color:#808030; '>,</span>significance<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#1#latitude'</span><span style='color:#808030; '>,</span>latitudeCentre<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#1#longitude'</span><span style='color:#808030; '>,</span>longitudeCentre<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>significance<span style='color:#808030; '>/</span><span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
      <span style='color:#800000; font-weight:bold; '>print</span> <span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'ERROR: unexpected #1#meteorologicalAttributeSignificance'</span>
      <span style='color:#800000; font-weight:bold; '>stop</span> <span style='color:#008c00; '>1</span>
    <span style='color:#800000; font-weight:bold; '>endif</span>
    <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>latitudeCentre<span style='color:#808030; '>=</span><span style='color:#808030; '>=</span>CODES_MISSING_DOUBLE <span style='color:#808030; '>.and.</span> longitudeCentre<span style='color:#808030; '>=</span><span style='color:#808030; '>=</span>CODES_MISSING_DOUBLE<span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
      <span style='color:#800000; font-weight:bold; '>write</span><span style='color:#808030; '>(</span><span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(a)'</span><span style='color:#808030; '>)</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'Observed storm centre position missing'</span>
    <span style='color:#800000; font-weight:bold; '>else</span>
      <span style='color:#800000; font-weight:bold; '>write</span><span style='color:#808030; '>(</span><span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(A,F8.2,A,F8.2)'</span><span style='color:#808030; '>)</span><span style='color:#0000e6; '>'Observed storm centre: latitude='</span><span style='color:#808030; '>,</span>latitudeCentre<span style='color:#808030; '>,</span><span style='color:#0000e6; '>' longitude='</span><span style='color:#808030; '>,</span>longitudeCentre
    <span style='color:#800000; font-weight:bold; '>endif</span>
 
    <span style='color:#696969; '>! Location of storm in perturbed analysis</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#2#meteorologicalAttributeSignificance'</span><span style='color:#808030; '>,</span>significance<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#2#latitude'</span><span style='color:#808030; '>,</span>latitudeAnalysis<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#2#longitude'</span><span style='color:#808030; '>,</span>longitudeAnalysis<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#1#pressureReducedToMeanSeaLevel'</span><span style='color:#808030; '>,</span>pressureAnalysis<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>significance<span style='color:#808030; '>/</span><span style='color:#808030; '>=</span><span style='color:#008c00; '>4</span><span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
      <span style='color:#800000; font-weight:bold; '>print</span> <span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'ERROR: unexpected #2#meteorologicalAttributeSignificance'</span>
      <span style='color:#800000; font-weight:bold; '>stop</span> <span style='color:#008c00; '>1</span>
    <span style='color:#800000; font-weight:bold; '>endif</span>
    <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>size<span style='color:#808030; '>(</span>latitudeAnalysis<span style='color:#808030; '>)</span><span style='color:#808030; '>=</span><span style='color:#808030; '>=</span>size<span style='color:#808030; '>(</span>memberNumber<span style='color:#808030; '>)</span><span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
      latitude<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>latitudeAnalysis
      longitude<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>longitudeAnalysis
      pressure<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>pressureAnalysis
    <span style='color:#800000; font-weight:bold; '>else</span>
      latitude<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>latitudeAnalysis<span style='color:#808030; '>(</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span>
      longitude<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>longitudeAnalysis<span style='color:#808030; '>(</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span>
      pressure<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>pressureAnalysis<span style='color:#808030; '>(</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>endif</span>
 
    <span style='color:#696969; '>! Location of Maximum Wind</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#3#meteorologicalAttributeSignificance'</span><span style='color:#808030; '>,</span>significance<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#3#latitude'</span><span style='color:#808030; '>,</span>latitudeMaxWind0<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#3#longitude'</span><span style='color:#808030; '>,</span>longitudeMaxWind0<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>significance<span style='color:#808030; '>/</span><span style='color:#808030; '>=</span><span style='color:#008c00; '>3</span><span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
      <span style='color:#800000; font-weight:bold; '>print</span> <span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'ERROR: unexpected #3#meteorologicalAttributeSignificance='</span><span style='color:#808030; '>,</span>significance
      <span style='color:#800000; font-weight:bold; '>stop</span> <span style='color:#008c00; '>1</span>
    <span style='color:#800000; font-weight:bold; '>endif</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#1#windSpeedAt10M'</span><span style='color:#808030; '>,</span>windMaxWind0<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
    <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>size<span style='color:#808030; '>(</span>latitudeMaxWind0<span style='color:#808030; '>)</span><span style='color:#808030; '>=</span><span style='color:#808030; '>=</span>size<span style='color:#808030; '>(</span>memberNumber<span style='color:#808030; '>)</span><span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
      latitudeWind<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>latitudeMaxWind0
      longitudeWind<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>longitudeMaxWind0
      wind<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>windMaxWind0
    <span style='color:#800000; font-weight:bold; '>else</span>
      latitudeWind<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>latitudeMaxWind0<span style='color:#808030; '>(</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span>
      longitudeWind<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>longitudeMaxWind0<span style='color:#808030; '>(</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span>
      wind<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>windMaxWind0<span style='color:#808030; '>(</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>endif</span>
 
    rankSignificance<span style='color:#808030; '>=</span><span style='color:#008c00; '>3</span>
    rankPosition<span style='color:#808030; '>=</span><span style='color:#008c00; '>3</span>
    rankPressure<span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span>
    rankWind<span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span>
    rankPeriod<span style='color:#808030; '>=</span><span style='color:#008c00; '>0</span>
 
    <span style='color:#696969; '>!loop on all periods excluding analysis period(1)=0</span>
    <span style='color:#800000; font-weight:bold; '>do</span> i<span style='color:#808030; '>=</span><span style='color:#008c00; '>2</span><span style='color:#808030; '>,</span>numberOfPeriods
 
      rankPeriod<span style='color:#808030; '>=</span>rankPeriod<span style='color:#808030; '>+</span><span style='color:#008c00; '>1</span>
      <span style='color:#800000; font-weight:bold; '>write</span> <span style='color:#808030; '>(</span>rankPeriodStr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(I0)'</span><span style='color:#808030; '>)</span>rankPeriod
      <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#'</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span>trim<span style='color:#808030; '>(</span>rankPeriodStr<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span><span style='color:#0000e6; '>'#timePeriod'</span><span style='color:#808030; '>,</span>ivalues<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
      <span style='color:#800000; font-weight:bold; '>do</span> k<span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>,</span>size<span style='color:#808030; '>(</span>ivalues<span style='color:#808030; '>)</span>
        <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>ivalues<span style='color:#808030; '>(</span>k<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>=</span>CODES_MISSING_LONG<span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
          period<span style='color:#808030; '>(</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>ivalues<span style='color:#808030; '>(</span>k<span style='color:#808030; '>)</span>
          <span style='color:#800000; font-weight:bold; '>exit</span>
        <span style='color:#800000; font-weight:bold; '>endif</span>
      <span style='color:#800000; font-weight:bold; '>enddo</span>
      <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>ivalues<span style='color:#808030; '>)</span>
       
      <span style='color:#696969; '>!Location of the storm</span>
      rankSignificance<span style='color:#808030; '>=</span>rankSignificance<span style='color:#808030; '>+</span><span style='color:#008c00; '>1</span>
      <span style='color:#800000; font-weight:bold; '>write</span> <span style='color:#808030; '>(</span>rankSignificanceStr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(I0)'</span><span style='color:#808030; '>)</span>rankSignificance
      <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#'</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span>trim<span style='color:#808030; '>(</span>rankSignificanceStr<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span><span style='color:#0000e6; '>'#meteorologicalAttributeSignificance'</span><span style='color:#808030; '>,</span>ivalues<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
      <span style='color:#800000; font-weight:bold; '>do</span> k<span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>,</span>size<span style='color:#808030; '>(</span>ivalues<span style='color:#808030; '>)</span>
        <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>ivalues<span style='color:#808030; '>(</span>k<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>=</span>CODES_MISSING_LONG<span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
          significance<span style='color:#808030; '>=</span>ivalues<span style='color:#808030; '>(</span>k<span style='color:#808030; '>)</span>
          <span style='color:#800000; font-weight:bold; '>exit</span>
        <span style='color:#800000; font-weight:bold; '>endif</span>
      <span style='color:#800000; font-weight:bold; '>enddo</span>
      <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>ivalues<span style='color:#808030; '>)</span>
 
      rankPosition<span style='color:#808030; '>=</span>rankPosition<span style='color:#808030; '>+</span><span style='color:#008c00; '>1</span>
      <span style='color:#800000; font-weight:bold; '>write</span> <span style='color:#808030; '>(</span>rankPositionStr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(I0)'</span><span style='color:#808030; '>)</span>rankPosition
      <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#'</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span>trim<span style='color:#808030; '>(</span>rankPositionStr<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span><span style='color:#0000e6; '>'#latitude'</span><span style='color:#808030; '>,</span>values<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
      latitude<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>values
      <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#'</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span>trim<span style='color:#808030; '>(</span>rankPositionStr<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span><span style='color:#0000e6; '>'#longitude'</span><span style='color:#808030; '>,</span>values<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
      longitude<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>values
 
      <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>significance<span style='color:#808030; '>=</span><span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
        rankPressure<span style='color:#808030; '>=</span>rankPressure<span style='color:#808030; '>+</span><span style='color:#008c00; '>1</span>
        <span style='color:#800000; font-weight:bold; '>write</span> <span style='color:#808030; '>(</span>rankPressureStr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(I0)'</span><span style='color:#808030; '>)</span>rankPressure
        <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#'</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span>trim<span style='color:#808030; '>(</span>rankPressureStr<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span><span style='color:#0000e6; '>'#pressureReducedToMeanSeaLevel'</span><span style='color:#808030; '>,</span>values<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
        pressure<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>values
      <span style='color:#800000; font-weight:bold; '>else</span>
        <span style='color:#800000; font-weight:bold; '>print</span> <span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'ERROR: unexpected meteorologicalAttributeSignificance='</span><span style='color:#808030; '>,</span>significance
        <span style='color:#800000; font-weight:bold; '>stop</span> <span style='color:#008c00; '>1</span>
      <span style='color:#800000; font-weight:bold; '>endif</span>
 
      <span style='color:#696969; '>!Location of maximum wind</span>
      rankSignificance<span style='color:#808030; '>=</span>rankSignificance<span style='color:#808030; '>+</span><span style='color:#008c00; '>1</span>
      <span style='color:#800000; font-weight:bold; '>write</span> <span style='color:#808030; '>(</span>rankSignificanceStr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(I0)'</span><span style='color:#808030; '>)</span>rankSignificance
      <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#'</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span>trim<span style='color:#808030; '>(</span>rankSignificanceStr<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span><span style='color:#0000e6; '>'#meteorologicalAttributeSignificance'</span><span style='color:#808030; '>,</span>ivalues<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
      <span style='color:#800000; font-weight:bold; '>do</span> k<span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>,</span>size<span style='color:#808030; '>(</span>ivalues<span style='color:#808030; '>)</span>
        <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>ivalues<span style='color:#808030; '>(</span>k<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>=</span>CODES_MISSING_LONG<span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
          significance<span style='color:#808030; '>=</span>ivalues<span style='color:#808030; '>(</span>k<span style='color:#808030; '>)</span>
          <span style='color:#800000; font-weight:bold; '>exit</span>
        <span style='color:#800000; font-weight:bold; '>endif</span>
      <span style='color:#800000; font-weight:bold; '>enddo</span>
      <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>ivalues<span style='color:#808030; '>)</span>
 
      rankPosition<span style='color:#808030; '>=</span>rankPosition<span style='color:#808030; '>+</span><span style='color:#008c00; '>1</span>
      <span style='color:#800000; font-weight:bold; '>write</span> <span style='color:#808030; '>(</span>rankPositionStr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(I0)'</span><span style='color:#808030; '>)</span>rankPosition
      <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#'</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span>trim<span style='color:#808030; '>(</span>rankPositionStr<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span><span style='color:#0000e6; '>'#latitude'</span><span style='color:#808030; '>,</span>values<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
      latitudeWind<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>values
      <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#'</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span>trim<span style='color:#808030; '>(</span>rankPositionStr<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span><span style='color:#0000e6; '>'#longitude'</span><span style='color:#808030; '>,</span>values<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
      longitudeWind<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>values
 
      <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>significance<span style='color:#808030; '>=</span><span style='color:#808030; '>=</span><span style='color:#008c00; '>3</span><span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
        rankWind<span style='color:#808030; '>=</span>rankWind<span style='color:#808030; '>+</span><span style='color:#008c00; '>1</span>
        <span style='color:#800000; font-weight:bold; '>write</span> <span style='color:#808030; '>(</span>rankWindStr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(I0)'</span><span style='color:#808030; '>)</span>rankWind
        <span style='color:#800000; font-weight:bold; '>call</span> codes_get<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>,</span><span style='color:#0000e6; '>'#'</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span>trim<span style='color:#808030; '>(</span>rankWindStr<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>/</span><span style='color:#0000e6; '>'#windSpeedAt10M'</span><span style='color:#808030; '>,</span>values<span style='color:#808030; '>)</span><span style='color:#808030; '>;</span>
        wind<span style='color:#808030; '>(</span>:<span style='color:#808030; '>,</span>i<span style='color:#808030; '>)</span><span style='color:#808030; '>=</span>values
      <span style='color:#800000; font-weight:bold; '>else</span>
        <span style='color:#800000; font-weight:bold; '>print</span> <span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'ERROR: unexpected meteorologicalAttributeSignificance=,'</span><span style='color:#808030; '>,</span>significance
        <span style='color:#800000; font-weight:bold; '>stop</span> <span style='color:#008c00; '>1</span>
      <span style='color:#800000; font-weight:bold; '>endif</span>
 
    <span style='color:#800000; font-weight:bold; '>enddo</span>
 
    <span style='color:#696969; '>! ---- Print the values --------------------------------</span>
    <span style='color:#800000; font-weight:bold; '>do</span> i<span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>,</span>size<span style='color:#808030; '>(</span>memberNumber<span style='color:#808030; '>)</span>
      skipMember<span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span>
      <span style='color:#800000; font-weight:bold; '>do</span> j<span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>,</span>size<span style='color:#808030; '>(</span>period<span style='color:#808030; '>)</span>
        <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>latitude<span style='color:#808030; '>(</span>i<span style='color:#808030; '>,</span>j<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>=</span>CODES_MISSING_DOUBLE <span style='color:#808030; '>.OR.</span> latitudeWind<span style='color:#808030; '>(</span>i<span style='color:#808030; '>,</span>j<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>=</span>CODES_MISSING_DOUBLE<span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
          skipMember<span style='color:#808030; '>=</span><span style='color:#008c00; '>0</span>
          <span style='color:#800000; font-weight:bold; '>exit</span>
        <span style='color:#800000; font-weight:bold; '>endif</span>
      <span style='color:#800000; font-weight:bold; '>enddo</span>
      <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>skipMember<span style='color:#808030; '>/</span><span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
 
        <span style='color:#800000; font-weight:bold; '>write</span><span style='color:#808030; '>(</span><span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'(A,I3)'</span><span style='color:#808030; '>)</span> <span style='color:#0000e6; '>'== Member '</span><span style='color:#808030; '>,</span>memberNumber<span style='color:#808030; '>(</span>i<span style='color:#808030; '>)</span>
        <span style='color:#800000; font-weight:bold; '>write</span><span style='color:#808030; '>(</span><span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#808030; '>*</span><span style='color:#808030; '>)</span> <span style='color:#0000e6; '>'step  latitude   longitude   pressure    latitude   longitude   wind'</span>
        <span style='color:#800000; font-weight:bold; '>do</span> j<span style='color:#808030; '>=</span><span style='color:#008c00; '>1</span><span style='color:#808030; '>,</span>size<span style='color:#808030; '>(</span>period<span style='color:#808030; '>)</span>
          <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>latitude<span style='color:#808030; '>(</span>i<span style='color:#808030; '>,</span>j<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>=</span>CODES_MISSING_DOUBLE <span style='color:#808030; '>.OR.</span> latitudeWind<span style='color:#808030; '>(</span>i<span style='color:#808030; '>,</span>j<span style='color:#808030; '>)</span><span style='color:#808030; '>/</span><span style='color:#808030; '>=</span>CODES_MISSING_DOUBLE<span style='color:#808030; '>)</span> <span style='color:#800000; font-weight:bold; '>then</span>
          <span style='color:#800000; font-weight:bold; '>write</span><span style='color:#808030; '>(</span><span style='color:#808030; '>*</span><span style='color:#808030; '>,</span><span style='color:#0000e6; '>'( I4,2X,F8.2,4X,F8.2,3X,F9.1,2X,F8.2,4X,F8.2,2X,F8.2)'</span><span style='color:#808030; '>)</span> period<span style='color:#808030; '>(</span>j<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>latitude<span style='color:#808030; '>(</span>i<span style='color:#808030; '>,</span>j<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>longitude<span style='color:#808030; '>(</span>i<span style='color:#808030; '>,</span>j<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>pressure<span style='color:#808030; '>(</span>i<span style='color:#808030; '>,</span>j<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>&amp;
          &amp;latitudeWind<span style='color:#808030; '>(</span>i<span style='color:#808030; '>,</span>j<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>longitudeWind<span style='color:#808030; '>(</span>i<span style='color:#808030; '>,</span>j<span style='color:#808030; '>)</span><span style='color:#808030; '>,</span>wind<span style='color:#808030; '>(</span>i<span style='color:#808030; '>,</span>j<span style='color:#808030; '>)</span>
          <span style='color:#800000; font-weight:bold; '>endif</span>
        <span style='color:#800000; font-weight:bold; '>enddo</span>
 
      <span style='color:#800000; font-weight:bold; '>endif</span>
    <span style='color:#800000; font-weight:bold; '>enddo</span>
 
    <span style='color:#696969; '>! free arrays is very important</span>
    <span style='color:#696969; '>! because the behaviour of the codes_get functions is as follows</span>
    <span style='color:#696969; '>! if the array is not allocated then allocate</span>
    <span style='color:#696969; '>! if the array is already allocated only copy the values</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>values<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>latitude<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>longitude<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>pressure<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>latitudeWind<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>longitudeWind<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>wind<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>period<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>latitudeAnalysis<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>longitudeAnalysis<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>pressureAnalysis<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>memberNumber<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>latitudeMaxWind0<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>longitudeMaxWind0<span style='color:#808030; '>)</span>
    <span style='color:#800000; font-weight:bold; '>deallocate</span><span style='color:#808030; '>(</span>windMaxWind0<span style='color:#808030; '>)</span>
 
    <span style='color:#696969; '>! release the bufr message</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_release<span style='color:#808030; '>(</span>ibufr<span style='color:#808030; '>)</span>
 
    <span style='color:#696969; '>! load the next bufr message</span>
    <span style='color:#800000; font-weight:bold; '>call</span> codes_bufr_new_from_file<span style='color:#808030; '>(</span>ifile<span style='color:#808030; '>,</span>ibufr<span style='color:#808030; '>,</span>iret<span style='color:#808030; '>)</span>
 
    count<span style='color:#808030; '>=</span>count<span style='color:#808030; '>+</span><span style='color:#008c00; '>1</span>
 
  <span style='color:#800000; font-weight:bold; '>end</span> <span style='color:#800000; font-weight:bold; '>do</span> 
 
  <span style='color:#696969; '>! close file </span>
  <span style='color:#800000; font-weight:bold; '>call</span> codes_close_file<span style='color:#808030; '>(</span>ifile<span style='color:#808030; '>)</span>
  
<span style='color:#800000; font-weight:bold; '>end</span> <span style='color:#800000; font-weight:bold; '>program</span> bufr_read_tropical_cyclone
</pre>