source: LMDZ6/trunk/libf/phylmd/ecrad.v1.5.1/crc.h @ 5327

Last change on this file since 5327 was 3908, checked in by idelkadi, 3 years ago

Online implementation of the radiative transfer code ECRAD in the LMDZ model.

  • Inclusion of the ecrad directory containing the sources of the ECRAD code
    • interface routine : radiation_scheme.F90
  • Adaptation of compilation scripts :
    • compilation under CPP key CPP_ECRAD
    • compilation with option "-rad ecard" or "-ecard true"
    • The "-rad old/rtm/ecran" build option will need to replace the "-rrtm true" and "-ecrad true" options in the future.
  • Runing LMDZ simulations with ecrad, you need :
    • logical key iflag_rrtm = 2 in physiq.def
    • namelist_ecrad (DefLists?)
    • the directory "data" containing the configuration files is temporarily placed in ../libfphylmd/ecrad/
  • Compilation and execution are tested in the 1D case. The repository under svn would allow to continue the implementation work: tests, verification of the results, ...
File size: 1.5 KB
Line 
1/**
2 * (C) Copyright 2014- ECMWF.
3 *
4 * This software is licensed under the terms of the Apache Licence Version 2.0
5 * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6 *
7 * In applying this licence, ECMWF does not waive the privileges and immunities
8 * granted to it by virtue of its status as an intergovernmental organisation
9 * nor does it submit to any jurisdiction.
10 */
11
12/* crc.h */
13/* Calculates 32-bit  Cyclic Redundancy Check as in Unix cksum command */
14/* Also calculates 64-bit  Cyclic Redundancy Check */
15
16/* Sami Saarinen, 17-Feb-2005 : crc32       */
17/*                24-Jun-2005 : Added crc64 */
18/*                29-Dec-2005 : Added protos for direct C-calls */
19/*                29-Dec-2005 : Length argument for crc64 now 64-bit int */
20
21/* C callables */
22
23extern unsigned int 
24pp_cksum32(int nbuf, unsigned int nCRC);
25
26extern unsigned int 
27pp_cksum32but64len(long long int nbuf, unsigned int nCRC);
28
29extern unsigned long long int 
30pp_cksum64(long long int nbuf, unsigned long long int nCRC);
31
32extern unsigned int 
33cksum32(const char *buf, int nbuf, unsigned int nCRC);
34
35extern unsigned long long int
36cksum64(const char *buf, long long int nbuf, unsigned long long int nCRC);
37
38/* Fortran callable */
39
40extern void 
41crc32_(const void *vbuf, const int *pnbuf, 
42       unsigned int *pnCRC /* Note: An in & out -variable */);
43
44extern void 
45crc64_(const void *vbuf, const long long int *pnbuf, 
46       unsigned long long int *pnCRC /* Note: An in & out -variable */);
Note: See TracBrowser for help on using the repository browser.