Ignore:
Timestamp:
Mar 26, 2018 9:39:22 AM (3 years ago)
Author:
maronga
Message:

renamed all Fortran NAMELISTS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/land_surface_model_mod.f90

    r2921 r2932  
    2525! -----------------
    2626! $Id$
     27! renamed lsm_par to land_surface_parameters. Bugfix in message calls
     28!
     29! 2921 2018-03-22 15:05:23Z Giersch
    2730! The activation of spinup has been moved to parin
    2831!
     
    10631066             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    10641067                      'res land_surface = .TRUE.'
    1065              CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     1068             CALL message( 'lsm_check_data_output', 'PA0404', 1, 2, 0, 6, 0 )
    10661069          ENDIF
    10671070          unit = 'm3/m3'
     
    10711074             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    10721075                      'res land_surface = .TRUE.'
    1073              CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     1076             CALL message( 'lsm_check_data_output', 'PA0404', 1, 2, 0, 6, 0 )
    10741077          ENDIF
    10751078          unit = 'K'   
     
    10811084                              TRIM( var ) // '" & only 2d-horizontal ' //      &
    10821085                              'cross sections are allowed for this value'
    1083              CALL message( 'check_parameters', 'PA0111', 1, 2, 0, 6, 0 )
     1086             CALL message( 'lsm_check_data_output', 'PA0111', 1, 2, 0, 6, 0 )
    10841087          ENDIF
    10851088          IF ( TRIM( var ) == 'lai*'  .AND.  .NOT.  land_surface )  THEN
    10861089             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    10871090                              'res land_surface = .TRUE.'
    1088              CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     1091             CALL message( 'lsm_check_data_output', 'PA0404', 1, 2, 0, 6, 0 )
    10891092          ENDIF
    10901093          IF ( TRIM( var ) == 'c_liq*'  .AND.  .NOT.  land_surface )  THEN
    10911094             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    10921095                              'res land_surface = .TRUE.'
    1093              CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     1096             CALL message( 'lsm_check_data_output', 'PA0404', 1, 2, 0, 6, 0 )
    10941097          ENDIF
    10951098          IF ( TRIM( var ) == 'c_soil*'  .AND.  .NOT.  land_surface )  THEN
    10961099             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    10971100                              'res land_surface = .TRUE.'
    1098              CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     1101             CALL message( 'lsm_check_data_output', 'PA0404', 1, 2, 0, 6, 0 )
    10991102          ENDIF
    11001103          IF ( TRIM( var ) == 'c_veg*'  .AND.  .NOT. land_surface )  THEN
    11011104             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    11021105                              'res land_surface = .TRUE.'
    1103              CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     1106             CALL message( 'lsm_check_data_output', 'PA0404', 1, 2, 0, 6, 0 )
    11041107          ENDIF
    11051108          IF ( TRIM( var ) == 'm_liq*'  .AND.  .NOT.  land_surface )  THEN
    11061109             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    11071110                              'res land_surface = .TRUE.'
    1108              CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     1111             CALL message( 'lsm_check_data_output', 'PA0404', 1, 2, 0, 6, 0 )
    11091112          ENDIF
    11101113          IF ( TRIM( var ) == 'qsws_liq*'  .AND.  .NOT. land_surface )         &
     
    11121115             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    11131116                              'res land_surface = .TRUE.'
    1114              CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     1117             CALL message( 'lsm_check_data_output', 'PA0404', 1, 2, 0, 6, 0 )
    11151118          ENDIF
    11161119          IF ( TRIM( var ) == 'qsws_soil*'  .AND.  .NOT.  land_surface )       &
     
    11181121             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    11191122                              'res land_surface = .TRUE.'
    1120              CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     1123             CALL message( 'lsm_check_data_output', 'PA0404', 1, 2, 0, 6, 0 )
    11211124          ENDIF
    11221125          IF ( TRIM( var ) == 'qsws_veg*'  .AND.  .NOT. land_surface )         &
     
    11241127             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    11251128                              'res land_surface = .TRUE.'
    1126              CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     1129             CALL message( 'lsm_check_data_output', 'PA0404', 1, 2, 0, 6, 0 )
    11271130          ENDIF
    11281131          IF ( TRIM( var ) == 'r_s*'  .AND.  .NOT.  land_surface )             &
     
    11301133             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    11311134                              'res land_surface = .TRUE.'
    1132              CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     1135             CALL message( 'lsm_check_data_output', 'PA0404', 1, 2, 0, 6, 0 )
    11331136          ENDIF
    11341137
     
    11851188                              TRIM( data_output_pr(var_count) ) // ' is' //    &
    11861189                              'not implemented for land_surface = .FALSE.'
    1187              CALL message( 'check_parameters', 'PA0402', 1, 2, 0, 6, 0 )
     1190             CALL message( 'lsm_check_data_output_pr', 'PA0402', 1, 2, 0, 6, 0 )
    11881191          ELSE
    11891192             dopr_index(var_count) = 89
     
    12031206                              TRIM( data_output_pr(var_count) ) // ' is' //    &
    12041207                              ' not implemented for land_surface = .FALSE.'
    1205              CALL message( 'check_parameters', 'PA0402', 1, 2, 0, 6, 0 )
     1208             CALL message( 'lsm_check_data_output_pr', 'PA0402', 1, 2, 0, 6, 0 )
    12061209          ELSE
    12071210             dopr_index(var_count) = 91
     
    12511254       message_string = 'unknown surface type surface_type = "' //             &
    12521255                        TRIM( surface_type ) // '"'
    1253        CALL message( 'check_parameters', 'PA0019', 1, 2, 0, 6, 0 )
     1256       CALL message( 'lsm_check_parameters', 'PA0019', 1, 2, 0, 6, 0 )
    12541257    ENDIF
    12551258
     
    12621265                        'bc_pt_b = "dirichlet" and '//                         &
    12631266                        'bc_q_b  = "dirichlet"'
    1264        CALL message( 'check_parameters', 'PA0399', 1, 2, 0, 6, 0 )
     1267       CALL message( 'lsm_check_parameters', 'PA0399', 1, 2, 0, 6, 0 )
    12651268    ENDIF
    12661269
     
    12681271       message_string = 'lsm requires '//                                      &
    12691272                        'constant_flux_layer = .T.'
    1270        CALL message( 'check_parameters', 'PA0400', 1, 2, 0, 6, 0 )
     1273       CALL message( 'lsm_check_parameters', 'PA0400', 1, 2, 0, 6, 0 )
    12711274    ENDIF
    12721275
     
    12781281                              'requires setting of min_canopy_resistance'//    &
    12791282                              '/= 9999999.9'
    1280              CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     1283             CALL message( 'lsm_check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
    12811284          ENDIF
    12821285
     
    12851288                              'requires setting of leaf_area_index'//          &
    12861289                              '/= 9999999.9'
    1287              CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     1290             CALL message( 'lsm_check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
    12881291          ENDIF
    12891292
     
    12921295                              'requires setting of vegetation_coverage'//      &
    12931296                              '/= 9999999.9'
    1294                 CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     1297                CALL message( 'lsm_check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
    12951298          ENDIF
    12961299
     
    12991302                              'requires setting of'//                          &
    13001303                              'canopy_resistance_coefficient /= 9999999.9'
    1301              CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     1304             CALL message( 'lsm_check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
    13021305          ENDIF
    13031306
     
    13061309                              'requires setting of lambda_surface_stable'//    &
    13071310                              '/= 9999999.9'
    1308              CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     1311             CALL message( 'lsm_check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
    13091312          ENDIF
    13101313
     
    13131316                              'requires setting of lambda_surface_unstable'//  &
    13141317                              '/= 9999999.9'
    1315              CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     1318             CALL message( 'lsm_check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
    13161319          ENDIF
    13171320
     
    13201323                              'requires setting of f_shortwave_incoming'//     &
    13211324                              '/= 9999999.9'
    1322              CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     1325             CALL message( 'lsm_check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
    13231326          ENDIF
    13241327
     
    13271330                              'requires setting of z0_vegetation'//            &
    13281331                              '/= 9999999.9'
    1329              CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     1332             CALL message( 'lsm_check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
    13301333          ENDIF
    13311334
     
    13341337                              'requires setting of z0h_vegetation'//           &
    13351338                              '/= 9999999.9'
    1336              CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     1339             CALL message( 'lsm_check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
    13371340          ENDIF
    13381341       ENDIF
     
    13431346             message_string = 'vegetation_type = 1 (bare soil)'//              &
    13441347                              ' requires vegetation_coverage = 0'
    1345              CALL message( 'check_parameters', 'PA0471', 1, 2, 0, 6, 0 )
     1348             CALL message( 'lsm_check_parameters', 'PA0471', 1, 2, 0, 6, 0 )
    13461349          ENDIF
    13471350       ENDIF
     
    13551358                                     ' is not allowed in combination with ',   &
    13561359                                     'most_method = ', most_method
    1357           CALL message( 'check_parameters', 'PA0417', 1, 2, 0, 6, 0 )
     1360          CALL message( 'lsm_check_parameters', 'PA0417', 1, 2, 0, 6, 0 )
    13581361       ENDIF
    13591362
     
    13641367                              'requires setting of z0_water'//                 &
    13651368                              '/= 9999999.9'
    1366              CALL message( 'check_parameters', 'PA0415', 1, 2, 0, 6, 0 )
     1369             CALL message( 'lsm_check_parameters', 'PA0415', 1, 2, 0, 6, 0 )
    13671370          ENDIF
    13681371
     
    13711374                              'requires setting of z0h_water'//                &
    13721375                              '/= 9999999.9'
    1373              CALL message( 'check_parameters', 'PA0392', 1, 2, 0, 6, 0 )
     1376             CALL message( 'lsm_check_parameters', 'PA0392', 1, 2, 0, 6, 0 )
    13741377          ENDIF
    13751378         
     
    13781381                              'requires setting of water_temperature'//        &
    13791382                              '/= 9999999.9'
    1380              CALL message( 'check_parameters', 'PA0379', 1, 2, 0, 6, 0 )
     1383             CALL message( 'lsm_check_parameters', 'PA0379', 1, 2, 0, 6, 0 )
    13811384          ENDIF       
    13821385         
     
    13901393          message_string = 'non-default setting of dz_soil '//                  &
    13911394                           'does not allow to use pavement_type /= 0)'
    1392              CALL message( 'check_parameters', 'PA0341', 1, 2, 0, 6, 0 )
     1395             CALL message( 'lsm_check_parameters', 'PA0341', 1, 2, 0, 6, 0 )
    13931396          ENDIF
    13941397
     
    13991402                              'requires setting of z0_pavement'//              &
    14001403                              '/= 9999999.9'
    1401              CALL message( 'check_parameters', 'PA0352', 1, 2, 0, 6, 0 )
     1404             CALL message( 'lsm_check_parameters', 'PA0352', 1, 2, 0, 6, 0 )
    14021405          ENDIF
    14031406
     
    14061409                              'requires setting of z0h_pavement'//             &
    14071410                              '/= 9999999.9'
    1408              CALL message( 'check_parameters', 'PA0353', 1, 2, 0, 6, 0 )
     1411             CALL message( 'lsm_check_parameters', 'PA0353', 1, 2, 0, 6, 0 )
    14091412          ENDIF
    14101413         
     
    14131416                              'requires setting of pavement_heat_conduct'//    &
    14141417                              '/= 9999999.9'
    1415              CALL message( 'check_parameters', 'PA0342', 1, 2, 0, 6, 0 )
     1418             CALL message( 'lsm_check_parameters', 'PA0342', 1, 2, 0, 6, 0 )
    14161419          ENDIF
    14171420         
     
    14201423                              'requires setting of pavement_heat_capacity'//   &
    14211424                              '/= 9999999.9'
    1422              CALL message( 'check_parameters', 'PA0139', 1, 2, 0, 6, 0 )
     1425             CALL message( 'lsm_check_parameters', 'PA0139', 1, 2, 0, 6, 0 )
    14231426          ENDIF
    14241427
     
    14271430                              'requires setting of pavement_depth_level'//     &
    14281431                              '/= 0'
    1429              CALL message( 'check_parameters', 'PA0474', 1, 2, 0, 6, 0 )
     1432             CALL message( 'lsm_check_parameters', 'PA0474', 1, 2, 0, 6, 0 )
    14301433          ENDIF
    14311434
     
    14401443                                     'combination with most_method = ',        &
    14411444                                     TRIM( most_method )
    1442           CALL message( 'check_parameters', 'PA0999', 2, 2, 0, 6, 0 )
     1445          CALL message( 'lsm_check_parameters', 'PA0999', 2, 2, 0, 6, 0 )
    14431446       ENDIF
    14441447!
     
    14491452          message_string = 'pavement-surfaces are not allowed in ' //           &
    14501453                           'combination with a non-default setting of dz_soil'
    1451           CALL message( 'check_parameters', 'PA0999', 2, 2, 0, 6, 0 )
     1454          CALL message( 'lsm_check_parameters', 'PA0999', 2, 2, 0, 6, 0 )
    14521455       ENDIF
    14531456    ENDIF
     
    14581461    THEN
    14591462       message_string = 'surface_type = netcdf requires static input file.'
    1460        CALL message( 'check_parameters', 'PA0465', 1, 2, 0, 6, 0 )
     1463       CALL message( 'lsm_check_parameters', 'PA0465', 1, 2, 0, 6, 0 )
    14611464    ENDIF
    14621465
     
    14671470                           'requires setting of alpha_vangenuchten'//          &
    14681471                           '/= 9999999.9'
    1469           CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     1472          CALL message( 'lsm_check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
    14701473       ENDIF
    14711474
     
    14741477                           'requires setting of l_vangenuchten'//              &
    14751478                           '/= 9999999.9'
    1476           CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     1479          CALL message( 'lsm_check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
    14771480       ENDIF
    14781481
     
    14811484                           'requires setting of n_vangenuchten'//              &
    14821485                           '/= 9999999.9'
    1483           CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     1486          CALL message( 'lsm_check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
    14841487       ENDIF
    14851488
     
    14881491                           'requires setting of hydraulic_conductivity'//      &
    14891492                           '/= 9999999.9'
    1490           CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     1493          CALL message( 'lsm_check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
    14911494       ENDIF
    14921495
     
    14951498                           'requires setting of saturation_moisture'//         &
    14961499                           '/= 9999999.9'
    1497           CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     1500          CALL message( 'lsm_check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
    14981501       ENDIF
    14991502
     
    15021505                           'requires setting of field_capacity'//              &
    15031506                           '/= 9999999.9'
    1504           CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     1507          CALL message( 'lsm_check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
    15051508       ENDIF
    15061509
     
    15091512                           'requires setting of wilting_point'//               &
    15101513                           '/= 9999999.9'
    1511           CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     1514          CALL message( 'lsm_check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
    15121515       ENDIF
    15131516
     
    15161519                           'requires setting of residual_moisture'//           &
    15171520                           '/= 9999999.9'
    1518           CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     1521          CALL message( 'lsm_check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
    15191522       ENDIF
    15201523
     
    15481551                                  ' in soil_temperature (', COUNT(             &
    15491552                                   soil_temperature /= 9999999.9_wp ), ')'
    1550           CALL message( 'check_parameters', 'PA0471', 1, 2, 0, 6, 0 )
     1553          CALL message( 'lsm_check_parameters', 'PA0471', 1, 2, 0, 6, 0 )
    15511554    ENDIF
    15521555
     
    15541557          message_string = 'deep_soil_temperature is not set but must be'//    &
    15551558                           '/= 9999999.9'
    1556           CALL message( 'check_parameters', 'PA0472', 1, 2, 0, 6, 0 )
     1559          CALL message( 'lsm_check_parameters', 'PA0472', 1, 2, 0, 6, 0 )
    15571560    ENDIF
    15581561
     
    15641567                           'requires setting of root_fraction'//               &
    15651568                           '/= 9999999.9 and SUM(root_fraction) = 1'
    1566           CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     1569          CALL message( 'lsm_check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
    15671570       ENDIF
    15681571    ENDIF   
     
    15761579          message_string = 'soil_moisture must not exceed its saturation' //    &
    15771580                            ' value'
    1578           CALL message( 'check_parameters', 'PA0458', 1, 2, 0, 6, 0 )
     1581          CALL message( 'lsm_check_parameters', 'PA0458', 1, 2, 0, 6, 0 )
    15791582       ENDIF
    15801583    ENDDO
     
    45384541    SUBROUTINE lsm_parin
    45394542
     4543       USE control_parameters,                                                 &
     4544           ONLY:  message_string
    45404545
    45414546       IMPLICIT NONE
     
    45694574                                  z0h_water, z0q_water, z0_pavement,           &
    45704575                                  z0h_pavement, z0q_pavement
    4571        
     4576
     4577       NAMELIST /land_surface_parameters/                                      &
     4578                                  alpha_vangenuchten, c_surface,               &
     4579                                  canopy_resistance_coefficient,               &
     4580                                  constant_roughness,                          &
     4581                                  conserve_water_content,                      &
     4582                                  deep_soil_temperature,                       &
     4583                                  dz_soil,                                     &
     4584                                  f_shortwave_incoming, field_capacity,        &
     4585                                  aero_resist_kray, hydraulic_conductivity,    &
     4586                                  lambda_surface_stable,                       &
     4587                                  lambda_surface_unstable, leaf_area_index,    &
     4588                                  l_vangenuchten, min_canopy_resistance,       &
     4589                                  min_soil_resistance, n_vangenuchten,         &
     4590                                  pavement_depth_level,                        &
     4591                                  pavement_heat_capacity,                      &
     4592                                  pavement_heat_conduct, pavement_type,        &
     4593                                  residual_moisture, root_fraction,            &
     4594                                  saturation_moisture, skip_time_do_lsm,       &
     4595                                  soil_moisture, soil_temperature,             &
     4596                                  soil_type,                                   &
     4597                                  surface_type,                                &
     4598                                  vegetation_coverage, vegetation_type,        &
     4599                                  water_temperature, water_type,               &
     4600                                  wilting_point, z0_vegetation,                &
     4601                                  z0h_vegetation, z0q_vegetation, z0_water,    &
     4602                                  z0h_water, z0q_water, z0_pavement,           &
     4603                                  z0h_pavement, z0q_pavement
     4604                                 
    45724605       line = ' '
    4573        
     4606 
    45744607!
    45754608!--    Try to find land surface model package
    45764609       REWIND ( 11 )
    45774610       line = ' '
    4578        DO   WHILE ( INDEX( line, '&lsm_par' ) == 0 )
     4611       DO   WHILE ( INDEX( line, '&land_surface_parameters' ) == 0 )
    45794612          READ ( 11, '(A)', END=10 )  line
    45804613       ENDDO
     
    45834616!
    45844617!--    Read user-defined namelist
    4585        READ ( 11, lsm_par )
     4618       READ ( 11, land_surface_parameters )
    45864619
    45874620!
    45884621!--    Set flag that indicates that the land surface model is switched on
    45894622       land_surface = .TRUE.
    4590 
    4591 
    4592  10    CONTINUE
     4623       
     4624       GOTO 12
     4625!
     4626!--    Try to find old namelist
     4627 10    REWIND ( 11 )
     4628       line = ' '
     4629       DO   WHILE ( INDEX( line, '&lsm_par' ) == 0 )
     4630          READ ( 11, '(A)', END=12 )  line
     4631       ENDDO
     4632       BACKSPACE ( 11 )
     4633
     4634!
     4635!--    Read user-defined namelist
     4636       READ ( 11, lsm_par )
     4637
     4638       message_string = 'namelist lsm_par is deprecated and will be ' // &
     4639                     'removed in near future. Please &use namelist ' //  &
     4640                     'land_surface_parameters instead'
     4641       CALL message( 'lsm_parin', 'PA0487', 0, 1, 0, 6, 0 )
     4642       
     4643!
     4644!--    Set flag that indicates that the land surface model is switched on
     4645       land_surface = .TRUE.
     4646
     4647
     4648 12    CONTINUE
    45934649       
    45944650
Note: See TracChangeset for help on using the changeset viewer.