Changeset 1788 for palm/trunk/SOURCE/check_parameters.f90
- Timestamp:
- Mar 10, 2016 11:01:04 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/check_parameters.f90
r1787 r1788 19 19 ! Current revisions: 20 20 ! ----------------- 21 ! 22 ! 21 ! Added check for use of most_method = 'lookup' in combination with water 22 ! surface presribed in the land surface model. Added output of z0q. 23 ! Syntax layout improved. 24 ! 23 25 ! Former revisions: 24 26 ! ----------------- … … 397 399 398 400 IF ( dt_coupling == 9999999.9_wp ) THEN 399 message_string = 'dt_coupling is not set but required for coup' // &401 message_string = 'dt_coupling is not set but required for coup' // & 400 402 'ling mode "' // TRIM( coupling_mode ) // '"' 401 403 CALL message( 'check_parameters', 'PA0003', 1, 2, 0, 6, 0 ) … … 419 421 #if ! defined( __check ) 420 422 IF ( myid == 0 ) THEN 421 CALL MPI_SEND( dt_coupling, 1, MPI_REAL, target_id, 11, comm_inter, &423 CALL MPI_SEND( dt_coupling, 1, MPI_REAL, target_id, 11, comm_inter, & 422 424 ierr ) 423 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 11, comm_inter, &425 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 11, comm_inter, & 424 426 status, ierr ) 425 427 ENDIF … … 436 438 IF ( myid == 0 ) THEN 437 439 CALL MPI_SEND( dt_max, 1, MPI_REAL, target_id, 19, comm_inter, ierr ) 438 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 19, comm_inter, &440 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 19, comm_inter, & 439 441 status, ierr ) 440 442 ENDIF … … 451 453 CALL MPI_SEND( restart_time, 1, MPI_REAL, target_id, 12, comm_inter, & 452 454 ierr ) 453 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 12, comm_inter, &455 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 12, comm_inter, & 454 456 status, ierr ) 455 457 ENDIF … … 464 466 #if ! defined( __check ) 465 467 IF ( myid == 0 ) THEN 466 CALL MPI_SEND( dt_restart, 1, MPI_REAL, target_id, 13, comm_inter, &468 CALL MPI_SEND( dt_restart, 1, MPI_REAL, target_id, 13, comm_inter, & 467 469 ierr ) 468 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 13, comm_inter, &470 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 13, comm_inter, & 469 471 status, ierr ) 470 472 ENDIF … … 483 485 CALL MPI_SEND( simulation_time_since_reference, 1, MPI_REAL, target_id, & 484 486 14, comm_inter, ierr ) 485 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 14, comm_inter, &487 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 14, comm_inter, & 486 488 status, ierr ) 487 489 ENDIF … … 499 501 IF ( myid == 0 ) THEN 500 502 CALL MPI_SEND( dx, 1, MPI_REAL, target_id, 15, comm_inter, ierr ) 501 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 15, comm_inter, &503 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 15, comm_inter, & 502 504 status, ierr ) 503 505 ENDIF … … 508 510 509 511 IF ( dx < remote ) THEN 510 WRITE( message_string, * ) 'coupling mode "', &511 TRIM( coupling_mode ), &512 WRITE( message_string, * ) 'coupling mode "', & 513 TRIM( coupling_mode ), & 512 514 '": dx in Atmosphere is not equal to or not larger then dx in ocean' 513 515 CALL message( 'check_parameters', 'PA0009', 1, 2, 0, 6, 0 ) … … 515 517 516 518 IF ( (nx_a+1)*dx /= (nx_o+1)*remote ) THEN 517 WRITE( message_string, * ) 'coupling mode "', &518 TRIM( coupling_mode ), &519 WRITE( message_string, * ) 'coupling mode "', & 520 TRIM( coupling_mode ), & 519 521 '": Domain size in x-direction is not equal in ocean and atmosphere' 520 522 CALL message( 'check_parameters', 'PA0010', 1, 2, 0, 6, 0 ) … … 526 528 IF ( myid == 0) THEN 527 529 CALL MPI_SEND( dy, 1, MPI_REAL, target_id, 16, comm_inter, ierr ) 528 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 16, comm_inter, &530 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 16, comm_inter, & 529 531 status, ierr ) 530 532 ENDIF … … 534 536 535 537 IF ( dy < remote ) THEN 536 WRITE( message_string, * ) 'coupling mode "', &537 TRIM( coupling_mode ), &538 WRITE( message_string, * ) 'coupling mode "', & 539 TRIM( coupling_mode ), & 538 540 '": dy in Atmosphere is not equal to or not larger then dy in ocean' 539 541 CALL message( 'check_parameters', 'PA0011', 1, 2, 0, 6, 0 ) … … 541 543 542 544 IF ( (ny_a+1)*dy /= (ny_o+1)*remote ) THEN 543 WRITE( message_string, * ) 'coupling mode "', &544 TRIM( coupling_mode ), &545 WRITE( message_string, * ) 'coupling mode "', & 546 TRIM( coupling_mode ), & 545 547 '": Domain size in y-direction is not equal in ocean and atmosphere' 546 548 CALL message( 'check_parameters', 'PA0012', 1, 2, 0, 6, 0 ) … … 548 550 549 551 IF ( MOD(nx_o+1,nx_a+1) /= 0 ) THEN 550 WRITE( message_string, * ) 'coupling mode "', &551 TRIM( coupling_mode ), &552 WRITE( message_string, * ) 'coupling mode "', & 553 TRIM( coupling_mode ), & 552 554 '": nx+1 in ocean is not divisible without remainder with nx+1 in', & 553 555 ' atmosphere' … … 556 558 557 559 IF ( MOD(ny_o+1,ny_a+1) /= 0 ) THEN 558 WRITE( message_string, * ) 'coupling mode "', &559 TRIM( coupling_mode ), &560 WRITE( message_string, * ) 'coupling mode "', & 561 TRIM( coupling_mode ), & 560 562 '": ny+1 in ocean is not divisible without remainder with ny+1 in', & 561 563 ' atmosphere' … … 565 567 ENDIF 566 568 #else 567 WRITE( message_string, * ) 'coupling requires PALM to be called with', &569 WRITE( message_string, * ) 'coupling requires PALM to be called with', & 568 570 ' ''mrun -K parallel''' 569 571 CALL message( 'check_parameters', 'PA0141', 1, 2, 0, 6, 0 ) … … 575 577 !-- Exchange via intercommunicator 576 578 IF ( coupling_mode == 'atmosphere_to_ocean' .AND. myid == 0 ) THEN 577 CALL MPI_SEND( humidity, 1, MPI_LOGICAL, target_id, 19, comm_inter, &579 CALL MPI_SEND( humidity, 1, MPI_LOGICAL, target_id, 19, comm_inter, & 578 580 ierr ) 579 581 ELSEIF ( coupling_mode == 'ocean_to_atmosphere' .AND. myid == 0) THEN 580 CALL MPI_RECV( humidity_remote, 1, MPI_LOGICAL, target_id, 19, &582 CALL MPI_RECV( humidity_remote, 1, MPI_LOGICAL, target_id, 19, & 581 583 comm_inter, status, ierr ) 582 584 ENDIF … … 633 635 634 636 CASE DEFAULT 635 message_string = 'illegal value given for loop_optimization: "' // &637 message_string = 'illegal value given for loop_optimization: "' // & 636 638 TRIM( loop_optimization ) // '"' 637 639 CALL message( 'check_parameters', 'PA0013', 1, 2, 0, 6, 0 ) … … 659 661 IF ( topography /= 'flat' ) THEN 660 662 action = ' ' 661 IF ( scalar_advec /= 'pw-scheme' .AND. scalar_advec /= 'ws-scheme' &663 IF ( scalar_advec /= 'pw-scheme' .AND. scalar_advec /= 'ws-scheme' & 662 664 .AND. scalar_advec /= 'ws-scheme-mono' ) THEN 663 665 WRITE( action, '(A,A)' ) 'scalar_advec = ', scalar_advec 664 666 ENDIF 665 IF ( momentum_advec /= 'pw-scheme' .AND. momentum_advec /= 'ws-scheme' ) 667 IF ( momentum_advec /= 'pw-scheme' .AND. momentum_advec /= 'ws-scheme' )& 666 668 THEN 667 669 WRITE( action, '(A,A)' ) 'momentum_advec = ', momentum_advec … … 686 688 ENDIF 687 689 IF ( action /= ' ' ) THEN 688 message_string = 'a non-flat topography does not allow ' // &690 message_string = 'a non-flat topography does not allow ' // & 689 691 TRIM( action ) 690 692 CALL message( 'check_parameters', 'PA0014', 1, 2, 0, 6, 0 ) … … 695 697 !-- is applicable. If this is not possible, abort. 696 698 IF ( TRIM( topography_grid_convention ) == ' ' ) THEN 697 IF ( TRIM( topography ) /= 'single_building' .AND. &698 TRIM( topography ) /= 'single_street_canyon' .AND. &699 IF ( TRIM( topography ) /= 'single_building' .AND. & 700 TRIM( topography ) /= 'single_street_canyon' .AND. & 699 701 TRIM( topography ) /= 'read_from_file' ) THEN 700 702 !-- The default value is not applicable here, because it is only valid 701 703 !-- for the two standard cases 'single_building' and 'read_from_file' 702 704 !-- defined in init_grid. 703 WRITE( message_string, * ) &704 'The value for "topography_grid_convention" ', &705 'is not set. Its default value is & only valid for ', &706 '"topography" = ''single_building'', ', &707 '''single_street_canyon'' & or ''read_from_file''.', &705 WRITE( message_string, * ) & 706 'The value for "topography_grid_convention" ', & 707 'is not set. Its default value is & only valid for ', & 708 '"topography" = ''single_building'', ', & 709 '''single_street_canyon'' & or ''read_from_file''.', & 708 710 ' & Choose ''cell_edge'' or ''cell_center''.' 709 711 CALL message( 'user_check_parameters', 'PA0239', 1, 2, 0, 6, 0 ) … … 711 713 !-- The default value is applicable here. 712 714 !-- Set convention according to topography. 713 IF ( TRIM( topography ) == 'single_building' .OR. &715 IF ( TRIM( topography ) == 'single_building' .OR. & 714 716 TRIM( topography ) == 'single_street_canyon' ) THEN 715 717 topography_grid_convention = 'cell_edge' … … 718 720 ENDIF 719 721 ENDIF 720 ELSEIF ( TRIM( topography_grid_convention ) /= 'cell_edge' .AND. &722 ELSEIF ( TRIM( topography_grid_convention ) /= 'cell_edge' .AND. & 721 723 TRIM( topography_grid_convention ) /= 'cell_center' ) THEN 722 WRITE( message_string, * ) &723 'The value for "topography_grid_convention" is ', &724 WRITE( message_string, * ) & 725 'The value for "topography_grid_convention" is ', & 724 726 'not recognized. & Choose ''cell_edge'' or ''cell_center''.' 725 727 CALL message( 'user_check_parameters', 'PA0240', 1, 2, 0, 6, 0 ) … … 738 740 ENDIF 739 741 740 ELSEIF ( TRIM( coupling_mode ) == 'uncoupled' .AND. &742 ELSEIF ( TRIM( coupling_mode ) == 'uncoupled' .AND. & 741 743 TRIM( coupling_char ) == '_O' ) THEN 742 744 … … 744 746 !-- Check whether an (uncoupled) atmospheric run has been declared as an 745 747 !-- ocean run (this setting is done via mrun-option -y) 746 747 message_string = 'ocean = .F. does not allow coupling_char = "' // & 748 message_string = 'ocean = .F. does not allow coupling_char = "' // & 748 749 TRIM( coupling_char ) // '" set by mrun-option "-y"' 749 750 CALL message( 'check_parameters', 'PA0317', 1, 2, 0, 6, 0 ) … … 777 778 gamma_mg = 1 778 779 ELSE 779 message_string = 'unknown multigrid cycle: cycle_mg = "' // &780 message_string = 'unknown multigrid cycle: cycle_mg = "' // & 780 781 TRIM( cycle_mg ) // '"' 781 782 CALL message( 'check_parameters', 'PA0020', 1, 2, 0, 6, 0 ) … … 783 784 ENDIF 784 785 785 IF ( fft_method /= 'singleton-algorithm' .AND. &786 fft_method /= 'temperton-algorithm' .AND. &787 fft_method /= 'fftw' .AND. &786 IF ( fft_method /= 'singleton-algorithm' .AND. & 787 fft_method /= 'temperton-algorithm' .AND. & 788 fft_method /= 'fftw' .AND. & 788 789 fft_method /= 'system-specific' ) THEN 789 message_string = 'unknown fft-algorithm: fft_method = "' // &790 message_string = 'unknown fft-algorithm: fft_method = "' // & 790 791 TRIM( fft_method ) // '"' 791 792 CALL message( 'check_parameters', 'PA0021', 1, 2, 0, 6, 0 ) 792 793 ENDIF 793 794 794 IF( momentum_advec == 'ws-scheme' .AND. &795 IF( momentum_advec == 'ws-scheme' .AND. & 795 796 .NOT. call_psolver_at_all_substeps ) THEN 796 message_string = 'psolver must be called at each RK3 substep when "'// &797 message_string = 'psolver must be called at each RK3 substep when "'// & 797 798 TRIM(momentum_advec) // ' "is used for momentum_advec' 798 799 CALL message( 'check_parameters', 'PA0344', 1, 2, 0, 6, 0 ) … … 802 803 IF ( momentum_advec /= 'pw-scheme' .AND. momentum_advec /= 'ws-scheme' ) & 803 804 THEN 804 message_string = 'unknown advection scheme: momentum_advec = "' // &805 message_string = 'unknown advection scheme: momentum_advec = "' // & 805 806 TRIM( momentum_advec ) // '"' 806 807 CALL message( 'check_parameters', 'PA0022', 1, 2, 0, 6, 0 ) … … 811 812 timestep_scheme == 'runge-kutta-2' ) ) & 812 813 THEN 813 message_string = 'momentum_advec or scalar_advec = "' &814 message_string = 'momentum_advec or scalar_advec = "' & 814 815 // TRIM( momentum_advec ) // '" is not allowed with timestep_scheme = "' // & 815 816 TRIM( timestep_scheme ) // '"' … … 819 820 scalar_advec /= 'ws-scheme-mono' .AND. scalar_advec /= 'bc-scheme' ) & 820 821 THEN 821 message_string = 'unknown advection scheme: scalar_advec = "' // &822 message_string = 'unknown advection scheme: scalar_advec = "' // & 822 823 TRIM( scalar_advec ) // '"' 823 824 CALL message( 'check_parameters', 'PA0024', 1, 2, 0, 6, 0 ) … … 825 826 IF ( scalar_advec == 'bc-scheme' .AND. loop_optimization == 'cache' ) & 826 827 THEN 827 message_string = 'advection_scheme scalar_advec = "' &828 message_string = 'advection_scheme scalar_advec = "' & 828 829 // TRIM( scalar_advec ) // '" not implemented for & loop_optimization = "' // & 829 830 TRIM( loop_optimization ) // '"' … … 851 852 !-- Set LOGICAL switches to enhance performance 852 853 IF ( momentum_advec == 'ws-scheme' ) ws_scheme_mom = .TRUE. 853 IF ( scalar_advec == 'ws-scheme' .OR. &854 IF ( scalar_advec == 'ws-scheme' .OR. & 854 855 scalar_advec == 'ws-scheme-mono' ) ws_scheme_sca = .TRUE. 855 856 IF ( scalar_advec == 'ws-scheme-mono' ) monotonic_adjustment = .TRUE. … … 908 909 IF ( collision_kernel(6:9) == 'fast' ) use_kernel_tables = .TRUE. 909 910 910 IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND. &911 IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND. & 911 912 TRIM( initializing_actions ) /= 'cyclic_fill' ) THEN 912 913 ! 913 914 !-- No restart run: several initialising actions are possible 914 915 action = initializing_actions 915 DO WHILE ( TRIM( action ) /= '' )916 DO WHILE ( TRIM( action ) /= '' ) 916 917 position = INDEX( action, ' ' ) 917 918 SELECT CASE ( action(1:position-1) ) 918 919 919 CASE ( 'set_constant_profiles', 'set_1d-model_profiles', &920 CASE ( 'set_constant_profiles', 'set_1d-model_profiles', & 920 921 'by_user', 'initialize_vortex', 'initialize_ptanom' ) 921 922 action = action(position+1:) 922 923 923 924 CASE DEFAULT 924 message_string = 'initializing_action = "' // &925 message_string = 'initializing_action = "' // & 925 926 TRIM( action ) // '" unkown or not allowed' 926 927 CALL message( 'check_parameters', 'PA0030', 1, 2, 0, 6, 0 ) … … 930 931 ENDIF 931 932 932 IF ( TRIM( initializing_actions ) == 'initialize_vortex' .AND.&933 IF ( TRIM( initializing_actions ) == 'initialize_vortex' .AND. & 933 934 conserve_volume_flow ) THEN 934 message_string = 'initializing_actions = "initialize_vortex"' // &935 message_string = 'initializing_actions = "initialize_vortex"' // & 935 936 ' ist not allowed with conserve_volume_flow = .T.' 936 937 CALL message( 'check_parameters', 'PA0343', 1, 2, 0, 6, 0 ) … … 938 939 939 940 940 IF ( INDEX( initializing_actions, 'set_constant_profiles' ) /= 0 .AND. &941 IF ( INDEX( initializing_actions, 'set_constant_profiles' ) /= 0 .AND. & 941 942 INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 ) THEN 942 message_string = 'initializing_actions = "set_constant_profiles"' // &943 ' and "set_1d-model_profiles" are not allowed ' // &943 message_string = 'initializing_actions = "set_constant_profiles"' // & 944 ' and "set_1d-model_profiles" are not allowed ' // & 944 945 'simultaneously' 945 946 CALL message( 'check_parameters', 'PA0031', 1, 2, 0, 6, 0 ) 946 947 ENDIF 947 948 948 IF ( INDEX( initializing_actions, 'set_constant_profiles' ) /= 0 .AND. &949 IF ( INDEX( initializing_actions, 'set_constant_profiles' ) /= 0 .AND. & 949 950 INDEX( initializing_actions, 'by_user' ) /= 0 ) THEN 950 message_string = 'initializing_actions = "set_constant_profiles"' // &951 message_string = 'initializing_actions = "set_constant_profiles"' // & 951 952 ' and "by_user" are not allowed simultaneously' 952 953 CALL message( 'check_parameters', 'PA0032', 1, 2, 0, 6, 0 ) 953 954 ENDIF 954 955 955 IF ( INDEX( initializing_actions, 'by_user' ) /= 0 .AND. &956 IF ( INDEX( initializing_actions, 'by_user' ) /= 0 .AND. & 956 957 INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 ) THEN 957 message_string = 'initializing_actions = "by_user" and ' // &958 message_string = 'initializing_actions = "by_user" and ' // & 958 959 '"set_1d-model_profiles" are not allowed simultaneously' 959 960 CALL message( 'check_parameters', 'PA0033', 1, 2, 0, 6, 0 ) 960 961 ENDIF 961 962 962 IF ( cloud_physics .AND. .NOT. humidity ) THEN963 WRITE( message_string, * ) 'cloud_physics = ', cloud_physics, ' is ', &963 IF ( cloud_physics .AND. .NOT. humidity ) THEN 964 WRITE( message_string, * ) 'cloud_physics = ', cloud_physics, ' is ', & 964 965 'not allowed with humidity = ', humidity 965 966 CALL message( 'check_parameters', 'PA0034', 1, 2, 0, 6, 0 ) … … 967 968 968 969 IF ( precipitation .AND. .NOT. cloud_physics ) THEN 969 WRITE( message_string, * ) 'precipitation = ', precipitation, ' is ', &970 WRITE( message_string, * ) 'precipitation = ', precipitation, ' is ', & 970 971 'not allowed with cloud_physics = ', cloud_physics 971 972 CALL message( 'check_parameters', 'PA0035', 1, 2, 0, 6, 0 ) … … 973 974 974 975 IF ( humidity .AND. sloping_surface ) THEN 975 message_string = 'humidity = .TRUE. and sloping_surface = .TRUE. ' // &976 message_string = 'humidity = .TRUE. and sloping_surface = .TRUE. ' // & 976 977 'are not allowed simultaneously' 977 978 CALL message( 'check_parameters', 'PA0036', 1, 2, 0, 6, 0 ) … … 979 980 980 981 IF ( passive_scalar .AND. humidity ) THEN 981 message_string = 'humidity = .TRUE. and passive_scalar = .TRUE. ' // &982 message_string = 'humidity = .TRUE. and passive_scalar = .TRUE. ' // & 982 983 'is not allowed simultaneously' 983 984 CALL message( 'check_parameters', 'PA0038', 1, 2, 0, 6, 0 ) … … 1032 1033 !-- calculated from the temperature/humidity gradients in the land surface 1033 1034 !-- model 1034 IF ( bc_pt_b == 'neumann' .OR.bc_q_b == 'neumann' ) THEN1035 IF ( bc_pt_b == 'neumann' .OR. bc_q_b == 'neumann' ) THEN 1035 1036 message_string = 'lsm requires setting of'// & 1036 1037 'bc_pt_b = "dirichlet" and '// & … … 1039 1040 ENDIF 1040 1041 1041 IF ( .NOT.constant_flux_layer ) THEN1042 IF ( .NOT. constant_flux_layer ) THEN 1042 1043 message_string = 'lsm requires '// & 1043 1044 'constant_flux_layer = .T.' … … 1046 1047 1047 1048 IF ( topography /= 'flat' ) THEN 1048 message_string = 'lsm cannot be used ' // &1049 message_string = 'lsm cannot be used ' // & 1049 1050 'in combination with topography /= "flat"' 1050 1051 CALL message( 'check_parameters', 'PA0415', 1, 2, 0, 6, 0 ) 1051 1052 ENDIF 1052 1053 1054 IF ( ( veg_type == 14 .OR. veg_type == 15 ) .AND. & 1055 most_method == 'lookup' ) THEN 1056 WRITE( message_string, * ) 'veg_type = ', veg_type, ' is not ', & 1057 'allowed in combination with ', & 1058 'most_method = ', most_method 1059 CALL message( 'check_parameters', 'PA0417', 1, 2, 0, 6, 0 ) 1060 ENDIF 1061 1053 1062 IF ( veg_type == 0 ) THEN 1054 IF ( SUM( root_fraction) /= 1.0_wp) THEN1063 IF ( SUM( root_fraction ) /= 1.0_wp ) THEN 1055 1064 message_string = 'veg_type = 0 (user_defined)'// & 1056 1065 'requires setting of root_fraction(0:3)'// & … … 1059 1068 ENDIF 1060 1069 1061 IF ( min_canopy_resistance == 9999999.9_wp ) THEN1070 IF ( min_canopy_resistance == 9999999.9_wp ) THEN 1062 1071 message_string = 'veg_type = 0 (user defined)'// & 1063 1072 'requires setting of min_canopy_resistance'// & … … 1066 1075 ENDIF 1067 1076 1068 IF ( leaf_area_index == 9999999.9_wp ) THEN1077 IF ( leaf_area_index == 9999999.9_wp ) THEN 1069 1078 message_string = 'veg_type = 0 (user_defined)'// & 1070 1079 'requires setting of leaf_area_index'// & … … 1073 1082 ENDIF 1074 1083 1075 IF ( vegetation_coverage == 9999999.9_wp ) THEN1084 IF ( vegetation_coverage == 9999999.9_wp ) THEN 1076 1085 message_string = 'veg_type = 0 (user_defined)'// & 1077 1086 'requires setting of vegetation_coverage'// & … … 1087 1096 ENDIF 1088 1097 1089 IF ( lambda_surface_stable == 9999999.9_wp ) THEN1098 IF ( lambda_surface_stable == 9999999.9_wp ) THEN 1090 1099 message_string = 'veg_type = 0 (user_defined)'// & 1091 1100 'requires setting of lambda_surface_stable'// & … … 1094 1103 ENDIF 1095 1104 1096 IF ( lambda_surface_unstable == 9999999.9_wp ) THEN1105 IF ( lambda_surface_unstable == 9999999.9_wp ) THEN 1097 1106 message_string = 'veg_type = 0 (user_defined)'// & 1098 1107 'requires setting of lambda_surface_unstable'// & … … 1101 1110 ENDIF 1102 1111 1103 IF ( f_shortwave_incoming == 9999999.9_wp ) THEN1112 IF ( f_shortwave_incoming == 9999999.9_wp ) THEN 1104 1113 message_string = 'veg_type = 0 (user_defined)'// & 1105 1114 'requires setting of f_shortwave_incoming'// & … … 1108 1117 ENDIF 1109 1118 1110 IF ( z0_eb == 9999999.9_wp ) THEN1119 IF ( z0_eb == 9999999.9_wp ) THEN 1111 1120 message_string = 'veg_type = 0 (user_defined)'// & 1112 1121 'requires setting of z0_eb'// & … … 1115 1124 ENDIF 1116 1125 1117 IF ( z0h_eb == 9999999.9_wp ) THEN1126 IF ( z0h_eb == 9999999.9_wp ) THEN 1118 1127 message_string = 'veg_type = 0 (user_defined)'// & 1119 1128 'requires setting of z0h_eb'// & … … 1127 1136 IF ( soil_type == 0 ) THEN 1128 1137 1129 IF ( alpha_vangenuchten == 9999999.9_wp ) THEN1138 IF ( alpha_vangenuchten == 9999999.9_wp ) THEN 1130 1139 message_string = 'soil_type = 0 (user_defined)'// & 1131 1140 'requires setting of alpha_vangenuchten'// & … … 1134 1143 ENDIF 1135 1144 1136 IF ( l_vangenuchten == 9999999.9_wp ) THEN1145 IF ( l_vangenuchten == 9999999.9_wp ) THEN 1137 1146 message_string = 'soil_type = 0 (user_defined)'// & 1138 1147 'requires setting of l_vangenuchten'// & … … 1141 1150 ENDIF 1142 1151 1143 IF ( n_vangenuchten == 9999999.9_wp ) THEN1152 IF ( n_vangenuchten == 9999999.9_wp ) THEN 1144 1153 message_string = 'soil_type = 0 (user_defined)'// & 1145 1154 'requires setting of n_vangenuchten'// & … … 1148 1157 ENDIF 1149 1158 1150 IF ( hydraulic_conductivity == 9999999.9_wp ) THEN1159 IF ( hydraulic_conductivity == 9999999.9_wp ) THEN 1151 1160 message_string = 'soil_type = 0 (user_defined)'// & 1152 1161 'requires setting of hydraulic_conductivity'// & … … 1155 1164 ENDIF 1156 1165 1157 IF ( saturation_moisture == 9999999.9_wp ) THEN1166 IF ( saturation_moisture == 9999999.9_wp ) THEN 1158 1167 message_string = 'soil_type = 0 (user_defined)'// & 1159 1168 'requires setting of saturation_moisture'// & … … 1162 1171 ENDIF 1163 1172 1164 IF ( field_capacity == 9999999.9_wp ) THEN1173 IF ( field_capacity == 9999999.9_wp ) THEN 1165 1174 message_string = 'soil_type = 0 (user_defined)'// & 1166 1175 'requires setting of field_capacity'// & … … 1169 1178 ENDIF 1170 1179 1171 IF ( wilting_point == 9999999.9_wp ) THEN1180 IF ( wilting_point == 9999999.9_wp ) THEN 1172 1181 message_string = 'soil_type = 0 (user_defined)'// & 1173 1182 'requires setting of wilting_point'// & … … 1176 1185 ENDIF 1177 1186 1178 IF ( residual_moisture == 9999999.9_wp ) THEN1187 IF ( residual_moisture == 9999999.9_wp ) THEN 1179 1188 message_string = 'soil_type = 0 (user_defined)'// & 1180 1189 'requires setting of residual_moisture'// & … … 1185 1194 ENDIF 1186 1195 1187 IF ( .NOT.radiation ) THEN1196 IF ( .NOT. radiation ) THEN 1188 1197 message_string = 'lsm requires '// & 1189 1198 'radiation = .T.' … … 1194 1203 1195 1204 IF ( radiation ) THEN 1196 IF ( radiation_scheme /= 'constant' .AND.&1197 radiation_scheme /= 'clear-sky' .AND.&1205 IF ( radiation_scheme /= 'constant' .AND. & 1206 radiation_scheme /= 'clear-sky' .AND. & 1198 1207 radiation_scheme /= 'rrtmg' ) THEN 1199 1208 message_string = 'unknown radiation_scheme = '// & … … 1215 1224 1216 1225 ENDIF 1217 IF ( albedo_type == 0 .AND. albedo == 9999999.9_wp .AND.&1226 IF ( albedo_type == 0 .AND. albedo == 9999999.9_wp .AND. & 1218 1227 radiation_scheme == 'clear-sky') THEN 1219 1228 message_string = 'radiation_scheme = "clear-sky" in combination' // & … … 1222 1231 CALL message( 'check_parameters', 'PA0410', 1, 2, 0, 6, 0 ) 1223 1232 ENDIF 1224 IF ( albedo_type == 0 .AND. radiation_scheme == 'rrtmg' .AND.&1233 IF ( albedo_type == 0 .AND. radiation_scheme == 'rrtmg' .AND. & 1225 1234 ( albedo_lw_dif == 9999999.9_wp .OR. albedo_lw_dir == 9999999.9_wp& 1226 1235 .OR. albedo_sw_dif == 9999999.9_wp .OR. albedo_sw_dir == 9999999.9_wp& … … 1235 1244 ENDIF 1236 1245 IF ( topography /= 'flat' ) THEN 1237 message_string = 'radiation scheme cannot be used ' // &1246 message_string = 'radiation scheme cannot be used ' // & 1238 1247 'in combination with topography /= "flat"' 1239 1248 CALL message( 'check_parameters', 'PA0414', 1, 2, 0, 6, 0 ) … … 1244 1253 loop_optimization == 'vector' ) & 1245 1254 .AND. cloud_physics .AND. icloud_scheme == 0 ) THEN 1246 message_string = 'cloud_scheme = seifert_beheng requires ' // &1255 message_string = 'cloud_scheme = seifert_beheng requires ' // & 1247 1256 'loop_optimization = "cache" or "vector"' 1248 1257 CALL message( 'check_parameters', 'PA0362', 1, 2, 0, 6, 0 ) … … 1270 1279 gradient = 0.0_wp 1271 1280 1272 IF ( .NOT.ocean ) THEN1281 IF ( .NOT. ocean ) THEN 1273 1282 1274 1283 ug_vertical_gradient_level_ind(1) = 0 1275 1284 ug(0) = ug_surface 1276 1285 DO k = 1, nzt+1 1277 IF ( i < 11 ) THEN1278 IF ( ug_vertical_gradient_level(i) < zu(k) .AND. &1286 IF ( i < 11 ) THEN 1287 IF ( ug_vertical_gradient_level(i) < zu(k) .AND. & 1279 1288 ug_vertical_gradient_level(i) >= 0.0_wp ) THEN 1280 1289 gradient = ug_vertical_gradient(i) / 100.0_wp … … 1299 1308 ug(nzt+1) = ug_surface 1300 1309 DO k = nzt, nzb, -1 1301 IF ( i < 11 ) THEN1302 IF ( ug_vertical_gradient_level(i) > zu(k) .AND. &1310 IF ( i < 11 ) THEN 1311 IF ( ug_vertical_gradient_level(i) > zu(k) .AND. & 1303 1312 ug_vertical_gradient_level(i) <= 0.0_wp ) THEN 1304 1313 gradient = ug_vertical_gradient(i) / 100.0_wp … … 1334 1343 gradient = 0.0_wp 1335 1344 1336 IF ( .NOT.ocean ) THEN1345 IF ( .NOT. ocean ) THEN 1337 1346 1338 1347 vg_vertical_gradient_level_ind(1) = 0 1339 1348 vg(0) = vg_surface 1340 1349 DO k = 1, nzt+1 1341 IF ( i < 11 ) THEN1342 IF ( vg_vertical_gradient_level(i) < zu(k) .AND. &1350 IF ( i < 11 ) THEN 1351 IF ( vg_vertical_gradient_level(i) < zu(k) .AND. & 1343 1352 vg_vertical_gradient_level(i) >= 0.0_wp ) THEN 1344 1353 gradient = vg_vertical_gradient(i) / 100.0_wp … … 1363 1372 vg(nzt+1) = vg_surface 1364 1373 DO k = nzt, nzb, -1 1365 IF ( i < 11 ) THEN1366 IF ( vg_vertical_gradient_level(i) > zu(k) .AND. &1374 IF ( i < 11 ) THEN 1375 IF ( vg_vertical_gradient_level(i) > zu(k) .AND. & 1367 1376 vg_vertical_gradient_level(i) <= 0.0_wp ) THEN 1368 1377 gradient = vg_vertical_gradient(i) / 100.0_wp … … 1415 1424 1416 1425 IF ( kk < 100 ) THEN 1417 DO WHILE ( uv_heights(kk+1) <= zu(k) )1426 DO WHILE ( uv_heights(kk+1) <= zu(k) ) 1418 1427 kk = kk + 1 1419 1428 IF ( kk == 100 ) EXIT … … 1421 1430 ENDIF 1422 1431 1423 IF ( kk < 100 .AND.uv_heights(kk+1) /= 9999999.9_wp ) THEN1432 IF ( kk < 100 .AND. uv_heights(kk+1) /= 9999999.9_wp ) THEN 1424 1433 u_init(k) = u_profile(kk) + ( zu(k) - uv_heights(kk) ) / & 1425 1434 ( uv_heights(kk+1) - uv_heights(kk) ) * & … … 1444 1453 ! 1445 1454 !-- Compute initial temperature profile using the given temperature gradients 1446 IF ( .NOT.neutral ) THEN1455 IF ( .NOT. neutral ) THEN 1447 1456 1448 1457 i = 1 1449 1458 gradient = 0.0_wp 1450 1459 1451 IF ( .NOT.ocean ) THEN1460 IF ( .NOT. ocean ) THEN 1452 1461 1453 1462 pt_vertical_gradient_level_ind(1) = 0 1454 1463 DO k = 1, nzt+1 1455 IF ( i < 11 ) THEN1456 IF ( pt_vertical_gradient_level(i) < zu(k) .AND. &1464 IF ( i < 11 ) THEN 1465 IF ( pt_vertical_gradient_level(i) < zu(k) .AND. & 1457 1466 pt_vertical_gradient_level(i) >= 0.0_wp ) THEN 1458 1467 gradient = pt_vertical_gradient(i) / 100.0_wp … … 1476 1485 pt_vertical_gradient_level_ind(1) = nzt+1 1477 1486 DO k = nzt, 0, -1 1478 IF ( i < 11 ) THEN1479 IF ( pt_vertical_gradient_level(i) > zu(k) .AND. &1487 IF ( i < 11 ) THEN 1488 IF ( pt_vertical_gradient_level(i) > zu(k) .AND. & 1480 1489 pt_vertical_gradient_level(i) <= 0.0_wp ) THEN 1481 1490 gradient = pt_vertical_gradient(i) / 100.0_wp … … 1533 1542 q_vertical_gradient_level_ind(1) = 0 1534 1543 DO k = 1, nzt+1 1535 IF ( i < 11 ) THEN1536 IF ( q_vertical_gradient_level(i) < zu(k) .AND. &1544 IF ( i < 11 ) THEN 1545 IF ( q_vertical_gradient_level(i) < zu(k) .AND. & 1537 1546 q_vertical_gradient_level(i) >= 0.0_wp ) THEN 1538 1547 gradient = q_vertical_gradient(i) / 100.0_wp … … 1579 1588 sa_vertical_gradient_level_ind(1) = nzt+1 1580 1589 DO k = nzt, 0, -1 1581 IF ( i < 11 ) THEN1582 IF ( sa_vertical_gradient_level(i) > zu(k) .AND. &1590 IF ( i < 11 ) THEN 1591 IF ( sa_vertical_gradient_level(i) > zu(k) .AND. & 1583 1592 sa_vertical_gradient_level(i) <= 0.0_wp ) THEN 1584 1593 gradient = sa_vertical_gradient(i) / 100.0_wp … … 1606 1615 ! 1607 1616 !-- Check if the control parameter use_subsidence_tendencies is used correctly 1608 IF ( use_subsidence_tendencies .AND. .NOT. large_scale_subsidence ) THEN1609 message_string = 'The usage of use_subsidence_tendencies ' // &1617 IF ( use_subsidence_tendencies .AND. .NOT. large_scale_subsidence ) THEN 1618 message_string = 'The usage of use_subsidence_tendencies ' // & 1610 1619 'requires large_scale_subsidence = .T..' 1611 1620 CALL message( 'check_parameters', 'PA0396', 1, 2, 0, 6, 0 ) 1612 1621 ELSEIF ( use_subsidence_tendencies .AND. .NOT. large_scale_forcing ) THEN 1613 message_string = 'The usage of use_subsidence_tendencies ' // &1622 message_string = 'The usage of use_subsidence_tendencies ' // & 1614 1623 'requires large_scale_forcing = .T..' 1615 1624 CALL message( 'check_parameters', 'PA0397', 1, 2, 0, 6, 0 ) … … 1619 1628 !-- Initialize large scale subsidence if required 1620 1629 If ( large_scale_subsidence ) THEN 1621 IF ( subs_vertical_gradient_level(1) /= -9999999.9_wp .AND.&1622 .NOT. large_scale_forcing ) THEN1630 IF ( subs_vertical_gradient_level(1) /= -9999999.9_wp .AND. & 1631 .NOT. large_scale_forcing ) THEN 1623 1632 CALL init_w_subsidence 1624 1633 ENDIF … … 1627 1636 !-- are read in from file LSF_DATA 1628 1637 1629 IF ( subs_vertical_gradient_level(1) == -9999999.9_wp .AND.&1630 .NOT.large_scale_forcing ) THEN1631 message_string = 'There is no default large scale vertical ' // &1632 'velocity profile set. Specify the subsidence ' // &1633 'velocity profile via subs_vertical_gradient and ' //&1634 ' subs_vertical_gradient_level.'1638 IF ( subs_vertical_gradient_level(1) == -9999999.9_wp .AND. & 1639 .NOT. large_scale_forcing ) THEN 1640 message_string = 'There is no default large scale vertical ' // & 1641 'velocity profile set. Specify the subsidence ' // & 1642 'velocity profile via subs_vertical_gradient ' // & 1643 'and subs_vertical_gradient_level.' 1635 1644 CALL message( 'check_parameters', 'PA0380', 1, 2, 0, 6, 0 ) 1636 1645 ENDIF 1637 1646 ELSE 1638 1647 IF ( subs_vertical_gradient_level(1) /= -9999999.9_wp ) THEN 1639 message_string = 'Enable usage of large scale subsidence by ' // &1648 message_string = 'Enable usage of large scale subsidence by ' // & 1640 1649 'setting large_scale_subsidence = .T..' 1641 1650 CALL message( 'check_parameters', 'PA0381', 1, 2, 0, 6, 0 ) … … 1659 1668 vpt_reference = pt_reference * ( 1.0_wp + 0.61_wp * q_surface ) 1660 1669 ELSE 1661 message_string = 'illegal value for reference_state: "' // &1670 message_string = 'illegal value for reference_state: "' // & 1662 1671 TRIM( reference_state ) // '"' 1663 1672 CALL message( 'check_parameters', 'PA0056', 1, 2, 0, 6, 0 ) … … 1686 1695 IF ( alpha_surface /= 0.0_wp ) THEN 1687 1696 IF ( ABS( alpha_surface ) > 90.0_wp ) THEN 1688 WRITE( message_string, * ) 'ABS( alpha_surface = ', alpha_surface, &1697 WRITE( message_string, * ) 'ABS( alpha_surface = ', alpha_surface, & 1689 1698 ' ) must be < 90.0' 1690 1699 CALL message( 'check_parameters', 'PA0043', 1, 2, 0, 6, 0 ) … … 1716 1725 ENDIF 1717 1726 ELSE 1718 WRITE( message_string, * ) 'cfl_factor = ', cfl_factor, &1727 WRITE( message_string, * ) 'cfl_factor = ', cfl_factor, & 1719 1728 ' out of range & 0.0 < cfl_factor <= 1.0 is required' 1720 1729 CALL message( 'check_parameters', 'PA0045', 1, 2, 0, 6, 0 ) … … 1740 1749 !-- Set wind speed in the Galilei-transformed system 1741 1750 IF ( galilei_transformation ) THEN 1742 IF ( use_ug_for_galilei_tr .AND. &1743 ug_vertical_gradient_level(1) == 0.0_wp .AND. &1744 ug_vertical_gradient(1) == 0.0_wp .AND.&1745 vg_vertical_gradient_level(1) == 0.0_wp .AND. &1751 IF ( use_ug_for_galilei_tr .AND. & 1752 ug_vertical_gradient_level(1) == 0.0_wp .AND. & 1753 ug_vertical_gradient(1) == 0.0_wp .AND. & 1754 vg_vertical_gradient_level(1) == 0.0_wp .AND. & 1746 1755 vg_vertical_gradient(1) == 0.0_wp ) THEN 1747 1756 u_gtrans = ug_surface * 0.6_wp 1748 1757 v_gtrans = vg_surface * 0.6_wp 1749 ELSEIF ( use_ug_for_galilei_tr .AND. &1750 ( ug_vertical_gradient_level(1) /= 0.0_wp .OR. &1758 ELSEIF ( use_ug_for_galilei_tr .AND. & 1759 ( ug_vertical_gradient_level(1) /= 0.0_wp .OR. & 1751 1760 ug_vertical_gradient(1) /= 0.0_wp ) ) THEN 1752 message_string = 'baroclinity (ug) not allowed simultaneously' // &1761 message_string = 'baroclinity (ug) not allowed simultaneously' // & 1753 1762 ' with galilei transformation' 1754 1763 CALL message( 'check_parameters', 'PA0046', 1, 2, 0, 6, 0 ) 1755 ELSEIF ( use_ug_for_galilei_tr .AND. &1756 ( vg_vertical_gradient_level(1) /= 0.0_wp .OR. &1764 ELSEIF ( use_ug_for_galilei_tr .AND. & 1765 ( vg_vertical_gradient_level(1) /= 0.0_wp .OR. & 1757 1766 vg_vertical_gradient(1) /= 0.0_wp ) ) THEN 1758 message_string = 'baroclinity (vg) not allowed simultaneously' // &1767 message_string = 'baroclinity (vg) not allowed simultaneously' // & 1759 1768 ' with galilei transformation' 1760 1769 CALL message( 'check_parameters', 'PA0047', 1, 2, 0, 6, 0 ) 1761 1770 ELSE 1762 message_string = 'variable translation speed used for galilei-' // &1763 'transformation, which may cause & instabilities in stably ' // &1771 message_string = 'variable translation speed used for galilei-' // & 1772 'transformation, which may cause & instabilities in stably ' // & 1764 1773 'stratified regions' 1765 1774 CALL message( 'check_parameters', 'PA0048', 0, 1, 0, 6, 0 ) … … 1782 1791 IF ( bc_lr /= 'cyclic' .OR. bc_ns /= 'cyclic' ) THEN 1783 1792 IF ( psolver(1:9) /= 'multigrid' ) THEN 1784 message_string = 'non-cyclic lateral boundaries do not allow ' // &1793 message_string = 'non-cyclic lateral boundaries do not allow ' // & 1785 1794 'psolver = "' // TRIM( psolver ) // '"' 1786 1795 CALL message( 'check_parameters', 'PA0051', 1, 2, 0, 6, 0 ) 1787 1796 ENDIF 1788 IF ( momentum_advec /= 'pw-scheme' .AND. &1789 ( momentum_advec /= 'ws-scheme' .AND. &1790 momentum_advec /= 'ws-scheme-mono' ) &1797 IF ( momentum_advec /= 'pw-scheme' .AND. & 1798 ( momentum_advec /= 'ws-scheme' .AND. & 1799 momentum_advec /= 'ws-scheme-mono' ) & 1791 1800 ) THEN 1792 1801 1793 message_string = 'non-cyclic lateral boundaries do not allow ' // &1802 message_string = 'non-cyclic lateral boundaries do not allow ' // & 1794 1803 'momentum_advec = "' // TRIM( momentum_advec ) // '"' 1795 1804 CALL message( 'check_parameters', 'PA0052', 1, 2, 0, 6, 0 ) 1796 1805 ENDIF 1797 IF ( scalar_advec /= 'pw-scheme' .AND.&1798 ( scalar_advec /= 'ws-scheme' .AND.&1806 IF ( scalar_advec /= 'pw-scheme' .AND. & 1807 ( scalar_advec /= 'ws-scheme' .AND. & 1799 1808 scalar_advec /= 'ws-scheme-mono' ) & 1800 1809 ) THEN 1801 message_string = 'non-cyclic lateral boundaries do not allow ' // &1810 message_string = 'non-cyclic lateral boundaries do not allow ' // & 1802 1811 'scalar_advec = "' // TRIM( scalar_advec ) // '"' 1803 1812 CALL message( 'check_parameters', 'PA0053', 1, 2, 0, 6, 0 ) 1804 1813 ENDIF 1805 1814 IF ( galilei_transformation ) THEN 1806 message_string = 'non-cyclic lateral boundaries do not allow ' // &1815 message_string = 'non-cyclic lateral boundaries do not allow ' // & 1807 1816 'galilei_transformation = .T.' 1808 1817 CALL message( 'check_parameters', 'PA0054', 1, 2, 0, 6, 0 ) … … 1819 1828 bc_e_b = 'neumann' 1820 1829 ibc_e_b = 1 1821 message_string = 'boundary condition bc_e_b changed to "' // &1830 message_string = 'boundary condition bc_e_b changed to "' // & 1822 1831 TRIM( bc_e_b ) // '"' 1823 1832 CALL message( 'check_parameters', 'PA0057', 0, 1, 0, 6, 0 ) 1824 1833 ENDIF 1825 1834 ELSE 1826 message_string = 'unknown boundary condition: bc_e_b = "' // &1835 message_string = 'unknown boundary condition: bc_e_b = "' // & 1827 1836 TRIM( bc_e_b ) // '"' 1828 1837 CALL message( 'check_parameters', 'PA0058', 1, 2, 0, 6, 0 ) … … 1836 1845 ibc_p_b = 1 1837 1846 ELSE 1838 message_string = 'unknown boundary condition: bc_p_b = "' // &1847 message_string = 'unknown boundary condition: bc_p_b = "' // & 1839 1848 TRIM( bc_p_b ) // '"' 1840 1849 CALL message( 'check_parameters', 'PA0059', 1, 2, 0, 6, 0 ) … … 1847 1856 ibc_p_t = 1 1848 1857 ELSE 1849 message_string = 'unknown boundary condition: bc_p_t = "' // &1858 message_string = 'unknown boundary condition: bc_p_t = "' // & 1850 1859 TRIM( bc_p_t ) // '"' 1851 1860 CALL message( 'check_parameters', 'PA0061', 1, 2, 0, 6, 0 ) … … 1862 1871 ibc_pt_b = 1 1863 1872 ELSE 1864 message_string = 'unknown boundary condition: bc_pt_b = "' // &1873 message_string = 'unknown boundary condition: bc_pt_b = "' // & 1865 1874 TRIM( bc_pt_b ) // '"' 1866 1875 CALL message( 'check_parameters', 'PA0062', 1, 2, 0, 6, 0 ) … … 1877 1886 ibc_pt_t = 3 1878 1887 ELSE 1879 message_string = 'unknown boundary condition: bc_pt_t = "' // &1888 message_string = 'unknown boundary condition: bc_pt_t = "' // & 1880 1889 TRIM( bc_pt_t ) // '"' 1881 1890 CALL message( 'check_parameters', 'PA0063', 1, 2, 0, 6, 0 ) … … 1889 1898 ELSEIF ( ibc_pt_b == 1 ) THEN 1890 1899 constant_heatflux = .TRUE. 1891 IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND.&1892 .NOT. land_surface ) THEN1900 IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND. & 1901 .NOT. land_surface ) THEN 1893 1902 surface_heatflux = shf_surf(1) 1894 1903 ELSE … … 1899 1908 ELSE 1900 1909 constant_heatflux = .TRUE. 1901 IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND.&1902 large_scale_forcing .AND. .NOT.land_surface ) THEN1910 IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND. & 1911 large_scale_forcing .AND. .NOT. land_surface ) THEN 1903 1912 surface_heatflux = shf_surf(1) 1904 1913 ENDIF … … 1909 1918 IF ( neutral ) THEN 1910 1919 1911 IF ( surface_heatflux /= 0.0_wp .AND. surface_heatflux /= 9999999.9_wp ) & 1920 IF ( surface_heatflux /= 0.0_wp .AND. & 1921 surface_heatflux /= 9999999.9_wp ) THEN 1922 message_string = 'heatflux must not be set for pure neutral flow' 1923 CALL message( 'check_parameters', 'PA0351', 1, 2, 0, 6, 0 ) 1924 ENDIF 1925 1926 IF ( top_heatflux /= 0.0_wp .AND. top_heatflux /= 9999999.9_wp ) & 1912 1927 THEN 1913 1928 message_string = 'heatflux must not be set for pure neutral flow' … … 1915 1930 ENDIF 1916 1931 1917 IF ( top_heatflux /= 0.0_wp .AND. top_heatflux /= 9999999.9_wp ) & 1918 THEN 1919 message_string = 'heatflux must not be set for pure neutral flow' 1920 CALL message( 'check_parameters', 'PA0351', 1, 2, 0, 6, 0 ) 1921 ENDIF 1922 1923 ENDIF 1924 1925 IF ( top_momentumflux_u /= 9999999.9_wp .AND. & 1932 ENDIF 1933 1934 IF ( top_momentumflux_u /= 9999999.9_wp .AND. & 1926 1935 top_momentumflux_v /= 9999999.9_wp ) THEN 1927 1936 constant_top_momentumflux = .TRUE. 1928 ELSEIF ( .NOT. ( top_momentumflux_u == 9999999.9_wp .AND. &1937 ELSEIF ( .NOT. ( top_momentumflux_u == 9999999.9_wp .AND. & 1929 1938 top_momentumflux_v == 9999999.9_wp ) ) THEN 1930 message_string = 'both, top_momentumflux_u AND top_momentumflux_v ' // &1939 message_string = 'both, top_momentumflux_u AND top_momentumflux_v ' // & 1931 1940 'must be set' 1932 1941 CALL message( 'check_parameters', 'PA0064', 1, 2, 0, 6, 0 ) … … 1937 1946 !-- temperature. In this case specification of a constant heat flux is 1938 1947 !-- forbidden. 1939 IF ( ibc_pt_b == 0 .AND. constant_heatflux .AND.&1948 IF ( ibc_pt_b == 0 .AND. constant_heatflux .AND. & 1940 1949 surface_heatflux /= 0.0_wp ) THEN 1941 1950 message_string = 'boundary_condition: bc_pt_b = "' // TRIM( bc_pt_b ) //& … … 1944 1953 ENDIF 1945 1954 IF ( constant_heatflux .AND. pt_surface_initial_change /= 0.0_wp ) THEN 1946 WRITE ( message_string, * ) 'constant_heatflux = .TRUE. is not allo', &1947 'wed with pt_surface_initial_change (/=0) = ', &1955 WRITE ( message_string, * ) 'constant_heatflux = .TRUE. is not allo', & 1956 'wed with pt_surface_initial_change (/=0) = ', & 1948 1957 pt_surface_initial_change 1949 1958 CALL message( 'check_parameters', 'PA0066', 1, 2, 0, 6, 0 ) … … 1954 1963 !-- temperature. In this case specification of a constant heat flux is 1955 1964 !-- forbidden. 1956 IF ( ibc_pt_t == 0 .AND. constant_top_heatflux .AND.&1965 IF ( ibc_pt_t == 0 .AND. constant_top_heatflux .AND. & 1957 1966 top_heatflux /= 0.0_wp ) THEN 1958 1967 message_string = 'boundary_condition: bc_pt_t = "' // TRIM( bc_pt_t ) //& … … 1969 1978 ibc_sa_t = 1 1970 1979 ELSE 1971 message_string = 'unknown boundary condition: bc_sa_t = "' // &1980 message_string = 'unknown boundary condition: bc_sa_t = "' // & 1972 1981 TRIM( bc_sa_t ) // '"' 1973 1982 CALL message( 'check_parameters', 'PA0068', 1, 2, 0, 6, 0 ) … … 1975 1984 1976 1985 IF ( top_salinityflux == 9999999.9_wp ) constant_top_salinityflux = .FALSE. 1977 IF ( ibc_sa_t == 1 .AND. 1978 message_string = 'boundary condition: bc_sa_t = "' // &1979 TRIM( bc_sa_t ) // '" requires to set ' // &1986 IF ( ibc_sa_t == 1 .AND. top_salinityflux == 9999999.9_wp ) THEN 1987 message_string = 'boundary condition: bc_sa_t = "' // & 1988 TRIM( bc_sa_t ) // '" requires to set ' // & 1980 1989 'top_salinityflux' 1981 1990 CALL message( 'check_parameters', 'PA0069', 1, 2, 0, 6, 0 ) … … 1986 1995 !-- salinity. In this case specification of a constant salinity flux is 1987 1996 !-- forbidden. 1988 IF ( ibc_sa_t == 0 .AND. constant_top_salinityflux .AND.&1997 IF ( ibc_sa_t == 0 .AND. constant_top_salinityflux .AND. & 1989 1998 top_salinityflux /= 0.0_wp ) THEN 1990 message_string = 'boundary condition: bc_sa_t = "' // &1991 TRIM( bc_sa_t ) // '" is not allowed with ' // &1999 message_string = 'boundary condition: bc_sa_t = "' // & 2000 TRIM( bc_sa_t ) // '" is not allowed with ' // & 1992 2001 'constant_top_salinityflux = .TRUE.' 1993 2002 CALL message( 'check_parameters', 'PA0070', 1, 2, 0, 6, 0 ) … … 2010 2019 ibc_q_b = 1 2011 2020 ELSE 2012 message_string = 'unknown boundary condition: bc_' // TRIM( sq ) // &2021 message_string = 'unknown boundary condition: bc_' // TRIM( sq ) // & 2013 2022 '_b ="' // TRIM( bc_q_b ) // '"' 2014 2023 CALL message( 'check_parameters', 'PA0071', 1, 2, 0, 6, 0 ) … … 2021 2030 ibc_q_t = 3 2022 2031 ELSE 2023 message_string = 'unknown boundary condition: bc_' // TRIM( sq ) // &2032 message_string = 'unknown boundary condition: bc_' // TRIM( sq ) // & 2024 2033 '_t ="' // TRIM( bc_q_t ) // '"' 2025 2034 CALL message( 'check_parameters', 'PA0072', 1, 2, 0, 6, 0 ) … … 2040 2049 ELSE 2041 2050 constant_waterflux = .TRUE. 2042 IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND.&2043 large_scale_forcing )THEN2051 IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND. & 2052 large_scale_forcing ) THEN 2044 2053 surface_waterflux = qsws_surf(1) 2045 2054 ENDIF … … 2058 2067 IF ( constant_waterflux .AND. q_surface_initial_change /= 0.0_wp ) THEN 2059 2068 WRITE( message_string, * ) 'a prescribed surface flux is not allo', & 2060 'wed with ', sq, '_surface_initial_change (/=0) = ', &2069 'wed with ', sq, '_surface_initial_change (/=0) = ', & 2061 2070 q_surface_initial_change 2062 2071 CALL message( 'check_parameters', 'PA0074', 1, 2, 0, 6, 0 ) … … 2071 2080 ibc_uv_b = 1 2072 2081 IF ( constant_flux_layer ) THEN 2073 message_string = 'boundary condition: bc_uv_b = "' // &2082 message_string = 'boundary condition: bc_uv_b = "' // & 2074 2083 TRIM( bc_uv_b ) // '" is not allowed with constant_flux_layer' & 2075 2084 // ' = .TRUE.' … … 2077 2086 ENDIF 2078 2087 ELSE 2079 message_string = 'unknown boundary condition: bc_uv_b = "' // &2088 message_string = 'unknown boundary condition: bc_uv_b = "' // & 2080 2089 TRIM( bc_uv_b ) // '"' 2081 2090 CALL message( 'check_parameters', 'PA0076', 1, 2, 0, 6, 0 ) … … 2106 2115 ibc_uv_t = 3 2107 2116 ELSE 2108 message_string = 'unknown boundary condition: bc_uv_t = "' // &2117 message_string = 'unknown boundary condition: bc_uv_t = "' // & 2109 2118 TRIM( bc_uv_t ) // '"' 2110 2119 CALL message( 'check_parameters', 'PA0077', 1, 2, 0, 6, 0 ) … … 2117 2126 rayleigh_damping_factor = 0.0_wp 2118 2127 ELSE 2119 IF ( rayleigh_damping_factor < 0.0_wp .OR. rayleigh_damping_factor > 1.0_wp )&2120 THEN2121 WRITE( message_string, * ) 'rayleigh_damping_factor = ', &2128 IF ( rayleigh_damping_factor < 0.0_wp .OR. & 2129 rayleigh_damping_factor > 1.0_wp ) THEN 2130 WRITE( message_string, * ) 'rayleigh_damping_factor = ', & 2122 2131 rayleigh_damping_factor, ' out of range [0.0,1.0]' 2123 2132 CALL message( 'check_parameters', 'PA0078', 1, 2, 0, 6, 0 ) … … 2126 2135 2127 2136 IF ( rayleigh_damping_height == -1.0_wp ) THEN 2128 IF ( .NOT.ocean ) THEN2137 IF ( .NOT. ocean ) THEN 2129 2138 rayleigh_damping_height = 0.66666666666_wp * zu(nzt) 2130 2139 ELSE … … 2132 2141 ENDIF 2133 2142 ELSE 2134 IF ( .NOT.ocean ) THEN2135 IF ( rayleigh_damping_height < 0.0_wp .OR. &2143 IF ( .NOT. ocean ) THEN 2144 IF ( rayleigh_damping_height < 0.0_wp .OR. & 2136 2145 rayleigh_damping_height > zu(nzt) ) THEN 2137 WRITE( message_string, * ) 'rayleigh_damping_height = ', &2146 WRITE( message_string, * ) 'rayleigh_damping_height = ', & 2138 2147 rayleigh_damping_height, ' out of range [0.0,', zu(nzt), ']' 2139 2148 CALL message( 'check_parameters', 'PA0079', 1, 2, 0, 6, 0 ) 2140 2149 ENDIF 2141 2150 ELSE 2142 IF ( rayleigh_damping_height > 0.0_wp .OR. &2151 IF ( rayleigh_damping_height > 0.0_wp .OR. & 2143 2152 rayleigh_damping_height < zu(nzb) ) THEN 2144 WRITE( message_string, * ) 'rayleigh_damping_height = ', &2153 WRITE( message_string, * ) 'rayleigh_damping_height = ', & 2145 2154 rayleigh_damping_height, ' out of range [0.0,', zu(nzb), ']' 2146 2155 CALL message( 'check_parameters', 'PA0079', 1, 2, 0, 6, 0 ) … … 2154 2163 !-- be opened (cf. check_open) 2155 2164 IF ( statistic_regions > 9 .OR. statistic_regions < 0 ) THEN 2156 WRITE ( message_string, * ) 'number of statistic_regions = ', &2165 WRITE ( message_string, * ) 'number of statistic_regions = ', & 2157 2166 statistic_regions+1, ' but only 10 regions are allowed' 2158 2167 CALL message( 'check_parameters', 'PA0082', 1, 2, 0, 6, 0 ) 2159 2168 ENDIF 2160 IF ( normalizing_region > statistic_regions .OR. &2169 IF ( normalizing_region > statistic_regions .OR. & 2161 2170 normalizing_region < 0) THEN 2162 WRITE ( message_string, * ) 'normalizing_region = ', &2171 WRITE ( message_string, * ) 'normalizing_region = ', & 2163 2172 normalizing_region, ' must be >= 0 and <= ',statistic_regions, & 2164 2173 ' (value of statistic_regions)' … … 2184 2193 ! 2185 2194 !-- Set the default skip time intervals for data output, if necessary 2186 IF ( skip_time_dopr == 9999999.9_wp ) &2195 IF ( skip_time_dopr == 9999999.9_wp ) & 2187 2196 skip_time_dopr = skip_time_data_output 2188 IF ( skip_time_dosp == 9999999.9_wp ) &2197 IF ( skip_time_dosp == 9999999.9_wp ) & 2189 2198 skip_time_dosp = skip_time_data_output 2190 IF ( skip_time_do2d_xy == 9999999.9_wp ) &2199 IF ( skip_time_do2d_xy == 9999999.9_wp ) & 2191 2200 skip_time_do2d_xy = skip_time_data_output 2192 IF ( skip_time_do2d_xz == 9999999.9_wp ) &2201 IF ( skip_time_do2d_xz == 9999999.9_wp ) & 2193 2202 skip_time_do2d_xz = skip_time_data_output 2194 IF ( skip_time_do2d_yz == 9999999.9_wp ) &2203 IF ( skip_time_do2d_yz == 9999999.9_wp ) & 2195 2204 skip_time_do2d_yz = skip_time_data_output 2196 IF ( skip_time_do3d == 9999999.9_wp ) &2205 IF ( skip_time_do3d == 9999999.9_wp ) & 2197 2206 skip_time_do3d = skip_time_data_output 2198 IF ( skip_time_data_output_av == 9999999.9_wp ) &2207 IF ( skip_time_data_output_av == 9999999.9_wp ) & 2199 2208 skip_time_data_output_av = skip_time_data_output 2200 2209 DO mid = 1, max_masks 2201 IF ( skip_time_domask(mid) == 9999999.9_wp ) &2210 IF ( skip_time_domask(mid) == 9999999.9_wp ) & 2202 2211 skip_time_domask(mid) = skip_time_data_output 2203 2212 ENDDO … … 2207 2216 !-- spectra) 2208 2217 IF ( averaging_interval > dt_data_output_av ) THEN 2209 WRITE( message_string, * ) 'averaging_interval = ', &2218 WRITE( message_string, * ) 'averaging_interval = ', & 2210 2219 averaging_interval, ' must be <= dt_data_output = ', dt_data_output 2211 2220 CALL message( 'check_parameters', 'PA0085', 1, 2, 0, 6, 0 ) … … 2217 2226 2218 2227 IF ( averaging_interval_pr > dt_dopr ) THEN 2219 WRITE( message_string, * ) 'averaging_interval_pr = ', &2228 WRITE( message_string, * ) 'averaging_interval_pr = ', & 2220 2229 averaging_interval_pr, ' must be <= dt_dopr = ', dt_dopr 2221 2230 CALL message( 'check_parameters', 'PA0086', 1, 2, 0, 6, 0 ) … … 2227 2236 2228 2237 IF ( averaging_interval_sp > dt_dosp ) THEN 2229 WRITE( message_string, * ) 'averaging_interval_sp = ', &2238 WRITE( message_string, * ) 'averaging_interval_sp = ', & 2230 2239 averaging_interval_sp, ' must be <= dt_dosp = ', dt_dosp 2231 2240 CALL message( 'check_parameters', 'PA0087', 1, 2, 0, 6, 0 ) … … 2252 2261 !-- Check the sample rate for averaging (first for 3d-data, then for profiles) 2253 2262 IF ( dt_averaging_input > averaging_interval ) THEN 2254 WRITE( message_string, * ) 'dt_averaging_input = ', &2255 dt_averaging_input, ' must be <= averaging_interval = ', &2263 WRITE( message_string, * ) 'dt_averaging_input = ', & 2264 dt_averaging_input, ' must be <= averaging_interval = ', & 2256 2265 averaging_interval 2257 2266 CALL message( 'check_parameters', 'PA0088', 1, 2, 0, 6, 0 ) … … 2259 2268 2260 2269 IF ( dt_averaging_input_pr > averaging_interval_pr ) THEN 2261 WRITE( message_string, * ) 'dt_averaging_input_pr = ', &2270 WRITE( message_string, * ) 'dt_averaging_input_pr = ', & 2262 2271 dt_averaging_input_pr, ' must be <= averaging_interval_pr = ', & 2263 2272 averaging_interval_pr … … 2272 2281 ELSE 2273 2282 IF ( precipitation_amount_interval > dt_do2d_xy ) THEN 2274 WRITE( message_string, * ) 'precipitation_amount_interval = ', &2275 precipitation_amount_interval, ' must not be larger than ', &2283 WRITE( message_string, * ) 'precipitation_amount_interval = ', & 2284 precipitation_amount_interval, ' must not be larger than ', & 2276 2285 'dt_do2d_xy = ', dt_do2d_xy 2277 2286 CALL message( 'check_parameters', 'PA0090', 1, 2, 0, 6, 0 ) … … 2532 2541 CASE ( 's', '#s' ) 2533 2542 IF ( .NOT. passive_scalar ) THEN 2534 message_string = 'data_output_pr = ' // &2543 message_string = 'data_output_pr = ' // & 2535 2544 TRIM( data_output_pr(i) ) // ' is not imp' // & 2536 2545 'lemented for passive_scalar = .FALSE.' … … 2573 2582 CASE ( 'lpt', '#lpt' ) 2574 2583 IF ( .NOT. cloud_physics ) THEN 2575 message_string = 'data_output_pr = ' // &2584 message_string = 'data_output_pr = ' // & 2576 2585 TRIM( data_output_pr(i) ) // ' is not imp' // & 2577 2586 'lemented for cloud_physics = .FALSE.' … … 2616 2625 2617 2626 CASE ( 'w"q"' ) 2618 IF ( .NOT.humidity ) THEN2619 message_string = 'data_output_pr = ' // &2627 IF ( .NOT. humidity ) THEN 2628 message_string = 'data_output_pr = ' // & 2620 2629 TRIM( data_output_pr(i) ) // ' is not imp' // & 2621 2630 'lemented for humidity = .FALSE.' … … 2628 2637 2629 2638 CASE ( 'w*q*' ) 2630 IF ( .NOT.humidity ) THEN2631 message_string = 'data_output_pr = ' // &2639 IF ( .NOT. humidity ) THEN 2640 message_string = 'data_output_pr = ' // & 2632 2641 TRIM( data_output_pr(i) ) // ' is not imp' // & 2633 2642 'lemented for humidity = .FALSE.' … … 2640 2649 2641 2650 CASE ( 'wq' ) 2642 IF ( .NOT.humidity ) THEN2643 message_string = 'data_output_pr = ' // &2651 IF ( .NOT. humidity ) THEN 2652 message_string = 'data_output_pr = ' // & 2644 2653 TRIM( data_output_pr(i) ) // ' is not imp' // & 2645 2654 'lemented for humidity = .FALSE.' … … 2652 2661 2653 2662 CASE ( 'w"s"' ) 2654 IF ( .NOT. passive_scalar )THEN2655 message_string = 'data_output_pr = ' // &2663 IF ( .NOT. passive_scalar ) THEN 2664 message_string = 'data_output_pr = ' // & 2656 2665 TRIM( data_output_pr(i) ) // ' is not imp' // & 2657 2666 'lemented for passive_scalar = .FALSE.' … … 2664 2673 2665 2674 CASE ( 'w*s*' ) 2666 IF ( .NOT. passive_scalar )THEN2667 message_string = 'data_output_pr = ' // &2675 IF ( .NOT. passive_scalar ) THEN 2676 message_string = 'data_output_pr = ' // & 2668 2677 TRIM( data_output_pr(i) ) // ' is not imp' // & 2669 2678 'lemented for passive_scalar = .FALSE.' … … 2676 2685 2677 2686 CASE ( 'ws' ) 2678 IF ( .NOT. passive_scalar )THEN2679 message_string = 'data_output_pr = ' // &2687 IF ( .NOT. passive_scalar ) THEN 2688 message_string = 'data_output_pr = ' // & 2680 2689 TRIM( data_output_pr(i) ) // ' is not imp' // & 2681 2690 'lemented for passive_scalar = .FALSE.' … … 2688 2697 2689 2698 CASE ( 'w"qv"' ) 2690 IF ( humidity .AND. .NOT. cloud_physics ) & 2691 THEN 2699 IF ( humidity .AND. .NOT. cloud_physics ) THEN 2692 2700 dopr_index(i) = 48 2693 2701 dopr_unit(i) = 'kg/kg m/s' 2694 2702 hom(:,2,48,:) = SPREAD( zw, 2, statistic_regions+1 ) 2695 ELSEIF ( humidity .AND. cloud_physics )THEN2703 ELSEIF ( humidity .AND. cloud_physics ) THEN 2696 2704 dopr_index(i) = 51 2697 2705 dopr_unit(i) = 'kg/kg m/s' 2698 2706 hom(:,2,51,:) = SPREAD( zw, 2, statistic_regions+1 ) 2699 2707 ELSE 2700 message_string = 'data_output_pr = ' // &2708 message_string = 'data_output_pr = ' // & 2701 2709 TRIM( data_output_pr(i) ) // ' is not imp' // & 2702 2710 'lemented for cloud_physics = .FALSE. an&' // & … … 2706 2714 2707 2715 CASE ( 'w*qv*' ) 2708 IF ( humidity .AND. .NOT. cloud_physics ) &2716 IF ( humidity .AND. .NOT. cloud_physics ) & 2709 2717 THEN 2710 2718 dopr_index(i) = 49 … … 2716 2724 hom(:,2,52,:) = SPREAD( zw, 2, statistic_regions+1 ) 2717 2725 ELSE 2718 message_string = 'data_output_pr = ' // &2726 message_string = 'data_output_pr = ' // & 2719 2727 TRIM( data_output_pr(i) ) // ' is not imp' // & 2720 2728 'lemented for cloud_physics = .FALSE. an&' // & … … 2724 2732 2725 2733 CASE ( 'wqv' ) 2726 IF ( humidity .AND. .NOT. cloud_physics ) & 2727 THEN 2734 IF ( humidity .AND. .NOT. cloud_physics ) THEN 2728 2735 dopr_index(i) = 50 2729 2736 dopr_unit(i) = 'kg/kg m/s' 2730 2737 hom(:,2,50,:) = SPREAD( zw, 2, statistic_regions+1 ) 2731 ELSEIF ( humidity .AND. cloud_physics )THEN2738 ELSEIF ( humidity .AND. cloud_physics ) THEN 2732 2739 dopr_index(i) = 53 2733 2740 dopr_unit(i) = 'kg/kg m/s' … … 2742 2749 2743 2750 CASE ( 'ql' ) 2744 IF ( .NOT. cloud_physics .AND. .NOT.cloud_droplets ) THEN2751 IF ( .NOT. cloud_physics .AND. .NOT. cloud_droplets ) THEN 2745 2752 message_string = 'data_output_pr = ' // & 2746 2753 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2801 2808 2802 2809 CASE ( 'rho' ) 2803 IF ( .NOT.ocean ) THEN2810 IF ( .NOT. ocean ) THEN 2804 2811 message_string = 'data_output_pr = ' // & 2805 2812 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2819 2826 2820 2827 CASE ( 'w"sa"' ) 2821 IF ( .NOT.ocean ) THEN2828 IF ( .NOT. ocean ) THEN 2822 2829 message_string = 'data_output_pr = ' // & 2823 2830 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2831 2838 2832 2839 CASE ( 'w*sa*' ) 2833 IF ( .NOT. ocean) THEN2840 IF ( .NOT. ocean ) THEN 2834 2841 message_string = 'data_output_pr = ' // & 2835 2842 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2843 2850 2844 2851 CASE ( 'wsa' ) 2845 IF ( .NOT.ocean ) THEN2852 IF ( .NOT. ocean ) THEN 2846 2853 message_string = 'data_output_pr = ' // & 2847 2854 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2865 2872 2866 2873 CASE ( 'q*2' ) 2867 IF ( .NOT.humidity ) THEN2874 IF ( .NOT. humidity ) THEN 2868 2875 message_string = 'data_output_pr = ' // & 2869 2876 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2877 2884 2878 2885 CASE ( 'prho' ) 2879 IF ( .NOT.ocean ) THEN2886 IF ( .NOT. ocean ) THEN 2880 2887 message_string = 'data_output_pr = ' // & 2881 2888 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2894 2901 2895 2902 CASE ( 'nr' ) 2896 IF ( .NOT.cloud_physics ) THEN2903 IF ( .NOT. cloud_physics ) THEN 2897 2904 message_string = 'data_output_pr = ' // & 2898 2905 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2904 2911 'lemented for cloud_scheme /= seifert_beheng' 2905 2912 CALL message( 'check_parameters', 'PA0358', 1, 2, 0, 6, 0 ) 2906 ELSEIF ( .NOT.precipitation ) THEN2913 ELSEIF ( .NOT. precipitation ) THEN 2907 2914 message_string = 'data_output_pr = ' // & 2908 2915 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2916 2923 2917 2924 CASE ( 'qr' ) 2918 IF ( .NOT.cloud_physics ) THEN2925 IF ( .NOT. cloud_physics ) THEN 2919 2926 message_string = 'data_output_pr = ' // & 2920 2927 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2926 2933 'lemented for cloud_scheme /= seifert_beheng' 2927 2934 CALL message( 'check_parameters', 'PA0358', 1, 2, 0, 6, 0 ) 2928 ELSEIF ( .NOT.precipitation ) THEN2935 ELSEIF ( .NOT. precipitation ) THEN 2929 2936 message_string = 'data_output_pr = ' // & 2930 2937 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2938 2945 2939 2946 CASE ( 'qc' ) 2940 IF ( .NOT.cloud_physics ) THEN2947 IF ( .NOT. cloud_physics ) THEN 2941 2948 message_string = 'data_output_pr = ' // & 2942 2949 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2955 2962 2956 2963 CASE ( 'prr' ) 2957 IF ( .NOT.cloud_physics ) THEN2964 IF ( .NOT. cloud_physics ) THEN 2958 2965 message_string = 'data_output_pr = ' // & 2959 2966 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2965 2972 'lemented for cloud_scheme /= seifert_beheng' 2966 2973 CALL message( 'check_parameters', 'PA0358', 1, 2, 0, 6, 0 ) 2967 ELSEIF ( .NOT.precipitation ) THEN2974 ELSEIF ( .NOT. precipitation ) THEN 2968 2975 message_string = 'data_output_pr = ' // & 2969 2976 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 2988 2995 2989 2996 CASE ( 'w_subs' ) 2990 IF ( .NOT.large_scale_subsidence ) THEN2997 IF ( .NOT. large_scale_subsidence ) THEN 2991 2998 message_string = 'data_output_pr = ' // & 2992 2999 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 3000 3007 3001 3008 CASE ( 'td_lsa_lpt' ) 3002 IF ( .NOT.large_scale_forcing ) THEN3009 IF ( .NOT. large_scale_forcing ) THEN 3003 3010 message_string = 'data_output_pr = ' // & 3004 3011 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 3012 3019 3013 3020 CASE ( 'td_lsa_q' ) 3014 IF ( .NOT.large_scale_forcing ) THEN3021 IF ( .NOT. large_scale_forcing ) THEN 3015 3022 message_string = 'data_output_pr = ' // & 3016 3023 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 3024 3031 3025 3032 CASE ( 'td_sub_lpt' ) 3026 IF ( .NOT.large_scale_forcing ) THEN3033 IF ( .NOT. large_scale_forcing ) THEN 3027 3034 message_string = 'data_output_pr = ' // & 3028 3035 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 3036 3043 3037 3044 CASE ( 'td_sub_q' ) 3038 IF ( .NOT.large_scale_forcing ) THEN3045 IF ( .NOT. large_scale_forcing ) THEN 3039 3046 message_string = 'data_output_pr = ' // & 3040 3047 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 3048 3055 3049 3056 CASE ( 'td_nud_lpt' ) 3050 IF ( .NOT.nudging ) THEN3057 IF ( .NOT. nudging ) THEN 3051 3058 message_string = 'data_output_pr = ' // & 3052 3059 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 3060 3067 3061 3068 CASE ( 'td_nud_q' ) 3062 IF ( .NOT.nudging ) THEN3069 IF ( .NOT. nudging ) THEN 3063 3070 message_string = 'data_output_pr = ' // & 3064 3071 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 3072 3079 3073 3080 CASE ( 'td_nud_u' ) 3074 IF ( .NOT.nudging ) THEN3081 IF ( .NOT. nudging ) THEN 3075 3082 message_string = 'data_output_pr = ' // & 3076 3083 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 3084 3091 3085 3092 CASE ( 'td_nud_v' ) 3086 IF ( .NOT.nudging ) THEN3093 IF ( .NOT. nudging ) THEN 3087 3094 message_string = 'data_output_pr = ' // & 3088 3095 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 3096 3103 3097 3104 CASE ( 't_soil', '#t_soil' ) 3098 IF ( .NOT.land_surface ) THEN3105 IF ( .NOT. land_surface ) THEN 3099 3106 message_string = 'data_output_pr = ' // & 3100 3107 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 3113 3120 3114 3121 CASE ( 'm_soil', '#m_soil' ) 3115 IF ( .NOT.land_surface ) THEN3122 IF ( .NOT. land_surface ) THEN 3116 3123 message_string = 'data_output_pr = ' // & 3117 3124 TRIM( data_output_pr(i) ) // ' is not imp' // & … … 3130 3137 3131 3138 CASE ( 'rad_net' ) 3132 IF ( (.NOT. radiation) .OR. radiation_scheme == 'constant' ) THEN 3139 IF ( ( .NOT. radiation ) .OR. radiation_scheme == 'constant' )& 3140 THEN 3133 3141 message_string = 'data_output_pr = ' // & 3134 3142 TRIM( data_output_pr(i) ) // ' is not ava' // & … … 3143 3151 3144 3152 CASE ( 'rad_lw_in' ) 3145 IF ( (.NOT. radiation) .OR. radiation_scheme == 'constant' ) THEN 3153 IF ( ( .NOT. radiation) .OR. radiation_scheme == 'constant' ) & 3154 THEN 3146 3155 message_string = 'data_output_pr = ' // & 3147 3156 TRIM( data_output_pr(i) ) // ' is not ava' // & … … 3156 3165 3157 3166 CASE ( 'rad_lw_out' ) 3158 IF ( (.NOT. radiation) .OR. radiation_scheme == 'constant' ) THEN 3167 IF ( ( .NOT. radiation ) .OR. radiation_scheme == 'constant' ) & 3168 THEN 3159 3169 message_string = 'data_output_pr = ' // & 3160 3170 TRIM( data_output_pr(i) ) // ' is not ava' // & … … 3169 3179 3170 3180 CASE ( 'rad_sw_in' ) 3171 IF ( (.NOT. radiation) .OR. radiation_scheme == 'constant' ) THEN 3181 IF ( ( .NOT. radiation ) .OR. radiation_scheme == 'constant' ) & 3182 THEN 3172 3183 message_string = 'data_output_pr = ' // & 3173 3184 TRIM( data_output_pr(i) ) // ' is not ava' // & … … 3182 3193 3183 3194 CASE ( 'rad_sw_out') 3184 IF ( (.NOT. radiation) .OR. radiation_scheme == 'constant' ) THEN 3195 IF ( ( .NOT. radiation ) .OR. radiation_scheme == 'constant' ) & 3196 THEN 3185 3197 message_string = 'data_output_pr = ' // & 3186 3198 TRIM( data_output_pr(i) ) // ' is not ava' // & … … 3195 3207 3196 3208 CASE ( 'rad_lw_cs_hr' ) 3197 IF ( (.NOT. radiation) .OR. radiation_scheme /= 'rrtmg' ) THEN 3209 IF ( ( .NOT. radiation ) .OR. radiation_scheme /= 'rrtmg' ) & 3210 THEN 3198 3211 message_string = 'data_output_pr = ' // & 3199 3212 TRIM( data_output_pr(i) ) // ' is not ava' // & … … 3208 3221 3209 3222 CASE ( 'rad_lw_hr' ) 3210 IF ( (.NOT. radiation) .OR. radiation_scheme /= 'rrtmg' ) THEN 3223 IF ( ( .NOT. radiation ) .OR. radiation_scheme /= 'rrtmg' ) & 3224 THEN 3211 3225 message_string = 'data_output_pr = ' // & 3212 3226 TRIM( data_output_pr(i) ) // ' is not ava' // & … … 3221 3235 3222 3236 CASE ( 'rad_sw_cs_hr' ) 3223 IF ( (.NOT. radiation) .OR. radiation_scheme /= 'rrtmg' ) THEN 3237 IF ( ( .NOT. radiation ) .OR. radiation_scheme /= 'rrtmg' ) & 3238 THEN 3224 3239 message_string = 'data_output_pr = ' // & 3225 3240 TRIM( data_output_pr(i) ) // ' is not ava' // & … … 3234 3249 3235 3250 CASE ( 'rad_sw_hr' ) 3236 IF ( (.NOT. radiation) .OR. radiation_scheme /= 'rrtmg' ) THEN 3251 IF ( ( .NOT. radiation ) .OR. radiation_scheme /= 'rrtmg' ) & 3252 THEN 3237 3253 message_string = 'data_output_pr = ' // & 3238 3254 TRIM( data_output_pr(i) ) // ' is not ava' // & … … 3329 3345 3330 3346 CASE ( 'lpt' ) 3331 IF ( .NOT.cloud_physics ) THEN3347 IF ( .NOT. cloud_physics ) THEN 3332 3348 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3333 3349 'res cloud_physics = .TRUE.' … … 3337 3353 3338 3354 CASE ( 'm_soil' ) 3339 IF ( .NOT.land_surface ) THEN3355 IF ( .NOT. land_surface ) THEN 3340 3356 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3341 3357 'land_surface = .TRUE.' … … 3345 3361 3346 3362 CASE ( 'nr' ) 3347 IF ( .NOT.cloud_physics ) THEN3363 IF ( .NOT. cloud_physics ) THEN 3348 3364 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3349 3365 'res cloud_physics = .TRUE.' … … 3357 3373 3358 3374 CASE ( 'pc', 'pr' ) 3359 IF ( .NOT.particle_advection ) THEN3375 IF ( .NOT. particle_advection ) THEN 3360 3376 message_string = 'output of "' // TRIM( var ) // '" requir' // & 3361 3377 'es a "particles_par"-NAMELIST in the parameter file (PARIN)' … … 3366 3382 3367 3383 CASE ( 'prr' ) 3368 IF ( .NOT.cloud_physics ) THEN3384 IF ( .NOT. cloud_physics ) THEN 3369 3385 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3370 3386 'res cloud_physics = .TRUE.' … … 3374 3390 'res cloud_scheme = seifert_beheng' 3375 3391 CALL message( 'check_parameters', 'PA0359', 1, 2, 0, 6, 0 ) 3376 ELSEIF ( .NOT.precipitation ) THEN3392 ELSEIF ( .NOT. precipitation ) THEN 3377 3393 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3378 3394 'res precipitation = .TRUE.' … … 3382 3398 3383 3399 CASE ( 'q', 'vpt' ) 3384 IF ( .NOT.humidity ) THEN3400 IF ( .NOT. humidity ) THEN 3385 3401 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3386 3402 'res humidity = .TRUE.' … … 3391 3407 3392 3408 CASE ( 'qc' ) 3393 IF ( .NOT.cloud_physics ) THEN3409 IF ( .NOT. cloud_physics ) THEN 3394 3410 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3395 3411 'res cloud_physics = .TRUE.' … … 3403 3419 3404 3420 CASE ( 'ql' ) 3405 IF ( .NOT. ( cloud_physics .OR. cloud_droplets ) ) THEN3421 IF ( .NOT. ( cloud_physics .OR. cloud_droplets ) ) THEN 3406 3422 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3407 3423 'res cloud_physics = .TRUE. or cloud_droplets = .TRUE.' … … 3411 3427 3412 3428 CASE ( 'ql_c', 'ql_v', 'ql_vp' ) 3413 IF ( .NOT.cloud_droplets ) THEN3429 IF ( .NOT. cloud_droplets ) THEN 3414 3430 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3415 3431 'res cloud_droplets = .TRUE.' … … 3421 3437 3422 3438 CASE ( 'qr' ) 3423 IF ( .NOT.cloud_physics ) THEN3439 IF ( .NOT. cloud_physics ) THEN 3424 3440 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3425 3441 'res cloud_physics = .TRUE.' … … 3429 3445 'res cloud_scheme = seifert_beheng' 3430 3446 CALL message( 'check_parameters', 'PA0359', 1, 2, 0, 6, 0 ) 3431 ELSEIF ( .NOT.precipitation ) THEN3447 ELSEIF ( .NOT. precipitation ) THEN 3432 3448 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3433 3449 'res precipitation = .TRUE.' … … 3437 3453 3438 3454 CASE ( 'qv' ) 3439 IF ( .NOT.cloud_physics ) THEN3455 IF ( .NOT. cloud_physics ) THEN 3440 3456 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3441 3457 'res cloud_physics = .TRUE.' … … 3446 3462 CASE ( 'rad_lw_in', 'rad_lw_out', 'rad_lw_cs_hr', 'rad_lw_hr', & 3447 3463 'rad_sw_in', 'rad_sw_out', 'rad_sw_cs_hr', 'rad_sw_hr' ) 3448 IF ( .NOT. radiation .OR.radiation_scheme /= 'rrtmg' ) THEN3464 IF ( .NOT. radiation .OR. radiation_scheme /= 'rrtmg' ) THEN 3449 3465 message_string = '"output of "' // TRIM( var ) // '" requi' // & 3450 3466 'res radiation = .TRUE. and ' // & … … 3455 3471 3456 3472 CASE ( 'rho' ) 3457 IF ( .NOT.ocean ) THEN3473 IF ( .NOT. ocean ) THEN 3458 3474 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3459 3475 'res ocean = .TRUE.' … … 3463 3479 3464 3480 CASE ( 's' ) 3465 IF ( .NOT.passive_scalar ) THEN3481 IF ( .NOT. passive_scalar ) THEN 3466 3482 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3467 3483 'res passive_scalar = .TRUE.' … … 3471 3487 3472 3488 CASE ( 'sa' ) 3473 IF ( .NOT.ocean ) THEN3489 IF ( .NOT. ocean ) THEN 3474 3490 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3475 3491 'res ocean = .TRUE.' … … 3479 3495 3480 3496 CASE ( 't_soil' ) 3481 IF ( .NOT.land_surface ) THEN3497 IF ( .NOT. land_surface ) THEN 3482 3498 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3483 3499 'land_surface = .TRUE.' … … 3491 3507 'qsws_liq_eb*', 'qsws_soil_eb*', 'qsws_veg_eb*', 'rad_net*', & 3492 3508 'rrtm_aldif*', 'rrtm_aldir*', 'rrtm_asdif*', 'rrtm_asdir*', & 3493 'r_a*', 'r_s*', 'shf*', 'shf_eb*', 't*', 'u*', 'z0*', 'z0h*' ) 3509 'r_a*', 'r_s*', 'shf*', 'shf_eb*', 't*', 'u*', 'z0*', 'z0h*', & 3510 'z0q*' ) 3494 3511 IF ( k == 0 .OR. data_output(i)(ilen-2:ilen) /= '_xy' ) THEN 3495 3512 message_string = 'illegal value for data_output: "' // & … … 3498 3515 CALL message( 'check_parameters', 'PA0111', 1, 2, 0, 6, 0 ) 3499 3516 ENDIF 3500 IF ( .NOT. radiation .OR.radiation_scheme /= "rrtmg" ) THEN3501 IF ( TRIM( var ) == 'rrtm_aldif*' .OR.&3502 TRIM( var ) == 'rrtm_aldir*' .OR.&3503 TRIM( var ) == 'rrtm_asdif*' .OR.&3517 IF ( .NOT. radiation .OR. radiation_scheme /= "rrtmg" ) THEN 3518 IF ( TRIM( var ) == 'rrtm_aldif*' .OR. & 3519 TRIM( var ) == 'rrtm_aldir*' .OR. & 3520 TRIM( var ) == 'rrtm_asdif*' .OR. & 3504 3521 TRIM( var ) == 'rrtm_asdir*' ) & 3505 3522 THEN … … 3511 3528 ENDIF 3512 3529 3513 IF ( TRIM( var ) == 'c_liq*' .AND. .NOT. land_surface ) THEN3530 IF ( TRIM( var ) == 'c_liq*' .AND. .NOT. land_surface ) THEN 3514 3531 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3515 3532 'res land_surface = .TRUE.' 3516 3533 CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 ) 3517 3534 ENDIF 3518 IF ( TRIM( var ) == 'c_soil*' .AND. .NOT. land_surface ) THEN3535 IF ( TRIM( var ) == 'c_soil*' .AND. .NOT. land_surface ) THEN 3519 3536 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3520 3537 'res land_surface = .TRUE.' … … 3526 3543 CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 ) 3527 3544 ENDIF 3528 IF ( TRIM( var ) == 'ghf_eb*' .AND. .NOT. land_surface ) THEN3545 IF ( TRIM( var ) == 'ghf_eb*' .AND. .NOT. land_surface ) THEN 3529 3546 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3530 3547 'res land_surface = .TRUE.' 3531 3548 CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 ) 3532 3549 ENDIF 3533 IF ( TRIM( var ) == 'lai*' .AND. .NOT. land_surface ) THEN3550 IF ( TRIM( var ) == 'lai*' .AND. .NOT. land_surface ) THEN 3534 3551 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3535 3552 'res land_surface = .TRUE.' … … 3541 3558 CALL message( 'check_parameters', 'PA0108', 1, 2, 0, 6, 0 ) 3542 3559 ENDIF 3543 IF ( TRIM( var ) == 'm_liq_eb*' .AND. .NOT. land_surface ) THEN3560 IF ( TRIM( var ) == 'm_liq_eb*' .AND. .NOT. land_surface ) THEN 3544 3561 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3545 3562 'res land_surface = .TRUE.' … … 3556 3573 CALL message( 'check_parameters', 'PA0113', 1, 2, 0, 6, 0 ) 3557 3574 ENDIF 3558 IF ( TRIM( var ) == 'prr*' .AND. .NOT. precipitation ) THEN3575 IF ( TRIM( var ) == 'prr*' .AND. .NOT. precipitation ) THEN 3559 3576 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3560 3577 'res precipitation = .TRUE.' 3561 3578 CALL message( 'check_parameters', 'PA0112', 1, 2, 0, 6, 0 ) 3562 3579 ENDIF 3563 IF ( TRIM( var ) == 'qsws*' .AND. .NOT. humidity ) THEN3580 IF ( TRIM( var ) == 'qsws*' .AND. .NOT. humidity ) THEN 3564 3581 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3565 3582 'res humidity = .TRUE.' 3566 3583 CALL message( 'check_parameters', 'PA0322', 1, 2, 0, 6, 0 ) 3567 3584 ENDIF 3568 IF ( TRIM( var ) == 'qsws_eb*' .AND. .NOT. land_surface ) THEN3585 IF ( TRIM( var ) == 'qsws_eb*' .AND. .NOT. land_surface ) THEN 3569 3586 message_string = 'output of "' // TRIM( var ) // '" requi' // & 3570 3587 'res land_surface = .TRUE.' 3571 3588 CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 ) 3572 3589 ENDIF 3573 IF ( TRIM( var ) == 'qsws_liq_eb*' .AND. .NOT. land_surface ) &3590 IF ( TRIM( var ) == 'qsws_liq_eb*' .AND. .NOT. land_surface ) & 3574 3591 THEN 3575 3592 message_string = 'output of "' // TRIM( var ) // '" requi' // & … … 3577 3594 CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 ) 3578 3595 ENDIF 3579 IF ( TRIM( var ) == 'qsws_soil_eb*' .AND. .NOT. land_surface ) &3596 IF ( TRIM( var ) == 'qsws_soil_eb*' .AND. .NOT. land_surface ) & 3580 3597 THEN 3581 3598 message_string = 'output of "' // TRIM( var ) // '" requi' // & … … 3583 3600 CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 ) 3584 3601 ENDIF 3585 IF ( TRIM( var ) == 'qsws_veg_eb*' .AND. .NOT. land_surface ) &3602 IF ( TRIM( var ) == 'qsws_veg_eb*' .AND. .NOT. land_surface ) & 3586 3603 THEN 3587 3604 message_string = 'output of "' // TRIM( var ) // '" requi' // & … … 3589 3606 CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 ) 3590 3607 ENDIF 3591 IF ( TRIM( var ) == 'r_a*' .AND. .NOT. land_surface ) &3608 IF ( TRIM( var ) == 'r_a*' .AND. .NOT. land_surface ) & 3592 3609 THEN 3593 3610 message_string = 'output of "' // TRIM( var ) // '" requi' // & … … 3595 3612 CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 ) 3596 3613 ENDIF 3597 IF ( TRIM( var ) == 'r_s*' .AND. .NOT. land_surface ) &3614 IF ( TRIM( var ) == 'r_s*' .AND. .NOT. land_surface ) & 3598 3615 THEN 3599 3616 message_string = 'output of "' // TRIM( var ) // '" requi' // & … … 3757 3774 !-- Check mask conditions 3758 3775 DO mid = 1, max_masks 3759 IF ( data_output_masks(mid,1) /= ' ' .OR.&3776 IF ( data_output_masks(mid,1) /= ' ' .OR. & 3760 3777 data_output_masks_user(mid,1) /= ' ' ) THEN 3761 3778 masks = masks + 1 … … 3763 3780 ENDDO 3764 3781 3765 IF ( masks < 0 .OR.masks > max_masks ) THEN3782 IF ( masks < 0 .OR. masks > max_masks ) THEN 3766 3783 WRITE( message_string, * ) 'illegal value: masks must be >= 0 and ', & 3767 3784 '<= ', max_masks, ' (=max_masks)' … … 3908 3925 ! 3909 3926 !-- Check random generator 3910 IF ( (random_generator /= 'system-specific' .AND.&3911 random_generator /= 'random-parallel' ) .AND.&3927 IF ( (random_generator /= 'system-specific' .AND. & 3928 random_generator /= 'random-parallel' ) .AND. & 3912 3929 random_generator /= 'numerical-recipes' ) THEN 3913 3930 message_string = 'unknown random generator: random_generator = "' // & … … 3919 3936 !-- Determine upper and lower hight level indices for random perturbations 3920 3937 IF ( disturbance_level_b == -9999999.9_wp ) THEN 3921 IF ( ocean ) THEN3938 IF ( ocean ) THEN 3922 3939 disturbance_level_b = zu((nzt*2)/3) 3923 3940 disturbance_level_ind_b = ( nzt * 2 ) / 3 … … 4182 4199 ! 4183 4200 !-- Check pressure gradient conditions 4184 IF ( dp_external .AND.conserve_volume_flow ) THEN4201 IF ( dp_external .AND. conserve_volume_flow ) THEN 4185 4202 WRITE( message_string, * ) 'Both dp_external and conserve_volume_flo', & 4186 4203 'w are .TRUE. but one of them must be .FALSE.' … … 4188 4205 ENDIF 4189 4206 IF ( dp_external ) THEN 4190 IF ( dp_level_b < zu(nzb) .OR.dp_level_b > zu(nzt) ) THEN4207 IF ( dp_level_b < zu(nzb) .OR. dp_level_b > zu(nzt) ) THEN 4191 4208 WRITE( message_string, * ) 'dp_level_b = ', dp_level_b, ' is out ', & 4192 4209 ' of range' … … 4199 4216 ENDIF 4200 4217 ENDIF 4201 IF ( ANY( dpdxy /= 0.0_wp ) .AND. .NOT.dp_external ) THEN4218 IF ( ANY( dpdxy /= 0.0_wp ) .AND. .NOT. dp_external ) THEN 4202 4219 WRITE( message_string, * ) 'dpdxy is nonzero but dp_external is ', & 4203 4220 '.FALSE., i.e. the external pressure gradient & will not be applied' … … 4230 4247 ENDIF 4231 4248 ENDIF 4232 IF ( ( u_bulk /= 0.0_wp .OR. v_bulk /= 0.0_wp ) .AND.&4233 ( .NOT. conserve_volume_flow .OR.&4249 IF ( ( u_bulk /= 0.0_wp .OR. v_bulk /= 0.0_wp ) .AND. & 4250 ( .NOT. conserve_volume_flow .OR. & 4234 4251 TRIM( conserve_volume_flow_mode ) /= 'bulk_velocity' ) ) THEN 4235 4252 WRITE( message_string, * ) 'nonzero bulk velocity requires ', & … … 4270 4287 ! 4271 4288 !-- Check nudging and large scale forcing from external file 4272 IF ( nudging .AND. ( .NOT.large_scale_forcing ) ) THEN4289 IF ( nudging .AND. ( .NOT. large_scale_forcing ) ) THEN 4273 4290 message_string = 'Nudging requires large_scale_forcing = .T.. &'// & 4274 4291 'Surface fluxes and geostrophic wind should be &'// & … … 4277 4294 ENDIF 4278 4295 4279 IF ( large_scale_forcing .AND. ( bc_lr /= 'cyclic' .OR.&4296 IF ( large_scale_forcing .AND. ( bc_lr /= 'cyclic' .OR. & 4280 4297 bc_ns /= 'cyclic' ) ) THEN 4281 4298 message_string = 'Non-cyclic lateral boundaries do not allow for &' // & … … 4284 4301 ENDIF 4285 4302 4286 IF ( large_scale_forcing .AND. ( .NOT.humidity ) ) THEN4303 IF ( large_scale_forcing .AND. ( .NOT. humidity ) ) THEN 4287 4304 message_string = 'The usage of large scale forcing from external &'// & 4288 4305 'file LSF_DATA requires humidity = .T..' … … 4290 4307 ENDIF 4291 4308 4292 IF ( large_scale_forcing .AND.topography /= 'flat' ) THEN4309 IF ( large_scale_forcing .AND. topography /= 'flat' ) THEN 4293 4310 message_string = 'The usage of large scale forcing from external &'// & 4294 4311 'file LSF_DATA is not implemented for non-flat topography' … … 4296 4313 ENDIF 4297 4314 4298 IF ( large_scale_forcing .AND. ocean ) THEN4315 IF ( large_scale_forcing .AND. ocean ) THEN 4299 4316 message_string = 'The usage of large scale forcing from external &'// & 4300 4317 'file LSF_DATA is not implemented for ocean runs' … … 4320 4337 !-- Check for valid setting of most_method 4321 4338 IF ( TRIM( most_method ) /= 'circular' .AND. & 4322 TRIM( most_method ) /= 'newton' .AND.&4339 TRIM( most_method ) /= 'newton' .AND. & 4323 4340 TRIM( most_method ) /= 'lookup' ) THEN 4324 message_string = 'most_method = "' // TRIM( most_method ) // &4341 message_string = 'most_method = "' // TRIM( most_method ) // & 4325 4342 '" is unknown' 4326 4343 CALL message( 'check_parameters', 'PA0416', 1, 2, 0, 6, 0 ) … … 4352 4369 IF ( dt_do == 0.0_wp ) THEN 4353 4370 IF ( dt_fixed ) THEN 4354 WRITE( message_string, '(A,F9.4,A)' ) 'Output at every ' // &4355 'timestep is desired (' // dt_do_name // ' = 0.0).&'// &4356 'Setting the output interval to the fixed timestep '// &4371 WRITE( message_string, '(A,F9.4,A)' ) 'Output at every ' // & 4372 'timestep is desired (' // dt_do_name // ' = 0.0).&'// & 4373 'Setting the output interval to the fixed timestep '// & 4357 4374 'dt = ', dt, 's.' 4358 4375 CALL message( 'check_parameters', 'PA0060', 0, 0, 0, 6, 0 ) 4359 4376 dt_do = dt 4360 4377 ELSE 4361 message_string = dt_do_name // ' = 0.0 while using a ' // &4362 'variable timestep and parallel netCDF4 ' // &4378 message_string = dt_do_name // ' = 0.0 while using a ' // & 4379 'variable timestep and parallel netCDF4 ' // & 4363 4380 'is not allowed.' 4364 4381 CALL message( 'check_parameters', 'PA0081', 1, 2, 0, 6, 0 )
Note: See TracChangeset
for help on using the changeset viewer.