$SUBROUTINE RANDOM_NUMBER_RESTARTFILE( CDFNAME, CDACTION,YD_STREAM )
$!--------------------------------------------------------------------------------
$!
$! read (cdaction='r') or write (cdaction='w') restart file
$! for random number generator
$!
$!--------------------------------------------------------------------------------
$CHARACTER (LEN=), INTENT(IN) :: CDFNAME
$CHARACTER (LEN=1 ), INTENT(IN) :: CDACTION
$TYPE(RANDOMNUMBERSTREAM), INTENT(INOUT) :: YD_STREAM
$
$INTEGER(KIND=JPIM) :: IUNIT, IRET, IBYTES_IN_JPIM
$
$REAL(KIND=JPRB) :: ZHOOK_HANDLE
$IF (LHOOK) CALL DR_HOOK('RANDOM_NUMBERS_MIX:RANDOM_NUMBER_RESTARTFILE',0,ZHOOK_HANDLE)
$IBYTES_IN_JPIM= CEILING(REAL(BIT_SIZE(YD_STREAM%IUSED))/8.0_JPRB - TINY(1.0_JPRB))
$
$IF (IBYTES_IN_JPIM /= 4) THEN
$ CALL ABOR1('random_number_restartfile: number of bytes for JPIM is not 4 ')
$ENDIF
$
$CALL PBOPEN(IUNIT, CDFNAME, CDACTION, IRET)
$IF (IRET /= 0) THEN
$ CALL ABOR1('random_number_restartfile: PBOPEN FAILED opening '//CDFNAME)
$ENDIF
$
$
$IF (CDACTION=='r' .OR. CDACTION=='R') THEN
$ CALL PBREAD(IUNIT, YD_STREAM%IX, IBYTES_IN_JPIM JPQ, IRET)
$ IF (IRET < 0) THEN
$ CALL ABOR1('random_number_restartfile: PBREAD could not read ix from '//CDFNAME)
$ ENDIF
$ CALL PBREAD(IUNIT, YD_STREAM%IUSED, IBYTES_IN_JPIM , IRET)
$ IF (IRET < 0) THEN
$ CALL ABOR1('random_number_restartfile: PBREAD could not read iused from '//CDFNAME)
$ ENDIF
$
$! l_initialized = .TRUE.
$ YD_STREAM%INITTEST = INITVALUE
$ YD_STREAM%ZRM=1.0_JPRB/REAL(JPM,JPRB)
$ELSEIF(CDACTION=='w' .OR. CDACTION=='W') THEN
$ CALL PBWRITE(IUNIT, YD_STREAM%IX, IBYTES_IN_JPIM*JPQ, IRET)
$ IF (IRET < 0) THEN
$ CALL ABOR1('random_number_restartfile: PBWRITE could not write ix on '//CDFNAME)
$ ENDIF
$ CALL PBWRITE(IUNIT, YD_STREAM%IUSED, IBYTES_IN_JPIM , IRET)
$ IF (IRET < 0) THEN
$ CALL ABOR1('random_number_restartfile: PBWRITE could not write iused on '//CDFNAME)
$ ENDIF
$
$ELSE
$ CALL ABOR1 ('random_number_restartfile: cdaction = '//CDACTION//' is undefined.')
$ENDIF
$
$CALL PBCLOSE(IUNIT, IRET)
$IF (IRET /= 0) THEN
$ CALL ABOR1('random_number_restartfile: PBCLOSE FAILED closing '//CDFNAME)
$ENDIF
$
$IF (LHOOK) CALL DR_HOOK('RANDOM_NUMBERS_MIX:RANDOM_NUMBER_RESTARTFILE',1,ZHOOK_HANDLE)
$END SUBROUTINE RANDOM_NUMBER_RESTARTFILE
Uses
module~~random_numbers_mix~~UsesGraph
module~random_numbers_mix
RANDOM_NUMBERS_MIX
module~parkind1~2
PARKIND1
module~random_numbers_mix->module~parkind1~2
module~yomhook
yomhook
module~random_numbers_mix->module~yomhook
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Used by
module~~random_numbers_mix~~UsedByGraph
module~random_numbers_mix
RANDOM_NUMBERS_MIX
proc~cloud_generator
cloud_generator
proc~cloud_generator->module~random_numbers_mix
proc~cloud_generator~2
cloud_generator
proc~cloud_generator~2->module~random_numbers_mix
proc~generate_column_exp_exp~2
generate_column_exp_exp
proc~generate_column_exp_exp~2->module~random_numbers_mix
proc~generate_column_exp_exp
generate_column_exp_exp
proc~generate_column_exp_exp->module~random_numbers_mix
proc~generate_column_exp_ran
generate_column_exp_ran
proc~generate_column_exp_ran->module~random_numbers_mix
proc~generate_column_exp_ran~2
generate_column_exp_ran
proc~generate_column_exp_ran~2->module~random_numbers_mix
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Subroutines
Arguments
Type
Intent Optional Attributes
Name
integer(kind=JPIM),
intent(in)
::
KSEED
type(RANDOMNUMBERSTREAM ),
intent(inout)
::
YD_STREAM
Arguments
Type
Intent Optional Attributes
Name
real(kind=JPRB),
intent(out),
DIMENSION(:)
::
PX
type(RANDOMNUMBERSTREAM ),
intent(inout)
::
YD_STREAM
Arguments
Type
Intent Optional Attributes
Name
real(kind=JPRB),
intent(out)
::
PX (:)
type(RANDOMNUMBERSTREAM ),
intent(inout)
::
YD_STREAM
Arguments
Type
Intent Optional Attributes
Name
integer(kind=JPIM),
intent(in)
::
KUNIT
type(RANDOMNUMBERSTREAM ),
intent(in)
::
YD_STREAM