⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 az_fortran_wrap.c

📁 并行解法器,功能强大
💻 C
📖 第 1 页 / 共 2 页
字号:
/*==================================================================== * ------------------------ * | CVS File Information | * ------------------------ * * $RCSfile: az_fortran_wrap.c,v $ * * $Author: tuminaro $ * * $Date: 1999/10/18 21:36:43 $ * * $Revision: 1.8 $ * * $Name:  $ *====================================================================*/#ifndef lintstatic char rcsid[] = "$Id: az_fortran_wrap.c,v 1.8 1999/10/18 21:36:43 tuminaro Exp $";#endif/******************************************************************************* * Copyright 1995, Sandia Corporation.  The United States Government retains a * * nonexclusive license in this software as prescribed in AL 88-1 and AL 91-7. * * Export of this program may require a license from the United States         * * Government.                                                                 * ******************************************************************************//***********************************************************************  Fortran wrappers so that Aztec may be called from fortran programs.  ***********************************************************************/#include <stdio.h>#include <stdlib.h>#include "az_aztec.h"extern void az_broadcast_(char *ptr, int *length, int proc_config[],int *action);extern void az_check_msr_(int *bindx, int *N_update, int *N_external,			  int option, int *proc_config);extern void az_check_vbr_(int *N_update, int *N_external, int *option, int bindx[],			  int bnptr[], int cnptr[], int rnptr[], int proc_config[]);extern void az_defaults_(int options[], double params[]);extern void az_exchange_bdry_(double x[], int data_org[], int proc_config[]);extern void az_find_local_indices_(int *N_update, int bindx[], int update[],			           int *external, int *N_external, int *mat_type,                                   int bpntr[]);extern void az_find_procs_for_externs_(int *N_update, int update[], int external[],				       int *N_external, int proc_config[],                                       int *extern_proc);extern void az_free_memory_(int *label);extern void   az_gsum_vec_int_(int vals[], int vals2[], int *length, int proc_config[]);extern void   az_init_quick_find_(int list[], int *length, int *shift, int *bins);extern void az_invorder_vec_(double vector[], int data_org[], int update_index[],			     int rpntr[], double newvec[]);extern void   az_matvec_mult_(double *val, int *indx, int *bindx, int *rpntr,			      int *cpntr, int *bpntr, double *b, double *c,                              int *exchange_flag, int *data_org);extern void   az_msr2vbr_(double val[], int indx[], int rnptr[], int cnptr[],			  int bnptr[], int bindx[], int msr_bindx[], double msr_val[],                          int *total_blk_rows, int *total_blk_cols, int *blk_space,                          int *nz_space, int *blk_type);extern void   az_order_ele_(int update_index[], int extern_index[], int *internal,			    int *border, int *N_update, int msr_bindx[], int bindx[],                            int extern_proc[], int *N_external, int *option,                            int *m_type);extern void   az_print_error_(int *error_code);extern void   az_processor_info_(int proc_config[]);extern void   az_read_msr_matrix_(int update[], double *val, int *bindx, int *N_update,				  int proc_config[]);extern void   az_read_update_(int *N_update_blks, int update_blks[], int proc_config[],			      int *bigN, int *chunk, int *input_option);extern void   az_reorder_matrix_(int *N_update, int bindx[], double val[],				 int update_index[], int extern_index[], int indx[],                                 int rnptr[], int bnptr[], int *N_external,                                 int cnptr[], int *option, int *mat_type);extern void az_reorder_vec_(double vector[], int data_org[], int update_index[],			    int rpntr[]);extern void az_set_comm_(int proc_config[], MPI_AZComm comm);extern void az_set_proc_config_(int proc_config[], MPI_AZComm *comm);extern void   az_set_message_info_(int *N_external, int extern_index[],			           int *N_update, int external[], int extern_proc[],                            	   int update[], int update_index[], int proc_config[],                                   int cnptr[], int *data_org, int *mat_type);extern void az_solve_(double x[], double b[], int options[], double params[],		      int indx[], int bindx[], int rpntr[], int cpntr[], int bpntr[],                      double val[], int data_org[], double status[], int proc_config[]);extern void az_sort_(int list[], int *N, int list2[], double list3[]);extern void az_transform_(int proc_config[],int external[],int bindx[], double val[],			  int update[], int update_index[], int extern_index[],                     int data_org[], int *N_update, int indx[], int bnptr[],                     int rnptr[], int cnptr[], int *mat_type);extern void az_broadcast__(char *ptr, int *length, int proc_config[],int *action);extern void az_check_msr__(int *bindx, int *N_update, int *N_external,			   int option, int *proc_config);extern void az_check_vbr__(int *N_update, int *N_external, int *option, int bindx[],			   int bnptr[], int cnptr[], int rnptr[], int proc_config[]);extern void az_defaults__(int options[], double params[]);extern void az_exchange_bdry__(double x[], int data_org[], int proc_config[]);extern void az_find_local_indices__(int *N_update, int bindx[], int update[],				    int *external, int *N_external, int *mat_type,                            	    int bpntr[]);extern void az_find_procs_for_externs__(int *N_update, int update[], int external[],				        int *N_external, int proc_config[],                                	int *extern_proc);extern void az_free_memory__(int *label);extern void   az_gsum_vec_int__(int vals[], int vals2[],int *length, int proc_config[]);extern void   az_init_quick_find__(int list[], int *length, int *shift, int *bins);extern void az_invorder_vec__(double vector[], int data_org[], int update_index[],			      int rpntr[], double newvec[]);extern void   az_matvec_mult__(double *val, int *indx, int *bindx, int *rpntr,			       int *cpntr, int *bpntr, double *b, double *c,                       	       int *exchange_flag, int *data_org);extern void   az_msr2vbr__(double val[], int indx[], int rnptr[], int cnptr[],			   int bnptr[], int bindx[], int msr_bindx[], double msr_val[],                   	   int *total_blk_rows, int *total_blk_cols, int *blk_space,                   	   int *nz_space, int *blk_type);extern void   az_order_ele__(int update_index[], int extern_index[], int *internal,			     int *border, int *N_update, int msr_bindx[], int bindx[],                     	     int extern_proc[], int *N_external, int *option,                             int *m_type);extern void   az_print_error__(int *error_code);extern void   az_processor_info__(int proc_config[]);extern void   az_read_msr_matrix__(int update[],double *val, int *bindx, int *N_update,				   int proc_config[]);extern void   az_read_update__(int *N_update_blks,int update_blks[], int proc_config[],			       int *bigN, int *chunk, int *input_option);extern void   az_reorder_matrix__(int *N_update, int bindx[], double val[],				  int update_index[], int extern_index[], int indx[],                          	  int rnptr[], int bnptr[], int *N_external,                          	  int cnptr[], int *option, int *mat_type);extern void az_reorder_vec__(double vector[], int data_org[], int update_index[],			     int rpntr[]);extern void az_set_comm__(int proc_config[], MPI_AZComm comm);extern void az_set_proc_config__(int proc_config[], MPI_AZComm *comm);extern void   az_set_message_info__(int *N_external, int extern_index[],				    int *N_update, int external[], int extern_proc[],                            	    int update[], int update_index[], int proc_config[],                            	    int cnptr[], int *data_org, int *mat_type);extern void az_solve__(double x[], double b[], int options[], double params[],               int indx[], int bindx[], int rpntr[], int cpntr[], int bpntr[],               double val[], int data_org[], double status[], int proc_config[]);extern void   az_sort__(int list[], int *N, int list2[], double list3[]);extern void   az_transform__(int proc_config[],int external[],int bindx[], double val[],			     int update[], int update_index[], int extern_index[],                             int data_org[], int *N_update, int indx[], int bnptr[],                             int rnptr[], int cnptr[], int *mat_type);double az_gavg_double_(double *var, int proc_config[]);double az_gdot_(int *N, double r[], double z[],int proc_config[]);double az_gmax_double_(double *var, int proc_config[]);double az_gmax_matrix_norm_(double val[], int indx[], int bindx[], int rpntr[],                            int cpntr[], int bpntr[], int proc_config[],                            int data_org[]);double az_gmax_vec_(int *N, double vec[], int proc_config[]);double az_gmin_double_(double *var, int proc_config[]);double az_gsum_double_(double *var, int proc_config[]);double az_gvector_norm_(int *n, int *p, double *x, int *proc_config);double az_gavg_double__(double *var, int proc_config[]);double az_gdot__(int *N, double r[], double z[],int proc_config[]);double az_gmax_double__(double *var, int proc_config[]);double az_gmax_matrix_norm__(double val[], int indx[], int bindx[], int rpntr[],                            int cpntr[], int bpntr[], int proc_config[],                            int data_org[]);double az_gmax_vec__(int *N, double vec[], int proc_config[]);double az_gmin_double__(double *var, int proc_config[]);double az_gsum_double__(double *var, int proc_config[]);double az_gvector_norm__(int *n, int *p, double *x, int *proc_config);int az_check_input_(int data_org[], int options[], double params[],                     int proc_config[]);int az_find_index_(int *key, int list[], int *length);int az_gmax_int_(int *val, int proc_config[]);int az_gmin_int_(int *val, int proc_config[]);int az_gsum_int_(int *totals, int proc_config[]);int az_quick_find_(int *key, int list[],int *length, int *shift, int bins[]);int az_check_input__(int data_org[], int options[], double params[],                     int proc_config[]);int az_find_index__(int *key, int list[], int *length);int az_gmax_int__(int *val, int proc_config[]);int az_gmin_int__(int *val, int proc_config[]);int az_gsum_int__(int *totals, int proc_config[]);int az_quick_find__(int *key, int list[],int *length, int *shift, int bins[]);extern MPI_AZComm *az_get_comm_(int proc_config[]);extern MPI_AZComm *az_get_comm__(int proc_config[]);int AZ_using_fortran = AZ_FALSE;void az_broadcast_(char *ptr, int *length, int proc_config[],int *action){  AZ_broadcast(ptr, *length, proc_config, *action);}int  az_check_input_(int data_org[], int options[], double params[],                     int proc_config[]){  /* untouched */  return(AZ_check_input(data_org, options, params, proc_config));}void az_check_msr_(int *bindx, int *N_update, int *N_external,                   int option, int *proc_config){  AZ_check_msr(bindx, *N_update, *N_external, option, proc_config);}void az_check_vbr_(int *N_update, int *N_external, int *option, int bindx[],                   int bnptr[], int cnptr[], int rnptr[], int proc_config[]){  AZ_check_vbr(*N_update, *N_external, *option, bindx, bnptr, cnptr, rnptr,               proc_config);}void az_defaults_(int options[], double params[]){  /* untouched */  AZ_defaults(options, params);}void az_exchange_bdry_(double x[], int data_org[], int proc_config[]){  /* untouched */  AZ_exchange_bdry(x, data_org, proc_config);}int  az_find_index_(int *key, int list[], int *length){  return(AZ_find_index(*key, list, *length));}void az_find_local_indices_(int *N_update, int bindx[], int update[],                            int *external, int *N_external, int *mat_type,                            int bpntr[]){  AZ_using_fortran = AZ_TRUE;  AZ_find_local_indices(*N_update, bindx, update, &external,                        N_external, *mat_type, bpntr);  AZ_using_fortran = AZ_FALSE;}void az_find_procs_for_externs_(int *N_update, int update[], int external[],                                int *N_external, int proc_config[],                                int *extern_proc){  AZ_using_fortran = AZ_TRUE;  AZ_find_procs_for_externs(*N_update, update, external, *N_external,                            proc_config, &extern_proc);  AZ_using_fortran = AZ_FALSE;}void az_free_memory_(int *label){  AZ_free_memory(*label);}double az_gavg_double_(double *var, int proc_config[]){  return(AZ_gavg_double(*var, proc_config));}double az_gdot_(int *N, double r[], double z[],int proc_config[]){  return(AZ_gdot(*N, r, z,proc_config));}double az_gmax_double_(double *var, int proc_config[]){  return(AZ_gmax_double(*var, proc_config));}int az_gmax_int_(int *val, int proc_config[]){  return(AZ_gmax_int(*val, proc_config));}double az_gmax_matrix_norm_(double val[], int indx[], int bindx[], int rpntr[],                            int cpntr[], int bpntr[], int proc_config[],                            int data_org[]){  /* unchanged */  return(AZ_gmax_matrix_norm(val, indx, bindx, rpntr, cpntr, bpntr,                             proc_config, data_org));}double az_gmax_vec_(int *N, double vec[], int proc_config[]){  return(AZ_gmax_vec(*N, vec, proc_config));}double az_gmin_double_(double *var, int proc_config[]){  return(AZ_gmin_double(*var, proc_config));}int az_gmin_int_(int *val, int proc_config[]){  return(AZ_gmin_int(*val, proc_config));}double az_gsum_double_(double *var, int proc_config[]){  return(AZ_gsum_double(*var, proc_config));}int    az_gsum_int_(int *totals, int proc_config[]){  return(AZ_gsum_int(*totals, proc_config));}void   az_gsum_vec_int_(int vals[], int vals2[], int *length, int proc_config[]){  AZ_gsum_vec_int(vals, vals2, *length, proc_config);}double az_gvector_norm_(int *n, int *p, double *x, int *proc_config){  return(AZ_gvector_norm(*n, *p, x, proc_config));}void   az_init_quick_find_(int list[], int *length, int *shift, int *bins){  AZ_init_quick_find(list, *length, shift, bins);}void az_invorder_vec_(double vector[], int data_org[], int update_index[],	int rpntr[], double newvec[]){  AZ_invorder_vec(vector, data_org, update_index, rpntr, newvec);}void   az_matvec_mult_(double *val, int *indx, int *bindx, int *rpntr,                       int *cpntr, int *bpntr, double *b, double *c,                       int *exchange_flag, int *data_org){  AZ_matvec_mult(val, indx, bindx, rpntr, cpntr, bpntr, b, c,                 *exchange_flag, data_org);}void   az_msr2vbr_(double val[], int indx[], int rnptr[], int cnptr[],                   int bnptr[], int bindx[], int msr_bindx[], double msr_val[],                   int *total_blk_rows, int *total_blk_cols, int *blk_space,                   int *nz_space, int *blk_type){  AZ_msr2vbr(val, indx, rnptr, cnptr, bnptr, bindx, msr_bindx, msr_val,             *total_blk_rows, *total_blk_cols, *blk_space, *nz_space,             *blk_type);}void   az_order_ele_(int update_index[], int extern_index[], int *internal,                     int *border, int *N_update, int msr_bindx[], int bindx[],                     int extern_proc[], int *N_external, int *option,                     int *m_type){  AZ_order_ele(update_index, extern_index, internal, border, *N_update,               msr_bindx, bindx, extern_proc, *N_external, *option, *m_type);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -