read_namelists_mod_cbl.F90 Source File


Source Code

MODULE read_namelists_mod_cbl
  
IMPLICIT NONE

CHARACTER(LEN=*), PARAMETER, PRIVATE :: ModuleName='READ_NAMELISTS_MOD_CBL'

CONTAINS

SUBROUTINE read_cable_namelists( unitnumber )

! Description:
!  Organize reading ALL cable namelists

USE cable_common_module, ONLY: cable_runtime
USE cable_namelist_util, ONLY: cable_namelist
    
IMPLICIT NONE

! Subroutine arguments
INTEGER, INTENT(IN) :: unitnumber

CHARACTER(LEN=*), PARAMETER :: RoutineName='read_cable_namelists'

CALL read_cable_namelist( unitnumber, cable_namelist )

IF( cable_runtime%offline ) THEN
  CALL read_offline_namelist( "offline.nml" )
ENDIF

RETURN
END SUBROUTINE read_cable_namelists



SUBROUTINE read_cable_namelist( unitnumber, cable_namelist )
! Description:
!  Read the cable namelist

!!USE cable_common_module_temp, ONLY: calcsoilalbedo, redistrb, wiltParam,       &
!!                                    satuParam, snmin, cable_user, gw_params
  
USE cable_common_module, ONLY: &
  calcsoilalbedo,              &
  redistrb,                    &
  wiltParam,                   &
  satuParam,                   &
  snmin,                       &
  cable_user,                  &
  gw_params
  
USE temp_module,   ONLY: l_casacnp,   &
                       l_landuse,     &
                       l_laiFeedbk,   &
                       l_vcmaxFeedbk
   
USE casadimension, ONLY: icycle
USE casavariable,  ONLY: casafile
   
IMPLICIT NONE

! Subroutine arguments
INTEGER, INTENT(IN) :: unitnumber
CHARACTER(LEN=*), INTENT(IN) :: cable_namelist

CHARACTER(LEN=*), PARAMETER :: RoutineName='read_cable_namelist'

NAMELIST /CABLE/  &
calcsoilalbedo, & ! albedo considers soil color Ticket #27
l_casacnp,      &
l_landuse,      &
l_laiFeedbk,    &
l_vcmaxFeedbk,  &
icycle,         &
redistrb,       &
wiltParam,      &
satuParam,      &
snmin,          &
cable_user,     & 
gw_params

! Open, read and close the namelist file.
OPEN( UNIT=unitnumber, FILE=CABLE_NAMELIST, STATUS="OLD", ACTION="READ" )
  READ( unitnumber, NML=CABLE )
CLOSE( unitnumber )

RETURN
END SUBROUTINE read_cable_namelist



SUBROUTINE read_offline_namelist( offline_namelist )
! Description:
!  Read the cable namelist for offline apps only

USE cable_common_module, ONLY: filename
USE casavariable,        ONLY: casafile
  
USE cable_IO_vars_module, ONLY: &
  soilparmnew,                  &
  fixedCO2,                     &
  output,                       &
  patchout,                     &
  check,                        &
  verbose,                      &
  leaps,                        &
  logn,                         &
  ncciy,                        &
  gswpfile,                     &
  globalMetfile
  
USE temp_module,   ONLY: vegparmnew,    &
                       spinup,        &
                       spincasa,      &
                       CASAONLY,      &
                       delsoilM,      &
                       delsoilT,      &
                       delgwM,        &
                       LALLOC
IMPLICIT NONE

! Subroutine arguments
CHARACTER(LEN=*), INTENT(IN) :: offline_namelist 

INTEGER                     :: unitnumber
CHARACTER(LEN=*), PARAMETER :: RoutineName='read_offline_cable_namelist'

NAMELIST /offline/  &
filename,       & ! TYPE, containing input filenames
vegparmnew,     & ! use new soil param. method
soilparmnew,    & ! use new soil param. method
spinup,         & ! spinup model (soil) to steady state
delsoilM,       &
delsoilT,       &
delgwM,         &
fixedCO2,       &
output,         &
patchout,       &
check,          &
verbose,        &
leaps,          &
logn,           &
spincasa,       &
CASAONLY,       &
casafile,       &
ncciy,          &
gswpfile,       &
globalMetfile

! Open, read and close the namelist file.
OPEN( NEWUNIT=unitnumber, FILE=offline_namelist, STATUS="OLD", ACTION="READ" )
  READ( unitnumber, NML=offline)
CLOSE( unitnumber )

RETURN
END SUBROUTINE read_offline_namelist



!SUBROUTINE read_cable_model_environment(unitnumber)
!
!! Description:
!! Read the cable namelist
!
!USE cable_model_env_mod, ONLY: read_nml_cable_model_env
!USE cable_model_env_mod, ONLY: set_derived_variables_cable_model_env
!
!IMPLICIT NONE
!
!! Subroutine arguments
!INTEGER, INTENT(IN) :: unitnumber
!
!CHARACTER(LEN=*), PARAMETER :: RoutineName='READ_CABLE_MODEL_ENVIRONMENT'
!
!CALL read_nml_cable_model_env(unitnumber)
!
!CALL set_derived_variables_cable_model_env()
!
!RETURN
!END SUBROUTINE read_cable_model_environment

END MODULE read_namelists_mod_cbl