00001
00002
00003
00004
00005
00006
00007 SUBROUTINE prismdrv_create_transi_udef ( id_nb_transi, &
00008 id_xml, &
00009 id_u, &
00010 id_ch, &
00011 id_side, &
00012 sda_smioc_transi, &
00013 id_comp, &
00014 id_error )
00015
00016 USE psmile_smioc
00017 USE psmile_smioc_interface
00018 IMPLICIT NONE
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 Integer, Intent(In) :: id_nb_transi
00030
00031
00032 Integer, Intent(In) :: id_xml
00033
00034
00035 Integer, Intent(In) :: id_u
00036
00037
00038 Integer, Intent(In) :: id_ch
00039
00040
00041 Integer, Intent(In) :: id_side
00042
00043
00044 TYPE(transient), Dimension(id_nb_transi), TARGET, Intent(InOut) :: sda_smioc_transi
00045
00046
00047 Integer, Intent(In) :: id_comp
00048
00049
00050 Integer, Intent(Out) :: id_error
00051
00052
00053
00054
00055
00056
00057
00058
00059 Integer :: ib_tr, ib_st, ib_o, ib_i, ib_c
00060 Integer :: il_nb_stand_name
00061 Integer :: il_nb_in_orig
00062 Integer :: il_nb_transi_out
00063
00064
00065 TYPE(transient), pointer :: ti, td
00066
00067
00068 Character(len=max_name) :: cl_in, cl_out
00069
00070
00071 Integer, parameter :: il_cc = -1
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088 ti => sda_smioc_transi(id_xml)
00089 td => sda_smioc_transi(id_u)
00090
00091
00092
00093 il_nb_stand_name = ti%ig_nb_stand_name
00094
00095 td%ig_nb_stand_name = il_nb_stand_name
00096
00097
00098 td%ig_transi_type = ti%ig_transi_type
00099 td%ig_nb_bndl = ti%ig_nb_bndl
00100 td%ig_datatype = ti%ig_datatype
00101
00102
00103
00104 cl_in = ti%cg_local_name
00105 call put_udef_suffix ( cl_in, cl_out, id_ch, id_side )
00106 td%cg_local_name = trim(adjustl(cl_out))
00107
00108 td%cg_long_name = ti%cg_long_name
00109 td%cg_comp_name = ti%cg_comp_name
00110 td%cg_units = ti%cg_units
00111
00112
00113 DO ib_st = 1, il_nb_stand_name
00114 td%cga_stand_name(ib_st) = ti%cga_stand_name(ib_st)
00115 ENDDO
00116
00117
00118
00119
00120
00121 IF ( id_side == 1 ) THEN
00122
00123
00124 td%sg_transi_in%ig_nb_in_orig = 1
00125
00126 td%sg_transi_in%ig_exch_date_type = ti%sg_transi_in%ig_exch_date_type
00127 td%sg_transi_in%ig_debugmode = ti%sg_transi_in%ig_debugmode
00128 td%sg_transi_in%ig_tgt_timeop = ti%sg_transi_in%ig_tgt_timeop
00129 td%sg_transi_in%iga_stats = ti%sg_transi_in%iga_stats
00130 td%sg_transi_in%sg_min_period = ti%sg_transi_in%sg_min_period
00131 td%sg_transi_in%sg_tgt_local_trans = ti%sg_transi_in%sg_tgt_local_trans
00132 td%sg_transi_in%sg_exch_date = ti%sg_transi_in%sg_exch_date
00133
00134
00135
00136 ib_i = id_ch
00137
00138
00139
00140 td%sg_transi_in%sga_in_orig(1)%ig_orig_type = &
00141 ti%sg_transi_in%sga_in_orig(ib_i)%ig_orig_type
00142
00143 #ifdef DEBUG
00144 print *,' ig_orig_type geographique = ',ti%sg_transi_in%sga_in_orig(ib_i)%ig_orig_type
00145 print *,' ig_orig_type gridless = ',td%sg_transi_in%sga_in_orig(1)%ig_orig_type
00146 #endif
00147
00148
00149
00150 td%sg_transi_in%sga_in_orig(1)%ig_orig_comp_id = &
00151 ti%sg_transi_in%sga_in_orig(ib_i)%ig_orig_comp_id
00152
00153 td%sg_transi_in%sga_in_orig(1)%ig_conserv = &
00154 ti%sg_transi_in%sga_in_orig(ib_i)%ig_conserv
00155
00156
00157
00158 cl_in = ti%sg_transi_in%sga_in_orig(ib_i)%cg_transi_in_name
00159 call put_udef_suffix ( cl_in, cl_out, il_cc, il_cc )
00160 td%sg_transi_in%sga_in_orig(1)%cg_transi_in_name = trim(adjustl(cl_out))
00161
00162 cl_in = ti%sg_transi_in%sga_in_orig(ib_i)%cg_orig_transi
00163 call put_udef_suffix ( cl_in, cl_out, il_cc, il_cc )
00164 td%sg_transi_in%sga_in_orig(1)%cg_orig_transi = trim(adjustl(cl_out))
00165
00166 td%sg_transi_in%sga_in_orig(1)%cg_orig_comp_name = &
00167 ti%sg_transi_in%sga_in_orig(ib_i)%cg_orig_comp_name
00168
00169 td%sg_transi_in%sga_in_orig(1)%sg_orig_file = &
00170 ti%sg_transi_in%sga_in_orig(ib_i)%sg_orig_file
00171
00172 td%sg_transi_in%sga_in_orig(1)%sg_cpl_rst_file = &
00173 ti%sg_transi_in%sga_in_orig(ib_i)%sg_cpl_rst_file
00174
00175
00176 #ifdef DEBUG
00177 print *,' ig_interp_type geographique = ', &
00178 ti%sg_transi_in%sga_in_orig(ib_i)%sg_interp%ig_interp_type
00179 #endif
00180
00181
00182 td%sg_transi_in%sga_in_orig(1)%sg_combi = &
00183 ti%sg_transi_in%sga_in_orig(ib_i)%sg_combi
00184
00185 ENDIF
00186
00187
00188 IF ( id_side == 0 ) THEN
00189
00190
00191 td%ig_nb_transi_out = 1
00192 ib_o = id_ch
00193
00194
00195
00196
00197 td%sga_transi_out(1)%ig_dest_type = &
00198 ti%sga_transi_out(ib_o)%ig_dest_type
00199
00200
00201
00202
00203 td%sga_transi_out(1)%ig_dest_comp_id = &
00204 ti%sga_transi_out(ib_o)%ig_dest_comp_id
00205
00206 td%sga_transi_out(1)%ig_exch_date_type = &
00207 ti%sga_transi_out(ib_o)%ig_exch_date_type
00208
00209 td%sga_transi_out(1)%ig_debugmode = &
00210 ti%sga_transi_out(ib_o)%ig_debugmode
00211
00212 td%sga_transi_out(1)%ig_lag = &
00213 ti%sga_transi_out(ib_o)%ig_lag
00214
00215 td%sga_transi_out(1)%ig_src_timeop = &
00216 ti%sga_transi_out(ib_o)%ig_src_timeop
00217
00218 td%sga_transi_out(1)%ig_conserv = &
00219 ti%sga_transi_out(ib_o)%ig_conserv
00220
00221 td%sga_transi_out(1)%iga_stats = &
00222 ti%sga_transi_out(ib_o)%iga_stats
00223
00224 cl_in = ti%sga_transi_out(ib_o)%cg_transi_out_name
00225 call put_udef_suffix ( cl_in, cl_out, il_cc, il_cc )
00226 td%sga_transi_out(1)%cg_transi_out_name = trim(adjustl(cl_out))
00227
00228 cl_in = ti%sga_transi_out(ib_o)%cg_dest_transi
00229 call put_udef_suffix ( cl_in, cl_out, il_cc, il_cc )
00230 td%sga_transi_out(1)%cg_dest_transi = trim(adjustl(cl_out))
00231
00232 td%sga_transi_out(1)%cg_dest_comp_name = &
00233 ti%sga_transi_out(ib_o)%cg_dest_comp_name
00234
00235 td%sga_transi_out(1)%sg_dest_file = &
00236 ti%sga_transi_out(ib_o)%sg_dest_file
00237
00238 td%sga_transi_out(1)%sg_cpl_rst_file = &
00239 ti%sga_transi_out(ib_o)%sg_cpl_rst_file
00240
00241 td%sga_transi_out(1)%sg_min_period = &
00242 ti%sga_transi_out(ib_o)%sg_min_period
00243
00244 td%sga_transi_out(1)%sg_exch_date = &
00245 ti%sga_transi_out(ib_o)%sg_exch_date
00246
00247 td%sga_transi_out(1)%sg_src_local_trans = &
00248 ti%sga_transi_out(ib_o)%sg_src_local_trans
00249
00250 td%sga_transi_out(1)%sg_combi = &
00251 ti%sga_transi_out(ib_o)%sg_combi
00252
00253 ENDIF
00254
00255 Nullify ( ti )
00256 Nullify ( td )
00257
00258 id_error = 0
00259
00260 RETURN
00261
00262 END SUBROUTINE prismdrv_create_transi_udef
00263
00264