Changeset 4315 for palm/trunk/SOURCE
- Timestamp:
- Dec 2, 2019 9:20:07 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/salsa_mod.f90
r4298 r4315 26 26 ! ----------------- 27 27 ! $Id$ 28 ! Add an additional check for the time dimension PIDS_SALSA in 29 ! salsa_emission_setup and correct some error message identifiers. 30 ! 31 ! 4298 2019-11-21 15:59:16Z suehring 28 32 ! Bugfix, close netcdf input files after reading 29 33 ! … … 297 301 REAL(wp), PARAMETER :: ambc = 12.0E-3_wp !< black carbon (BC) 298 302 REAL(wp), PARAMETER :: amdair = 28.970E-3_wp !< dry air 299 REAL(wp), PARAMETER :: amdu = 100. E-3_wp!< mineral dust303 REAL(wp), PARAMETER :: amdu = 100.0E-3_wp !< mineral dust 300 304 REAL(wp), PARAMETER :: amh2o = 18.0154E-3_wp !< H2O 301 305 REAL(wp), PARAMETER :: amh2so4 = 98.06E-3_wp !< H2SO4 … … 305 309 REAL(wp), PARAMETER :: amo2 = 31.9988E-3_wp !< O2 306 310 REAL(wp), PARAMETER :: amo3 = 47.998E-3_wp !< O3 307 REAL(wp), PARAMETER :: amoc = 150. E-3_wp!< organic carbon (OC)311 REAL(wp), PARAMETER :: amoc = 150.0E-3_wp !< organic carbon (OC) 308 312 REAL(wp), PARAMETER :: amss = 58.44E-3_wp !< sea salt (NaCl) 309 313 ! … … 5654 5658 IF ( ptemp < 240.0_wp .OR. ptemp > 300.0_wp ) THEN 5655 5659 message_string = 'Invalid input value: ptemp' 5656 CALL message( 'salsa_mod: ternucl', 'PA06 48', 1, 2, 0, 6, 0 )5660 CALL message( 'salsa_mod: ternucl', 'PA0689', 1, 2, 0, 6, 0 ) 5657 5661 ENDIF 5658 5662 IF ( prh < 0.05_wp .OR. prh > 0.95_wp ) THEN … … 8602 8606 SUBROUTINE salsa_emission_setup( init ) 8603 8607 8608 USE control_parameters, & 8609 ONLY: end_time, spinup_time 8610 8604 8611 USE netcdf_data_input_mod, & 8605 8612 ONLY: check_existence, close_input_file, get_attribute, get_variable, & … … 8700 8707 WRITE( message_string, * ) 'salsa_emission_mode = "parameterized" but the '// & 8701 8708 'street_type data is missing.' 8702 CALL message( 'salsa_emission_setup', 'PA06 61', 1, 2, 0, 6, 0 )8709 CALL message( 'salsa_emission_setup', 'PA0695', 1, 2, 0, 6, 0 ) 8703 8710 ENDIF 8704 8711 ENDIF … … 8823 8830 ELSE 8824 8831 message_string = 'Missing emission_mass_fracs in ' // TRIM( input_file_salsa ) 8825 CALL message( 'salsa_emission_setup', 'PA06 59', 1, 2, 0, 6, 0 )8832 CALL message( 'salsa_emission_setup', 'PA0694', 1, 2, 0, 6, 0 ) 8826 8833 ENDIF 8827 8834 ! … … 9013 9020 ENDIF 9014 9021 ! 9022 !-- Check if the provided data covers the entire simulation. The spinup time is added 9023 !-- to the end_time, this must be considered here. 9024 IF ( end_time - spinup_time > aero_emission_att%time(aero_emission_att%nt-1) ) THEN 9025 message_string = 'end_time of the simulation exceeds the time dimension in ' // & 9026 'the salsa input file.' 9027 CALL message( 'salsa_emission_setup', 'PA0692', 1, 2, 0, 6, 0 ) 9028 ENDIF 9029 ! 9015 9030 !-- Read emission number fractions per category 9016 9031 IF ( check_existence( aero_emission_att%var_names, 'emission_number_fracs' ) ) THEN … … 9019 9034 ELSE 9020 9035 message_string = 'Missing emission_number_fracs in ' // TRIM( input_file_salsa ) 9021 CALL message( 'salsa_emission_setup', 'PA06 59', 1, 2, 0, 6, 0 )9036 CALL message( 'salsa_emission_setup', 'PA0694', 1, 2, 0, 6, 0 ) 9022 9037 ENDIF 9023 9038 9024 9039 ELSE 9025 9040 message_string = 'Unknown lod for aerosol_emission_values.' 9026 CALL message( 'salsa_emission ','PA0637', 1, 2, 0, 6, 0 )9041 CALL message( 'salsa_emission_setup','PA0637', 1, 2, 0, 6, 0 ) 9027 9042 9028 9043 ENDIF ! lod … … 12540 12555 message_string = 'end_time of the simulation exceeds the time dimension in the dynamic'//& 12541 12556 ' input file.' 12542 CALL message( 'salsa_nesting_offl_init', 'PA06 81', 1, 2, 0, 6, 0 )12557 CALL message( 'salsa_nesting_offl_init', 'PA0690', 1, 2, 0, 6, 0 ) 12543 12558 ENDIF 12544 12559 12545 12560 IF ( salsa_nest_offl%time(0) /= time_utc_init ) THEN 12546 12561 message_string = 'Offline nesting: time dimension must start at time_utc_init.' 12547 CALL message( 'salsa_nesting_offl_init', 'PA06 82', 1, 2, 0, 6, 0 )12562 CALL message( 'salsa_nesting_offl_init', 'PA0691', 1, 2, 0, 6, 0 ) 12548 12563 ENDIF 12549 12564 ! … … 12669 12684 ! 12670 12685 !-- Read the vertical dimension 12671 CALL get_dimension_length( salsa_nest_offl%id_dynamic, & 12672 salsa_nest_offl%nzu, 'z' ) 12686 CALL get_dimension_length( salsa_nest_offl%id_dynamic, salsa_nest_offl%nzu, 'z' ) 12673 12687 ALLOCATE( salsa_nest_offl%zu_atmos(1:salsa_nest_offl%nzu) ) 12674 12688 CALL get_variable( salsa_nest_offl%id_dynamic, 'z', salsa_nest_offl%zu_atmos ) 12675 12689 ! 12676 12690 !-- Read the number of aerosol chemical components 12677 CALL get_dimension_length( salsa_nest_offl%id_dynamic, 12678 salsa_nest_offl%ncc,'composition_index' )12691 CALL get_dimension_length( salsa_nest_offl%id_dynamic, salsa_nest_offl%ncc, & 12692 'composition_index' ) 12679 12693 ! 12680 12694 !-- Read the names of aerosol chemical components … … 12704 12718 message_string = 'None of the aerosol chemical components in ' // & 12705 12719 TRIM( input_file_dynamic ) // ' correspond to ones applied in SALSA.' 12706 CALL message( 'salsa_mod: salsa_nesting_offl_input', & 12707 'PA0662', 2, 2, 0, 6, 0 ) 12720 CALL message( 'salsa_mod: salsa_nesting_offl_input', 'PA0693', 2, 2, 0, 6, 0 ) 12708 12721 ENDIF 12709 12722
Note: See TracChangeset
for help on using the changeset viewer.