added README_changes.txt
[wrffire.git] / wrfv2_fire / chem / KPP / util / wkc / gen_kpp_utils.c
blob416e48e1adc5931d1798d6264ecd4fcd9901364a
1 #include <stdio.h>
4 #include "protos.h"
5 #include "protos_kpp.h"
6 #include "kpp_data.h"
9 int gen_kpp_warning( FILE * ofile, char * gen_by_name, char*cchar )
11 fprintf(ofile, "%s \n", cchar);
12 fprintf(ofile, "%s THIS FILE WAS AUTOMATICALLY GENERATED BY \n%s\n",cchar,cchar );
13 fprintf(ofile, "%s %s \n%s\n", cchar, gen_by_name, cchar);
14 fprintf(ofile, "%s MANUAL CHANGES TO THIS FILE WILL BE LOST !!! \n", cchar); fprintf(ofile, "%s \n", cchar);
15 fprintf(ofile, "%s \n", cchar);
20 int
21 gen_kpp_pass_down ( FILE * ofile )
24 fprintf(ofile,"!\n");
25 fprintf(ofile,"#include <fixed_args_kpp_interf.inc>\n");
26 fprintf(ofile,"!\n");
28 /* pass down all radicals */
29 gen_kpp_argl( ofile, WRFC_radicals );
32 /* pass down jvals */
33 gen_kpp_argl( ofile, WRFC_jvals );
36 /* pass down dimensions */
37 gen_kpp_argd ( ofile );
42 int
43 gen_kpp_decl ( FILE * ofile )
45 /* declare dimensions */
46 gen_kpp_decld ( ofile );
49 fprintf(ofile,"#include <fixed_decl_kpp_interf.inc>\n\n\n");
53 /* declare radicals */
54 fprintf(ofile, "\n\n! \n");
55 fprintf(ofile, "! radicals \n");
56 fprintf(ofile, "! \n");
58 gen_kpp_decl3d( ofile, WRFC_radicals);
61 /* declare photolysis rates */
62 fprintf(ofile, "\n\n! \n");
63 fprintf(ofile, "! photolysis rates \n");
64 fprintf(ofile, "! \n");
66 gen_kpp_decl3d( ofile, WRFC_jvals);
69 fprintf(ofile, " \n\n\n");
74 int gen_kpp_argl( FILE * ofile, knode_t * nl )
76 knode_t * pml;
77 int countit;
78 int max_per_line=5;
80 fprintf(ofile," ");
82 countit=0;
83 for ( pml = nl -> members; pml != NULL ; pml = pml->next ) {
84 fprintf(ofile," %s,", pml->name);
85 countit = countit+1;
86 if ( countit % max_per_line == 0) {
87 fprintf(ofile," & \n ");
92 fprintf(ofile," & \n");
99 int gen_kpp_argl_new( FILE * ofile, knode_t * nl )
101 knode_t * pml;
102 int countit;
103 int max_per_line=4;
105 fprintf(ofile," ");
107 countit=0;
108 for ( pml = nl -> members; pml != NULL ; pml = pml->next ) {
109 fprintf(ofile," grid%%%s,", pml->name);
110 countit = countit+1;
111 if ( countit % max_per_line == 0) {
112 fprintf(ofile," & \n ");
117 fprintf(ofile," & \n");
126 int gen_kpp_argd ( FILE * ofile )
128 fprintf(ofile, " ids,ide, jds,jde, kds,kde, &\n");
129 fprintf(ofile, " ims,ime, jms,jme, kms,kme, &\n");
130 fprintf(ofile, " its,ite, jts,jte, kts,kte )\n\n\n");
134 int gen_kpp_decld ( FILE * ofile )
136 fprintf(ofile, "\n\n\n INTEGER, INTENT(IN ) :: &\n");
137 fprintf(ofile, " ids,ide, jds,jde, kds,kde, & \n");
138 fprintf(ofile, " ims,ime, jms,jme, kms,kme, & \n");
139 fprintf(ofile, " its,ite, jts,jte, kts,kte \n\n\n\n");
142 int gen_kpp_decl3d( FILE * ofile, knode_t * nl )
144 knode_t * pml;
145 int countit;
146 int max_per_line=5;
148 fprintf(ofile, " REAL, DIMENSION( ims:ime, kms:kme, jms:jme ), & \n");
149 fprintf(ofile, " INTENT(INOUT ) :: & \n ");
152 countit=0;
153 for ( pml = nl -> members; pml != NULL ; pml = pml->next ) {
157 if ( pml->next != NULL ){
158 fprintf(ofile," %s,", pml->name);
160 else{
161 fprintf(ofile," %s", pml->name);
164 countit = countit+1;
165 if ( countit % max_per_line == 0) {
166 if ( pml->next != NULL ){
167 fprintf(ofile," & \n ");