RANDOM_NUMBERS_MIX Module

$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

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

Contents


Derived Types

type, public ::  RANDOMNUMBERSTREAM


Subroutines

public subroutine INITIALIZE_RANDOM_NUMBERS(KSEED, YD_STREAM)

Arguments

Type IntentOptional Attributes Name
integer(kind=JPIM), intent(in) :: KSEED
type(RANDOMNUMBERSTREAM), intent(inout) :: YD_STREAM

public subroutine UNIFORM_DISTRIBUTION(PX, YD_STREAM)

Arguments

Type IntentOptional Attributes Name
real(kind=JPRB), intent(out), DIMENSION(:) :: PX
type(RANDOMNUMBERSTREAM), intent(inout) :: YD_STREAM

public subroutine GAUSSIAN_DISTRIBUTION(PX, YD_STREAM)

Arguments

Type IntentOptional Attributes Name
real(kind=JPRB), intent(out) :: PX(:)
type(RANDOMNUMBERSTREAM), intent(inout) :: YD_STREAM

public subroutine WR_RANGEN_STATE(KUNIT, YD_STREAM)

Arguments

Type IntentOptional Attributes Name
integer(kind=JPIM), intent(in) :: KUNIT
type(RANDOMNUMBERSTREAM), intent(in) :: YD_STREAM