00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 subroutine psmile_print_comp_info ( cinfos, n_comps, string )
00012
00013
00014
00015 use PRISM_constants
00016
00017 use PSMILe, dummy_interface => PSMILe_Print_comp_info
00018
00019 implicit none
00020
00021
00022
00023 Integer, Intent(In) :: n_comps
00024
00025
00026
00027 Type (enddef_comp), Intent(In) :: cinfos (n_comps)
00028
00029
00030
00031 Character(len=*), Intent(In) :: string
00032
00033
00034
00035
00036
00037 Integer :: i, n
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057 Character(len=len_cvs_string), save :: mycvs =
00058 '$Id: psmile_print_comp_info.F90 3248 2011-06-23 13:03:19Z coquart $'
00059 #ifdef VERBOSE
00060 print 9990, trim(ch_id)
00061 #endif /* VERBOSE */
00062
00063
00064
00065 write (*, 9000) trim(ch_id), n_comps, string
00066
00067 do i = 1, n_comps
00068 write (*, 9020) i, cinfos(i)%comp_id, cinfos(i)%size, &
00069 cinfos(i)%global_comp_id
00070 write (*, 9030) cinfos(i)%Number_of_Grids_Vector(:)
00071 write (*, 9040) cinfos(i)%psmile_ranks(:)
00072 do n = 1, size(cinfos(i)%all_extent_infos(:))
00073 write (*, 9050) cinfos(i)%all_extent_infos(n)%extent
00074 enddo
00075 do n = 1, size(cinfos(i)%all_extent_infos(:))
00076 write (*, 9060) cinfos(i)%all_extent_infos(n)%local_grid_id, &
00077 cinfos(i)%all_extent_infos(n)%grid_type, &
00078 cinfos(i)%all_extent_infos(n)%tr_code, &
00079 cinfos(i)%all_extent_infos(n)%global_grid_id
00080 enddo
00081 enddo
00082
00083
00084
00085 write (*, 9010)
00086
00087 #ifdef VERBOSE
00088 print 9980, trim(ch_id)
00089 #endif /* VERBOSE */
00090
00091 call psmile_flushstd ()
00092
00093
00094
00095
00096
00097 9000 format (/1x, a, ': Info on ', i4, ' comp_infos', ':', &
00098 /1x, 33('-'), /1x, a)
00099 9010 format (1x, a)
00100
00101 9020 format (/1x, i3, '. info: local comp_id =', i4, '; comm size', i4, &
00102 '; global comp id =', i4)
00103 9030 format (1x, 'Number of grids per process in comp comm:', &
00104 /(1x, 16i5))
00105 9040 format (1x, 'Ranks in psmile communicator', &
00106 /(1x, 16i5))
00107 9050 format (1x, 'Grid extents:', 1p, &
00108 /(1x, '(', 2(e11.4, ':', e11.4, ', '), e11.4, ':', e11.4, ')'))
00109 9060 format (1x, 'Extent infos:', &
00110 /(1x, 'local grid id', i5, ', grid type', i5, ', tr_code', i5, &
00111 ', global grid id', i5))
00112 #ifdef VERBOSE
00113 9990 format (1x, a, ': psmile_print_comp_info: begin')
00114 9980 format (1x, a, ': psmile_print_comp_info: eof')
00115 #endif /* VERBOSE */
00116
00117 end subroutine PSMILe_Print_comp_info