text:
	SUBROUTINE  NAMINP  ( snbufr, snoutf, sfoutf,
     +			      snprmf, sfprmf, timstn, iret )
C************************************************************************
C* NAMINP								*
C*									*
C* This subroutine gets the input variables for NAMSND.			*
C*									*
C* NAMINP  ( SNBUFR, SNOUTF, SFOUTF, SNPRMF, SFPRMF, TIMSTN, IRET )	*
C*                                                                      *
C* Input parameters:                                                    *
C*      SNBUFR		CHAR*		Model sounding file name        *
C*      SNOUTF		CHAR*		Output sounding file name       *
C*	SFOUTF		CHAR*		Output surface file name        *
C*	SNPRMF		CHAR*		Sounding parm packing file name *
C*      SFPRMF 		CHAR*		Surface parm packing file name  *
C*	TIMSTN		CHAR*		Maximum times / stations        *
C*	IRET		INTEGER		Return code                     *
C*					  0 = normal return             *
C*					 -2 = input vbl not received    *
C**									*
C* Log:									*
C* K. F. Brill/NMC	12/93						*
C* D. Kidwell/NCEP	11/98	Corrected prologue, SNEFIL -> SNBUFR    *
C* D. Kidwell/NCEP	12/98	SNMINP -> NAMINP, SNMODL -> NAMSND      *
C************************************************************************
	CHARACTER*(*)	snbufr, snoutf, sfoutf, snprmf, sfprmf, timstn
C------------------------------------------------------------------------
C*	Get the input variables.
C
	CALL IP_STR  ( 'SNBUFR', snbufr, ier1 )
	CALL IP_STR  ( 'SNOUTF', snoutf, ier2 )
	CALL IP_STR  ( 'SFOUTF', sfoutf, ier3 )
	CALL IP_STR  ( 'SNPRMF', snprmf, ier4 )
	CALL IP_STR  ( 'SFPRMF', sfprmf, ier5 )
	CALL IP_STR  ( 'TIMSTN', timstn, ier6 )
C
	iret = ier1 + ier2 + ier3 + ier4 + ier5 + ier6
	IF  ( iret .ne. 0 )  iret = -2
C*
	RETURN
	END

max_stars_repo_name: oxelson/gempak

max_issues_repo_name: oxelson/gempak

max_forks_repo_name: oxelson/gempak


text:
!===============================================================================
!> Initializiation and update for the Truelove grav. collapse experiment
!===============================================================================
MODULE experiment_mod
  USE io_mod
  USE trace_mod
  USE kinds_mod
  USE bits_mod
  USE solver_mod
  USE pboundary_mod
  implicit none
  private

  type, public, extends(solver_t):: experiment_t
  contains
    procedure :: init => init_experiment
    procedure :: update => update_experiment
  end type

CONTAINS

!===============================================================================
!> Initialise this experiment.  The experiment can be run both as periodic and
!> non-periodic, depending on the setting 'fixedbcs' in pboundary_mod.f90
!===============================================================================
SUBROUTINE init_experiment (self)
  class(experiment_t) :: self
  !----------------------------------------------------------------------------
  if (self%mem_allocated) return
  call trace%begin('experiment_t%init')
  self%nv = 5
  self%periodic = .true.                ! possibly changed in pboundary_t%init
  self%mhd = .false.
  call self%solver_t%init()
  call pboundaries%init(self)
  call trace%end()
END SUBROUTINE init_experiment

!===============================================================================
!> Update procedure for this experiment. In this case the call falls through to
!> mhd_t%update, which organizes the preliminary and final selfgravity solutions
!===============================================================================
SUBROUTINE update_experiment (self)
  class(experiment_t):: self
  integer:: m
  !----------------------------------------------------------------------------
  call trace%begin('experiment_t%update')
  call pboundaries%conditions(self, self%it)
  call self%solver_t%update()
  call pboundaries%conditions(self, self%new)
  call trace%end()
END SUBROUTINE update_experiment

END MODULE experiment_mod

max_stars_repo_name: applejwjcat/dispatch

max_issues_repo_name: applejwjcat/dispatch

max_forks_repo_name: applejwjcat/dispatch