psmile_trs_put_dble.F90

Go to the documentation of this file.
00001 !------------------------------------------------------------------------
00002 ! Copyright 2006-2010, CERFACS, Toulouse, France.
00003 ! All rights reserved. Use is subject to OASIS4 license terms.
00004 !-----------------------------------------------------------------------
00005 !BOP
00006 !
00007 ! !ROUTINE: PSMILe_Trs_put_dble
00008 !
00009 ! !INTERFACE:
00010 
00011 subroutine psmile_trs_put_dble(id_transient_out_id, &
00012                                id_epio_id,          &
00013                                id_trans_rank,       &
00014                                id_epio_field_size,  &
00015                                dda_field,           &
00016                                nbr_fields,          &
00017                                id_err)
00018 
00019 !
00020 ! !USES:
00021 !
00022   use PRISM_constants
00023   USE PSMILe, dummy_interface => PSMILe_Trs_put_dble
00024 
00025   IMPLICIT NONE
00026 !
00027 ! !INPUT PARAMETERS:
00028 !
00029 ! involved field
00030   INTEGER, INTENT (In)                     :: id_transient_out_id
00031 
00032 ! epio for this partition field
00033   INTEGER, INTENT (In)                     :: id_epio_id
00034   INTEGER, INTENT (In)                     :: id_trans_rank
00035 
00036 ! size of the field
00037   INTEGER, INTENT (In)                     :: id_epio_field_size
00038 
00039 ! source field to interpolate
00040   DOUBLE PRECISION, DIMENSION(id_epio_field_size), INTENT (In) :: dda_field
00041 
00042 ! nbr of bundle components
00043   INTEGER, INTENT (In)                     :: nbr_fields
00044 !
00045 ! !OUTPUT PARAMETERS:
00046 !
00047   INTEGER, INTENT (Out)                    :: id_err   ! error value
00048 
00049 ! !DESCRIPTION:
00050 ! Subroutine "PSMILe_Trs_put" sends the part of the field that will be 
00051 ! used in the interpolation operation to the transformer.
00052 !
00053 ! !REVISION HISTORY:
00054 !   Date      Programmer   Description
00055 ! ----------  ----------   -----------
00056 ! 22/01/2003  D. Declat    Creation
00057 ! 01/12/2003  D. Declat    Adapted to type int, real, dble
00058 ! 06/03/2008  J. Charles   Modifications added for the use of bundle fields
00059 !
00060 !EOP
00061 !----------------------------------------------------------------------
00062 ! $Id: psmile_trs_put_dble.F90 2325 2010-04-21 15:00:07Z valcke $
00063 ! $Author: valcke $
00064 !----------------------------------------------------------------------
00065 !
00066 ! 0. Local declarations
00067 !
00068   CHARACTER(LEN=len_cvs_string), SAVE  :: mycvs = '$Id: psmile_trs_put_dble.F90 2325 2010-04-21 15:00:07Z valcke $'
00069 
00070   INTEGER, DIMENSION(PSMILe_trans_Header_length) :: ila_args 
00071 !
00072 !----------------------------------------------------------------------
00073 !
00074 #ifdef VERBOSE
00075       print *, trim(ch_id), ': PSMILe_Trs_put_dble: start'
00076       call psmile_flushstd
00077 #endif /* VERBOSE */
00078 
00079 !
00080 ! 1. Set the header message
00081 !
00082 ! 1.1. Initialize the contents to 999999
00083 
00084   ila_args = 999999
00085 
00086 ! 1.2. Content : action, global rank, field_id, comp_id, local rank
00087 
00088   ila_args(1) = PSMILe_trans_Put
00089   ila_args(2) = global_rank
00090   ila_args(3) = id_transient_out_id
00091   ila_args(4) = id_epio_id
00092   ila_args(5) = PRISM_Double_Precision
00093   ila_args(6) = id_epio_field_size
00094   ila_args(7) = nbr_fields
00095 
00096 !
00097 ! 2. Send the header message to the transformer
00098 !
00099   call psmile_trs_inform(ila_args, id_trans_rank, id_err)
00100 
00101 !
00102 ! 3. Send the field
00103 !
00104 !   CALL MPI_Send(dda_field(1), id_epio_field_size, MPI_Double_Precision, &
00105 !     id_trans_rank, 10, comm_trans, id_err)
00106    call psmile_bsend(dda_field(1), id_epio_field_size, MPI_Double_Precision, &
00107      id_trans_rank, 10, comm_trans, id_err)
00108 
00109 !
00110 #ifdef VERBOSE
00111       print *, trim(ch_id), ': PSMILe_Trs_put_dble: eof ierror =', &
00112                id_err
00113 
00114 #endif /* VERBOSE */
00115   
00116 END SUBROUTINE PSMILe_Trs_put_dble
00117 
00118 
00119 

Generated on 18 Mar 2011 for Oasis4 by  doxygen 1.6.1