Changeset 4047 for palm/trunk/SOURCE/module_interface.f90
- Timestamp:
- Jun 21, 2019 6:58:09 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/module_interface.f90
r4039 r4047 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Introduction of the dynamics module 28 ! 29 ! 4039 2019-06-18 10:32:41Z suehring 27 30 ! Introduce diagnostic output 28 ! 31 ! 29 32 ! 4028 2019-06-13 12:21:37Z schwenkel 30 33 ! Further modularization of particle code components 31 ! 34 ! 32 35 ! 4017 2019-06-06 12:16:46Z schwenkel 33 ! local_pf need INTENT(INOUT) attribute rather than INTENT(OUT). This is 36 ! local_pf need INTENT(INOUT) attribute rather than INTENT(OUT). This is 34 37 ! because INTENT(OUT) sets the array to not-defined. Especially for outputs that 35 ! are not defined everywhere, e.g. land-surface outputs, this will be 36 ! problematic as NaN will be output. 37 ! 38 ! are not defined everywhere, e.g. land-surface outputs, this will be 39 ! problematic as NaN will be output. 40 ! 38 41 ! 3987 2019-05-22 09:52:13Z kanani 39 42 ! Introduce switchable DEBUG file output via debug_message routine 40 ! 43 ! 41 44 ! 3956 2019-05-07 12:32:52Z monakurppa 42 ! - Added calls for salsa_non_advective_processes and 45 ! - Added calls for salsa_non_advective_processes and 43 46 ! salsa_exchange_horiz_bounds 44 47 ! - Moved the call for salsa_data_output_2d/3d before that of … … 46 49 ! salsa output variable and encounters a segmentation fault for "Ntot" due 47 50 ! to the shortoutput name 48 ! 51 ! 49 52 ! 3931 2019-04-24 16:34:28Z schwenkel 50 53 ! Changed non_transport_physics to non_advective_processes 51 ! 54 ! 52 55 ! 3930 2019-04-24 14:57:18Z forkel 53 56 ! Correct/complete module_interface introduction for chemistry model 54 57 ! 55 58 ! 3887 2019 -04-12 08:47:41Z schwenkel 56 ! Changes related to global restructuring of location messages and introduction 59 ! Changes related to global restructuring of location messages and introduction 57 60 ! of additional debug messages 58 ! 61 ! 59 62 ! 3880 2019 -04-08 21:43:02Z knoop 60 63 ! Add a call for salsa_prognostic_equations 61 ! 64 ! 62 65 ! 3840 2019-03-29 10:35:52Z knoop 63 66 ! bugfix: intent of dummy arguments changed to inout 64 ! 67 ! 65 68 ! 3770 2019-02-28 11:22:32Z moh.hefny 66 69 ! removed unused variables in module_interface_check_data_output_ts … … 68 71 ! 3767 08:18:02Z raasch 69 72 ! unused variable file_index removed from subroutine parameter list 70 ! 73 ! 71 74 ! 3766 2019-02-26 16:23:41Z raasch 72 75 ! first argument removed from module_interface_rrd_*, statement added to avoid 73 76 ! compiler warning about unused variable, file reformatted with respect to coding 74 77 ! standards 75 ! 78 ! 76 79 ! 3762 2019-02-25 16:54:16Z suehring 77 80 ! only pass required arguments to surface_data_output_rrd_local 78 ! 81 ! 79 82 ! 3747 2019-02-16 15:15:23Z gronemeier 80 83 ! Call user_init_arrays 81 ! 84 ! 82 85 ! 3745 2019-02-15 18:57:56Z suehring 83 86 ! Add indoor model 84 ! 87 ! 85 88 ! 3744 2019-02-15 18:38:58Z suehring 86 89 ! Removed bio_check_parameters as the method is empty. 87 ! 90 ! 88 91 ! 3735 2019-02-12 09:52:40Z dom_dwd_user 89 ! Accepting variable j from check_parameters and passing it to 92 ! Accepting variable j from check_parameters and passing it to 90 93 ! bio_check_data_output 91 94 ! Add required restart data for surface output module 92 ! 95 ! 93 96 ! 3731 2019-02-11 13:06:27Z suehring 94 97 ! Add check_parameters routine for virtual measurements 95 ! 98 ! 96 99 ! 3711 2019-01-31 13:44:26Z knoop 97 100 ! Introduced module_interface_init_checks for post-init checks 98 ! 101 ! 99 102 ! 3705 2019-01-29 19:56:39Z suehring 100 103 ! Add last_actions for virtual measurements 101 ! 104 ! 102 105 ! 3704 2019-01-29 19:51:41Z suehring 103 106 ! Some interface calls moved to module_interface + cleanup 104 ! 107 ! 105 108 ! 3684 2019-01-20 20:20:58Z knoop 106 109 ! Bugfix: made unit intend INOUT 107 ! 110 ! 108 111 ! 3650 2019-01-04 13:01:33Z kanani 109 112 ! Add restart routines for biometeorology 110 ! 113 ! 111 114 ! 3649 2019-01-02 16:52:21Z suehring 112 115 ! Initialize strings, in order to avoid compiler warnings for non-initialized 113 116 ! characters with intent(out) attribute 114 ! 117 ! 115 118 ! 3648 2019-01-02 16:35:46Z suehring 116 119 ! Rename subroutines for surface-data output 117 ! 120 ! 118 121 ! 3641 2018-12-23 22:10:01Z knoop 119 122 ! Initial implementation of the PALM module interface 120 123 ! 121 ! 124 ! 122 125 ! Description: 123 126 ! ------------ … … 136 139 !-- load module-specific control parameters. 137 140 !-- ToDo: move all of them to respective module or a dedicated central module 141 142 USE dynamics_mod, & 143 ONLY: dynamics_parin, & 144 dynamics_check_parameters, & 145 dynamics_check_data_output_ts, & 146 dynamics_check_data_output_pr, & 147 dynamics_check_data_output, & 148 dynamics_init_masks, & 149 dynamics_define_netcdf_grid, & 150 dynamics_init_arrays, & 151 dynamics_init, & 152 dynamics_init_checks, & 153 dynamics_header, & 154 dynamics_actions, & 155 dynamics_non_advective_processes, & 156 dynamics_exchange_horiz, & 157 dynamics_prognostic_equations, & 158 dynamics_swap_timelevel, & 159 dynamics_3d_data_averaging, & 160 dynamics_data_output_2d, & 161 dynamics_data_output_3d, & 162 dynamics_statistics, & 163 dynamics_rrd_global, & 164 dynamics_rrd_local, & 165 dynamics_wrd_global, & 166 dynamics_wrd_local, & 167 dynamics_last_actions 168 169 USE turbulence_closure_mod, & 170 ONLY: tcm_swap_timelevel 171 138 172 USE control_parameters, & 139 173 ONLY: air_chemistry, & … … 213 247 chem_rrd_local, & 214 248 chem_wrd_local 215 216 USE diagnostic_output_quantities_mod, & 249 250 USE diagnostic_output_quantities_mod, & 217 251 ONLY: doq_3d_data_averaging, & 218 252 doq_check_data_output, & … … 257 291 im_data_output_3d, & 258 292 im_init 259 293 260 294 USE lagrangian_particle_model_mod, & 261 295 ONLY: lpm_parin, & 262 296 lpm_header, & 263 297 lpm_check_parameters, & 264 lpm_init_arrays, & 298 lpm_init_arrays, & 265 299 lpm_init, & 266 300 lpm_actions, & … … 269 303 lpm_wrd_local, & 270 304 lpm_wrd_global 271 305 272 306 USE land_surface_model_mod, & 273 307 ONLY: lsm_parin, & … … 317 351 ocean_rrd_local, & 318 352 ocean_wrd_local 319 353 320 354 USE particle_attributes, & 321 ONLY: particle_advection 355 ONLY: particle_advection 322 356 323 357 USE plant_canopy_model_mod, & … … 394 428 usm_rrd_local, & 395 429 usm_wrd_local 430 431 USE virtual_measurement_mod, & 432 ONLY: vm_check_parameters, & 433 vm_init, & 434 vm_last_actions, & 435 vm_parin 436 437 USE wind_turbine_model_mod, & 438 ONLY: wtm_parin, & 439 wtm_check_parameters, & 440 wtm_init_arrays, & 441 wtm_init, & 442 wtm_actions, & 443 wtm_rrd_global, & 444 wtm_wrd_global 396 445 397 446 USE user, & … … 415 464 user_wrd_local, & 416 465 user_last_actions 417 418 USE virtual_measurement_mod, &419 ONLY: vm_check_parameters, &420 vm_init, &421 vm_last_actions, &422 vm_parin423 424 USE wind_turbine_model_mod, &425 ONLY: wtm_parin, &426 wtm_check_parameters, &427 wtm_init_arrays, &428 wtm_init, &429 wtm_actions, &430 wtm_rrd_global, &431 wtm_wrd_global432 466 433 467 IMPLICIT NONE … … 518 552 MODULE PROCEDURE module_interface_non_advective_processes_ij 519 553 END INTERFACE module_interface_non_advective_processes 520 554 521 555 INTERFACE module_interface_exchange_horiz 522 556 MODULE PROCEDURE module_interface_exchange_horiz 523 557 END INTERFACE module_interface_exchange_horiz 524 558 525 559 INTERFACE module_interface_prognostic_equations 526 560 MODULE PROCEDURE module_interface_prognostic_equations … … 581 615 582 616 IF ( debug_output ) CALL debug_message( 'reading module-specific parameters', 'start' ) 617 618 CALL dynamics_parin 583 619 584 620 CALL bio_parin … … 588 624 CALL gust_parin 589 625 CALL im_parin 590 CALL lpm_parin 626 CALL lpm_parin 591 627 CALL lsm_parin 592 628 ! ToDo: create parin routine for large_scale_forcing and nudging (should be seperate modules or new module switch) … … 600 636 CALL surface_data_output_parin 601 637 CALL stg_parin 602 CALL user_parin ! ToDo: make user code a single Fortran module603 638 CALL usm_parin 604 639 CALL vm_parin 605 640 CALL wtm_parin 606 641 642 CALL user_parin 643 607 644 IF ( debug_output ) CALL debug_message( 'reading module-specific parameters', 'end' ) 608 645 … … 620 657 621 658 IF ( debug_output ) CALL debug_message( 'checking module-specific parameters', 'start' ) 659 660 CALL dynamics_check_parameters 622 661 623 662 IF ( bulk_cloud_model ) CALL bcm_check_parameters … … 625 664 IF ( gust_module_enabled ) CALL gust_check_parameters 626 665 IF ( indoor_model ) CALL im_check_parameters 627 IF ( particle_advection ) CALL lpm_check_parameters 666 IF ( particle_advection ) CALL lpm_check_parameters 628 667 IF ( land_surface ) CALL lsm_check_parameters 629 668 IF ( large_scale_forcing .OR. nudging ) CALL lsf_nudging_check_parameters ! ToDo: create single module switch … … 639 678 IF ( virtual_measurement ) CALL vm_check_parameters 640 679 IF ( wind_turbine ) CALL wtm_check_parameters 680 641 681 IF ( user_module_enabled ) CALL user_check_parameters 642 682 … … 663 703 IF ( debug_output ) CALL debug_message( 'checking module-specific data output ts', 'start' ) 664 704 705 CALL dynamics_check_data_output_ts( dots_max, dots_num, dots_label, dots_unit ) 706 665 707 IF ( radiation ) THEN 666 708 CALL radiation_check_data_output_ts( dots_max, dots_num ) … … 694 736 IF ( debug_output ) CALL debug_message( 'checking module-specific data output pr', 'start' ) 695 737 738 CALL dynamics_check_data_output_pr( variable, var_count, unit, dopr_unit ) 739 696 740 IF ( unit == 'illegal' .AND. bulk_cloud_model ) THEN 697 741 CALL bcm_check_data_output_pr( variable, var_count, unit, dopr_unit ) … … 751 795 IF ( debug_output ) CALL debug_message( 'checking module-specific data output 2d/3d', 'start' ) 752 796 797 CALL dynamics_check_data_output( variable, unit ) 798 753 799 IF ( unit == 'illegal' .AND. biometeorology ) THEN 754 800 CALL bio_check_data_output( variable, unit, i, j, ilen, k ) … … 763 809 CALL chem_check_data_output( variable, unit, i, ilen, k ) 764 810 ENDIF 765 811 766 812 IF ( unit == 'illegal' ) THEN 767 813 CALL doq_check_data_output( variable, unit ) … … 796 842 CALL im_check_data_output( variable, unit ) 797 843 ENDIF 798 844 799 845 IF ( unit == 'illegal' .AND. urban_surface & 800 846 .AND. variable(1:4) == 'usm_' ) THEN ! ToDo: remove aditional conditions … … 827 873 828 874 IF ( debug_output ) CALL debug_message( 'initializing module-specific masks', 'start' ) 875 876 CALL dynamics_init_masks( variable, unit ) 829 877 830 878 IF ( unit == 'illegal' .AND. air_chemistry & … … 897 945 IF ( debug_output ) CALL debug_message( 'initializing module-specific arrays', 'start' ) 898 946 947 CALL dynamics_init_arrays 948 899 949 IF ( bulk_cloud_model ) CALL bcm_init_arrays 900 950 IF ( air_chemistry ) CALL chem_init_arrays 901 951 IF ( gust_module_enabled ) CALL gust_init_arrays 902 IF ( particle_advection ) CALL lpm_init_arrays 952 IF ( particle_advection ) CALL lpm_init_arrays 903 953 IF ( land_surface ) CALL lsm_init_arrays 904 954 IF ( ocean_mode ) CALL ocean_init_arrays … … 907 957 IF ( surface_output ) CALL surface_data_output_init_arrays 908 958 IF ( wind_turbine ) CALL wtm_init_arrays 959 909 960 IF ( user_module_enabled ) CALL user_init_arrays 910 961 … … 924 975 925 976 IF ( debug_output ) CALL debug_message( 'module-specific initialization', 'start' ) 977 978 CALL dynamics_init 926 979 927 980 IF ( biometeorology ) CALL bio_init … … 931 984 IF ( gust_module_enabled ) CALL gust_init 932 985 IF ( indoor_model ) CALL im_init 933 IF ( particle_advection ) CALL lpm_init 986 IF ( particle_advection ) CALL lpm_init 934 987 IF ( large_scale_forcing ) CALL lsf_init 935 988 IF ( land_surface ) CALL lsm_init … … 942 995 IF ( wind_turbine ) CALL wtm_init 943 996 IF ( radiation ) CALL radiation_init 997 944 998 IF ( user_module_enabled ) CALL user_init 945 999 … … 960 1014 IF ( debug_output ) CALL debug_message( 'module-specific post-initialization checks', 'start' ) 961 1015 1016 CALL dynamics_init_checks 1017 962 1018 IF ( biometeorology ) CALL bio_init_checks 963 1019 … … 980 1036 981 1037 IF ( debug_output ) CALL debug_message( 'module-specific header output', 'start' ) 1038 1039 CALL dynamics_header( io ) 982 1040 983 1041 IF ( biometeorology ) CALL bio_header ( io ) … … 986 1044 IF ( virtual_flight ) CALL flight_header( io ) 987 1045 IF ( gust_module_enabled ) CALL gust_header( io ) 988 IF ( particle_advection ) CALL lpm_header( io ) 1046 IF ( particle_advection ) CALL lpm_header( io ) 989 1047 IF ( land_surface ) CALL lsm_header( io ) 990 1048 IF ( large_scale_forcing ) CALL lsf_nudging_header( io ) … … 996 1054 IF ( calculate_spectra ) CALL spectra_header( io ) 997 1055 IF ( syn_turb_gen ) CALL stg_header( io ) 1056 998 1057 IF ( user_module_enabled ) CALL user_header( io ) 999 1058 … … 1014 1073 CHARACTER (LEN=*), INTENT(IN) :: location !< call location string 1015 1074 1075 CALL dynamics_actions( location ) 1016 1076 1017 1077 IF ( bulk_cloud_model ) CALL bcm_actions( location ) 1018 1078 IF ( air_chemistry ) CALL chem_actions( location ) 1019 1079 IF ( gust_module_enabled ) CALL gust_actions( location ) 1020 IF ( particle_advection ) CALL lpm_actions( location ) 1080 IF ( particle_advection ) CALL lpm_actions( location ) 1021 1081 IF ( ocean_mode ) CALL ocean_actions( location ) 1022 1082 IF ( salsa ) CALL salsa_actions( location ) 1023 1083 IF ( wind_turbine ) CALL wtm_actions( location ) 1084 1024 1085 IF ( user_module_enabled ) CALL user_actions( location ) 1025 1086 … … 1040 1101 CHARACTER (LEN=*), INTENT(IN) :: location !< call location string 1041 1102 1103 CALL dynamics_actions( i, j, location ) 1042 1104 1043 1105 IF ( bulk_cloud_model ) CALL bcm_actions( i, j, location ) … … 1047 1109 IF ( salsa ) CALL salsa_actions( i, j, location ) 1048 1110 IF ( wind_turbine ) CALL wtm_actions( i, j, location ) 1111 1049 1112 IF ( user_module_enabled ) CALL user_actions( i, j, location ) 1050 1113 … … 1058 1121 !> Compute module-specific non_advective_processes (vector-optimized) 1059 1122 !------------------------------------------------------------------------------! 1060 SUBROUTINE module_interface_non_advective_processes() 1061 1062 1063 IF ( bulk_cloud_model ) CALL bcm_non_advective_processes() 1064 IF ( air_chemistry ) CALL chem_non_advective_processes() 1065 IF ( salsa ) CALL salsa_non_advective_processes() 1123 SUBROUTINE module_interface_non_advective_processes 1124 1125 1126 CALL dynamics_non_advective_processes 1127 1128 IF ( bulk_cloud_model ) CALL bcm_non_advective_processes 1129 IF ( air_chemistry ) CALL chem_non_advective_processes 1130 IF ( salsa ) CALL salsa_non_advective_processes 1066 1131 1067 1132 … … 1080 1145 INTEGER(iwp), INTENT(IN) :: j !< grid index in y-direction 1081 1146 1147 CALL dynamics_non_advective_processes( i, j ) 1082 1148 1083 1149 IF ( bulk_cloud_model ) CALL bcm_non_advective_processes( i, j ) … … 1087 1153 1088 1154 END SUBROUTINE module_interface_non_advective_processes_ij 1089 1090 !------------------------------------------------------------------------------! 1091 ! Description: 1092 ! ------------ 1093 !> Exchange horiz for module-specific quantities 1094 !------------------------------------------------------------------------------! 1095 SUBROUTINE module_interface_exchange_horiz ()1155 1156 !------------------------------------------------------------------------------! 1157 ! Description: 1158 ! ------------ 1159 !> Exchange horiz for module-specific quantities 1160 !------------------------------------------------------------------------------! 1161 SUBROUTINE module_interface_exchange_horiz 1096 1162 1097 1163 1098 1164 IF ( debug_output_timestep ) CALL debug_message( 'module-specific exchange_horiz', 'start' ) 1099 1165 1100 IF ( bulk_cloud_model ) CALL bcm_exchange_horiz() 1101 IF ( air_chemistry ) CALL chem_exchange_horiz_bounds() 1102 IF ( salsa ) CALL salsa_exchange_horiz_bounds() 1166 CALL dynamics_exchange_horiz 1167 1168 IF ( bulk_cloud_model ) CALL bcm_exchange_horiz 1169 IF ( air_chemistry ) CALL chem_exchange_horiz_bounds 1170 IF ( salsa ) CALL salsa_exchange_horiz_bounds 1103 1171 1104 1172 IF ( debug_output_timestep ) CALL debug_message( 'module-specific exchange_horiz', 'end' ) … … 1113 1181 !> Compute module-specific prognostic_equations (vector-optimized) 1114 1182 !------------------------------------------------------------------------------! 1115 SUBROUTINE module_interface_prognostic_equations() 1116 1117 1118 IF ( bulk_cloud_model ) CALL bcm_prognostic_equations() 1119 IF ( air_chemistry ) CALL chem_prognostic_equations() 1120 IF ( gust_module_enabled ) CALL gust_prognostic_equations() 1121 IF ( ocean_mode ) CALL ocean_prognostic_equations() 1122 IF ( salsa ) CALL salsa_prognostic_equations() 1183 SUBROUTINE module_interface_prognostic_equations 1184 1185 1186 CALL dynamics_prognostic_equations 1187 1188 IF ( bulk_cloud_model ) CALL bcm_prognostic_equations 1189 IF ( air_chemistry ) CALL chem_prognostic_equations 1190 IF ( gust_module_enabled ) CALL gust_prognostic_equations 1191 IF ( ocean_mode ) CALL ocean_prognostic_equations 1192 IF ( salsa ) CALL salsa_prognostic_equations 1123 1193 1124 1194 … … 1139 1209 INTEGER(iwp), INTENT(IN) :: tn !< task number of openmp task 1140 1210 1211 CALL dynamics_prognostic_equations( i, j, i_omp_start, tn ) 1141 1212 1142 1213 IF ( bulk_cloud_model ) CALL bcm_prognostic_equations( i, j, i_omp_start, tn ) … … 1162 1233 1163 1234 IF ( debug_output_timestep ) CALL debug_message( 'module-specific swap timelevel', 'start' ) 1235 1236 CALL dynamics_swap_timelevel( swap_mode ) 1237 CALL tcm_swap_timelevel( swap_mode ) 1164 1238 1165 1239 IF ( bulk_cloud_model ) CALL bcm_swap_timelevel( swap_mode ) … … 1192 1266 IF ( debug_output_timestep ) CALL debug_message( 'module-specific 3d data averaging', 'start' ) 1193 1267 1268 CALL dynamics_3d_data_averaging( mode, variable ) 1269 1194 1270 IF ( biometeorology ) CALL bio_3d_data_averaging( mode, variable ) 1195 1271 IF ( bulk_cloud_model ) CALL bcm_3d_data_averaging( mode, variable ) 1196 1272 IF ( air_chemistry ) CALL chem_3d_data_averaging( mode, variable ) 1197 CALL doq_3d_data_averaging( mode, variable ) 1273 CALL doq_3d_data_averaging( mode, variable ) ! ToDo: this seems to be not according to the design 1198 1274 IF ( gust_module_enabled ) CALL gust_3d_data_averaging( mode, variable ) 1199 1275 IF ( land_surface ) CALL lsm_3d_data_averaging( mode, variable ) … … 1202 1278 IF ( salsa ) CALL salsa_3d_data_averaging( mode, variable ) 1203 1279 IF ( urban_surface ) CALL usm_3d_data_averaging( mode, variable ) 1280 1204 1281 IF ( user_module_enabled ) CALL user_3d_data_averaging( mode, variable ) 1205 1282 … … 1234 1311 IF ( debug_output_timestep ) CALL debug_message( 'module-specific 2d data output', 'start' ) 1235 1312 1313 CALL dynamics_data_output_2d( & 1314 av, variable, found, grid, mode, local_pf, two_d, nzb_do, nzt_do, fill_value & 1315 ) 1316 1236 1317 IF ( .NOT. found .AND. biometeorology ) THEN 1237 1318 CALL bio_data_output_2d( & … … 1251 1332 ) 1252 1333 ENDIF 1253 1334 1254 1335 IF ( .NOT. found ) THEN 1255 1336 CALL doq_output_2d( & … … 1323 1404 IF ( debug_output_timestep ) CALL debug_message( 'module-specific 3d data output', 'start' ) 1324 1405 1406 CALL dynamics_data_output_3d( av, variable, found, local_pf, fill_value, nzb_do, nzt_do ) 1407 resorted = .FALSE. 1408 1325 1409 IF ( .NOT. found .AND. biometeorology ) THEN 1326 1410 CALL bio_data_output_3d( av, variable, found, local_pf, nzb_do, nzt_do ) … … 1337 1421 resorted = .TRUE. 1338 1422 ENDIF 1339 1423 1340 1424 IF ( .NOT. found ) THEN 1341 1425 CALL doq_output_3d( av, variable, found, local_pf, fill_value, nzb_do, nzt_do ) 1342 1426 resorted = .TRUE. 1343 1427 ENDIF 1344 1428 1345 1429 IF ( .NOT. found .AND. gust_module_enabled ) THEN 1346 1430 CALL gust_data_output_3d( av, variable, found, local_pf, fill_value, nzb_do, nzt_do ) 1347 1431 resorted = .TRUE. 1348 1432 ENDIF 1349 1433 1350 1434 IF ( .NOT. found .AND. indoor_model ) THEN 1351 1435 CALL im_data_output_3d( av, variable, found, local_pf, fill_value, nzb_do, nzt_do ) … … 1400 1484 IF ( debug_output_timestep ) CALL debug_message( 'module-specific statistics', 'start' ) 1401 1485 1486 CALL dynamics_statistics( mode, sr, tn ) 1487 1402 1488 IF ( gust_module_enabled ) CALL gust_statistics( mode, sr, tn, dots_max ) 1403 1489 IF ( air_chemistry ) CALL chem_statistics( mode, sr, tn ) 1490 1404 1491 IF ( user_module_enabled ) CALL user_statistics( mode, sr, tn ) 1405 1492 … … 1422 1509 1423 1510 IF ( debug_output ) CALL debug_message( 'module-specific read global restart data', 'start' ) 1511 1512 CALL dynamics_rrd_global( found ) ! ToDo: change interface to pass variable 1424 1513 1425 1514 IF ( .NOT. found ) CALL bio_rrd_global( found ) ! ToDo: change interface to pass variable … … 1427 1516 IF ( .NOT. found ) CALL flight_rrd_global( found ) ! ToDo: change interface to pass variable 1428 1517 IF ( .NOT. found ) CALL gust_rrd_global( found ) ! ToDo: change interface to pass variable 1429 IF ( .NOT. found ) CALL lpm_rrd_global( found ) ! ToDo: change interface to pass variable 1518 IF ( .NOT. found ) CALL lpm_rrd_global( found ) ! ToDo: change interface to pass variable 1430 1519 IF ( .NOT. found ) CALL ocean_rrd_global( found ) ! ToDo: change interface to pass variable 1431 1520 IF ( .NOT. found ) CALL stg_rrd_global ( found ) ! ToDo: change interface to pass variable 1432 1521 IF ( .NOT. found ) CALL wtm_rrd_global( found ) ! ToDo: change interface to pass variable 1433 1522 IF ( .NOT. found ) CALL surface_data_output_rrd_global( found ) 1523 1434 1524 IF ( .NOT. found ) CALL user_rrd_global( found ) ! ToDo: change interface to pass variable 1435 1525 … … 1449 1539 1450 1540 IF ( debug_output ) CALL debug_message( 'module-specific write global restart data', 'start' ) 1541 1542 CALL dynamics_wrd_global 1451 1543 1452 1544 IF ( biometeorology ) CALL bio_wrd_global … … 1458 1550 IF ( wind_turbine ) CALL wtm_wrd_global 1459 1551 IF ( surface_output ) CALL surface_data_output_wrd_global 1552 1460 1553 IF ( user_module_enabled ) CALL user_wrd_global 1461 1554 … … 1504 1597 IF ( debug_output ) CALL debug_message( 'module-specific read local restart data', 'start' ) 1505 1598 1599 CALL dynamics_rrd_local( & 1600 map_index, & 1601 nxlf, nxlc, nxl_on_file, & 1602 nxrf, nxrc, nxr_on_file, & 1603 nynf, nync, nyn_on_file, & 1604 nysf, nysc, nys_on_file, & 1605 tmp_2d, tmp_3d, found & 1606 ) ! ToDo: change interface to pass variable 1607 1506 1608 IF ( .NOT. found ) CALL bio_rrd_local( & 1507 1609 found & … … 1525 1627 tmp_3d, found & 1526 1628 ) ! ToDo: change interface to pass variable 1527 1629 1528 1630 ! IF ( .NOT. found ) CALL doq_rrd_local( & 1529 1631 ! map_index, & … … 1600 1702 !-- Surface data do not need overlap data, so do not pass these information. 1601 1703 IF ( .NOT. found ) CALL surface_data_output_rrd_local( found ) 1602 1704 1603 1705 IF ( .NOT. found ) CALL user_rrd_local( & 1604 1706 map_index, & … … 1626 1728 IF ( debug_output ) CALL debug_message( 'module-specific write local restart data', 'start' ) 1627 1729 1730 CALL dynamics_wrd_local 1731 1628 1732 IF ( biometeorology ) CALL bio_wrd_local 1629 1733 IF ( bulk_cloud_model ) CALL bcm_wrd_local … … 1631 1735 CALL doq_wrd_local 1632 1736 IF ( gust_module_enabled ) CALL gust_wrd_local 1633 IF ( particle_advection ) CALL lpm_wrd_local 1737 IF ( particle_advection ) CALL lpm_wrd_local 1634 1738 IF ( land_surface ) CALL lsm_wrd_local 1635 1739 IF ( ocean_mode ) CALL ocean_wrd_local … … 1638 1742 IF ( urban_surface ) CALL usm_wrd_local 1639 1743 IF ( surface_output ) CALL surface_data_output_wrd_local 1744 1640 1745 IF ( user_module_enabled ) CALL user_wrd_local 1641 1746 … … 1656 1761 IF ( debug_output ) CALL debug_message( 'module-specific last actions', 'start' ) 1657 1762 1763 CALL dynamics_last_actions 1764 1658 1765 IF ( virtual_measurement ) CALL vm_last_actions 1766 1659 1767 IF ( user_module_enabled ) CALL user_last_actions 1660 1768
Note: See TracChangeset
for help on using the changeset viewer.