Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 23 additions & 38 deletions sorc/ncep_post.fd/SCLFLD.f
Original file line number Diff line number Diff line change
@@ -1,42 +1,27 @@
!> @file
Comment thread
kayeekayee marked this conversation as resolved.
!
!> SUBPROGRAM: SCLFLD SCALE ARRAY ELEMENT BY CONSTANT
!! PRGRMMR: TREADON ORG: W/NP2 DATE: 92-09-13
!!
!! ABSTRACT:
!! THIS ROUTINE MULTIPLES (SCALES) THE FIRST IMO*JMO
!! ELEMENTS OF ARRAY FLD BY THE REAL SCALAR SCALE.
!! ARRAY ELEMENTS WHICH EQUAL A SPECIAL VALUE WILL
!! NOT BE SCALED BY SCALE. THEY WILL BE LEFT AS IS.
!! THE SPECIAL VALUE, SPVAL, IS PASSED THROUGH COMMON
!! BLOCK OPTIONS. IT IS SET IN INCLUDE FILE OPTIONS.
!!
!! PROGRAM HISTORY LOG:
!! 92-09-13 RUSS TREADON
!! 00-01-04 JIM TUCCILLO
!!
!! USAGE: CALL SCLFLD(FLD,SCALE,IMO,JMO)
!! INPUT ARGUMENT LIST:
!! FLD - ARRAY WHOSE ELEMENTS ARE TO BE SCALED.
!! SCALE - CONSTANT BY WHICH TO SCALE ELEMENTS OF FLD.
!! IMO,JMO - DIMENSION OF ARRAY FLD.
!!
!! OUTPUT ARGUMENT LIST:
!! FLD - ARRAY WHOSE ELEMENTS HAVE BEEN SCALED BY SCALE.
!!
!! OUTPUT FILES:
!! NONE
!!
!! SUBPROGRAMS CALLED:
!! UTILITIES:
!! NONE
!! LIBRARY:
!! COMMON - OPTIONS
!!
!! ATTRIBUTES:
!! LANGUAGE: FORTRAN
!! MACHINE : CRAY C-90
!!
!> @brief sclfld() scale array element by constant.
!>
!> @author Russ Treadon W/NP2 @date 1992-09-13

!> This routine multiples (scales) the first IMO*JMO
!> elements of array fld by the real scalar scale.
!> Array elements which equal a special value will
!> not be scaled by scale. They will be left as is.
!> The special value, spval, is passed through common
!> block options. It is set in include file options.
!>
!> @param[in] FLD Array whose elements are to be scaled.
!> @param[in] SCALE Constant by which to scale elements of fld.
!> @param[in] IMO,JMO Dimension of array fld.
!> @param[out] FLD Array whose elements have been scaled by scale.
!>
!> ### Program History Log
!> Date | Programmer | Comments
!> -----|------------|---------
!> 1992-09-13 | Russ Treadon | Initial
!> 2000-01-04 | Jim Tuccillo | MPI Version
!>
!> @author Russ Treadon W/NP2 @date 1992-09-13
SUBROUTINE SCLFLD(FLD,SCALE,IMO,JMO)
!

Expand Down
40 changes: 17 additions & 23 deletions sorc/ncep_post.fd/SELECT_CHANNELS.f
Original file line number Diff line number Diff line change
@@ -1,27 +1,21 @@
!> @file
!
!> SELECT_CHANNEL
!! @author HWRF @date 20120927
!!
!! Verify channel information and print error to output file if
!! detected, finally excuting a program STOP - which may cause
!! a hang condifition if run on multiple processors.
!! If data passed validation the channel indices passed in via
!! the "channels" array are stored in the structure defining
!! the channel object
!!
!! @param[inout] channelinfo - structure defining channel object
!! @param[in] nchannels - number of channels for sensor
!! @param[in] channels
!!
!! OUTPUT FILES:
!! NONE
!!
!! SUBPROGRAMS CALLED:
!! UTILITIES: NONE
!!
!! LIBRARY: NONE
!!
!> @brief select_channels() verifies channel information.
!>
!> @author HWRF @date 2012-09-27

!> This subroutine verifies channel information and print error to output file if
!> detected, finally excuting a program STOP - which may cause
!> a hang condifition if run on multiple processors.
!>
!> If data passed validation the channel indices passed in via
!> the "channels" array are stored in the structure defining
!> the channel object.
!>
!> @param[inout] channelinfo structure defining channel object.
!> @param[in] nchannels number of channels for sensor.
!> @param[in] channels.
!>
!> @author HWRF @date 2012-09-27
subroutine SELECT_CHANNELS(channelinfo,nchannels,channels)

