/*************************************
* *
* 外枠システム setjinko.c *
* (人口設定) *
* *
*************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "set.h"
#include "cntl.h"
void setjinko(void) {
int TMP ;
double TMQ ;
double TMR ;
/* 年央人口 */
for ( sei=1; sei<=2; sei++ ) {
for ( nenrei=1; nenrei<=120; nenrei++ ) {
if ( jinko_c[KE-1-STARTY][sei][nenrei-1] > 0.0 ) {
jinko_c[KE+1-STARTY][sei][nenrei]
= round( jinko_c[KE-STARTY][sei][nenrei-1]
* jinko_c[KE-STARTY][sei][nenrei]
/ jinko_c[KE-1-STARTY][sei][nenrei-1] , 0 ) ;
}
else {
jinko_c[KE+1-STARTY][sei][nenrei] = 0.0 ;
}
if ( st_jinko_c[KE-1-STARTY][sei][nenrei-1] > 0.0 ) {
st_jinko_c[KE+1-STARTY][sei][nenrei]
= round ( st_jinko_c[KE-STARTY][sei][nenrei-1]
* st_jinko_c[KE-STARTY][sei][nenrei]
/ st_jinko_c[KE-1-STARTY][sei][nenrei-1] , 0 );
}
else {
st_jinko_c[KE+1-STARTY][sei][nenrei] = 0.0 ;
}
}
}
TMQ = 0.0 ; TMR = 0.0 ;
for ( nenrei=18; nenrei<=42; nenrei++ ) {
TMQ += jinko_c[KE+1-STARTY][2][nenrei] ;
TMR += jinko_c[KE-STARTY][2][nenrei] ;
}
if ( TMR > 0.0 ) {
for ( sei=1; sei<=2; sei++ ) {
jinko_c[KE+1-STARTY][sei][0]
= round( jinko_c[KE-STARTY][sei][0] * TMQ / TMR , 0 );
}
}
TMQ = 0.0 ; TMR = 0.0 ;
for ( nenrei=18; nenrei<=42; nenrei++ ) {
TMQ += st_jinko_c[KE+1-STARTY][2][nenrei] ;
TMR += st_jinko_c[KE-STARTY][2][nenrei] ;
}
if ( TMR > 0.0 ) {
for ( sei=1; sei<=2; sei++ ) {
st_jinko_c[KE+1-STARTY][sei][0]
= round( st_jinko_c[KE-STARTY][sei][0] * TMQ / TMR , 0 );
}
}
/* 100歳以上を100歳に */
for ( nendo=STARTY+1; nendo<=KE+1; nendo++ ) {
for ( sei=1; sei<=2; sei++ ) {
for ( nenrei=101; nenrei<=120; nenrei++ ) {
if ( jinko_c[nendo-STARTY][sei][nenrei] > 0.0 ) {
jinko_c[nendo-STARTY][sei][100] += jinko_c[nendo-STARTY][sei][nenrei] ;
jinko_c[nendo-STARTY][sei][nenrei] = 0.0 ;
}
if ( st_jinko_c[nendo-STARTY][sei][nenrei] > 0.0 ) {
st_jinko_c[nendo-STARTY][sei][100] += st_jinko_c[nendo-STARTY][sei][nenrei] ;
st_jinko_c[nendo-STARTY][sei][nenrei] = 0.0 ;
}
}
}
}
/* 年央人口→年度末人口の作成 */
for ( nendo=STARTY+1; nendo<=KE; nendo++ ) {
for ( nenrei=0; nenrei<=100; nenrei++) {
for ( sei=1; sei<=2; sei++){
if ( nenrei+SJINKOY-nendo > 0 ) {
TMP = 0;
TMP = nenrei + SJINKOY - nendo;
if (( nenrei > 0 ) && ( nenrei < 100 )) {
jinko_m[nendo-STARTY][sei][nenrei] =
( jinko_c[nendo-STARTY][sei][nenrei-1] * ( 1.0 - jinko_wari[sei][TMP-1] )
+ jinko_c[nendo-STARTY][sei][nenrei] * jinko_wari[sei][TMP]
+ jinko_c[nendo-STARTY+1][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP-1] )
+ jinko_c[nendo-STARTY+1][sei][nenrei+1] * jinko_wari[sei][TMP] ) / 2.0;
st_jinko_m[nendo-STARTY][sei][nenrei] =
( st_jinko_c[nendo-STARTY][sei][nenrei-1] * ( 1.0 - jinko_wari[sei][TMP-1] )
+ st_jinko_c[nendo-STARTY][sei][nenrei] * jinko_wari[sei][TMP]
+ st_jinko_c[nendo-STARTY+1][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP-1] )
+ st_jinko_c[nendo-STARTY+1][sei][nenrei+1] * jinko_wari[sei][TMP] ) / 2.0;
}
else if ( nenrei==0 ) {
jinko_m[nendo-STARTY][sei][nenrei] =
( jinko_c[nendo-STARTY][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP] )
+ jinko_c[nendo-STARTY][sei][nenrei] * jinko_wari[sei][TMP]
+ jinko_c[nendo-STARTY+1][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP-1] )
+ jinko_c[nendo-STARTY+1][sei][nenrei+1] * jinko_wari[sei][TMP] ) / 2.0;
st_jinko_m[nendo-STARTY][sei][nenrei] =
( st_jinko_c[nendo-STARTY][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP] )
+ st_jinko_c[nendo-STARTY][sei][nenrei] * jinko_wari[sei][TMP]
+ st_jinko_c[nendo-STARTY+1][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP-1] )
+ st_jinko_c[nendo-STARTY+1][sei][nenrei+1] * jinko_wari[sei][TMP] ) / 2.0;
}
else if ( nenrei==100 ) {
jinko_m[nendo-STARTY][sei][nenrei] =
( jinko_c[nendo-STARTY][sei][nenrei-1] * ( 1.0 - jinko_wari[sei][TMP-1] )
+ jinko_c[nendo-STARTY][sei][nenrei] * jinko_wari[sei][TMP]
+ jinko_c[nendo-STARTY+1][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP-1] )
+ jinko_c[nendo-STARTY+1][sei][nenrei] * jinko_wari[sei][TMP-1] ) / 2.0;
st_jinko_m[nendo-STARTY][sei][nenrei] =
( st_jinko_c[nendo-STARTY][sei][nenrei-1] * ( 1.0 - jinko_wari[sei][TMP-1] )
+ st_jinko_c[nendo-STARTY][sei][nenrei] * jinko_wari[sei][TMP]
+ st_jinko_c[nendo-STARTY+1][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP-1] )
+ st_jinko_c[nendo-STARTY+1][sei][nenrei] * jinko_wari[sei][TMP-1] ) / 2.0;
}
}
else {
if (( nenrei > 0 ) && ( nenrei < 100 )) {
jinko_m[nendo-STARTY][sei][nenrei] =
( jinko_c[nendo-STARTY][sei][nenrei-1]
+ jinko_c[nendo-STARTY][sei][nenrei]
+ jinko_c[nendo-STARTY+1][sei][nenrei]
+ jinko_c[nendo-STARTY+1][sei][nenrei+1] ) / 4.0;
st_jinko_m[nendo-STARTY][sei][nenrei] =
( st_jinko_c[nendo-STARTY][sei][nenrei-1]
+ st_jinko_c[nendo-STARTY][sei][nenrei]
+ st_jinko_c[nendo-STARTY+1][sei][nenrei]
+ st_jinko_c[nendo-STARTY+1][sei][nenrei+1] ) / 4.0;
}
else if ( nenrei==0 ) {
jinko_m[nendo-STARTY][sei][nenrei] =
( jinko_c[nendo-STARTY][sei][nenrei]
+ jinko_c[nendo-STARTY][sei][nenrei]
+ jinko_c[nendo-STARTY+1][sei][nenrei]
+ jinko_c[nendo-STARTY+1][sei][nenrei+1] ) / 4.0;
st_jinko_m[nendo-STARTY][sei][nenrei] =
( st_jinko_c[nendo-STARTY][sei][nenrei]
+ st_jinko_c[nendo-STARTY][sei][nenrei]
+ st_jinko_c[nendo-STARTY+1][sei][nenrei]
+ st_jinko_c[nendo-STARTY+1][sei][nenrei+1] ) / 4.0;
}
else if ( nenrei==100 ) {
jinko_m[nendo-STARTY][sei][nenrei] =
( jinko_c[nendo-STARTY][sei][nenrei-1]
+ jinko_c[nendo-STARTY][sei][nenrei]
+ jinko_c[nendo-STARTY+1][sei][nenrei]
+ jinko_c[nendo-STARTY+1][sei][nenrei] ) / 4.0;
st_jinko_m[nendo-STARTY][sei][nenrei] =
( st_jinko_c[nendo-STARTY][sei][nenrei-1]
+ st_jinko_c[nendo-STARTY][sei][nenrei]
+ st_jinko_c[nendo-STARTY+1][sei][nenrei]
+ st_jinko_c[nendo-STARTY+1][sei][nenrei] ) / 4.0;
}
}
jinko_c[nendo-STARTY][0][nenrei]
= jinko_c[nendo-STARTY][1][nenrei] + jinko_c[nendo-STARTY][2][nenrei] ;
jinko_m[nendo-STARTY][0][nenrei]
= jinko_m[nendo-STARTY][1][nenrei] + jinko_m[nendo-STARTY][2][nenrei] ;
st_jinko_c[nendo-STARTY][0][nenrei]
= st_jinko_c[nendo-STARTY][1][nenrei] + st_jinko_c[nendo-STARTY][2][nenrei] ;
st_jinko_m[nendo-STARTY][0][nenrei]
= st_jinko_m[nendo-STARTY][1][nenrei] + st_jinko_m[nendo-STARTY][2][nenrei] ;
}
}
}
/* 女性有配偶、無配偶別人口 */
for ( nendo=YUHAIGY+1; nendo<=KE+1; nendo++ ) {
for ( nenrei=0; nenrei<=100; nenrei++) {
yuhaigr_c[nendo-STARTY][nenrei] = yuhaigr_c[nendo-1-STARTY][nenrei] ;
}
}
for ( nendo=STARTY+1; nendo<=KE; nendo++ ) {
for ( nenrei=0; nenrei<=100; nenrei++) {
/* 年度末有配偶率 */
yuhaigr_m[nendo-STARTY][nenrei] =
( yuhaigr_c[nendo-STARTY][nenrei] + yuhaigr_c[nendo+1-STARTY][nenrei] ) / 2.0 ;
/* 有配偶、無配偶別人口 */
jinko_c[nendo-STARTY][3][nenrei] =
jinko_c[nendo-STARTY][2][nenrei] * yuhaigr_c[nendo-STARTY][nenrei] ;
jinko_c[nendo-STARTY][4][nenrei] =
jinko_c[nendo-STARTY][2][nenrei] * (1.0 - yuhaigr_c[nendo-STARTY][nenrei] ) ;
jinko_m[nendo-STARTY][3][nenrei] =
jinko_m[nendo-STARTY][2][nenrei] * yuhaigr_m[nendo-STARTY][nenrei] ;
jinko_m[nendo-STARTY][4][nenrei] =
jinko_m[nendo-STARTY][2][nenrei] * (1.0 - yuhaigr_m[nendo-STARTY][nenrei] ) ;
st_jinko_c[nendo-STARTY][3][nenrei] =
st_jinko_c[nendo-STARTY][2][nenrei] * yuhaigr_c[nendo-STARTY][nenrei] ;
st_jinko_c[nendo-STARTY][4][nenrei] =
st_jinko_c[nendo-STARTY][2][nenrei] * (1.0 - yuhaigr_c[nendo-STARTY][nenrei] ) ;
st_jinko_m[nendo-STARTY][3][nenrei] =
st_jinko_m[nendo-STARTY][2][nenrei] * yuhaigr_m[nendo-STARTY][nenrei] ;
st_jinko_m[nendo-STARTY][4][nenrei] =
st_jinko_m[nendo-STARTY][2][nenrei] * (1.0 - yuhaigr_m[nendo-STARTY][nenrei] ) ;
}
}
/* 総人口、生産年齢人口 */
for ( nendo=KS-1; nendo<=KE; nendo++ ) {
sojinko_c[nendo-STARTY][0] = sojinko_c[nendo-STARTY][1] + sojinko_c[nendo-STARTY][2] ;
for ( nenrei=0; nenrei<=100; nenrei++) {
for ( sei=1; sei<=4; sei++){
sojinko_m[nendo-STARTY][sei] += jinko_m[nendo-STARTY][sei][nenrei] ;
if ( sei<=2 ) {
sojinko_m[nendo-STARTY][0] += jinko_m[nendo-STARTY][sei][nenrei] ;
}
if (( nenrei >= 15 ) && ( nenrei <= 64 )) {
seisanj_c[nendo-STARTY][sei] += jinko_c[nendo-STARTY][sei][nenrei] ;
seisanj_m[nendo-STARTY][sei] += jinko_m[nendo-STARTY][sei][nenrei] ;
st_seisanj_c[nendo-STARTY][sei] += st_jinko_c[nendo-STARTY][sei][nenrei] ;
st_seisanj_m[nendo-STARTY][sei] += st_jinko_m[nendo-STARTY][sei][nenrei] ;
if ( sei<=2 ) {
seisanj_c[nendo-STARTY][0] += jinko_c[nendo-STARTY][sei][nenrei] ;
seisanj_m[nendo-STARTY][0] += jinko_m[nendo-STARTY][sei][nenrei] ;
st_seisanj_c[nendo-STARTY][0] += st_jinko_c[nendo-STARTY][sei][nenrei] ;
st_seisanj_m[nendo-STARTY][0] += st_jinko_m[nendo-STARTY][sei][nenrei] ;
}
}
}
}
}
}
最終更新:2010年03月11日 02:35