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

📄 ad_end.c

📁 mpi并行计算的c++代码 可用vc或gcc编译通过 可以用来搭建并行计算试验环境
💻 C
字号:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//*  *   Copyright (C) 1997 University of Chicago.  *   See COPYRIGHT notice in top-level directory. */#include "adio.h"#include "adio_extern.h"#ifdef ROMIO_INSIDE_MPICH2#include "mpiimpl.h"#endifvoid ADIO_End(int *error_code){    ADIOI_Flatlist_node *curr, *next;    ADIOI_Malloc_async *tmp;    ADIOI_Malloc_req *tmp1;    ADIOI_Datarep *datarep, *datarep_next;    static char myname[] = "ADIO_END";    /*    FPRINTF(stderr, "reached end\n"); *//* delete the flattened datatype list */    curr = ADIOI_Flatlist;    while (curr) {	if (curr->blocklens) ADIOI_Free(curr->blocklens);	if (curr->indices) ADIOI_Free(curr->indices);	next = curr->next;	ADIOI_Free(curr);	curr = next;    }    ADIOI_Flatlist = NULL;    /* --BEGIN ERROR HANDLING-- */    if (ADIOI_Async_list_head) {	*error_code = MPIO_Err_create_code(MPI_SUCCESS,					   MPIR_ERR_RECOVERABLE,					   myname, __LINE__,					   MPI_ERR_IO,					   "Error: outstanding nonblocking I/O operations", 0);	return;    }    /* --END ERROR HANDLING-- *//* free list of available ADIOI_Async_nodes. */    while (ADIOI_Malloc_async_head) {	ADIOI_Free(ADIOI_Malloc_async_head->ptr);	tmp = ADIOI_Malloc_async_head;	ADIOI_Malloc_async_head = ADIOI_Malloc_async_head->next;	ADIOI_Free(tmp);    }    ADIOI_Async_avail_head = ADIOI_Async_avail_tail = NULL;    ADIOI_Malloc_async_head = ADIOI_Malloc_async_tail = NULL;/* free all available request objects */    while (ADIOI_Malloc_req_head) {	ADIOI_Free(ADIOI_Malloc_req_head->ptr);	tmp1 = ADIOI_Malloc_req_head;	ADIOI_Malloc_req_head = ADIOI_Malloc_req_head->next;	ADIOI_Free(tmp1);    }    ADIOI_Malloc_req_head = ADIOI_Malloc_req_tail = NULL;/* free file, request, and info tables used for Fortran interface */    if (ADIOI_Ftable) ADIOI_Free(ADIOI_Ftable);    if (ADIOI_Reqtable) ADIOI_Free(ADIOI_Reqtable);#ifndef HAVE_MPI_INFO    if (MPIR_Infotable) ADIOI_Free(MPIR_Infotable);#endif/* free the memory allocated for a new data representation, if any */    datarep = ADIOI_Datarep_head;    while (datarep) {        datarep_next = datarep->next;#ifdef MPICH2        MPIU_Free(datarep->name);#else        ADIOI_Free(datarep->name);#endif        ADIOI_Free(datarep);        datarep = datarep_next;    }    *error_code = MPI_SUCCESS;}/* This is the delete callback function associated with   ADIO_Init_keyval when MPI_COMM_WORLD is freed */int ADIOI_End_call(MPI_Comm comm, int keyval, void *attribute_val, void		  *extra_state){    int error_code;    ADIOI_UNREFERENCED_ARG(comm);    ADIOI_UNREFERENCED_ARG(keyval);    ADIOI_UNREFERENCED_ARG(attribute_val);    ADIOI_UNREFERENCED_ARG(extra_state);    ADIO_End(&error_code);    return error_code;}

⌨️ 快捷键说明

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