use crtm_channelinfo_define, only: crtm_channelinfo_type
Expand Down
70 changes: 18 additions & 52 deletions sorc/ncep_post.fd/SETUP_SERVERS.f
Original file line number Diff line number Diff line change
@@ -1,56 +1,22 @@
!> @file
! . . .
!> SUBROUTINE: SETUP_SERVERS SETUP I/O SERVERS
!! PRGRMMR: TUCCILLO ORG: IBM DATE: 00-03-20
!!
!! ABSTRACT: SETUP I/O SERVERS
!!
!! PROGRAM HISTORY LOG:
!! 00-03-11 TUCCILLO - ORIGINATOR
!!
!! USAGE: CALL SETUP_SERVERS(MYPE,
!! * NPES,
!! * INUMQ,
!! * MPI_COMM_COMP,
!! * MPI_COMM_INTER)
!!
!! INPUT ARGUMENT LIST:
!! NONE
!!
!! OUTPUT ARGUMENT LIST:
!! MYPE - MY RANK
!! INUMQ - ARRAY THAT HOLDS THE NUMBER OF SERVERS IN EACH GROUP
!! NPES - NUMBER OF MPI TASKS FOR POSTING
!! MPI_COMM_COMP - THE NEW INTRACOMMUNICATOR FOR ALL TASKS
!! MPI_COMM_INTER - THE INTERCOMMUNICATOR FOR THE I/O SERVERS
!!
!! INPUT FILES: NONE
!!
!! OUTPUT FILES:
!!
!! SUBPROGRAMS CALLED:
!! UNIQUE:
!! PARA_RANGE
!! MPI_INIT
!! MPI_COMM_RANK
!! MPI_COMM_SIZE
!! MPI_COMM_DUP
!! MPI_COMM_SPLIT
!! MPI_COMM_GROUP
!! MPI_GROUP_EXCL
!! MPI_COMM_CREATE
!! MPI_GROUP_FREE
!! MPI_INTERCOMM_CREATE
!! MPI_BARRIER
!!
!! EXIT STATES:
!! COND = 0 - NORMAL EXIT
!!
!! ATTRIBUTES:
!! LANGUAGE: FORTRAN 90
!! MACHINE : IBM SP
!!
!!
!> @brief setup_servers() setups I/O servers.
!>
!> @author Jim Tuccillo IBM @date 2000-03-20

