psmile_print_comp_info.F90

Go to the documentation of this file.
00001 !-----------------------------------------------------------------------
00002 ! Copyright 2006-2010, NEC Europe Ltd., London, UK.
00003 ! All rights reserved. Use is subject to OASIS4 license terms.
00004 !-----------------------------------------------------------------------
00005 !BOP
00006 !
00007 ! !ROUTINE: PSMILe_Print_comp_info
00008 !
00009 ! !INTERFACE:
00010 
00011       subroutine psmile_print_comp_info ( cinfos, n_comps, string )
00012 !
00013 ! !USES:
00014 !
00015       use PRISM_constants
00016 !
00017       use PSMILe, dummy_interface => PSMILe_Print_comp_info
00018 !
00019       implicit none
00020 !
00021 ! !INPUT PARAMETERS:
00022 !
00023       Integer,            Intent(In)  :: n_comps
00024 
00025 !     Number of component info's
00026 
00027       Type (enddef_comp), Intent(In)  :: cinfos (n_comps)
00028 
00029 !     Component info's (used by PRISM_Enddef ())
00030 
00031       Character(len=*),   Intent(In)  :: string
00032 
00033 !     Additional info to be printed
00034 !
00035 ! !LOCAL VARIABLES
00036 !
00037       Integer :: i ! loop index
00038 !
00039 ! !DESCRIPTION:
00040 !
00041 ! Subroutine "PSMILe_Print_comp_info" prints the info on components
00042 ! generated by PRISM_Enddef().
00043 !
00044 !
00045 ! !REVISION HISTORY:
00046 !
00047 !   Date      Programmer    Description
00048 ! ----------  -----------   -----------
00049 ! 01.12.03    H. Ritzdorf   created
00050 !
00051 !EOP
00052 !----------------------------------------------------------------------
00053 !
00054 ! $Id: psmile_print_comp_info.F90 2325 2010-04-21 15:00:07Z valcke $
00055 ! $Author: valcke $
00056 !
00057    Character(len=len_cvs_string), save :: mycvs = 
00058        '$Id: psmile_print_comp_info.F90 2325 2010-04-21 15:00:07Z valcke $'
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          write (*, 9050) cinfos(i)%all_extents(:, :, :)
00073          write (*, 9060) cinfos(i)%all_extent_infos(1:4, :)
00074       enddo
00075 !
00076 !  FLush output
00077 !
00078       write (*, 9010)
00079 
00080 #ifdef VERBOSE
00081       print 9980, trim(ch_id)
00082 #endif /* VERBOSE */
00083 
00084       call psmile_flushstd ()
00085 !
00086 !-----------------------------------------------------------------------
00087 !  Formats
00088 !-----------------------------------------------------------------------
00089 !
00090 9000  format (/1x, a, ': Info on ', i4, ' comp_infos', ':', &
00091               /1x, 33('-'), /1x, a)
00092 9010  format (1x, a)
00093 
00094 9020  format (/1x, i3, '. info: local comp_id =', i4, '; comm size', i4, &
00095                    '; global comp id =', i4)
00096 9030  format (1x, 'Number of grids per process in comp comm:', &
00097              /(1x, 16i5))
00098 9040  format (1x, 'Ranks in psmile communicator', &
00099              /(1x, 16i5))
00100 9050  format (1x, 'Grid extents:', 1p, &
00101              /(1x, '(', 2(e11.4, ':', e11.4, ', '), e11.4, ':', e11.4, ')'))
00102 9060  format (1x, 'Extent infos:', &
00103              /(1x, 'local grid id', i5, ', grid type', i5, ', tr_code', i5, &
00104                  ', global grid id', i5))
00105 #ifdef VERBOSE
00106 9990 format (1x, a, ': psmile_print_comp_info: begin')
00107 9980 format (1x, a, ': psmile_print_comp_info: eof')
00108 #endif /* VERBOSE */ 
00109 !
00110       end subroutine PSMILe_Print_comp_info

Generated on 18 Mar 2011 for Oasis4 by  doxygen 1.6.1