Changeset 4495 for palm/trunk/SOURCE/radiation_model_mod.f90
- Timestamp:
- Apr 13, 2020 8:11:20 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/radiation_model_mod.f90
r4493 r4495 28 28 ! ----------------- 29 29 ! $Id$ 30 ! restart data handling with MPI-IO added 31 ! 32 ! 4493 2020-04-10 09:49:43Z pavelkrc 30 33 ! Avoid unstable direct normal radiation near horizon 31 34 ! … … 278 281 message_string, plant_canopy, pt_surface, & 279 282 rho_surface, simulated_time, spinup_time, surface_pressure, & 280 read_svf, write_svf,&283 read_svf, restart_data_format_output, write_svf, & 281 284 time_since_reference_point, urban_surface, varnamelength 282 285 … … 360 363 ONLY: rrtmg_sw 361 364 #endif 365 USE restart_data_mpi_io_mod, & 366 ONLY: wrd_mpi_io 367 362 368 USE statistics, & 363 369 ONLY: hom … … 11934 11940 11935 11941 11936 IF ( ALLOCATED( rad_net_av ) ) THEN 11937 CALL wrd_write_string( 'rad_net_av' ) 11938 WRITE ( 14 ) rad_net_av 11942 IF ( TRIM( restart_data_format_output ) == 'fortran_binary' ) THEN 11943 11944 IF ( ALLOCATED( rad_net_av ) ) THEN 11945 CALL wrd_write_string( 'rad_net_av' ) 11946 WRITE ( 14 ) rad_net_av 11947 ENDIF 11948 11949 IF ( ALLOCATED( rad_lw_in_xy_av ) ) THEN 11950 CALL wrd_write_string( 'rad_lw_in_xy_av' ) 11951 WRITE ( 14 ) rad_lw_in_xy_av 11952 ENDIF 11953 11954 IF ( ALLOCATED( rad_lw_out_xy_av ) ) THEN 11955 CALL wrd_write_string( 'rad_lw_out_xy_av' ) 11956 WRITE ( 14 ) rad_lw_out_xy_av 11957 ENDIF 11958 11959 IF ( ALLOCATED( rad_sw_in_xy_av ) ) THEN 11960 CALL wrd_write_string( 'rad_sw_in_xy_av' ) 11961 WRITE ( 14 ) rad_sw_in_xy_av 11962 ENDIF 11963 11964 IF ( ALLOCATED( rad_sw_out_xy_av ) ) THEN 11965 CALL wrd_write_string( 'rad_sw_out_xy_av' ) 11966 WRITE ( 14 ) rad_sw_out_xy_av 11967 ENDIF 11968 11969 IF ( ALLOCATED( rad_lw_in ) ) THEN 11970 CALL wrd_write_string( 'rad_lw_in' ) 11971 WRITE ( 14 ) rad_lw_in 11972 ENDIF 11973 11974 IF ( ALLOCATED( rad_lw_in_av ) ) THEN 11975 CALL wrd_write_string( 'rad_lw_in_av' ) 11976 WRITE ( 14 ) rad_lw_in_av 11977 ENDIF 11978 11979 IF ( ALLOCATED( rad_lw_out ) ) THEN 11980 CALL wrd_write_string( 'rad_lw_out' ) 11981 WRITE ( 14 ) rad_lw_out 11982 ENDIF 11983 11984 IF ( ALLOCATED( rad_lw_out_av) ) THEN 11985 CALL wrd_write_string( 'rad_lw_out_av' ) 11986 WRITE ( 14 ) rad_lw_out_av 11987 ENDIF 11988 11989 IF ( ALLOCATED( rad_lw_cs_hr) ) THEN 11990 CALL wrd_write_string( 'rad_lw_cs_hr' ) 11991 WRITE ( 14 ) rad_lw_cs_hr 11992 ENDIF 11993 11994 IF ( ALLOCATED( rad_lw_cs_hr_av) ) THEN 11995 CALL wrd_write_string( 'rad_lw_cs_hr_av' ) 11996 WRITE ( 14 ) rad_lw_cs_hr_av 11997 ENDIF 11998 11999 IF ( ALLOCATED( rad_lw_hr) ) THEN 12000 CALL wrd_write_string( 'rad_lw_hr' ) 12001 WRITE ( 14 ) rad_lw_hr 12002 ENDIF 12003 12004 IF ( ALLOCATED( rad_lw_hr_av) ) THEN 12005 CALL wrd_write_string( 'rad_lw_hr_av' ) 12006 WRITE ( 14 ) rad_lw_hr_av 12007 ENDIF 12008 12009 IF ( ALLOCATED( rad_sw_in) ) THEN 12010 CALL wrd_write_string( 'rad_sw_in' ) 12011 WRITE ( 14 ) rad_sw_in 12012 ENDIF 12013 12014 IF ( ALLOCATED( rad_sw_in_av) ) THEN 12015 CALL wrd_write_string( 'rad_sw_in_av' ) 12016 WRITE ( 14 ) rad_sw_in_av 12017 ENDIF 12018 12019 IF ( ALLOCATED( rad_sw_out) ) THEN 12020 CALL wrd_write_string( 'rad_sw_out' ) 12021 WRITE ( 14 ) rad_sw_out 12022 ENDIF 12023 12024 IF ( ALLOCATED( rad_sw_out_av) ) THEN 12025 CALL wrd_write_string( 'rad_sw_out_av' ) 12026 WRITE ( 14 ) rad_sw_out_av 12027 ENDIF 12028 12029 IF ( ALLOCATED( rad_sw_cs_hr) ) THEN 12030 CALL wrd_write_string( 'rad_sw_cs_hr' ) 12031 WRITE ( 14 ) rad_sw_cs_hr 12032 ENDIF 12033 12034 IF ( ALLOCATED( rad_sw_cs_hr_av) ) THEN 12035 CALL wrd_write_string( 'rad_sw_cs_hr_av' ) 12036 WRITE ( 14 ) rad_sw_cs_hr_av 12037 ENDIF 12038 12039 IF ( ALLOCATED( rad_sw_hr) ) THEN 12040 CALL wrd_write_string( 'rad_sw_hr' ) 12041 WRITE ( 14 ) rad_sw_hr 12042 ENDIF 12043 12044 IF ( ALLOCATED( rad_sw_hr_av) ) THEN 12045 CALL wrd_write_string( 'rad_sw_hr_av' ) 12046 WRITE ( 14 ) rad_sw_hr_av 12047 ENDIF 12048 12049 ELSEIF ( TRIM( restart_data_format_output ) == 'mpi' ) THEN 12050 12051 IF ( ALLOCATED( rad_net_av ) ) CALL wrd_mpi_io( 'rad_net_av', rad_net_av ) 12052 IF ( ALLOCATED( rad_lw_in_xy_av ) ) CALL wrd_mpi_io( 'rad_lw_in_xy_av', rad_lw_in_xy_av ) 12053 IF ( ALLOCATED( rad_lw_out_xy_av ) ) CALL wrd_mpi_io( 'rad_lw_out_xy_av', rad_lw_out_xy_av ) 12054 IF ( ALLOCATED( rad_sw_in_xy_av ) ) CALL wrd_mpi_io( 'rad_sw_in_xy_av', rad_sw_in_xy_av ) 12055 IF ( ALLOCATED( rad_sw_out_xy_av ) ) CALL wrd_mpi_io( 'rad_sw_out_xy_av', rad_sw_out_xy_av ) 12056 IF ( ALLOCATED( rad_lw_in ) ) CALL wrd_mpi_io( 'rad_lw_in', rad_lw_in ) 12057 IF ( ALLOCATED( rad_lw_in_av ) ) CALL wrd_mpi_io( 'rad_lw_in_av', rad_lw_in_av ) 12058 IF ( ALLOCATED( rad_lw_out ) ) CALL wrd_mpi_io( 'rad_lw_out', rad_lw_out ) 12059 IF ( ALLOCATED( rad_lw_out_av) ) CALL wrd_mpi_io( 'rad_lw_out_av', rad_lw_out_av ) 12060 IF ( ALLOCATED( rad_lw_cs_hr) ) CALL wrd_mpi_io( 'rad_lw_cs_hr', rad_lw_cs_hr ) 12061 IF ( ALLOCATED( rad_lw_cs_hr_av) ) CALL wrd_mpi_io( 'rad_lw_cs_hr_av', rad_lw_cs_hr_av ) 12062 IF ( ALLOCATED( rad_lw_hr) ) CALL wrd_mpi_io( 'rad_lw_hr', rad_lw_hr ) 12063 IF ( ALLOCATED( rad_lw_hr_av) ) CALL wrd_mpi_io( 'rad_lw_hr_av', rad_lw_hr_av ) 12064 IF ( ALLOCATED( rad_sw_in) ) CALL wrd_mpi_io( 'rad_sw_in', rad_sw_in ) 12065 IF ( ALLOCATED( rad_sw_in_av) ) CALL wrd_mpi_io( 'rad_sw_in_av', rad_sw_in_av ) 12066 IF ( ALLOCATED( rad_sw_out) ) CALL wrd_mpi_io( 'rad_sw_out', rad_sw_out ) 12067 IF ( ALLOCATED( rad_sw_out_av) ) CALL wrd_mpi_io( 'rad_sw_out_av', rad_sw_out_av ) 12068 IF ( ALLOCATED( rad_sw_cs_hr) ) CALL wrd_mpi_io( 'rad_sw_cs_hr', rad_sw_cs_hr ) 12069 IF ( ALLOCATED( rad_sw_cs_hr_av) ) CALL wrd_mpi_io( 'rad_sw_cs_hr_av', rad_sw_cs_hr_av ) 12070 IF ( ALLOCATED( rad_sw_hr) ) CALL wrd_mpi_io( 'rad_sw_hr', rad_sw_hr ) 12071 IF ( ALLOCATED( rad_sw_hr_av) ) CALL wrd_mpi_io( 'rad_sw_hr_av', rad_sw_hr_av ) 12072 11939 12073 ENDIF 11940 12074 11941 IF ( ALLOCATED( rad_lw_in_xy_av ) ) THEN11942 CALL wrd_write_string( 'rad_lw_in_xy_av' )11943 WRITE ( 14 ) rad_lw_in_xy_av11944 ENDIF11945 11946 IF ( ALLOCATED( rad_lw_out_xy_av ) ) THEN11947 CALL wrd_write_string( 'rad_lw_out_xy_av' )11948 WRITE ( 14 ) rad_lw_out_xy_av11949 ENDIF11950 11951 IF ( ALLOCATED( rad_sw_in_xy_av ) ) THEN11952 CALL wrd_write_string( 'rad_sw_in_xy_av' )11953 WRITE ( 14 ) rad_sw_in_xy_av11954 ENDIF11955 11956 IF ( ALLOCATED( rad_sw_out_xy_av ) ) THEN11957 CALL wrd_write_string( 'rad_sw_out_xy_av' )11958 WRITE ( 14 ) rad_sw_out_xy_av11959 ENDIF11960 11961 IF ( ALLOCATED( rad_lw_in ) ) THEN11962 CALL wrd_write_string( 'rad_lw_in' )11963 WRITE ( 14 ) rad_lw_in11964 ENDIF11965 11966 IF ( ALLOCATED( rad_lw_in_av ) ) THEN11967 CALL wrd_write_string( 'rad_lw_in_av' )11968 WRITE ( 14 ) rad_lw_in_av11969 ENDIF11970 11971 IF ( ALLOCATED( rad_lw_out ) ) THEN11972 CALL wrd_write_string( 'rad_lw_out' )11973 WRITE ( 14 ) rad_lw_out11974 ENDIF11975 11976 IF ( ALLOCATED( rad_lw_out_av) ) THEN11977 CALL wrd_write_string( 'rad_lw_out_av' )11978 WRITE ( 14 ) rad_lw_out_av11979 ENDIF11980 11981 IF ( ALLOCATED( rad_lw_cs_hr) ) THEN11982 CALL wrd_write_string( 'rad_lw_cs_hr' )11983 WRITE ( 14 ) rad_lw_cs_hr11984 ENDIF11985 11986 IF ( ALLOCATED( rad_lw_cs_hr_av) ) THEN11987 CALL wrd_write_string( 'rad_lw_cs_hr_av' )11988 WRITE ( 14 ) rad_lw_cs_hr_av11989 ENDIF11990 11991 IF ( ALLOCATED( rad_lw_hr) ) THEN11992 CALL wrd_write_string( 'rad_lw_hr' )11993 WRITE ( 14 ) rad_lw_hr11994 ENDIF11995 11996 IF ( ALLOCATED( rad_lw_hr_av) ) THEN11997 CALL wrd_write_string( 'rad_lw_hr_av' )11998 WRITE ( 14 ) rad_lw_hr_av11999 ENDIF12000 12001 IF ( ALLOCATED( rad_sw_in) ) THEN12002 CALL wrd_write_string( 'rad_sw_in' )12003 WRITE ( 14 ) rad_sw_in12004 ENDIF12005 12006 IF ( ALLOCATED( rad_sw_in_av) ) THEN12007 CALL wrd_write_string( 'rad_sw_in_av' )12008 WRITE ( 14 ) rad_sw_in_av12009 ENDIF12010 12011 IF ( ALLOCATED( rad_sw_out) ) THEN12012 CALL wrd_write_string( 'rad_sw_out' )12013 WRITE ( 14 ) rad_sw_out12014 ENDIF12015 12016 IF ( ALLOCATED( rad_sw_out_av) ) THEN12017 CALL wrd_write_string( 'rad_sw_out_av' )12018 WRITE ( 14 ) rad_sw_out_av12019 ENDIF12020 12021 IF ( ALLOCATED( rad_sw_cs_hr) ) THEN12022 CALL wrd_write_string( 'rad_sw_cs_hr' )12023 WRITE ( 14 ) rad_sw_cs_hr12024 ENDIF12025 12026 IF ( ALLOCATED( rad_sw_cs_hr_av) ) THEN12027 CALL wrd_write_string( 'rad_sw_cs_hr_av' )12028 WRITE ( 14 ) rad_sw_cs_hr_av12029 ENDIF12030 12031 IF ( ALLOCATED( rad_sw_hr) ) THEN12032 CALL wrd_write_string( 'rad_sw_hr' )12033 WRITE ( 14 ) rad_sw_hr12034 ENDIF12035 12036 IF ( ALLOCATED( rad_sw_hr_av) ) THEN12037 CALL wrd_write_string( 'rad_sw_hr_av' )12038 WRITE ( 14 ) rad_sw_hr_av12039 ENDIF12040 12041 12042 12075 END SUBROUTINE radiation_wrd_local 12076 12077 12043 12078 12044 12079 !------------------------------------------------------------------------------!
Note: See TracChangeset
for help on using the changeset viewer.