!> This subroutine is to setup I/O servers.
!>
!> @param[out] MYPE My rank.
!> @param[out] INUMQ Array that holds the number of servers in each group.
!> @param[out] NPES Number of MPI tasks for posting.
!> @param[out] MPI_COMM_COMP The new intracommunicator for all tasks.
!> @param[out] MPI_COMM_INTER The intercommunicator for the I/O servers.
!>
!> ### Program history log:
!> Date | Programmer | Comments
!> -----|------------|---------
!> 2000-03-20 | Jim Tuccillo | Initial
!>
!> @author Jim Tuccillo IBM @date 2000-03-20
SUBROUTINE SETUP_SERVERS(MYPE, &
& NPES, &
& INUMQ, &
Expand Down
58 changes: 20 additions & 38 deletions sorc/ncep_post.fd/SET_OUTFLDS.f
Original file line number Diff line number Diff line change
@@ -1,43 +1,25 @@
!> @file
! . . .
!> SUBPROGRAM: READCNTRLgrb2_xml READS POST xml CONTROL FILE
!! PRGRMMR: J. WANG ORG: NCEP/EMC DATE: 12-01-27
!!
!! ABSTRACT:
!! THIS ROUTINE READS THE CONTROL FILE IN XML FORMAT SPECIFYING
!! FIELD(S) TO POST, AND SAVE ALL THE FIELD INFORMATION IN
!! A DATATYPE array PSET
!!
!! PROGRAM HISTORY LOG:
!! 01_27_2012 Jun Wang - INITIAL CODE
!! 03_10_2015 Lin Gan - Replace XML file with flat file implementation
!! 10_30_2019 Bo CUI - REMOVE "GOTO" STATEMENT
!> @ brief set_outflds() reads post xml control file.
!>
!> @author J. Wang NCEP/EMC @date 2012-01-27

!!
!! USAGE: CALL READCNTRL_XML(kth,kpv,pv,th)
!! INPUT ARGUMENT LIST:
!! KTH
!! TH
!! KPV
!! PV
!!
!! OUTPUT ARGUMENT LIST:
!! NONE -
!!
!! OUTPUT FILES:
!! NONE
!!
!! SUBPROGRAMS CALLED:
!! UTILITIES:
!!
!! LIBRARY:
!! COMMON - RQSTFLDGRB2
!! CTLBLK
!!
!! ATTRIBUTES:
!! LANGUAGE: FORTRAN
!! MACHINE : IBM
!!
!> This routine reads the control file in xml format specifying
!> field(s) to post, and save all the field information in
!> a datatype array PSET.
!>
!> @param[in] KTH
!> @param[in] TH
!> @param[in] KPV
!> @param[in] PV
!>
!> ### Program History Log
!> Date | Programmer | Comments
!> -----|------------|---------
!> 2012-01-27 | Jun Wang | Initial
!> 2015-03-10 | Lin Gan | Replace XML file with flat file implementation
!> 2019-10-30 | Bo Cui | Removw "GOTO" Statement
!>
!> @author J. Wang NCEP/EMC @date 2012-01-27
SUBROUTINE SET_OUTFLDS(kth,th,kpv,pv)
!

Expand Down
137 changes: 60 additions & 77 deletions sorc/ncep_post.fd/SMOOTH.f
Original file line number Diff line number Diff line change
@@ -1,42 +1,34 @@
!> @file
! . . . .
!> SUBPROGRAM: SMOOTH SMOOTH A METEOROLOGICAL FIELD
!! PRGMMR: STAN BENJAMIN ORG: FSL/PROFS DATE: 90-06-15
!!
!! ABSTRACT: SHAPIRO SMOOTHER.
!!
!! PROGRAM HISTORY LOG:
!! 85-12-09 S. BENJAMIN ORIGINAL VERSION
!! 14-03-03 S. Moorthi Threading and slight cleanup
!!
!! USAGE: CALL SMOOTH (FIELD,HOLD,IX,IY,SMTH)
!! INPUT ARGUMENT LIST:
!! FIELD - REAL ARRAY FIELD(IX,IY)
!! METEOROLOGICAL FIELD
!! HOLD - REAL ARRAY HOLD(IX,2)
!! HOLDING THE VALUE FOR FIELD
!! IX - INTEGER X COORDINATES OF FIELD
!! IY - INTEGER Y COORDINATES OF FIELD
!! SMTH - REAL
!!
!! OUTPUT ARGUMENT LIST:
!! FIELD - REAL ARRAY FIELD(IX,IY)
!! SMOOTHED METEOROLOGICAL FIELD
!!
!! REMARKS: REFERENCE: SHAPIRO, 1970: "SMOOTHING, FILTERING, AND
!! BOUNDARY EFFECTS", REV. GEOPHYS. SP. PHYS., 359-387.
!! THIS FILTER IS OF THE TYPE
!! Z(I) = (1-S)Z(I) + S(Z(I+1)+Z(I-1))/2
!! FOR A FILTER WHICH IS SUPPOSED TO DAMP 2DX WAVES COMPLETELY
!! BUT LEAVE 4DX AND LONGER WITH LITTLE DAMPING,
!! IT SHOULD BE RUN WITH 2 PASSES USING SMTH (OR S) OF 0.5
!! AND -0.5.
!!
!! ATTRIBUTES:
!! LANGUAGE: FORTRAN-77 + EXTENSIONS
!! MACHINE: NAS-9000, VAX, UNIX
!!

!> @brief smooth() smooths a meteorological field using Shapiro smoother.
!>
!> @author Stan Benjamin FSL/PROFS @date 1990-06-15

!>
!> @note Reference: Shapiro, 1970: "Smoothing, filtering, and
!> boundary effects", REV. GEOPHYS. SP. PHYS., 359-387.
!> This filter is of the type
!> @code
!> Z(I) = (1-S)Z(I) + S(Z(I+1)+Z(I-1))/2
!> @endcode
!> For a filter which is supposed to damp 2DX waves completely
!> but leave 4DX and longer with little damping,
!> it should be run with 2 passes using SMTH (or s) of 0.5
!> and -0.5.
!>
!> @param[in] FIELD Real array FIELD(IX,IY) Meteorological field.
!> @param[in] HOLD Real array HOLD(IX,2) Holding the value for field.
!> @param[in] IX Integer X Coordinates of field.
!> @param[in] IY Integer Y Coordinates of field.
!> @param[in] SMTH Real.
!> @param[out] FIELD Real array FIELD(IX,IY) Smoothed meteorological field.
!>
!> ### Program history log:
!> Date | Programmer | Comments
!> -----|------------|---------
!> 1990-06-15 | S. Benjamin | Initial
!> 2014-03-03 | S. Moorthi | Threading and slight cleanup
!>
!> @author Stan Benjamin FSL/PROFS @date 1990-06-15
!**********************************************************************
!**********************************************************************

Expand Down Expand Up @@ -99,45 +91,36 @@ SUBROUTINE SMOOTH (FIELD,HOLD,IX,IY,SMTH)

RETURN
END
!$$$ SUBPROGRAM DOCUMENTATION BLOCK
! . . . .
! SUBPROGRAM: SMOOTHC SMOOTH A METEOROLOGICAL FIELD
! PRGMMR: STAN BENJAMIN ORG: FSL/PROFS DATE: 90-06-15
!
! ABSTRACT: SHAPIRO SMOOTHER.
!
! PROGRAM HISTORY LOG:
! 85-12-09 S. BENJAMIN ORIGINAL VERSION os SMOOTH
! 14-03-03 S. Moorthi Threading and slight cleanup
! 16-08-08 S. Moorthi modify for cyclic domain
!
! USAGE: CALL SMOOTH (FIELD,HOLD,IX,IY,SMTH)
! INPUT ARGUMENT LIST:
! FIELD - REAL ARRAY FIELD(IX,IY)
! METEOROLOGICAL FIELD
! HOLD - REAL ARRAY HOLD(IX,2)
! HOLDING THE VALUE FOR FIELD
! IX - INTEGER X COORDINATES OF FIELD
! IY - INTEGER Y COORDINATES OF FIELD
! SMTH - REAL
!
! OUTPUT ARGUMENT LIST:
! FIELD - REAL ARRAY FIELD(IX,IY)
! SMOOTHED METEOROLOGICAL FIELD
!
! REMARKS: REFERENCE: SHAPIRO, 1970: "SMOOTHING, FILTERING, AND
! BOUNDARY EFFECTS", REV. GEOPHYS. SP. PHYS., 359-387.
! THIS FILTER IS OF THE TYPE
! Z(I) = (1-S)Z(I) + S(Z(I+1)+Z(I-1))/2
! FOR A FILTER WHICH IS SUPPOSED TO DAMP 2DX WAVES COMPLETELY
! BUT LEAVE 4DX AND LONGER WITH LITTLE DAMPING,
! IT SHOULD BE RUN WITH 2 PASSES USING SMTH (OR S) OF 0.5
! AND -0.5.
!
! ATTRIBUTES:
! LANGUAGE: FORTRAN-77 + EXTENSIONS
! MACHINE: NAS-9000, VAX, UNIX
!$$$
!> @brief smoothc() smooths a meteorological field using Shapiro smoother.
!>
!> @author Stan Benjamin FSL/PROFS @date 1990-06-15

!> @note Reference: Shapiro, 1970: "Smoothing, filtering, and
!> boundary effects", REV. GEOPHYS. SP. PHYS., 359-387.
!> This filter is of the type
!> @code
!> Z(I) = (1-S)Z(I) + S(Z(I+1)+Z(I-1))/2
!> @endcode
!> For a filter which is supposed to damp 2DX waves completely
!> but leave 4DX and longer with little damping,
!> it should be run with 2 passes using SMTH (or s) of 0.5
!> and -0.5.
!>
!> @param[in] FIELD Real array FIELD(IX,IY) Meteorological field.
!> @param[in] HOLD Real array HOLD(IX,2) Holding the value for field.
!> @param[in] IX Integer X Coordinates of field.
!> @param[in] IY Integer Y Coordinates of field.
!> @param[in] SMTH Real.
!> @param[out] FIELD Real array FIELD(IX,IY) Smoothed meteorological field.
!>
!> ### Program history log:
!> Date | Programmer | Comments
!> -----|------------|---------
!> 1985-12-09 | S. Benjamin | Original version os smooth
!> 2014-03-03 | S. Moorthi | Threading and slight cleanup
!> 2016-08-08 | S. Moorthi | Modify for cyclic domain
!>
!> @author Stan Benjamin FSL/PROFS @date 1990-06-15
!**********************************************************************
!**********************************************************************

Expand Down
Loading