From 785febe3dfbae470be4057ef4a4d6442626314c1 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 22 May 2026 14:19:36 +1000 Subject: [PATCH 01/40] Rejig library config for AM3 --- CMakeLists.txt | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 55d432a5c..cef0539cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -132,19 +132,6 @@ if(CABLE_LIBRARY) src/science/soilsnow/cbl_surfbv.F90 src/science/soilsnow/cbl_thermal.F90 src/science/soilsnow/cbl_trimb.F90 - src/params/cable_phys_constants_mod.F90 - src/params/grid_constants_cbl.F90 - src/params/cable_photo_constants_mod.F90 - src/params/cable_other_constants_mod.F90 - src/params/cable_maths_constants_mod.F90 - src/util/cable_runtime_opts_mod.F90 - src/util/cable_common.F90 - src/coupled/shared/cable_canopy_type_mod.F90 - src/coupled/shared/cable_soilsnow_type_mod.F90 - src/coupled/shared/cable_soil_type_mod.F90 - src/coupled/shared/cable_veg_type_mod.F90 - src/util/cable_climate_type_mod.F90 - src/util/masks_cbl.F90 ) if(CABLE_LIBRARY_TARGET STREQUAL "access-esm1.6") @@ -156,6 +143,19 @@ if(CABLE_LIBRARY) src/coupled/esm/cable_pft_params_mod.F90 src/coupled/esm/casa_landuse.F90 src/coupled/esm/LAI_canopy_height_cbl.F90 + src/params/cable_phys_constants_mod.F90 + src/params/grid_constants_cbl.F90 + src/params/cable_photo_constants_mod.F90 + src/params/cable_other_constants_mod.F90 + src/params/cable_maths_constants_mod.F90 + src/util/cable_runtime_opts_mod.F90 + src/util/cable_common.F90 + src/coupled/shared/cable_canopy_type_mod.F90 + src/coupled/shared/cable_soilsnow_type_mod.F90 + src/coupled/shared/cable_soil_type_mod.F90 + src/coupled/shared/cable_veg_type_mod.F90 + src/util/cable_climate_type_mod.F90 + src/util/masks_cbl.F90 ) if(CMAKE_Fortran_COMPILER_ID MATCHES "Intel") add_compile_options(-r8 -i8) @@ -165,6 +165,14 @@ if(CABLE_LIBRARY) message(STATUS "Cannot compile library with unknown compiler") endif() + elseif(CABLE_LIBRARY_TARGET STREQUAL "access3") + if (CMAKE_Fortran_COMPILER_ID MATHCES "Intel") + add_compile_options(-r8 -i8) + elseif(CMAKE_Fortran_COMPILER_ID MATCHES "GNU") + add_compile_options(-fdefault-real-8 -fdefault-integer-8 -fdefault-double-8) + else() + message(STATUS "Cannot compile library with unknown compiler") + endif() else() message(STATUS "Specified library application does not exist") endif() From 5e0bd5a1ee77fb03571ba50d9f12d7659f25b9f1 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 22 May 2026 14:39:18 +1000 Subject: [PATCH 02/40] Add library manifests to CI --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d4f9d92ae..3e1e9c130 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,6 +12,8 @@ jobs: spack-manifest-path: - .github/build-ci/manifests/gcc.spack.yaml.j2 - .github/build-ci/manifests/intel.spack.yaml.j2 + - .github/build-ci/manifests/library-gcc.spack.yaml.j2 + - .github/build-ci/manifests/library-intel.spack.yaml.j2 uses: access-nri/build-ci/.github/workflows/ci.yml@v3 with: # For defaults for args not specified here (eg. spack/packages/config refs), see https://github.com/ACCESS-NRI/build-ci/blob/v3/.github/workflows/README.md From 5ea70cd3ab9bc7099a56c8df991b9740ebddab5d Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 22 May 2026 14:43:59 +1000 Subject: [PATCH 03/40] Add library manifests to CI --- .../manifests/library-gcc.spack.yaml.j2 | 17 +++++++++++++++++ .../manifests/library-intel.spack.yaml.j2 | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 .github/build-ci/manifests/library-gcc.spack.yaml.j2 create mode 100644 .github/build-ci/manifests/library-intel.spack.yaml.j2 diff --git a/.github/build-ci/manifests/library-gcc.spack.yaml.j2 b/.github/build-ci/manifests/library-gcc.spack.yaml.j2 new file mode 100644 index 000000000..272eeb171 --- /dev/null +++ b/.github/build-ci/manifests/library-gcc.spack.yaml.j2 @@ -0,0 +1,17 @@ +spack: + specs: + # package is defined in the workflows inputs.spack-manifest-data-pairs + # gcc_compiler_ver is defined in the standard_definitions.json data file + - '{{ package }} +mpi library=access3' + - '{{ package }} ~mpi library=access3' + packages: + gcc: + require: + - '{{ gcc_compiler_ver }}' + all: + require: + - '%access_gcc' + - 'target={{ target }}' + concretizer: + unify: false + view: false diff --git a/.github/build-ci/manifests/library-intel.spack.yaml.j2 b/.github/build-ci/manifests/library-intel.spack.yaml.j2 new file mode 100644 index 000000000..dd2565bae --- /dev/null +++ b/.github/build-ci/manifests/library-intel.spack.yaml.j2 @@ -0,0 +1,17 @@ +spack: + specs: + # package is defined in the workflows inputs.spack-manifest-data-pairs + # intel_compiler_ver is defined in the standard_definitions.json data file + - '{{ package }} +mpi library=access3' + - '{{ package }} ~mpi library=access3' + packages: + intel-oneapi-compilers-classic: + require: + - '{{ intel_compiler_ver }}' + all: + require: + - '%access_intel' + - 'target={{ target }}' + concretizer: + unify: false + view: false From 1bdd9237172837b7a2561bb500b4af29bcb6b284 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 22 May 2026 14:46:35 +1000 Subject: [PATCH 04/40] Set ref for spack-packages --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3e1e9c130..ab013d2de 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,6 +20,7 @@ jobs: spack-manifest-path: ${{ matrix.spack-manifest-path }} # We need to install the compilers manually here because the upstream image is too large to run on GitHub-hosted runners spack-compiler-manifest-path: .github/build-ci/compilers/spack.yaml + access-spack-packages-ref: 1d9acf45c39229ff4e90a9aa49922b1169305476 allow-ssh-into-spack-install: false spack-oci-buildcache-url: oci://ghcr.io/CABLE-LSM/build-ci-buildcache # https://github.com/orgs/CABLE-LSM/packages/container/package/build-ci-buildcache # Since CABLE-LSM can't access ACCESS-NRI's self-hosted runners, we use a GitHub-hosted version From 3cb40571e93abc82951919641c51d1bbdadc816d Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 22 May 2026 15:37:31 +1000 Subject: [PATCH 05/40] Remove templates taken from spack-packages --- .github/build-ci/manifests/library-gcc.spack.yaml.j2 | 8 ++++---- .github/build-ci/manifests/library-intel.spack.yaml.j2 | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/build-ci/manifests/library-gcc.spack.yaml.j2 b/.github/build-ci/manifests/library-gcc.spack.yaml.j2 index 272eeb171..9195ff0ea 100644 --- a/.github/build-ci/manifests/library-gcc.spack.yaml.j2 +++ b/.github/build-ci/manifests/library-gcc.spack.yaml.j2 @@ -2,16 +2,16 @@ spack: specs: # package is defined in the workflows inputs.spack-manifest-data-pairs # gcc_compiler_ver is defined in the standard_definitions.json data file - - '{{ package }} +mpi library=access3' - - '{{ package }} ~mpi library=access3' + - 'cable@git.{{ ref }} +mpi library=access3' + - 'cable@git.{{ ref }} ~mpi library=access3' packages: gcc: require: - - '{{ gcc_compiler_ver }}' + - '@13.2.0' all: require: - '%access_gcc' - - 'target={{ target }}' + - 'target=x86_64 concretizer: unify: false view: false diff --git a/.github/build-ci/manifests/library-intel.spack.yaml.j2 b/.github/build-ci/manifests/library-intel.spack.yaml.j2 index dd2565bae..050fee6fa 100644 --- a/.github/build-ci/manifests/library-intel.spack.yaml.j2 +++ b/.github/build-ci/manifests/library-intel.spack.yaml.j2 @@ -2,16 +2,16 @@ spack: specs: # package is defined in the workflows inputs.spack-manifest-data-pairs # intel_compiler_ver is defined in the standard_definitions.json data file - - '{{ package }} +mpi library=access3' - - '{{ package }} ~mpi library=access3' + - 'cable@git.{{ ref }} +mpi library=access3' + - 'cable@git.{{ ref }} ~mpi library=access3' packages: intel-oneapi-compilers-classic: require: - - '{{ intel_compiler_ver }}' + - '@2021.10.0' all: require: - '%access_intel' - - 'target={{ target }}' + - 'target=x86_64' concretizer: unify: false view: false From 329c3022682a5b8e7299f9898e2116d6fee062c7 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 22 May 2026 15:56:17 +1000 Subject: [PATCH 06/40] Fix quotes --- .github/build-ci/manifests/library-gcc.spack.yaml.j2 | 6 +++--- .github/build-ci/manifests/library-intel.spack.yaml.j2 | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/build-ci/manifests/library-gcc.spack.yaml.j2 b/.github/build-ci/manifests/library-gcc.spack.yaml.j2 index 9195ff0ea..a6cda21ee 100644 --- a/.github/build-ci/manifests/library-gcc.spack.yaml.j2 +++ b/.github/build-ci/manifests/library-gcc.spack.yaml.j2 @@ -2,8 +2,8 @@ spack: specs: # package is defined in the workflows inputs.spack-manifest-data-pairs # gcc_compiler_ver is defined in the standard_definitions.json data file - - 'cable@git.{{ ref }} +mpi library=access3' - - 'cable@git.{{ ref }} ~mpi library=access3' + - cable@git.{{ ref }} +mpi library=access3 + - cable@git.{{ ref }} ~mpi library=access3 packages: gcc: require: @@ -11,7 +11,7 @@ spack: all: require: - '%access_gcc' - - 'target=x86_64 + - target=x86_64 concretizer: unify: false view: false diff --git a/.github/build-ci/manifests/library-intel.spack.yaml.j2 b/.github/build-ci/manifests/library-intel.spack.yaml.j2 index 050fee6fa..b9c351dca 100644 --- a/.github/build-ci/manifests/library-intel.spack.yaml.j2 +++ b/.github/build-ci/manifests/library-intel.spack.yaml.j2 @@ -2,8 +2,8 @@ spack: specs: # package is defined in the workflows inputs.spack-manifest-data-pairs # intel_compiler_ver is defined in the standard_definitions.json data file - - 'cable@git.{{ ref }} +mpi library=access3' - - 'cable@git.{{ ref }} ~mpi library=access3' + - cable@git.{{ ref }} +mpi library=access3 + - cable@git.{{ ref }} ~mpi library=access3 packages: intel-oneapi-compilers-classic: require: @@ -11,7 +11,7 @@ spack: all: require: - '%access_intel' - - 'target=x86_64' + - target=x86_64 concretizer: unify: false view: false From 4a692ca75d04742a2957d3cf8cf5ddae96292a68 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 22 May 2026 17:04:32 +1000 Subject: [PATCH 07/40] Misspelled matches --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cef0539cd..b25ce8c25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -166,7 +166,7 @@ if(CABLE_LIBRARY) endif() elseif(CABLE_LIBRARY_TARGET STREQUAL "access3") - if (CMAKE_Fortran_COMPILER_ID MATHCES "Intel") + if (CMAKE_Fortran_COMPILER_ID MATCHES "Intel") add_compile_options(-r8 -i8) elseif(CMAKE_Fortran_COMPILER_ID MATCHES "GNU") add_compile_options(-fdefault-real-8 -fdefault-integer-8 -fdefault-double-8) From 395b1fafa67227d67a1054735688883bbba7a07d Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 22 May 2026 17:26:26 +1000 Subject: [PATCH 08/40] Move some files to common library --- CMakeLists.txt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b25ce8c25..1a34c7d6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -132,6 +132,15 @@ if(CABLE_LIBRARY) src/science/soilsnow/cbl_surfbv.F90 src/science/soilsnow/cbl_thermal.F90 src/science/soilsnow/cbl_trimb.F90 + src/params/cable_phys_constants_mod.F90 + src/params/grid_constants_cbl.F90 + src/params/cable_photo_constants_mod.F90 + src/params/cable_other_constants_mod.F90 + src/params/cable_maths_constants_mod.F90 + src/util/cable_runtime_opts_mod.F90 + src/util/cable_common.F90 + src/util/cable_climate_type_mod.F90 + src/util/masks_cbl.F90 ) if(CABLE_LIBRARY_TARGET STREQUAL "access-esm1.6") @@ -143,19 +152,10 @@ if(CABLE_LIBRARY) src/coupled/esm/cable_pft_params_mod.F90 src/coupled/esm/casa_landuse.F90 src/coupled/esm/LAI_canopy_height_cbl.F90 - src/params/cable_phys_constants_mod.F90 - src/params/grid_constants_cbl.F90 - src/params/cable_photo_constants_mod.F90 - src/params/cable_other_constants_mod.F90 - src/params/cable_maths_constants_mod.F90 - src/util/cable_runtime_opts_mod.F90 - src/util/cable_common.F90 src/coupled/shared/cable_canopy_type_mod.F90 src/coupled/shared/cable_soilsnow_type_mod.F90 src/coupled/shared/cable_soil_type_mod.F90 src/coupled/shared/cable_veg_type_mod.F90 - src/util/cable_climate_type_mod.F90 - src/util/masks_cbl.F90 ) if(CMAKE_Fortran_COMPILER_ID MATCHES "Intel") add_compile_options(-r8 -i8) From d03381096fea49c406d4dbac2f2f6c6e65ca122f Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 22 May 2026 17:43:21 +1000 Subject: [PATCH 09/40] Add type files to library --- CMakeLists.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a34c7d6b..14bf3c78d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -166,6 +166,23 @@ if(CABLE_LIBRARY) endif() elseif(CABLE_LIBRARY_TARGET STREQUAL "access3") + list(APPEND SOURCES + src/coupled/AM3/control/CM3/air_type.F90 + src/coupled/AM3/control/CM3/balances_type.F90 + src/coupled/AM3/control/CM3/bgc_pool_type.F90 + src/coupled/AM3/control/CM3/cable_define_types.F90 + src/coupled/AM3/control/CM3/cbl_canopy_type.F90 + src/coupled/AM3/control/CM3/cable_cbm_mod.F90 + src/coupled/AM3/control/CM3/climate_type.F90 + src/coupled/AM3/control/CM3/met_type_cbl.F90 + src/coupled/AM3/control/CM3/radiation_type.F90 + src/coupled/AM3/control/CM3/read_cable_namelists_mod.F90 + src/coupled/AM3/control/CM3/roughness_type.F90 + src/coupled/AM3/control/CM3/soil_type_cbl.F90 + src/coupled/AM3/control/CM3/ssnow_type.F90 + src/coupled/AM3/control/CM3/sum_flux_type.F90 + src/coupled/AM3/control/CM3/veg_type.F90 + ) if (CMAKE_Fortran_COMPILER_ID MATCHES "Intel") add_compile_options(-r8 -i8) elseif(CMAKE_Fortran_COMPILER_ID MATCHES "GNU") From f84c396e511133422f00e44f4338c44a1370bab3 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 26 May 2026 09:22:34 +1000 Subject: [PATCH 10/40] Fix some file names --- CMakeLists.txt | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 14bf3c78d..f57dc78be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,21 +167,21 @@ if(CABLE_LIBRARY) elseif(CABLE_LIBRARY_TARGET STREQUAL "access3") list(APPEND SOURCES - src/coupled/AM3/control/CM3/air_type.F90 - src/coupled/AM3/control/CM3/balances_type.F90 - src/coupled/AM3/control/CM3/bgc_pool_type.F90 - src/coupled/AM3/control/CM3/cable_define_types.F90 - src/coupled/AM3/control/CM3/cbl_canopy_type.F90 - src/coupled/AM3/control/CM3/cable_cbm_mod.F90 - src/coupled/AM3/control/CM3/climate_type.F90 - src/coupled/AM3/control/CM3/met_type_cbl.F90 - src/coupled/AM3/control/CM3/radiation_type.F90 - src/coupled/AM3/control/CM3/read_cable_namelists_mod.F90 - src/coupled/AM3/control/CM3/roughness_type.F90 - src/coupled/AM3/control/CM3/soil_type_cbl.F90 - src/coupled/AM3/control/CM3/ssnow_type.F90 - src/coupled/AM3/control/CM3/sum_flux_type.F90 - src/coupled/AM3/control/CM3/veg_type.F90 + src/coupled/AM3/control/cable/CM3/air_type_cbl.F90 + src/coupled/AM3/control/cable/CM3/balances_type_cbl.F90 + src/coupled/AM3/control/cable/CM3/bgc_pool_type.F90 + src/coupled/AM3/control/cable/CM3/cable_define_types.F90 + src/coupled/AM3/control/cable/CM3/cbl_canopy_type.F90 + src/coupled/AM3/control/cable/CM3/cable_cbm_mod.F90 + src/coupled/AM3/control/cable/CM3/climate_type.F90 + src/coupled/AM3/control/cable/CM3/met_type_cbl.F90 + src/coupled/AM3/control/cable/CM3/radiation_type.F90 + src/coupled/AM3/control/cable/CM3/read_cable_namelists_mod.F90 + src/coupled/AM3/control/cable/CM3/roughness_type.F90 + src/coupled/AM3/control/cable/CM3/soil_type_cbl.F90 + src/coupled/AM3/control/cable/CM3/ssnow_type.F90 + src/coupled/AM3/control/cable/CM3/sum_flux_type.F90 + src/coupled/AM3/control/cable/CM3/veg_type.F90 ) if (CMAKE_Fortran_COMPILER_ID MATCHES "Intel") add_compile_options(-r8 -i8) From fea2e45c6806a5d4b1758977cf4c7bd5b72adfd0 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 26 May 2026 09:33:44 +1000 Subject: [PATCH 11/40] Fix more file names --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f57dc78be..90163e48e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -172,7 +172,7 @@ if(CABLE_LIBRARY) src/coupled/AM3/control/cable/CM3/bgc_pool_type.F90 src/coupled/AM3/control/cable/CM3/cable_define_types.F90 src/coupled/AM3/control/cable/CM3/cbl_canopy_type.F90 - src/coupled/AM3/control/cable/CM3/cable_cbm_mod.F90 + src/coupled/AM3/control/cable/CM3/cbl_cbm_mod.F90 src/coupled/AM3/control/cable/CM3/climate_type.F90 src/coupled/AM3/control/cable/CM3/met_type_cbl.F90 src/coupled/AM3/control/cable/CM3/radiation_type.F90 From b5e9b4d8439b4b540149229bdb81701aa4761d4b Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 26 May 2026 09:54:08 +1000 Subject: [PATCH 12/40] Drop coupled namelists mod --- CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 90163e48e..0aebf7e61 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -176,7 +176,6 @@ if(CABLE_LIBRARY) src/coupled/AM3/control/cable/CM3/climate_type.F90 src/coupled/AM3/control/cable/CM3/met_type_cbl.F90 src/coupled/AM3/control/cable/CM3/radiation_type.F90 - src/coupled/AM3/control/cable/CM3/read_cable_namelists_mod.F90 src/coupled/AM3/control/cable/CM3/roughness_type.F90 src/coupled/AM3/control/cable/CM3/soil_type_cbl.F90 src/coupled/AM3/control/cable/CM3/ssnow_type.F90 From 367ba2f4add75b56f5269dd484dd488b0c8687e1 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 26 May 2026 10:08:40 +1000 Subject: [PATCH 13/40] Add surface types mod --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0aebf7e61..49b34674b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -181,6 +181,7 @@ if(CABLE_LIBRARY) src/coupled/AM3/control/cable/CM3/ssnow_type.F90 src/coupled/AM3/control/cable/CM3/sum_flux_type.F90 src/coupled/AM3/control/cable/CM3/veg_type.F90 + src/coupled/AM3/control/shared/cable_surface_types_mod.F90 ) if (CMAKE_Fortran_COMPILER_ID MATCHES "Intel") add_compile_options(-r8 -i8) From 878632de0a1a4dc19051ba3477640b97d247046b Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 26 May 2026 10:18:19 +1000 Subject: [PATCH 14/40] Fix name --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 49b34674b..da30aae30 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -181,7 +181,7 @@ if(CABLE_LIBRARY) src/coupled/AM3/control/cable/CM3/ssnow_type.F90 src/coupled/AM3/control/cable/CM3/sum_flux_type.F90 src/coupled/AM3/control/cable/CM3/veg_type.F90 - src/coupled/AM3/control/shared/cable_surface_types_mod.F90 + src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 ) if (CMAKE_Fortran_COMPILER_ID MATCHES "Intel") add_compile_options(-r8 -i8) From 114cf54033f03e2ca78121b5adf6b3de66e7aca0 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 26 May 2026 16:33:44 +1000 Subject: [PATCH 15/40] use new cable_surface_types_mod.F90 --- .../cable/shared/cable_surface_types_mod.F90 | 402 ++---------------- 1 file changed, 35 insertions(+), 367 deletions(-) diff --git a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 index 1c1f808c0..02e9fb0bf 100644 --- a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 +++ b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 @@ -1,377 +1,45 @@ -! *****************************COPYRIGHT******************************* -! (C) Crown copyright Met Office. All rights reserved. -! For further details please refer to the file COPYRIGHT.txt -! which you should have received as part of this distribution. -! *****************************COPYRIGHT******************************* - MODULE cable_surface_types_mod -!----------------------------------------------------------------------------- -! Description: -! Contains CABLE surface type information and a namelist for setting them -! -! Code Owner: Please refer to ModuleLeaders.txt -! This file belongs in TECHNICAL -! -! Code Description: -! Language: Fortran 90. -! This code is written to JULES coding standards v1. -!----------------------------------------------------------------------------- - -USE max_dimensions, ONLY: & - elev_tile_max, & - ntype_max - -USE missing_data_mod, ONLY: imdi - -!----------------------------------------------------------------------------- -! Module variables. -!----------------------------------------------------------------------------- -USE jules_surface_types_mod, ONLY: & - nnpft, & - ncpft, & - npft, & - nnvg, & - ntype, & - urban, & - lake, & - soil, & - ice - -IMPLICIT NONE - -! Index of the various surface types used by CABLE" -INTEGER :: & - evergreen_needleleaf = imdi, & - evergreen_broadleaf = imdi, & - deciduous_needleleaf = imdi, & - deciduous_broadleaf = imdi, & - shrub_cable = imdi, & - c3_grassland = imdi, & - c4_grassland = imdi, & - tundra = imdi, & - c3_cropland = imdi, & - c4_cropland = imdi, & - wetland = imdi, & - empty1 = imdi, & - empty2 = imdi, & - barren_cable = imdi, & - urban_cable = imdi, & - lakes_cable = imdi, & - ice_cable = imdi - -!----------------------------------------------------------------------------- -! Single namelist definition for UM and standalone -!----------------------------------------------------------------------------- -NAMELIST / cable_surface_types/ & - npft, nnvg, & - evergreen_needleleaf, evergreen_broadleaf, deciduous_needleleaf, & - deciduous_broadleaf, shrub_cable, c3_grassland, c4_grassland, & - tundra, c3_cropland, c4_cropland, wetland, empty1, empty2, & - barren_cable, urban_cable, lakes_cable, ice_cable - -CHARACTER(LEN=*), PARAMETER, PRIVATE :: ModuleName='CABLE_SURFACE_TYPES_MOD' + IMPLICIT NONE + + PUBLIC + + ! cable_surface_type (nml) Index + INTEGER, PARAMETER :: evergreen_needleleaf = 1 + INTEGER, PARAMETER :: evergreen_broadleaf = 2 + INTEGER, PARAMETER :: deciduous_needleleaf = 3 + INTEGER, PARAMETER :: deciduous_broadleaf = 4 + INTEGER, PARAMETER :: shrub_cable = 5 + INTEGER, PARAMETER :: c3_grassland = 6 + INTEGER, PARAMETER :: c4_grassland = 7 + INTEGER, PARAMETER :: tundra = 8 + INTEGER, PARAMETER :: c3_cropland = 9 + INTEGER, PARAMETER :: c4_cropland = 10 + INTEGER, PARAMETER :: wetland = 11 + INTEGER, PARAMETER :: aust_mesic = 12 + INTEGER, PARAMETER :: aust_xeric = 13 + INTEGER, PARAMETER :: barren_cable = 14 + INTEGER, PARAMETER :: urban_cable = 15 + INTEGER, PARAMETER :: lakes_cable = 16 + INTEGER, PARAMETER :: ice_cable = 17 CONTAINS -SUBROUTINE check_surface_type_value ( surface_type, surface_type_name, & - min_value, max_value, RoutineName, errorstatus, nchecks ) - -USE jules_print_mgr, ONLY: jules_print - -IMPLICIT NONE - -INTEGER :: surface_type, min_value, max_value, errorstatus, nchecks -CHARACTER(LEN=*) :: surface_type_name, RoutineName - -IF ( surface_type > 0 ) THEN - nchecks = nchecks + 1 - IF ( surface_type < min_value .OR. surface_type > max_value ) THEN - errorstatus = 101 - CALL jules_print(RoutineName, & - TRIM(surface_type_name) // " tile is given but is out of range") - END IF -END IF - -END SUBROUTINE check_surface_type_value - -SUBROUTINE print_nlist_cable_surface_types() - -USE jules_print_mgr, ONLY: jules_print - -IMPLICIT NONE - -INTEGER :: i, n ! Loop counter - -CHARACTER(LEN=50000) :: lineBuffer - - -!----------------------------------------------------------------------------- -! This needs to be implemented corresponding to cable_surface_types -CALL jules_print('cable_surface_types', & - 'Contents of namelist cable_surface_types') - -!WRITE(lineBuffer, *) ' npft = ', npft -!CALL jules_print('cable_surface_types', lineBuffer) - -!IF ( brd_leaf > 0 ) THEN -! WRITE(lineBuffer, *) ' brd_leaf = ', brd_leaf -! CALL jules_print('cable_surface_types', lineBuffer) -!END IF - -!WRITE(lineBuffer, *) ' = ', -!CALL jules_print('cable_surface_types', lineBuffer) - -!IF ( > 0 ) THEN -! WRITE(lineBuffer, *) ' = ', -! CALL jules_print('cable_surface_types', lineBuffer) -!END IF - -CALL jules_print('cable_surface_types', & - '- - - - - - end of namelist - - - - - -') - -END SUBROUTINE print_nlist_cable_surface_types - - - -SUBROUTINE set_derived_variables_cable_surface_types() - -USE jules_print_mgr, ONLY: jules_print, jules_message - -IMPLICIT NONE - -!----------------------------------------------------------------------------- -! Derive ntype and nnpft from the namelist values -!----------------------------------------------------------------------------- -ntype = npft + nnvg -nnpft = npft - ncpft - -CALL jules_print('set_derived_variables_cable_surface_types', & - 'Derived variables from cable_surface_types') - -!WRITE(jules_message, *) ' ntype = ', ntype -!CALL jules_print('set_derived_variables_cable_surface_types', jules_message) -! -!WRITE(jules_message, *) ' nnpft = ', nnpft -!CALL jules_print('set_derived_variables_cable_surface_types', jules_message) - -CALL jules_print('set_derived_variables_cable_surface_types', & - '- - - - - - end of derived variables - - - - - -') - -RETURN - -END SUBROUTINE set_derived_variables_cable_surface_types - - - -SUBROUTINE check_cable_surface_types() - -USE max_dimensions, ONLY: npft_max, ncpft_max, nnvg_max - -USE ereport_mod, ONLY: ereport -USE jules_print_mgr, ONLY: jules_print, jules_message - -!----------------------------------------------------------------------------- -! Description: -! Checks cable_surface_types namelist for consistency -! -! Code Owner: Please refer to ModuleLeaders.txt -! This file belongs in TECHNICAL -! -! Code Description: -! Language: Fortran 90. -! This code is written to JULES coding standards v1. -!----------------------------------------------------------------------------- - -IMPLICIT NONE - -INTEGER :: i, nchecks ! Loop counter - -INTEGER :: errorstatus - -CHARACTER(LEN=*), PARAMETER :: & - RoutineName = 'CHECK_CABLE_SURFACE_TYPES' -!----------------------------------------------------------------------------- -! Check that the given values are less than the fixed values for IO -!----------------------------------------------------------------------------- -IF ( npft > npft_max ) THEN - errorstatus = 101 - CALL ereport(RoutineName, errorstatus, & - "npft > npft_max - increase npft_max and recompile") -END IF - -IF ( nnvg > nnvg_max ) THEN - errorstatus = 101 - CALL ereport(RoutineName, errorstatus, & - "nnvg > nnvg_max - increase nnvg_max and recompile") -END IF - -!----------------------------------------------------------------------------- -! Check values for the specific surface types are sensible -!----------------------------------------------------------------------------- -! PFTs -errorstatus = 0 -nchecks = 0 - -!!CALL check_surface_type_value ( brd_leaf, "brd_leaf", 1, npft, & -!! RoutineName, errorstatus, nchecks ) -!!CALL check_surface_type_value ( , "", 1, npft, & -!! RoutineName, errorstatus, nchecks ) -! -!! PFT surface types must come before non-veg types, so if urban, lake, soil, -!! ice, urban_canyon or urban_roof are given (i.e. > 0) then they must be > npft -!! A soil type is required -!!CALL check_surface_type_value ( urban, "urban", npft+1, ntype, & -!! RoutineName, errorstatus, nchecks ) -!!CALL check_surface_type_value ( , "", npft+1, ntype, & -!! RoutineName, errorstatus, nchecks ) - -!jhan:this will need to be properly implemented -nchecks = 17 -! Check that all present surface types have been checked for range compliance -! This check should also ensure that a check is added for each new surface type -IF ( nchecks /= ntype ) THEN - errorstatus = 101 - CALL jules_print(RoutineName, & - "At least one surface type in namelist does not have a range check.") - WRITE(jules_message,'(A,I0,A,I0)') & - "These should be the same; ntype = ", ntype, ", nchecks = ", nchecks - CALL jules_print(RoutineName, jules_message) -END IF - -! Now that all surface types have been checked issue abort if required -IF ( errorstatus > 0 ) THEN - CALL ereport(RoutineName, errorstatus, & - "Error(s) found. Please see job.out for information ") -END IF - -END SUBROUTINE check_cable_surface_types - -SUBROUTINE read_nml_cable_surface_types (unitnumber) - -! Description: -! Read the CABLE_SURFACE_TYPES namelist - -USE setup_namelist, ONLY: setup_nml_type -USE check_iostat_mod, ONLY: check_iostat -USE UM_parcore, ONLY: mype -USE parkind1, ONLY: jprb, jpim -USE yomhook, ONLY: lhook, dr_hook -USE errormessagelength_mod, ONLY: errormessagelength - -IMPLICIT NONE - -INTEGER, INTENT(IN) :: unitnumber -INTEGER :: my_comm -INTEGER :: mpl_nml_type -INTEGER :: ErrorStatus -INTEGER :: icode -CHARACTER(LEN=errormessagelength) :: iomessage -REAL(KIND=jprb) :: zhook_handle - -CHARACTER(LEN=*), PARAMETER :: RoutineName='READ_NML_CABLE_SURFACE_TYPES' -INTEGER(KIND=jpim), PARAMETER :: zhook_in = 0 -INTEGER(KIND=jpim), PARAMETER :: zhook_out = 1 - -! set number of each type of variable in my_namelist type -INTEGER, PARAMETER :: no_of_types = 1 -INTEGER, PARAMETER :: n_int = 19 !+ ntype_max - -TYPE my_namelist - !!SEQUENCE - INTEGER :: npft - INTEGER :: nnvg - INTEGER :: evergreen_needleleaf - INTEGER :: evergreen_broadleaf - INTEGER :: deciduous_needleleaf - INTEGER :: deciduous_broadleaf - INTEGER :: shrub_cable - INTEGER :: c3_grassland - INTEGER :: c4_grassland - INTEGER :: tundra - INTEGER :: c3_cropland - INTEGER :: c4_cropland - INTEGER :: wetland - INTEGER :: empty1 - INTEGER :: empty2 - INTEGER :: barren_cable - INTEGER :: urban_cable - INTEGER :: lakes_cable - INTEGER :: ice_cable - !INTEGER :: tile_map_ids(ntype_max) -END TYPE my_namelist - -TYPE (my_namelist) :: my_nml - -IF (lhook) CALL dr_hook(ModuleName//':'//RoutineName,zhook_in,zhook_handle) - -CALL gc_get_communicator(my_comm, icode) - -CALL setup_nml_type(no_of_types, mpl_nml_type, n_int_in = n_int) - -IF (mype == 0) THEN - - READ (UNIT = unitnumber, NML = cable_surface_types, IOSTAT = errorstatus, & - IOMSG = iomessage) - CALL check_iostat(errorstatus, "namelist cable_surface_types",iomessage) - - my_nml % npft = npft - my_nml % nnvg = nnvg - my_nml % evergreen_needleleaf = evergreen_needleleaf - my_nml % evergreen_broadleaf = evergreen_broadleaf - my_nml % deciduous_needleleaf = deciduous_needleleaf - my_nml % deciduous_broadleaf = deciduous_broadleaf - my_nml % shrub_cable = shrub_cable - my_nml % c3_grassland = c3_grassland - my_nml % c4_grassland = c4_grassland - my_nml % tundra = tundra - my_nml % c3_cropland = c3_cropland - my_nml % c4_cropland = c4_cropland - my_nml % wetland = wetland - my_nml % empty1 = empty1 - my_nml % empty2 = empty2 - my_nml % barren_cable = barren_cable - my_nml % urban_cable = urban_cable - my_nml % lakes_cable = lakes_cable - my_nml % ice_cable = ice_cable - -END IF - -CALL mpl_bcast(my_nml,1,mpl_nml_type,0,my_comm,icode) - -IF (mype /= 0) THEN - - npft = my_nml % npft - nnvg = my_nml % nnvg - evergreen_needleleaf = my_nml % evergreen_needleleaf - evergreen_broadleaf = my_nml % evergreen_broadleaf - deciduous_needleleaf = my_nml % deciduous_needleleaf - deciduous_broadleaf = my_nml % deciduous_broadleaf - shrub_cable = my_nml % shrub_cable - c3_grassland = my_nml % c3_grassland - c4_grassland = my_nml % c4_grassland - tundra = my_nml % tundra - c3_cropland = my_nml % c3_cropland - c4_cropland = my_nml % c4_cropland - wetland = my_nml % wetland - empty1 = my_nml % empty1 - empty2 = my_nml % empty2 - barren_cable = my_nml %barren_cable - urban_cable = my_nml % urban_cable - lakes_cable = my_nml % lakes_cable - ice_cable = my_nml % ice_cable + SUBROUTINE set_JULES_surface_types(nnpft, npft, nnvg, ntype, urban, lake,& + soil, ice) + INTEGER, INTENT(OUT) :: nnpft, npft, nnvp, ntype, urban, lake,& + soil, ice -END IF + npft = 13 + nnvg = 4 + urban = urban_cable + lake = lake_cable + soil = barren_cable + ice = ice_cable -CALL mpl_type_free(mpl_nml_type,icode) + ntype = npft - nnvg + nnpft = npft - ncpft -soil = barren_cable -ice = ice_cable -lake = lakes_cable -urban = urban_cable - -IF (lhook) CALL dr_hook(ModuleName//':'//RoutineName,zhook_out,zhook_handle) -RETURN -END SUBROUTINE read_nml_cable_surface_types + END SUBROUTINE set_JULES_PFT_info END MODULE cable_surface_types_mod From cb6ac5c075ffb88466131e8b3e74bb258aada7ec Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 26 May 2026 16:51:03 +1000 Subject: [PATCH 16/40] Wrong end subroutine name --- .../AM3/control/cable/shared/cable_surface_types_mod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 index 02e9fb0bf..605274351 100644 --- a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 +++ b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 @@ -40,6 +40,6 @@ SUBROUTINE set_JULES_surface_types(nnpft, npft, nnvg, ntype, urban, lake,& ntype = npft - nnvg nnpft = npft - ncpft - END SUBROUTINE set_JULES_PFT_info + END SUBROUTINE set_JULES_surface_types END MODULE cable_surface_types_mod From 26c5d595b58dd31c658d0496b6d679d09e56911c Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 26 May 2026 16:54:37 +1000 Subject: [PATCH 17/40] Add stash mapping --- .../cable/shared/cable_surface_types_mod.F90 | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 index 605274351..47bce4379 100644 --- a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 +++ b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 @@ -6,14 +6,14 @@ MODULE cable_surface_types_mod ! cable_surface_type (nml) Index INTEGER, PARAMETER :: evergreen_needleleaf = 1 - INTEGER, PARAMETER :: evergreen_broadleaf = 2 + INTEGER, PARAMETER :: evergreen_broadleaf = 2 INTEGER, PARAMETER :: deciduous_needleleaf = 3 - INTEGER, PARAMETER :: deciduous_broadleaf = 4 + INTEGER, PARAMETER :: deciduous_broadleaf = 4 INTEGER, PARAMETER :: shrub_cable = 5 - INTEGER, PARAMETER :: c3_grassland = 6 - INTEGER, PARAMETER :: c4_grassland = 7 + INTEGER, PARAMETER :: c3_grassland = 6 + INTEGER, PARAMETER :: c4_grassland = 7 INTEGER, PARAMETER :: tundra = 8 - INTEGER, PARAMETER :: c3_cropland = 9 + INTEGER, PARAMETER :: c3_cropland = 9 INTEGER, PARAMETER :: c4_cropland = 10 INTEGER, PARAMETER :: wetland = 11 INTEGER, PARAMETER :: aust_mesic = 12 @@ -25,11 +25,30 @@ MODULE cable_surface_types_mod CONTAINS - SUBROUTINE set_JULES_surface_types(nnpft, npft, nnvg, ntype, urban, lake,& - soil, ice) + SUBROUTINE set_JULES_surface_types(surface_type_ids, nnpft, npft, nnvg,& + ntype, urban, lake, soil, ice) + INTEGER, INTENT(INOUT) :: surface_type_ids INTEGER, INTENT(OUT) :: nnpft, npft, nnvp, ntype, urban, lake,& soil, ice + surface_type_ids(evergreen_needleleaf) = 1 + surface_type_ids(evergreen_broadleaf ) = 2 + surface_type_ids(deciduous_needleleaf) = 3 + surface_type_ids(deciduous_broadleaf ) = 4 + surface_type_ids(shrub_cable ) = 5 + surface_type_ids(c3_grassland ) = 6 + surface_type_ids(c4_grassland ) = 7 + surface_type_ids(tundra ) = 8 + surface_type_ids(c3_cropland ) = 9 + surface_type_ids(c4_cropland ) = 10 + surface_type_ids(wetland ) = 11 + surface_type_ids(aust_mesic ) = 12 + surface_type_ids(aust_xeric ) = 13 + surface_type_ids(barren_cable ) = 14 + surface_type_ids(urban_cable ) = 15 + surface_type_ids(lakes_cable ) = 16 + surface_type_ids(ice_cable ) = 17 + npft = 13 nnvg = 4 urban = urban_cable From 8b94bfbf5c14360a49ff3d0aace9d3855d49cb98 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 26 May 2026 17:07:40 +1000 Subject: [PATCH 18/40] Add ncpft back --- .../AM3/control/cable/shared/cable_surface_types_mod.F90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 index 47bce4379..8a7ec6a54 100644 --- a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 +++ b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 @@ -25,10 +25,10 @@ MODULE cable_surface_types_mod CONTAINS - SUBROUTINE set_JULES_surface_types(surface_type_ids, nnpft, npft, nnvg,& - ntype, urban, lake, soil, ice) + SUBROUTINE set_JULES_surface_types(surface_type_ids, nnpft, ncpft, npft,& + nnvg, ntype, urban, lake, soil, ice) INTEGER, INTENT(INOUT) :: surface_type_ids - INTEGER, INTENT(OUT) :: nnpft, npft, nnvp, ntype, urban, lake,& + INTEGER, INTENT(OUT) :: nnpft, ncpft, npft, nnvg, ntype, urban, lake,& soil, ice surface_type_ids(evergreen_needleleaf) = 1 @@ -52,7 +52,7 @@ SUBROUTINE set_JULES_surface_types(surface_type_ids, nnpft, npft, nnvg,& npft = 13 nnvg = 4 urban = urban_cable - lake = lake_cable + lake = lakes_cable soil = barren_cable ice = ice_cable From 6f9b9b02a66090527ff27ffa630c4076cf1c954b Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 26 May 2026 17:26:24 +1000 Subject: [PATCH 19/40] Add dimension declaration --- .../AM3/control/cable/shared/cable_surface_types_mod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 index 8a7ec6a54..181468adc 100644 --- a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 +++ b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 @@ -27,7 +27,7 @@ MODULE cable_surface_types_mod SUBROUTINE set_JULES_surface_types(surface_type_ids, nnpft, ncpft, npft,& nnvg, ntype, urban, lake, soil, ice) - INTEGER, INTENT(INOUT) :: surface_type_ids + INTEGER, INTENT(INOUT), DIMENSION(:) :: surface_type_ids INTEGER, INTENT(OUT) :: nnpft, ncpft, npft, nnvg, ntype, urban, lake,& soil, ice From 0bd7975ba732cac0cfa803496c6f6a445d05caae Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 26 May 2026 17:50:35 +1000 Subject: [PATCH 20/40] Remove CASA IO from library --- CMakeLists.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index da30aae30..fe0f784c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,15 +90,12 @@ if(CABLE_LIBRARY) src/science/casa-cnp/casa_cnp.F90 src/science/casa-cnp/casa_dimension.F90 src/science/casa-cnp/casa_feedback.F90 - src/science/casa-cnp/casa_inout.F90 src/science/casa-cnp/casa_param.F90 src/science/casa-cnp/casa_phenology.F90 src/science/casa-cnp/casa_readbiome.F90 src/science/casa-cnp/casa_rplant.F90 src/science/casa-cnp/casa_sumcflux.F90 src/science/casa-cnp/casa_variable.F90 - src/science/landuse/landuse3.F90 - src/science/landuse/landuse_constant.F90 src/science/misc/cable_air.F90 src/science/misc/cable_carbon.F90 src/science/misc/cable_climate.F90 @@ -156,6 +153,8 @@ if(CABLE_LIBRARY) src/coupled/shared/cable_soilsnow_type_mod.F90 src/coupled/shared/cable_soil_type_mod.F90 src/coupled/shared/cable_veg_type_mod.F90 + src/science/landuse/landuse3.F90 + src/science/landuse/landuse_constant.F90 ) if(CMAKE_Fortran_COMPILER_ID MATCHES "Intel") add_compile_options(-r8 -i8) From de283d469189035b03a88fd522f3bd9d21055cee Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Wed, 27 May 2026 09:16:00 +1000 Subject: [PATCH 21/40] Readd landuse --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index fe0f784c2..2d54742f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,6 +129,8 @@ if(CABLE_LIBRARY) src/science/soilsnow/cbl_surfbv.F90 src/science/soilsnow/cbl_thermal.F90 src/science/soilsnow/cbl_trimb.F90 + src/science/landuse/landuse.F90 + src/science/landuse/landuse_constant.F90 src/params/cable_phys_constants_mod.F90 src/params/grid_constants_cbl.F90 src/params/cable_photo_constants_mod.F90 From 921abd5fbde3c6b641d11007ab7aed10a72f1c21 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Wed, 27 May 2026 09:56:16 +1000 Subject: [PATCH 22/40] Fix file name --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d54742f6..ba2f0622e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,8 +129,8 @@ if(CABLE_LIBRARY) src/science/soilsnow/cbl_surfbv.F90 src/science/soilsnow/cbl_thermal.F90 src/science/soilsnow/cbl_trimb.F90 - src/science/landuse/landuse.F90 - src/science/landuse/landuse_constant.F90 + src/science/landuse/landuse3.F90 + src/science/landuse/landuse_constant.F90 src/params/cable_phys_constants_mod.F90 src/params/grid_constants_cbl.F90 src/params/cable_photo_constants_mod.F90 From feb632be0118280ab59ac174f9a81246a5cbd4d5 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Wed, 27 May 2026 10:19:29 +1000 Subject: [PATCH 23/40] Add cable_iovars.F90 to the build with slight adjustment --- CMakeLists.txt | 5 ++--- src/offline/cable_iovars.F90 | 6 +++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ba2f0622e..3540e2558 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -155,8 +155,6 @@ if(CABLE_LIBRARY) src/coupled/shared/cable_soilsnow_type_mod.F90 src/coupled/shared/cable_soil_type_mod.F90 src/coupled/shared/cable_veg_type_mod.F90 - src/science/landuse/landuse3.F90 - src/science/landuse/landuse_constant.F90 ) if(CMAKE_Fortran_COMPILER_ID MATCHES "Intel") add_compile_options(-r8 -i8) @@ -182,7 +180,8 @@ if(CABLE_LIBRARY) src/coupled/AM3/control/cable/CM3/ssnow_type.F90 src/coupled/AM3/control/cable/CM3/sum_flux_type.F90 src/coupled/AM3/control/cable/CM3/veg_type.F90 - src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 + src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 + src/offline/cable_iovars.F90 ) if (CMAKE_Fortran_COMPILER_ID MATCHES "Intel") add_compile_options(-r8 -i8) diff --git a/src/offline/cable_iovars.F90 b/src/offline/cable_iovars.F90 index 80d87cf3a..096ef0300 100644 --- a/src/offline/cable_iovars.F90 +++ b/src/offline/cable_iovars.F90 @@ -106,7 +106,7 @@ MODULE cable_IO_vars_module max_vegpatches, & ! The maximum # of patches in any grid cell nmetpatches ! size of patch dimension in met file, if exists - INTEGER :: land_decomp_start + INTEGER :: land_decomp_start = 1 !! Starting land point index of this MPI rank in global land array INTEGER :: land_decomp_end !! Ending land point index of this MPI rank in global land array @@ -579,7 +579,11 @@ FUNCTION to_land_index_global(land_index_local) RESULT(land_index_global) !! Translate local land index on current MPI rank to global land index INTEGER, INTENT(IN) :: land_index_local INTEGER :: land_index_global +#ifdef UM_CBL + land_index_global = land_index_local +#else land_index_global = land_decomp_start + land_index_local - 1 +#endif END FUNCTION to_land_index_global END MODULE cable_IO_vars_module From dc432f74e01ad05c2a51798a1319384398e6e3b8 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Wed, 27 May 2026 10:56:18 +1000 Subject: [PATCH 24/40] Readd casa_inout --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3540e2558..1589bdc23 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,6 +90,7 @@ if(CABLE_LIBRARY) src/science/casa-cnp/casa_cnp.F90 src/science/casa-cnp/casa_dimension.F90 src/science/casa-cnp/casa_feedback.F90 + src/science/casa-cnp/casa_inout.F90 src/science/casa-cnp/casa_param.F90 src/science/casa-cnp/casa_phenology.F90 src/science/casa-cnp/casa_readbiome.F90 From 4813a19ceb90ad0192389b8c81fe13568454232e Mon Sep 17 00:00:00 2001 From: Whyborn Date: Wed, 27 May 2026 11:46:22 +1000 Subject: [PATCH 25/40] Library now builds --- .../AM3/control/cable/shared/cable_surface_types_mod.F90 | 3 ++- src/science/soilsnow/cbl_GW.F90 | 1 + src/science/soilsnow/cbl_Oldconductivity.F90 | 2 ++ src/science/soilsnow/cbl_conductivity.F90 | 1 + src/science/soilsnow/cbl_hyd_redistrib.F90 | 1 + src/science/soilsnow/cbl_remove_trans.F90 | 1 + src/science/soilsnow/cbl_smoisturev.F90 | 1 + src/science/soilsnow/cbl_snowAccum.F90 | 1 + src/science/soilsnow/cbl_snowCheck.F90 | 1 + src/science/soilsnow/cbl_snowDensity.F90 | 1 + src/science/soilsnow/cbl_snowMelt.F90 | 1 + src/science/soilsnow/cbl_snowl_adjust.F90 | 1 + src/science/soilsnow/cbl_soilfreeze.F90 | 1 + src/science/soilsnow/cbl_soilsnow_data.F90 | 3 --- src/science/soilsnow/cbl_soilsnow_init_special.F90 | 1 + src/science/soilsnow/cbl_soilsnow_main.F90 | 1 + src/science/soilsnow/cbl_stempv.F90 | 1 + src/science/soilsnow/cbl_surfbv.F90 | 1 + src/science/soilsnow/cbl_thermal.F90 | 1 + src/science/soilsnow/cbl_trimb.F90 | 3 ++- 20 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 index 181468adc..48fb78dca 100644 --- a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 +++ b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 @@ -28,8 +28,9 @@ MODULE cable_surface_types_mod SUBROUTINE set_JULES_surface_types(surface_type_ids, nnpft, ncpft, npft,& nnvg, ntype, urban, lake, soil, ice) INTEGER, INTENT(INOUT), DIMENSION(:) :: surface_type_ids - INTEGER, INTENT(OUT) :: nnpft, ncpft, npft, nnvg, ntype, urban, lake,& + INTEGER, INTENT(OUT) :: nnpft, npft, nnvg, ntype, urban, lake,& soil, ice + INTEGER, INTENT(IN) :: ncpft surface_type_ids(evergreen_needleleaf) = 1 surface_type_ids(evergreen_broadleaf ) = 2 diff --git a/src/science/soilsnow/cbl_GW.F90 b/src/science/soilsnow/cbl_GW.F90 index 6511b3017..51d81e0a6 100644 --- a/src/science/soilsnow/cbl_GW.F90 +++ b/src/science/soilsnow/cbl_GW.F90 @@ -1,6 +1,7 @@ MODULE GWstempv_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC GWstempv diff --git a/src/science/soilsnow/cbl_Oldconductivity.F90 b/src/science/soilsnow/cbl_Oldconductivity.F90 index 972132e66..25f65b1b2 100644 --- a/src/science/soilsnow/cbl_Oldconductivity.F90 +++ b/src/science/soilsnow/cbl_Oldconductivity.F90 @@ -1,6 +1,8 @@ MODULE old_soil_conductivity_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod + CONTAINS diff --git a/src/science/soilsnow/cbl_conductivity.F90 b/src/science/soilsnow/cbl_conductivity.F90 index 545ba46f5..9d96c8494 100644 --- a/src/science/soilsnow/cbl_conductivity.F90 +++ b/src/science/soilsnow/cbl_conductivity.F90 @@ -2,6 +2,7 @@ MODULE total_soil_conductivity_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC total_soil_conductivity diff --git a/src/science/soilsnow/cbl_hyd_redistrib.F90 b/src/science/soilsnow/cbl_hyd_redistrib.F90 index f63700a4d..918be58fb 100644 --- a/src/science/soilsnow/cbl_hyd_redistrib.F90 +++ b/src/science/soilsnow/cbl_hyd_redistrib.F90 @@ -1,6 +1,7 @@ MODULE hydraulic_redistribution_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC hydraulic_redistribution diff --git a/src/science/soilsnow/cbl_remove_trans.F90 b/src/science/soilsnow/cbl_remove_trans.F90 index d7ce9f6a7..ae50e5b89 100644 --- a/src/science/soilsnow/cbl_remove_trans.F90 +++ b/src/science/soilsnow/cbl_remove_trans.F90 @@ -1,6 +1,7 @@ MODULE remove_trans_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC remove_trans diff --git a/src/science/soilsnow/cbl_smoisturev.F90 b/src/science/soilsnow/cbl_smoisturev.F90 index 635e4f06b..0d6dd167e 100644 --- a/src/science/soilsnow/cbl_smoisturev.F90 +++ b/src/science/soilsnow/cbl_smoisturev.F90 @@ -1,6 +1,7 @@ MODULE smoisturev_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC smoisturev diff --git a/src/science/soilsnow/cbl_snowAccum.F90 b/src/science/soilsnow/cbl_snowAccum.F90 index a6e7f711e..3dcaff7f0 100644 --- a/src/science/soilsnow/cbl_snowAccum.F90 +++ b/src/science/soilsnow/cbl_snowAccum.F90 @@ -1,6 +1,7 @@ MODULE snow_accum_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC snow_accum diff --git a/src/science/soilsnow/cbl_snowCheck.F90 b/src/science/soilsnow/cbl_snowCheck.F90 index 2b4d64800..84c27331c 100644 --- a/src/science/soilsnow/cbl_snowCheck.F90 +++ b/src/science/soilsnow/cbl_snowCheck.F90 @@ -1,6 +1,7 @@ MODULE snowcheck_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC snowcheck diff --git a/src/science/soilsnow/cbl_snowDensity.F90 b/src/science/soilsnow/cbl_snowDensity.F90 index e7674c68c..ba4e2cd53 100644 --- a/src/science/soilsnow/cbl_snowDensity.F90 +++ b/src/science/soilsnow/cbl_snowDensity.F90 @@ -1,6 +1,7 @@ MODULE snowdensity_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC snowdensity diff --git a/src/science/soilsnow/cbl_snowMelt.F90 b/src/science/soilsnow/cbl_snowMelt.F90 index 12ac79caa..4cefb68e4 100644 --- a/src/science/soilsnow/cbl_snowMelt.F90 +++ b/src/science/soilsnow/cbl_snowMelt.F90 @@ -1,6 +1,7 @@ MODULE snow_melting_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC snow_melting diff --git a/src/science/soilsnow/cbl_snowl_adjust.F90 b/src/science/soilsnow/cbl_snowl_adjust.F90 index 023f2f50c..201399109 100644 --- a/src/science/soilsnow/cbl_snowl_adjust.F90 +++ b/src/science/soilsnow/cbl_snowl_adjust.F90 @@ -1,6 +1,7 @@ MODULE snowl_adjust_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC snowl_adjust diff --git a/src/science/soilsnow/cbl_soilfreeze.F90 b/src/science/soilsnow/cbl_soilfreeze.F90 index a1b1a3cde..9d5df0f0f 100644 --- a/src/science/soilsnow/cbl_soilfreeze.F90 +++ b/src/science/soilsnow/cbl_soilfreeze.F90 @@ -1,6 +1,7 @@ MODULE soilfreeze_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC soilfreeze diff --git a/src/science/soilsnow/cbl_soilsnow_data.F90 b/src/science/soilsnow/cbl_soilsnow_data.F90 index 738432c4b..cd92b2f0e 100644 --- a/src/science/soilsnow/cbl_soilsnow_data.F90 +++ b/src/science/soilsnow/cbl_soilsnow_data.F90 @@ -1,8 +1,5 @@ MODULE cbl_ssnow_data_mod -USE cable_def_types_mod, ONLY : soil_snow_type, soil_parameter_type, & - veg_parameter_type, canopy_type, met_type, & - balances_type, r_2, ms, mp !distribute these per sbr USE cable_phys_constants_mod, ONLY : CTFRZ => TFRZ USE cable_phys_constants_mod, ONLY : CHL => HL diff --git a/src/science/soilsnow/cbl_soilsnow_init_special.F90 b/src/science/soilsnow/cbl_soilsnow_init_special.F90 index 31a85da82..69a99faad 100644 --- a/src/science/soilsnow/cbl_soilsnow_init_special.F90 +++ b/src/science/soilsnow/cbl_soilsnow_init_special.F90 @@ -1,6 +1,7 @@ MODULE cbl_soil_snow_init_special_module USE cbl_ssnow_data_mod +USE cable_def_types_mod IMPLICIT NONE diff --git a/src/science/soilsnow/cbl_soilsnow_main.F90 b/src/science/soilsnow/cbl_soilsnow_main.F90 index 2cc4c19c9..5c11ae0fb 100644 --- a/src/science/soilsnow/cbl_soilsnow_main.F90 +++ b/src/science/soilsnow/cbl_soilsnow_main.F90 @@ -27,6 +27,7 @@ MODULE cbl_soil_snow_main_module ! ssnow SUBROUTINE soil_snow(dels, soil, ssnow, canopy, met, bal, veg) USE cable_common_module +USE cable_def_types_mod USE cbl_ssnow_data_mod !called subrs USE hydraulic_redistribution_mod, ONLY: hydraulic_redistribution diff --git a/src/science/soilsnow/cbl_stempv.F90 b/src/science/soilsnow/cbl_stempv.F90 index cd5a280b2..d92190ab5 100644 --- a/src/science/soilsnow/cbl_stempv.F90 +++ b/src/science/soilsnow/cbl_stempv.F90 @@ -1,6 +1,7 @@ MODULE stempv_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC stempv diff --git a/src/science/soilsnow/cbl_surfbv.F90 b/src/science/soilsnow/cbl_surfbv.F90 index b6117bb70..eab5cf232 100644 --- a/src/science/soilsnow/cbl_surfbv.F90 +++ b/src/science/soilsnow/cbl_surfbv.F90 @@ -1,6 +1,7 @@ MODULE surfbv_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC surfbv diff --git a/src/science/soilsnow/cbl_thermal.F90 b/src/science/soilsnow/cbl_thermal.F90 index cb682df1f..3742ef79e 100644 --- a/src/science/soilsnow/cbl_thermal.F90 +++ b/src/science/soilsnow/cbl_thermal.F90 @@ -1,6 +1,7 @@ MODULE snow_processes_soil_thermal_mod USE cbl_ssnow_data_mod +USE cable_def_types_mod PUBLIC snow_processes_soil_thermal diff --git a/src/science/soilsnow/cbl_trimb.F90 b/src/science/soilsnow/cbl_trimb.F90 index 9ab95a80b..181b89d17 100644 --- a/src/science/soilsnow/cbl_trimb.F90 +++ b/src/science/soilsnow/cbl_trimb.F90 @@ -1,6 +1,7 @@ MODULE trimb_mod -USE cbl_ssnow_data_mod, ONLY : r_2 +USE cbl_ssnow_data_mod +USE cable_def_types_mod, ONLY : r_2 PUBLIC trimb From 911c2b39fe4a7128ec42c001bc54600379229bff Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Thu, 28 May 2026 14:31:04 +1000 Subject: [PATCH 26/40] Remove casa_variable.F90 from library --- CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1589bdc23..1bc9d200f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,7 +96,6 @@ if(CABLE_LIBRARY) src/science/casa-cnp/casa_readbiome.F90 src/science/casa-cnp/casa_rplant.F90 src/science/casa-cnp/casa_sumcflux.F90 - src/science/casa-cnp/casa_variable.F90 src/science/misc/cable_air.F90 src/science/misc/cable_carbon.F90 src/science/misc/cable_climate.F90 From f5662be320dbea21372971734103f1d172524eff Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Thu, 28 May 2026 15:04:05 +1000 Subject: [PATCH 27/40] Add all the CASA types --- CMakeLists.txt | 14 + .../control/casa/types/casa_balance_type.F90 | 293 + .../control/casa/types/casa_biome_type.F90 | 231 + .../AM3/control/casa/types/casa_dimension.F90 | 59 + .../control/casa/types/casa_files_type.F90 | 26 + .../AM3/control/casa/types/casa_flux_type.F90 | 418 + .../AM3/control/casa/types/casa_inout.F90 | 7732 +++++++++++++++++ .../AM3/control/casa/types/casa_met_type.F90 | 234 + .../casa/types/casa_phenology_type.F90 | 110 + .../AM3/control/casa/types/casa_pool_type.F90 | 288 + .../AM3/control/casa/types/casa_readbiome.F90 | 2445 ++++++ .../AM3/control/casa/types/casa_variable.F90 | 157 + .../AM3/control/casa/types/phen_variable.F90 | 6 + .../control/casa/types/sum_casa_flux_type.F90 | 466 + .../control/casa/types/sum_casa_pool_type.F90 | 313 + 15 files changed, 12792 insertions(+) create mode 100644 src/coupled/AM3/control/casa/types/casa_balance_type.F90 create mode 100644 src/coupled/AM3/control/casa/types/casa_biome_type.F90 create mode 100644 src/coupled/AM3/control/casa/types/casa_dimension.F90 create mode 100644 src/coupled/AM3/control/casa/types/casa_files_type.F90 create mode 100644 src/coupled/AM3/control/casa/types/casa_flux_type.F90 create mode 100644 src/coupled/AM3/control/casa/types/casa_inout.F90 create mode 100644 src/coupled/AM3/control/casa/types/casa_met_type.F90 create mode 100644 src/coupled/AM3/control/casa/types/casa_phenology_type.F90 create mode 100644 src/coupled/AM3/control/casa/types/casa_pool_type.F90 create mode 100644 src/coupled/AM3/control/casa/types/casa_readbiome.F90 create mode 100644 src/coupled/AM3/control/casa/types/casa_variable.F90 create mode 100644 src/coupled/AM3/control/casa/types/phen_variable.F90 create mode 100644 src/coupled/AM3/control/casa/types/sum_casa_flux_type.F90 create mode 100644 src/coupled/AM3/control/casa/types/sum_casa_pool_type.F90 diff --git a/CMakeLists.txt b/CMakeLists.txt index 1bc9d200f..c87e5e615 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,6 +180,20 @@ if(CABLE_LIBRARY) src/coupled/AM3/control/cable/CM3/ssnow_type.F90 src/coupled/AM3/control/cable/CM3/sum_flux_type.F90 src/coupled/AM3/control/cable/CM3/veg_type.F90 + src/coupled/AM3/control/casa/types/casa_balance_type.F90 + src/coupled/AM3/control/casa/types/casa_biome_type.F90 + src/coupled/AM3/control/casa/types/casa_files_type.F90 + src/coupled/AM3/control/casa/types/casa_flux_type.F90 + src/coupled/AM3/control/casa/types/casa_met_type.F90 + src/coupled/AM3/control/casa/types/casa_phenology_type.F90 + src/coupled/AM3/control/casa/types/casa_pool_type.F90 + src/coupled/AM3/control/casa/types/sum_casa_flux_type.F90 + src/coupled/AM3/control/casa/types/sum_casa_pool_type.F90 + src/coupled/AM3/control/casa/types/casa_variable.F90 + src/coupled/AM3/control/casa/types/phen_variable.F90 + src/coupled/AM3/control/casa/types/casa_dimension.F90 + src/coupled/AM3/control/casa/types/casa_inout.F90 + src/coupled/AM3/control/casa/types/casa_readbiome.F90 src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 src/offline/cable_iovars.F90 ) diff --git a/src/coupled/AM3/control/casa/types/casa_balance_type.F90 b/src/coupled/AM3/control/casa/types/casa_balance_type.F90 new file mode 100644 index 000000000..79e132db6 --- /dev/null +++ b/src/coupled/AM3/control/casa/types/casa_balance_type.F90 @@ -0,0 +1,293 @@ +MODULE casa_balance_type_mod + +USE cable_other_constants_mod, ONLY: r_2 ! currently DOUBLE precision + +IMPLICIT NONE + +PUBLIC :: casa_bal_data_type +PUBLIC :: casa_bal_type +PUBLIC :: alloc_casa_bal_data_type +PUBLIC :: zero_casa_bal_data_type +PUBLIC :: assoc_casa_bal_type + +TYPE casa_bal_data_type + + REAL(r_2), ALLOCATABLE :: FCgppyear (:) + REAL(r_2), ALLOCATABLE :: FCnppyear (:) + REAL(r_2), ALLOCATABLE :: FCrmleafyear (:) + REAL(r_2), ALLOCATABLE :: FCrmwoodyear (:) + REAL(r_2), ALLOCATABLE :: FCrmrootyear (:) + REAL(r_2), ALLOCATABLE :: FCrgrowyear (:) + REAL(r_2), ALLOCATABLE :: FCrpyear (:) + REAL(r_2), ALLOCATABLE :: FCrsyear (:) + REAL(r_2), ALLOCATABLE :: FCneeyear (:) + REAL(r_2), ALLOCATABLE :: dCdtyear (:) + REAL(r_2), ALLOCATABLE :: LAImax (:) + REAL(r_2), ALLOCATABLE :: Cleafmean (:) + REAL(r_2), ALLOCATABLE :: Crootmean (:) + REAL(r_2), ALLOCATABLE :: FNdepyear (:) + REAL(r_2), ALLOCATABLE :: FNfixyear (:) + REAL(r_2), ALLOCATABLE :: FNsnetyear (:) + REAL(r_2), ALLOCATABLE :: FNupyear (:) + REAL(r_2), ALLOCATABLE :: FNleachyear (:) + REAL(r_2), ALLOCATABLE :: FNlossyear (:) + REAL(r_2), ALLOCATABLE :: FPweayear (:) + REAL(r_2), ALLOCATABLE :: FPdustyear (:) + REAL(r_2), ALLOCATABLE :: FPsnetyear (:) + REAL(r_2), ALLOCATABLE :: FPupyear (:) + REAL(r_2), ALLOCATABLE :: FPleachyear (:) + REAL(r_2), ALLOCATABLE :: FPlossyear (:) + REAL(r_2), ALLOCATABLE :: nsoilminlast (:) + REAL(r_2), ALLOCATABLE :: psoillablast (:) + REAL(r_2), ALLOCATABLE :: psoilsorblast (:) + REAL(r_2), ALLOCATABLE :: psoilocclast (:) + REAL(r_2), ALLOCATABLE :: cbalance (:) + REAL(r_2), ALLOCATABLE :: nbalance (:) + REAL(r_2), ALLOCATABLE :: pbalance (:) + REAL(r_2), ALLOCATABLE :: sumcbal (:) + REAL(r_2), ALLOCATABLE :: sumnbal (:) + REAL(r_2), ALLOCATABLE :: sumpbal (:) + REAL(r_2), ALLOCATABLE :: clabilelast (:) + REAL(r_2), ALLOCATABLE :: glaimon (:,:) + REAL(r_2), ALLOCATABLE :: glaimonx (:,:) + REAL(r_2), ALLOCATABLE :: cplantlast (:,:) + REAL(r_2), ALLOCATABLE :: nplantlast (:,:) + REAL(r_2), ALLOCATABLE :: pplantlast (:,:) + REAL(r_2), ALLOCATABLE :: clitterlast (:,:) + REAL(r_2), ALLOCATABLE :: nlitterlast (:,:) + REAL(r_2), ALLOCATABLE :: plitterlast (:,:) + REAL(r_2), ALLOCATABLE :: csoillast (:,:) + REAL(r_2), ALLOCATABLE :: nsoillast (:,:) + REAL(r_2), ALLOCATABLE :: psoillast (:,:) + +END TYPE casa_bal_data_type + +TYPE casa_bal_type + + REAL(r_2), POINTER, PUBLIC :: FCgppyear (:) + REAL(r_2), POINTER, PUBLIC :: FCnppyear (:) + REAL(r_2), POINTER, PUBLIC :: FCrmleafyear (:) + REAL(r_2), POINTER, PUBLIC :: FCrmwoodyear (:) + REAL(r_2), POINTER, PUBLIC :: FCrmrootyear (:) + REAL(r_2), POINTER, PUBLIC :: FCrgrowyear (:) + REAL(r_2), POINTER, PUBLIC :: FCrpyear (:) + REAL(r_2), POINTER, PUBLIC :: FCrsyear (:) + REAL(r_2), POINTER, PUBLIC :: FCneeyear (:) + REAL(r_2), POINTER, PUBLIC :: dCdtyear (:) + REAL(r_2), POINTER, PUBLIC :: LAImax (:) + REAL(r_2), POINTER, PUBLIC :: Cleafmean (:) + REAL(r_2), POINTER, PUBLIC :: Crootmean (:) + REAL(r_2), POINTER, PUBLIC :: FNdepyear (:) + REAL(r_2), POINTER, PUBLIC :: FNfixyear (:) + REAL(r_2), POINTER, PUBLIC :: FNsnetyear (:) + REAL(r_2), POINTER, PUBLIC :: FNupyear (:) + REAL(r_2), POINTER, PUBLIC :: FNleachyear (:) + REAL(r_2), POINTER, PUBLIC :: FNlossyear (:) + REAL(r_2), POINTER, PUBLIC :: FPweayear (:) + REAL(r_2), POINTER, PUBLIC :: FPdustyear (:) + REAL(r_2), POINTER, PUBLIC :: FPsnetyear (:) + REAL(r_2), POINTER, PUBLIC :: FPupyear (:) + REAL(r_2), POINTER, PUBLIC :: FPleachyear (:) + REAL(r_2), POINTER, PUBLIC :: FPlossyear (:) + REAL(r_2), POINTER, PUBLIC :: nsoilminlast (:) + REAL(r_2), POINTER, PUBLIC :: psoillablast (:) + REAL(r_2), POINTER, PUBLIC :: psoilsorblast (:) + REAL(r_2), POINTER, PUBLIC :: psoilocclast (:) + REAL(r_2), POINTER, PUBLIC :: cbalance (:) + REAL(r_2), POINTER, PUBLIC :: nbalance (:) + REAL(r_2), POINTER, PUBLIC :: pbalance (:) + REAL(r_2), POINTER, PUBLIC :: sumcbal (:) + REAL(r_2), POINTER, PUBLIC :: sumnbal (:) + REAL(r_2), POINTER, PUBLIC :: sumpbal (:) + REAL(r_2), POINTER, PUBLIC :: clabilelast (:) + REAL(r_2), POINTER, PUBLIC :: glaimon (:,:) + REAL(r_2), POINTER, PUBLIC :: glaimonx (:,:) + REAL(r_2), POINTER, PUBLIC :: cplantlast (:,:) + REAL(r_2), POINTER, PUBLIC :: nplantlast (:,:) + REAL(r_2), POINTER, PUBLIC :: pplantlast (:,:) + REAL(r_2), POINTER, PUBLIC :: clitterlast (:,:) + REAL(r_2), POINTER, PUBLIC :: nlitterlast (:,:) + REAL(r_2), POINTER, PUBLIC :: plitterlast (:,:) + REAL(r_2), POINTER, PUBLIC :: csoillast (:,:) + REAL(r_2), POINTER, PUBLIC :: nsoillast (:,:) + REAL(r_2), POINTER, PUBLIC :: psoillast (:,:) + +END TYPE casa_bal_type + +CONTAINS + +SUBROUTINE alloc_casa_bal_data_type( casabal_data, arraysize ) + +USE casadimension, ONLY: mplant, mlitter, msoil + +IMPLICIT NONE + +TYPE (casa_bal_data_type), INTENT(INOUT) :: casabal_data +INTEGER, INTENT(IN) :: arraysize + +ALLOCATE ( casabal_data % FCgppyear ( arraysize ) ) +ALLOCATE ( casabal_data % FCnppyear ( arraysize ) ) +ALLOCATE ( casabal_data % FCrmleafyear ( arraysize ) ) +ALLOCATE ( casabal_data % FCrmwoodyear ( arraysize ) ) +ALLOCATE ( casabal_data % FCrmrootyear ( arraysize ) ) +ALLOCATE ( casabal_data % FCrgrowyear ( arraysize ) ) +ALLOCATE ( casabal_data % FCrpyear ( arraysize ) ) +ALLOCATE ( casabal_data % FCrsyear ( arraysize ) ) +ALLOCATE ( casabal_data % FCneeyear ( arraysize ) ) +ALLOCATE ( casabal_data % dCdtyear ( arraysize ) ) +ALLOCATE ( casabal_data % LAImax ( arraysize ) ) +ALLOCATE ( casabal_data % Cleafmean ( arraysize ) ) +ALLOCATE ( casabal_data % Crootmean ( arraysize ) ) +ALLOCATE ( casabal_data % FNdepyear ( arraysize ) ) +ALLOCATE ( casabal_data % FNfixyear ( arraysize ) ) +ALLOCATE ( casabal_data % FNsnetyear ( arraysize ) ) +ALLOCATE ( casabal_data % FNupyear ( arraysize ) ) +ALLOCATE ( casabal_data % FNleachyear ( arraysize ) ) +ALLOCATE ( casabal_data % FNlossyear ( arraysize ) ) +ALLOCATE ( casabal_data % FPweayear ( arraysize ) ) +ALLOCATE ( casabal_data % FPdustyear ( arraysize ) ) +ALLOCATE ( casabal_data % FPsnetyear ( arraysize ) ) +ALLOCATE ( casabal_data % FPupyear ( arraysize ) ) +ALLOCATE ( casabal_data % FPleachyear ( arraysize ) ) +ALLOCATE ( casabal_data % FPlossyear ( arraysize ) ) +ALLOCATE ( casabal_data % nsoilminlast ( arraysize ) ) +ALLOCATE ( casabal_data % psoillablast ( arraysize ) ) +ALLOCATE ( casabal_data % psoilsorblast ( arraysize ) ) +ALLOCATE ( casabal_data % psoilocclast ( arraysize ) ) +ALLOCATE ( casabal_data % cbalance ( arraysize ) ) +ALLOCATE ( casabal_data % nbalance ( arraysize ) ) +ALLOCATE ( casabal_data % pbalance ( arraysize ) ) +ALLOCATE ( casabal_data % sumcbal ( arraysize ) ) +ALLOCATE ( casabal_data % sumnbal ( arraysize ) ) +ALLOCATE ( casabal_data % sumpbal ( arraysize ) ) +ALLOCATE ( casabal_data % clabilelast ( arraysize ) ) +ALLOCATE ( casabal_data % glaimon ( arraysize, 12 ) ) ! 12 months +ALLOCATE ( casabal_data % glaimonx ( arraysize, 12 ) ) ! 12 months +ALLOCATE ( casabal_data % cplantlast ( arraysize, mplant ) ) +ALLOCATE ( casabal_data % nplantlast ( arraysize, mplant ) ) +ALLOCATE ( casabal_data % pplantlast ( arraysize, mplant ) ) +ALLOCATE ( casabal_data % clitterlast ( arraysize, mlitter ) ) +ALLOCATE ( casabal_data % nlitterlast ( arraysize, mlitter ) ) +ALLOCATE ( casabal_data % plitterlast ( arraysize, mlitter ) ) +ALLOCATE ( casabal_data % csoillast ( arraysize, msoil ) ) +ALLOCATE ( casabal_data % nsoillast ( arraysize, msoil ) ) +ALLOCATE ( casabal_data % psoillast ( arraysize, msoil ) ) + +END SUBROUTINE alloc_casa_bal_data_type + +SUBROUTINE zero_casa_bal_data_type( casabal_data ) + +IMPLICIT NONE + +TYPE (casa_bal_data_type), INTENT(INOUT) :: casabal_data + +casabal_data % FCgppyear (:) = 0.0 +casabal_data % FCnppyear (:) = 0.0 +casabal_data % FCrmleafyear (:) = 0.0 +casabal_data % FCrmwoodyear (:) = 0.0 +casabal_data % FCrmrootyear (:) = 0.0 +casabal_data % FCrgrowyear (:) = 0.0 +casabal_data % FCrpyear (:) = 0.0 +casabal_data % FCrsyear (:) = 0.0 +casabal_data % FCneeyear (:) = 0.0 +casabal_data % dCdtyear (:) = 0.0 +casabal_data % LAImax (:) = 0.0 +casabal_data % Cleafmean (:) = 0.0 +casabal_data % Crootmean (:) = 0.0 +casabal_data % FNdepyear (:) = 0.0 +casabal_data % FNfixyear (:) = 0.0 +casabal_data % FNsnetyear (:) = 0.0 +casabal_data % FNupyear (:) = 0.0 +casabal_data % FNleachyear (:) = 0.0 +casabal_data % FNlossyear (:) = 0.0 +casabal_data % FPweayear (:) = 0.0 +casabal_data % FPdustyear (:) = 0.0 +casabal_data % FPsnetyear (:) = 0.0 +casabal_data % FPupyear (:) = 0.0 +casabal_data % FPleachyear (:) = 0.0 +casabal_data % FPlossyear (:) = 0.0 +casabal_data % nsoilminlast (:) = 0.0 +casabal_data % psoillablast (:) = 0.0 +casabal_data % psoilsorblast (:) = 0.0 +casabal_data % psoilocclast (:) = 0.0 +casabal_data % cbalance (:) = 0.0 +casabal_data % nbalance (:) = 0.0 +casabal_data % pbalance (:) = 0.0 +casabal_data % sumcbal (:) = 0.0 +casabal_data % sumnbal (:) = 0.0 +casabal_data % sumpbal (:) = 0.0 +casabal_data % clabilelast (:) = 0.0 +casabal_data % glaimon (:,:) = 0.0 +casabal_data % glaimonx (:,:) = 0.0 +casabal_data % cplantlast (:,:) = 0.0 +casabal_data % nplantlast (:,:) = 0.0 +casabal_data % pplantlast (:,:) = 0.0 +casabal_data % clitterlast (:,:) = 0.0 +casabal_data % nlitterlast (:,:) = 0.0 +casabal_data % plitterlast (:,:) = 0.0 +casabal_data % csoillast (:,:) = 0.0 +casabal_data % nsoillast (:,:) = 0.0 +casabal_data % psoillast (:,:) = 0.0 + +RETURN +END SUBROUTINE zero_casa_bal_data_type + +SUBROUTINE assoc_casa_bal_type( casabal, casabal_data ) + +IMPLICIT NONE + +TYPE (casa_bal_type), INTENT(INOUT) :: casabal +TYPE (casa_bal_data_type), INTENT(INOUT), TARGET :: casabal_data + +casabal % FCgppyear => casabal_data % FCgppyear +casabal % FCnppyear => casabal_data % FCnppyear +casabal % FCrmleafyear => casabal_data % FCrmleafyear +casabal % FCrmwoodyear => casabal_data % FCrmwoodyear +casabal % FCrmrootyear => casabal_data % FCrmrootyear +casabal % FCrgrowyear => casabal_data % FCrgrowyear +casabal % FCrpyear => casabal_data % FCrpyear +casabal % FCrsyear => casabal_data % FCrsyear +casabal % FCneeyear => casabal_data % FCneeyear +casabal % dCdtyear => casabal_data % dCdtyear +casabal % LAImax => casabal_data % LAImax +casabal % Cleafmean => casabal_data % Cleafmean +casabal % Crootmean => casabal_data % Crootmean +casabal % FNdepyear => casabal_data % FNdepyear +casabal % FNfixyear => casabal_data % FNfixyear +casabal % FNsnetyear => casabal_data % FNsnetyear +casabal % FNupyear => casabal_data % FNupyear +casabal % FNleachyear => casabal_data % FNleachyear +casabal % FNlossyear => casabal_data % FNlossyear +casabal % FPweayear => casabal_data % FPweayear +casabal % FPdustyear => casabal_data % FPdustyear +casabal % FPsnetyear => casabal_data % FPsnetyear +casabal % FPupyear => casabal_data % FPupyear +casabal % FPleachyear => casabal_data % FPleachyear +casabal % FPlossyear => casabal_data % FPlossyear +casabal % nsoilminlast => casabal_data % nsoilminlast +casabal % psoillablast => casabal_data % psoillablast +casabal % psoilsorblast => casabal_data % psoilsorblast +casabal % psoilocclast => casabal_data % psoilocclast +casabal % cbalance => casabal_data % cbalance +casabal % nbalance => casabal_data % nbalance +casabal % pbalance => casabal_data % pbalance +casabal % sumcbal => casabal_data % sumcbal +casabal % sumnbal => casabal_data % sumnbal +casabal % sumpbal => casabal_data % sumpbal +casabal % clabilelast => casabal_data % clabilelast +casabal % glaimon => casabal_data % glaimon +casabal % glaimonx => casabal_data % glaimonx +casabal % cplantlast => casabal_data % cplantlast +casabal % nplantlast => casabal_data % nplantlast +casabal % pplantlast => casabal_data % pplantlast +casabal % clitterlast => casabal_data % clitterlast +casabal % nlitterlast => casabal_data % nlitterlast +casabal % plitterlast => casabal_data % plitterlast +casabal % csoillast => casabal_data % csoillast +casabal % nsoillast => casabal_data % nsoillast +casabal % psoillast => casabal_data % psoillast + +RETURN +END SUBROUTINE assoc_casa_bal_type + +END MODULE casa_balance_type_mod diff --git a/src/coupled/AM3/control/casa/types/casa_biome_type.F90 b/src/coupled/AM3/control/casa/types/casa_biome_type.F90 new file mode 100644 index 000000000..d86c1b25c --- /dev/null +++ b/src/coupled/AM3/control/casa/types/casa_biome_type.F90 @@ -0,0 +1,231 @@ +MODULE casa_biome_type_mod + +USE cable_other_constants_mod, ONLY: r_2 ! currently DOUBLE precision +USE grid_constants_mod_cbl, ONLY: ntype_max ! # veg types [13],non-veg=4, + ! ntype_max=17 +USE casadimension, ONLY: mplant, mlitter, mso, msoil + +IMPLICIT NONE + +PUBLIC :: casa_biome_data_type +PUBLIC :: casa_biome_type +PUBLIC :: zero_casa_biome_data_type +PUBLIC :: assoc_casa_biome_type + +TYPE casa_biome_data_type + + INTEGER :: ivt2 ( ntype_max ) + REAL(r_2) :: xkleafcoldmax ( ntype_max ) + REAL(r_2) :: xkleafcoldexp ( ntype_max ) + REAL(r_2) :: xkleafdrymax ( ntype_max ) + REAL(r_2) :: xkleafdryexp ( ntype_max ) + REAL(r_2) :: glaimax ( ntype_max ) + REAL(r_2) :: glaimin ( ntype_max ) + REAL(r_2) :: sla ( ntype_max ) + REAL(r_2) :: ratiofrootleaf ( ntype_max ) + REAL(r_2) :: kroot ( ntype_max ) + REAL(r_2) :: krootlen ( ntype_max ) + REAL(r_2) :: rootdepth ( ntype_max ) + REAL(r_2) :: kuptake ( ntype_max ) + REAL(r_2) :: kminN ( ntype_max ) + REAL(r_2) :: kuplabP ( ntype_max ) + REAL(r_2) :: kclabrate ( ntype_max ) + REAL(r_2) :: xnpmax ( ntype_max ) + REAL(r_2) :: q10soil ( ntype_max ) + REAL(r_2) :: xkoptlitter ( ntype_max ) + REAL(r_2) :: xkoptsoil ( ntype_max ) + REAL(r_2) :: xkplab ( mso ) + REAL(r_2) :: xkpsorb ( mso ) + REAL(r_2) :: xkpocc ( mso ) + REAL(r_2) :: prodptase ( ntype_max ) + REAL(r_2) :: costnpup ( ntype_max ) + REAL(r_2) :: maxfinelitter ( ntype_max ) + REAL(r_2) :: maxcwd ( ntype_max ) + REAL(r_2) :: nintercept ( ntype_max ) + REAL(r_2) :: nslope ( ntype_max ) + REAL(r_2) :: plantrate ( ntype_max, mplant ) + REAL(r_2) :: rmplant ( ntype_max, mplant ) + REAL(r_2) :: fracnpptoP ( ntype_max, mplant ) + REAL(r_2) :: fraclignin ( ntype_max, mplant ) + REAL(r_2) :: fraclabile ( ntype_max, mplant ) + REAL(r_2) :: ratioNCplantmin ( ntype_max, mplant ) + REAL(r_2) :: ratioNCplantmax ( ntype_max, mplant ) + REAL(r_2) :: ratioNPplantmin ( ntype_max, mplant ) + REAL(r_2) :: ratioNPplantmax ( ntype_max, mplant ) + REAL(r_2) :: fracLigninplant ( ntype_max, mplant ) + REAL(r_2) :: ftransNPtoL ( ntype_max, mplant ) + REAL(r_2) :: ftransPPtoL ( ntype_max, mplant ) + REAL(r_2) :: litterrate ( ntype_max, mlitter) + REAL(r_2) :: ratioPcplantmin ( ntype_max, mplant ) + REAL(r_2) :: ratioPcplantmax ( ntype_max, mplant ) + REAL(r_2) :: soilrate ( ntype_max, msoil ) + +END TYPE casa_biome_data_type + +TYPE casa_biome_type + + INTEGER, POINTER, PUBLIC :: ivt2 (:) + REAL(r_2), POINTER, PUBLIC :: xkleafcoldmax (:) + REAL(r_2), POINTER, PUBLIC :: xkleafcoldexp (:) + REAL(r_2), POINTER, PUBLIC :: xkleafdrymax (:) + REAL(r_2), POINTER, PUBLIC :: xkleafdryexp (:) + REAL(r_2), POINTER, PUBLIC :: glaimax (:) + REAL(r_2), POINTER, PUBLIC :: glaimin (:) + REAL(r_2), POINTER, PUBLIC :: sla (:) + REAL(r_2), POINTER, PUBLIC :: ratiofrootleaf (:) + REAL(r_2), POINTER, PUBLIC :: kroot (:) + REAL(r_2), POINTER, PUBLIC :: krootlen (:) + REAL(r_2), POINTER, PUBLIC :: rootdepth (:) + REAL(r_2), POINTER, PUBLIC :: kuptake (:) + REAL(r_2), POINTER, PUBLIC :: kminN (:) + REAL(r_2), POINTER, PUBLIC :: kuplabP (:) + REAL(r_2), POINTER, PUBLIC :: kclabrate (:) + REAL(r_2), POINTER, PUBLIC :: xnpmax (:) + REAL(r_2), POINTER, PUBLIC :: q10soil (:) + REAL(r_2), POINTER, PUBLIC :: xkoptlitter (:) + REAL(r_2), POINTER, PUBLIC :: xkoptsoil (:) + REAL(r_2), POINTER, PUBLIC :: xkplab (:) + REAL(r_2), POINTER, PUBLIC :: xkpsorb (:) + REAL(r_2), POINTER, PUBLIC :: xkpocc (:) + REAL(r_2), POINTER, PUBLIC :: prodptase (:) + REAL(r_2), POINTER, PUBLIC :: costnpup (:) + REAL(r_2), POINTER, PUBLIC :: maxfinelitter (:) + REAL(r_2), POINTER, PUBLIC :: maxcwd (:) + REAL(r_2), POINTER, PUBLIC :: nintercept (:) + REAL(r_2), POINTER, PUBLIC :: nslope (:) + REAL(r_2), POINTER, PUBLIC :: plantrate (:,:) + REAL(r_2), POINTER, PUBLIC :: rmplant (:,:) + REAL(r_2), POINTER, PUBLIC :: fracnpptoP (:,:) + REAL(r_2), POINTER, PUBLIC :: fraclignin (:,:) + REAL(r_2), POINTER, PUBLIC :: fraclabile (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNCplantmin (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNCplantmax (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNPplantmin (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNPplantmax (:,:) + REAL(r_2), POINTER, PUBLIC :: fracLigninplant (:,:) + REAL(r_2), POINTER, PUBLIC :: ftransNPtoL (:,:) + REAL(r_2), POINTER, PUBLIC :: ftransPPtoL (:,:) + REAL(r_2), POINTER, PUBLIC :: litterrate (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioPcplantmin (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioPcplantmax (:,:) + + REAL(r_2), POINTER, PUBLIC :: soilrate (:,:) + +END TYPE casa_biome_type + +CONTAINS + +SUBROUTINE zero_casa_biome_data_type( casabiome_data ) + +IMPLICIT NONE + +TYPE (casa_biome_data_type), INTENT(INOUT) :: casabiome_data + +casabiome_data % ivt2 (:) = 0 +casabiome_data % xkleafcoldmax (:) = 0.0 +casabiome_data % xkleafcoldexp (:) = 0.0 +casabiome_data % xkleafdrymax (:) = 0.0 +casabiome_data % xkleafdryexp (:) = 0.0 +casabiome_data % glaimax (:) = 0.0 +casabiome_data % glaimin (:) = 0.0 +casabiome_data % sla (:) = 0.0 +casabiome_data % ratiofrootleaf (:) = 0.0 +casabiome_data % kroot (:) = 0.0 +casabiome_data % krootlen (:) = 0.0 +casabiome_data % rootdepth (:) = 0.0 +casabiome_data % kuptake (:) = 0.0 +casabiome_data % kminN (:) = 0.0 +casabiome_data % kuplabP (:) = 0.0 +casabiome_data % kclabrate (:) = 0.0 +casabiome_data % xnpmax (:) = 0.0 +casabiome_data % q10soil (:) = 0.0 +casabiome_data % xkoptlitter (:) = 0.0 +casabiome_data % xkoptsoil (:) = 0.0 +casabiome_data % xkplab (:) = 0.0 +casabiome_data % xkpsorb (:) = 0.0 +casabiome_data % xkpocc (:) = 0.0 +casabiome_data % prodptase (:) = 0.0 +casabiome_data % costnpup (:) = 0.0 +casabiome_data % maxfinelitter (:) = 0.0 +casabiome_data % maxcwd (:) = 0.0 +casabiome_data % nintercept (:) = 0.0 +casabiome_data % nslope (:) = 0.0 +casabiome_data % plantrate (:,:) = 0.0 +casabiome_data % rmplant (:,:) = 0.0 +casabiome_data % fracnpptoP (:,:) = 0.0 +casabiome_data % fraclignin (:,:) = 0.0 +casabiome_data % fraclabile (:,:) = 0.0 +casabiome_data % ratioNCplantmin (:,:) = 0.0 +casabiome_data % ratioNCplantmax (:,:) = 0.0 +casabiome_data % ratioNPplantmin (:,:) = 0.0 +casabiome_data % ratioNPplantmax (:,:) = 0.0 +casabiome_data % fracLigninplant (:,:) = 0.0 +casabiome_data % ftransNPtoL (:,:) = 0.0 +casabiome_data % ftransPPtoL (:,:) = 0.0 +casabiome_data % litterrate (:,:) = 0.0 +casabiome_data % ratioPcplantmin (:,:) = 0.0 +casabiome_data % ratioPcplantmax (:,:) = 0.0 +casabiome_data % soilrate (:,:) = 0.0 + +RETURN +END SUBROUTINE zero_casa_biome_data_type + + +SUBROUTINE assoc_casa_biome_type( casabiome, casabiome_data ) + +IMPLICIT NONE + +TYPE (casa_biome_type), INTENT(INOUT) :: casabiome +TYPE (casa_biome_data_type), INTENT(INOUT), TARGET :: casabiome_data + +casabiome % ivt2 => casabiome_data % ivt2 +casabiome % xkleafcoldmax => casabiome_data % xkleafcoldmax +casabiome % xkleafcoldexp => casabiome_data % xkleafcoldexp +casabiome % xkleafdrymax => casabiome_data % xkleafdrymax +casabiome % xkleafdryexp => casabiome_data % xkleafdryexp +casabiome % glaimax => casabiome_data % glaimax +casabiome % glaimin => casabiome_data % glaimin +casabiome % sla => casabiome_data % sla +casabiome % ratiofrootleaf => casabiome_data % ratiofrootleaf +casabiome % kroot => casabiome_data % kroot +casabiome % krootlen => casabiome_data % krootlen +casabiome % rootdepth => casabiome_data % rootdepth +casabiome % kuptake => casabiome_data % kuptake +casabiome % kminN => casabiome_data % kminN +casabiome % kuplabP => casabiome_data % kuplabP +casabiome % kclabrate => casabiome_data % kclabrate +casabiome % xnpmax => casabiome_data % xnpmax +casabiome % q10soil => casabiome_data % q10soil +casabiome % xkoptlitter => casabiome_data % xkoptlitter +casabiome % xkoptsoil => casabiome_data % xkoptsoil +casabiome % xkplab => casabiome_data % xkplab +casabiome % xkpsorb => casabiome_data % xkpsorb +casabiome % xkpocc => casabiome_data % xkpocc +casabiome % prodptase => casabiome_data % prodptase +casabiome % costnpup => casabiome_data % costnpup +casabiome % maxfinelitter => casabiome_data % maxfinelitter +casabiome % maxcwd => casabiome_data % maxcwd +casabiome % nintercept => casabiome_data % nintercept +casabiome % nslope => casabiome_data % nslope +casabiome % plantrate => casabiome_data % plantrate +casabiome % rmplant => casabiome_data % rmplant +casabiome % fracnpptoP => casabiome_data % fracnpptoP +casabiome % fraclignin => casabiome_data % fraclignin +casabiome % fraclabile => casabiome_data % fraclabile +casabiome % ratioNCplantmin => casabiome_data % ratioNCplantmin +casabiome % ratioNCplantmax => casabiome_data % ratioNCplantmax +casabiome % ratioNPplantmin => casabiome_data % ratioNPplantmin +casabiome % ratioNPplantmax => casabiome_data % ratioNPplantmax +casabiome % fracLigninplant => casabiome_data % fracLigninplant +casabiome % ftransNPtoL => casabiome_data % ftransNPtoL +casabiome % ftransPPtoL => casabiome_data % ftransPPtoL +casabiome % litterrate => casabiome_data % litterrate +casabiome % ratioPcplantmin => casabiome_data % ratioPcplantmin +casabiome % ratioPcplantmax => casabiome_data % ratioPcplantmax +casabiome % soilrate => casabiome_data % soilrate + +RETURN +END SUBROUTINE assoc_casa_biome_type + + +END MODULE casa_biome_type_mod diff --git a/src/coupled/AM3/control/casa/types/casa_dimension.F90 b/src/coupled/AM3/control/casa/types/casa_dimension.F90 new file mode 100644 index 000000000..4a6707031 --- /dev/null +++ b/src/coupled/AM3/control/casa/types/casa_dimension.F90 @@ -0,0 +1,59 @@ +!============================================================================== +! This source code is part of the +! Australian Community Atmosphere Biosphere Land Exchange (CABLE) model. +! This work is licensed under the CSIRO Open Source Software License +! Agreement (variation of the BSD / MIT License). +! +! You may not use this file except in compliance with this License. +! A copy of the License (CSIRO_BSD_MIT_License_v2.0_CABLE.txt) is located +! in each directory containing CABLE code. +! +! ============================================================================== +! Purpose: defines/allocates variables for CASA-CNP +! +! Contact: Yingping.Wang@csiro.au +! +! History: Developed for offline CASA-CNP, code revision likely to better +! suit ACCESS and to merge more consistently with CABLE code +! +! +! ============================================================================== +! casa_variable.f90 +! +! the following modules are used when "casacnp" is coupled to "cable" +! casadimension +! casaparm +! casavariable with subroutine alloc_casavariable +! phenvariable with subroutine alloc_phenvariable + +MODULE casadimension + +USE cable_other_constants_mod, ONLY: r_2 ! currently DOUBLE precision +USE cable_def_types_mod, ONLY: mvtype, ms + + IMPLICIT NONE + + + + INTEGER, PARAMETER :: mdyear=365 ! days per year + INTEGER, PARAMETER :: mdmonth=30 ! days per month + INTEGER, PARAMETER :: mdweek=7 ! days per week + INTEGER, PARAMETER :: mmyear=12 ! month per year + INTEGER, PARAMETER :: mt=36500 ! integration time step + INTEGER, PARAMETER :: mplant = 3 ! plant pools + INTEGER, PARAMETER :: mlitter= 3 ! litter pools + INTEGER, PARAMETER :: msoil = 3 ! soil pools + INTEGER, PARAMETER :: mso = 12 ! soil order number + INTEGER, PARAMETER :: mhwp = 1 ! harvested wood pools + INTEGER, PARAMETER :: mwood = 3 ! wood product pools + INTEGER, PARAMETER :: mclear = 1 ! forest clearing pools + ! BP put icycle into namelist file + INTEGER :: icycle + ! INTEGER, PARAMETER :: icycle=3 ! =1 for C, =2 for C+N; =3 for C+N+P + INTEGER, PARAMETER :: mstart=1 ! starting time step + INTEGER, PARAMETER :: mphase=4 ! phen. phases + INTEGER, PARAMETER :: mlogmax=4 ! max.woody PFT. ESM1.5:land use + REAL(r_2), PARAMETER :: deltcasa=1.0/365.0 ! year + REAL(r_2), PARAMETER :: deltpool=1.0 ! pool delt(1day) + +END MODULE casadimension diff --git a/src/coupled/AM3/control/casa/types/casa_files_type.F90 b/src/coupled/AM3/control/casa/types/casa_files_type.F90 new file mode 100644 index 000000000..e932dd9aa --- /dev/null +++ b/src/coupled/AM3/control/casa/types/casa_files_type.F90 @@ -0,0 +1,26 @@ +MODULE casa_files_type_mod + +IMPLICIT NONE + +TYPE casa_files_type + + CHARACTER(LEN=99) :: cnpbiome = '' ! biome-specific BGC parameters + CHARACTER(LEN=99) :: cnppoint = '' ! file for point-specific BGC inputs + CHARACTER(LEN=99) :: cnpepool = '' ! file for end-of-run pool sizes + CHARACTER(LEN=99) :: cnpipool = '' ! file for inital pool sizes + CHARACTER(LEN=99) :: cnpmetin = '' ! met file for spin up + CHARACTER(LEN=99) :: cnpmetout = '' ! met file for spin up + CHARACTER(LEN=99) :: cnpspin = '' ! input file for spin up + CHARACTER(LEN=99) :: dump_cnpspin = '' ! dump file for spinning casa-cnp + CHARACTER(LEN=99) :: phen = '' ! leaf phenology datafile + CHARACTER(LEN=99) :: cnpflux = '' ! modelled mean yearly CNP fluxes + CHARACTER(LEN=99) :: c2cdumppath = '' ! cable2casa dump for casa spinup + LOGICAL :: l_ndep = .FALSE. + CHARACTER(LEN=99) :: ndep = '' ! N deposition input file + +END TYPE casa_files_type + +TYPE(casa_files_type) :: casafile + +END MODULE casa_files_type_mod + diff --git a/src/coupled/AM3/control/casa/types/casa_flux_type.F90 b/src/coupled/AM3/control/casa/types/casa_flux_type.F90 new file mode 100644 index 000000000..8f7777962 --- /dev/null +++ b/src/coupled/AM3/control/casa/types/casa_flux_type.F90 @@ -0,0 +1,418 @@ +MODULE casa_flux_type_mod + +USE cable_other_constants_mod, ONLY: r_2 ! currently DOUBLE precision + +IMPLICIT NONE + +PUBLIC :: casa_flux_data_type +PUBLIC :: casa_flux_type +PUBLIC :: alloc_casa_flux_data_type +PUBLIC :: assoc_casa_flux_type + +TYPE casa_flux_data_type + + REAL(r_2), ALLOCATABLE :: Cgpp (:) + REAL(r_2), ALLOCATABLE :: Cnpp (:) + REAL(r_2), ALLOCATABLE :: Crp (:) + REAL(r_2), ALLOCATABLE :: Crgplant (:) + REAL(r_2), ALLOCATABLE :: Nminfix (:) + REAL(r_2), ALLOCATABLE :: Nminuptake (:) + REAL(r_2), ALLOCATABLE :: Plabuptake (:) + REAL(r_2), ALLOCATABLE :: Clabloss (:) + REAL(r_2), ALLOCATABLE :: fracClabile (:) + REAL(r_2), ALLOCATABLE :: stemnpp (:) + REAL(r_2), ALLOCATABLE :: frac_sapwood (:) + REAL(r_2), ALLOCATABLE :: sapwood_area (:) + REAL(r_2), ALLOCATABLE :: Crsoil (:) + REAL(r_2), ALLOCATABLE :: Nmindep (:) + REAL(r_2), ALLOCATABLE :: Nminloss (:) + REAL(r_2), ALLOCATABLE :: Nminleach (:) + REAL(r_2), ALLOCATABLE :: Nupland (:) + REAL(r_2), ALLOCATABLE :: Nlittermin (:) + REAL(r_2), ALLOCATABLE :: Nsmin (:) + REAL(r_2), ALLOCATABLE :: Nsimm (:) + REAL(r_2), ALLOCATABLE :: Nsnet (:) + REAL(r_2), ALLOCATABLE :: fNminloss (:) + REAL(r_2), ALLOCATABLE :: fNminleach (:) + REAL(r_2), ALLOCATABLE :: Pdep (:) + REAL(r_2), ALLOCATABLE :: Pwea (:) + REAL(r_2), ALLOCATABLE :: Pleach (:) + REAL(r_2), ALLOCATABLE :: Ploss (:) + REAL(r_2), ALLOCATABLE :: Pupland (:) + REAL(r_2), ALLOCATABLE :: Plittermin (:) + REAL(r_2), ALLOCATABLE :: Psmin (:) + REAL(r_2), ALLOCATABLE :: Psimm (:) + REAL(r_2), ALLOCATABLE :: Psnet (:) + REAL(r_2), ALLOCATABLE :: fPleach (:) + REAL(r_2), ALLOCATABLE :: kplab (:) + REAL(r_2), ALLOCATABLE :: kpsorb (:) + REAL(r_2), ALLOCATABLE :: kpocc (:) + REAL(r_2), ALLOCATABLE :: kmlabp (:) + REAL(r_2), ALLOCATABLE :: Psorbmax (:) + REAL(r_2), ALLOCATABLE :: Cnep (:) + REAL(r_2), ALLOCATABLE :: FluxCtoCO2 (:) + REAL(r_2), ALLOCATABLE :: FluxCtohwp (:) + REAL(r_2), ALLOCATABLE :: FluxNtohwp (:) + REAL(r_2), ALLOCATABLE :: FluxPtohwp (:) + REAL(r_2), ALLOCATABLE :: FluxCtoclear (:) + REAL(r_2), ALLOCATABLE :: FluxNtoclear (:) + REAL(r_2), ALLOCATABLE :: FluxPtoclear (:) + REAL(r_2), ALLOCATABLE :: CtransferLUC (:) + REAL(r_2), ALLOCATABLE :: meangpp (:) + REAL(r_2), ALLOCATABLE :: meanrleaf (:) + REAL(r_2), ALLOCATABLE :: fracCalloc (:,:) + REAL(r_2), ALLOCATABLE :: fracNalloc (:,:) + REAL(r_2), ALLOCATABLE :: fracPalloc (:,:) + REAL(r_2), ALLOCATABLE :: Crmplant (:,:) + REAL(r_2), ALLOCATABLE :: kplant (:,:) + REAL(r_2), ALLOCATABLE :: klitter (:,:) + REAL(r_2), ALLOCATABLE :: ksoil (:,:) + REAL(r_2), ALLOCATABLE :: fromLtoCO2 (:,:) + REAL(r_2), ALLOCATABLE :: fromStoCO2 (:,:) + REAL(r_2), ALLOCATABLE :: FluxCtolitter (:,:) + REAL(r_2), ALLOCATABLE :: FluxNtolitter (:,:) + REAL(r_2), ALLOCATABLE :: FluxPtolitter (:,:) + REAL(r_2), ALLOCATABLE :: FluxCtosoil (:,:) + REAL(r_2), ALLOCATABLE :: FluxNtosoil (:,:) + REAL(r_2), ALLOCATABLE :: FluxPtosoil (:,:) + REAL(r_2), ALLOCATABLE :: fromPtoL (:,:,:) + REAL(r_2), ALLOCATABLE :: fromLtoS (:,:,:) + REAL(r_2), ALLOCATABLE :: fromStoS (:,:,:) + REAL(r_2), ALLOCATABLE :: Cplant_turnover (:,:) + REAL(r_2), ALLOCATABLE :: Cplant_turnover_disturbance (:) + REAL(r_2), ALLOCATABLE :: Cplant_turnover_crowding (:) + REAL(r_2), ALLOCATABLE :: Cplant_turnover_resource_limitation (:) + +END TYPE casa_flux_data_type + +TYPE casa_flux_type + + REAL(r_2), POINTER, PUBLIC :: Cgpp (:) + REAL(r_2), POINTER, PUBLIC :: Cnpp (:) + REAL(r_2), POINTER, PUBLIC :: Crp (:) + REAL(r_2), POINTER, PUBLIC :: Crgplant (:) + REAL(r_2), POINTER, PUBLIC :: Nminfix (:) + REAL(r_2), POINTER, PUBLIC :: Nminuptake (:) + REAL(r_2), POINTER, PUBLIC :: Plabuptake (:) + REAL(r_2), POINTER, PUBLIC :: Clabloss (:) + REAL(r_2), POINTER, PUBLIC :: fracClabile (:) + REAL(r_2), POINTER, PUBLIC :: stemnpp (:) + REAL(r_2), POINTER, PUBLIC :: frac_sapwood (:) + REAL(r_2), POINTER, PUBLIC :: sapwood_area (:) + REAL(r_2), POINTER, PUBLIC :: Crsoil (:) + REAL(r_2), POINTER, PUBLIC :: Nmindep (:) + REAL(r_2), POINTER, PUBLIC :: Nminloss (:) + REAL(r_2), POINTER, PUBLIC :: Nminleach (:) + REAL(r_2), POINTER, PUBLIC :: Nupland (:) + REAL(r_2), POINTER, PUBLIC :: Nlittermin (:) + REAL(r_2), POINTER, PUBLIC :: Nsmin (:) + REAL(r_2), POINTER, PUBLIC :: Nsimm (:) + REAL(r_2), POINTER, PUBLIC :: Nsnet (:) + REAL(r_2), POINTER, PUBLIC :: fNminloss (:) + REAL(r_2), POINTER, PUBLIC :: fNminleach (:) + REAL(r_2), POINTER, PUBLIC :: Pdep (:) + REAL(r_2), POINTER, PUBLIC :: Pwea (:) + REAL(r_2), POINTER, PUBLIC :: Pleach (:) + REAL(r_2), POINTER, PUBLIC :: Ploss (:) + REAL(r_2), POINTER, PUBLIC :: Pupland (:) + REAL(r_2), POINTER, PUBLIC :: Plittermin (:) + REAL(r_2), POINTER, PUBLIC :: Psmin (:) + REAL(r_2), POINTER, PUBLIC :: Psimm (:) + REAL(r_2), POINTER, PUBLIC :: Psnet (:) + REAL(r_2), POINTER, PUBLIC :: fPleach (:) + REAL(r_2), POINTER, PUBLIC :: kplab (:) + REAL(r_2), POINTER, PUBLIC :: kpsorb (:) + REAL(r_2), POINTER, PUBLIC :: kpocc (:) + REAL(r_2), POINTER, PUBLIC :: kmlabp (:) + REAL(r_2), POINTER, PUBLIC :: Psorbmax (:) + REAL(r_2), POINTER, PUBLIC :: Cnep (:) + REAL(r_2), POINTER, PUBLIC :: FluxCtoCO2 (:) + REAL(r_2), POINTER, PUBLIC :: FluxCtohwp (:) + REAL(r_2), POINTER, PUBLIC :: FluxNtohwp (:) + REAL(r_2), POINTER, PUBLIC :: FluxPtohwp (:) + REAL(r_2), POINTER, PUBLIC :: FluxCtoclear (:) + REAL(r_2), POINTER, PUBLIC :: FluxNtoclear (:) + REAL(r_2), POINTER, PUBLIC :: FluxPtoclear (:) + REAL(r_2), POINTER, PUBLIC :: CtransferLUC (:) + REAL(r_2), POINTER, PUBLIC :: meangpp (:) + REAL(r_2), POINTER, PUBLIC :: meanrleaf (:) + REAL(r_2), POINTER, PUBLIC :: fracCalloc (:,:) + REAL(r_2), POINTER, PUBLIC :: fracNalloc (:,:) + REAL(r_2), POINTER, PUBLIC :: fracPalloc (:,:) + REAL(r_2), POINTER, PUBLIC :: Crmplant (:,:) + REAL(r_2), POINTER, PUBLIC :: kplant (:,:) + REAL(r_2), POINTER, PUBLIC :: klitter (:,:) + REAL(r_2), POINTER, PUBLIC :: ksoil (:,:) + REAL(r_2), POINTER, PUBLIC :: fromLtoCO2 (:,:) + REAL(r_2), POINTER, PUBLIC :: fromStoCO2 (:,:) + REAL(r_2), POINTER, PUBLIC :: FluxCtolitter (:,:) + REAL(r_2), POINTER, PUBLIC :: FluxNtolitter (:,:) + REAL(r_2), POINTER, PUBLIC :: FluxPtolitter (:,:) + REAL(r_2), POINTER, PUBLIC :: FluxCtosoil (:,:) + REAL(r_2), POINTER, PUBLIC :: FluxNtosoil (:,:) + REAL(r_2), POINTER, PUBLIC :: FluxPtosoil (:,:) + REAL(r_2), POINTER, PUBLIC :: fromPtoL (:,:,:) + REAL(r_2), POINTER, PUBLIC :: fromLtoS (:,:,:) + REAL(r_2), POINTER, PUBLIC :: fromStoS (:,:,:) + REAL(r_2), POINTER, PUBLIC :: Cplant_turnover (:,:) + REAL(r_2), POINTER, PUBLIC :: Cplant_turnover_disturbance (:) + REAL(r_2), POINTER, PUBLIC :: Cplant_turnover_crowding (:) + REAL(r_2), POINTER, PUBLIC :: Cplant_turnover_resource_limitation (:) + +END TYPE casa_flux_type + +CONTAINS + +SUBROUTINE alloc_casa_flux_data_type( casaflux_data, arraysize ) + +USE casadimension, ONLY: mplant, mlitter, msoil + +IMPLICIT NONE + +TYPE (casa_flux_data_type), INTENT(INOUT) :: casaflux_data +INTEGER, INTENT(IN) :: arraysize + +ALLOCATE ( casaflux_data % Cgpp ( arraysize ) ) +ALLOCATE ( casaflux_data % Cnpp ( arraysize ) ) +ALLOCATE ( casaflux_data % Crp ( arraysize ) ) +ALLOCATE ( casaflux_data % Crgplant ( arraysize ) ) +ALLOCATE ( casaflux_data % Nminfix ( arraysize ) ) +ALLOCATE ( casaflux_data % Nminuptake ( arraysize ) ) +ALLOCATE ( casaflux_data % Plabuptake ( arraysize ) ) +ALLOCATE ( casaflux_data % Clabloss ( arraysize ) ) +ALLOCATE ( casaflux_data % fracClabile ( arraysize ) ) +ALLOCATE ( casaflux_data % stemnpp ( arraysize ) ) +ALLOCATE ( casaflux_data % frac_sapwood ( arraysize ) ) +ALLOCATE ( casaflux_data % sapwood_area ( arraysize ) ) +ALLOCATE ( casaflux_data % Crsoil ( arraysize ) ) +ALLOCATE ( casaflux_data % Nmindep ( arraysize ) ) +ALLOCATE ( casaflux_data % Nminloss ( arraysize ) ) +ALLOCATE ( casaflux_data % Nminleach ( arraysize ) ) +ALLOCATE ( casaflux_data % Nupland ( arraysize ) ) +ALLOCATE ( casaflux_data % Nlittermin ( arraysize ) ) +ALLOCATE ( casaflux_data % Nsmin ( arraysize ) ) +ALLOCATE ( casaflux_data % Nsimm ( arraysize ) ) +ALLOCATE ( casaflux_data % Nsnet ( arraysize ) ) +ALLOCATE ( casaflux_data % fNminloss ( arraysize ) ) +ALLOCATE ( casaflux_data % fNminleach ( arraysize ) ) +ALLOCATE ( casaflux_data % Pdep ( arraysize ) ) +ALLOCATE ( casaflux_data % Pwea ( arraysize ) ) +ALLOCATE ( casaflux_data % Pleach ( arraysize ) ) +ALLOCATE ( casaflux_data % Ploss ( arraysize ) ) +ALLOCATE ( casaflux_data % Pupland ( arraysize ) ) +ALLOCATE ( casaflux_data % Plittermin ( arraysize ) ) +ALLOCATE ( casaflux_data % Psmin ( arraysize ) ) +ALLOCATE ( casaflux_data % Psimm ( arraysize ) ) +ALLOCATE ( casaflux_data % Psnet ( arraysize ) ) +ALLOCATE ( casaflux_data % fPleach ( arraysize ) ) +ALLOCATE ( casaflux_data % kplab ( arraysize ) ) +ALLOCATE ( casaflux_data % kpsorb ( arraysize ) ) +ALLOCATE ( casaflux_data % kpocc ( arraysize ) ) +ALLOCATE ( casaflux_data % kmlabp ( arraysize ) ) +ALLOCATE ( casaflux_data % Psorbmax ( arraysize ) ) +ALLOCATE ( casaflux_data % Cnep ( arraysize ) ) +ALLOCATE ( casaflux_data % FluxCtoCO2 ( arraysize ) ) +ALLOCATE ( casaflux_data % FluxCtohwp ( arraysize ) ) +ALLOCATE ( casaflux_data % FluxNtohwp ( arraysize ) ) +ALLOCATE ( casaflux_data % FluxPtohwp ( arraysize ) ) +ALLOCATE ( casaflux_data % FluxCtoclear ( arraysize ) ) +ALLOCATE ( casaflux_data % FluxNtoclear ( arraysize ) ) +ALLOCATE ( casaflux_data % FluxPtoclear ( arraysize ) ) +ALLOCATE ( casaflux_data % CtransferLUC ( arraysize ) ) +ALLOCATE ( casaflux_data % meangpp ( arraysize ) ) +ALLOCATE ( casaflux_data % meanrleaf ( arraysize ) ) + +ALLOCATE ( casaflux_data % fracCalloc ( arraysize, mplant ) ) +ALLOCATE ( casaflux_data % fracNalloc ( arraysize, mplant ) ) +ALLOCATE ( casaflux_data % fracPalloc ( arraysize, mplant ) ) +ALLOCATE ( casaflux_data % Crmplant ( arraysize, mplant ) ) +ALLOCATE ( casaflux_data % kplant ( arraysize, mplant ) ) +ALLOCATE ( casaflux_data % klitter ( arraysize, mlitter ) ) +ALLOCATE ( casaflux_data % ksoil ( arraysize, msoil ) ) +ALLOCATE ( casaflux_data % fromLtoCO2 ( arraysize, mlitter ) ) +ALLOCATE ( casaflux_data % fromStoCO2 ( arraysize, msoil ) ) +ALLOCATE ( casaflux_data % FluxCtolitter ( arraysize, mlitter ) ) +ALLOCATE ( casaflux_data % FluxNtolitter ( arraysize, mlitter ) ) +ALLOCATE ( casaflux_data % FluxPtolitter ( arraysize, mlitter ) ) +ALLOCATE ( casaflux_data % FluxCtosoil ( arraysize, msoil ) ) +ALLOCATE ( casaflux_data % FluxNtosoil ( arraysize, msoil ) ) +ALLOCATE ( casaflux_data % FluxPtosoil ( arraysize, msoil ) ) +ALLOCATE ( casaflux_data % fromPtoL ( arraysize, mlitter, mplant ) ) +ALLOCATE ( casaflux_data % fromLtoS ( arraysize, msoil, mlitter ) ) +ALLOCATE ( casaflux_data % fromStoS ( arraysize, msoil, msoil ) ) + +ALLOCATE ( casaflux_data % Cplant_turnover ( arraysize, mplant ) ) +ALLOCATE ( casaflux_data % Cplant_turnover_disturbance ( arraysize ) ) +ALLOCATE ( casaflux_data % Cplant_turnover_crowding ( arraysize ) ) +ALLOCATE ( casaflux_data % Cplant_turnover_resource_limitation( arraysize ) ) + +END SUBROUTINE alloc_casa_flux_data_type + +SUBROUTINE zero_casa_flux_data_type( casaflux_data ) + +IMPLICIT NONE + +TYPE (casa_flux_data_type), INTENT(INOUT) :: casaflux_data + +casaflux_data % Cgpp (:) = 0.0 +casaflux_data % Cnpp (:) = 0.0 +casaflux_data % Crp (:) = 0.0 +casaflux_data % Crgplant (:) = 0.0 +casaflux_data % Nminfix (:) = 0.0 +casaflux_data % Nminuptake (:) = 0.0 +casaflux_data % Plabuptake (:) = 0.0 +casaflux_data % Clabloss (:) = 0.0 +casaflux_data % fracClabile (:) = 0.0 +casaflux_data % stemnpp (:) = 0.0 +casaflux_data % frac_sapwood (:) = 0.0 +casaflux_data % sapwood_area (:) = 0.0 +casaflux_data % Crsoil (:) = 0.0 +casaflux_data % Nmindep (:) = 0.0 +casaflux_data % Nminloss (:) = 0.0 +casaflux_data % Nminleach (:) = 0.0 +casaflux_data % Nupland (:) = 0.0 +casaflux_data % Nlittermin (:) = 0.0 +casaflux_data % Nsmin (:) = 0.0 +casaflux_data % Nsimm (:) = 0.0 +casaflux_data % Nsnet (:) = 0.0 +casaflux_data % fNminloss (:) = 0.0 +casaflux_data % fNminleach (:) = 0.0 +casaflux_data % Pdep (:) = 0.0 +casaflux_data % Pwea (:) = 0.0 +casaflux_data % Pleach (:) = 0.0 +casaflux_data % Ploss (:) = 0.0 +casaflux_data % Pupland (:) = 0.0 +casaflux_data % Plittermin (:) = 0.0 +casaflux_data % Psmin (:) = 0.0 +casaflux_data % Psimm (:) = 0.0 +casaflux_data % Psnet (:) = 0.0 +casaflux_data % fPleach (:) = 0.0 +casaflux_data % kplab (:) = 0.0 +casaflux_data % kpsorb (:) = 0.0 +casaflux_data % kpocc (:) = 0.0 +casaflux_data % kmlabp (:) = 0.0 +casaflux_data % Psorbmax (:) = 0.0 +casaflux_data % Cnep (:) = 0.0 +casaflux_data % FluxCtoCO2 (:) = 0.0 +casaflux_data % FluxCtohwp (:) = 0.0 +casaflux_data % FluxNtohwp (:) = 0.0 +casaflux_data % FluxPtohwp (:) = 0.0 +casaflux_data % FluxCtoclear (:) = 0.0 +casaflux_data % FluxNtoclear (:) = 0.0 +casaflux_data % FluxPtoclear (:) = 0.0 +casaflux_data % CtransferLUC (:) = 0.0 +casaflux_data % meangpp (:) = 0.0 +casaflux_data % meanrleaf (:) = 0.0 +casaflux_data % fracCalloc (:,:) = 0.0 +casaflux_data % fracNalloc (:,:) = 0.0 +casaflux_data % fracPalloc (:,:) = 0.0 +casaflux_data % Crmplant (:,:) = 0.0 +casaflux_data % kplant (:,:) = 0.0 +casaflux_data % klitter (:,:) = 0.0 +casaflux_data % ksoil (:,:) = 0.0 +casaflux_data % fromLtoCO2 (:,:) = 0.0 +casaflux_data % fromStoCO2 (:,:) = 0.0 +casaflux_data % FluxCtolitter (:,:) = 0.0 +casaflux_data % FluxNtolitter (:,:) = 0.0 +casaflux_data % FluxPtolitter (:,:) = 0.0 +casaflux_data % FluxCtosoil (:,:) = 0.0 +casaflux_data % FluxNtosoil (:,:) = 0.0 +casaflux_data % FluxPtosoil (:,:) = 0.0 +casaflux_data % fromPtoL (:,:,:) = 0.0 +casaflux_data % fromLtoS (:,:,:) = 0.0 +casaflux_data % fromStoS (:,:,:) = 0.0 +casaflux_data % Cplant_turnover (:,:) = 0.0 +casaflux_data % Cplant_turnover_disturbance (:) = 0.0 +casaflux_data % Cplant_turnover_crowding (:) = 0.0 +casaflux_data % Cplant_turnover_resource_limitation (:) = 0.0 + +RETURN +END SUBROUTINE zero_casa_flux_data_type + +SUBROUTINE assoc_casa_flux_type( casaflux, casaflux_data ) + +IMPLICIT NONE + +TYPE (casa_flux_type), INTENT(INOUT) :: casaflux +TYPE (casa_flux_data_type), INTENT(INOUT), TARGET :: casaflux_data + +casaflux % Cgpp => casaflux_data % Cgpp +casaflux % Cnpp => casaflux_data % Cnpp +casaflux % Crp => casaflux_data % Crp +casaflux % Crgplant => casaflux_data % Crgplant +casaflux % Nminfix => casaflux_data % Nminfix +casaflux % Nminuptake => casaflux_data % Nminuptake +casaflux % Plabuptake => casaflux_data % Plabuptake +casaflux % Clabloss => casaflux_data % Clabloss +casaflux % fracClabile => casaflux_data % fracClabile +casaflux % stemnpp => casaflux_data % stemnpp +casaflux % frac_sapwood => casaflux_data % frac_sapwood +casaflux % sapwood_area => casaflux_data % sapwood_area +casaflux % Crsoil => casaflux_data % Crsoil +casaflux % Nmindep => casaflux_data % Nmindep +casaflux % Nminloss => casaflux_data % Nminloss +casaflux % Nminleach => casaflux_data % Nminleach +casaflux % Nupland => casaflux_data % Nupland +casaflux % Nlittermin => casaflux_data % Nlittermin +casaflux % Nsmin => casaflux_data % Nsmin +casaflux % Nsimm => casaflux_data % Nsimm +casaflux % Nsnet => casaflux_data % Nsnet +casaflux % fNminloss => casaflux_data % fNminloss +casaflux % fNminleach => casaflux_data % fNminleach +casaflux % Pdep => casaflux_data % Pdep +casaflux % Pwea => casaflux_data % Pwea +casaflux % Pleach => casaflux_data % Pleach +casaflux % Ploss => casaflux_data % Ploss +casaflux % Pupland => casaflux_data % Pupland +casaflux % Plittermin => casaflux_data % Plittermin +casaflux % Psmin => casaflux_data % Psmin +casaflux % Psimm => casaflux_data % Psimm +casaflux % Psnet => casaflux_data % Psnet +casaflux % fPleach => casaflux_data % fPleach +casaflux % kplab => casaflux_data % kplab +casaflux % kpsorb => casaflux_data % kpsorb +casaflux % kpocc => casaflux_data % kpocc +casaflux % kmlabp => casaflux_data % kmlabp +casaflux % Psorbmax => casaflux_data % Psorbmax +casaflux % Cnep => casaflux_data % Cnep +casaflux % FluxCtoCO2 => casaflux_data % FluxCtoCO2 +casaflux % FluxCtohwp => casaflux_data % FluxCtohwp +casaflux % FluxNtohwp => casaflux_data % FluxNtohwp +casaflux % FluxPtohwp => casaflux_data % FluxPtohwp +casaflux % FluxCtoclear => casaflux_data % FluxCtoclear +casaflux % FluxNtoclear => casaflux_data % FluxNtoclear +casaflux % FluxPtoclear => casaflux_data % FluxPtoclear +casaflux % CtransferLUC => casaflux_data % CtransferLUC +casaflux % meangpp => casaflux_data % meangpp +casaflux % meanrleaf => casaflux_data % meanrleaf + +casaflux % fracCalloc => casaflux_data % fracCalloc +casaflux % fracNalloc => casaflux_data % fracNalloc +casaflux % fracPalloc => casaflux_data % fracPalloc +casaflux % Crmplant => casaflux_data % Crmplant +casaflux % kplant => casaflux_data % kplant +casaflux % klitter => casaflux_data % klitter +casaflux % ksoil => casaflux_data % ksoil +casaflux % fromLtoCO2 => casaflux_data % fromLtoCO2 +casaflux % fromStoCO2 => casaflux_data % fromStoCO2 +casaflux % FluxCtolitter => casaflux_data % FluxCtolitter +casaflux % FluxNtolitter => casaflux_data % FluxNtolitter +casaflux % FluxPtolitter => casaflux_data % FluxPtolitter +casaflux % FluxCtosoil => casaflux_data % FluxCtosoil +casaflux % FluxNtosoil => casaflux_data % FluxNtosoil +casaflux % FluxPtosoil => casaflux_data % FluxPtosoil +casaflux % fromPtoL => casaflux_data % fromPtoL +casaflux % fromLtoS => casaflux_data % fromLtoS +casaflux % fromStoS => casaflux_data % fromStoS + +casaflux % Cplant_turnover => casaflux_data % Cplant_turnover +casaflux % Cplant_turnover_disturbance & + => casaflux_data % Cplant_turnover_disturbance +casaflux % Cplant_turnover_crowding & + => casaflux_data % Cplant_turnover_crowding +casaflux % Cplant_turnover_resource_limitation & + => casaflux_data % Cplant_turnover_resource_limitation + +END SUBROUTINE assoc_casa_flux_type + +END MODULE casa_flux_type_mod diff --git a/src/coupled/AM3/control/casa/types/casa_inout.F90 b/src/coupled/AM3/control/casa/types/casa_inout.F90 new file mode 100644 index 000000000..411904a0f --- /dev/null +++ b/src/coupled/AM3/control/casa/types/casa_inout.F90 @@ -0,0 +1,7732 @@ +#define UM_CBL YES +!============================================================================== +! This source code is part of the +! Australian Community Atmosphere Biosphere Land Exchange (CABLE) model. +! This work is licensed under the CSIRO Open Source Software License +! Agreement (variation of the BSD / MIT License). +! +! You may not use this file except in compliance with this License. +! A copy of the License (CSIRO_BSD_MIT_License_v2.0_CABLE.txt) is located +! in each directory containing CABLE code. +! +! ============================================================================== +! Purpose: Input and output code for CASA-CNP when run offline +! ACCESS version may use some of this code but split into different files? +! +! Contact: Yingping.Wang@csiro.au and Bernard.Pak@csiro.au +! +! History: Developed for offline code. Expect to re-write for MPI and ACCESS +! versions +! +! +! ============================================================================== +! casa_inout.f90 +! +! the following routines are used when "casacnp" is coupled to "cable" +! casa_readbiome +! casa_readphen +! casa_readpoint (removed, now done in parameter_module) +! casa_init +! casa_poolout +! casa_cnpflux (zeros casabal quantites on doy 1 and updates casabal at end of biogeochem) +! biogeochem + +MODULE casa_inout_module + +USE casa_files_type_mod, ONLY: casafile ! TYPE instance + +CONTAINS + + SUBROUTINE casa_readphen(veg,casamet,phen) + !SUBROUTINE casa_readphen(mvt,veg,casamet,phen) + ! read in the tabulated modis-derived leaf phenology data + ! for latitude bands of 79.75 to -55.25 + USE cable_def_types_mod + USE casadimension + USE casaparm + USE casavariable +USE phenology_type_mod, ONLY: phenology_type + +IMPLICIT NONE + + TYPE (veg_parameter_type), INTENT(IN) :: veg ! vegetation parameters + TYPE (casa_met), INTENT(IN) :: casamet +TYPE (phenology_type), INTENT(INOUT) :: phen + + ! local variables + INTEGER, PARAMETER :: nphen=8! was 10(IGBP). changed by Q.Zhang @01/12/2011 + INTEGER np,nx,ilat + INTEGER, DIMENSION(271,mvtype) :: greenup, fall, phendoy1 + INTEGER, DIMENSION(nphen) :: greenupx,fallx,xphendoy1 + INTEGER, DIMENSION(271,nphen) :: greenupxy,fallxy,xyphendoy1 + INTEGER, DIMENSION(nphen) :: ivtx + REAL(r_2), DIMENSION(271) :: xlat + + ! initilize for evergreen PFTs + greenup(:,:) = -50 + fall(:,:) = 367 + phendoy1(:,:)= 2 + + !jh!OPEN(101,file=casafile%phen) + !jh!READ(101,*) + !jh!READ(101,*) (ivtx(nx),nx=1,nphen) ! fixed at 10, as only 10 of 17 IGBP PFT + !jh!! have seasonal leaf phenology + !jh!DO ilat=271,1,-1 + !jh! READ(101,*) xlat(ilat),(greenupx(nx),nx=1,nphen), & + !jh! (fallx(nx),nx=1,nphen),(xphendoy1(nx),nx=1,nphen) + !jh! DO nx=1,nphen + !jh! greenup(ilat,ivtx(nx)) = greenupx(nx) + !jh! fall(ilat,ivtx(nx)) = fallx(nx) + !jh! phendoy1(ilat,ivtx(nx))= xphendoy1(nx) + !jh! ENDDO + !jh!ENDDO + + ! xlat 79.7500000000000 +greenupxy ( 271, 1 ) = 167 +greenupxy ( 271, 2 ) = 156 +greenupxy ( 271, 3 ) = 184 +greenupxy ( 271, 4 ) = 184 +greenupxy ( 271, 5 ) = 184 +greenupxy ( 271, 6 ) = 184 +greenupxy ( 271, 7 ) = 145 +greenupxy ( 271, 8 ) = 145 +fallxy ( 271, 1 ) = 231 +fallxy ( 271, 2 ) = 231 +fallxy ( 271, 3 ) = 229 +fallxy ( 271, 4 ) = 229 +fallxy ( 271, 5 ) = 229 +fallxy ( 271, 6 ) = 229 +fallxy ( 271, 7 ) = 230 +fallxy ( 271, 8 ) = 230 +xyphendoy1 ( 271, 1 ) = 0 +xyphendoy1 ( 271, 2 ) = 0 +xyphendoy1 ( 271, 3 ) = 0 +xyphendoy1 ( 271, 4 ) = 0 +xyphendoy1 ( 271, 5 ) = 0 +xyphendoy1 ( 271, 6 ) = 0 +xyphendoy1 ( 271, 7 ) = 0 +xyphendoy1 ( 271, 8 ) = 0 + + ! xlat 79.2500000000000 +greenupxy ( 270, 1 ) = 167 +greenupxy ( 270, 2 ) = 156 +greenupxy ( 270, 3 ) = 184 +greenupxy ( 270, 4 ) = 184 +greenupxy ( 270, 5 ) = 184 +greenupxy ( 270, 6 ) = 184 +greenupxy ( 270, 7 ) = 145 +greenupxy ( 270, 8 ) = 145 +fallxy ( 270, 1 ) = 231 +fallxy ( 270, 2 ) = 231 +fallxy ( 270, 3 ) = 229 +fallxy ( 270, 4 ) = 229 +fallxy ( 270, 5 ) = 229 +fallxy ( 270, 6 ) = 229 +fallxy ( 270, 7 ) = 230 +fallxy ( 270, 8 ) = 230 +xyphendoy1 ( 270, 1 ) = 0 +xyphendoy1 ( 270, 2 ) = 0 +xyphendoy1 ( 270, 3 ) = 0 +xyphendoy1 ( 270, 4 ) = 0 +xyphendoy1 ( 270, 5 ) = 0 +xyphendoy1 ( 270, 6 ) = 0 +xyphendoy1 ( 270, 7 ) = 0 +xyphendoy1 ( 270, 8 ) = 0 + + ! xlat 78.7500000000000 +greenupxy ( 269, 1 ) = 167 +greenupxy ( 269, 2 ) = 156 +greenupxy ( 269, 3 ) = 184 +greenupxy ( 269, 4 ) = 184 +greenupxy ( 269, 5 ) = 184 +greenupxy ( 269, 6 ) = 184 +greenupxy ( 269, 7 ) = 145 +greenupxy ( 269, 8 ) = 145 +fallxy ( 269, 1 ) = 231 +fallxy ( 269, 2 ) = 231 +fallxy ( 269, 3 ) = 229 +fallxy ( 269, 4 ) = 229 +fallxy ( 269, 5 ) = 229 +fallxy ( 269, 6 ) = 229 +fallxy ( 269, 7 ) = 230 +fallxy ( 269, 8 ) = 230 +xyphendoy1 ( 269, 1 ) = 0 +xyphendoy1 ( 269, 2 ) = 0 +xyphendoy1 ( 269, 3 ) = 0 +xyphendoy1 ( 269, 4 ) = 0 +xyphendoy1 ( 269, 5 ) = 0 +xyphendoy1 ( 269, 6 ) = 0 +xyphendoy1 ( 269, 7 ) = 0 +xyphendoy1 ( 269, 8 ) = 0 + + ! xlat 78.2500000000000 +greenupxy ( 268, 1 ) = 167 +greenupxy ( 268, 2 ) = 156 +greenupxy ( 268, 3 ) = 184 +greenupxy ( 268, 4 ) = 184 +greenupxy ( 268, 5 ) = 184 +greenupxy ( 268, 6 ) = 184 +greenupxy ( 268, 7 ) = 145 +greenupxy ( 268, 8 ) = 145 +fallxy ( 268, 1 ) = 231 +fallxy ( 268, 2 ) = 231 +fallxy ( 268, 3 ) = 229 +fallxy ( 268, 4 ) = 229 +fallxy ( 268, 5 ) = 229 +fallxy ( 268, 6 ) = 229 +fallxy ( 268, 7 ) = 230 +fallxy ( 268, 8 ) = 230 +xyphendoy1 ( 268, 1 ) = 0 +xyphendoy1 ( 268, 2 ) = 0 +xyphendoy1 ( 268, 3 ) = 0 +xyphendoy1 ( 268, 4 ) = 0 +xyphendoy1 ( 268, 5 ) = 0 +xyphendoy1 ( 268, 6 ) = 0 +xyphendoy1 ( 268, 7 ) = 0 +xyphendoy1 ( 268, 8 ) = 0 + + ! xlat 77.7500000000000 +greenupxy ( 267, 1 ) = 167 +greenupxy ( 267, 2 ) = 156 +greenupxy ( 267, 3 ) = 184 +greenupxy ( 267, 4 ) = 184 +greenupxy ( 267, 5 ) = 184 +greenupxy ( 267, 6 ) = 184 +greenupxy ( 267, 7 ) = 145 +greenupxy ( 267, 8 ) = 145 +fallxy ( 267, 1 ) = 231 +fallxy ( 267, 2 ) = 231 +fallxy ( 267, 3 ) = 229 +fallxy ( 267, 4 ) = 229 +fallxy ( 267, 5 ) = 229 +fallxy ( 267, 6 ) = 229 +fallxy ( 267, 7 ) = 230 +fallxy ( 267, 8 ) = 230 +xyphendoy1 ( 267, 1 ) = 0 +xyphendoy1 ( 267, 2 ) = 0 +xyphendoy1 ( 267, 3 ) = 0 +xyphendoy1 ( 267, 4 ) = 0 +xyphendoy1 ( 267, 5 ) = 0 +xyphendoy1 ( 267, 6 ) = 0 +xyphendoy1 ( 267, 7 ) = 0 +xyphendoy1 ( 267, 8 ) = 0 + + ! xlat 77.2500000000000 +greenupxy ( 266, 1 ) = 167 +greenupxy ( 266, 2 ) = 156 +greenupxy ( 266, 3 ) = 184 +greenupxy ( 266, 4 ) = 184 +greenupxy ( 266, 5 ) = 184 +greenupxy ( 266, 6 ) = 184 +greenupxy ( 266, 7 ) = 145 +greenupxy ( 266, 8 ) = 145 +fallxy ( 266, 1 ) = 231 +fallxy ( 266, 2 ) = 231 +fallxy ( 266, 3 ) = 229 +fallxy ( 266, 4 ) = 229 +fallxy ( 266, 5 ) = 229 +fallxy ( 266, 6 ) = 229 +fallxy ( 266, 7 ) = 230 +fallxy ( 266, 8 ) = 230 +xyphendoy1 ( 266, 1 ) = 0 +xyphendoy1 ( 266, 2 ) = 0 +xyphendoy1 ( 266, 3 ) = 0 +xyphendoy1 ( 266, 4 ) = 0 +xyphendoy1 ( 266, 5 ) = 0 +xyphendoy1 ( 266, 6 ) = 0 +xyphendoy1 ( 266, 7 ) = 0 +xyphendoy1 ( 266, 8 ) = 0 + + ! xlat 76.7500000000000 +greenupxy ( 265, 1 ) = 167 +greenupxy ( 265, 2 ) = 156 +greenupxy ( 265, 3 ) = 184 +greenupxy ( 265, 4 ) = 184 +greenupxy ( 265, 5 ) = 184 +greenupxy ( 265, 6 ) = 184 +greenupxy ( 265, 7 ) = 145 +greenupxy ( 265, 8 ) = 145 +fallxy ( 265, 1 ) = 231 +fallxy ( 265, 2 ) = 231 +fallxy ( 265, 3 ) = 229 +fallxy ( 265, 4 ) = 230 +fallxy ( 265, 5 ) = 230 +fallxy ( 265, 6 ) = 230 +fallxy ( 265, 7 ) = 230 +fallxy ( 265, 8 ) = 230 +xyphendoy1 ( 265, 1 ) = 0 +xyphendoy1 ( 265, 2 ) = 0 +xyphendoy1 ( 265, 3 ) = 0 +xyphendoy1 ( 265, 4 ) = 0 +xyphendoy1 ( 265, 5 ) = 0 +xyphendoy1 ( 265, 6 ) = 0 +xyphendoy1 ( 265, 7 ) = 0 +xyphendoy1 ( 265, 8 ) = 0 + + ! xlat 76.2500000000000 +greenupxy ( 264, 1 ) = 167 +greenupxy ( 264, 2 ) = 156 +greenupxy ( 264, 3 ) = 184 +greenupxy ( 264, 4 ) = 184 +greenupxy ( 264, 5 ) = 184 +greenupxy ( 264, 6 ) = 184 +greenupxy ( 264, 7 ) = 145 +greenupxy ( 264, 8 ) = 145 +fallxy ( 264, 1 ) = 231 +fallxy ( 264, 2 ) = 231 +fallxy ( 264, 3 ) = 230 +fallxy ( 264, 4 ) = 230 +fallxy ( 264, 5 ) = 230 +fallxy ( 264, 6 ) = 230 +fallxy ( 264, 7 ) = 230 +fallxy ( 264, 8 ) = 230 +xyphendoy1 ( 264, 1 ) = 0 +xyphendoy1 ( 264, 2 ) = 0 +xyphendoy1 ( 264, 3 ) = 0 +xyphendoy1 ( 264, 4 ) = 0 +xyphendoy1 ( 264, 5 ) = 0 +xyphendoy1 ( 264, 6 ) = 0 +xyphendoy1 ( 264, 7 ) = 0 +xyphendoy1 ( 264, 8 ) = 0 + + ! xlat 75.7500000000000 +greenupxy ( 263, 1 ) = 167 +greenupxy ( 263, 2 ) = 156 +greenupxy ( 263, 3 ) = 184 +greenupxy ( 263, 4 ) = 184 +greenupxy ( 263, 5 ) = 184 +greenupxy ( 263, 6 ) = 184 +greenupxy ( 263, 7 ) = 145 +greenupxy ( 263, 8 ) = 145 +fallxy ( 263, 1 ) = 231 +fallxy ( 263, 2 ) = 231 +fallxy ( 263, 3 ) = 230 +fallxy ( 263, 4 ) = 231 +fallxy ( 263, 5 ) = 231 +fallxy ( 263, 6 ) = 231 +fallxy ( 263, 7 ) = 230 +fallxy ( 263, 8 ) = 230 +xyphendoy1 ( 263, 1 ) = 0 +xyphendoy1 ( 263, 2 ) = 0 +xyphendoy1 ( 263, 3 ) = 0 +xyphendoy1 ( 263, 4 ) = 0 +xyphendoy1 ( 263, 5 ) = 0 +xyphendoy1 ( 263, 6 ) = 0 +xyphendoy1 ( 263, 7 ) = 0 +xyphendoy1 ( 263, 8 ) = 0 + + ! xlat 75.2500000000000 +greenupxy ( 262, 1 ) = 167 +greenupxy ( 262, 2 ) = 156 +greenupxy ( 262, 3 ) = 185 +greenupxy ( 262, 4 ) = 185 +greenupxy ( 262, 5 ) = 185 +greenupxy ( 262, 6 ) = 185 +greenupxy ( 262, 7 ) = 145 +greenupxy ( 262, 8 ) = 145 +fallxy ( 262, 1 ) = 231 +fallxy ( 262, 2 ) = 231 +fallxy ( 262, 3 ) = 231 +fallxy ( 262, 4 ) = 232 +fallxy ( 262, 5 ) = 232 +fallxy ( 262, 6 ) = 232 +fallxy ( 262, 7 ) = 230 +fallxy ( 262, 8 ) = 230 +xyphendoy1 ( 262, 1 ) = 0 +xyphendoy1 ( 262, 2 ) = 0 +xyphendoy1 ( 262, 3 ) = 0 +xyphendoy1 ( 262, 4 ) = 0 +xyphendoy1 ( 262, 5 ) = 0 +xyphendoy1 ( 262, 6 ) = 0 +xyphendoy1 ( 262, 7 ) = 0 +xyphendoy1 ( 262, 8 ) = 0 + + ! xlat 74.7500000000000 +greenupxy ( 261, 1 ) = 167 +greenupxy ( 261, 2 ) = 156 +greenupxy ( 261, 3 ) = 185 +greenupxy ( 261, 4 ) = 185 +greenupxy ( 261, 5 ) = 185 +greenupxy ( 261, 6 ) = 185 +greenupxy ( 261, 7 ) = 145 +greenupxy ( 261, 8 ) = 145 +fallxy ( 261, 1 ) = 231 +fallxy ( 261, 2 ) = 231 +fallxy ( 261, 3 ) = 231 +fallxy ( 261, 4 ) = 232 +fallxy ( 261, 5 ) = 232 +fallxy ( 261, 6 ) = 232 +fallxy ( 261, 7 ) = 230 +fallxy ( 261, 8 ) = 230 +xyphendoy1 ( 261, 1 ) = 0 +xyphendoy1 ( 261, 2 ) = 0 +xyphendoy1 ( 261, 3 ) = 0 +xyphendoy1 ( 261, 4 ) = 0 +xyphendoy1 ( 261, 5 ) = 0 +xyphendoy1 ( 261, 6 ) = 0 +xyphendoy1 ( 261, 7 ) = 0 +xyphendoy1 ( 261, 8 ) = 0 + + ! xlat 74.2500000000000 +greenupxy ( 260, 1 ) = 167 +greenupxy ( 260, 2 ) = 156 +greenupxy ( 260, 3 ) = 185 +greenupxy ( 260, 4 ) = 184 +greenupxy ( 260, 5 ) = 184 +greenupxy ( 260, 6 ) = 184 +greenupxy ( 260, 7 ) = 145 +greenupxy ( 260, 8 ) = 145 +fallxy ( 260, 1 ) = 231 +fallxy ( 260, 2 ) = 231 +fallxy ( 260, 3 ) = 232 +fallxy ( 260, 4 ) = 232 +fallxy ( 260, 5 ) = 232 +fallxy ( 260, 6 ) = 232 +fallxy ( 260, 7 ) = 230 +fallxy ( 260, 8 ) = 230 +xyphendoy1 ( 260, 1 ) = 0 +xyphendoy1 ( 260, 2 ) = 0 +xyphendoy1 ( 260, 3 ) = 0 +xyphendoy1 ( 260, 4 ) = 0 +xyphendoy1 ( 260, 5 ) = 0 +xyphendoy1 ( 260, 6 ) = 0 +xyphendoy1 ( 260, 7 ) = 0 +xyphendoy1 ( 260, 8 ) = 0 + + ! xlat 73.7500000000000 +greenupxy ( 259, 1 ) = 167 +greenupxy ( 259, 2 ) = 156 +greenupxy ( 259, 3 ) = 185 +greenupxy ( 259, 4 ) = 184 +greenupxy ( 259, 5 ) = 184 +greenupxy ( 259, 6 ) = 184 +greenupxy ( 259, 7 ) = 145 +greenupxy ( 259, 8 ) = 145 +fallxy ( 259, 1 ) = 231 +fallxy ( 259, 2 ) = 231 +fallxy ( 259, 3 ) = 233 +fallxy ( 259, 4 ) = 233 +fallxy ( 259, 5 ) = 233 +fallxy ( 259, 6 ) = 233 +fallxy ( 259, 7 ) = 230 +fallxy ( 259, 8 ) = 230 +xyphendoy1 ( 259, 1 ) = 0 +xyphendoy1 ( 259, 2 ) = 0 +xyphendoy1 ( 259, 3 ) = 0 +xyphendoy1 ( 259, 4 ) = 0 +xyphendoy1 ( 259, 5 ) = 0 +xyphendoy1 ( 259, 6 ) = 0 +xyphendoy1 ( 259, 7 ) = 0 +xyphendoy1 ( 259, 8 ) = 0 + + ! xlat 73.2500000000000 +greenupxy ( 258, 1 ) = 167 +greenupxy ( 258, 2 ) = 156 +greenupxy ( 258, 3 ) = 186 +greenupxy ( 258, 4 ) = 183 +greenupxy ( 258, 5 ) = 183 +greenupxy ( 258, 6 ) = 183 +greenupxy ( 258, 7 ) = 145 +greenupxy ( 258, 8 ) = 145 +fallxy ( 258, 1 ) = 231 +fallxy ( 258, 2 ) = 231 +fallxy ( 258, 3 ) = 232 +fallxy ( 258, 4 ) = 233 +fallxy ( 258, 5 ) = 233 +fallxy ( 258, 6 ) = 233 +fallxy ( 258, 7 ) = 230 +fallxy ( 258, 8 ) = 230 +xyphendoy1 ( 258, 1 ) = 0 +xyphendoy1 ( 258, 2 ) = 0 +xyphendoy1 ( 258, 3 ) = 0 +xyphendoy1 ( 258, 4 ) = 0 +xyphendoy1 ( 258, 5 ) = 0 +xyphendoy1 ( 258, 6 ) = 0 +xyphendoy1 ( 258, 7 ) = 0 +xyphendoy1 ( 258, 8 ) = 0 + + ! xlat 72.7500000000000 +greenupxy ( 257, 1 ) = 167 +greenupxy ( 257, 2 ) = 156 +greenupxy ( 257, 3 ) = 186 +greenupxy ( 257, 4 ) = 184 +greenupxy ( 257, 5 ) = 184 +greenupxy ( 257, 6 ) = 184 +greenupxy ( 257, 7 ) = 145 +greenupxy ( 257, 8 ) = 145 +fallxy ( 257, 1 ) = 231 +fallxy ( 257, 2 ) = 231 +fallxy ( 257, 3 ) = 233 +fallxy ( 257, 4 ) = 234 +fallxy ( 257, 5 ) = 234 +fallxy ( 257, 6 ) = 234 +fallxy ( 257, 7 ) = 230 +fallxy ( 257, 8 ) = 230 +xyphendoy1 ( 257, 1 ) = 0 +xyphendoy1 ( 257, 2 ) = 0 +xyphendoy1 ( 257, 3 ) = 0 +xyphendoy1 ( 257, 4 ) = 0 +xyphendoy1 ( 257, 5 ) = 0 +xyphendoy1 ( 257, 6 ) = 0 +xyphendoy1 ( 257, 7 ) = 0 +xyphendoy1 ( 257, 8 ) = 0 + + ! xlat 72.2500000000000 +greenupxy ( 256, 1 ) = 167 +greenupxy ( 256, 2 ) = 156 +greenupxy ( 256, 3 ) = 186 +greenupxy ( 256, 4 ) = 183 +greenupxy ( 256, 5 ) = 183 +greenupxy ( 256, 6 ) = 183 +greenupxy ( 256, 7 ) = 145 +greenupxy ( 256, 8 ) = 145 +fallxy ( 256, 1 ) = 231 +fallxy ( 256, 2 ) = 231 +fallxy ( 256, 3 ) = 234 +fallxy ( 256, 4 ) = 234 +fallxy ( 256, 5 ) = 234 +fallxy ( 256, 6 ) = 234 +fallxy ( 256, 7 ) = 230 +fallxy ( 256, 8 ) = 230 +xyphendoy1 ( 256, 1 ) = 0 +xyphendoy1 ( 256, 2 ) = 0 +xyphendoy1 ( 256, 3 ) = 0 +xyphendoy1 ( 256, 4 ) = 0 +xyphendoy1 ( 256, 5 ) = 0 +xyphendoy1 ( 256, 6 ) = 0 +xyphendoy1 ( 256, 7 ) = 0 +xyphendoy1 ( 256, 8 ) = 0 + + ! xlat 71.7500000000000 +greenupxy ( 255, 1 ) = 167 +greenupxy ( 255, 2 ) = 156 +greenupxy ( 255, 3 ) = 185 +greenupxy ( 255, 4 ) = 183 +greenupxy ( 255, 5 ) = 183 +greenupxy ( 255, 6 ) = 183 +greenupxy ( 255, 7 ) = 145 +greenupxy ( 255, 8 ) = 145 +fallxy ( 255, 1 ) = 231 +fallxy ( 255, 2 ) = 231 +fallxy ( 255, 3 ) = 234 +fallxy ( 255, 4 ) = 234 +fallxy ( 255, 5 ) = 234 +fallxy ( 255, 6 ) = 234 +fallxy ( 255, 7 ) = 230 +fallxy ( 255, 8 ) = 230 +xyphendoy1 ( 255, 1 ) = 0 +xyphendoy1 ( 255, 2 ) = 0 +xyphendoy1 ( 255, 3 ) = 0 +xyphendoy1 ( 255, 4 ) = 0 +xyphendoy1 ( 255, 5 ) = 0 +xyphendoy1 ( 255, 6 ) = 0 +xyphendoy1 ( 255, 7 ) = 0 +xyphendoy1 ( 255, 8 ) = 0 + + ! xlat 71.2500000000000 +greenupxy ( 254, 1 ) = 167 +greenupxy ( 254, 2 ) = 156 +greenupxy ( 254, 3 ) = 184 +greenupxy ( 254, 4 ) = 182 +greenupxy ( 254, 5 ) = 182 +greenupxy ( 254, 6 ) = 182 +greenupxy ( 254, 7 ) = 145 +greenupxy ( 254, 8 ) = 145 +fallxy ( 254, 1 ) = 231 +fallxy ( 254, 2 ) = 231 +fallxy ( 254, 3 ) = 234 +fallxy ( 254, 4 ) = 234 +fallxy ( 254, 5 ) = 234 +fallxy ( 254, 6 ) = 234 +fallxy ( 254, 7 ) = 230 +fallxy ( 254, 8 ) = 230 +xyphendoy1 ( 254, 1 ) = 0 +xyphendoy1 ( 254, 2 ) = 0 +xyphendoy1 ( 254, 3 ) = 0 +xyphendoy1 ( 254, 4 ) = 0 +xyphendoy1 ( 254, 5 ) = 0 +xyphendoy1 ( 254, 6 ) = 0 +xyphendoy1 ( 254, 7 ) = 0 +xyphendoy1 ( 254, 8 ) = 0 + + ! xlat 70.7500000000000 +greenupxy ( 253, 1 ) = 167 +greenupxy ( 253, 2 ) = 156 +greenupxy ( 253, 3 ) = 183 +greenupxy ( 253, 4 ) = 181 +greenupxy ( 253, 5 ) = 181 +greenupxy ( 253, 6 ) = 181 +greenupxy ( 253, 7 ) = 145 +greenupxy ( 253, 8 ) = 145 +fallxy ( 253, 1 ) = 231 +fallxy ( 253, 2 ) = 231 +fallxy ( 253, 3 ) = 234 +fallxy ( 253, 4 ) = 233 +fallxy ( 253, 5 ) = 233 +fallxy ( 253, 6 ) = 233 +fallxy ( 253, 7 ) = 230 +fallxy ( 253, 8 ) = 230 +xyphendoy1 ( 253, 1 ) = 0 +xyphendoy1 ( 253, 2 ) = 0 +xyphendoy1 ( 253, 3 ) = 0 +xyphendoy1 ( 253, 4 ) = 0 +xyphendoy1 ( 253, 5 ) = 0 +xyphendoy1 ( 253, 6 ) = 0 +xyphendoy1 ( 253, 7 ) = 0 +xyphendoy1 ( 253, 8 ) = 0 + + ! xlat 70.2500000000000 +greenupxy ( 252, 1 ) = 167 +greenupxy ( 252, 2 ) = 156 +greenupxy ( 252, 3 ) = 182 +greenupxy ( 252, 4 ) = 180 +greenupxy ( 252, 5 ) = 180 +greenupxy ( 252, 6 ) = 180 +greenupxy ( 252, 7 ) = 145 +greenupxy ( 252, 8 ) = 145 +fallxy ( 252, 1 ) = 231 +fallxy ( 252, 2 ) = 231 +fallxy ( 252, 3 ) = 234 +fallxy ( 252, 4 ) = 234 +fallxy ( 252, 5 ) = 234 +fallxy ( 252, 6 ) = 234 +fallxy ( 252, 7 ) = 230 +fallxy ( 252, 8 ) = 230 +xyphendoy1 ( 252, 1 ) = 0 +xyphendoy1 ( 252, 2 ) = 0 +xyphendoy1 ( 252, 3 ) = 0 +xyphendoy1 ( 252, 4 ) = 0 +xyphendoy1 ( 252, 5 ) = 0 +xyphendoy1 ( 252, 6 ) = 0 +xyphendoy1 ( 252, 7 ) = 0 +xyphendoy1 ( 252, 8 ) = 0 + + ! xlat 69.7500000000000 +greenupxy ( 251, 1 ) = 167 +greenupxy ( 251, 2 ) = 156 +greenupxy ( 251, 3 ) = 181 +greenupxy ( 251, 4 ) = 178 +greenupxy ( 251, 5 ) = 178 +greenupxy ( 251, 6 ) = 178 +greenupxy ( 251, 7 ) = 145 +greenupxy ( 251, 8 ) = 145 +fallxy ( 251, 1 ) = 231 +fallxy ( 251, 2 ) = 231 +fallxy ( 251, 3 ) = 234 +fallxy ( 251, 4 ) = 234 +fallxy ( 251, 5 ) = 234 +fallxy ( 251, 6 ) = 234 +fallxy ( 251, 7 ) = 230 +fallxy ( 251, 8 ) = 230 +xyphendoy1 ( 251, 1 ) = 0 +xyphendoy1 ( 251, 2 ) = 0 +xyphendoy1 ( 251, 3 ) = 0 +xyphendoy1 ( 251, 4 ) = 0 +xyphendoy1 ( 251, 5 ) = 0 +xyphendoy1 ( 251, 6 ) = 0 +xyphendoy1 ( 251, 7 ) = 0 +xyphendoy1 ( 251, 8 ) = 0 + + ! xlat 69.2500000000000 +greenupxy ( 250, 1 ) = 167 +greenupxy ( 250, 2 ) = 156 +greenupxy ( 250, 3 ) = 179 +greenupxy ( 250, 4 ) = 177 +greenupxy ( 250, 5 ) = 177 +greenupxy ( 250, 6 ) = 177 +greenupxy ( 250, 7 ) = 145 +greenupxy ( 250, 8 ) = 145 +fallxy ( 250, 1 ) = 231 +fallxy ( 250, 2 ) = 231 +fallxy ( 250, 3 ) = 234 +fallxy ( 250, 4 ) = 234 +fallxy ( 250, 5 ) = 234 +fallxy ( 250, 6 ) = 234 +fallxy ( 250, 7 ) = 230 +fallxy ( 250, 8 ) = 230 +xyphendoy1 ( 250, 1 ) = 0 +xyphendoy1 ( 250, 2 ) = 0 +xyphendoy1 ( 250, 3 ) = 0 +xyphendoy1 ( 250, 4 ) = 0 +xyphendoy1 ( 250, 5 ) = 0 +xyphendoy1 ( 250, 6 ) = 0 +xyphendoy1 ( 250, 7 ) = 0 +xyphendoy1 ( 250, 8 ) = 0 + + ! xlat 68.7500000000000 +greenupxy ( 249, 1 ) = 167 +greenupxy ( 249, 2 ) = 156 +greenupxy ( 249, 3 ) = 177 +greenupxy ( 249, 4 ) = 176 +greenupxy ( 249, 5 ) = 176 +greenupxy ( 249, 6 ) = 176 +greenupxy ( 249, 7 ) = 145 +greenupxy ( 249, 8 ) = 145 +fallxy ( 249, 1 ) = 231 +fallxy ( 249, 2 ) = 231 +fallxy ( 249, 3 ) = 234 +fallxy ( 249, 4 ) = 233 +fallxy ( 249, 5 ) = 233 +fallxy ( 249, 6 ) = 233 +fallxy ( 249, 7 ) = 230 +fallxy ( 249, 8 ) = 230 +xyphendoy1 ( 249, 1 ) = 0 +xyphendoy1 ( 249, 2 ) = 0 +xyphendoy1 ( 249, 3 ) = 0 +xyphendoy1 ( 249, 4 ) = 0 +xyphendoy1 ( 249, 5 ) = 0 +xyphendoy1 ( 249, 6 ) = 0 +xyphendoy1 ( 249, 7 ) = 0 +xyphendoy1 ( 249, 8 ) = 0 + + ! xlat 68.2500000000000 +greenupxy ( 248, 1 ) = 167 +greenupxy ( 248, 2 ) = 156 +greenupxy ( 248, 3 ) = 176 +greenupxy ( 248, 4 ) = 174 +greenupxy ( 248, 5 ) = 174 +greenupxy ( 248, 6 ) = 174 +greenupxy ( 248, 7 ) = 145 +greenupxy ( 248, 8 ) = 145 +fallxy ( 248, 1 ) = 231 +fallxy ( 248, 2 ) = 231 +fallxy ( 248, 3 ) = 233 +fallxy ( 248, 4 ) = 233 +fallxy ( 248, 5 ) = 233 +fallxy ( 248, 6 ) = 233 +fallxy ( 248, 7 ) = 230 +fallxy ( 248, 8 ) = 230 +xyphendoy1 ( 248, 1 ) = 0 +xyphendoy1 ( 248, 2 ) = 0 +xyphendoy1 ( 248, 3 ) = 0 +xyphendoy1 ( 248, 4 ) = 0 +xyphendoy1 ( 248, 5 ) = 0 +xyphendoy1 ( 248, 6 ) = 0 +xyphendoy1 ( 248, 7 ) = 0 +xyphendoy1 ( 248, 8 ) = 0 + + ! xlat 67.7500000000000 +greenupxy ( 247, 1 ) = 167 +greenupxy ( 247, 2 ) = 156 +greenupxy ( 247, 3 ) = 175 +greenupxy ( 247, 4 ) = 173 +greenupxy ( 247, 5 ) = 173 +greenupxy ( 247, 6 ) = 173 +greenupxy ( 247, 7 ) = 145 +greenupxy ( 247, 8 ) = 145 +fallxy ( 247, 1 ) = 231 +fallxy ( 247, 2 ) = 231 +fallxy ( 247, 3 ) = 233 +fallxy ( 247, 4 ) = 233 +fallxy ( 247, 5 ) = 233 +fallxy ( 247, 6 ) = 233 +fallxy ( 247, 7 ) = 230 +fallxy ( 247, 8 ) = 230 +xyphendoy1 ( 247, 1 ) = 0 +xyphendoy1 ( 247, 2 ) = 0 +xyphendoy1 ( 247, 3 ) = 0 +xyphendoy1 ( 247, 4 ) = 0 +xyphendoy1 ( 247, 5 ) = 0 +xyphendoy1 ( 247, 6 ) = 0 +xyphendoy1 ( 247, 7 ) = 0 +xyphendoy1 ( 247, 8 ) = 0 + + ! xlat 67.2500000000000 +greenupxy ( 246, 1 ) = 167 +greenupxy ( 246, 2 ) = 156 +greenupxy ( 246, 3 ) = 173 +greenupxy ( 246, 4 ) = 171 +greenupxy ( 246, 5 ) = 171 +greenupxy ( 246, 6 ) = 171 +greenupxy ( 246, 7 ) = 145 +greenupxy ( 246, 8 ) = 145 +fallxy ( 246, 1 ) = 231 +fallxy ( 246, 2 ) = 231 +fallxy ( 246, 3 ) = 233 +fallxy ( 246, 4 ) = 233 +fallxy ( 246, 5 ) = 233 +fallxy ( 246, 6 ) = 233 +fallxy ( 246, 7 ) = 230 +fallxy ( 246, 8 ) = 230 +xyphendoy1 ( 246, 1 ) = 0 +xyphendoy1 ( 246, 2 ) = 0 +xyphendoy1 ( 246, 3 ) = 0 +xyphendoy1 ( 246, 4 ) = 0 +xyphendoy1 ( 246, 5 ) = 0 +xyphendoy1 ( 246, 6 ) = 0 +xyphendoy1 ( 246, 7 ) = 0 +xyphendoy1 ( 246, 8 ) = 0 + + ! xlat 66.7500000000000 +greenupxy ( 245, 1 ) = 166 +greenupxy ( 245, 2 ) = 156 +greenupxy ( 245, 3 ) = 172 +greenupxy ( 245, 4 ) = 170 +greenupxy ( 245, 5 ) = 170 +greenupxy ( 245, 6 ) = 170 +greenupxy ( 245, 7 ) = 145 +greenupxy ( 245, 8 ) = 145 +fallxy ( 245, 1 ) = 231 +fallxy ( 245, 2 ) = 230 +fallxy ( 245, 3 ) = 233 +fallxy ( 245, 4 ) = 233 +fallxy ( 245, 5 ) = 233 +fallxy ( 245, 6 ) = 233 +fallxy ( 245, 7 ) = 230 +fallxy ( 245, 8 ) = 230 +xyphendoy1 ( 245, 1 ) = 0 +xyphendoy1 ( 245, 2 ) = 0 +xyphendoy1 ( 245, 3 ) = 0 +xyphendoy1 ( 245, 4 ) = 0 +xyphendoy1 ( 245, 5 ) = 0 +xyphendoy1 ( 245, 6 ) = 0 +xyphendoy1 ( 245, 7 ) = 0 +xyphendoy1 ( 245, 8 ) = 0 + + ! xlat 66.2500000000000 +greenupxy ( 244, 1 ) = 166 +greenupxy ( 244, 2 ) = 155 +greenupxy ( 244, 3 ) = 171 +greenupxy ( 244, 4 ) = 168 +greenupxy ( 244, 5 ) = 168 +greenupxy ( 244, 6 ) = 168 +greenupxy ( 244, 7 ) = 145 +greenupxy ( 244, 8 ) = 145 +fallxy ( 244, 1 ) = 231 +fallxy ( 244, 2 ) = 230 +fallxy ( 244, 3 ) = 233 +fallxy ( 244, 4 ) = 233 +fallxy ( 244, 5 ) = 233 +fallxy ( 244, 6 ) = 233 +fallxy ( 244, 7 ) = 230 +fallxy ( 244, 8 ) = 230 +xyphendoy1 ( 244, 1 ) = 0 +xyphendoy1 ( 244, 2 ) = 0 +xyphendoy1 ( 244, 3 ) = 0 +xyphendoy1 ( 244, 4 ) = 0 +xyphendoy1 ( 244, 5 ) = 0 +xyphendoy1 ( 244, 6 ) = 0 +xyphendoy1 ( 244, 7 ) = 0 +xyphendoy1 ( 244, 8 ) = 0 + + ! xlat 65.7500000000000 +greenupxy ( 243, 1 ) = 164 +greenupxy ( 243, 2 ) = 154 +greenupxy ( 243, 3 ) = 170 +greenupxy ( 243, 4 ) = 167 +greenupxy ( 243, 5 ) = 167 +greenupxy ( 243, 6 ) = 167 +greenupxy ( 243, 7 ) = 145 +greenupxy ( 243, 8 ) = 145 +fallxy ( 243, 1 ) = 231 +fallxy ( 243, 2 ) = 230 +fallxy ( 243, 3 ) = 233 +fallxy ( 243, 4 ) = 233 +fallxy ( 243, 5 ) = 233 +fallxy ( 243, 6 ) = 233 +fallxy ( 243, 7 ) = 230 +fallxy ( 243, 8 ) = 230 +xyphendoy1 ( 243, 1 ) = 0 +xyphendoy1 ( 243, 2 ) = 0 +xyphendoy1 ( 243, 3 ) = 0 +xyphendoy1 ( 243, 4 ) = 0 +xyphendoy1 ( 243, 5 ) = 0 +xyphendoy1 ( 243, 6 ) = 0 +xyphendoy1 ( 243, 7 ) = 0 +xyphendoy1 ( 243, 8 ) = 0 + + ! xlat 65.2500000000000 +greenupxy ( 242, 1 ) = 163 +greenupxy ( 242, 2 ) = 153 +greenupxy ( 242, 3 ) = 169 +greenupxy ( 242, 4 ) = 166 +greenupxy ( 242, 5 ) = 166 +greenupxy ( 242, 6 ) = 166 +greenupxy ( 242, 7 ) = 145 +greenupxy ( 242, 8 ) = 145 +fallxy ( 242, 1 ) = 231 +fallxy ( 242, 2 ) = 230 +fallxy ( 242, 3 ) = 233 +fallxy ( 242, 4 ) = 233 +fallxy ( 242, 5 ) = 233 +fallxy ( 242, 6 ) = 233 +fallxy ( 242, 7 ) = 230 +fallxy ( 242, 8 ) = 230 +xyphendoy1 ( 242, 1 ) = 0 +xyphendoy1 ( 242, 2 ) = 0 +xyphendoy1 ( 242, 3 ) = 0 +xyphendoy1 ( 242, 4 ) = 0 +xyphendoy1 ( 242, 5 ) = 0 +xyphendoy1 ( 242, 6 ) = 0 +xyphendoy1 ( 242, 7 ) = 0 +xyphendoy1 ( 242, 8 ) = 0 + + ! xlat 64.7500000000000 +greenupxy ( 241, 1 ) = 161 +greenupxy ( 241, 2 ) = 153 +greenupxy ( 241, 3 ) = 168 +greenupxy ( 241, 4 ) = 165 +greenupxy ( 241, 5 ) = 165 +greenupxy ( 241, 6 ) = 165 +greenupxy ( 241, 7 ) = 145 +greenupxy ( 241, 8 ) = 145 +fallxy ( 241, 1 ) = 231 +fallxy ( 241, 2 ) = 230 +fallxy ( 241, 3 ) = 233 +fallxy ( 241, 4 ) = 232 +fallxy ( 241, 5 ) = 232 +fallxy ( 241, 6 ) = 232 +fallxy ( 241, 7 ) = 230 +fallxy ( 241, 8 ) = 230 +xyphendoy1 ( 241, 1 ) = 0 +xyphendoy1 ( 241, 2 ) = 0 +xyphendoy1 ( 241, 3 ) = 0 +xyphendoy1 ( 241, 4 ) = 0 +xyphendoy1 ( 241, 5 ) = 0 +xyphendoy1 ( 241, 6 ) = 0 +xyphendoy1 ( 241, 7 ) = 0 +xyphendoy1 ( 241, 8 ) = 0 + + ! xlat 64.2500000000000 +greenupxy ( 240, 1 ) = 160 +greenupxy ( 240, 2 ) = 152 +greenupxy ( 240, 3 ) = 167 +greenupxy ( 240, 4 ) = 164 +greenupxy ( 240, 5 ) = 164 +greenupxy ( 240, 6 ) = 164 +greenupxy ( 240, 7 ) = 145 +greenupxy ( 240, 8 ) = 145 +fallxy ( 240, 1 ) = 231 +fallxy ( 240, 2 ) = 230 +fallxy ( 240, 3 ) = 233 +fallxy ( 240, 4 ) = 233 +fallxy ( 240, 5 ) = 233 +fallxy ( 240, 6 ) = 233 +fallxy ( 240, 7 ) = 230 +fallxy ( 240, 8 ) = 230 +xyphendoy1 ( 240, 1 ) = 0 +xyphendoy1 ( 240, 2 ) = 0 +xyphendoy1 ( 240, 3 ) = 0 +xyphendoy1 ( 240, 4 ) = 0 +xyphendoy1 ( 240, 5 ) = 0 +xyphendoy1 ( 240, 6 ) = 0 +xyphendoy1 ( 240, 7 ) = 0 +xyphendoy1 ( 240, 8 ) = 0 + + ! xlat 63.7500000000000 +greenupxy ( 239, 1 ) = 159 +greenupxy ( 239, 2 ) = 151 +greenupxy ( 239, 3 ) = 167 +greenupxy ( 239, 4 ) = 163 +greenupxy ( 239, 5 ) = 163 +greenupxy ( 239, 6 ) = 163 +greenupxy ( 239, 7 ) = 144 +greenupxy ( 239, 8 ) = 144 +fallxy ( 239, 1 ) = 231 +fallxy ( 239, 2 ) = 229 +fallxy ( 239, 3 ) = 233 +fallxy ( 239, 4 ) = 233 +fallxy ( 239, 5 ) = 233 +fallxy ( 239, 6 ) = 233 +fallxy ( 239, 7 ) = 229 +fallxy ( 239, 8 ) = 229 +xyphendoy1 ( 239, 1 ) = 0 +xyphendoy1 ( 239, 2 ) = 0 +xyphendoy1 ( 239, 3 ) = 0 +xyphendoy1 ( 239, 4 ) = 0 +xyphendoy1 ( 239, 5 ) = 0 +xyphendoy1 ( 239, 6 ) = 0 +xyphendoy1 ( 239, 7 ) = 0 +xyphendoy1 ( 239, 8 ) = 0 + + ! xlat 63.2500000000000 +greenupxy ( 238, 1 ) = 158 +greenupxy ( 238, 2 ) = 150 +greenupxy ( 238, 3 ) = 166 +greenupxy ( 238, 4 ) = 163 +greenupxy ( 238, 5 ) = 163 +greenupxy ( 238, 6 ) = 163 +greenupxy ( 238, 7 ) = 144 +greenupxy ( 238, 8 ) = 144 +fallxy ( 238, 1 ) = 232 +fallxy ( 238, 2 ) = 229 +fallxy ( 238, 3 ) = 233 +fallxy ( 238, 4 ) = 233 +fallxy ( 238, 5 ) = 233 +fallxy ( 238, 6 ) = 233 +fallxy ( 238, 7 ) = 227 +fallxy ( 238, 8 ) = 227 +xyphendoy1 ( 238, 1 ) = 0 +xyphendoy1 ( 238, 2 ) = 0 +xyphendoy1 ( 238, 3 ) = 0 +xyphendoy1 ( 238, 4 ) = 0 +xyphendoy1 ( 238, 5 ) = 0 +xyphendoy1 ( 238, 6 ) = 0 +xyphendoy1 ( 238, 7 ) = 0 +xyphendoy1 ( 238, 8 ) = 0 + + ! xlat 62.7500000000000 +greenupxy ( 237, 1 ) = 157 +greenupxy ( 237, 2 ) = 148 +greenupxy ( 237, 3 ) = 166 +greenupxy ( 237, 4 ) = 162 +greenupxy ( 237, 5 ) = 162 +greenupxy ( 237, 6 ) = 162 +greenupxy ( 237, 7 ) = 144 +greenupxy ( 237, 8 ) = 144 +fallxy ( 237, 1 ) = 232 +fallxy ( 237, 2 ) = 229 +fallxy ( 237, 3 ) = 233 +fallxy ( 237, 4 ) = 233 +fallxy ( 237, 5 ) = 233 +fallxy ( 237, 6 ) = 233 +fallxy ( 237, 7 ) = 227 +fallxy ( 237, 8 ) = 227 +xyphendoy1 ( 237, 1 ) = 0 +xyphendoy1 ( 237, 2 ) = 0 +xyphendoy1 ( 237, 3 ) = 0 +xyphendoy1 ( 237, 4 ) = 0 +xyphendoy1 ( 237, 5 ) = 0 +xyphendoy1 ( 237, 6 ) = 0 +xyphendoy1 ( 237, 7 ) = 0 +xyphendoy1 ( 237, 8 ) = 0 + + ! xlat 62.2500000000000 +greenupxy ( 236, 1 ) = 156 +greenupxy ( 236, 2 ) = 147 +greenupxy ( 236, 3 ) = 165 +greenupxy ( 236, 4 ) = 161 +greenupxy ( 236, 5 ) = 161 +greenupxy ( 236, 6 ) = 161 +greenupxy ( 236, 7 ) = 143 +greenupxy ( 236, 8 ) = 143 +fallxy ( 236, 1 ) = 232 +fallxy ( 236, 2 ) = 229 +fallxy ( 236, 3 ) = 234 +fallxy ( 236, 4 ) = 233 +fallxy ( 236, 5 ) = 233 +fallxy ( 236, 6 ) = 233 +fallxy ( 236, 7 ) = 226 +fallxy ( 236, 8 ) = 226 +xyphendoy1 ( 236, 1 ) = 0 +xyphendoy1 ( 236, 2 ) = 0 +xyphendoy1 ( 236, 3 ) = 0 +xyphendoy1 ( 236, 4 ) = 0 +xyphendoy1 ( 236, 5 ) = 0 +xyphendoy1 ( 236, 6 ) = 0 +xyphendoy1 ( 236, 7 ) = 0 +xyphendoy1 ( 236, 8 ) = 0 + + ! xlat 61.7500000000000 +greenupxy ( 235, 1 ) = 155 +greenupxy ( 235, 2 ) = 146 +greenupxy ( 235, 3 ) = 165 +greenupxy ( 235, 4 ) = 161 +greenupxy ( 235, 5 ) = 161 +greenupxy ( 235, 6 ) = 161 +greenupxy ( 235, 7 ) = 142 +greenupxy ( 235, 8 ) = 142 +fallxy ( 235, 1 ) = 232 +fallxy ( 235, 2 ) = 228 +fallxy ( 235, 3 ) = 234 +fallxy ( 235, 4 ) = 233 +fallxy ( 235, 5 ) = 233 +fallxy ( 235, 6 ) = 233 +fallxy ( 235, 7 ) = 224 +fallxy ( 235, 8 ) = 224 +xyphendoy1 ( 235, 1 ) = 0 +xyphendoy1 ( 235, 2 ) = 0 +xyphendoy1 ( 235, 3 ) = 0 +xyphendoy1 ( 235, 4 ) = 0 +xyphendoy1 ( 235, 5 ) = 0 +xyphendoy1 ( 235, 6 ) = 0 +xyphendoy1 ( 235, 7 ) = 0 +xyphendoy1 ( 235, 8 ) = 0 + + ! xlat 61.2500000000000 +greenupxy ( 234, 1 ) = 155 +greenupxy ( 234, 2 ) = 145 +greenupxy ( 234, 3 ) = 165 +greenupxy ( 234, 4 ) = 160 +greenupxy ( 234, 5 ) = 160 +greenupxy ( 234, 6 ) = 160 +greenupxy ( 234, 7 ) = 141 +greenupxy ( 234, 8 ) = 141 +fallxy ( 234, 1 ) = 232 +fallxy ( 234, 2 ) = 228 +fallxy ( 234, 3 ) = 234 +fallxy ( 234, 4 ) = 233 +fallxy ( 234, 5 ) = 233 +fallxy ( 234, 6 ) = 233 +fallxy ( 234, 7 ) = 222 +fallxy ( 234, 8 ) = 222 +xyphendoy1 ( 234, 1 ) = 0 +xyphendoy1 ( 234, 2 ) = 0 +xyphendoy1 ( 234, 3 ) = 0 +xyphendoy1 ( 234, 4 ) = 0 +xyphendoy1 ( 234, 5 ) = 0 +xyphendoy1 ( 234, 6 ) = 0 +xyphendoy1 ( 234, 7 ) = 0 +xyphendoy1 ( 234, 8 ) = 0 + + ! xlat 60.7500000000000 +greenupxy ( 233, 1 ) = 154 +greenupxy ( 233, 2 ) = 144 +greenupxy ( 233, 3 ) = 165 +greenupxy ( 233, 4 ) = 159 +greenupxy ( 233, 5 ) = 159 +greenupxy ( 233, 6 ) = 159 +greenupxy ( 233, 7 ) = 140 +greenupxy ( 233, 8 ) = 140 +fallxy ( 233, 1 ) = 232 +fallxy ( 233, 2 ) = 227 +fallxy ( 233, 3 ) = 234 +fallxy ( 233, 4 ) = 232 +fallxy ( 233, 5 ) = 232 +fallxy ( 233, 6 ) = 232 +fallxy ( 233, 7 ) = 220 +fallxy ( 233, 8 ) = 220 +xyphendoy1 ( 233, 1 ) = 0 +xyphendoy1 ( 233, 2 ) = 0 +xyphendoy1 ( 233, 3 ) = 0 +xyphendoy1 ( 233, 4 ) = 0 +xyphendoy1 ( 233, 5 ) = 0 +xyphendoy1 ( 233, 6 ) = 0 +xyphendoy1 ( 233, 7 ) = 0 +xyphendoy1 ( 233, 8 ) = 0 + + ! xlat 60.2500000000000 +greenupxy ( 232, 1 ) = 153 +greenupxy ( 232, 2 ) = 144 +greenupxy ( 232, 3 ) = 165 +greenupxy ( 232, 4 ) = 159 +greenupxy ( 232, 5 ) = 159 +greenupxy ( 232, 6 ) = 159 +greenupxy ( 232, 7 ) = 139 +greenupxy ( 232, 8 ) = 139 +fallxy ( 232, 1 ) = 232 +fallxy ( 232, 2 ) = 226 +fallxy ( 232, 3 ) = 235 +fallxy ( 232, 4 ) = 232 +fallxy ( 232, 5 ) = 232 +fallxy ( 232, 6 ) = 232 +fallxy ( 232, 7 ) = 220 +fallxy ( 232, 8 ) = 220 +xyphendoy1 ( 232, 1 ) = 0 +xyphendoy1 ( 232, 2 ) = 0 +xyphendoy1 ( 232, 3 ) = 0 +xyphendoy1 ( 232, 4 ) = 0 +xyphendoy1 ( 232, 5 ) = 0 +xyphendoy1 ( 232, 6 ) = 0 +xyphendoy1 ( 232, 7 ) = 0 +xyphendoy1 ( 232, 8 ) = 0 + + ! xlat 59.7500000000000 +greenupxy ( 231, 1 ) = 153 +greenupxy ( 231, 2 ) = 143 +greenupxy ( 231, 3 ) = 165 +greenupxy ( 231, 4 ) = 158 +greenupxy ( 231, 5 ) = 158 +greenupxy ( 231, 6 ) = 158 +greenupxy ( 231, 7 ) = 138 +greenupxy ( 231, 8 ) = 138 +fallxy ( 231, 1 ) = 232 +fallxy ( 231, 2 ) = 226 +fallxy ( 231, 3 ) = 235 +fallxy ( 231, 4 ) = 232 +fallxy ( 231, 5 ) = 232 +fallxy ( 231, 6 ) = 232 +fallxy ( 231, 7 ) = 218 +fallxy ( 231, 8 ) = 218 +xyphendoy1 ( 231, 1 ) = 0 +xyphendoy1 ( 231, 2 ) = 0 +xyphendoy1 ( 231, 3 ) = 0 +xyphendoy1 ( 231, 4 ) = 0 +xyphendoy1 ( 231, 5 ) = 0 +xyphendoy1 ( 231, 6 ) = 0 +xyphendoy1 ( 231, 7 ) = 0 +xyphendoy1 ( 231, 8 ) = 0 + + ! xlat 59.2500000000000 +greenupxy ( 230, 1 ) = 152 +greenupxy ( 230, 2 ) = 143 +greenupxy ( 230, 3 ) = 165 +greenupxy ( 230, 4 ) = 157 +greenupxy ( 230, 5 ) = 157 +greenupxy ( 230, 6 ) = 157 +greenupxy ( 230, 7 ) = 138 +greenupxy ( 230, 8 ) = 138 +fallxy ( 230, 1 ) = 233 +fallxy ( 230, 2 ) = 226 +fallxy ( 230, 3 ) = 235 +fallxy ( 230, 4 ) = 232 +fallxy ( 230, 5 ) = 232 +fallxy ( 230, 6 ) = 232 +fallxy ( 230, 7 ) = 217 +fallxy ( 230, 8 ) = 217 +xyphendoy1 ( 230, 1 ) = 0 +xyphendoy1 ( 230, 2 ) = 0 +xyphendoy1 ( 230, 3 ) = 0 +xyphendoy1 ( 230, 4 ) = 0 +xyphendoy1 ( 230, 5 ) = 0 +xyphendoy1 ( 230, 6 ) = 0 +xyphendoy1 ( 230, 7 ) = 0 +xyphendoy1 ( 230, 8 ) = 0 + + ! xlat 58.7500000000000 +greenupxy ( 229, 1 ) = 151 +greenupxy ( 229, 2 ) = 143 +greenupxy ( 229, 3 ) = 165 +greenupxy ( 229, 4 ) = 156 +greenupxy ( 229, 5 ) = 156 +greenupxy ( 229, 6 ) = 156 +greenupxy ( 229, 7 ) = 138 +greenupxy ( 229, 8 ) = 138 +fallxy ( 229, 1 ) = 233 +fallxy ( 229, 2 ) = 226 +fallxy ( 229, 3 ) = 235 +fallxy ( 229, 4 ) = 232 +fallxy ( 229, 5 ) = 232 +fallxy ( 229, 6 ) = 232 +fallxy ( 229, 7 ) = 217 +fallxy ( 229, 8 ) = 217 +xyphendoy1 ( 229, 1 ) = 0 +xyphendoy1 ( 229, 2 ) = 0 +xyphendoy1 ( 229, 3 ) = 0 +xyphendoy1 ( 229, 4 ) = 0 +xyphendoy1 ( 229, 5 ) = 0 +xyphendoy1 ( 229, 6 ) = 0 +xyphendoy1 ( 229, 7 ) = 0 +xyphendoy1 ( 229, 8 ) = 0 + + ! xlat 58.2500000000000 +greenupxy ( 228, 1 ) = 151 +greenupxy ( 228, 2 ) = 142 +greenupxy ( 228, 3 ) = 164 +greenupxy ( 228, 4 ) = 156 +greenupxy ( 228, 5 ) = 156 +greenupxy ( 228, 6 ) = 156 +greenupxy ( 228, 7 ) = 137 +greenupxy ( 228, 8 ) = 137 +fallxy ( 228, 1 ) = 233 +fallxy ( 228, 2 ) = 225 +fallxy ( 228, 3 ) = 235 +fallxy ( 228, 4 ) = 232 +fallxy ( 228, 5 ) = 232 +fallxy ( 228, 6 ) = 232 +fallxy ( 228, 7 ) = 217 +fallxy ( 228, 8 ) = 217 +xyphendoy1 ( 228, 1 ) = 0 +xyphendoy1 ( 228, 2 ) = 0 +xyphendoy1 ( 228, 3 ) = 0 +xyphendoy1 ( 228, 4 ) = 0 +xyphendoy1 ( 228, 5 ) = 0 +xyphendoy1 ( 228, 6 ) = 0 +xyphendoy1 ( 228, 7 ) = 0 +xyphendoy1 ( 228, 8 ) = 0 + + ! xlat 57.7500000000000 +greenupxy ( 227, 1 ) = 150 +greenupxy ( 227, 2 ) = 141 +greenupxy ( 227, 3 ) = 164 +greenupxy ( 227, 4 ) = 155 +greenupxy ( 227, 5 ) = 155 +greenupxy ( 227, 6 ) = 155 +greenupxy ( 227, 7 ) = 136 +greenupxy ( 227, 8 ) = 136 +fallxy ( 227, 1 ) = 233 +fallxy ( 227, 2 ) = 225 +fallxy ( 227, 3 ) = 236 +fallxy ( 227, 4 ) = 231 +fallxy ( 227, 5 ) = 231 +fallxy ( 227, 6 ) = 231 +fallxy ( 227, 7 ) = 216 +fallxy ( 227, 8 ) = 216 +xyphendoy1 ( 227, 1 ) = 0 +xyphendoy1 ( 227, 2 ) = 0 +xyphendoy1 ( 227, 3 ) = 0 +xyphendoy1 ( 227, 4 ) = 0 +xyphendoy1 ( 227, 5 ) = 0 +xyphendoy1 ( 227, 6 ) = 0 +xyphendoy1 ( 227, 7 ) = 0 +xyphendoy1 ( 227, 8 ) = 0 + + ! xlat 57.2500000000000 +greenupxy ( 226, 1 ) = 149 +greenupxy ( 226, 2 ) = 140 +greenupxy ( 226, 3 ) = 164 +greenupxy ( 226, 4 ) = 154 +greenupxy ( 226, 5 ) = 154 +greenupxy ( 226, 6 ) = 154 +greenupxy ( 226, 7 ) = 135 +greenupxy ( 226, 8 ) = 135 +fallxy ( 226, 1 ) = 233 +fallxy ( 226, 2 ) = 225 +fallxy ( 226, 3 ) = 236 +fallxy ( 226, 4 ) = 231 +fallxy ( 226, 5 ) = 231 +fallxy ( 226, 6 ) = 231 +fallxy ( 226, 7 ) = 216 +fallxy ( 226, 8 ) = 216 +xyphendoy1 ( 226, 1 ) = 0 +xyphendoy1 ( 226, 2 ) = 0 +xyphendoy1 ( 226, 3 ) = 0 +xyphendoy1 ( 226, 4 ) = 0 +xyphendoy1 ( 226, 5 ) = 0 +xyphendoy1 ( 226, 6 ) = 0 +xyphendoy1 ( 226, 7 ) = 0 +xyphendoy1 ( 226, 8 ) = 0 + + ! xlat 56.7500000000000 +greenupxy ( 225, 1 ) = 149 +greenupxy ( 225, 2 ) = 139 +greenupxy ( 225, 3 ) = 164 +greenupxy ( 225, 4 ) = 153 +greenupxy ( 225, 5 ) = 153 +greenupxy ( 225, 6 ) = 153 +greenupxy ( 225, 7 ) = 134 +greenupxy ( 225, 8 ) = 134 +fallxy ( 225, 1 ) = 233 +fallxy ( 225, 2 ) = 225 +fallxy ( 225, 3 ) = 236 +fallxy ( 225, 4 ) = 231 +fallxy ( 225, 5 ) = 231 +fallxy ( 225, 6 ) = 231 +fallxy ( 225, 7 ) = 215 +fallxy ( 225, 8 ) = 215 +xyphendoy1 ( 225, 1 ) = 0 +xyphendoy1 ( 225, 2 ) = 0 +xyphendoy1 ( 225, 3 ) = 0 +xyphendoy1 ( 225, 4 ) = 0 +xyphendoy1 ( 225, 5 ) = 0 +xyphendoy1 ( 225, 6 ) = 0 +xyphendoy1 ( 225, 7 ) = 0 +xyphendoy1 ( 225, 8 ) = 0 + + ! xlat 56.2500000000000 +greenupxy ( 224, 1 ) = 148 +greenupxy ( 224, 2 ) = 137 +greenupxy ( 224, 3 ) = 163 +greenupxy ( 224, 4 ) = 152 +greenupxy ( 224, 5 ) = 152 +greenupxy ( 224, 6 ) = 152 +greenupxy ( 224, 7 ) = 133 +greenupxy ( 224, 8 ) = 133 +fallxy ( 224, 1 ) = 234 +fallxy ( 224, 2 ) = 225 +fallxy ( 224, 3 ) = 236 +fallxy ( 224, 4 ) = 230 +fallxy ( 224, 5 ) = 230 +fallxy ( 224, 6 ) = 230 +fallxy ( 224, 7 ) = 215 +fallxy ( 224, 8 ) = 215 +xyphendoy1 ( 224, 1 ) = 0 +xyphendoy1 ( 224, 2 ) = 0 +xyphendoy1 ( 224, 3 ) = 0 +xyphendoy1 ( 224, 4 ) = 0 +xyphendoy1 ( 224, 5 ) = 0 +xyphendoy1 ( 224, 6 ) = 0 +xyphendoy1 ( 224, 7 ) = 0 +xyphendoy1 ( 224, 8 ) = 0 + + ! xlat 55.7500000000000 +greenupxy ( 223, 1 ) = 147 +greenupxy ( 223, 2 ) = 136 +greenupxy ( 223, 3 ) = 163 +greenupxy ( 223, 4 ) = 150 +greenupxy ( 223, 5 ) = 150 +greenupxy ( 223, 6 ) = 150 +greenupxy ( 223, 7 ) = 132 +greenupxy ( 223, 8 ) = 132 +fallxy ( 223, 1 ) = 234 +fallxy ( 223, 2 ) = 224 +fallxy ( 223, 3 ) = 236 +fallxy ( 223, 4 ) = 229 +fallxy ( 223, 5 ) = 229 +fallxy ( 223, 6 ) = 229 +fallxy ( 223, 7 ) = 214 +fallxy ( 223, 8 ) = 214 +xyphendoy1 ( 223, 1 ) = 0 +xyphendoy1 ( 223, 2 ) = 0 +xyphendoy1 ( 223, 3 ) = 0 +xyphendoy1 ( 223, 4 ) = 0 +xyphendoy1 ( 223, 5 ) = 0 +xyphendoy1 ( 223, 6 ) = 0 +xyphendoy1 ( 223, 7 ) = 0 +xyphendoy1 ( 223, 8 ) = 0 + + ! xlat 55.2500000000000 +greenupxy ( 222, 1 ) = 147 +greenupxy ( 222, 2 ) = 134 +greenupxy ( 222, 3 ) = 162 +greenupxy ( 222, 4 ) = 149 +greenupxy ( 222, 5 ) = 149 +greenupxy ( 222, 6 ) = 149 +greenupxy ( 222, 7 ) = 132 +greenupxy ( 222, 8 ) = 132 +fallxy ( 222, 1 ) = 234 +fallxy ( 222, 2 ) = 224 +fallxy ( 222, 3 ) = 236 +fallxy ( 222, 4 ) = 228 +fallxy ( 222, 5 ) = 228 +fallxy ( 222, 6 ) = 228 +fallxy ( 222, 7 ) = 214 +fallxy ( 222, 8 ) = 214 +xyphendoy1 ( 222, 1 ) = 0 +xyphendoy1 ( 222, 2 ) = 0 +xyphendoy1 ( 222, 3 ) = 0 +xyphendoy1 ( 222, 4 ) = 0 +xyphendoy1 ( 222, 5 ) = 0 +xyphendoy1 ( 222, 6 ) = 0 +xyphendoy1 ( 222, 7 ) = 0 +xyphendoy1 ( 222, 8 ) = 0 + + ! xlat 54.7500000000000 +greenupxy ( 221, 1 ) = 146 +greenupxy ( 221, 2 ) = 133 +greenupxy ( 221, 3 ) = 161 +greenupxy ( 221, 4 ) = 147 +greenupxy ( 221, 5 ) = 147 +greenupxy ( 221, 6 ) = 147 +greenupxy ( 221, 7 ) = 131 +greenupxy ( 221, 8 ) = 131 +fallxy ( 221, 1 ) = 234 +fallxy ( 221, 2 ) = 223 +fallxy ( 221, 3 ) = 235 +fallxy ( 221, 4 ) = 227 +fallxy ( 221, 5 ) = 227 +fallxy ( 221, 6 ) = 227 +fallxy ( 221, 7 ) = 214 +fallxy ( 221, 8 ) = 214 +xyphendoy1 ( 221, 1 ) = 0 +xyphendoy1 ( 221, 2 ) = 0 +xyphendoy1 ( 221, 3 ) = 0 +xyphendoy1 ( 221, 4 ) = 0 +xyphendoy1 ( 221, 5 ) = 0 +xyphendoy1 ( 221, 6 ) = 0 +xyphendoy1 ( 221, 7 ) = 0 +xyphendoy1 ( 221, 8 ) = 0 + + ! xlat 54.2500000000000 +greenupxy ( 220, 1 ) = 146 +greenupxy ( 220, 2 ) = 132 +greenupxy ( 220, 3 ) = 161 +greenupxy ( 220, 4 ) = 145 +greenupxy ( 220, 5 ) = 145 +greenupxy ( 220, 6 ) = 145 +greenupxy ( 220, 7 ) = 130 +greenupxy ( 220, 8 ) = 130 +fallxy ( 220, 1 ) = 234 +fallxy ( 220, 2 ) = 223 +fallxy ( 220, 3 ) = 235 +fallxy ( 220, 4 ) = 225 +fallxy ( 220, 5 ) = 225 +fallxy ( 220, 6 ) = 225 +fallxy ( 220, 7 ) = 214 +fallxy ( 220, 8 ) = 214 +xyphendoy1 ( 220, 1 ) = 0 +xyphendoy1 ( 220, 2 ) = 0 +xyphendoy1 ( 220, 3 ) = 0 +xyphendoy1 ( 220, 4 ) = 0 +xyphendoy1 ( 220, 5 ) = 0 +xyphendoy1 ( 220, 6 ) = 0 +xyphendoy1 ( 220, 7 ) = 0 +xyphendoy1 ( 220, 8 ) = 0 + + ! xlat 53.7500000000000 +greenupxy ( 219, 1 ) = 145 +greenupxy ( 219, 2 ) = 130 +greenupxy ( 219, 3 ) = 160 +greenupxy ( 219, 4 ) = 143 +greenupxy ( 219, 5 ) = 143 +greenupxy ( 219, 6 ) = 143 +greenupxy ( 219, 7 ) = 129 +greenupxy ( 219, 8 ) = 129 +fallxy ( 219, 1 ) = 234 +fallxy ( 219, 2 ) = 222 +fallxy ( 219, 3 ) = 235 +fallxy ( 219, 4 ) = 224 +fallxy ( 219, 5 ) = 224 +fallxy ( 219, 6 ) = 224 +fallxy ( 219, 7 ) = 214 +fallxy ( 219, 8 ) = 214 +xyphendoy1 ( 219, 1 ) = 0 +xyphendoy1 ( 219, 2 ) = 0 +xyphendoy1 ( 219, 3 ) = 0 +xyphendoy1 ( 219, 4 ) = 0 +xyphendoy1 ( 219, 5 ) = 0 +xyphendoy1 ( 219, 6 ) = 0 +xyphendoy1 ( 219, 7 ) = 0 +xyphendoy1 ( 219, 8 ) = 0 + + ! xlat 53.2500000000000 +greenupxy ( 218, 1 ) = 144 +greenupxy ( 218, 2 ) = 129 +greenupxy ( 218, 3 ) = 158 +greenupxy ( 218, 4 ) = 141 +greenupxy ( 218, 5 ) = 141 +greenupxy ( 218, 6 ) = 141 +greenupxy ( 218, 7 ) = 128 +greenupxy ( 218, 8 ) = 128 +fallxy ( 218, 1 ) = 234 +fallxy ( 218, 2 ) = 222 +fallxy ( 218, 3 ) = 234 +fallxy ( 218, 4 ) = 222 +fallxy ( 218, 5 ) = 222 +fallxy ( 218, 6 ) = 222 +fallxy ( 218, 7 ) = 214 +fallxy ( 218, 8 ) = 214 +xyphendoy1 ( 218, 1 ) = 0 +xyphendoy1 ( 218, 2 ) = 0 +xyphendoy1 ( 218, 3 ) = 0 +xyphendoy1 ( 218, 4 ) = 0 +xyphendoy1 ( 218, 5 ) = 0 +xyphendoy1 ( 218, 6 ) = 0 +xyphendoy1 ( 218, 7 ) = 0 +xyphendoy1 ( 218, 8 ) = 0 + + ! xlat 52.7500000000000 +greenupxy ( 217, 1 ) = 144 +greenupxy ( 217, 2 ) = 127 +greenupxy ( 217, 3 ) = 157 +greenupxy ( 217, 4 ) = 139 +greenupxy ( 217, 5 ) = 139 +greenupxy ( 217, 6 ) = 139 +greenupxy ( 217, 7 ) = 127 +greenupxy ( 217, 8 ) = 127 +fallxy ( 217, 1 ) = 234 +fallxy ( 217, 2 ) = 221 +fallxy ( 217, 3 ) = 234 +fallxy ( 217, 4 ) = 221 +fallxy ( 217, 5 ) = 221 +fallxy ( 217, 6 ) = 221 +fallxy ( 217, 7 ) = 214 +fallxy ( 217, 8 ) = 214 +xyphendoy1 ( 217, 1 ) = 0 +xyphendoy1 ( 217, 2 ) = 0 +xyphendoy1 ( 217, 3 ) = 0 +xyphendoy1 ( 217, 4 ) = 0 +xyphendoy1 ( 217, 5 ) = 0 +xyphendoy1 ( 217, 6 ) = 0 +xyphendoy1 ( 217, 7 ) = 0 +xyphendoy1 ( 217, 8 ) = 0 + + ! xlat 52.2500000000000 +greenupxy ( 216, 1 ) = 143 +greenupxy ( 216, 2 ) = 126 +greenupxy ( 216, 3 ) = 155 +greenupxy ( 216, 4 ) = 137 +greenupxy ( 216, 5 ) = 137 +greenupxy ( 216, 6 ) = 137 +greenupxy ( 216, 7 ) = 126 +greenupxy ( 216, 8 ) = 126 +fallxy ( 216, 1 ) = 234 +fallxy ( 216, 2 ) = 221 +fallxy ( 216, 3 ) = 233 +fallxy ( 216, 4 ) = 219 +fallxy ( 216, 5 ) = 219 +fallxy ( 216, 6 ) = 219 +fallxy ( 216, 7 ) = 214 +fallxy ( 216, 8 ) = 214 +xyphendoy1 ( 216, 1 ) = 0 +xyphendoy1 ( 216, 2 ) = 0 +xyphendoy1 ( 216, 3 ) = 0 +xyphendoy1 ( 216, 4 ) = 0 +xyphendoy1 ( 216, 5 ) = 0 +xyphendoy1 ( 216, 6 ) = 0 +xyphendoy1 ( 216, 7 ) = 0 +xyphendoy1 ( 216, 8 ) = 0 + + ! xlat 51.7500000000000 +greenupxy ( 215, 1 ) = 142 +greenupxy ( 215, 2 ) = 124 +greenupxy ( 215, 3 ) = 153 +greenupxy ( 215, 4 ) = 135 +greenupxy ( 215, 5 ) = 135 +greenupxy ( 215, 6 ) = 135 +greenupxy ( 215, 7 ) = 125 +greenupxy ( 215, 8 ) = 125 +fallxy ( 215, 1 ) = 234 +fallxy ( 215, 2 ) = 221 +fallxy ( 215, 3 ) = 233 +fallxy ( 215, 4 ) = 218 +fallxy ( 215, 5 ) = 218 +fallxy ( 215, 6 ) = 218 +fallxy ( 215, 7 ) = 214 +fallxy ( 215, 8 ) = 214 +xyphendoy1 ( 215, 1 ) = 0 +xyphendoy1 ( 215, 2 ) = 0 +xyphendoy1 ( 215, 3 ) = 0 +xyphendoy1 ( 215, 4 ) = 0 +xyphendoy1 ( 215, 5 ) = 0 +xyphendoy1 ( 215, 6 ) = 0 +xyphendoy1 ( 215, 7 ) = 0 +xyphendoy1 ( 215, 8 ) = 0 + + ! xlat 51.2500000000000 +greenupxy ( 214, 1 ) = 142 +greenupxy ( 214, 2 ) = 123 +greenupxy ( 214, 3 ) = 151 +greenupxy ( 214, 4 ) = 133 +greenupxy ( 214, 5 ) = 133 +greenupxy ( 214, 6 ) = 133 +greenupxy ( 214, 7 ) = 124 +greenupxy ( 214, 8 ) = 124 +fallxy ( 214, 1 ) = 234 +fallxy ( 214, 2 ) = 221 +fallxy ( 214, 3 ) = 232 +fallxy ( 214, 4 ) = 217 +fallxy ( 214, 5 ) = 217 +fallxy ( 214, 6 ) = 217 +fallxy ( 214, 7 ) = 215 +fallxy ( 214, 8 ) = 215 +xyphendoy1 ( 214, 1 ) = 0 +xyphendoy1 ( 214, 2 ) = 0 +xyphendoy1 ( 214, 3 ) = 0 +xyphendoy1 ( 214, 4 ) = 0 +xyphendoy1 ( 214, 5 ) = 0 +xyphendoy1 ( 214, 6 ) = 0 +xyphendoy1 ( 214, 7 ) = 0 +xyphendoy1 ( 214, 8 ) = 0 + + ! xlat 50.7500000000000 +greenupxy ( 213, 1 ) = 142 +greenupxy ( 213, 2 ) = 122 +greenupxy ( 213, 3 ) = 149 +greenupxy ( 213, 4 ) = 131 +greenupxy ( 213, 5 ) = 131 +greenupxy ( 213, 6 ) = 131 +greenupxy ( 213, 7 ) = 123 +greenupxy ( 213, 8 ) = 123 +fallxy ( 213, 1 ) = 234 +fallxy ( 213, 2 ) = 221 +fallxy ( 213, 3 ) = 230 +fallxy ( 213, 4 ) = 215 +fallxy ( 213, 5 ) = 215 +fallxy ( 213, 6 ) = 215 +fallxy ( 213, 7 ) = 215 +fallxy ( 213, 8 ) = 215 +xyphendoy1 ( 213, 1 ) = 0 +xyphendoy1 ( 213, 2 ) = 0 +xyphendoy1 ( 213, 3 ) = 0 +xyphendoy1 ( 213, 4 ) = 0 +xyphendoy1 ( 213, 5 ) = 0 +xyphendoy1 ( 213, 6 ) = 0 +xyphendoy1 ( 213, 7 ) = 0 +xyphendoy1 ( 213, 8 ) = 0 + + ! xlat 50.2500000000000 +greenupxy ( 212, 1 ) = 141 +greenupxy ( 212, 2 ) = 121 +greenupxy ( 212, 3 ) = 146 +greenupxy ( 212, 4 ) = 129 +greenupxy ( 212, 5 ) = 129 +greenupxy ( 212, 6 ) = 129 +greenupxy ( 212, 7 ) = 121 +greenupxy ( 212, 8 ) = 121 +fallxy ( 212, 1 ) = 234 +fallxy ( 212, 2 ) = 222 +fallxy ( 212, 3 ) = 228 +fallxy ( 212, 4 ) = 213 +fallxy ( 212, 5 ) = 213 +fallxy ( 212, 6 ) = 213 +fallxy ( 212, 7 ) = 216 +fallxy ( 212, 8 ) = 216 +xyphendoy1 ( 212, 1 ) = 0 +xyphendoy1 ( 212, 2 ) = 0 +xyphendoy1 ( 212, 3 ) = 0 +xyphendoy1 ( 212, 4 ) = 0 +xyphendoy1 ( 212, 5 ) = 0 +xyphendoy1 ( 212, 6 ) = 0 +xyphendoy1 ( 212, 7 ) = 0 +xyphendoy1 ( 212, 8 ) = 0 + + ! xlat 49.7500000000000 +greenupxy ( 211, 1 ) = 141 +greenupxy ( 211, 2 ) = 120 +greenupxy ( 211, 3 ) = 143 +greenupxy ( 211, 4 ) = 127 +greenupxy ( 211, 5 ) = 127 +greenupxy ( 211, 6 ) = 127 +greenupxy ( 211, 7 ) = 120 +greenupxy ( 211, 8 ) = 120 +fallxy ( 211, 1 ) = 233 +fallxy ( 211, 2 ) = 222 +fallxy ( 211, 3 ) = 226 +fallxy ( 211, 4 ) = 212 +fallxy ( 211, 5 ) = 212 +fallxy ( 211, 6 ) = 212 +fallxy ( 211, 7 ) = 217 +fallxy ( 211, 8 ) = 217 +xyphendoy1 ( 211, 1 ) = 0 +xyphendoy1 ( 211, 2 ) = 0 +xyphendoy1 ( 211, 3 ) = 0 +xyphendoy1 ( 211, 4 ) = 0 +xyphendoy1 ( 211, 5 ) = 0 +xyphendoy1 ( 211, 6 ) = 0 +xyphendoy1 ( 211, 7 ) = 0 +xyphendoy1 ( 211, 8 ) = 0 + + ! xlat 49.2500000000000 +greenupxy ( 210, 1 ) = 140 +greenupxy ( 210, 2 ) = 119 +greenupxy ( 210, 3 ) = 141 +greenupxy ( 210, 4 ) = 125 +greenupxy ( 210, 5 ) = 125 +greenupxy ( 210, 6 ) = 125 +greenupxy ( 210, 7 ) = 119 +greenupxy ( 210, 8 ) = 119 +fallxy ( 210, 1 ) = 233 +fallxy ( 210, 2 ) = 222 +fallxy ( 210, 3 ) = 225 +fallxy ( 210, 4 ) = 211 +fallxy ( 210, 5 ) = 211 +fallxy ( 210, 6 ) = 211 +fallxy ( 210, 7 ) = 218 +fallxy ( 210, 8 ) = 218 +xyphendoy1 ( 210, 1 ) = 0 +xyphendoy1 ( 210, 2 ) = 0 +xyphendoy1 ( 210, 3 ) = 0 +xyphendoy1 ( 210, 4 ) = 0 +xyphendoy1 ( 210, 5 ) = 0 +xyphendoy1 ( 210, 6 ) = 0 +xyphendoy1 ( 210, 7 ) = 0 +xyphendoy1 ( 210, 8 ) = 0 + + ! xlat 48.7500000000000 +greenupxy ( 209, 1 ) = 139 +greenupxy ( 209, 2 ) = 119 +greenupxy ( 209, 3 ) = 138 +greenupxy ( 209, 4 ) = 124 +greenupxy ( 209, 5 ) = 124 +greenupxy ( 209, 6 ) = 124 +greenupxy ( 209, 7 ) = 119 +greenupxy ( 209, 8 ) = 119 +fallxy ( 209, 1 ) = 233 +fallxy ( 209, 2 ) = 222 +fallxy ( 209, 3 ) = 222 +fallxy ( 209, 4 ) = 209 +fallxy ( 209, 5 ) = 209 +fallxy ( 209, 6 ) = 209 +fallxy ( 209, 7 ) = 219 +fallxy ( 209, 8 ) = 219 +xyphendoy1 ( 209, 1 ) = 0 +xyphendoy1 ( 209, 2 ) = 0 +xyphendoy1 ( 209, 3 ) = 0 +xyphendoy1 ( 209, 4 ) = 0 +xyphendoy1 ( 209, 5 ) = 0 +xyphendoy1 ( 209, 6 ) = 0 +xyphendoy1 ( 209, 7 ) = 0 +xyphendoy1 ( 209, 8 ) = 0 + + ! xlat 48.2500000000000 +greenupxy ( 208, 1 ) = 139 +greenupxy ( 208, 2 ) = 119 +greenupxy ( 208, 3 ) = 135 +greenupxy ( 208, 4 ) = 122 +greenupxy ( 208, 5 ) = 122 +greenupxy ( 208, 6 ) = 122 +greenupxy ( 208, 7 ) = 118 +greenupxy ( 208, 8 ) = 118 +fallxy ( 208, 1 ) = 232 +fallxy ( 208, 2 ) = 222 +fallxy ( 208, 3 ) = 220 +fallxy ( 208, 4 ) = 208 +fallxy ( 208, 5 ) = 208 +fallxy ( 208, 6 ) = 208 +fallxy ( 208, 7 ) = 220 +fallxy ( 208, 8 ) = 220 +xyphendoy1 ( 208, 1 ) = 0 +xyphendoy1 ( 208, 2 ) = 0 +xyphendoy1 ( 208, 3 ) = 0 +xyphendoy1 ( 208, 4 ) = 0 +xyphendoy1 ( 208, 5 ) = 0 +xyphendoy1 ( 208, 6 ) = 0 +xyphendoy1 ( 208, 7 ) = 0 +xyphendoy1 ( 208, 8 ) = 0 + + ! xlat 47.7500000000000 +greenupxy ( 207, 1 ) = 138 +greenupxy ( 207, 2 ) = 119 +greenupxy ( 207, 3 ) = 132 +greenupxy ( 207, 4 ) = 120 +greenupxy ( 207, 5 ) = 120 +greenupxy ( 207, 6 ) = 120 +greenupxy ( 207, 7 ) = 118 +greenupxy ( 207, 8 ) = 118 +fallxy ( 207, 1 ) = 232 +fallxy ( 207, 2 ) = 223 +fallxy ( 207, 3 ) = 217 +fallxy ( 207, 4 ) = 207 +fallxy ( 207, 5 ) = 207 +fallxy ( 207, 6 ) = 207 +fallxy ( 207, 7 ) = 222 +fallxy ( 207, 8 ) = 222 +xyphendoy1 ( 207, 1 ) = 0 +xyphendoy1 ( 207, 2 ) = 0 +xyphendoy1 ( 207, 3 ) = 0 +xyphendoy1 ( 207, 4 ) = 0 +xyphendoy1 ( 207, 5 ) = 0 +xyphendoy1 ( 207, 6 ) = 0 +xyphendoy1 ( 207, 7 ) = 0 +xyphendoy1 ( 207, 8 ) = 0 + + ! xlat 47.2500000000000 +greenupxy ( 206, 1 ) = 138 +greenupxy ( 206, 2 ) = 119 +greenupxy ( 206, 3 ) = 129 +greenupxy ( 206, 4 ) = 118 +greenupxy ( 206, 5 ) = 118 +greenupxy ( 206, 6 ) = 118 +greenupxy ( 206, 7 ) = 118 +greenupxy ( 206, 8 ) = 118 +fallxy ( 206, 1 ) = 232 +fallxy ( 206, 2 ) = 223 +fallxy ( 206, 3 ) = 215 +fallxy ( 206, 4 ) = 205 +fallxy ( 206, 5 ) = 205 +fallxy ( 206, 6 ) = 205 +fallxy ( 206, 7 ) = 223 +fallxy ( 206, 8 ) = 223 +xyphendoy1 ( 206, 1 ) = 0 +xyphendoy1 ( 206, 2 ) = 0 +xyphendoy1 ( 206, 3 ) = 0 +xyphendoy1 ( 206, 4 ) = 0 +xyphendoy1 ( 206, 5 ) = 0 +xyphendoy1 ( 206, 6 ) = 0 +xyphendoy1 ( 206, 7 ) = 0 +xyphendoy1 ( 206, 8 ) = 0 + + ! xlat 46.7500000000000 +greenupxy ( 205, 1 ) = 138 +greenupxy ( 205, 2 ) = 119 +greenupxy ( 205, 3 ) = 127 +greenupxy ( 205, 4 ) = 118 +greenupxy ( 205, 5 ) = 118 +greenupxy ( 205, 6 ) = 118 +greenupxy ( 205, 7 ) = 118 +greenupxy ( 205, 8 ) = 118 +fallxy ( 205, 1 ) = 231 +fallxy ( 205, 2 ) = 224 +fallxy ( 205, 3 ) = 213 +fallxy ( 205, 4 ) = 205 +fallxy ( 205, 5 ) = 205 +fallxy ( 205, 6 ) = 205 +fallxy ( 205, 7 ) = 224 +fallxy ( 205, 8 ) = 224 +xyphendoy1 ( 205, 1 ) = 0 +xyphendoy1 ( 205, 2 ) = 0 +xyphendoy1 ( 205, 3 ) = 0 +xyphendoy1 ( 205, 4 ) = 0 +xyphendoy1 ( 205, 5 ) = 0 +xyphendoy1 ( 205, 6 ) = 0 +xyphendoy1 ( 205, 7 ) = 0 +xyphendoy1 ( 205, 8 ) = 0 + + ! xlat 46.2500000000000 +greenupxy ( 204, 1 ) = 137 +greenupxy ( 204, 2 ) = 119 +greenupxy ( 204, 3 ) = 124 +greenupxy ( 204, 4 ) = 117 +greenupxy ( 204, 5 ) = 117 +greenupxy ( 204, 6 ) = 117 +greenupxy ( 204, 7 ) = 118 +greenupxy ( 204, 8 ) = 118 +fallxy ( 204, 1 ) = 230 +fallxy ( 204, 2 ) = 224 +fallxy ( 204, 3 ) = 210 +fallxy ( 204, 4 ) = 205 +fallxy ( 204, 5 ) = 205 +fallxy ( 204, 6 ) = 205 +fallxy ( 204, 7 ) = 226 +fallxy ( 204, 8 ) = 226 +xyphendoy1 ( 204, 1 ) = 0 +xyphendoy1 ( 204, 2 ) = 0 +xyphendoy1 ( 204, 3 ) = 0 +xyphendoy1 ( 204, 4 ) = 0 +xyphendoy1 ( 204, 5 ) = 0 +xyphendoy1 ( 204, 6 ) = 0 +xyphendoy1 ( 204, 7 ) = 0 +xyphendoy1 ( 204, 8 ) = 0 + + ! xlat 45.7500000000000 +greenupxy ( 203, 1 ) = 136 +greenupxy ( 203, 2 ) = 119 +greenupxy ( 203, 3 ) = 121 +greenupxy ( 203, 4 ) = 116 +greenupxy ( 203, 5 ) = 116 +greenupxy ( 203, 6 ) = 116 +greenupxy ( 203, 7 ) = 118 +greenupxy ( 203, 8 ) = 118 +fallxy ( 203, 1 ) = 229 +fallxy ( 203, 2 ) = 226 +fallxy ( 203, 3 ) = 206 +fallxy ( 203, 4 ) = 205 +fallxy ( 203, 5 ) = 205 +fallxy ( 203, 6 ) = 205 +fallxy ( 203, 7 ) = 227 +fallxy ( 203, 8 ) = 227 +xyphendoy1 ( 203, 1 ) = 0 +xyphendoy1 ( 203, 2 ) = 0 +xyphendoy1 ( 203, 3 ) = 0 +xyphendoy1 ( 203, 4 ) = 0 +xyphendoy1 ( 203, 5 ) = 0 +xyphendoy1 ( 203, 6 ) = 0 +xyphendoy1 ( 203, 7 ) = 0 +xyphendoy1 ( 203, 8 ) = 0 + + ! xlat 45.2500000000000 +greenupxy ( 202, 1 ) = 136 +greenupxy ( 202, 2 ) = 120 +greenupxy ( 202, 3 ) = 117 +greenupxy ( 202, 4 ) = 116 +greenupxy ( 202, 5 ) = 116 +greenupxy ( 202, 6 ) = 116 +greenupxy ( 202, 7 ) = 117 +greenupxy ( 202, 8 ) = 117 +fallxy ( 202, 1 ) = 229 +fallxy ( 202, 2 ) = 227 +fallxy ( 202, 3 ) = 203 +fallxy ( 202, 4 ) = 205 +fallxy ( 202, 5 ) = 205 +fallxy ( 202, 6 ) = 205 +fallxy ( 202, 7 ) = 229 +fallxy ( 202, 8 ) = 229 +xyphendoy1 ( 202, 1 ) = 0 +xyphendoy1 ( 202, 2 ) = 0 +xyphendoy1 ( 202, 3 ) = 0 +xyphendoy1 ( 202, 4 ) = 0 +xyphendoy1 ( 202, 5 ) = 0 +xyphendoy1 ( 202, 6 ) = 0 +xyphendoy1 ( 202, 7 ) = 0 +xyphendoy1 ( 202, 8 ) = 0 + + ! xlat 44.7500000000000 +greenupxy ( 201, 1 ) = 136 +greenupxy ( 201, 2 ) = 120 +greenupxy ( 201, 3 ) = 115 +greenupxy ( 201, 4 ) = 116 +greenupxy ( 201, 5 ) = 116 +greenupxy ( 201, 6 ) = 116 +greenupxy ( 201, 7 ) = 117 +greenupxy ( 201, 8 ) = 117 +fallxy ( 201, 1 ) = 228 +fallxy ( 201, 2 ) = 227 +fallxy ( 201, 3 ) = 200 +fallxy ( 201, 4 ) = 206 +fallxy ( 201, 5 ) = 206 +fallxy ( 201, 6 ) = 206 +fallxy ( 201, 7 ) = 230 +fallxy ( 201, 8 ) = 230 +xyphendoy1 ( 201, 1 ) = 0 +xyphendoy1 ( 201, 2 ) = 0 +xyphendoy1 ( 201, 3 ) = 0 +xyphendoy1 ( 201, 4 ) = 0 +xyphendoy1 ( 201, 5 ) = 0 +xyphendoy1 ( 201, 6 ) = 0 +xyphendoy1 ( 201, 7 ) = 0 +xyphendoy1 ( 201, 8 ) = 0 + + ! xlat 44.2500000000000 +greenupxy ( 200, 1 ) = 135 +greenupxy ( 200, 2 ) = 119 +greenupxy ( 200, 3 ) = 112 +greenupxy ( 200, 4 ) = 115 +greenupxy ( 200, 5 ) = 115 +greenupxy ( 200, 6 ) = 115 +greenupxy ( 200, 7 ) = 117 +greenupxy ( 200, 8 ) = 117 +fallxy ( 200, 1 ) = 227 +fallxy ( 200, 2 ) = 228 +fallxy ( 200, 3 ) = 197 +fallxy ( 200, 4 ) = 206 +fallxy ( 200, 5 ) = 206 +fallxy ( 200, 6 ) = 206 +fallxy ( 200, 7 ) = 230 +fallxy ( 200, 8 ) = 230 +xyphendoy1 ( 200, 1 ) = 0 +xyphendoy1 ( 200, 2 ) = 0 +xyphendoy1 ( 200, 3 ) = 0 +xyphendoy1 ( 200, 4 ) = 0 +xyphendoy1 ( 200, 5 ) = 0 +xyphendoy1 ( 200, 6 ) = 0 +xyphendoy1 ( 200, 7 ) = 0 +xyphendoy1 ( 200, 8 ) = 0 + + ! xlat 43.7500000000000 +greenupxy ( 199, 1 ) = 135 +greenupxy ( 199, 2 ) = 119 +greenupxy ( 199, 3 ) = 109 +greenupxy ( 199, 4 ) = 115 +greenupxy ( 199, 5 ) = 115 +greenupxy ( 199, 6 ) = 115 +greenupxy ( 199, 7 ) = 116 +greenupxy ( 199, 8 ) = 116 +fallxy ( 199, 1 ) = 226 +fallxy ( 199, 2 ) = 228 +fallxy ( 199, 3 ) = 194 +fallxy ( 199, 4 ) = 206 +fallxy ( 199, 5 ) = 206 +fallxy ( 199, 6 ) = 206 +fallxy ( 199, 7 ) = 231 +fallxy ( 199, 8 ) = 231 +xyphendoy1 ( 199, 1 ) = 0 +xyphendoy1 ( 199, 2 ) = 0 +xyphendoy1 ( 199, 3 ) = 0 +xyphendoy1 ( 199, 4 ) = 0 +xyphendoy1 ( 199, 5 ) = 0 +xyphendoy1 ( 199, 6 ) = 0 +xyphendoy1 ( 199, 7 ) = 0 +xyphendoy1 ( 199, 8 ) = 0 + + ! xlat 43.2500000000000 +greenupxy ( 198, 1 ) = 134 +greenupxy ( 198, 2 ) = 119 +greenupxy ( 198, 3 ) = 107 +greenupxy ( 198, 4 ) = 115 +greenupxy ( 198, 5 ) = 115 +greenupxy ( 198, 6 ) = 115 +greenupxy ( 198, 7 ) = 116 +greenupxy ( 198, 8 ) = 116 +fallxy ( 198, 1 ) = 226 +fallxy ( 198, 2 ) = 228 +fallxy ( 198, 3 ) = 192 +fallxy ( 198, 4 ) = 206 +fallxy ( 198, 5 ) = 206 +fallxy ( 198, 6 ) = 206 +fallxy ( 198, 7 ) = 232 +fallxy ( 198, 8 ) = 232 +xyphendoy1 ( 198, 1 ) = 0 +xyphendoy1 ( 198, 2 ) = 0 +xyphendoy1 ( 198, 3 ) = 0 +xyphendoy1 ( 198, 4 ) = 0 +xyphendoy1 ( 198, 5 ) = 0 +xyphendoy1 ( 198, 6 ) = 0 +xyphendoy1 ( 198, 7 ) = 0 +xyphendoy1 ( 198, 8 ) = 0 + + ! xlat 42.7500000000000 +greenupxy ( 197, 1 ) = 133 +greenupxy ( 197, 2 ) = 118 +greenupxy ( 197, 3 ) = 106 +greenupxy ( 197, 4 ) = 114 +greenupxy ( 197, 5 ) = 114 +greenupxy ( 197, 6 ) = 114 +greenupxy ( 197, 7 ) = 115 +greenupxy ( 197, 8 ) = 115 +fallxy ( 197, 1 ) = 225 +fallxy ( 197, 2 ) = 228 +fallxy ( 197, 3 ) = 191 +fallxy ( 197, 4 ) = 207 +fallxy ( 197, 5 ) = 207 +fallxy ( 197, 6 ) = 207 +fallxy ( 197, 7 ) = 233 +fallxy ( 197, 8 ) = 233 +xyphendoy1 ( 197, 1 ) = 0 +xyphendoy1 ( 197, 2 ) = 0 +xyphendoy1 ( 197, 3 ) = 0 +xyphendoy1 ( 197, 4 ) = 0 +xyphendoy1 ( 197, 5 ) = 0 +xyphendoy1 ( 197, 6 ) = 0 +xyphendoy1 ( 197, 7 ) = 0 +xyphendoy1 ( 197, 8 ) = 0 + + ! xlat 42.2500000000000 +greenupxy ( 196, 1 ) = 133 +greenupxy ( 196, 2 ) = 117 +greenupxy ( 196, 3 ) = 104 +greenupxy ( 196, 4 ) = 114 +greenupxy ( 196, 5 ) = 114 +greenupxy ( 196, 6 ) = 114 +greenupxy ( 196, 7 ) = 114 +greenupxy ( 196, 8 ) = 114 +fallxy ( 196, 1 ) = 225 +fallxy ( 196, 2 ) = 228 +fallxy ( 196, 3 ) = 187 +fallxy ( 196, 4 ) = 207 +fallxy ( 196, 5 ) = 207 +fallxy ( 196, 6 ) = 207 +fallxy ( 196, 7 ) = 233 +fallxy ( 196, 8 ) = 233 +xyphendoy1 ( 196, 1 ) = 0 +xyphendoy1 ( 196, 2 ) = 0 +xyphendoy1 ( 196, 3 ) = 0 +xyphendoy1 ( 196, 4 ) = 0 +xyphendoy1 ( 196, 5 ) = 0 +xyphendoy1 ( 196, 6 ) = 0 +xyphendoy1 ( 196, 7 ) = 0 +xyphendoy1 ( 196, 8 ) = 0 + + ! xlat 41.7500000000000 +greenupxy ( 195, 1 ) = 132 +greenupxy ( 195, 2 ) = 116 +greenupxy ( 195, 3 ) = 102 +greenupxy ( 195, 4 ) = 113 +greenupxy ( 195, 5 ) = 113 +greenupxy ( 195, 6 ) = 113 +greenupxy ( 195, 7 ) = 112 +greenupxy ( 195, 8 ) = 112 +fallxy ( 195, 1 ) = 224 +fallxy ( 195, 2 ) = 227 +fallxy ( 195, 3 ) = 186 +fallxy ( 195, 4 ) = 208 +fallxy ( 195, 5 ) = 208 +fallxy ( 195, 6 ) = 208 +fallxy ( 195, 7 ) = 232 +fallxy ( 195, 8 ) = 232 +xyphendoy1 ( 195, 1 ) = 0 +xyphendoy1 ( 195, 2 ) = 0 +xyphendoy1 ( 195, 3 ) = 0 +xyphendoy1 ( 195, 4 ) = 0 +xyphendoy1 ( 195, 5 ) = 0 +xyphendoy1 ( 195, 6 ) = 0 +xyphendoy1 ( 195, 7 ) = 0 +xyphendoy1 ( 195, 8 ) = 0 + + ! xlat 41.2500000000000 +greenupxy ( 194, 1 ) = 132 +greenupxy ( 194, 2 ) = 115 +greenupxy ( 194, 3 ) = 101 +greenupxy ( 194, 4 ) = 113 +greenupxy ( 194, 5 ) = 113 +greenupxy ( 194, 6 ) = 113 +greenupxy ( 194, 7 ) = 111 +greenupxy ( 194, 8 ) = 111 +fallxy ( 194, 1 ) = 225 +fallxy ( 194, 2 ) = 227 +fallxy ( 194, 3 ) = 184 +fallxy ( 194, 4 ) = 209 +fallxy ( 194, 5 ) = 209 +fallxy ( 194, 6 ) = 209 +fallxy ( 194, 7 ) = 233 +fallxy ( 194, 8 ) = 233 +xyphendoy1 ( 194, 1 ) = 0 +xyphendoy1 ( 194, 2 ) = 0 +xyphendoy1 ( 194, 3 ) = 0 +xyphendoy1 ( 194, 4 ) = 0 +xyphendoy1 ( 194, 5 ) = 0 +xyphendoy1 ( 194, 6 ) = 0 +xyphendoy1 ( 194, 7 ) = 0 +xyphendoy1 ( 194, 8 ) = 0 + + ! xlat 40.7500000000000 +greenupxy ( 193, 1 ) = 131 +greenupxy ( 193, 2 ) = 113 +greenupxy ( 193, 3 ) = 100 +greenupxy ( 193, 4 ) = 112 +greenupxy ( 193, 5 ) = 112 +greenupxy ( 193, 6 ) = 112 +greenupxy ( 193, 7 ) = 109 +greenupxy ( 193, 8 ) = 109 +fallxy ( 193, 1 ) = 224 +fallxy ( 193, 2 ) = 226 +fallxy ( 193, 3 ) = 180 +fallxy ( 193, 4 ) = 210 +fallxy ( 193, 5 ) = 210 +fallxy ( 193, 6 ) = 210 +fallxy ( 193, 7 ) = 234 +fallxy ( 193, 8 ) = 234 +xyphendoy1 ( 193, 1 ) = 0 +xyphendoy1 ( 193, 2 ) = 0 +xyphendoy1 ( 193, 3 ) = 0 +xyphendoy1 ( 193, 4 ) = 0 +xyphendoy1 ( 193, 5 ) = 0 +xyphendoy1 ( 193, 6 ) = 0 +xyphendoy1 ( 193, 7 ) = 0 +xyphendoy1 ( 193, 8 ) = 0 + + ! xlat 40.2500000000000 +greenupxy ( 192, 1 ) = 131 +greenupxy ( 192, 2 ) = 112 +greenupxy ( 192, 3 ) = 98 +greenupxy ( 192, 4 ) = 111 +greenupxy ( 192, 5 ) = 111 +greenupxy ( 192, 6 ) = 111 +greenupxy ( 192, 7 ) = 108 +greenupxy ( 192, 8 ) = 108 +fallxy ( 192, 1 ) = 224 +fallxy ( 192, 2 ) = 226 +fallxy ( 192, 3 ) = 176 +fallxy ( 192, 4 ) = 210 +fallxy ( 192, 5 ) = 210 +fallxy ( 192, 6 ) = 210 +fallxy ( 192, 7 ) = 234 +fallxy ( 192, 8 ) = 234 +xyphendoy1 ( 192, 1 ) = 0 +xyphendoy1 ( 192, 2 ) = 0 +xyphendoy1 ( 192, 3 ) = 0 +xyphendoy1 ( 192, 4 ) = 0 +xyphendoy1 ( 192, 5 ) = 0 +xyphendoy1 ( 192, 6 ) = 0 +xyphendoy1 ( 192, 7 ) = 0 +xyphendoy1 ( 192, 8 ) = 0 + + ! xlat 39.7500000000000 +greenupxy ( 191, 1 ) = 131 +greenupxy ( 191, 2 ) = 111 +greenupxy ( 191, 3 ) = 95 +greenupxy ( 191, 4 ) = 110 +greenupxy ( 191, 5 ) = 110 +greenupxy ( 191, 6 ) = 110 +greenupxy ( 191, 7 ) = 107 +greenupxy ( 191, 8 ) = 107 +fallxy ( 191, 1 ) = 225 +fallxy ( 191, 2 ) = 226 +fallxy ( 191, 3 ) = 172 +fallxy ( 191, 4 ) = 211 +fallxy ( 191, 5 ) = 211 +fallxy ( 191, 6 ) = 211 +fallxy ( 191, 7 ) = 235 +fallxy ( 191, 8 ) = 235 +xyphendoy1 ( 191, 1 ) = 0 +xyphendoy1 ( 191, 2 ) = 0 +xyphendoy1 ( 191, 3 ) = 0 +xyphendoy1 ( 191, 4 ) = 0 +xyphendoy1 ( 191, 5 ) = 0 +xyphendoy1 ( 191, 6 ) = 0 +xyphendoy1 ( 191, 7 ) = 0 +xyphendoy1 ( 191, 8 ) = 0 + + ! xlat 39.2500000000000 +greenupxy ( 190, 1 ) = 131 +greenupxy ( 190, 2 ) = 109 +greenupxy ( 190, 3 ) = 92 +greenupxy ( 190, 4 ) = 110 +greenupxy ( 190, 5 ) = 110 +greenupxy ( 190, 6 ) = 110 +greenupxy ( 190, 7 ) = 105 +greenupxy ( 190, 8 ) = 105 +fallxy ( 190, 1 ) = 226 +fallxy ( 190, 2 ) = 225 +fallxy ( 190, 3 ) = 167 +fallxy ( 190, 4 ) = 213 +fallxy ( 190, 5 ) = 213 +fallxy ( 190, 6 ) = 213 +fallxy ( 190, 7 ) = 235 +fallxy ( 190, 8 ) = 235 +xyphendoy1 ( 190, 1 ) = 0 +xyphendoy1 ( 190, 2 ) = 0 +xyphendoy1 ( 190, 3 ) = 0 +xyphendoy1 ( 190, 4 ) = 0 +xyphendoy1 ( 190, 5 ) = 0 +xyphendoy1 ( 190, 6 ) = 0 +xyphendoy1 ( 190, 7 ) = 0 +xyphendoy1 ( 190, 8 ) = 0 + + ! xlat 38.7500000000000 +greenupxy ( 189, 1 ) = 131 +greenupxy ( 189, 2 ) = 107 +greenupxy ( 189, 3 ) = 89 +greenupxy ( 189, 4 ) = 110 +greenupxy ( 189, 5 ) = 110 +greenupxy ( 189, 6 ) = 110 +greenupxy ( 189, 7 ) = 103 +greenupxy ( 189, 8 ) = 103 +fallxy ( 189, 1 ) = 226 +fallxy ( 189, 2 ) = 225 +fallxy ( 189, 3 ) = 163 +fallxy ( 189, 4 ) = 215 +fallxy ( 189, 5 ) = 215 +fallxy ( 189, 6 ) = 215 +fallxy ( 189, 7 ) = 236 +fallxy ( 189, 8 ) = 236 +xyphendoy1 ( 189, 1 ) = 0 +xyphendoy1 ( 189, 2 ) = 0 +xyphendoy1 ( 189, 3 ) = 0 +xyphendoy1 ( 189, 4 ) = 0 +xyphendoy1 ( 189, 5 ) = 0 +xyphendoy1 ( 189, 6 ) = 0 +xyphendoy1 ( 189, 7 ) = 0 +xyphendoy1 ( 189, 8 ) = 0 + + ! xlat 38.2500000000000 +greenupxy ( 188, 1 ) = 131 +greenupxy ( 188, 2 ) = 106 +greenupxy ( 188, 3 ) = 86 +greenupxy ( 188, 4 ) = 111 +greenupxy ( 188, 5 ) = 111 +greenupxy ( 188, 6 ) = 111 +greenupxy ( 188, 7 ) = 101 +greenupxy ( 188, 8 ) = 101 +fallxy ( 188, 1 ) = 227 +fallxy ( 188, 2 ) = 224 +fallxy ( 188, 3 ) = 166 +fallxy ( 188, 4 ) = 216 +fallxy ( 188, 5 ) = 216 +fallxy ( 188, 6 ) = 216 +fallxy ( 188, 7 ) = 236 +fallxy ( 188, 8 ) = 236 +xyphendoy1 ( 188, 1 ) = 0 +xyphendoy1 ( 188, 2 ) = 0 +xyphendoy1 ( 188, 3 ) = 0 +xyphendoy1 ( 188, 4 ) = 0 +xyphendoy1 ( 188, 5 ) = 0 +xyphendoy1 ( 188, 6 ) = 0 +xyphendoy1 ( 188, 7 ) = 0 +xyphendoy1 ( 188, 8 ) = 0 + + ! xlat 37.7500000000000 +greenupxy ( 187, 1 ) = 130 +greenupxy ( 187, 2 ) = 104 +greenupxy ( 187, 3 ) = 88 +greenupxy ( 187, 4 ) = 111 +greenupxy ( 187, 5 ) = 111 +greenupxy ( 187, 6 ) = 111 +greenupxy ( 187, 7 ) = 99 +greenupxy ( 187, 8 ) = 99 +fallxy ( 187, 1 ) = 227 +fallxy ( 187, 2 ) = 223 +fallxy ( 187, 3 ) = 170 +fallxy ( 187, 4 ) = 217 +fallxy ( 187, 5 ) = 217 +fallxy ( 187, 6 ) = 217 +fallxy ( 187, 7 ) = 235 +fallxy ( 187, 8 ) = 235 +xyphendoy1 ( 187, 1 ) = 0 +xyphendoy1 ( 187, 2 ) = 0 +xyphendoy1 ( 187, 3 ) = 0 +xyphendoy1 ( 187, 4 ) = 0 +xyphendoy1 ( 187, 5 ) = 0 +xyphendoy1 ( 187, 6 ) = 0 +xyphendoy1 ( 187, 7 ) = 0 +xyphendoy1 ( 187, 8 ) = 0 + + ! xlat 37.2500000000000 +greenupxy ( 186, 1 ) = 130 +greenupxy ( 186, 2 ) = 102 +greenupxy ( 186, 3 ) = 89 +greenupxy ( 186, 4 ) = 111 +greenupxy ( 186, 5 ) = 111 +greenupxy ( 186, 6 ) = 111 +greenupxy ( 186, 7 ) = 96 +greenupxy ( 186, 8 ) = 96 +fallxy ( 186, 1 ) = 229 +fallxy ( 186, 2 ) = 222 +fallxy ( 186, 3 ) = 175 +fallxy ( 186, 4 ) = 219 +fallxy ( 186, 5 ) = 219 +fallxy ( 186, 6 ) = 219 +fallxy ( 186, 7 ) = 235 +fallxy ( 186, 8 ) = 235 +xyphendoy1 ( 186, 1 ) = 0 +xyphendoy1 ( 186, 2 ) = 0 +xyphendoy1 ( 186, 3 ) = 0 +xyphendoy1 ( 186, 4 ) = 0 +xyphendoy1 ( 186, 5 ) = 0 +xyphendoy1 ( 186, 6 ) = 0 +xyphendoy1 ( 186, 7 ) = 0 +xyphendoy1 ( 186, 8 ) = 0 + + ! xlat 36.7500000000000 +greenupxy ( 185, 1 ) = 130 +greenupxy ( 185, 2 ) = 100 +greenupxy ( 185, 3 ) = 93 +greenupxy ( 185, 4 ) = 111 +greenupxy ( 185, 5 ) = 111 +greenupxy ( 185, 6 ) = 111 +greenupxy ( 185, 7 ) = 94 +greenupxy ( 185, 8 ) = 94 +fallxy ( 185, 1 ) = 230 +fallxy ( 185, 2 ) = 221 +fallxy ( 185, 3 ) = 180 +fallxy ( 185, 4 ) = 220 +fallxy ( 185, 5 ) = 220 +fallxy ( 185, 6 ) = 220 +fallxy ( 185, 7 ) = 235 +fallxy ( 185, 8 ) = 235 +xyphendoy1 ( 185, 1 ) = 0 +xyphendoy1 ( 185, 2 ) = 0 +xyphendoy1 ( 185, 3 ) = 0 +xyphendoy1 ( 185, 4 ) = 0 +xyphendoy1 ( 185, 5 ) = 0 +xyphendoy1 ( 185, 6 ) = 0 +xyphendoy1 ( 185, 7 ) = 0 +xyphendoy1 ( 185, 8 ) = 0 + + ! xlat 36.2500000000000 +greenupxy ( 184, 1 ) = 129 +greenupxy ( 184, 2 ) = 98 +greenupxy ( 184, 3 ) = 97 +greenupxy ( 184, 4 ) = 110 +greenupxy ( 184, 5 ) = 110 +greenupxy ( 184, 6 ) = 110 +greenupxy ( 184, 7 ) = 92 +greenupxy ( 184, 8 ) = 92 +fallxy ( 184, 1 ) = 231 +fallxy ( 184, 2 ) = 221 +fallxy ( 184, 3 ) = 184 +fallxy ( 184, 4 ) = 222 +fallxy ( 184, 5 ) = 222 +fallxy ( 184, 6 ) = 222 +fallxy ( 184, 7 ) = 235 +fallxy ( 184, 8 ) = 235 +xyphendoy1 ( 184, 1 ) = 0 +xyphendoy1 ( 184, 2 ) = 0 +xyphendoy1 ( 184, 3 ) = 0 +xyphendoy1 ( 184, 4 ) = 0 +xyphendoy1 ( 184, 5 ) = 0 +xyphendoy1 ( 184, 6 ) = 0 +xyphendoy1 ( 184, 7 ) = 0 +xyphendoy1 ( 184, 8 ) = 0 + + ! xlat 35.7500000000000 +greenupxy ( 183, 1 ) = 128 +greenupxy ( 183, 2 ) = 96 +greenupxy ( 183, 3 ) = 100 +greenupxy ( 183, 4 ) = 110 +greenupxy ( 183, 5 ) = 110 +greenupxy ( 183, 6 ) = 110 +greenupxy ( 183, 7 ) = 91 +greenupxy ( 183, 8 ) = 91 +fallxy ( 183, 1 ) = 233 +fallxy ( 183, 2 ) = 220 +fallxy ( 183, 3 ) = 188 +fallxy ( 183, 4 ) = 224 +fallxy ( 183, 5 ) = 224 +fallxy ( 183, 6 ) = 224 +fallxy ( 183, 7 ) = 235 +fallxy ( 183, 8 ) = 235 +xyphendoy1 ( 183, 1 ) = 0 +xyphendoy1 ( 183, 2 ) = 0 +xyphendoy1 ( 183, 3 ) = 0 +xyphendoy1 ( 183, 4 ) = 0 +xyphendoy1 ( 183, 5 ) = 0 +xyphendoy1 ( 183, 6 ) = 0 +xyphendoy1 ( 183, 7 ) = 0 +xyphendoy1 ( 183, 8 ) = 0 + + ! xlat 35.2500000000000 +greenupxy ( 182, 1 ) = 127 +greenupxy ( 182, 2 ) = 94 +greenupxy ( 182, 3 ) = 104 +greenupxy ( 182, 4 ) = 110 +greenupxy ( 182, 5 ) = 110 +greenupxy ( 182, 6 ) = 110 +greenupxy ( 182, 7 ) = 90 +greenupxy ( 182, 8 ) = 90 +fallxy ( 182, 1 ) = 234 +fallxy ( 182, 2 ) = 220 +fallxy ( 182, 3 ) = 192 +fallxy ( 182, 4 ) = 226 +fallxy ( 182, 5 ) = 226 +fallxy ( 182, 6 ) = 226 +fallxy ( 182, 7 ) = 234 +fallxy ( 182, 8 ) = 234 +xyphendoy1 ( 182, 1 ) = 0 +xyphendoy1 ( 182, 2 ) = 0 +xyphendoy1 ( 182, 3 ) = 0 +xyphendoy1 ( 182, 4 ) = 0 +xyphendoy1 ( 182, 5 ) = 0 +xyphendoy1 ( 182, 6 ) = 0 +xyphendoy1 ( 182, 7 ) = 0 +xyphendoy1 ( 182, 8 ) = 0 + + ! xlat 34.7500000000000 +greenupxy ( 181, 1 ) = 126 +greenupxy ( 181, 2 ) = 93 +greenupxy ( 181, 3 ) = 107 +greenupxy ( 181, 4 ) = 110 +greenupxy ( 181, 5 ) = 110 +greenupxy ( 181, 6 ) = 110 +greenupxy ( 181, 7 ) = 88 +greenupxy ( 181, 8 ) = 88 +fallxy ( 181, 1 ) = 235 +fallxy ( 181, 2 ) = 220 +fallxy ( 181, 3 ) = 197 +fallxy ( 181, 4 ) = 228 +fallxy ( 181, 5 ) = 228 +fallxy ( 181, 6 ) = 228 +fallxy ( 181, 7 ) = 233 +fallxy ( 181, 8 ) = 233 +xyphendoy1 ( 181, 1 ) = 0 +xyphendoy1 ( 181, 2 ) = 0 +xyphendoy1 ( 181, 3 ) = 0 +xyphendoy1 ( 181, 4 ) = 0 +xyphendoy1 ( 181, 5 ) = 0 +xyphendoy1 ( 181, 6 ) = 0 +xyphendoy1 ( 181, 7 ) = 0 +xyphendoy1 ( 181, 8 ) = 0 + + ! xlat 34.2500000000000 +greenupxy ( 180, 1 ) = 125 +greenupxy ( 180, 2 ) = 91 +greenupxy ( 180, 3 ) = 109 +greenupxy ( 180, 4 ) = 111 +greenupxy ( 180, 5 ) = 111 +greenupxy ( 180, 6 ) = 111 +greenupxy ( 180, 7 ) = 87 +greenupxy ( 180, 8 ) = 87 +fallxy ( 180, 1 ) = 236 +fallxy ( 180, 2 ) = 221 +fallxy ( 180, 3 ) = 201 +fallxy ( 180, 4 ) = 231 +fallxy ( 180, 5 ) = 231 +fallxy ( 180, 6 ) = 231 +fallxy ( 180, 7 ) = 233 +fallxy ( 180, 8 ) = 233 +xyphendoy1 ( 180, 1 ) = 0 +xyphendoy1 ( 180, 2 ) = 0 +xyphendoy1 ( 180, 3 ) = 0 +xyphendoy1 ( 180, 4 ) = 0 +xyphendoy1 ( 180, 5 ) = 0 +xyphendoy1 ( 180, 6 ) = 0 +xyphendoy1 ( 180, 7 ) = 0 +xyphendoy1 ( 180, 8 ) = 0 + + ! xlat 33.7500000000000 +greenupxy ( 179, 1 ) = 123 +greenupxy ( 179, 2 ) = 90 +greenupxy ( 179, 3 ) = 113 +greenupxy ( 179, 4 ) = 114 +greenupxy ( 179, 5 ) = 114 +greenupxy ( 179, 6 ) = 114 +greenupxy ( 179, 7 ) = 86 +greenupxy ( 179, 8 ) = 86 +fallxy ( 179, 1 ) = 237 +fallxy ( 179, 2 ) = 222 +fallxy ( 179, 3 ) = 208 +fallxy ( 179, 4 ) = 233 +fallxy ( 179, 5 ) = 233 +fallxy ( 179, 6 ) = 233 +fallxy ( 179, 7 ) = 233 +fallxy ( 179, 8 ) = 233 +xyphendoy1 ( 179, 1 ) = 0 +xyphendoy1 ( 179, 2 ) = 0 +xyphendoy1 ( 179, 3 ) = 0 +xyphendoy1 ( 179, 4 ) = 0 +xyphendoy1 ( 179, 5 ) = 0 +xyphendoy1 ( 179, 6 ) = 0 +xyphendoy1 ( 179, 7 ) = 0 +xyphendoy1 ( 179, 8 ) = 0 + + ! xlat 33.2500000000000 +greenupxy ( 178, 1 ) = 120 +greenupxy ( 178, 2 ) = 89 +greenupxy ( 178, 3 ) = 118 +greenupxy ( 178, 4 ) = 115 +greenupxy ( 178, 5 ) = 115 +greenupxy ( 178, 6 ) = 115 +greenupxy ( 178, 7 ) = 85 +greenupxy ( 178, 8 ) = 85 +fallxy ( 178, 1 ) = 238 +fallxy ( 178, 2 ) = 223 +fallxy ( 178, 3 ) = 213 +fallxy ( 178, 4 ) = 235 +fallxy ( 178, 5 ) = 235 +fallxy ( 178, 6 ) = 235 +fallxy ( 178, 7 ) = 236 +fallxy ( 178, 8 ) = 236 +xyphendoy1 ( 178, 1 ) = 0 +xyphendoy1 ( 178, 2 ) = 0 +xyphendoy1 ( 178, 3 ) = 0 +xyphendoy1 ( 178, 4 ) = 0 +xyphendoy1 ( 178, 5 ) = 0 +xyphendoy1 ( 178, 6 ) = 0 +xyphendoy1 ( 178, 7 ) = 0 +xyphendoy1 ( 178, 8 ) = 0 + + ! xlat 32.7500000000000 +greenupxy ( 177, 1 ) = 118 +greenupxy ( 177, 2 ) = 88 +greenupxy ( 177, 3 ) = 122 +greenupxy ( 177, 4 ) = 117 +greenupxy ( 177, 5 ) = 117 +greenupxy ( 177, 6 ) = 117 +greenupxy ( 177, 7 ) = 84 +greenupxy ( 177, 8 ) = 84 +fallxy ( 177, 1 ) = 238 +fallxy ( 177, 2 ) = 225 +fallxy ( 177, 3 ) = 218 +fallxy ( 177, 4 ) = 238 +fallxy ( 177, 5 ) = 238 +fallxy ( 177, 6 ) = 238 +fallxy ( 177, 7 ) = 235 +fallxy ( 177, 8 ) = 235 +xyphendoy1 ( 177, 1 ) = 0 +xyphendoy1 ( 177, 2 ) = 0 +xyphendoy1 ( 177, 3 ) = 0 +xyphendoy1 ( 177, 4 ) = 0 +xyphendoy1 ( 177, 5 ) = 0 +xyphendoy1 ( 177, 6 ) = 0 +xyphendoy1 ( 177, 7 ) = 0 +xyphendoy1 ( 177, 8 ) = 0 + + ! xlat 32.2500000000000 +greenupxy ( 176, 1 ) = 114 +greenupxy ( 176, 2 ) = 88 +greenupxy ( 176, 3 ) = 126 +greenupxy ( 176, 4 ) = 120 +greenupxy ( 176, 5 ) = 120 +greenupxy ( 176, 6 ) = 120 +greenupxy ( 176, 7 ) = 85 +greenupxy ( 176, 8 ) = 85 +fallxy ( 176, 1 ) = 235 +fallxy ( 176, 2 ) = 226 +fallxy ( 176, 3 ) = 227 +fallxy ( 176, 4 ) = 241 +fallxy ( 176, 5 ) = 241 +fallxy ( 176, 6 ) = 241 +fallxy ( 176, 7 ) = 236 +fallxy ( 176, 8 ) = 236 +xyphendoy1 ( 176, 1 ) = 0 +xyphendoy1 ( 176, 2 ) = 0 +xyphendoy1 ( 176, 3 ) = 0 +xyphendoy1 ( 176, 4 ) = 0 +xyphendoy1 ( 176, 5 ) = 0 +xyphendoy1 ( 176, 6 ) = 0 +xyphendoy1 ( 176, 7 ) = 0 +xyphendoy1 ( 176, 8 ) = 0 + + ! xlat 31.7500000000000 +greenupxy ( 175, 1 ) = 113 +greenupxy ( 175, 2 ) = 88 +greenupxy ( 175, 3 ) = 133 +greenupxy ( 175, 4 ) = 122 +greenupxy ( 175, 5 ) = 122 +greenupxy ( 175, 6 ) = 122 +greenupxy ( 175, 7 ) = 85 +greenupxy ( 175, 8 ) = 85 +fallxy ( 175, 1 ) = 236 +fallxy ( 175, 2 ) = 228 +fallxy ( 175, 3 ) = 236 +fallxy ( 175, 4 ) = 244 +fallxy ( 175, 5 ) = 244 +fallxy ( 175, 6 ) = 244 +fallxy ( 175, 7 ) = 236 +fallxy ( 175, 8 ) = 236 +xyphendoy1 ( 175, 1 ) = 0 +xyphendoy1 ( 175, 2 ) = 0 +xyphendoy1 ( 175, 3 ) = 0 +xyphendoy1 ( 175, 4 ) = 0 +xyphendoy1 ( 175, 5 ) = 0 +xyphendoy1 ( 175, 6 ) = 0 +xyphendoy1 ( 175, 7 ) = 0 +xyphendoy1 ( 175, 8 ) = 0 + + ! xlat 31.2500000000000 +greenupxy ( 174, 1 ) = 110 +greenupxy ( 174, 2 ) = 89 +greenupxy ( 174, 3 ) = 140 +greenupxy ( 174, 4 ) = 124 +greenupxy ( 174, 5 ) = 124 +greenupxy ( 174, 6 ) = 124 +greenupxy ( 174, 7 ) = 85 +greenupxy ( 174, 8 ) = 85 +fallxy ( 174, 1 ) = 236 +fallxy ( 174, 2 ) = 230 +fallxy ( 174, 3 ) = 245 +fallxy ( 174, 4 ) = 247 +fallxy ( 174, 5 ) = 247 +fallxy ( 174, 6 ) = 247 +fallxy ( 174, 7 ) = 236 +fallxy ( 174, 8 ) = 236 +xyphendoy1 ( 174, 1 ) = 0 +xyphendoy1 ( 174, 2 ) = 0 +xyphendoy1 ( 174, 3 ) = 0 +xyphendoy1 ( 174, 4 ) = 0 +xyphendoy1 ( 174, 5 ) = 0 +xyphendoy1 ( 174, 6 ) = 0 +xyphendoy1 ( 174, 7 ) = 0 +xyphendoy1 ( 174, 8 ) = 0 + + ! xlat 30.7500000000000 +greenupxy ( 173, 1 ) = 108 +greenupxy ( 173, 2 ) = 90 +greenupxy ( 173, 3 ) = 148 +greenupxy ( 173, 4 ) = 126 +greenupxy ( 173, 5 ) = 126 +greenupxy ( 173, 6 ) = 126 +greenupxy ( 173, 7 ) = 86 +greenupxy ( 173, 8 ) = 86 +fallxy ( 173, 1 ) = 236 +fallxy ( 173, 2 ) = 232 +fallxy ( 173, 3 ) = 255 +fallxy ( 173, 4 ) = 251 +fallxy ( 173, 5 ) = 251 +fallxy ( 173, 6 ) = 251 +fallxy ( 173, 7 ) = 237 +fallxy ( 173, 8 ) = 237 +xyphendoy1 ( 173, 1 ) = 0 +xyphendoy1 ( 173, 2 ) = 0 +xyphendoy1 ( 173, 3 ) = 0 +xyphendoy1 ( 173, 4 ) = 0 +xyphendoy1 ( 173, 5 ) = 0 +xyphendoy1 ( 173, 6 ) = 0 +xyphendoy1 ( 173, 7 ) = 0 +xyphendoy1 ( 173, 8 ) = 0 + + ! xlat 30.2500000000000 +greenupxy ( 172, 1 ) = 107 +greenupxy ( 172, 2 ) = 93 +greenupxy ( 172, 3 ) = 156 +greenupxy ( 172, 4 ) = 128 +greenupxy ( 172, 5 ) = 128 +greenupxy ( 172, 6 ) = 128 +greenupxy ( 172, 7 ) = 88 +greenupxy ( 172, 8 ) = 88 +fallxy ( 172, 1 ) = 237 +fallxy ( 172, 2 ) = 234 +fallxy ( 172, 3 ) = 265 +fallxy ( 172, 4 ) = 253 +fallxy ( 172, 5 ) = 253 +fallxy ( 172, 6 ) = 253 +fallxy ( 172, 7 ) = 237 +fallxy ( 172, 8 ) = 237 +xyphendoy1 ( 172, 1 ) = 0 +xyphendoy1 ( 172, 2 ) = 0 +xyphendoy1 ( 172, 3 ) = 0 +xyphendoy1 ( 172, 4 ) = 0 +xyphendoy1 ( 172, 5 ) = 0 +xyphendoy1 ( 172, 6 ) = 0 +xyphendoy1 ( 172, 7 ) = 0 +xyphendoy1 ( 172, 8 ) = 0 + + ! xlat 29.7500000000000 +greenupxy ( 171, 1 ) = 108 +greenupxy ( 171, 2 ) = 95 +greenupxy ( 171, 3 ) = 163 +greenupxy ( 171, 4 ) = 129 +greenupxy ( 171, 5 ) = 129 +greenupxy ( 171, 6 ) = 129 +greenupxy ( 171, 7 ) = 90 +greenupxy ( 171, 8 ) = 90 +fallxy ( 171, 1 ) = 238 +fallxy ( 171, 2 ) = 236 +fallxy ( 171, 3 ) = 268 +fallxy ( 171, 4 ) = 256 +fallxy ( 171, 5 ) = 256 +fallxy ( 171, 6 ) = 256 +fallxy ( 171, 7 ) = 238 +fallxy ( 171, 8 ) = 238 +xyphendoy1 ( 171, 1 ) = 0 +xyphendoy1 ( 171, 2 ) = 0 +xyphendoy1 ( 171, 3 ) = 0 +xyphendoy1 ( 171, 4 ) = 0 +xyphendoy1 ( 171, 5 ) = 0 +xyphendoy1 ( 171, 6 ) = 0 +xyphendoy1 ( 171, 7 ) = 0 +xyphendoy1 ( 171, 8 ) = 0 + + ! xlat 29.2500000000000 +greenupxy ( 170, 1 ) = 110 +greenupxy ( 170, 2 ) = 100 +greenupxy ( 170, 3 ) = 167 +greenupxy ( 170, 4 ) = 132 +greenupxy ( 170, 5 ) = 132 +greenupxy ( 170, 6 ) = 132 +greenupxy ( 170, 7 ) = 93 +greenupxy ( 170, 8 ) = 93 +fallxy ( 170, 1 ) = 238 +fallxy ( 170, 2 ) = 238 +fallxy ( 170, 3 ) = 270 +fallxy ( 170, 4 ) = 259 +fallxy ( 170, 5 ) = 259 +fallxy ( 170, 6 ) = 259 +fallxy ( 170, 7 ) = 241 +fallxy ( 170, 8 ) = 241 +xyphendoy1 ( 170, 1 ) = 0 +xyphendoy1 ( 170, 2 ) = 0 +xyphendoy1 ( 170, 3 ) = 0 +xyphendoy1 ( 170, 4 ) = 0 +xyphendoy1 ( 170, 5 ) = 0 +xyphendoy1 ( 170, 6 ) = 0 +xyphendoy1 ( 170, 7 ) = 0 +xyphendoy1 ( 170, 8 ) = 0 + + ! xlat 28.7500000000000 +greenupxy ( 169, 1 ) = 109 +greenupxy ( 169, 2 ) = 105 +greenupxy ( 169, 3 ) = 170 +greenupxy ( 169, 4 ) = 134 +greenupxy ( 169, 5 ) = 134 +greenupxy ( 169, 6 ) = 134 +greenupxy ( 169, 7 ) = 97 +greenupxy ( 169, 8 ) = 97 +fallxy ( 169, 1 ) = 238 +fallxy ( 169, 2 ) = 241 +fallxy ( 169, 3 ) = 272 +fallxy ( 169, 4 ) = 262 +fallxy ( 169, 5 ) = 262 +fallxy ( 169, 6 ) = 262 +fallxy ( 169, 7 ) = 244 +fallxy ( 169, 8 ) = 244 +xyphendoy1 ( 169, 1 ) = 0 +xyphendoy1 ( 169, 2 ) = 0 +xyphendoy1 ( 169, 3 ) = 0 +xyphendoy1 ( 169, 4 ) = 0 +xyphendoy1 ( 169, 5 ) = 0 +xyphendoy1 ( 169, 6 ) = 0 +xyphendoy1 ( 169, 7 ) = 0 +xyphendoy1 ( 169, 8 ) = 0 + + ! xlat 28.2500000000000 +greenupxy ( 168, 1 ) = 112 +greenupxy ( 168, 2 ) = 109 +greenupxy ( 168, 3 ) = 170 +greenupxy ( 168, 4 ) = 136 +greenupxy ( 168, 5 ) = 136 +greenupxy ( 168, 6 ) = 136 +greenupxy ( 168, 7 ) = 99 +greenupxy ( 168, 8 ) = 99 +fallxy ( 168, 1 ) = 239 +fallxy ( 168, 2 ) = 243 +fallxy ( 168, 3 ) = 273 +fallxy ( 168, 4 ) = 264 +fallxy ( 168, 5 ) = 264 +fallxy ( 168, 6 ) = 264 +fallxy ( 168, 7 ) = 247 +fallxy ( 168, 8 ) = 247 +xyphendoy1 ( 168, 1 ) = 0 +xyphendoy1 ( 168, 2 ) = 0 +xyphendoy1 ( 168, 3 ) = 0 +xyphendoy1 ( 168, 4 ) = 0 +xyphendoy1 ( 168, 5 ) = 0 +xyphendoy1 ( 168, 6 ) = 0 +xyphendoy1 ( 168, 7 ) = 0 +xyphendoy1 ( 168, 8 ) = 0 + + ! xlat 27.7500000000000 +greenupxy ( 167, 1 ) = 111 +greenupxy ( 167, 2 ) = 114 +greenupxy ( 167, 3 ) = 170 +greenupxy ( 167, 4 ) = 138 +greenupxy ( 167, 5 ) = 138 +greenupxy ( 167, 6 ) = 138 +greenupxy ( 167, 7 ) = 101 +greenupxy ( 167, 8 ) = 101 +fallxy ( 167, 1 ) = 239 +fallxy ( 167, 2 ) = 246 +fallxy ( 167, 3 ) = 275 +fallxy ( 167, 4 ) = 266 +fallxy ( 167, 5 ) = 266 +fallxy ( 167, 6 ) = 266 +fallxy ( 167, 7 ) = 251 +fallxy ( 167, 8 ) = 251 +xyphendoy1 ( 167, 1 ) = 0 +xyphendoy1 ( 167, 2 ) = 0 +xyphendoy1 ( 167, 3 ) = 0 +xyphendoy1 ( 167, 4 ) = 0 +xyphendoy1 ( 167, 5 ) = 0 +xyphendoy1 ( 167, 6 ) = 0 +xyphendoy1 ( 167, 7 ) = 0 +xyphendoy1 ( 167, 8 ) = 0 + + ! xlat 27.2500000000000 +greenupxy ( 166, 1 ) = 116 +greenupxy ( 166, 2 ) = 119 +greenupxy ( 166, 3 ) = 169 +greenupxy ( 166, 4 ) = 140 +greenupxy ( 166, 5 ) = 140 +greenupxy ( 166, 6 ) = 140 +greenupxy ( 166, 7 ) = 104 +greenupxy ( 166, 8 ) = 104 +fallxy ( 166, 1 ) = 242 +fallxy ( 166, 2 ) = 249 +fallxy ( 166, 3 ) = 276 +fallxy ( 166, 4 ) = 268 +fallxy ( 166, 5 ) = 268 +fallxy ( 166, 6 ) = 268 +fallxy ( 166, 7 ) = 254 +fallxy ( 166, 8 ) = 254 +xyphendoy1 ( 166, 1 ) = 0 +xyphendoy1 ( 166, 2 ) = 0 +xyphendoy1 ( 166, 3 ) = 0 +xyphendoy1 ( 166, 4 ) = 0 +xyphendoy1 ( 166, 5 ) = 0 +xyphendoy1 ( 166, 6 ) = 0 +xyphendoy1 ( 166, 7 ) = 0 +xyphendoy1 ( 166, 8 ) = 0 + + ! xlat 26.7500000000000 +greenupxy ( 165, 1 ) = 115 +greenupxy ( 165, 2 ) = 123 +greenupxy ( 165, 3 ) = 169 +greenupxy ( 165, 4 ) = 141 +greenupxy ( 165, 5 ) = 141 +greenupxy ( 165, 6 ) = 141 +greenupxy ( 165, 7 ) = 106 +greenupxy ( 165, 8 ) = 106 +fallxy ( 165, 1 ) = 242 +fallxy ( 165, 2 ) = 251 +fallxy ( 165, 3 ) = 278 +fallxy ( 165, 4 ) = 270 +fallxy ( 165, 5 ) = 270 +fallxy ( 165, 6 ) = 270 +fallxy ( 165, 7 ) = 260 +fallxy ( 165, 8 ) = 260 +xyphendoy1 ( 165, 1 ) = 0 +xyphendoy1 ( 165, 2 ) = 0 +xyphendoy1 ( 165, 3 ) = 0 +xyphendoy1 ( 165, 4 ) = 0 +xyphendoy1 ( 165, 5 ) = 0 +xyphendoy1 ( 165, 6 ) = 0 +xyphendoy1 ( 165, 7 ) = 0 +xyphendoy1 ( 165, 8 ) = 0 + + ! xlat 26.2500000000000 +greenupxy ( 164, 1 ) = 115 +greenupxy ( 164, 2 ) = 127 +greenupxy ( 164, 3 ) = 168 +greenupxy ( 164, 4 ) = 144 +greenupxy ( 164, 5 ) = 144 +greenupxy ( 164, 6 ) = 144 +greenupxy ( 164, 7 ) = 109 +greenupxy ( 164, 8 ) = 109 +fallxy ( 164, 1 ) = 245 +fallxy ( 164, 2 ) = 254 +fallxy ( 164, 3 ) = 279 +fallxy ( 164, 4 ) = 272 +fallxy ( 164, 5 ) = 272 +fallxy ( 164, 6 ) = 272 +fallxy ( 164, 7 ) = 262 +fallxy ( 164, 8 ) = 262 +xyphendoy1 ( 164, 1 ) = 0 +xyphendoy1 ( 164, 2 ) = 0 +xyphendoy1 ( 164, 3 ) = 0 +xyphendoy1 ( 164, 4 ) = 0 +xyphendoy1 ( 164, 5 ) = 0 +xyphendoy1 ( 164, 6 ) = 0 +xyphendoy1 ( 164, 7 ) = 0 +xyphendoy1 ( 164, 8 ) = 0 + + ! xlat 25.7500000000000 +greenupxy ( 163, 1 ) = 115 +greenupxy ( 163, 2 ) = 131 +greenupxy ( 163, 3 ) = 169 +greenupxy ( 163, 4 ) = 145 +greenupxy ( 163, 5 ) = 145 +greenupxy ( 163, 6 ) = 145 +greenupxy ( 163, 7 ) = 112 +greenupxy ( 163, 8 ) = 112 +fallxy ( 163, 1 ) = 245 +fallxy ( 163, 2 ) = 256 +fallxy ( 163, 3 ) = 279 +fallxy ( 163, 4 ) = 273 +fallxy ( 163, 5 ) = 273 +fallxy ( 163, 6 ) = 273 +fallxy ( 163, 7 ) = 263 +fallxy ( 163, 8 ) = 263 +xyphendoy1 ( 163, 1 ) = 0 +xyphendoy1 ( 163, 2 ) = 0 +xyphendoy1 ( 163, 3 ) = 0 +xyphendoy1 ( 163, 4 ) = 0 +xyphendoy1 ( 163, 5 ) = 0 +xyphendoy1 ( 163, 6 ) = 0 +xyphendoy1 ( 163, 7 ) = 0 +xyphendoy1 ( 163, 8 ) = 0 + + ! xlat 25.2500000000000 +greenupxy ( 162, 1 ) = 116 +greenupxy ( 162, 2 ) = 134 +greenupxy ( 162, 3 ) = 168 +greenupxy ( 162, 4 ) = 145 +greenupxy ( 162, 5 ) = 145 +greenupxy ( 162, 6 ) = 145 +greenupxy ( 162, 7 ) = 115 +greenupxy ( 162, 8 ) = 115 +fallxy ( 162, 1 ) = 245 +fallxy ( 162, 2 ) = 257 +fallxy ( 162, 3 ) = 279 +fallxy ( 162, 4 ) = 273 +fallxy ( 162, 5 ) = 273 +fallxy ( 162, 6 ) = 273 +fallxy ( 162, 7 ) = 265 +fallxy ( 162, 8 ) = 265 +xyphendoy1 ( 162, 1 ) = 0 +xyphendoy1 ( 162, 2 ) = 0 +xyphendoy1 ( 162, 3 ) = 0 +xyphendoy1 ( 162, 4 ) = 0 +xyphendoy1 ( 162, 5 ) = 0 +xyphendoy1 ( 162, 6 ) = 0 +xyphendoy1 ( 162, 7 ) = 0 +xyphendoy1 ( 162, 8 ) = 0 + + ! xlat 24.7500000000000 +greenupxy ( 161, 1 ) = 118 +greenupxy ( 161, 2 ) = 137 +greenupxy ( 161, 3 ) = 167 +greenupxy ( 161, 4 ) = 146 +greenupxy ( 161, 5 ) = 146 +greenupxy ( 161, 6 ) = 146 +greenupxy ( 161, 7 ) = 118 +greenupxy ( 161, 8 ) = 118 +fallxy ( 161, 1 ) = 240 +fallxy ( 161, 2 ) = 258 +fallxy ( 161, 3 ) = 279 +fallxy ( 161, 4 ) = 274 +fallxy ( 161, 5 ) = 274 +fallxy ( 161, 6 ) = 274 +fallxy ( 161, 7 ) = 267 +fallxy ( 161, 8 ) = 267 +xyphendoy1 ( 161, 1 ) = 0 +xyphendoy1 ( 161, 2 ) = 0 +xyphendoy1 ( 161, 3 ) = 0 +xyphendoy1 ( 161, 4 ) = 0 +xyphendoy1 ( 161, 5 ) = 0 +xyphendoy1 ( 161, 6 ) = 0 +xyphendoy1 ( 161, 7 ) = 0 +xyphendoy1 ( 161, 8 ) = 0 + + ! xlat 24.2500000000000 +greenupxy ( 160, 1 ) = 121 +greenupxy ( 160, 2 ) = 140 +greenupxy ( 160, 3 ) = 165 +greenupxy ( 160, 4 ) = 146 +greenupxy ( 160, 5 ) = 146 +greenupxy ( 160, 6 ) = 146 +greenupxy ( 160, 7 ) = 120 +greenupxy ( 160, 8 ) = 120 +fallxy ( 160, 1 ) = 241 +fallxy ( 160, 2 ) = 259 +fallxy ( 160, 3 ) = 279 +fallxy ( 160, 4 ) = 274 +fallxy ( 160, 5 ) = 274 +fallxy ( 160, 6 ) = 274 +fallxy ( 160, 7 ) = 269 +fallxy ( 160, 8 ) = 269 +xyphendoy1 ( 160, 1 ) = 0 +xyphendoy1 ( 160, 2 ) = 0 +xyphendoy1 ( 160, 3 ) = 0 +xyphendoy1 ( 160, 4 ) = 0 +xyphendoy1 ( 160, 5 ) = 0 +xyphendoy1 ( 160, 6 ) = 0 +xyphendoy1 ( 160, 7 ) = 0 +xyphendoy1 ( 160, 8 ) = 0 + + ! xlat 23.7500000000000 +greenupxy ( 159, 1 ) = 127 +greenupxy ( 159, 2 ) = 142 +greenupxy ( 159, 3 ) = 164 +greenupxy ( 159, 4 ) = 146 +greenupxy ( 159, 5 ) = 146 +greenupxy ( 159, 6 ) = 146 +greenupxy ( 159, 7 ) = 121 +greenupxy ( 159, 8 ) = 121 +fallxy ( 159, 1 ) = 249 +fallxy ( 159, 2 ) = 260 +fallxy ( 159, 3 ) = 279 +fallxy ( 159, 4 ) = 274 +fallxy ( 159, 5 ) = 274 +fallxy ( 159, 6 ) = 274 +fallxy ( 159, 7 ) = 271 +fallxy ( 159, 8 ) = 271 +xyphendoy1 ( 159, 1 ) = 0 +xyphendoy1 ( 159, 2 ) = 0 +xyphendoy1 ( 159, 3 ) = 0 +xyphendoy1 ( 159, 4 ) = 0 +xyphendoy1 ( 159, 5 ) = 0 +xyphendoy1 ( 159, 6 ) = 0 +xyphendoy1 ( 159, 7 ) = 0 +xyphendoy1 ( 159, 8 ) = 0 + + ! xlat 23.2500000000000 +greenupxy ( 158, 1 ) = 131 +greenupxy ( 158, 2 ) = 145 +greenupxy ( 158, 3 ) = 162 +greenupxy ( 158, 4 ) = 145 +greenupxy ( 158, 5 ) = 145 +greenupxy ( 158, 6 ) = 145 +greenupxy ( 158, 7 ) = 122 +greenupxy ( 158, 8 ) = 122 +fallxy ( 158, 1 ) = 251 +fallxy ( 158, 2 ) = 262 +fallxy ( 158, 3 ) = 278 +fallxy ( 158, 4 ) = 274 +fallxy ( 158, 5 ) = 274 +fallxy ( 158, 6 ) = 274 +fallxy ( 158, 7 ) = 273 +fallxy ( 158, 8 ) = 273 +xyphendoy1 ( 158, 1 ) = 0 +xyphendoy1 ( 158, 2 ) = 0 +xyphendoy1 ( 158, 3 ) = 0 +xyphendoy1 ( 158, 4 ) = 0 +xyphendoy1 ( 158, 5 ) = 0 +xyphendoy1 ( 158, 6 ) = 0 +xyphendoy1 ( 158, 7 ) = 0 +xyphendoy1 ( 158, 8 ) = 0 + + ! xlat 22.7500000000000 +greenupxy ( 157, 1 ) = 134 +greenupxy ( 157, 2 ) = 147 +greenupxy ( 157, 3 ) = 159 +greenupxy ( 157, 4 ) = 144 +greenupxy ( 157, 5 ) = 144 +greenupxy ( 157, 6 ) = 144 +greenupxy ( 157, 7 ) = 121 +greenupxy ( 157, 8 ) = 121 +fallxy ( 157, 1 ) = 254 +fallxy ( 157, 2 ) = 262 +fallxy ( 157, 3 ) = 278 +fallxy ( 157, 4 ) = 274 +fallxy ( 157, 5 ) = 274 +fallxy ( 157, 6 ) = 274 +fallxy ( 157, 7 ) = 276 +fallxy ( 157, 8 ) = 276 +xyphendoy1 ( 157, 1 ) = 0 +xyphendoy1 ( 157, 2 ) = 0 +xyphendoy1 ( 157, 3 ) = 0 +xyphendoy1 ( 157, 4 ) = 0 +xyphendoy1 ( 157, 5 ) = 0 +xyphendoy1 ( 157, 6 ) = 0 +xyphendoy1 ( 157, 7 ) = 0 +xyphendoy1 ( 157, 8 ) = 0 + + ! xlat 22.2500000000000 +greenupxy ( 156, 1 ) = 137 +greenupxy ( 156, 2 ) = 148 +greenupxy ( 156, 3 ) = 157 +greenupxy ( 156, 4 ) = 144 +greenupxy ( 156, 5 ) = 144 +greenupxy ( 156, 6 ) = 144 +greenupxy ( 156, 7 ) = 122 +greenupxy ( 156, 8 ) = 122 +fallxy ( 156, 1 ) = 256 +fallxy ( 156, 2 ) = 263 +fallxy ( 156, 3 ) = 278 +fallxy ( 156, 4 ) = 274 +fallxy ( 156, 5 ) = 274 +fallxy ( 156, 6 ) = 274 +fallxy ( 156, 7 ) = 279 +fallxy ( 156, 8 ) = 279 +xyphendoy1 ( 156, 1 ) = 0 +xyphendoy1 ( 156, 2 ) = 0 +xyphendoy1 ( 156, 3 ) = 0 +xyphendoy1 ( 156, 4 ) = 0 +xyphendoy1 ( 156, 5 ) = 0 +xyphendoy1 ( 156, 6 ) = 0 +xyphendoy1 ( 156, 7 ) = 0 +xyphendoy1 ( 156, 8 ) = 0 + + ! xlat 21.7500000000000 +greenupxy ( 155, 1 ) = 140 +greenupxy ( 155, 2 ) = 148 +greenupxy ( 155, 3 ) = 159 +greenupxy ( 155, 4 ) = 143 +greenupxy ( 155, 5 ) = 143 +greenupxy ( 155, 6 ) = 143 +greenupxy ( 155, 7 ) = 123 +greenupxy ( 155, 8 ) = 123 +fallxy ( 155, 1 ) = 256 +fallxy ( 155, 2 ) = 264 +fallxy ( 155, 3 ) = 277 +fallxy ( 155, 4 ) = 274 +fallxy ( 155, 5 ) = 274 +fallxy ( 155, 6 ) = 274 +fallxy ( 155, 7 ) = 281 +fallxy ( 155, 8 ) = 281 +xyphendoy1 ( 155, 1 ) = 0 +xyphendoy1 ( 155, 2 ) = 0 +xyphendoy1 ( 155, 3 ) = 0 +xyphendoy1 ( 155, 4 ) = 0 +xyphendoy1 ( 155, 5 ) = 0 +xyphendoy1 ( 155, 6 ) = 0 +xyphendoy1 ( 155, 7 ) = 0 +xyphendoy1 ( 155, 8 ) = 0 + + ! xlat 21.2500000000000 +greenupxy ( 154, 1 ) = 141 +greenupxy ( 154, 2 ) = 148 +greenupxy ( 154, 3 ) = 160 +greenupxy ( 154, 4 ) = 142 +greenupxy ( 154, 5 ) = 142 +greenupxy ( 154, 6 ) = 142 +greenupxy ( 154, 7 ) = 124 +greenupxy ( 154, 8 ) = 124 +fallxy ( 154, 1 ) = 257 +fallxy ( 154, 2 ) = 265 +fallxy ( 154, 3 ) = 277 +fallxy ( 154, 4 ) = 274 +fallxy ( 154, 5 ) = 274 +fallxy ( 154, 6 ) = 274 +fallxy ( 154, 7 ) = 283 +fallxy ( 154, 8 ) = 283 +xyphendoy1 ( 154, 1 ) = 0 +xyphendoy1 ( 154, 2 ) = 0 +xyphendoy1 ( 154, 3 ) = 0 +xyphendoy1 ( 154, 4 ) = 0 +xyphendoy1 ( 154, 5 ) = 0 +xyphendoy1 ( 154, 6 ) = 0 +xyphendoy1 ( 154, 7 ) = 0 +xyphendoy1 ( 154, 8 ) = 0 + + ! xlat 20.7500000000000 +greenupxy ( 153, 1 ) = 141 +greenupxy ( 153, 2 ) = 146 +greenupxy ( 153, 3 ) = 161 +greenupxy ( 153, 4 ) = 146 +greenupxy ( 153, 5 ) = 146 +greenupxy ( 153, 6 ) = 146 +greenupxy ( 153, 7 ) = 124 +greenupxy ( 153, 8 ) = 124 +fallxy ( 153, 1 ) = 261 +fallxy ( 153, 2 ) = 265 +fallxy ( 153, 3 ) = 276 +fallxy ( 153, 4 ) = 274 +fallxy ( 153, 5 ) = 274 +fallxy ( 153, 6 ) = 274 +fallxy ( 153, 7 ) = 284 +fallxy ( 153, 8 ) = 284 +xyphendoy1 ( 153, 1 ) = 0 +xyphendoy1 ( 153, 2 ) = 0 +xyphendoy1 ( 153, 3 ) = 0 +xyphendoy1 ( 153, 4 ) = 0 +xyphendoy1 ( 153, 5 ) = 0 +xyphendoy1 ( 153, 6 ) = 0 +xyphendoy1 ( 153, 7 ) = 0 +xyphendoy1 ( 153, 8 ) = 0 + + ! xlat 20.2500000000000 +greenupxy ( 152, 1 ) = 141 +greenupxy ( 152, 2 ) = 144 +greenupxy ( 152, 3 ) = 163 +greenupxy ( 152, 4 ) = 149 +greenupxy ( 152, 5 ) = 149 +greenupxy ( 152, 6 ) = 149 +greenupxy ( 152, 7 ) = 125 +greenupxy ( 152, 8 ) = 125 +fallxy ( 152, 1 ) = 262 +fallxy ( 152, 2 ) = 266 +fallxy ( 152, 3 ) = 274 +fallxy ( 152, 4 ) = 273 +fallxy ( 152, 5 ) = 273 +fallxy ( 152, 6 ) = 273 +fallxy ( 152, 7 ) = 285 +fallxy ( 152, 8 ) = 285 +xyphendoy1 ( 152, 1 ) = 0 +xyphendoy1 ( 152, 2 ) = 0 +xyphendoy1 ( 152, 3 ) = 0 +xyphendoy1 ( 152, 4 ) = 0 +xyphendoy1 ( 152, 5 ) = 0 +xyphendoy1 ( 152, 6 ) = 0 +xyphendoy1 ( 152, 7 ) = 0 +xyphendoy1 ( 152, 8 ) = 0 + + ! xlat 19.7500000000000 +greenupxy ( 151, 1 ) = 130 +greenupxy ( 151, 2 ) = 142 +greenupxy ( 151, 3 ) = 166 +greenupxy ( 151, 4 ) = 152 +greenupxy ( 151, 5 ) = 152 +greenupxy ( 151, 6 ) = 152 +greenupxy ( 151, 7 ) = 124 +greenupxy ( 151, 8 ) = 124 +fallxy ( 151, 1 ) = 263 +fallxy ( 151, 2 ) = 267 +fallxy ( 151, 3 ) = 273 +fallxy ( 151, 4 ) = 272 +fallxy ( 151, 5 ) = 272 +fallxy ( 151, 6 ) = 272 +fallxy ( 151, 7 ) = 285 +fallxy ( 151, 8 ) = 285 +xyphendoy1 ( 151, 1 ) = 0 +xyphendoy1 ( 151, 2 ) = 0 +xyphendoy1 ( 151, 3 ) = 0 +xyphendoy1 ( 151, 4 ) = 0 +xyphendoy1 ( 151, 5 ) = 0 +xyphendoy1 ( 151, 6 ) = 0 +xyphendoy1 ( 151, 7 ) = 0 +xyphendoy1 ( 151, 8 ) = 0 + + ! xlat 19.2500000000000 +greenupxy ( 150, 1 ) = 130 +greenupxy ( 150, 2 ) = 140 +greenupxy ( 150, 3 ) = 169 +greenupxy ( 150, 4 ) = 155 +greenupxy ( 150, 5 ) = 155 +greenupxy ( 150, 6 ) = 155 +greenupxy ( 150, 7 ) = 125 +greenupxy ( 150, 8 ) = 125 +fallxy ( 150, 1 ) = 263 +fallxy ( 150, 2 ) = 268 +fallxy ( 150, 3 ) = 273 +fallxy ( 150, 4 ) = 271 +fallxy ( 150, 5 ) = 271 +fallxy ( 150, 6 ) = 271 +fallxy ( 150, 7 ) = 285 +fallxy ( 150, 8 ) = 285 +xyphendoy1 ( 150, 1 ) = 0 +xyphendoy1 ( 150, 2 ) = 0 +xyphendoy1 ( 150, 3 ) = 0 +xyphendoy1 ( 150, 4 ) = 0 +xyphendoy1 ( 150, 5 ) = 0 +xyphendoy1 ( 150, 6 ) = 0 +xyphendoy1 ( 150, 7 ) = 0 +xyphendoy1 ( 150, 8 ) = 0 + + ! xlat 18.7500000000000 +greenupxy ( 149, 1 ) = 123 +greenupxy ( 149, 2 ) = 138 +greenupxy ( 149, 3 ) = 172 +greenupxy ( 149, 4 ) = 158 +greenupxy ( 149, 5 ) = 158 +greenupxy ( 149, 6 ) = 158 +greenupxy ( 149, 7 ) = 128 +greenupxy ( 149, 8 ) = 128 +fallxy ( 149, 1 ) = 263 +fallxy ( 149, 2 ) = 269 +fallxy ( 149, 3 ) = 272 +fallxy ( 149, 4 ) = 270 +fallxy ( 149, 5 ) = 270 +fallxy ( 149, 6 ) = 270 +fallxy ( 149, 7 ) = 285 +fallxy ( 149, 8 ) = 285 +xyphendoy1 ( 149, 1 ) = 0 +xyphendoy1 ( 149, 2 ) = 0 +xyphendoy1 ( 149, 3 ) = 0 +xyphendoy1 ( 149, 4 ) = 0 +xyphendoy1 ( 149, 5 ) = 0 +xyphendoy1 ( 149, 6 ) = 0 +xyphendoy1 ( 149, 7 ) = 0 +xyphendoy1 ( 149, 8 ) = 0 + + ! xlat 18.2500000000000 +greenupxy ( 148, 1 ) = 123 +greenupxy ( 148, 2 ) = 137 +greenupxy ( 148, 3 ) = 175 +greenupxy ( 148, 4 ) = 160 +greenupxy ( 148, 5 ) = 160 +greenupxy ( 148, 6 ) = 160 +greenupxy ( 148, 7 ) = 131 +greenupxy ( 148, 8 ) = 131 +fallxy ( 148, 1 ) = 263 +fallxy ( 148, 2 ) = 269 +fallxy ( 148, 3 ) = 272 +fallxy ( 148, 4 ) = 270 +fallxy ( 148, 5 ) = 270 +fallxy ( 148, 6 ) = 270 +fallxy ( 148, 7 ) = 284 +fallxy ( 148, 8 ) = 284 +xyphendoy1 ( 148, 1 ) = 0 +xyphendoy1 ( 148, 2 ) = 0 +xyphendoy1 ( 148, 3 ) = 0 +xyphendoy1 ( 148, 4 ) = 0 +xyphendoy1 ( 148, 5 ) = 0 +xyphendoy1 ( 148, 6 ) = 0 +xyphendoy1 ( 148, 7 ) = 0 +xyphendoy1 ( 148, 8 ) = 0 + + ! xlat 17.7500000000000 +greenupxy ( 147, 1 ) = 126 +greenupxy ( 147, 2 ) = 138 +greenupxy ( 147, 3 ) = 178 +greenupxy ( 147, 4 ) = 163 +greenupxy ( 147, 5 ) = 163 +greenupxy ( 147, 6 ) = 163 +greenupxy ( 147, 7 ) = 134 +greenupxy ( 147, 8 ) = 134 +fallxy ( 147, 1 ) = 262 +fallxy ( 147, 2 ) = 270 +fallxy ( 147, 3 ) = 271 +fallxy ( 147, 4 ) = 269 +fallxy ( 147, 5 ) = 269 +fallxy ( 147, 6 ) = 269 +fallxy ( 147, 7 ) = 284 +fallxy ( 147, 8 ) = 284 +xyphendoy1 ( 147, 1 ) = 0 +xyphendoy1 ( 147, 2 ) = 0 +xyphendoy1 ( 147, 3 ) = 0 +xyphendoy1 ( 147, 4 ) = 0 +xyphendoy1 ( 147, 5 ) = 0 +xyphendoy1 ( 147, 6 ) = 0 +xyphendoy1 ( 147, 7 ) = 0 +xyphendoy1 ( 147, 8 ) = 0 + + ! xlat 17.2500000000000 +greenupxy ( 146, 1 ) = 126 +greenupxy ( 146, 2 ) = 138 +greenupxy ( 146, 3 ) = 180 +greenupxy ( 146, 4 ) = 165 +greenupxy ( 146, 5 ) = 165 +greenupxy ( 146, 6 ) = 165 +greenupxy ( 146, 7 ) = 135 +greenupxy ( 146, 8 ) = 135 +fallxy ( 146, 1 ) = 265 +fallxy ( 146, 2 ) = 271 +fallxy ( 146, 3 ) = 271 +fallxy ( 146, 4 ) = 269 +fallxy ( 146, 5 ) = 269 +fallxy ( 146, 6 ) = 269 +fallxy ( 146, 7 ) = 283 +fallxy ( 146, 8 ) = 283 +xyphendoy1 ( 146, 1 ) = 0 +xyphendoy1 ( 146, 2 ) = 0 +xyphendoy1 ( 146, 3 ) = 0 +xyphendoy1 ( 146, 4 ) = 0 +xyphendoy1 ( 146, 5 ) = 0 +xyphendoy1 ( 146, 6 ) = 0 +xyphendoy1 ( 146, 7 ) = 0 +xyphendoy1 ( 146, 8 ) = 0 + + ! xlat 16.7500000000000 +greenupxy ( 145, 1 ) = 131 +greenupxy ( 145, 2 ) = 139 +greenupxy ( 145, 3 ) = 183 +greenupxy ( 145, 4 ) = 167 +greenupxy ( 145, 5 ) = 167 +greenupxy ( 145, 6 ) = 167 +greenupxy ( 145, 7 ) = 138 +greenupxy ( 145, 8 ) = 138 +fallxy ( 145, 1 ) = 266 +fallxy ( 145, 2 ) = 271 +fallxy ( 145, 3 ) = 271 +fallxy ( 145, 4 ) = 269 +fallxy ( 145, 5 ) = 269 +fallxy ( 145, 6 ) = 269 +fallxy ( 145, 7 ) = 283 +fallxy ( 145, 8 ) = 283 +xyphendoy1 ( 145, 1 ) = 0 +xyphendoy1 ( 145, 2 ) = 0 +xyphendoy1 ( 145, 3 ) = 0 +xyphendoy1 ( 145, 4 ) = 0 +xyphendoy1 ( 145, 5 ) = 0 +xyphendoy1 ( 145, 6 ) = 0 +xyphendoy1 ( 145, 7 ) = 0 +xyphendoy1 ( 145, 8 ) = 0 + + ! xlat 16.2500000000000 +greenupxy ( 144, 1 ) = 135 +greenupxy ( 144, 2 ) = 140 +greenupxy ( 144, 3 ) = 185 +greenupxy ( 144, 4 ) = 168 +greenupxy ( 144, 5 ) = 168 +greenupxy ( 144, 6 ) = 168 +greenupxy ( 144, 7 ) = 141 +greenupxy ( 144, 8 ) = 141 +fallxy ( 144, 1 ) = 275 +fallxy ( 144, 2 ) = 271 +fallxy ( 144, 3 ) = 271 +fallxy ( 144, 4 ) = 269 +fallxy ( 144, 5 ) = 269 +fallxy ( 144, 6 ) = 269 +fallxy ( 144, 7 ) = 282 +fallxy ( 144, 8 ) = 282 +xyphendoy1 ( 144, 1 ) = 0 +xyphendoy1 ( 144, 2 ) = 0 +xyphendoy1 ( 144, 3 ) = 0 +xyphendoy1 ( 144, 4 ) = 0 +xyphendoy1 ( 144, 5 ) = 0 +xyphendoy1 ( 144, 6 ) = 0 +xyphendoy1 ( 144, 7 ) = 0 +xyphendoy1 ( 144, 8 ) = 0 + + ! xlat 15.7500000000000 +greenupxy ( 143, 1 ) = 137 +greenupxy ( 143, 2 ) = 139 +greenupxy ( 143, 3 ) = 186 +greenupxy ( 143, 4 ) = 169 +greenupxy ( 143, 5 ) = 169 +greenupxy ( 143, 6 ) = 169 +greenupxy ( 143, 7 ) = 144 +greenupxy ( 143, 8 ) = 144 +fallxy ( 143, 1 ) = 277 +fallxy ( 143, 2 ) = 272 +fallxy ( 143, 3 ) = 271 +fallxy ( 143, 4 ) = 269 +fallxy ( 143, 5 ) = 269 +fallxy ( 143, 6 ) = 269 +fallxy ( 143, 7 ) = 281 +fallxy ( 143, 8 ) = 281 +xyphendoy1 ( 143, 1 ) = 0 +xyphendoy1 ( 143, 2 ) = 0 +xyphendoy1 ( 143, 3 ) = 0 +xyphendoy1 ( 143, 4 ) = 0 +xyphendoy1 ( 143, 5 ) = 0 +xyphendoy1 ( 143, 6 ) = 0 +xyphendoy1 ( 143, 7 ) = 0 +xyphendoy1 ( 143, 8 ) = 0 + + ! xlat 15.2500000000000 +greenupxy ( 142, 1 ) = 137 +greenupxy ( 142, 2 ) = 139 +greenupxy ( 142, 3 ) = 187 +greenupxy ( 142, 4 ) = 170 +greenupxy ( 142, 5 ) = 170 +greenupxy ( 142, 6 ) = 170 +greenupxy ( 142, 7 ) = 147 +greenupxy ( 142, 8 ) = 147 +fallxy ( 142, 1 ) = 280 +fallxy ( 142, 2 ) = 272 +fallxy ( 142, 3 ) = 271 +fallxy ( 142, 4 ) = 270 +fallxy ( 142, 5 ) = 270 +fallxy ( 142, 6 ) = 270 +fallxy ( 142, 7 ) = 281 +fallxy ( 142, 8 ) = 281 +xyphendoy1 ( 142, 1 ) = 0 +xyphendoy1 ( 142, 2 ) = 0 +xyphendoy1 ( 142, 3 ) = 0 +xyphendoy1 ( 142, 4 ) = 0 +xyphendoy1 ( 142, 5 ) = 0 +xyphendoy1 ( 142, 6 ) = 0 +xyphendoy1 ( 142, 7 ) = 0 +xyphendoy1 ( 142, 8 ) = 0 + + ! xlat 14.7500000000000 +greenupxy ( 141, 1 ) = 137 +greenupxy ( 141, 2 ) = 139 +greenupxy ( 141, 3 ) = 188 +greenupxy ( 141, 4 ) = 172 +greenupxy ( 141, 5 ) = 172 +greenupxy ( 141, 6 ) = 172 +greenupxy ( 141, 7 ) = 150 +greenupxy ( 141, 8 ) = 150 +fallxy ( 141, 1 ) = 282 +fallxy ( 141, 2 ) = 272 +fallxy ( 141, 3 ) = 271 +fallxy ( 141, 4 ) = 270 +fallxy ( 141, 5 ) = 270 +fallxy ( 141, 6 ) = 270 +fallxy ( 141, 7 ) = 280 +fallxy ( 141, 8 ) = 280 +xyphendoy1 ( 141, 1 ) = 0 +xyphendoy1 ( 141, 2 ) = 0 +xyphendoy1 ( 141, 3 ) = 0 +xyphendoy1 ( 141, 4 ) = 0 +xyphendoy1 ( 141, 5 ) = 0 +xyphendoy1 ( 141, 6 ) = 0 +xyphendoy1 ( 141, 7 ) = 0 +xyphendoy1 ( 141, 8 ) = 0 + + ! xlat 14.2500000000000 +greenupxy ( 140, 1 ) = 135 +greenupxy ( 140, 2 ) = 138 +greenupxy ( 140, 3 ) = 189 +greenupxy ( 140, 4 ) = 173 +greenupxy ( 140, 5 ) = 173 +greenupxy ( 140, 6 ) = 173 +greenupxy ( 140, 7 ) = 154 +greenupxy ( 140, 8 ) = 154 +fallxy ( 140, 1 ) = 283 +fallxy ( 140, 2 ) = 272 +fallxy ( 140, 3 ) = 271 +fallxy ( 140, 4 ) = 269 +fallxy ( 140, 5 ) = 269 +fallxy ( 140, 6 ) = 269 +fallxy ( 140, 7 ) = 279 +fallxy ( 140, 8 ) = 279 +xyphendoy1 ( 140, 1 ) = 0 +xyphendoy1 ( 140, 2 ) = 0 +xyphendoy1 ( 140, 3 ) = 0 +xyphendoy1 ( 140, 4 ) = 0 +xyphendoy1 ( 140, 5 ) = 0 +xyphendoy1 ( 140, 6 ) = 0 +xyphendoy1 ( 140, 7 ) = 0 +xyphendoy1 ( 140, 8 ) = 0 + + ! xlat 13.7500000000000 +greenupxy ( 139, 1 ) = 136 +greenupxy ( 139, 2 ) = 138 +greenupxy ( 139, 3 ) = 189 +greenupxy ( 139, 4 ) = 174 +greenupxy ( 139, 5 ) = 174 +greenupxy ( 139, 6 ) = 174 +greenupxy ( 139, 7 ) = 157 +greenupxy ( 139, 8 ) = 157 +fallxy ( 139, 1 ) = 284 +fallxy ( 139, 2 ) = 272 +fallxy ( 139, 3 ) = 269 +fallxy ( 139, 4 ) = 269 +fallxy ( 139, 5 ) = 269 +fallxy ( 139, 6 ) = 269 +fallxy ( 139, 7 ) = 278 +fallxy ( 139, 8 ) = 278 +xyphendoy1 ( 139, 1 ) = 0 +xyphendoy1 ( 139, 2 ) = 0 +xyphendoy1 ( 139, 3 ) = 0 +xyphendoy1 ( 139, 4 ) = 0 +xyphendoy1 ( 139, 5 ) = 0 +xyphendoy1 ( 139, 6 ) = 0 +xyphendoy1 ( 139, 7 ) = 0 +xyphendoy1 ( 139, 8 ) = 0 + + ! xlat 13.2500000000000 +greenupxy ( 138, 1 ) = 134 +greenupxy ( 138, 2 ) = 138 +greenupxy ( 138, 3 ) = 185 +greenupxy ( 138, 4 ) = 174 +greenupxy ( 138, 5 ) = 174 +greenupxy ( 138, 6 ) = 174 +greenupxy ( 138, 7 ) = 159 +greenupxy ( 138, 8 ) = 159 +fallxy ( 138, 1 ) = 284 +fallxy ( 138, 2 ) = 273 +fallxy ( 138, 3 ) = 268 +fallxy ( 138, 4 ) = 269 +fallxy ( 138, 5 ) = 269 +fallxy ( 138, 6 ) = 269 +fallxy ( 138, 7 ) = 278 +fallxy ( 138, 8 ) = 278 +xyphendoy1 ( 138, 1 ) = 0 +xyphendoy1 ( 138, 2 ) = 0 +xyphendoy1 ( 138, 3 ) = 0 +xyphendoy1 ( 138, 4 ) = 0 +xyphendoy1 ( 138, 5 ) = 0 +xyphendoy1 ( 138, 6 ) = 0 +xyphendoy1 ( 138, 7 ) = 0 +xyphendoy1 ( 138, 8 ) = 0 + + ! xlat 12.7500000000000 +greenupxy ( 137, 1 ) = 134 +greenupxy ( 137, 2 ) = 138 +greenupxy ( 137, 3 ) = 178 +greenupxy ( 137, 4 ) = 173 +greenupxy ( 137, 5 ) = 173 +greenupxy ( 137, 6 ) = 173 +greenupxy ( 137, 7 ) = 163 +greenupxy ( 137, 8 ) = 163 +fallxy ( 137, 1 ) = 284 +fallxy ( 137, 2 ) = 273 +fallxy ( 137, 3 ) = 266 +fallxy ( 137, 4 ) = 269 +fallxy ( 137, 5 ) = 269 +fallxy ( 137, 6 ) = 269 +fallxy ( 137, 7 ) = 278 +fallxy ( 137, 8 ) = 278 +xyphendoy1 ( 137, 1 ) = 0 +xyphendoy1 ( 137, 2 ) = 0 +xyphendoy1 ( 137, 3 ) = 0 +xyphendoy1 ( 137, 4 ) = 0 +xyphendoy1 ( 137, 5 ) = 0 +xyphendoy1 ( 137, 6 ) = 0 +xyphendoy1 ( 137, 7 ) = 0 +xyphendoy1 ( 137, 8 ) = 0 + + ! xlat 12.2500000000000 +greenupxy ( 136, 1 ) = 131 +greenupxy ( 136, 2 ) = 137 +greenupxy ( 136, 3 ) = 176 +greenupxy ( 136, 4 ) = 167 +greenupxy ( 136, 5 ) = 167 +greenupxy ( 136, 6 ) = 167 +greenupxy ( 136, 7 ) = 166 +greenupxy ( 136, 8 ) = 166 +fallxy ( 136, 1 ) = 284 +fallxy ( 136, 2 ) = 273 +fallxy ( 136, 3 ) = 264 +fallxy ( 136, 4 ) = 268 +fallxy ( 136, 5 ) = 268 +fallxy ( 136, 6 ) = 268 +fallxy ( 136, 7 ) = 278 +fallxy ( 136, 8 ) = 278 +xyphendoy1 ( 136, 1 ) = 0 +xyphendoy1 ( 136, 2 ) = 0 +xyphendoy1 ( 136, 3 ) = 0 +xyphendoy1 ( 136, 4 ) = 0 +xyphendoy1 ( 136, 5 ) = 0 +xyphendoy1 ( 136, 6 ) = 0 +xyphendoy1 ( 136, 7 ) = 0 +xyphendoy1 ( 136, 8 ) = 0 + + ! xlat 11.7500000000000 +greenupxy ( 135, 1 ) = 130 +greenupxy ( 135, 2 ) = 136 +greenupxy ( 135, 3 ) = 176 +greenupxy ( 135, 4 ) = 161 +greenupxy ( 135, 5 ) = 161 +greenupxy ( 135, 6 ) = 161 +greenupxy ( 135, 7 ) = 169 +greenupxy ( 135, 8 ) = 169 +fallxy ( 135, 1 ) = 284 +fallxy ( 135, 2 ) = 274 +fallxy ( 135, 3 ) = 263 +fallxy ( 135, 4 ) = 267 +fallxy ( 135, 5 ) = 267 +fallxy ( 135, 6 ) = 267 +fallxy ( 135, 7 ) = 277 +fallxy ( 135, 8 ) = 277 +xyphendoy1 ( 135, 1 ) = 0 +xyphendoy1 ( 135, 2 ) = 0 +xyphendoy1 ( 135, 3 ) = 0 +xyphendoy1 ( 135, 4 ) = 0 +xyphendoy1 ( 135, 5 ) = 0 +xyphendoy1 ( 135, 6 ) = 0 +xyphendoy1 ( 135, 7 ) = 0 +xyphendoy1 ( 135, 8 ) = 0 + + ! xlat 11.2500000000000 +greenupxy ( 134, 1 ) = 138 +greenupxy ( 134, 2 ) = 134 +greenupxy ( 134, 3 ) = 174 +greenupxy ( 134, 4 ) = 154 +greenupxy ( 134, 5 ) = 154 +greenupxy ( 134, 6 ) = 154 +greenupxy ( 134, 7 ) = 171 +greenupxy ( 134, 8 ) = 171 +fallxy ( 134, 1 ) = 287 +fallxy ( 134, 2 ) = 274 +fallxy ( 134, 3 ) = 263 +fallxy ( 134, 4 ) = 268 +fallxy ( 134, 5 ) = 268 +fallxy ( 134, 6 ) = 268 +fallxy ( 134, 7 ) = 277 +fallxy ( 134, 8 ) = 277 +xyphendoy1 ( 134, 1 ) = 0 +xyphendoy1 ( 134, 2 ) = 0 +xyphendoy1 ( 134, 3 ) = 0 +xyphendoy1 ( 134, 4 ) = 0 +xyphendoy1 ( 134, 5 ) = 0 +xyphendoy1 ( 134, 6 ) = 0 +xyphendoy1 ( 134, 7 ) = 0 +xyphendoy1 ( 134, 8 ) = 0 + + ! xlat 10.7500000000000 +greenupxy ( 133, 1 ) = 135 +greenupxy ( 133, 2 ) = 132 +greenupxy ( 133, 3 ) = 172 +greenupxy ( 133, 4 ) = 147 +greenupxy ( 133, 5 ) = 147 +greenupxy ( 133, 6 ) = 147 +greenupxy ( 133, 7 ) = 169 +greenupxy ( 133, 8 ) = 169 +fallxy ( 133, 1 ) = 286 +fallxy ( 133, 2 ) = 273 +fallxy ( 133, 3 ) = 263 +fallxy ( 133, 4 ) = 268 +fallxy ( 133, 5 ) = 268 +fallxy ( 133, 6 ) = 268 +fallxy ( 133, 7 ) = 276 +fallxy ( 133, 8 ) = 276 +xyphendoy1 ( 133, 1 ) = 0 +xyphendoy1 ( 133, 2 ) = 0 +xyphendoy1 ( 133, 3 ) = 0 +xyphendoy1 ( 133, 4 ) = 0 +xyphendoy1 ( 133, 5 ) = 0 +xyphendoy1 ( 133, 6 ) = 0 +xyphendoy1 ( 133, 7 ) = 0 +xyphendoy1 ( 133, 8 ) = 0 + + ! xlat 10.2500000000000 +greenupxy ( 132, 1 ) = 137 +greenupxy ( 132, 2 ) = 128 +greenupxy ( 132, 3 ) = 158 +greenupxy ( 132, 4 ) = 139 +greenupxy ( 132, 5 ) = 139 +greenupxy ( 132, 6 ) = 139 +greenupxy ( 132, 7 ) = 165 +greenupxy ( 132, 8 ) = 165 +fallxy ( 132, 1 ) = 286 +fallxy ( 132, 2 ) = 273 +fallxy ( 132, 3 ) = 249 +fallxy ( 132, 4 ) = 268 +fallxy ( 132, 5 ) = 268 +fallxy ( 132, 6 ) = 268 +fallxy ( 132, 7 ) = 274 +fallxy ( 132, 8 ) = 274 +xyphendoy1 ( 132, 1 ) = 0 +xyphendoy1 ( 132, 2 ) = 0 +xyphendoy1 ( 132, 3 ) = 0 +xyphendoy1 ( 132, 4 ) = 0 +xyphendoy1 ( 132, 5 ) = 0 +xyphendoy1 ( 132, 6 ) = 0 +xyphendoy1 ( 132, 7 ) = 0 +xyphendoy1 ( 132, 8 ) = 0 + + ! xlat 9.75000000000000 +greenupxy ( 131, 1 ) = 129 +greenupxy ( 131, 2 ) = 123 +greenupxy ( 131, 3 ) = 145 +greenupxy ( 131, 4 ) = 133 +greenupxy ( 131, 5 ) = 133 +greenupxy ( 131, 6 ) = 133 +greenupxy ( 131, 7 ) = 158 +greenupxy ( 131, 8 ) = 158 +fallxy ( 131, 1 ) = 286 +fallxy ( 131, 2 ) = 272 +fallxy ( 131, 3 ) = 235 +fallxy ( 131, 4 ) = 268 +fallxy ( 131, 5 ) = 268 +fallxy ( 131, 6 ) = 268 +fallxy ( 131, 7 ) = 273 +fallxy ( 131, 8 ) = 273 +xyphendoy1 ( 131, 1 ) = 0 +xyphendoy1 ( 131, 2 ) = 0 +xyphendoy1 ( 131, 3 ) = 0 +xyphendoy1 ( 131, 4 ) = 0 +xyphendoy1 ( 131, 5 ) = 0 +xyphendoy1 ( 131, 6 ) = 0 +xyphendoy1 ( 131, 7 ) = 0 +xyphendoy1 ( 131, 8 ) = 0 + + ! xlat 9.25000000000000 +greenupxy ( 130, 1 ) = 122 +greenupxy ( 130, 2 ) = 118 +greenupxy ( 130, 3 ) = 132 +greenupxy ( 130, 4 ) = 126 +greenupxy ( 130, 5 ) = 126 +greenupxy ( 130, 6 ) = 126 +greenupxy ( 130, 7 ) = 152 +greenupxy ( 130, 8 ) = 152 +fallxy ( 130, 1 ) = 285 +fallxy ( 130, 2 ) = 272 +fallxy ( 130, 3 ) = 220 +fallxy ( 130, 4 ) = 268 +fallxy ( 130, 5 ) = 268 +fallxy ( 130, 6 ) = 268 +fallxy ( 130, 7 ) = 274 +fallxy ( 130, 8 ) = 274 +xyphendoy1 ( 130, 1 ) = 0 +xyphendoy1 ( 130, 2 ) = 0 +xyphendoy1 ( 130, 3 ) = 0 +xyphendoy1 ( 130, 4 ) = 0 +xyphendoy1 ( 130, 5 ) = 0 +xyphendoy1 ( 130, 6 ) = 0 +xyphendoy1 ( 130, 7 ) = 0 +xyphendoy1 ( 130, 8 ) = 0 + + ! xlat 8.75000000000000 +greenupxy ( 129, 1 ) = 122 +greenupxy ( 129, 2 ) = 112 +greenupxy ( 129, 3 ) = 127 +greenupxy ( 129, 4 ) = 119 +greenupxy ( 129, 5 ) = 119 +greenupxy ( 129, 6 ) = 119 +greenupxy ( 129, 7 ) = 145 +greenupxy ( 129, 8 ) = 145 +fallxy ( 129, 1 ) = 285 +fallxy ( 129, 2 ) = 272 +fallxy ( 129, 3 ) = 218 +fallxy ( 129, 4 ) = 268 +fallxy ( 129, 5 ) = 268 +fallxy ( 129, 6 ) = 268 +fallxy ( 129, 7 ) = 273 +fallxy ( 129, 8 ) = 273 +xyphendoy1 ( 129, 1 ) = 0 +xyphendoy1 ( 129, 2 ) = 0 +xyphendoy1 ( 129, 3 ) = 0 +xyphendoy1 ( 129, 4 ) = 0 +xyphendoy1 ( 129, 5 ) = 0 +xyphendoy1 ( 129, 6 ) = 0 +xyphendoy1 ( 129, 7 ) = 0 +xyphendoy1 ( 129, 8 ) = 0 + + ! xlat 8.25000000000000 +greenupxy ( 128, 1 ) = 116 +greenupxy ( 128, 2 ) = 108 +greenupxy ( 128, 3 ) = 114 +greenupxy ( 128, 4 ) = 111 +greenupxy ( 128, 5 ) = 111 +greenupxy ( 128, 6 ) = 111 +greenupxy ( 128, 7 ) = 134 +greenupxy ( 128, 8 ) = 134 +fallxy ( 128, 1 ) = 285 +fallxy ( 128, 2 ) = 271 +fallxy ( 128, 3 ) = 205 +fallxy ( 128, 4 ) = 268 +fallxy ( 128, 5 ) = 268 +fallxy ( 128, 6 ) = 268 +fallxy ( 128, 7 ) = 272 +fallxy ( 128, 8 ) = 272 +xyphendoy1 ( 128, 1 ) = 0 +xyphendoy1 ( 128, 2 ) = 0 +xyphendoy1 ( 128, 3 ) = 0 +xyphendoy1 ( 128, 4 ) = 0 +xyphendoy1 ( 128, 5 ) = 0 +xyphendoy1 ( 128, 6 ) = 0 +xyphendoy1 ( 128, 7 ) = 0 +xyphendoy1 ( 128, 8 ) = 0 + + ! xlat 7.75000000000000 +greenupxy ( 127, 1 ) = 114 +greenupxy ( 127, 2 ) = 103 +greenupxy ( 127, 3 ) = 102 +greenupxy ( 127, 4 ) = 102 +greenupxy ( 127, 5 ) = 102 +greenupxy ( 127, 6 ) = 102 +greenupxy ( 127, 7 ) = 129 +greenupxy ( 127, 8 ) = 129 +fallxy ( 127, 1 ) = 286 +fallxy ( 127, 2 ) = 271 +fallxy ( 127, 3 ) = 191 +fallxy ( 127, 4 ) = 267 +fallxy ( 127, 5 ) = 267 +fallxy ( 127, 6 ) = 267 +fallxy ( 127, 7 ) = 272 +fallxy ( 127, 8 ) = 272 +xyphendoy1 ( 127, 1 ) = 0 +xyphendoy1 ( 127, 2 ) = 0 +xyphendoy1 ( 127, 3 ) = 0 +xyphendoy1 ( 127, 4 ) = 0 +xyphendoy1 ( 127, 5 ) = 0 +xyphendoy1 ( 127, 6 ) = 0 +xyphendoy1 ( 127, 7 ) = 0 +xyphendoy1 ( 127, 8 ) = 0 + + ! xlat 7.25000000000000 +greenupxy ( 126, 1 ) = 110 +greenupxy ( 126, 2 ) = 100 +greenupxy ( 126, 3 ) = 90 +greenupxy ( 126, 4 ) = 93 +greenupxy ( 126, 5 ) = 93 +greenupxy ( 126, 6 ) = 93 +greenupxy ( 126, 7 ) = 124 +greenupxy ( 126, 8 ) = 124 +fallxy ( 126, 1 ) = 286 +fallxy ( 126, 2 ) = 271 +fallxy ( 126, 3 ) = 185 +fallxy ( 126, 4 ) = 267 +fallxy ( 126, 5 ) = 267 +fallxy ( 126, 6 ) = 267 +fallxy ( 126, 7 ) = 269 +fallxy ( 126, 8 ) = 269 +xyphendoy1 ( 126, 1 ) = 0 +xyphendoy1 ( 126, 2 ) = 0 +xyphendoy1 ( 126, 3 ) = 0 +xyphendoy1 ( 126, 4 ) = 0 +xyphendoy1 ( 126, 5 ) = 0 +xyphendoy1 ( 126, 6 ) = 0 +xyphendoy1 ( 126, 7 ) = 0 +xyphendoy1 ( 126, 8 ) = 0 + + ! xlat 6.75000000000000 +greenupxy ( 125, 1 ) = 107 +greenupxy ( 125, 2 ) = 96 +greenupxy ( 125, 3 ) = 79 +greenupxy ( 125, 4 ) = 85 +greenupxy ( 125, 5 ) = 85 +greenupxy ( 125, 6 ) = 85 +greenupxy ( 125, 7 ) = 119 +greenupxy ( 125, 8 ) = 119 +fallxy ( 125, 1 ) = 284 +fallxy ( 125, 2 ) = 271 +fallxy ( 125, 3 ) = 178 +fallxy ( 125, 4 ) = 267 +fallxy ( 125, 5 ) = 267 +fallxy ( 125, 6 ) = 267 +fallxy ( 125, 7 ) = 270 +fallxy ( 125, 8 ) = 270 +xyphendoy1 ( 125, 1 ) = 0 +xyphendoy1 ( 125, 2 ) = 0 +xyphendoy1 ( 125, 3 ) = 0 +xyphendoy1 ( 125, 4 ) = 0 +xyphendoy1 ( 125, 5 ) = 0 +xyphendoy1 ( 125, 6 ) = 0 +xyphendoy1 ( 125, 7 ) = 0 +xyphendoy1 ( 125, 8 ) = 0 + + ! xlat 6.25000000000000 +greenupxy ( 124, 1 ) = 103 +greenupxy ( 124, 2 ) = 93 +greenupxy ( 124, 3 ) = 70 +greenupxy ( 124, 4 ) = 80 +greenupxy ( 124, 5 ) = 80 +greenupxy ( 124, 6 ) = 80 +greenupxy ( 124, 7 ) = 115 +greenupxy ( 124, 8 ) = 115 +fallxy ( 124, 1 ) = 283 +fallxy ( 124, 2 ) = 272 +fallxy ( 124, 3 ) = 162 +fallxy ( 124, 4 ) = 266 +fallxy ( 124, 5 ) = 266 +fallxy ( 124, 6 ) = 266 +fallxy ( 124, 7 ) = 271 +fallxy ( 124, 8 ) = 271 +xyphendoy1 ( 124, 1 ) = 0 +xyphendoy1 ( 124, 2 ) = 0 +xyphendoy1 ( 124, 3 ) = 0 +xyphendoy1 ( 124, 4 ) = 0 +xyphendoy1 ( 124, 5 ) = 0 +xyphendoy1 ( 124, 6 ) = 0 +xyphendoy1 ( 124, 7 ) = 0 +xyphendoy1 ( 124, 8 ) = 0 + + ! xlat 5.75000000000000 +greenupxy ( 123, 1 ) = 102 +greenupxy ( 123, 2 ) = 91 +greenupxy ( 123, 3 ) = 62 +greenupxy ( 123, 4 ) = 75 +greenupxy ( 123, 5 ) = 75 +greenupxy ( 123, 6 ) = 75 +greenupxy ( 123, 7 ) = 110 +greenupxy ( 123, 8 ) = 110 +fallxy ( 123, 1 ) = 278 +fallxy ( 123, 2 ) = 272 +fallxy ( 123, 3 ) = 148 +fallxy ( 123, 4 ) = 266 +fallxy ( 123, 5 ) = 266 +fallxy ( 123, 6 ) = 266 +fallxy ( 123, 7 ) = 272 +fallxy ( 123, 8 ) = 272 +xyphendoy1 ( 123, 1 ) = 0 +xyphendoy1 ( 123, 2 ) = 0 +xyphendoy1 ( 123, 3 ) = 0 +xyphendoy1 ( 123, 4 ) = 0 +xyphendoy1 ( 123, 5 ) = 0 +xyphendoy1 ( 123, 6 ) = 0 +xyphendoy1 ( 123, 7 ) = 0 +xyphendoy1 ( 123, 8 ) = 0 + + ! xlat 5.25000000000000 +greenupxy ( 122, 1 ) = 96 +greenupxy ( 122, 2 ) = 88 +greenupxy ( 122, 3 ) = 52 +greenupxy ( 122, 4 ) = 69 +greenupxy ( 122, 5 ) = 69 +greenupxy ( 122, 6 ) = 69 +greenupxy ( 122, 7 ) = 105 +greenupxy ( 122, 8 ) = 105 +fallxy ( 122, 1 ) = 276 +fallxy ( 122, 2 ) = 269 +fallxy ( 122, 3 ) = 133 +fallxy ( 122, 4 ) = 265 +fallxy ( 122, 5 ) = 265 +fallxy ( 122, 6 ) = 265 +fallxy ( 122, 7 ) = 271 +fallxy ( 122, 8 ) = 271 +xyphendoy1 ( 122, 1 ) = 0 +xyphendoy1 ( 122, 2 ) = 0 +xyphendoy1 ( 122, 3 ) = 0 +xyphendoy1 ( 122, 4 ) = 0 +xyphendoy1 ( 122, 5 ) = 0 +xyphendoy1 ( 122, 6 ) = 0 +xyphendoy1 ( 122, 7 ) = 0 +xyphendoy1 ( 122, 8 ) = 0 + + ! xlat 4.75000000000000 +greenupxy ( 121, 1 ) = 93 +greenupxy ( 121, 2 ) = 84 +greenupxy ( 121, 3 ) = 41 +greenupxy ( 121, 4 ) = 61 +greenupxy ( 121, 5 ) = 61 +greenupxy ( 121, 6 ) = 61 +greenupxy ( 121, 7 ) = 96 +greenupxy ( 121, 8 ) = 96 +fallxy ( 121, 1 ) = 276 +fallxy ( 121, 2 ) = 267 +fallxy ( 121, 3 ) = 117 +fallxy ( 121, 4 ) = 265 +fallxy ( 121, 5 ) = 265 +fallxy ( 121, 6 ) = 265 +fallxy ( 121, 7 ) = 269 +fallxy ( 121, 8 ) = 269 +xyphendoy1 ( 121, 1 ) = 0 +xyphendoy1 ( 121, 2 ) = 0 +xyphendoy1 ( 121, 3 ) = 0 +xyphendoy1 ( 121, 4 ) = 0 +xyphendoy1 ( 121, 5 ) = 0 +xyphendoy1 ( 121, 6 ) = 0 +xyphendoy1 ( 121, 7 ) = 0 +xyphendoy1 ( 121, 8 ) = 0 + + ! xlat 4.25000000000000 +greenupxy ( 120, 1 ) = 93 +greenupxy ( 120, 2 ) = 71 +greenupxy ( 120, 3 ) = 34 +greenupxy ( 120, 4 ) = 55 +greenupxy ( 120, 5 ) = 55 +greenupxy ( 120, 6 ) = 55 +greenupxy ( 120, 7 ) = 85 +greenupxy ( 120, 8 ) = 85 +fallxy ( 120, 1 ) = 276 +fallxy ( 120, 2 ) = 266 +fallxy ( 120, 3 ) = 102 +fallxy ( 120, 4 ) = 264 +fallxy ( 120, 5 ) = 264 +fallxy ( 120, 6 ) = 264 +fallxy ( 120, 7 ) = 267 +fallxy ( 120, 8 ) = 267 +xyphendoy1 ( 120, 1 ) = 0 +xyphendoy1 ( 120, 2 ) = 0 +xyphendoy1 ( 120, 3 ) = 0 +xyphendoy1 ( 120, 4 ) = 0 +xyphendoy1 ( 120, 5 ) = 0 +xyphendoy1 ( 120, 6 ) = 0 +xyphendoy1 ( 120, 7 ) = 0 +xyphendoy1 ( 120, 8 ) = 0 + + ! xlat 3.75000000000000 +greenupxy ( 119, 1 ) = 90 +greenupxy ( 119, 2 ) = 58 +greenupxy ( 119, 3 ) = 32 +greenupxy ( 119, 4 ) = 48 +greenupxy ( 119, 5 ) = 48 +greenupxy ( 119, 6 ) = 48 +greenupxy ( 119, 7 ) = 79 +greenupxy ( 119, 8 ) = 79 +fallxy ( 119, 1 ) = 259 +fallxy ( 119, 2 ) = 266 +fallxy ( 119, 3 ) = 87 +fallxy ( 119, 4 ) = 265 +fallxy ( 119, 5 ) = 265 +fallxy ( 119, 6 ) = 265 +fallxy ( 119, 7 ) = 267 +fallxy ( 119, 8 ) = 267 +xyphendoy1 ( 119, 1 ) = 0 +xyphendoy1 ( 119, 2 ) = 0 +xyphendoy1 ( 119, 3 ) = 0 +xyphendoy1 ( 119, 4 ) = 0 +xyphendoy1 ( 119, 5 ) = 0 +xyphendoy1 ( 119, 6 ) = 0 +xyphendoy1 ( 119, 7 ) = 0 +xyphendoy1 ( 119, 8 ) = 0 + + ! xlat 3.25000000000000 +greenupxy ( 118, 1 ) = 90 +greenupxy ( 118, 2 ) = 51 +greenupxy ( 118, 3 ) = 13 +greenupxy ( 118, 4 ) = 38 +greenupxy ( 118, 5 ) = 38 +greenupxy ( 118, 6 ) = 38 +greenupxy ( 118, 7 ) = 67 +greenupxy ( 118, 8 ) = 67 +fallxy ( 118, 1 ) = 259 +fallxy ( 118, 2 ) = 264 +fallxy ( 118, 3 ) = 84 +fallxy ( 118, 4 ) = 265 +fallxy ( 118, 5 ) = 265 +fallxy ( 118, 6 ) = 265 +fallxy ( 118, 7 ) = 266 +fallxy ( 118, 8 ) = 266 +xyphendoy1 ( 118, 1 ) = 0 +xyphendoy1 ( 118, 2 ) = 0 +xyphendoy1 ( 118, 3 ) = 0 +xyphendoy1 ( 118, 4 ) = 0 +xyphendoy1 ( 118, 5 ) = 0 +xyphendoy1 ( 118, 6 ) = 0 +xyphendoy1 ( 118, 7 ) = 0 +xyphendoy1 ( 118, 8 ) = 0 + + ! xlat 2.75000000000000 +greenupxy ( 117, 1 ) = 81 +greenupxy ( 117, 2 ) = 42 +greenupxy ( 117, 3 ) = 8 +greenupxy ( 117, 4 ) = 34 +greenupxy ( 117, 5 ) = 34 +greenupxy ( 117, 6 ) = 34 +greenupxy ( 117, 7 ) = 57 +greenupxy ( 117, 8 ) = 57 +fallxy ( 117, 1 ) = 251 +fallxy ( 117, 2 ) = 253 +fallxy ( 117, 3 ) = 83 +fallxy ( 117, 4 ) = 241 +fallxy ( 117, 5 ) = 241 +fallxy ( 117, 6 ) = 241 +fallxy ( 117, 7 ) = 258 +fallxy ( 117, 8 ) = 258 +xyphendoy1 ( 117, 1 ) = 0 +xyphendoy1 ( 117, 2 ) = 0 +xyphendoy1 ( 117, 3 ) = 0 +xyphendoy1 ( 117, 4 ) = 0 +xyphendoy1 ( 117, 5 ) = 0 +xyphendoy1 ( 117, 6 ) = 0 +xyphendoy1 ( 117, 7 ) = 0 +xyphendoy1 ( 117, 8 ) = 0 + + ! xlat 2.25000000000000 +greenupxy ( 116, 1 ) = 67 +greenupxy ( 116, 2 ) = 35 +greenupxy ( 116, 3 ) = 3 +greenupxy ( 116, 4 ) = 26 +greenupxy ( 116, 5 ) = 26 +greenupxy ( 116, 6 ) = 26 +greenupxy ( 116, 7 ) = 48 +greenupxy ( 116, 8 ) = 48 +fallxy ( 116, 1 ) = 245 +fallxy ( 116, 2 ) = 240 +fallxy ( 116, 3 ) = 88 +fallxy ( 116, 4 ) = 226 +fallxy ( 116, 5 ) = 226 +fallxy ( 116, 6 ) = 226 +fallxy ( 116, 7 ) = 249 +fallxy ( 116, 8 ) = 249 +xyphendoy1 ( 116, 1 ) = 0 +xyphendoy1 ( 116, 2 ) = 0 +xyphendoy1 ( 116, 3 ) = 0 +xyphendoy1 ( 116, 4 ) = 0 +xyphendoy1 ( 116, 5 ) = 0 +xyphendoy1 ( 116, 6 ) = 0 +xyphendoy1 ( 116, 7 ) = 0 +xyphendoy1 ( 116, 8 ) = 0 + + ! xlat 1.75000000000000 +greenupxy ( 115, 1 ) = 51 +greenupxy ( 115, 2 ) = 24 +greenupxy ( 115, 3 ) = 363 +greenupxy ( 115, 4 ) = 19 +greenupxy ( 115, 5 ) = 19 +greenupxy ( 115, 6 ) = 19 +greenupxy ( 115, 7 ) = 38 +greenupxy ( 115, 8 ) = 38 +fallxy ( 115, 1 ) = 231 +fallxy ( 115, 2 ) = 226 +fallxy ( 115, 3 ) = 87 +fallxy ( 115, 4 ) = 210 +fallxy ( 115, 5 ) = 210 +fallxy ( 115, 6 ) = 210 +fallxy ( 115, 7 ) = 242 +fallxy ( 115, 8 ) = 242 +xyphendoy1 ( 115, 1 ) = 0 +xyphendoy1 ( 115, 2 ) = 0 +xyphendoy1 ( 115, 3 ) = 2 +xyphendoy1 ( 115, 4 ) = 0 +xyphendoy1 ( 115, 5 ) = 0 +xyphendoy1 ( 115, 6 ) = 0 +xyphendoy1 ( 115, 7 ) = 0 +xyphendoy1 ( 115, 8 ) = 0 + + ! xlat 1.25000000000000 +greenupxy ( 114, 1 ) = 58 +greenupxy ( 114, 2 ) = 15 +greenupxy ( 114, 3 ) = 360 +greenupxy ( 114, 4 ) = 10 +greenupxy ( 114, 5 ) = 10 +greenupxy ( 114, 6 ) = 10 +greenupxy ( 114, 7 ) = 30 +greenupxy ( 114, 8 ) = 30 +fallxy ( 114, 1 ) = 231 +fallxy ( 114, 2 ) = 211 +fallxy ( 114, 3 ) = 91 +fallxy ( 114, 4 ) = 194 +fallxy ( 114, 5 ) = 194 +fallxy ( 114, 6 ) = 194 +fallxy ( 114, 7 ) = 233 +fallxy ( 114, 8 ) = 233 +xyphendoy1 ( 114, 1 ) = 0 +xyphendoy1 ( 114, 2 ) = 0 +xyphendoy1 ( 114, 3 ) = 2 +xyphendoy1 ( 114, 4 ) = 0 +xyphendoy1 ( 114, 5 ) = 0 +xyphendoy1 ( 114, 6 ) = 0 +xyphendoy1 ( 114, 7 ) = 0 +xyphendoy1 ( 114, 8 ) = 0 + + ! xlat 0.750000000000000 +greenupxy ( 113, 1 ) = 67 +greenupxy ( 113, 2 ) = 5 +greenupxy ( 113, 3 ) = 358 +greenupxy ( 113, 4 ) = 4 +greenupxy ( 113, 5 ) = 4 +greenupxy ( 113, 6 ) = 4 +greenupxy ( 113, 7 ) = 21 +greenupxy ( 113, 8 ) = 21 +fallxy ( 113, 1 ) = 207 +fallxy ( 113, 2 ) = 196 +fallxy ( 113, 3 ) = 95 +fallxy ( 113, 4 ) = 176 +fallxy ( 113, 5 ) = 176 +fallxy ( 113, 6 ) = 176 +fallxy ( 113, 7 ) = 222 +fallxy ( 113, 8 ) = 222 +xyphendoy1 ( 113, 1 ) = 0 +xyphendoy1 ( 113, 2 ) = 0 +xyphendoy1 ( 113, 3 ) = 2 +xyphendoy1 ( 113, 4 ) = 0 +xyphendoy1 ( 113, 5 ) = 0 +xyphendoy1 ( 113, 6 ) = 0 +xyphendoy1 ( 113, 7 ) = 0 +xyphendoy1 ( 113, 8 ) = 0 + + ! xlat 0.250000000000000 +greenupxy ( 112, 1 ) = 67 +greenupxy ( 112, 2 ) = 365 +greenupxy ( 112, 3 ) = 357 +greenupxy ( 112, 4 ) = 364 +greenupxy ( 112, 5 ) = 364 +greenupxy ( 112, 6 ) = 364 +greenupxy ( 112, 7 ) = 15 +greenupxy ( 112, 8 ) = 15 +fallxy ( 112, 1 ) = 207 +fallxy ( 112, 2 ) = 179 +fallxy ( 112, 3 ) = 85 +fallxy ( 112, 4 ) = 157 +fallxy ( 112, 5 ) = 157 +fallxy ( 112, 6 ) = 157 +fallxy ( 112, 7 ) = 213 +fallxy ( 112, 8 ) = 213 +xyphendoy1 ( 112, 1 ) = 0 +xyphendoy1 ( 112, 2 ) = 2 +xyphendoy1 ( 112, 3 ) = 2 +xyphendoy1 ( 112, 4 ) = 2 +xyphendoy1 ( 112, 5 ) = 2 +xyphendoy1 ( 112, 6 ) = 2 +xyphendoy1 ( 112, 7 ) = 0 +xyphendoy1 ( 112, 8 ) = 0 + + ! xlat -0.250000000000000 +greenupxy ( 111, 1 ) = 67 +greenupxy ( 111, 2 ) = 359 +greenupxy ( 111, 3 ) = 355 +greenupxy ( 111, 4 ) = 360 +greenupxy ( 111, 5 ) = 360 +greenupxy ( 111, 6 ) = 360 +greenupxy ( 111, 7 ) = 13 +greenupxy ( 111, 8 ) = 13 +fallxy ( 111, 1 ) = 207 +fallxy ( 111, 2 ) = 164 +fallxy ( 111, 3 ) = 86 +fallxy ( 111, 4 ) = 140 +fallxy ( 111, 5 ) = 140 +fallxy ( 111, 6 ) = 140 +fallxy ( 111, 7 ) = 202 +fallxy ( 111, 8 ) = 202 +xyphendoy1 ( 111, 1 ) = 0 +xyphendoy1 ( 111, 2 ) = 2 +xyphendoy1 ( 111, 3 ) = 2 +xyphendoy1 ( 111, 4 ) = 2 +xyphendoy1 ( 111, 5 ) = 2 +xyphendoy1 ( 111, 6 ) = 2 +xyphendoy1 ( 111, 7 ) = 0 +xyphendoy1 ( 111, 8 ) = 0 + + ! xlat -0.750000000000000 +greenupxy ( 110, 1 ) = 67 +greenupxy ( 110, 2 ) = 345 +greenupxy ( 110, 3 ) = 353 +greenupxy ( 110, 4 ) = 358 +greenupxy ( 110, 5 ) = 358 +greenupxy ( 110, 6 ) = 358 +greenupxy ( 110, 7 ) = 5 +greenupxy ( 110, 8 ) = 5 +fallxy ( 110, 1 ) = 207 +fallxy ( 110, 2 ) = 148 +fallxy ( 110, 3 ) = 90 +fallxy ( 110, 4 ) = 124 +fallxy ( 110, 5 ) = 124 +fallxy ( 110, 6 ) = 124 +fallxy ( 110, 7 ) = 192 +fallxy ( 110, 8 ) = 192 +xyphendoy1 ( 110, 1 ) = 0 +xyphendoy1 ( 110, 2 ) = 2 +xyphendoy1 ( 110, 3 ) = 2 +xyphendoy1 ( 110, 4 ) = 2 +xyphendoy1 ( 110, 5 ) = 2 +xyphendoy1 ( 110, 6 ) = 2 +xyphendoy1 ( 110, 7 ) = 0 +xyphendoy1 ( 110, 8 ) = 0 + + ! xlat -1.25000000000000 +greenupxy ( 109, 1 ) = 67 +greenupxy ( 109, 2 ) = 329 +greenupxy ( 109, 3 ) = 353 +greenupxy ( 109, 4 ) = 356 +greenupxy ( 109, 5 ) = 356 +greenupxy ( 109, 6 ) = 356 +greenupxy ( 109, 7 ) = 363 +greenupxy ( 109, 8 ) = 363 +fallxy ( 109, 1 ) = 207 +fallxy ( 109, 2 ) = 143 +fallxy ( 109, 3 ) = 93 +fallxy ( 109, 4 ) = 124 +fallxy ( 109, 5 ) = 124 +fallxy ( 109, 6 ) = 124 +fallxy ( 109, 7 ) = 187 +fallxy ( 109, 8 ) = 187 +xyphendoy1 ( 109, 1 ) = 0 +xyphendoy1 ( 109, 2 ) = 2 +xyphendoy1 ( 109, 3 ) = 2 +xyphendoy1 ( 109, 4 ) = 2 +xyphendoy1 ( 109, 5 ) = 2 +xyphendoy1 ( 109, 6 ) = 2 +xyphendoy1 ( 109, 7 ) = 2 +xyphendoy1 ( 109, 8 ) = 2 + + ! xlat -1.75000000000000 +greenupxy ( 108, 1 ) = 48 +greenupxy ( 108, 2 ) = 314 +greenupxy ( 108, 3 ) = 353 +greenupxy ( 108, 4 ) = 355 +greenupxy ( 108, 5 ) = 355 +greenupxy ( 108, 6 ) = 355 +greenupxy ( 108, 7 ) = 354 +greenupxy ( 108, 8 ) = 354 +fallxy ( 108, 1 ) = 187 +fallxy ( 108, 2 ) = 139 +fallxy ( 108, 3 ) = 95 +fallxy ( 108, 4 ) = 124 +fallxy ( 108, 5 ) = 124 +fallxy ( 108, 6 ) = 124 +fallxy ( 108, 7 ) = 177 +fallxy ( 108, 8 ) = 177 +xyphendoy1 ( 108, 1 ) = 0 +xyphendoy1 ( 108, 2 ) = 2 +xyphendoy1 ( 108, 3 ) = 2 +xyphendoy1 ( 108, 4 ) = 2 +xyphendoy1 ( 108, 5 ) = 2 +xyphendoy1 ( 108, 6 ) = 2 +xyphendoy1 ( 108, 7 ) = 2 +xyphendoy1 ( 108, 8 ) = 2 + + ! xlat -2.25000000000000 +greenupxy ( 107, 1 ) = 48 +greenupxy ( 107, 2 ) = 297 +greenupxy ( 107, 3 ) = 351 +greenupxy ( 107, 4 ) = 355 +greenupxy ( 107, 5 ) = 355 +greenupxy ( 107, 6 ) = 355 +greenupxy ( 107, 7 ) = 345 +greenupxy ( 107, 8 ) = 345 +fallxy ( 107, 1 ) = 187 +fallxy ( 107, 2 ) = 135 +fallxy ( 107, 3 ) = 97 +fallxy ( 107, 4 ) = 124 +fallxy ( 107, 5 ) = 124 +fallxy ( 107, 6 ) = 124 +fallxy ( 107, 7 ) = 164 +fallxy ( 107, 8 ) = 164 +xyphendoy1 ( 107, 1 ) = 0 +xyphendoy1 ( 107, 2 ) = 2 +xyphendoy1 ( 107, 3 ) = 2 +xyphendoy1 ( 107, 4 ) = 2 +xyphendoy1 ( 107, 5 ) = 2 +xyphendoy1 ( 107, 6 ) = 2 +xyphendoy1 ( 107, 7 ) = 2 +xyphendoy1 ( 107, 8 ) = 2 + + ! xlat -2.75000000000000 +greenupxy ( 106, 1 ) = 33 +greenupxy ( 106, 2 ) = 293 +greenupxy ( 106, 3 ) = 349 +greenupxy ( 106, 4 ) = 351 +greenupxy ( 106, 5 ) = 351 +greenupxy ( 106, 6 ) = 351 +greenupxy ( 106, 7 ) = 336 +greenupxy ( 106, 8 ) = 336 +fallxy ( 106, 1 ) = 162 +fallxy ( 106, 2 ) = 131 +fallxy ( 106, 3 ) = 98 +fallxy ( 106, 4 ) = 123 +fallxy ( 106, 5 ) = 123 +fallxy ( 106, 6 ) = 123 +fallxy ( 106, 7 ) = 152 +fallxy ( 106, 8 ) = 152 +xyphendoy1 ( 106, 1 ) = 0 +xyphendoy1 ( 106, 2 ) = 2 +xyphendoy1 ( 106, 3 ) = 2 +xyphendoy1 ( 106, 4 ) = 2 +xyphendoy1 ( 106, 5 ) = 2 +xyphendoy1 ( 106, 6 ) = 2 +xyphendoy1 ( 106, 7 ) = 2 +xyphendoy1 ( 106, 8 ) = 2 + + ! xlat -3.25000000000000 +greenupxy ( 105, 1 ) = 26 +greenupxy ( 105, 2 ) = 289 +greenupxy ( 105, 3 ) = 347 +greenupxy ( 105, 4 ) = 347 +greenupxy ( 105, 5 ) = 347 +greenupxy ( 105, 6 ) = 347 +greenupxy ( 105, 7 ) = 327 +greenupxy ( 105, 8 ) = 327 +fallxy ( 105, 1 ) = 151 +fallxy ( 105, 2 ) = 119 +fallxy ( 105, 3 ) = 100 +fallxy ( 105, 4 ) = 122 +fallxy ( 105, 5 ) = 122 +fallxy ( 105, 6 ) = 122 +fallxy ( 105, 7 ) = 142 +fallxy ( 105, 8 ) = 142 +xyphendoy1 ( 105, 1 ) = 0 +xyphendoy1 ( 105, 2 ) = 2 +xyphendoy1 ( 105, 3 ) = 2 +xyphendoy1 ( 105, 4 ) = 2 +xyphendoy1 ( 105, 5 ) = 2 +xyphendoy1 ( 105, 6 ) = 2 +xyphendoy1 ( 105, 7 ) = 2 +xyphendoy1 ( 105, 8 ) = 2 + + ! xlat -3.75000000000000 +greenupxy ( 104, 1 ) = 26 +greenupxy ( 104, 2 ) = 285 +greenupxy ( 104, 3 ) = 347 +greenupxy ( 104, 4 ) = 345 +greenupxy ( 104, 5 ) = 345 +greenupxy ( 104, 6 ) = 345 +greenupxy ( 104, 7 ) = 323 +greenupxy ( 104, 8 ) = 323 +fallxy ( 104, 1 ) = 151 +fallxy ( 104, 2 ) = 108 +fallxy ( 104, 3 ) = 102 +fallxy ( 104, 4 ) = 121 +fallxy ( 104, 5 ) = 121 +fallxy ( 104, 6 ) = 121 +fallxy ( 104, 7 ) = 132 +fallxy ( 104, 8 ) = 132 +xyphendoy1 ( 104, 1 ) = 0 +xyphendoy1 ( 104, 2 ) = 2 +xyphendoy1 ( 104, 3 ) = 2 +xyphendoy1 ( 104, 4 ) = 2 +xyphendoy1 ( 104, 5 ) = 2 +xyphendoy1 ( 104, 6 ) = 2 +xyphendoy1 ( 104, 7 ) = 2 +xyphendoy1 ( 104, 8 ) = 2 + + ! xlat -4.25000000000000 +greenupxy ( 103, 1 ) = 26 +greenupxy ( 103, 2 ) = 281 +greenupxy ( 103, 3 ) = 345 +greenupxy ( 103, 4 ) = 343 +greenupxy ( 103, 5 ) = 343 +greenupxy ( 103, 6 ) = 343 +greenupxy ( 103, 7 ) = 320 +greenupxy ( 103, 8 ) = 320 +fallxy ( 103, 1 ) = 151 +fallxy ( 103, 2 ) = 106 +fallxy ( 103, 3 ) = 104 +fallxy ( 103, 4 ) = 120 +fallxy ( 103, 5 ) = 120 +fallxy ( 103, 6 ) = 120 +fallxy ( 103, 7 ) = 123 +fallxy ( 103, 8 ) = 123 +xyphendoy1 ( 103, 1 ) = 0 +xyphendoy1 ( 103, 2 ) = 2 +xyphendoy1 ( 103, 3 ) = 2 +xyphendoy1 ( 103, 4 ) = 2 +xyphendoy1 ( 103, 5 ) = 2 +xyphendoy1 ( 103, 6 ) = 2 +xyphendoy1 ( 103, 7 ) = 2 +xyphendoy1 ( 103, 8 ) = 2 + + ! xlat -4.75000000000000 +greenupxy ( 102, 1 ) = 362 +greenupxy ( 102, 2 ) = 278 +greenupxy ( 102, 3 ) = 344 +greenupxy ( 102, 4 ) = 341 +greenupxy ( 102, 5 ) = 341 +greenupxy ( 102, 6 ) = 341 +greenupxy ( 102, 7 ) = 320 +greenupxy ( 102, 8 ) = 320 +fallxy ( 102, 1 ) = 133 +fallxy ( 102, 2 ) = 104 +fallxy ( 102, 3 ) = 107 +fallxy ( 102, 4 ) = 119 +fallxy ( 102, 5 ) = 119 +fallxy ( 102, 6 ) = 119 +fallxy ( 102, 7 ) = 122 +fallxy ( 102, 8 ) = 122 +xyphendoy1 ( 102, 1 ) = 2 +xyphendoy1 ( 102, 2 ) = 2 +xyphendoy1 ( 102, 3 ) = 2 +xyphendoy1 ( 102, 4 ) = 2 +xyphendoy1 ( 102, 5 ) = 2 +xyphendoy1 ( 102, 6 ) = 2 +xyphendoy1 ( 102, 7 ) = 2 +xyphendoy1 ( 102, 8 ) = 2 + + ! xlat -5.25000000000000 +greenupxy ( 101, 1 ) = 362 +greenupxy ( 101, 2 ) = 271 +greenupxy ( 101, 3 ) = 347 +greenupxy ( 101, 4 ) = 343 +greenupxy ( 101, 5 ) = 343 +greenupxy ( 101, 6 ) = 343 +greenupxy ( 101, 7 ) = 318 +greenupxy ( 101, 8 ) = 318 +fallxy ( 101, 1 ) = 133 +fallxy ( 101, 2 ) = 102 +fallxy ( 101, 3 ) = 110 +fallxy ( 101, 4 ) = 119 +fallxy ( 101, 5 ) = 119 +fallxy ( 101, 6 ) = 119 +fallxy ( 101, 7 ) = 122 +fallxy ( 101, 8 ) = 122 +xyphendoy1 ( 101, 1 ) = 2 +xyphendoy1 ( 101, 2 ) = 2 +xyphendoy1 ( 101, 3 ) = 2 +xyphendoy1 ( 101, 4 ) = 2 +xyphendoy1 ( 101, 5 ) = 2 +xyphendoy1 ( 101, 6 ) = 2 +xyphendoy1 ( 101, 7 ) = 2 +xyphendoy1 ( 101, 8 ) = 2 + + ! xlat -5.75000000000000 +greenupxy ( 100, 1 ) = 355 +greenupxy ( 100, 2 ) = 265 +greenupxy ( 100, 3 ) = 348 +greenupxy ( 100, 4 ) = 339 +greenupxy ( 100, 5 ) = 339 +greenupxy ( 100, 6 ) = 339 +greenupxy ( 100, 7 ) = 316 +greenupxy ( 100, 8 ) = 316 +fallxy ( 100, 1 ) = 131 +fallxy ( 100, 2 ) = 97 +fallxy ( 100, 3 ) = 112 +fallxy ( 100, 4 ) = 120 +fallxy ( 100, 5 ) = 120 +fallxy ( 100, 6 ) = 120 +fallxy ( 100, 7 ) = 118 +fallxy ( 100, 8 ) = 118 +xyphendoy1 ( 100, 1 ) = 2 +xyphendoy1 ( 100, 2 ) = 2 +xyphendoy1 ( 100, 3 ) = 2 +xyphendoy1 ( 100, 4 ) = 2 +xyphendoy1 ( 100, 5 ) = 2 +xyphendoy1 ( 100, 6 ) = 2 +xyphendoy1 ( 100, 7 ) = 2 +xyphendoy1 ( 100, 8 ) = 2 + + ! xlat -6.25000000000000 +greenupxy ( 99, 1 ) = 349 +greenupxy ( 99, 2 ) = 260 +greenupxy ( 99, 3 ) = 349 +greenupxy ( 99, 4 ) = 338 +greenupxy ( 99, 5 ) = 338 +greenupxy ( 99, 6 ) = 338 +greenupxy ( 99, 7 ) = 316 +greenupxy ( 99, 8 ) = 316 +fallxy ( 99, 1 ) = 131 +fallxy ( 99, 2 ) = 92 +fallxy ( 99, 3 ) = 109 +fallxy ( 99, 4 ) = 117 +fallxy ( 99, 5 ) = 117 +fallxy ( 99, 6 ) = 117 +fallxy ( 99, 7 ) = 116 +fallxy ( 99, 8 ) = 116 +xyphendoy1 ( 99, 1 ) = 2 +xyphendoy1 ( 99, 2 ) = 2 +xyphendoy1 ( 99, 3 ) = 2 +xyphendoy1 ( 99, 4 ) = 2 +xyphendoy1 ( 99, 5 ) = 2 +xyphendoy1 ( 99, 6 ) = 2 +xyphendoy1 ( 99, 7 ) = 2 +xyphendoy1 ( 99, 8 ) = 2 + + ! xlat -6.75000000000000 +greenupxy ( 98, 1 ) = 349 +greenupxy ( 98, 2 ) = 257 +greenupxy ( 98, 3 ) = 350 +greenupxy ( 98, 4 ) = 338 +greenupxy ( 98, 5 ) = 338 +greenupxy ( 98, 6 ) = 338 +greenupxy ( 98, 7 ) = 316 +greenupxy ( 98, 8 ) = 316 +fallxy ( 98, 1 ) = 131 +fallxy ( 98, 2 ) = 89 +fallxy ( 98, 3 ) = 111 +fallxy ( 98, 4 ) = 115 +fallxy ( 98, 5 ) = 115 +fallxy ( 98, 6 ) = 115 +fallxy ( 98, 7 ) = 114 +fallxy ( 98, 8 ) = 114 +xyphendoy1 ( 98, 1 ) = 2 +xyphendoy1 ( 98, 2 ) = 2 +xyphendoy1 ( 98, 3 ) = 2 +xyphendoy1 ( 98, 4 ) = 2 +xyphendoy1 ( 98, 5 ) = 2 +xyphendoy1 ( 98, 6 ) = 2 +xyphendoy1 ( 98, 7 ) = 2 +xyphendoy1 ( 98, 8 ) = 2 + + ! xlat -7.25000000000000 +greenupxy ( 97, 1 ) = 349 +greenupxy ( 97, 2 ) = 255 +greenupxy ( 97, 3 ) = 349 +greenupxy ( 97, 4 ) = 337 +greenupxy ( 97, 5 ) = 337 +greenupxy ( 97, 6 ) = 337 +greenupxy ( 97, 7 ) = 316 +greenupxy ( 97, 8 ) = 316 +fallxy ( 97, 1 ) = 131 +fallxy ( 97, 2 ) = 86 +fallxy ( 97, 3 ) = 109 +fallxy ( 97, 4 ) = 113 +fallxy ( 97, 5 ) = 113 +fallxy ( 97, 6 ) = 113 +fallxy ( 97, 7 ) = 112 +fallxy ( 97, 8 ) = 112 +xyphendoy1 ( 97, 1 ) = 2 +xyphendoy1 ( 97, 2 ) = 2 +xyphendoy1 ( 97, 3 ) = 2 +xyphendoy1 ( 97, 4 ) = 2 +xyphendoy1 ( 97, 5 ) = 2 +xyphendoy1 ( 97, 6 ) = 2 +xyphendoy1 ( 97, 7 ) = 2 +xyphendoy1 ( 97, 8 ) = 2 + + ! xlat -7.75000000000000 +greenupxy ( 96, 1 ) = 344 +greenupxy ( 96, 2 ) = 253 +greenupxy ( 96, 3 ) = 346 +greenupxy ( 96, 4 ) = 334 +greenupxy ( 96, 5 ) = 334 +greenupxy ( 96, 6 ) = 334 +greenupxy ( 96, 7 ) = 315 +greenupxy ( 96, 8 ) = 315 +fallxy ( 96, 1 ) = 127 +fallxy ( 96, 2 ) = 84 +fallxy ( 96, 3 ) = 107 +fallxy ( 96, 4 ) = 111 +fallxy ( 96, 5 ) = 111 +fallxy ( 96, 6 ) = 111 +fallxy ( 96, 7 ) = 110 +fallxy ( 96, 8 ) = 110 +xyphendoy1 ( 96, 1 ) = 2 +xyphendoy1 ( 96, 2 ) = 2 +xyphendoy1 ( 96, 3 ) = 2 +xyphendoy1 ( 96, 4 ) = 2 +xyphendoy1 ( 96, 5 ) = 2 +xyphendoy1 ( 96, 6 ) = 2 +xyphendoy1 ( 96, 7 ) = 2 +xyphendoy1 ( 96, 8 ) = 2 + + ! xlat -8.25000000000000 +greenupxy ( 95, 1 ) = 344 +greenupxy ( 95, 2 ) = 254 +greenupxy ( 95, 3 ) = 342 +greenupxy ( 95, 4 ) = 331 +greenupxy ( 95, 5 ) = 331 +greenupxy ( 95, 6 ) = 331 +greenupxy ( 95, 7 ) = 315 +greenupxy ( 95, 8 ) = 315 +fallxy ( 95, 1 ) = 127 +fallxy ( 95, 2 ) = 81 +fallxy ( 95, 3 ) = 107 +fallxy ( 95, 4 ) = 110 +fallxy ( 95, 5 ) = 110 +fallxy ( 95, 6 ) = 110 +fallxy ( 95, 7 ) = 106 +fallxy ( 95, 8 ) = 106 +xyphendoy1 ( 95, 1 ) = 2 +xyphendoy1 ( 95, 2 ) = 2 +xyphendoy1 ( 95, 3 ) = 2 +xyphendoy1 ( 95, 4 ) = 2 +xyphendoy1 ( 95, 5 ) = 2 +xyphendoy1 ( 95, 6 ) = 2 +xyphendoy1 ( 95, 7 ) = 2 +xyphendoy1 ( 95, 8 ) = 2 + + ! xlat -8.75000000000000 +greenupxy ( 94, 1 ) = 343 +greenupxy ( 94, 2 ) = 254 +greenupxy ( 94, 3 ) = 339 +greenupxy ( 94, 4 ) = 327 +greenupxy ( 94, 5 ) = 327 +greenupxy ( 94, 6 ) = 327 +greenupxy ( 94, 7 ) = 314 +greenupxy ( 94, 8 ) = 314 +fallxy ( 94, 1 ) = 125 +fallxy ( 94, 2 ) = 78 +fallxy ( 94, 3 ) = 106 +fallxy ( 94, 4 ) = 108 +fallxy ( 94, 5 ) = 108 +fallxy ( 94, 6 ) = 108 +fallxy ( 94, 7 ) = 105 +fallxy ( 94, 8 ) = 105 +xyphendoy1 ( 94, 1 ) = 2 +xyphendoy1 ( 94, 2 ) = 2 +xyphendoy1 ( 94, 3 ) = 2 +xyphendoy1 ( 94, 4 ) = 2 +xyphendoy1 ( 94, 5 ) = 2 +xyphendoy1 ( 94, 6 ) = 2 +xyphendoy1 ( 94, 7 ) = 2 +xyphendoy1 ( 94, 8 ) = 2 + + ! xlat -9.25000000000000 +greenupxy ( 93, 1 ) = 343 +greenupxy ( 93, 2 ) = 254 +greenupxy ( 93, 3 ) = 335 +greenupxy ( 93, 4 ) = 324 +greenupxy ( 93, 5 ) = 324 +greenupxy ( 93, 6 ) = 324 +greenupxy ( 93, 7 ) = 313 +greenupxy ( 93, 8 ) = 313 +fallxy ( 93, 1 ) = 125 +fallxy ( 93, 2 ) = 76 +fallxy ( 93, 3 ) = 103 +fallxy ( 93, 4 ) = 106 +fallxy ( 93, 5 ) = 106 +fallxy ( 93, 6 ) = 106 +fallxy ( 93, 7 ) = 103 +fallxy ( 93, 8 ) = 103 +xyphendoy1 ( 93, 1 ) = 2 +xyphendoy1 ( 93, 2 ) = 2 +xyphendoy1 ( 93, 3 ) = 2 +xyphendoy1 ( 93, 4 ) = 2 +xyphendoy1 ( 93, 5 ) = 2 +xyphendoy1 ( 93, 6 ) = 2 +xyphendoy1 ( 93, 7 ) = 2 +xyphendoy1 ( 93, 8 ) = 2 + + ! xlat -9.75000000000000 +greenupxy ( 92, 1 ) = 343 +greenupxy ( 92, 2 ) = 255 +greenupxy ( 92, 3 ) = 331 +greenupxy ( 92, 4 ) = 321 +greenupxy ( 92, 5 ) = 321 +greenupxy ( 92, 6 ) = 321 +greenupxy ( 92, 7 ) = 311 +greenupxy ( 92, 8 ) = 311 +fallxy ( 92, 1 ) = 125 +fallxy ( 92, 2 ) = 74 +fallxy ( 92, 3 ) = 101 +fallxy ( 92, 4 ) = 104 +fallxy ( 92, 5 ) = 104 +fallxy ( 92, 6 ) = 104 +fallxy ( 92, 7 ) = 98 +fallxy ( 92, 8 ) = 98 +xyphendoy1 ( 92, 1 ) = 2 +xyphendoy1 ( 92, 2 ) = 2 +xyphendoy1 ( 92, 3 ) = 2 +xyphendoy1 ( 92, 4 ) = 2 +xyphendoy1 ( 92, 5 ) = 2 +xyphendoy1 ( 92, 6 ) = 2 +xyphendoy1 ( 92, 7 ) = 2 +xyphendoy1 ( 92, 8 ) = 2 + + ! xlat -10.2500000000000 +greenupxy ( 91, 1 ) = 337 +greenupxy ( 91, 2 ) = 255 +greenupxy ( 91, 3 ) = 327 +greenupxy ( 91, 4 ) = 318 +greenupxy ( 91, 5 ) = 318 +greenupxy ( 91, 6 ) = 318 +greenupxy ( 91, 7 ) = 311 +greenupxy ( 91, 8 ) = 311 +fallxy ( 91, 1 ) = 118 +fallxy ( 91, 2 ) = 72 +fallxy ( 91, 3 ) = 99 +fallxy ( 91, 4 ) = 102 +fallxy ( 91, 5 ) = 102 +fallxy ( 91, 6 ) = 102 +fallxy ( 91, 7 ) = 95 +fallxy ( 91, 8 ) = 95 +xyphendoy1 ( 91, 1 ) = 2 +xyphendoy1 ( 91, 2 ) = 2 +xyphendoy1 ( 91, 3 ) = 2 +xyphendoy1 ( 91, 4 ) = 2 +xyphendoy1 ( 91, 5 ) = 2 +xyphendoy1 ( 91, 6 ) = 2 +xyphendoy1 ( 91, 7 ) = 2 +xyphendoy1 ( 91, 8 ) = 2 + + ! xlat -10.7500000000000 +greenupxy ( 90, 1 ) = 333 +greenupxy ( 90, 2 ) = 258 +greenupxy ( 90, 3 ) = 323 +greenupxy ( 90, 4 ) = 315 +greenupxy ( 90, 5 ) = 315 +greenupxy ( 90, 6 ) = 315 +greenupxy ( 90, 7 ) = 311 +greenupxy ( 90, 8 ) = 311 +fallxy ( 90, 1 ) = 112 +fallxy ( 90, 2 ) = 71 +fallxy ( 90, 3 ) = 97 +fallxy ( 90, 4 ) = 101 +fallxy ( 90, 5 ) = 101 +fallxy ( 90, 6 ) = 101 +fallxy ( 90, 7 ) = 92 +fallxy ( 90, 8 ) = 92 +xyphendoy1 ( 90, 1 ) = 2 +xyphendoy1 ( 90, 2 ) = 2 +xyphendoy1 ( 90, 3 ) = 2 +xyphendoy1 ( 90, 4 ) = 2 +xyphendoy1 ( 90, 5 ) = 2 +xyphendoy1 ( 90, 6 ) = 2 +xyphendoy1 ( 90, 7 ) = 2 +xyphendoy1 ( 90, 8 ) = 2 + + ! xlat -11.2500000000000 +greenupxy ( 89, 1 ) = 333 +greenupxy ( 89, 2 ) = 262 +greenupxy ( 89, 3 ) = 321 +greenupxy ( 89, 4 ) = 313 +greenupxy ( 89, 5 ) = 313 +greenupxy ( 89, 6 ) = 313 +greenupxy ( 89, 7 ) = 310 +greenupxy ( 89, 8 ) = 310 +fallxy ( 89, 1 ) = 112 +fallxy ( 89, 2 ) = 71 +fallxy ( 89, 3 ) = 96 +fallxy ( 89, 4 ) = 99 +fallxy ( 89, 5 ) = 99 +fallxy ( 89, 6 ) = 99 +fallxy ( 89, 7 ) = 90 +fallxy ( 89, 8 ) = 90 +xyphendoy1 ( 89, 1 ) = 2 +xyphendoy1 ( 89, 2 ) = 2 +xyphendoy1 ( 89, 3 ) = 2 +xyphendoy1 ( 89, 4 ) = 2 +xyphendoy1 ( 89, 5 ) = 2 +xyphendoy1 ( 89, 6 ) = 2 +xyphendoy1 ( 89, 7 ) = 2 +xyphendoy1 ( 89, 8 ) = 2 + + ! xlat -11.7500000000000 +greenupxy ( 88, 1 ) = 328 +greenupxy ( 88, 2 ) = 266 +greenupxy ( 88, 3 ) = 319 +greenupxy ( 88, 4 ) = 311 +greenupxy ( 88, 5 ) = 311 +greenupxy ( 88, 6 ) = 311 +greenupxy ( 88, 7 ) = 309 +greenupxy ( 88, 8 ) = 309 +fallxy ( 88, 1 ) = 104 +fallxy ( 88, 2 ) = 72 +fallxy ( 88, 3 ) = 95 +fallxy ( 88, 4 ) = 98 +fallxy ( 88, 5 ) = 98 +fallxy ( 88, 6 ) = 98 +fallxy ( 88, 7 ) = 89 +fallxy ( 88, 8 ) = 89 +xyphendoy1 ( 88, 1 ) = 2 +xyphendoy1 ( 88, 2 ) = 2 +xyphendoy1 ( 88, 3 ) = 2 +xyphendoy1 ( 88, 4 ) = 2 +xyphendoy1 ( 88, 5 ) = 2 +xyphendoy1 ( 88, 6 ) = 2 +xyphendoy1 ( 88, 7 ) = 2 +xyphendoy1 ( 88, 8 ) = 2 + + ! xlat -12.2500000000000 +greenupxy ( 87, 1 ) = 328 +greenupxy ( 87, 2 ) = 269 +greenupxy ( 87, 3 ) = 317 +greenupxy ( 87, 4 ) = 310 +greenupxy ( 87, 5 ) = 310 +greenupxy ( 87, 6 ) = 310 +greenupxy ( 87, 7 ) = 308 +greenupxy ( 87, 8 ) = 308 +fallxy ( 87, 1 ) = 104 +fallxy ( 87, 2 ) = 72 +fallxy ( 87, 3 ) = 94 +fallxy ( 87, 4 ) = 97 +fallxy ( 87, 5 ) = 97 +fallxy ( 87, 6 ) = 97 +fallxy ( 87, 7 ) = 87 +fallxy ( 87, 8 ) = 87 +xyphendoy1 ( 87, 1 ) = 2 +xyphendoy1 ( 87, 2 ) = 2 +xyphendoy1 ( 87, 3 ) = 2 +xyphendoy1 ( 87, 4 ) = 2 +xyphendoy1 ( 87, 5 ) = 2 +xyphendoy1 ( 87, 6 ) = 2 +xyphendoy1 ( 87, 7 ) = 2 +xyphendoy1 ( 87, 8 ) = 2 + + ! xlat -12.7500000000000 +greenupxy ( 86, 1 ) = 328 +greenupxy ( 86, 2 ) = 272 +greenupxy ( 86, 3 ) = 316 +greenupxy ( 86, 4 ) = 309 +greenupxy ( 86, 5 ) = 309 +greenupxy ( 86, 6 ) = 309 +greenupxy ( 86, 7 ) = 307 +greenupxy ( 86, 8 ) = 307 +fallxy ( 86, 1 ) = 104 +fallxy ( 86, 2 ) = 72 +fallxy ( 86, 3 ) = 94 +fallxy ( 86, 4 ) = 96 +fallxy ( 86, 5 ) = 96 +fallxy ( 86, 6 ) = 96 +fallxy ( 86, 7 ) = 85 +fallxy ( 86, 8 ) = 85 +xyphendoy1 ( 86, 1 ) = 2 +xyphendoy1 ( 86, 2 ) = 2 +xyphendoy1 ( 86, 3 ) = 2 +xyphendoy1 ( 86, 4 ) = 2 +xyphendoy1 ( 86, 5 ) = 2 +xyphendoy1 ( 86, 6 ) = 2 +xyphendoy1 ( 86, 7 ) = 2 +xyphendoy1 ( 86, 8 ) = 2 + + ! xlat -13.2500000000000 +greenupxy ( 85, 1 ) = 326 +greenupxy ( 85, 2 ) = 275 +greenupxy ( 85, 3 ) = 316 +greenupxy ( 85, 4 ) = 309 +greenupxy ( 85, 5 ) = 309 +greenupxy ( 85, 6 ) = 309 +greenupxy ( 85, 7 ) = 306 +greenupxy ( 85, 8 ) = 306 +fallxy ( 85, 1 ) = 105 +fallxy ( 85, 2 ) = 72 +fallxy ( 85, 3 ) = 94 +fallxy ( 85, 4 ) = 95 +fallxy ( 85, 5 ) = 95 +fallxy ( 85, 6 ) = 95 +fallxy ( 85, 7 ) = 83 +fallxy ( 85, 8 ) = 83 +xyphendoy1 ( 85, 1 ) = 2 +xyphendoy1 ( 85, 2 ) = 2 +xyphendoy1 ( 85, 3 ) = 2 +xyphendoy1 ( 85, 4 ) = 2 +xyphendoy1 ( 85, 5 ) = 2 +xyphendoy1 ( 85, 6 ) = 2 +xyphendoy1 ( 85, 7 ) = 2 +xyphendoy1 ( 85, 8 ) = 2 + + ! xlat -13.7500000000000 +greenupxy ( 84, 1 ) = 321 +greenupxy ( 84, 2 ) = 277 +greenupxy ( 84, 3 ) = 317 +greenupxy ( 84, 4 ) = 311 +greenupxy ( 84, 5 ) = 311 +greenupxy ( 84, 6 ) = 311 +greenupxy ( 84, 7 ) = 305 +greenupxy ( 84, 8 ) = 305 +fallxy ( 84, 1 ) = 97 +fallxy ( 84, 2 ) = 73 +fallxy ( 84, 3 ) = 93 +fallxy ( 84, 4 ) = 94 +fallxy ( 84, 5 ) = 94 +fallxy ( 84, 6 ) = 94 +fallxy ( 84, 7 ) = 80 +fallxy ( 84, 8 ) = 80 +xyphendoy1 ( 84, 1 ) = 2 +xyphendoy1 ( 84, 2 ) = 2 +xyphendoy1 ( 84, 3 ) = 2 +xyphendoy1 ( 84, 4 ) = 2 +xyphendoy1 ( 84, 5 ) = 2 +xyphendoy1 ( 84, 6 ) = 2 +xyphendoy1 ( 84, 7 ) = 2 +xyphendoy1 ( 84, 8 ) = 2 + + ! xlat -14.2500000000000 +greenupxy ( 83, 1 ) = 320 +greenupxy ( 83, 2 ) = 279 +greenupxy ( 83, 3 ) = 318 +greenupxy ( 83, 4 ) = 313 +greenupxy ( 83, 5 ) = 313 +greenupxy ( 83, 6 ) = 313 +greenupxy ( 83, 7 ) = 304 +greenupxy ( 83, 8 ) = 304 +fallxy ( 83, 1 ) = 93 +fallxy ( 83, 2 ) = 74 +fallxy ( 83, 3 ) = 93 +fallxy ( 83, 4 ) = 93 +fallxy ( 83, 5 ) = 93 +fallxy ( 83, 6 ) = 93 +fallxy ( 83, 7 ) = 79 +fallxy ( 83, 8 ) = 79 +xyphendoy1 ( 83, 1 ) = 2 +xyphendoy1 ( 83, 2 ) = 2 +xyphendoy1 ( 83, 3 ) = 2 +xyphendoy1 ( 83, 4 ) = 2 +xyphendoy1 ( 83, 5 ) = 2 +xyphendoy1 ( 83, 6 ) = 2 +xyphendoy1 ( 83, 7 ) = 2 +xyphendoy1 ( 83, 8 ) = 2 + + ! xlat -14.7500000000000 +greenupxy ( 82, 1 ) = 320 +greenupxy ( 82, 2 ) = 282 +greenupxy ( 82, 3 ) = 321 +greenupxy ( 82, 4 ) = 316 +greenupxy ( 82, 5 ) = 316 +greenupxy ( 82, 6 ) = 316 +greenupxy ( 82, 7 ) = 303 +greenupxy ( 82, 8 ) = 303 +fallxy ( 82, 1 ) = 93 +fallxy ( 82, 2 ) = 75 +fallxy ( 82, 3 ) = 92 +fallxy ( 82, 4 ) = 93 +fallxy ( 82, 5 ) = 93 +fallxy ( 82, 6 ) = 93 +fallxy ( 82, 7 ) = 78 +fallxy ( 82, 8 ) = 78 +xyphendoy1 ( 82, 1 ) = 2 +xyphendoy1 ( 82, 2 ) = 2 +xyphendoy1 ( 82, 3 ) = 2 +xyphendoy1 ( 82, 4 ) = 2 +xyphendoy1 ( 82, 5 ) = 2 +xyphendoy1 ( 82, 6 ) = 2 +xyphendoy1 ( 82, 7 ) = 2 +xyphendoy1 ( 82, 8 ) = 2 + + ! xlat -15.2500000000000 +greenupxy ( 81, 1 ) = 320 +greenupxy ( 81, 2 ) = 284 +greenupxy ( 81, 3 ) = 324 +greenupxy ( 81, 4 ) = 318 +greenupxy ( 81, 5 ) = 318 +greenupxy ( 81, 6 ) = 318 +greenupxy ( 81, 7 ) = 302 +greenupxy ( 81, 8 ) = 302 +fallxy ( 81, 1 ) = 93 +fallxy ( 81, 2 ) = 75 +fallxy ( 81, 3 ) = 92 +fallxy ( 81, 4 ) = 92 +fallxy ( 81, 5 ) = 92 +fallxy ( 81, 6 ) = 92 +fallxy ( 81, 7 ) = 77 +fallxy ( 81, 8 ) = 77 +xyphendoy1 ( 81, 1 ) = 2 +xyphendoy1 ( 81, 2 ) = 2 +xyphendoy1 ( 81, 3 ) = 2 +xyphendoy1 ( 81, 4 ) = 2 +xyphendoy1 ( 81, 5 ) = 2 +xyphendoy1 ( 81, 6 ) = 2 +xyphendoy1 ( 81, 7 ) = 2 +xyphendoy1 ( 81, 8 ) = 2 + + ! xlat -15.7500000000000 +greenupxy ( 80, 1 ) = 320 +greenupxy ( 80, 2 ) = 287 +greenupxy ( 80, 3 ) = 328 +greenupxy ( 80, 4 ) = 321 +greenupxy ( 80, 5 ) = 321 +greenupxy ( 80, 6 ) = 321 +greenupxy ( 80, 7 ) = 301 +greenupxy ( 80, 8 ) = 301 +fallxy ( 80, 1 ) = 93 +fallxy ( 80, 2 ) = 76 +fallxy ( 80, 3 ) = 92 +fallxy ( 80, 4 ) = 91 +fallxy ( 80, 5 ) = 91 +fallxy ( 80, 6 ) = 91 +fallxy ( 80, 7 ) = 76 +fallxy ( 80, 8 ) = 76 +xyphendoy1 ( 80, 1 ) = 2 +xyphendoy1 ( 80, 2 ) = 2 +xyphendoy1 ( 80, 3 ) = 2 +xyphendoy1 ( 80, 4 ) = 2 +xyphendoy1 ( 80, 5 ) = 2 +xyphendoy1 ( 80, 6 ) = 2 +xyphendoy1 ( 80, 7 ) = 2 +xyphendoy1 ( 80, 8 ) = 2 + + ! xlat -16.2500000000000 +greenupxy ( 79, 1 ) = 322 +greenupxy ( 79, 2 ) = 289 +greenupxy ( 79, 3 ) = 332 +greenupxy ( 79, 4 ) = 325 +greenupxy ( 79, 5 ) = 325 +greenupxy ( 79, 6 ) = 325 +greenupxy ( 79, 7 ) = 300 +greenupxy ( 79, 8 ) = 300 +fallxy ( 79, 1 ) = 94 +fallxy ( 79, 2 ) = 77 +fallxy ( 79, 3 ) = 92 +fallxy ( 79, 4 ) = 90 +fallxy ( 79, 5 ) = 90 +fallxy ( 79, 6 ) = 90 +fallxy ( 79, 7 ) = 77 +fallxy ( 79, 8 ) = 77 +xyphendoy1 ( 79, 1 ) = 2 +xyphendoy1 ( 79, 2 ) = 2 +xyphendoy1 ( 79, 3 ) = 2 +xyphendoy1 ( 79, 4 ) = 2 +xyphendoy1 ( 79, 5 ) = 2 +xyphendoy1 ( 79, 6 ) = 2 +xyphendoy1 ( 79, 7 ) = 2 +xyphendoy1 ( 79, 8 ) = 2 + + ! xlat -16.7500000000000 +greenupxy ( 78, 1 ) = 325 +greenupxy ( 78, 2 ) = 292 +greenupxy ( 78, 3 ) = 337 +greenupxy ( 78, 4 ) = 329 +greenupxy ( 78, 5 ) = 329 +greenupxy ( 78, 6 ) = 329 +greenupxy ( 78, 7 ) = 298 +greenupxy ( 78, 8 ) = 298 +fallxy ( 78, 1 ) = 96 +fallxy ( 78, 2 ) = 78 +fallxy ( 78, 3 ) = 91 +fallxy ( 78, 4 ) = 90 +fallxy ( 78, 5 ) = 90 +fallxy ( 78, 6 ) = 90 +fallxy ( 78, 7 ) = 77 +fallxy ( 78, 8 ) = 77 +xyphendoy1 ( 78, 1 ) = 2 +xyphendoy1 ( 78, 2 ) = 2 +xyphendoy1 ( 78, 3 ) = 2 +xyphendoy1 ( 78, 4 ) = 2 +xyphendoy1 ( 78, 5 ) = 2 +xyphendoy1 ( 78, 6 ) = 2 +xyphendoy1 ( 78, 7 ) = 2 +xyphendoy1 ( 78, 8 ) = 2 + + ! xlat -17.2500000000000 +greenupxy ( 77, 1 ) = 328 +greenupxy ( 77, 2 ) = 294 +greenupxy ( 77, 3 ) = 343 +greenupxy ( 77, 4 ) = 331 +greenupxy ( 77, 5 ) = 331 +greenupxy ( 77, 6 ) = 331 +greenupxy ( 77, 7 ) = 297 +greenupxy ( 77, 8 ) = 297 +fallxy ( 77, 1 ) = 93 +fallxy ( 77, 2 ) = 79 +fallxy ( 77, 3 ) = 91 +fallxy ( 77, 4 ) = 90 +fallxy ( 77, 5 ) = 90 +fallxy ( 77, 6 ) = 90 +fallxy ( 77, 7 ) = 78 +fallxy ( 77, 8 ) = 78 +xyphendoy1 ( 77, 1 ) = 2 +xyphendoy1 ( 77, 2 ) = 2 +xyphendoy1 ( 77, 3 ) = 2 +xyphendoy1 ( 77, 4 ) = 2 +xyphendoy1 ( 77, 5 ) = 2 +xyphendoy1 ( 77, 6 ) = 2 +xyphendoy1 ( 77, 7 ) = 2 +xyphendoy1 ( 77, 8 ) = 2 + + ! xlat -17.7500000000000 +greenupxy ( 76, 1 ) = 329 +greenupxy ( 76, 2 ) = 296 +greenupxy ( 76, 3 ) = 348 +greenupxy ( 76, 4 ) = 333 +greenupxy ( 76, 5 ) = 333 +greenupxy ( 76, 6 ) = 333 +greenupxy ( 76, 7 ) = 296 +greenupxy ( 76, 8 ) = 296 +fallxy ( 76, 1 ) = 97 +fallxy ( 76, 2 ) = 80 +fallxy ( 76, 3 ) = 91 +fallxy ( 76, 4 ) = 90 +fallxy ( 76, 5 ) = 90 +fallxy ( 76, 6 ) = 90 +fallxy ( 76, 7 ) = 79 +fallxy ( 76, 8 ) = 79 +xyphendoy1 ( 76, 1 ) = 2 +xyphendoy1 ( 76, 2 ) = 2 +xyphendoy1 ( 76, 3 ) = 2 +xyphendoy1 ( 76, 4 ) = 2 +xyphendoy1 ( 76, 5 ) = 2 +xyphendoy1 ( 76, 6 ) = 2 +xyphendoy1 ( 76, 7 ) = 2 +xyphendoy1 ( 76, 8 ) = 2 + + ! xlat -18.2500000000000 +greenupxy ( 75, 1 ) = 326 +greenupxy ( 75, 2 ) = 298 +greenupxy ( 75, 3 ) = 352 +greenupxy ( 75, 4 ) = 333 +greenupxy ( 75, 5 ) = 333 +greenupxy ( 75, 6 ) = 333 +greenupxy ( 75, 7 ) = 295 +greenupxy ( 75, 8 ) = 295 +fallxy ( 75, 1 ) = 94 +fallxy ( 75, 2 ) = 81 +fallxy ( 75, 3 ) = 91 +fallxy ( 75, 4 ) = 90 +fallxy ( 75, 5 ) = 90 +fallxy ( 75, 6 ) = 90 +fallxy ( 75, 7 ) = 79 +fallxy ( 75, 8 ) = 79 +xyphendoy1 ( 75, 1 ) = 2 +xyphendoy1 ( 75, 2 ) = 2 +xyphendoy1 ( 75, 3 ) = 2 +xyphendoy1 ( 75, 4 ) = 2 +xyphendoy1 ( 75, 5 ) = 2 +xyphendoy1 ( 75, 6 ) = 2 +xyphendoy1 ( 75, 7 ) = 2 +xyphendoy1 ( 75, 8 ) = 2 + + ! xlat -18.7500000000000 +greenupxy ( 74, 1 ) = 327 +greenupxy ( 74, 2 ) = 299 +greenupxy ( 74, 3 ) = 357 +greenupxy ( 74, 4 ) = 333 +greenupxy ( 74, 5 ) = 333 +greenupxy ( 74, 6 ) = 333 +greenupxy ( 74, 7 ) = 294 +greenupxy ( 74, 8 ) = 294 +fallxy ( 74, 1 ) = 92 +fallxy ( 74, 2 ) = 82 +fallxy ( 74, 3 ) = 93 +fallxy ( 74, 4 ) = 90 +fallxy ( 74, 5 ) = 90 +fallxy ( 74, 6 ) = 90 +fallxy ( 74, 7 ) = 80 +fallxy ( 74, 8 ) = 80 +xyphendoy1 ( 74, 1 ) = 2 +xyphendoy1 ( 74, 2 ) = 2 +xyphendoy1 ( 74, 3 ) = 2 +xyphendoy1 ( 74, 4 ) = 2 +xyphendoy1 ( 74, 5 ) = 2 +xyphendoy1 ( 74, 6 ) = 2 +xyphendoy1 ( 74, 7 ) = 2 +xyphendoy1 ( 74, 8 ) = 2 + + ! xlat -19.2500000000000 +greenupxy ( 73, 1 ) = 330 +greenupxy ( 73, 2 ) = 299 +greenupxy ( 73, 3 ) = 361 +greenupxy ( 73, 4 ) = 332 +greenupxy ( 73, 5 ) = 332 +greenupxy ( 73, 6 ) = 332 +greenupxy ( 73, 7 ) = 294 +greenupxy ( 73, 8 ) = 294 +fallxy ( 73, 1 ) = 94 +fallxy ( 73, 2 ) = 82 +fallxy ( 73, 3 ) = 93 +fallxy ( 73, 4 ) = 90 +fallxy ( 73, 5 ) = 90 +fallxy ( 73, 6 ) = 90 +fallxy ( 73, 7 ) = 80 +fallxy ( 73, 8 ) = 80 +xyphendoy1 ( 73, 1 ) = 2 +xyphendoy1 ( 73, 2 ) = 2 +xyphendoy1 ( 73, 3 ) = 2 +xyphendoy1 ( 73, 4 ) = 2 +xyphendoy1 ( 73, 5 ) = 2 +xyphendoy1 ( 73, 6 ) = 2 +xyphendoy1 ( 73, 7 ) = 2 +xyphendoy1 ( 73, 8 ) = 2 + + ! xlat -19.7500000000000 +greenupxy ( 72, 1 ) = 330 +greenupxy ( 72, 2 ) = 298 +greenupxy ( 72, 3 ) = 364 +greenupxy ( 72, 4 ) = 331 +greenupxy ( 72, 5 ) = 331 +greenupxy ( 72, 6 ) = 331 +greenupxy ( 72, 7 ) = 294 +greenupxy ( 72, 8 ) = 294 +fallxy ( 72, 1 ) = 99 +fallxy ( 72, 2 ) = 82 +fallxy ( 72, 3 ) = 94 +fallxy ( 72, 4 ) = 90 +fallxy ( 72, 5 ) = 90 +fallxy ( 72, 6 ) = 90 +fallxy ( 72, 7 ) = 80 +fallxy ( 72, 8 ) = 80 +xyphendoy1 ( 72, 1 ) = 2 +xyphendoy1 ( 72, 2 ) = 2 +xyphendoy1 ( 72, 3 ) = 2 +xyphendoy1 ( 72, 4 ) = 2 +xyphendoy1 ( 72, 5 ) = 2 +xyphendoy1 ( 72, 6 ) = 2 +xyphendoy1 ( 72, 7 ) = 2 +xyphendoy1 ( 72, 8 ) = 2 + + ! xlat -20.2500000000000 +greenupxy ( 71, 1 ) = 328 +greenupxy ( 71, 2 ) = 297 +greenupxy ( 71, 3 ) = 2 +greenupxy ( 71, 4 ) = 330 +greenupxy ( 71, 5 ) = 330 +greenupxy ( 71, 6 ) = 330 +greenupxy ( 71, 7 ) = 293 +greenupxy ( 71, 8 ) = 293 +fallxy ( 71, 1 ) = 101 +fallxy ( 71, 2 ) = 82 +fallxy ( 71, 3 ) = 95 +fallxy ( 71, 4 ) = 90 +fallxy ( 71, 5 ) = 90 +fallxy ( 71, 6 ) = 90 +fallxy ( 71, 7 ) = 80 +fallxy ( 71, 8 ) = 80 +xyphendoy1 ( 71, 1 ) = 2 +xyphendoy1 ( 71, 2 ) = 2 +xyphendoy1 ( 71, 3 ) = 0 +xyphendoy1 ( 71, 4 ) = 2 +xyphendoy1 ( 71, 5 ) = 2 +xyphendoy1 ( 71, 6 ) = 2 +xyphendoy1 ( 71, 7 ) = 2 +xyphendoy1 ( 71, 8 ) = 2 + + ! xlat -20.7500000000000 +greenupxy ( 70, 1 ) = 328 +greenupxy ( 70, 2 ) = 296 +greenupxy ( 70, 3 ) = 5 +greenupxy ( 70, 4 ) = 330 +greenupxy ( 70, 5 ) = 330 +greenupxy ( 70, 6 ) = 330 +greenupxy ( 70, 7 ) = 292 +greenupxy ( 70, 8 ) = 292 +fallxy ( 70, 1 ) = 101 +fallxy ( 70, 2 ) = 82 +fallxy ( 70, 3 ) = 96 +fallxy ( 70, 4 ) = 90 +fallxy ( 70, 5 ) = 90 +fallxy ( 70, 6 ) = 90 +fallxy ( 70, 7 ) = 80 +fallxy ( 70, 8 ) = 80 +xyphendoy1 ( 70, 1 ) = 2 +xyphendoy1 ( 70, 2 ) = 2 +xyphendoy1 ( 70, 3 ) = 0 +xyphendoy1 ( 70, 4 ) = 2 +xyphendoy1 ( 70, 5 ) = 2 +xyphendoy1 ( 70, 6 ) = 2 +xyphendoy1 ( 70, 7 ) = 2 +xyphendoy1 ( 70, 8 ) = 2 + + ! xlat -21.2500000000000 +greenupxy ( 69, 1 ) = 321 +greenupxy ( 69, 2 ) = 296 +greenupxy ( 69, 3 ) = 8 +greenupxy ( 69, 4 ) = 328 +greenupxy ( 69, 5 ) = 328 +greenupxy ( 69, 6 ) = 328 +greenupxy ( 69, 7 ) = 293 +greenupxy ( 69, 8 ) = 293 +fallxy ( 69, 1 ) = 99 +fallxy ( 69, 2 ) = 82 +fallxy ( 69, 3 ) = 98 +fallxy ( 69, 4 ) = 89 +fallxy ( 69, 5 ) = 89 +fallxy ( 69, 6 ) = 89 +fallxy ( 69, 7 ) = 81 +fallxy ( 69, 8 ) = 81 +xyphendoy1 ( 69, 1 ) = 2 +xyphendoy1 ( 69, 2 ) = 2 +xyphendoy1 ( 69, 3 ) = 0 +xyphendoy1 ( 69, 4 ) = 2 +xyphendoy1 ( 69, 5 ) = 2 +xyphendoy1 ( 69, 6 ) = 2 +xyphendoy1 ( 69, 7 ) = 2 +xyphendoy1 ( 69, 8 ) = 2 + + ! xlat -21.7500000000000 +greenupxy ( 68, 1 ) = 321 +greenupxy ( 68, 2 ) = 295 +greenupxy ( 68, 3 ) = 11 +greenupxy ( 68, 4 ) = 325 +greenupxy ( 68, 5 ) = 325 +greenupxy ( 68, 6 ) = 325 +greenupxy ( 68, 7 ) = 292 +greenupxy ( 68, 8 ) = 292 +fallxy ( 68, 1 ) = 96 +fallxy ( 68, 2 ) = 82 +fallxy ( 68, 3 ) = 101 +fallxy ( 68, 4 ) = 89 +fallxy ( 68, 5 ) = 89 +fallxy ( 68, 6 ) = 89 +fallxy ( 68, 7 ) = 82 +fallxy ( 68, 8 ) = 82 +xyphendoy1 ( 68, 1 ) = 2 +xyphendoy1 ( 68, 2 ) = 2 +xyphendoy1 ( 68, 3 ) = 0 +xyphendoy1 ( 68, 4 ) = 2 +xyphendoy1 ( 68, 5 ) = 2 +xyphendoy1 ( 68, 6 ) = 2 +xyphendoy1 ( 68, 7 ) = 2 +xyphendoy1 ( 68, 8 ) = 2 + + ! xlat -22.2500000000000 +greenupxy ( 67, 1 ) = 326 +greenupxy ( 67, 2 ) = 293 +greenupxy ( 67, 3 ) = 14 +greenupxy ( 67, 4 ) = 322 +greenupxy ( 67, 5 ) = 322 +greenupxy ( 67, 6 ) = 322 +greenupxy ( 67, 7 ) = 292 +greenupxy ( 67, 8 ) = 292 +fallxy ( 67, 1 ) = 106 +fallxy ( 67, 2 ) = 81 +fallxy ( 67, 3 ) = 104 +fallxy ( 67, 4 ) = 88 +fallxy ( 67, 5 ) = 88 +fallxy ( 67, 6 ) = 88 +fallxy ( 67, 7 ) = 82 +fallxy ( 67, 8 ) = 82 +xyphendoy1 ( 67, 1 ) = 2 +xyphendoy1 ( 67, 2 ) = 2 +xyphendoy1 ( 67, 3 ) = 0 +xyphendoy1 ( 67, 4 ) = 2 +xyphendoy1 ( 67, 5 ) = 2 +xyphendoy1 ( 67, 6 ) = 2 +xyphendoy1 ( 67, 7 ) = 2 +xyphendoy1 ( 67, 8 ) = 2 + + ! xlat -22.7500000000000 +greenupxy ( 66, 1 ) = 326 +greenupxy ( 66, 2 ) = 292 +greenupxy ( 66, 3 ) = 17 +greenupxy ( 66, 4 ) = 319 +greenupxy ( 66, 5 ) = 319 +greenupxy ( 66, 6 ) = 319 +greenupxy ( 66, 7 ) = 292 +greenupxy ( 66, 8 ) = 292 +fallxy ( 66, 1 ) = 106 +fallxy ( 66, 2 ) = 81 +fallxy ( 66, 3 ) = 107 +fallxy ( 66, 4 ) = 88 +fallxy ( 66, 5 ) = 88 +fallxy ( 66, 6 ) = 88 +fallxy ( 66, 7 ) = 82 +fallxy ( 66, 8 ) = 82 +xyphendoy1 ( 66, 1 ) = 2 +xyphendoy1 ( 66, 2 ) = 2 +xyphendoy1 ( 66, 3 ) = 0 +xyphendoy1 ( 66, 4 ) = 2 +xyphendoy1 ( 66, 5 ) = 2 +xyphendoy1 ( 66, 6 ) = 2 +xyphendoy1 ( 66, 7 ) = 2 +xyphendoy1 ( 66, 8 ) = 2 + + ! xlat -23.2500000000000 +greenupxy ( 65, 1 ) = 321 +greenupxy ( 65, 2 ) = 290 +greenupxy ( 65, 3 ) = 20 +greenupxy ( 65, 4 ) = 316 +greenupxy ( 65, 5 ) = 316 +greenupxy ( 65, 6 ) = 316 +greenupxy ( 65, 7 ) = 293 +greenupxy ( 65, 8 ) = 293 +fallxy ( 65, 1 ) = 107 +fallxy ( 65, 2 ) = 81 +fallxy ( 65, 3 ) = 111 +fallxy ( 65, 4 ) = 88 +fallxy ( 65, 5 ) = 88 +fallxy ( 65, 6 ) = 88 +fallxy ( 65, 7 ) = 82 +fallxy ( 65, 8 ) = 82 +xyphendoy1 ( 65, 1 ) = 2 +xyphendoy1 ( 65, 2 ) = 2 +xyphendoy1 ( 65, 3 ) = 0 +xyphendoy1 ( 65, 4 ) = 2 +xyphendoy1 ( 65, 5 ) = 2 +xyphendoy1 ( 65, 6 ) = 2 +xyphendoy1 ( 65, 7 ) = 2 +xyphendoy1 ( 65, 8 ) = 2 + + ! xlat -23.7500000000000 +greenupxy ( 64, 1 ) = 320 +greenupxy ( 64, 2 ) = 289 +greenupxy ( 64, 3 ) = 23 +greenupxy ( 64, 4 ) = 313 +greenupxy ( 64, 5 ) = 313 +greenupxy ( 64, 6 ) = 313 +greenupxy ( 64, 7 ) = 291 +greenupxy ( 64, 8 ) = 291 +fallxy ( 64, 1 ) = 108 +fallxy ( 64, 2 ) = 81 +fallxy ( 64, 3 ) = 114 +fallxy ( 64, 4 ) = 89 +fallxy ( 64, 5 ) = 89 +fallxy ( 64, 6 ) = 89 +fallxy ( 64, 7 ) = 82 +fallxy ( 64, 8 ) = 82 +xyphendoy1 ( 64, 1 ) = 2 +xyphendoy1 ( 64, 2 ) = 2 +xyphendoy1 ( 64, 3 ) = 0 +xyphendoy1 ( 64, 4 ) = 2 +xyphendoy1 ( 64, 5 ) = 2 +xyphendoy1 ( 64, 6 ) = 2 +xyphendoy1 ( 64, 7 ) = 2 +xyphendoy1 ( 64, 8 ) = 2 + + ! xlat -24.2500000000000 +greenupxy ( 63, 1 ) = 321 +greenupxy ( 63, 2 ) = 288 +greenupxy ( 63, 3 ) = 26 +greenupxy ( 63, 4 ) = 310 +greenupxy ( 63, 5 ) = 310 +greenupxy ( 63, 6 ) = 310 +greenupxy ( 63, 7 ) = 290 +greenupxy ( 63, 8 ) = 290 +fallxy ( 63, 1 ) = 109 +fallxy ( 63, 2 ) = 81 +fallxy ( 63, 3 ) = 119 +fallxy ( 63, 4 ) = 90 +fallxy ( 63, 5 ) = 90 +fallxy ( 63, 6 ) = 90 +fallxy ( 63, 7 ) = 82 +fallxy ( 63, 8 ) = 82 +xyphendoy1 ( 63, 1 ) = 2 +xyphendoy1 ( 63, 2 ) = 2 +xyphendoy1 ( 63, 3 ) = 0 +xyphendoy1 ( 63, 4 ) = 2 +xyphendoy1 ( 63, 5 ) = 2 +xyphendoy1 ( 63, 6 ) = 2 +xyphendoy1 ( 63, 7 ) = 2 +xyphendoy1 ( 63, 8 ) = 2 + + ! xlat -24.7500000000000 +greenupxy ( 62, 1 ) = 313 +greenupxy ( 62, 2 ) = 286 +greenupxy ( 62, 3 ) = 29 +greenupxy ( 62, 4 ) = 307 +greenupxy ( 62, 5 ) = 307 +greenupxy ( 62, 6 ) = 307 +greenupxy ( 62, 7 ) = 289 +greenupxy ( 62, 8 ) = 289 +fallxy ( 62, 1 ) = 104 +fallxy ( 62, 2 ) = 80 +fallxy ( 62, 3 ) = 125 +fallxy ( 62, 4 ) = 90 +fallxy ( 62, 5 ) = 90 +fallxy ( 62, 6 ) = 90 +fallxy ( 62, 7 ) = 82 +fallxy ( 62, 8 ) = 82 +xyphendoy1 ( 62, 1 ) = 2 +xyphendoy1 ( 62, 2 ) = 2 +xyphendoy1 ( 62, 3 ) = 0 +xyphendoy1 ( 62, 4 ) = 2 +xyphendoy1 ( 62, 5 ) = 2 +xyphendoy1 ( 62, 6 ) = 2 +xyphendoy1 ( 62, 7 ) = 2 +xyphendoy1 ( 62, 8 ) = 2 + + ! xlat -25.2500000000000 +greenupxy ( 61, 1 ) = 305 +greenupxy ( 61, 2 ) = 285 +greenupxy ( 61, 3 ) = 33 +greenupxy ( 61, 4 ) = 304 +greenupxy ( 61, 5 ) = 304 +greenupxy ( 61, 6 ) = 304 +greenupxy ( 61, 7 ) = 281 +greenupxy ( 61, 8 ) = 281 +fallxy ( 61, 1 ) = 106 +fallxy ( 61, 2 ) = 80 +fallxy ( 61, 3 ) = 131 +fallxy ( 61, 4 ) = 91 +fallxy ( 61, 5 ) = 91 +fallxy ( 61, 6 ) = 91 +fallxy ( 61, 7 ) = 82 +fallxy ( 61, 8 ) = 82 +xyphendoy1 ( 61, 1 ) = 2 +xyphendoy1 ( 61, 2 ) = 2 +xyphendoy1 ( 61, 3 ) = 0 +xyphendoy1 ( 61, 4 ) = 2 +xyphendoy1 ( 61, 5 ) = 2 +xyphendoy1 ( 61, 6 ) = 2 +xyphendoy1 ( 61, 7 ) = 2 +xyphendoy1 ( 61, 8 ) = 2 + + ! xlat -25.7500000000000 +greenupxy ( 60, 1 ) = 291 +greenupxy ( 60, 2 ) = 283 +greenupxy ( 60, 3 ) = 37 +greenupxy ( 60, 4 ) = 301 +greenupxy ( 60, 5 ) = 301 +greenupxy ( 60, 6 ) = 301 +greenupxy ( 60, 7 ) = 274 +greenupxy ( 60, 8 ) = 274 +fallxy ( 60, 1 ) = 106 +fallxy ( 60, 2 ) = 80 +fallxy ( 60, 3 ) = 138 +fallxy ( 60, 4 ) = 91 +fallxy ( 60, 5 ) = 91 +fallxy ( 60, 6 ) = 91 +fallxy ( 60, 7 ) = 81 +fallxy ( 60, 8 ) = 81 +xyphendoy1 ( 60, 1 ) = 2 +xyphendoy1 ( 60, 2 ) = 2 +xyphendoy1 ( 60, 3 ) = 0 +xyphendoy1 ( 60, 4 ) = 2 +xyphendoy1 ( 60, 5 ) = 2 +xyphendoy1 ( 60, 6 ) = 2 +xyphendoy1 ( 60, 7 ) = 2 +xyphendoy1 ( 60, 8 ) = 2 + + ! xlat -26.2500000000000 +greenupxy ( 59, 1 ) = 291 +greenupxy ( 59, 2 ) = 282 +greenupxy ( 59, 3 ) = 41 +greenupxy ( 59, 4 ) = 298 +greenupxy ( 59, 5 ) = 298 +greenupxy ( 59, 6 ) = 298 +greenupxy ( 59, 7 ) = 266 +greenupxy ( 59, 8 ) = 266 +fallxy ( 59, 1 ) = 102 +fallxy ( 59, 2 ) = 79 +fallxy ( 59, 3 ) = 145 +fallxy ( 59, 4 ) = 92 +fallxy ( 59, 5 ) = 92 +fallxy ( 59, 6 ) = 92 +fallxy ( 59, 7 ) = 81 +fallxy ( 59, 8 ) = 81 +xyphendoy1 ( 59, 1 ) = 2 +xyphendoy1 ( 59, 2 ) = 2 +xyphendoy1 ( 59, 3 ) = 0 +xyphendoy1 ( 59, 4 ) = 2 +xyphendoy1 ( 59, 5 ) = 2 +xyphendoy1 ( 59, 6 ) = 2 +xyphendoy1 ( 59, 7 ) = 2 +xyphendoy1 ( 59, 8 ) = 2 + + ! xlat -26.7500000000000 +greenupxy ( 58, 1 ) = 289 +greenupxy ( 58, 2 ) = 281 +greenupxy ( 58, 3 ) = 47 +greenupxy ( 58, 4 ) = 296 +greenupxy ( 58, 5 ) = 296 +greenupxy ( 58, 6 ) = 296 +greenupxy ( 58, 7 ) = 257 +greenupxy ( 58, 8 ) = 257 +fallxy ( 58, 1 ) = 105 +fallxy ( 58, 2 ) = 79 +fallxy ( 58, 3 ) = 154 +fallxy ( 58, 4 ) = 93 +fallxy ( 58, 5 ) = 93 +fallxy ( 58, 6 ) = 93 +fallxy ( 58, 7 ) = 81 +fallxy ( 58, 8 ) = 81 +xyphendoy1 ( 58, 1 ) = 2 +xyphendoy1 ( 58, 2 ) = 2 +xyphendoy1 ( 58, 3 ) = 0 +xyphendoy1 ( 58, 4 ) = 2 +xyphendoy1 ( 58, 5 ) = 2 +xyphendoy1 ( 58, 6 ) = 2 +xyphendoy1 ( 58, 7 ) = 2 +xyphendoy1 ( 58, 8 ) = 2 + + ! xlat -27.2500000000000 +greenupxy ( 57, 1 ) = 292 +greenupxy ( 57, 2 ) = 280 +greenupxy ( 57, 3 ) = 52 +greenupxy ( 57, 4 ) = 294 +greenupxy ( 57, 5 ) = 294 +greenupxy ( 57, 6 ) = 294 +greenupxy ( 57, 7 ) = 249 +greenupxy ( 57, 8 ) = 249 +fallxy ( 57, 1 ) = 105 +fallxy ( 57, 2 ) = 79 +fallxy ( 57, 3 ) = 161 +fallxy ( 57, 4 ) = 93 +fallxy ( 57, 5 ) = 93 +fallxy ( 57, 6 ) = 93 +fallxy ( 57, 7 ) = 81 +fallxy ( 57, 8 ) = 81 +xyphendoy1 ( 57, 1 ) = 2 +xyphendoy1 ( 57, 2 ) = 2 +xyphendoy1 ( 57, 3 ) = 0 +xyphendoy1 ( 57, 4 ) = 2 +xyphendoy1 ( 57, 5 ) = 2 +xyphendoy1 ( 57, 6 ) = 2 +xyphendoy1 ( 57, 7 ) = 2 +xyphendoy1 ( 57, 8 ) = 2 + + ! xlat -27.7500000000000 +greenupxy ( 56, 1 ) = 292 +greenupxy ( 56, 2 ) = 279 +greenupxy ( 56, 3 ) = 58 +greenupxy ( 56, 4 ) = 292 +greenupxy ( 56, 5 ) = 292 +greenupxy ( 56, 6 ) = 292 +greenupxy ( 56, 7 ) = 241 +greenupxy ( 56, 8 ) = 241 +fallxy ( 56, 1 ) = 105 +fallxy ( 56, 2 ) = 79 +fallxy ( 56, 3 ) = 169 +fallxy ( 56, 4 ) = 93 +fallxy ( 56, 5 ) = 93 +fallxy ( 56, 6 ) = 93 +fallxy ( 56, 7 ) = 81 +fallxy ( 56, 8 ) = 81 +xyphendoy1 ( 56, 1 ) = 2 +xyphendoy1 ( 56, 2 ) = 2 +xyphendoy1 ( 56, 3 ) = 0 +xyphendoy1 ( 56, 4 ) = 2 +xyphendoy1 ( 56, 5 ) = 2 +xyphendoy1 ( 56, 6 ) = 2 +xyphendoy1 ( 56, 7 ) = 2 +xyphendoy1 ( 56, 8 ) = 2 + + ! xlat -28.2500000000000 +greenupxy ( 55, 1 ) = 292 +greenupxy ( 55, 2 ) = 279 +greenupxy ( 55, 3 ) = 64 +greenupxy ( 55, 4 ) = 287 +greenupxy ( 55, 5 ) = 287 +greenupxy ( 55, 6 ) = 287 +greenupxy ( 55, 7 ) = 233 +greenupxy ( 55, 8 ) = 233 +fallxy ( 55, 1 ) = 102 +fallxy ( 55, 2 ) = 78 +fallxy ( 55, 3 ) = 179 +fallxy ( 55, 4 ) = 93 +fallxy ( 55, 5 ) = 93 +fallxy ( 55, 6 ) = 93 +fallxy ( 55, 7 ) = 82 +fallxy ( 55, 8 ) = 82 +xyphendoy1 ( 55, 1 ) = 2 +xyphendoy1 ( 55, 2 ) = 2 +xyphendoy1 ( 55, 3 ) = 0 +xyphendoy1 ( 55, 4 ) = 2 +xyphendoy1 ( 55, 5 ) = 2 +xyphendoy1 ( 55, 6 ) = 2 +xyphendoy1 ( 55, 7 ) = 2 +xyphendoy1 ( 55, 8 ) = 2 + + ! xlat -28.7500000000000 +greenupxy ( 54, 1 ) = 292 +greenupxy ( 54, 2 ) = 278 +greenupxy ( 54, 3 ) = 70 +greenupxy ( 54, 4 ) = 286 +greenupxy ( 54, 5 ) = 286 +greenupxy ( 54, 6 ) = 286 +greenupxy ( 54, 7 ) = 225 +greenupxy ( 54, 8 ) = 225 +fallxy ( 54, 1 ) = 102 +fallxy ( 54, 2 ) = 78 +fallxy ( 54, 3 ) = 188 +fallxy ( 54, 4 ) = 94 +fallxy ( 54, 5 ) = 94 +fallxy ( 54, 6 ) = 94 +fallxy ( 54, 7 ) = 83 +fallxy ( 54, 8 ) = 83 +xyphendoy1 ( 54, 1 ) = 2 +xyphendoy1 ( 54, 2 ) = 2 +xyphendoy1 ( 54, 3 ) = 0 +xyphendoy1 ( 54, 4 ) = 2 +xyphendoy1 ( 54, 5 ) = 2 +xyphendoy1 ( 54, 6 ) = 2 +xyphendoy1 ( 54, 7 ) = 2 +xyphendoy1 ( 54, 8 ) = 2 + + ! xlat -29.2500000000000 +greenupxy ( 53, 1 ) = 297 +greenupxy ( 53, 2 ) = 278 +greenupxy ( 53, 3 ) = 75 +greenupxy ( 53, 4 ) = 284 +greenupxy ( 53, 5 ) = 284 +greenupxy ( 53, 6 ) = 284 +greenupxy ( 53, 7 ) = 218 +greenupxy ( 53, 8 ) = 218 +fallxy ( 53, 1 ) = 97 +fallxy ( 53, 2 ) = 78 +fallxy ( 53, 3 ) = 196 +fallxy ( 53, 4 ) = 93 +fallxy ( 53, 5 ) = 93 +fallxy ( 53, 6 ) = 93 +fallxy ( 53, 7 ) = 83 +fallxy ( 53, 8 ) = 83 +xyphendoy1 ( 53, 1 ) = 2 +xyphendoy1 ( 53, 2 ) = 2 +xyphendoy1 ( 53, 3 ) = 0 +xyphendoy1 ( 53, 4 ) = 2 +xyphendoy1 ( 53, 5 ) = 2 +xyphendoy1 ( 53, 6 ) = 2 +xyphendoy1 ( 53, 7 ) = 2 +xyphendoy1 ( 53, 8 ) = 2 + + ! xlat -29.7500000000000 +greenupxy ( 52, 1 ) = 290 +greenupxy ( 52, 2 ) = 277 +greenupxy ( 52, 3 ) = 79 +greenupxy ( 52, 4 ) = 281 +greenupxy ( 52, 5 ) = 281 +greenupxy ( 52, 6 ) = 281 +greenupxy ( 52, 7 ) = 210 +greenupxy ( 52, 8 ) = 210 +fallxy ( 52, 1 ) = 96 +fallxy ( 52, 2 ) = 77 +fallxy ( 52, 3 ) = 204 +fallxy ( 52, 4 ) = 93 +fallxy ( 52, 5 ) = 93 +fallxy ( 52, 6 ) = 93 +fallxy ( 52, 7 ) = 82 +fallxy ( 52, 8 ) = 82 +xyphendoy1 ( 52, 1 ) = 2 +xyphendoy1 ( 52, 2 ) = 2 +xyphendoy1 ( 52, 3 ) = 0 +xyphendoy1 ( 52, 4 ) = 2 +xyphendoy1 ( 52, 5 ) = 2 +xyphendoy1 ( 52, 6 ) = 2 +xyphendoy1 ( 52, 7 ) = 2 +xyphendoy1 ( 52, 8 ) = 2 + + ! xlat -30.2500000000000 +greenupxy ( 51, 1 ) = 290 +greenupxy ( 51, 2 ) = 276 +greenupxy ( 51, 3 ) = 82 +greenupxy ( 51, 4 ) = 280 +greenupxy ( 51, 5 ) = 280 +greenupxy ( 51, 6 ) = 280 +greenupxy ( 51, 7 ) = 203 +greenupxy ( 51, 8 ) = 203 +fallxy ( 51, 1 ) = 94 +fallxy ( 51, 2 ) = 77 +fallxy ( 51, 3 ) = 211 +fallxy ( 51, 4 ) = 92 +fallxy ( 51, 5 ) = 92 +fallxy ( 51, 6 ) = 92 +fallxy ( 51, 7 ) = 80 +fallxy ( 51, 8 ) = 80 +xyphendoy1 ( 51, 1 ) = 2 +xyphendoy1 ( 51, 2 ) = 2 +xyphendoy1 ( 51, 3 ) = 0 +xyphendoy1 ( 51, 4 ) = 2 +xyphendoy1 ( 51, 5 ) = 2 +xyphendoy1 ( 51, 6 ) = 2 +xyphendoy1 ( 51, 7 ) = 2 +xyphendoy1 ( 51, 8 ) = 2 + + ! xlat -30.7500000000000 +greenupxy ( 50, 1 ) = 285 +greenupxy ( 50, 2 ) = 275 +greenupxy ( 50, 3 ) = 85 +greenupxy ( 50, 4 ) = 280 +greenupxy ( 50, 5 ) = 280 +greenupxy ( 50, 6 ) = 280 +greenupxy ( 50, 7 ) = 196 +greenupxy ( 50, 8 ) = 196 +fallxy ( 50, 1 ) = 90 +fallxy ( 50, 2 ) = 77 +fallxy ( 50, 3 ) = 216 +fallxy ( 50, 4 ) = 91 +fallxy ( 50, 5 ) = 91 +fallxy ( 50, 6 ) = 91 +fallxy ( 50, 7 ) = 83 +fallxy ( 50, 8 ) = 83 +xyphendoy1 ( 50, 1 ) = 2 +xyphendoy1 ( 50, 2 ) = 2 +xyphendoy1 ( 50, 3 ) = 0 +xyphendoy1 ( 50, 4 ) = 2 +xyphendoy1 ( 50, 5 ) = 2 +xyphendoy1 ( 50, 6 ) = 2 +xyphendoy1 ( 50, 7 ) = 2 +xyphendoy1 ( 50, 8 ) = 2 + + ! xlat -31.2500000000000 +greenupxy ( 49, 1 ) = 284 +greenupxy ( 49, 2 ) = 274 +greenupxy ( 49, 3 ) = 81 +greenupxy ( 49, 4 ) = 281 +greenupxy ( 49, 5 ) = 281 +greenupxy ( 49, 6 ) = 281 +greenupxy ( 49, 7 ) = 188 +greenupxy ( 49, 8 ) = 188 +fallxy ( 49, 1 ) = 88 +fallxy ( 49, 2 ) = 76 +fallxy ( 49, 3 ) = 213 +fallxy ( 49, 4 ) = 91 +fallxy ( 49, 5 ) = 91 +fallxy ( 49, 6 ) = 91 +fallxy ( 49, 7 ) = 86 +fallxy ( 49, 8 ) = 86 +xyphendoy1 ( 49, 1 ) = 2 +xyphendoy1 ( 49, 2 ) = 2 +xyphendoy1 ( 49, 3 ) = 0 +xyphendoy1 ( 49, 4 ) = 2 +xyphendoy1 ( 49, 5 ) = 2 +xyphendoy1 ( 49, 6 ) = 2 +xyphendoy1 ( 49, 7 ) = 2 +xyphendoy1 ( 49, 8 ) = 2 + + ! xlat -31.7500000000000 +greenupxy ( 48, 1 ) = 282 +greenupxy ( 48, 2 ) = 273 +greenupxy ( 48, 3 ) = 75 +greenupxy ( 48, 4 ) = 280 +greenupxy ( 48, 5 ) = 280 +greenupxy ( 48, 6 ) = 280 +greenupxy ( 48, 7 ) = 180 +greenupxy ( 48, 8 ) = 180 +fallxy ( 48, 1 ) = 85 +fallxy ( 48, 2 ) = 76 +fallxy ( 48, 3 ) = 212 +fallxy ( 48, 4 ) = 90 +fallxy ( 48, 5 ) = 90 +fallxy ( 48, 6 ) = 90 +fallxy ( 48, 7 ) = 83 +fallxy ( 48, 8 ) = 83 +xyphendoy1 ( 48, 1 ) = 2 +xyphendoy1 ( 48, 2 ) = 2 +xyphendoy1 ( 48, 3 ) = 0 +xyphendoy1 ( 48, 4 ) = 2 +xyphendoy1 ( 48, 5 ) = 2 +xyphendoy1 ( 48, 6 ) = 2 +xyphendoy1 ( 48, 7 ) = 2 +xyphendoy1 ( 48, 8 ) = 2 + + ! xlat -32.2500000000000 +greenupxy ( 47, 1 ) = 279 +greenupxy ( 47, 2 ) = 272 +greenupxy ( 47, 3 ) = 68 +greenupxy ( 47, 4 ) = 279 +greenupxy ( 47, 5 ) = 279 +greenupxy ( 47, 6 ) = 279 +greenupxy ( 47, 7 ) = 174 +greenupxy ( 47, 8 ) = 174 +fallxy ( 47, 1 ) = 81 +fallxy ( 47, 2 ) = 75 +fallxy ( 47, 3 ) = 211 +fallxy ( 47, 4 ) = 89 +fallxy ( 47, 5 ) = 89 +fallxy ( 47, 6 ) = 89 +fallxy ( 47, 7 ) = 83 +fallxy ( 47, 8 ) = 83 +xyphendoy1 ( 47, 1 ) = 2 +xyphendoy1 ( 47, 2 ) = 2 +xyphendoy1 ( 47, 3 ) = 0 +xyphendoy1 ( 47, 4 ) = 2 +xyphendoy1 ( 47, 5 ) = 2 +xyphendoy1 ( 47, 6 ) = 2 +xyphendoy1 ( 47, 7 ) = 2 +xyphendoy1 ( 47, 8 ) = 2 + + ! xlat -32.7500000000000 +greenupxy ( 46, 1 ) = 273 +greenupxy ( 46, 2 ) = 270 +greenupxy ( 46, 3 ) = 61 +greenupxy ( 46, 4 ) = 276 +greenupxy ( 46, 5 ) = 276 +greenupxy ( 46, 6 ) = 276 +greenupxy ( 46, 7 ) = 173 +greenupxy ( 46, 8 ) = 173 +fallxy ( 46, 1 ) = 77 +fallxy ( 46, 2 ) = 73 +fallxy ( 46, 3 ) = 208 +fallxy ( 46, 4 ) = 88 +fallxy ( 46, 5 ) = 88 +fallxy ( 46, 6 ) = 88 +fallxy ( 46, 7 ) = 83 +fallxy ( 46, 8 ) = 83 +xyphendoy1 ( 46, 1 ) = 2 +xyphendoy1 ( 46, 2 ) = 2 +xyphendoy1 ( 46, 3 ) = 0 +xyphendoy1 ( 46, 4 ) = 2 +xyphendoy1 ( 46, 5 ) = 2 +xyphendoy1 ( 46, 6 ) = 2 +xyphendoy1 ( 46, 7 ) = 2 +xyphendoy1 ( 46, 8 ) = 2 + + ! xlat -33.2500000000000 +greenupxy ( 45, 1 ) = 273 +greenupxy ( 45, 2 ) = 269 +greenupxy ( 45, 3 ) = 52 +greenupxy ( 45, 4 ) = 274 +greenupxy ( 45, 5 ) = 274 +greenupxy ( 45, 6 ) = 274 +greenupxy ( 45, 7 ) = 172 +greenupxy ( 45, 8 ) = 172 +fallxy ( 45, 1 ) = 79 +fallxy ( 45, 2 ) = 73 +fallxy ( 45, 3 ) = 207 +fallxy ( 45, 4 ) = 87 +fallxy ( 45, 5 ) = 87 +fallxy ( 45, 6 ) = 87 +fallxy ( 45, 7 ) = 83 +fallxy ( 45, 8 ) = 83 +xyphendoy1 ( 45, 1 ) = 2 +xyphendoy1 ( 45, 2 ) = 2 +xyphendoy1 ( 45, 3 ) = 0 +xyphendoy1 ( 45, 4 ) = 2 +xyphendoy1 ( 45, 5 ) = 2 +xyphendoy1 ( 45, 6 ) = 2 +xyphendoy1 ( 45, 7 ) = 2 +xyphendoy1 ( 45, 8 ) = 2 + + ! xlat -33.7500000000000 +greenupxy ( 44, 1 ) = 274 +greenupxy ( 44, 2 ) = 269 +greenupxy ( 44, 3 ) = 41 +greenupxy ( 44, 4 ) = 271 +greenupxy ( 44, 5 ) = 271 +greenupxy ( 44, 6 ) = 271 +greenupxy ( 44, 7 ) = 177 +greenupxy ( 44, 8 ) = 177 +fallxy ( 44, 1 ) = 73 +fallxy ( 44, 2 ) = 73 +fallxy ( 44, 3 ) = 199 +fallxy ( 44, 4 ) = 82 +fallxy ( 44, 5 ) = 82 +fallxy ( 44, 6 ) = 82 +fallxy ( 44, 7 ) = 83 +fallxy ( 44, 8 ) = 83 +xyphendoy1 ( 44, 1 ) = 2 +xyphendoy1 ( 44, 2 ) = 2 +xyphendoy1 ( 44, 3 ) = 0 +xyphendoy1 ( 44, 4 ) = 2 +xyphendoy1 ( 44, 5 ) = 2 +xyphendoy1 ( 44, 6 ) = 2 +xyphendoy1 ( 44, 7 ) = 2 +xyphendoy1 ( 44, 8 ) = 2 + + ! xlat -34.2500000000000 +greenupxy ( 43, 1 ) = 277 +greenupxy ( 43, 2 ) = 268 +greenupxy ( 43, 3 ) = 33 +greenupxy ( 43, 4 ) = 270 +greenupxy ( 43, 5 ) = 270 +greenupxy ( 43, 6 ) = 270 +greenupxy ( 43, 7 ) = 182 +greenupxy ( 43, 8 ) = 182 +fallxy ( 43, 1 ) = 73 +fallxy ( 43, 2 ) = 73 +fallxy ( 43, 3 ) = 198 +fallxy ( 43, 4 ) = 81 +fallxy ( 43, 5 ) = 81 +fallxy ( 43, 6 ) = 81 +fallxy ( 43, 7 ) = 83 +fallxy ( 43, 8 ) = 83 +xyphendoy1 ( 43, 1 ) = 2 +xyphendoy1 ( 43, 2 ) = 2 +xyphendoy1 ( 43, 3 ) = 0 +xyphendoy1 ( 43, 4 ) = 2 +xyphendoy1 ( 43, 5 ) = 2 +xyphendoy1 ( 43, 6 ) = 2 +xyphendoy1 ( 43, 7 ) = 2 +xyphendoy1 ( 43, 8 ) = 2 + + ! xlat -34.7500000000000 +greenupxy ( 42, 1 ) = 270 +greenupxy ( 42, 2 ) = 267 +greenupxy ( 42, 3 ) = 23 +greenupxy ( 42, 4 ) = 262 +greenupxy ( 42, 5 ) = 262 +greenupxy ( 42, 6 ) = 262 +greenupxy ( 42, 7 ) = 187 +greenupxy ( 42, 8 ) = 187 +fallxy ( 42, 1 ) = 69 +fallxy ( 42, 2 ) = 72 +fallxy ( 42, 3 ) = 197 +fallxy ( 42, 4 ) = 79 +fallxy ( 42, 5 ) = 79 +fallxy ( 42, 6 ) = 79 +fallxy ( 42, 7 ) = 83 +fallxy ( 42, 8 ) = 83 +xyphendoy1 ( 42, 1 ) = 2 +xyphendoy1 ( 42, 2 ) = 2 +xyphendoy1 ( 42, 3 ) = 0 +xyphendoy1 ( 42, 4 ) = 2 +xyphendoy1 ( 42, 5 ) = 2 +xyphendoy1 ( 42, 6 ) = 2 +xyphendoy1 ( 42, 7 ) = 2 +xyphendoy1 ( 42, 8 ) = 2 + + ! xlat -35.2500000000000 +greenupxy ( 41, 1 ) = 273 +greenupxy ( 41, 2 ) = 265 +greenupxy ( 41, 3 ) = 14 +greenupxy ( 41, 4 ) = 261 +greenupxy ( 41, 5 ) = 261 +greenupxy ( 41, 6 ) = 261 +greenupxy ( 41, 7 ) = 193 +greenupxy ( 41, 8 ) = 193 +fallxy ( 41, 1 ) = 68 +fallxy ( 41, 2 ) = 69 +fallxy ( 41, 3 ) = 193 +fallxy ( 41, 4 ) = 75 +fallxy ( 41, 5 ) = 75 +fallxy ( 41, 6 ) = 75 +fallxy ( 41, 7 ) = 21 +fallxy ( 41, 8 ) = 21 +xyphendoy1 ( 41, 1 ) = 2 +xyphendoy1 ( 41, 2 ) = 2 +xyphendoy1 ( 41, 3 ) = 0 +xyphendoy1 ( 41, 4 ) = 2 +xyphendoy1 ( 41, 5 ) = 2 +xyphendoy1 ( 41, 6 ) = 2 +xyphendoy1 ( 41, 7 ) = 2 +xyphendoy1 ( 41, 8 ) = 2 + + ! xlat -35.7500000000000 +greenupxy ( 40, 1 ) = 272 +greenupxy ( 40, 2 ) = 264 +greenupxy ( 40, 3 ) = 7 +greenupxy ( 40, 4 ) = 261 +greenupxy ( 40, 5 ) = 261 +greenupxy ( 40, 6 ) = 261 +greenupxy ( 40, 7 ) = 194 +greenupxy ( 40, 8 ) = 194 +fallxy ( 40, 1 ) = 68 +fallxy ( 40, 2 ) = 64 +fallxy ( 40, 3 ) = 191 +fallxy ( 40, 4 ) = 74 +fallxy ( 40, 5 ) = 74 +fallxy ( 40, 6 ) = 74 +fallxy ( 40, 7 ) = 21 +fallxy ( 40, 8 ) = 21 +xyphendoy1 ( 40, 1 ) = 2 +xyphendoy1 ( 40, 2 ) = 2 +xyphendoy1 ( 40, 3 ) = 0 +xyphendoy1 ( 40, 4 ) = 2 +xyphendoy1 ( 40, 5 ) = 2 +xyphendoy1 ( 40, 6 ) = 2 +xyphendoy1 ( 40, 7 ) = 2 +xyphendoy1 ( 40, 8 ) = 2 + + ! xlat -36.2500000000000 +greenupxy ( 39, 1 ) = 276 +greenupxy ( 39, 2 ) = 262 +greenupxy ( 39, 3 ) = 363 +greenupxy ( 39, 4 ) = 259 +greenupxy ( 39, 5 ) = 259 +greenupxy ( 39, 6 ) = 259 +greenupxy ( 39, 7 ) = 196 +greenupxy ( 39, 8 ) = 196 +fallxy ( 39, 1 ) = 68 +fallxy ( 39, 2 ) = 59 +fallxy ( 39, 3 ) = 187 +fallxy ( 39, 4 ) = 72 +fallxy ( 39, 5 ) = 72 +fallxy ( 39, 6 ) = 72 +fallxy ( 39, 7 ) = 21 +fallxy ( 39, 8 ) = 21 +xyphendoy1 ( 39, 1 ) = 2 +xyphendoy1 ( 39, 2 ) = 2 +xyphendoy1 ( 39, 3 ) = 2 +xyphendoy1 ( 39, 4 ) = 2 +xyphendoy1 ( 39, 5 ) = 2 +xyphendoy1 ( 39, 6 ) = 2 +xyphendoy1 ( 39, 7 ) = 2 +xyphendoy1 ( 39, 8 ) = 2 + + ! xlat -36.7500000000000 +greenupxy ( 38, 1 ) = 272 +greenupxy ( 38, 2 ) = 259 +greenupxy ( 38, 3 ) = 347 +greenupxy ( 38, 4 ) = 262 +greenupxy ( 38, 5 ) = 262 +greenupxy ( 38, 6 ) = 262 +greenupxy ( 38, 7 ) = 198 +greenupxy ( 38, 8 ) = 198 +fallxy ( 38, 1 ) = 68 +fallxy ( 38, 2 ) = 58 +fallxy ( 38, 3 ) = 181 +fallxy ( 38, 4 ) = 70 +fallxy ( 38, 5 ) = 70 +fallxy ( 38, 6 ) = 70 +fallxy ( 38, 7 ) = 21 +fallxy ( 38, 8 ) = 21 +xyphendoy1 ( 38, 1 ) = 2 +xyphendoy1 ( 38, 2 ) = 2 +xyphendoy1 ( 38, 3 ) = 2 +xyphendoy1 ( 38, 4 ) = 2 +xyphendoy1 ( 38, 5 ) = 2 +xyphendoy1 ( 38, 6 ) = 2 +xyphendoy1 ( 38, 7 ) = 2 +xyphendoy1 ( 38, 8 ) = 2 + + ! xlat -37.2500000000000 +greenupxy ( 37, 1 ) = 273 +greenupxy ( 37, 2 ) = 257 +greenupxy ( 37, 3 ) = 329 +greenupxy ( 37, 4 ) = 260 +greenupxy ( 37, 5 ) = 260 +greenupxy ( 37, 6 ) = 260 +greenupxy ( 37, 7 ) = 199 +greenupxy ( 37, 8 ) = 199 +fallxy ( 37, 1 ) = 67 +fallxy ( 37, 2 ) = 53 +fallxy ( 37, 3 ) = 171 +fallxy ( 37, 4 ) = 68 +fallxy ( 37, 5 ) = 68 +fallxy ( 37, 6 ) = 68 +fallxy ( 37, 7 ) = 21 +fallxy ( 37, 8 ) = 21 +xyphendoy1 ( 37, 1 ) = 2 +xyphendoy1 ( 37, 2 ) = 2 +xyphendoy1 ( 37, 3 ) = 2 +xyphendoy1 ( 37, 4 ) = 2 +xyphendoy1 ( 37, 5 ) = 2 +xyphendoy1 ( 37, 6 ) = 2 +xyphendoy1 ( 37, 7 ) = 2 +xyphendoy1 ( 37, 8 ) = 2 + + ! xlat -37.7500000000000 +greenupxy ( 36, 1 ) = 270 +greenupxy ( 36, 2 ) = 255 +greenupxy ( 36, 3 ) = 310 +greenupxy ( 36, 4 ) = 258 +greenupxy ( 36, 5 ) = 258 +greenupxy ( 36, 6 ) = 258 +greenupxy ( 36, 7 ) = 199 +greenupxy ( 36, 8 ) = 199 +fallxy ( 36, 1 ) = 69 +fallxy ( 36, 2 ) = 48 +fallxy ( 36, 3 ) = 160 +fallxy ( 36, 4 ) = 61 +fallxy ( 36, 5 ) = 61 +fallxy ( 36, 6 ) = 61 +fallxy ( 36, 7 ) = 21 +fallxy ( 36, 8 ) = 21 +xyphendoy1 ( 36, 1 ) = 2 +xyphendoy1 ( 36, 2 ) = 2 +xyphendoy1 ( 36, 3 ) = 2 +xyphendoy1 ( 36, 4 ) = 2 +xyphendoy1 ( 36, 5 ) = 2 +xyphendoy1 ( 36, 6 ) = 2 +xyphendoy1 ( 36, 7 ) = 2 +xyphendoy1 ( 36, 8 ) = 2 + + ! xlat -38.2500000000000 +greenupxy ( 35, 1 ) = 274 +greenupxy ( 35, 2 ) = 255 +greenupxy ( 35, 3 ) = 307 +greenupxy ( 35, 4 ) = 260 +greenupxy ( 35, 5 ) = 260 +greenupxy ( 35, 6 ) = 260 +greenupxy ( 35, 7 ) = 202 +greenupxy ( 35, 8 ) = 202 +fallxy ( 35, 1 ) = 67 +fallxy ( 35, 2 ) = 45 +fallxy ( 35, 3 ) = 151 +fallxy ( 35, 4 ) = 59 +fallxy ( 35, 5 ) = 59 +fallxy ( 35, 6 ) = 59 +fallxy ( 35, 7 ) = 21 +fallxy ( 35, 8 ) = 21 +xyphendoy1 ( 35, 1 ) = 2 +xyphendoy1 ( 35, 2 ) = 2 +xyphendoy1 ( 35, 3 ) = 2 +xyphendoy1 ( 35, 4 ) = 2 +xyphendoy1 ( 35, 5 ) = 2 +xyphendoy1 ( 35, 6 ) = 2 +xyphendoy1 ( 35, 7 ) = 2 +xyphendoy1 ( 35, 8 ) = 2 + + ! xlat -38.7500000000000 +greenupxy ( 34, 1 ) = 273 +greenupxy ( 34, 2 ) = 253 +greenupxy ( 34, 3 ) = 304 +greenupxy ( 34, 4 ) = 260 +greenupxy ( 34, 5 ) = 260 +greenupxy ( 34, 6 ) = 260 +greenupxy ( 34, 7 ) = 202 +greenupxy ( 34, 8 ) = 202 +fallxy ( 34, 1 ) = 67 +fallxy ( 34, 2 ) = 43 +fallxy ( 34, 3 ) = 141 +fallxy ( 34, 4 ) = 58 +fallxy ( 34, 5 ) = 58 +fallxy ( 34, 6 ) = 58 +fallxy ( 34, 7 ) = 14 +fallxy ( 34, 8 ) = 14 +xyphendoy1 ( 34, 1 ) = 2 +xyphendoy1 ( 34, 2 ) = 2 +xyphendoy1 ( 34, 3 ) = 2 +xyphendoy1 ( 34, 4 ) = 2 +xyphendoy1 ( 34, 5 ) = 2 +xyphendoy1 ( 34, 6 ) = 2 +xyphendoy1 ( 34, 7 ) = 2 +xyphendoy1 ( 34, 8 ) = 2 + + ! xlat -39.2500000000000 +greenupxy ( 33, 1 ) = 274 +greenupxy ( 33, 2 ) = 254 +greenupxy ( 33, 3 ) = 299 +greenupxy ( 33, 4 ) = 255 +greenupxy ( 33, 5 ) = 255 +greenupxy ( 33, 6 ) = 255 +greenupxy ( 33, 7 ) = 201 +greenupxy ( 33, 8 ) = 201 +fallxy ( 33, 1 ) = 66 +fallxy ( 33, 2 ) = 40 +fallxy ( 33, 3 ) = 141 +fallxy ( 33, 4 ) = 56 +fallxy ( 33, 5 ) = 56 +fallxy ( 33, 6 ) = 56 +fallxy ( 33, 7 ) = 14 +fallxy ( 33, 8 ) = 14 +xyphendoy1 ( 33, 1 ) = 2 +xyphendoy1 ( 33, 2 ) = 2 +xyphendoy1 ( 33, 3 ) = 2 +xyphendoy1 ( 33, 4 ) = 2 +xyphendoy1 ( 33, 5 ) = 2 +xyphendoy1 ( 33, 6 ) = 2 +xyphendoy1 ( 33, 7 ) = 2 +xyphendoy1 ( 33, 8 ) = 2 + + ! xlat -39.7500000000000 +greenupxy ( 32, 1 ) = 275 +greenupxy ( 32, 2 ) = 253 +greenupxy ( 32, 3 ) = 293 +greenupxy ( 32, 4 ) = 250 +greenupxy ( 32, 5 ) = 250 +greenupxy ( 32, 6 ) = 250 +greenupxy ( 32, 7 ) = 205 +greenupxy ( 32, 8 ) = 205 +fallxy ( 32, 1 ) = 65 +fallxy ( 32, 2 ) = 38 +fallxy ( 32, 3 ) = 136 +fallxy ( 32, 4 ) = 53 +fallxy ( 32, 5 ) = 53 +fallxy ( 32, 6 ) = 53 +fallxy ( 32, 7 ) = 14 +fallxy ( 32, 8 ) = 14 +xyphendoy1 ( 32, 1 ) = 2 +xyphendoy1 ( 32, 2 ) = 2 +xyphendoy1 ( 32, 3 ) = 2 +xyphendoy1 ( 32, 4 ) = 2 +xyphendoy1 ( 32, 5 ) = 2 +xyphendoy1 ( 32, 6 ) = 2 +xyphendoy1 ( 32, 7 ) = 2 +xyphendoy1 ( 32, 8 ) = 2 + + ! xlat -40.2500000000000 +greenupxy ( 31, 1 ) = 276 +greenupxy ( 31, 2 ) = 254 +greenupxy ( 31, 3 ) = 288 +greenupxy ( 31, 4 ) = 246 +greenupxy ( 31, 5 ) = 246 +greenupxy ( 31, 6 ) = 246 +greenupxy ( 31, 7 ) = 211 +greenupxy ( 31, 8 ) = 211 +fallxy ( 31, 1 ) = 64 +fallxy ( 31, 2 ) = 36 +fallxy ( 31, 3 ) = 133 +fallxy ( 31, 4 ) = 53 +fallxy ( 31, 5 ) = 53 +fallxy ( 31, 6 ) = 53 +fallxy ( 31, 7 ) = 11 +fallxy ( 31, 8 ) = 11 +xyphendoy1 ( 31, 1 ) = 2 +xyphendoy1 ( 31, 2 ) = 2 +xyphendoy1 ( 31, 3 ) = 2 +xyphendoy1 ( 31, 4 ) = 2 +xyphendoy1 ( 31, 5 ) = 2 +xyphendoy1 ( 31, 6 ) = 2 +xyphendoy1 ( 31, 7 ) = 2 +xyphendoy1 ( 31, 8 ) = 2 + + ! xlat -40.7500000000000 +greenupxy ( 30, 1 ) = 277 +greenupxy ( 30, 2 ) = 255 +greenupxy ( 30, 3 ) = 285 +greenupxy ( 30, 4 ) = 245 +greenupxy ( 30, 5 ) = 245 +greenupxy ( 30, 6 ) = 245 +greenupxy ( 30, 7 ) = 217 +greenupxy ( 30, 8 ) = 217 +fallxy ( 30, 1 ) = 64 +fallxy ( 30, 2 ) = 34 +fallxy ( 30, 3 ) = 128 +fallxy ( 30, 4 ) = 53 +fallxy ( 30, 5 ) = 53 +fallxy ( 30, 6 ) = 53 +fallxy ( 30, 7 ) = 11 +fallxy ( 30, 8 ) = 11 +xyphendoy1 ( 30, 1 ) = 2 +xyphendoy1 ( 30, 2 ) = 2 +xyphendoy1 ( 30, 3 ) = 2 +xyphendoy1 ( 30, 4 ) = 2 +xyphendoy1 ( 30, 5 ) = 2 +xyphendoy1 ( 30, 6 ) = 2 +xyphendoy1 ( 30, 7 ) = 2 +xyphendoy1 ( 30, 8 ) = 2 + + ! xlat -41.2500000000000 +greenupxy ( 29, 1 ) = 279 +greenupxy ( 29, 2 ) = 256 +greenupxy ( 29, 3 ) = 280 +greenupxy ( 29, 4 ) = 244 +greenupxy ( 29, 5 ) = 244 +greenupxy ( 29, 6 ) = 244 +greenupxy ( 29, 7 ) = 217 +greenupxy ( 29, 8 ) = 217 +fallxy ( 29, 1 ) = 65 +fallxy ( 29, 2 ) = 33 +fallxy ( 29, 3 ) = 116 +fallxy ( 29, 4 ) = 52 +fallxy ( 29, 5 ) = 52 +fallxy ( 29, 6 ) = 52 +fallxy ( 29, 7 ) = 15 +fallxy ( 29, 8 ) = 15 +xyphendoy1 ( 29, 1 ) = 2 +xyphendoy1 ( 29, 2 ) = 2 +xyphendoy1 ( 29, 3 ) = 2 +xyphendoy1 ( 29, 4 ) = 2 +xyphendoy1 ( 29, 5 ) = 2 +xyphendoy1 ( 29, 6 ) = 2 +xyphendoy1 ( 29, 7 ) = 2 +xyphendoy1 ( 29, 8 ) = 2 + + ! xlat -41.7500000000000 +greenupxy ( 28, 1 ) = 280 +greenupxy ( 28, 2 ) = 256 +greenupxy ( 28, 3 ) = 278 +greenupxy ( 28, 4 ) = 244 +greenupxy ( 28, 5 ) = 244 +greenupxy ( 28, 6 ) = 244 +greenupxy ( 28, 7 ) = 217 +greenupxy ( 28, 8 ) = 217 +fallxy ( 28, 1 ) = 62 +fallxy ( 28, 2 ) = 34 +fallxy ( 28, 3 ) = 108 +fallxy ( 28, 4 ) = 52 +fallxy ( 28, 5 ) = 52 +fallxy ( 28, 6 ) = 52 +fallxy ( 28, 7 ) = 18 +fallxy ( 28, 8 ) = 18 +xyphendoy1 ( 28, 1 ) = 2 +xyphendoy1 ( 28, 2 ) = 2 +xyphendoy1 ( 28, 3 ) = 2 +xyphendoy1 ( 28, 4 ) = 2 +xyphendoy1 ( 28, 5 ) = 2 +xyphendoy1 ( 28, 6 ) = 2 +xyphendoy1 ( 28, 7 ) = 2 +xyphendoy1 ( 28, 8 ) = 2 + + ! xlat -42.2500000000000 +greenupxy ( 27, 1 ) = 281 +greenupxy ( 27, 2 ) = 257 +greenupxy ( 27, 3 ) = 276 +greenupxy ( 27, 4 ) = 245 +greenupxy ( 27, 5 ) = 245 +greenupxy ( 27, 6 ) = 245 +greenupxy ( 27, 7 ) = 218 +greenupxy ( 27, 8 ) = 218 +fallxy ( 27, 1 ) = 60 +fallxy ( 27, 2 ) = 35 +fallxy ( 27, 3 ) = 107 +fallxy ( 27, 4 ) = 55 +fallxy ( 27, 5 ) = 55 +fallxy ( 27, 6 ) = 55 +fallxy ( 27, 7 ) = 21 +fallxy ( 27, 8 ) = 21 +xyphendoy1 ( 27, 1 ) = 2 +xyphendoy1 ( 27, 2 ) = 2 +xyphendoy1 ( 27, 3 ) = 2 +xyphendoy1 ( 27, 4 ) = 2 +xyphendoy1 ( 27, 5 ) = 2 +xyphendoy1 ( 27, 6 ) = 2 +xyphendoy1 ( 27, 7 ) = 2 +xyphendoy1 ( 27, 8 ) = 2 + + ! xlat -42.7500000000000 +greenupxy ( 26, 1 ) = 281 +greenupxy ( 26, 2 ) = 258 +greenupxy ( 26, 3 ) = 272 +greenupxy ( 26, 4 ) = 247 +greenupxy ( 26, 5 ) = 247 +greenupxy ( 26, 6 ) = 247 +greenupxy ( 26, 7 ) = 220 +greenupxy ( 26, 8 ) = 220 +fallxy ( 26, 1 ) = 60 +fallxy ( 26, 2 ) = 36 +fallxy ( 26, 3 ) = 107 +fallxy ( 26, 4 ) = 56 +fallxy ( 26, 5 ) = 56 +fallxy ( 26, 6 ) = 56 +fallxy ( 26, 7 ) = 27 +fallxy ( 26, 8 ) = 27 +xyphendoy1 ( 26, 1 ) = 2 +xyphendoy1 ( 26, 2 ) = 2 +xyphendoy1 ( 26, 3 ) = 2 +xyphendoy1 ( 26, 4 ) = 2 +xyphendoy1 ( 26, 5 ) = 2 +xyphendoy1 ( 26, 6 ) = 2 +xyphendoy1 ( 26, 7 ) = 2 +xyphendoy1 ( 26, 8 ) = 2 + + ! xlat -43.2500000000000 +greenupxy ( 25, 1 ) = 284 +greenupxy ( 25, 2 ) = 260 +greenupxy ( 25, 3 ) = 268 +greenupxy ( 25, 4 ) = 256 +greenupxy ( 25, 5 ) = 256 +greenupxy ( 25, 6 ) = 256 +greenupxy ( 25, 7 ) = 224 +greenupxy ( 25, 8 ) = 224 +fallxy ( 25, 1 ) = 62 +fallxy ( 25, 2 ) = 37 +fallxy ( 25, 3 ) = 99 +fallxy ( 25, 4 ) = 54 +fallxy ( 25, 5 ) = 54 +fallxy ( 25, 6 ) = 54 +fallxy ( 25, 7 ) = 30 +fallxy ( 25, 8 ) = 30 +xyphendoy1 ( 25, 1 ) = 2 +xyphendoy1 ( 25, 2 ) = 2 +xyphendoy1 ( 25, 3 ) = 2 +xyphendoy1 ( 25, 4 ) = 2 +xyphendoy1 ( 25, 5 ) = 2 +xyphendoy1 ( 25, 6 ) = 2 +xyphendoy1 ( 25, 7 ) = 2 +xyphendoy1 ( 25, 8 ) = 2 + + ! xlat -43.7500000000000 +greenupxy ( 24, 1 ) = 282 +greenupxy ( 24, 2 ) = 262 +greenupxy ( 24, 3 ) = 263 +greenupxy ( 24, 4 ) = 258 +greenupxy ( 24, 5 ) = 258 +greenupxy ( 24, 6 ) = 258 +greenupxy ( 24, 7 ) = 229 +greenupxy ( 24, 8 ) = 229 +fallxy ( 24, 1 ) = 62 +fallxy ( 24, 2 ) = 38 +fallxy ( 24, 3 ) = 83 +fallxy ( 24, 4 ) = 55 +fallxy ( 24, 5 ) = 55 +fallxy ( 24, 6 ) = 55 +fallxy ( 24, 7 ) = 35 +fallxy ( 24, 8 ) = 35 +xyphendoy1 ( 24, 1 ) = 2 +xyphendoy1 ( 24, 2 ) = 2 +xyphendoy1 ( 24, 3 ) = 2 +xyphendoy1 ( 24, 4 ) = 2 +xyphendoy1 ( 24, 5 ) = 2 +xyphendoy1 ( 24, 6 ) = 2 +xyphendoy1 ( 24, 7 ) = 2 +xyphendoy1 ( 24, 8 ) = 2 + + ! xlat -44.2500000000000 +greenupxy ( 23, 1 ) = 279 +greenupxy ( 23, 2 ) = 263 +greenupxy ( 23, 3 ) = 264 +greenupxy ( 23, 4 ) = 260 +greenupxy ( 23, 5 ) = 260 +greenupxy ( 23, 6 ) = 260 +greenupxy ( 23, 7 ) = 234 +greenupxy ( 23, 8 ) = 234 +fallxy ( 23, 1 ) = 61 +fallxy ( 23, 2 ) = 41 +fallxy ( 23, 3 ) = 64 +fallxy ( 23, 4 ) = 55 +fallxy ( 23, 5 ) = 55 +fallxy ( 23, 6 ) = 55 +fallxy ( 23, 7 ) = 35 +fallxy ( 23, 8 ) = 35 +xyphendoy1 ( 23, 1 ) = 2 +xyphendoy1 ( 23, 2 ) = 2 +xyphendoy1 ( 23, 3 ) = 2 +xyphendoy1 ( 23, 4 ) = 2 +xyphendoy1 ( 23, 5 ) = 2 +xyphendoy1 ( 23, 6 ) = 2 +xyphendoy1 ( 23, 7 ) = 2 +xyphendoy1 ( 23, 8 ) = 2 + + ! xlat -44.7500000000000 +greenupxy ( 22, 1 ) = 274 +greenupxy ( 22, 2 ) = 266 +greenupxy ( 22, 3 ) = 265 +greenupxy ( 22, 4 ) = 263 +greenupxy ( 22, 5 ) = 263 +greenupxy ( 22, 6 ) = 263 +greenupxy ( 22, 7 ) = 237 +greenupxy ( 22, 8 ) = 237 +fallxy ( 22, 1 ) = 59 +fallxy ( 22, 2 ) = 44 +fallxy ( 22, 3 ) = 64 +fallxy ( 22, 4 ) = 53 +fallxy ( 22, 5 ) = 53 +fallxy ( 22, 6 ) = 53 +fallxy ( 22, 7 ) = 39 +fallxy ( 22, 8 ) = 39 +xyphendoy1 ( 22, 1 ) = 2 +xyphendoy1 ( 22, 2 ) = 2 +xyphendoy1 ( 22, 3 ) = 2 +xyphendoy1 ( 22, 4 ) = 2 +xyphendoy1 ( 22, 5 ) = 2 +xyphendoy1 ( 22, 6 ) = 2 +xyphendoy1 ( 22, 7 ) = 2 +xyphendoy1 ( 22, 8 ) = 2 + + ! xlat -45.2500000000000 +greenupxy ( 21, 1 ) = 282 +greenupxy ( 21, 2 ) = 271 +greenupxy ( 21, 3 ) = 263 +greenupxy ( 21, 4 ) = 265 +greenupxy ( 21, 5 ) = 265 +greenupxy ( 21, 6 ) = 265 +greenupxy ( 21, 7 ) = 237 +greenupxy ( 21, 8 ) = 237 +fallxy ( 21, 1 ) = 59 +fallxy ( 21, 2 ) = 46 +fallxy ( 21, 3 ) = 64 +fallxy ( 21, 4 ) = 53 +fallxy ( 21, 5 ) = 53 +fallxy ( 21, 6 ) = 53 +fallxy ( 21, 7 ) = 39 +fallxy ( 21, 8 ) = 39 +xyphendoy1 ( 21, 1 ) = 2 +xyphendoy1 ( 21, 2 ) = 2 +xyphendoy1 ( 21, 3 ) = 2 +xyphendoy1 ( 21, 4 ) = 2 +xyphendoy1 ( 21, 5 ) = 2 +xyphendoy1 ( 21, 6 ) = 2 +xyphendoy1 ( 21, 7 ) = 2 +xyphendoy1 ( 21, 8 ) = 2 + + ! xlat -45.7500000000000 +greenupxy ( 20, 1 ) = 280 +greenupxy ( 20, 2 ) = 276 +greenupxy ( 20, 3 ) = 263 +greenupxy ( 20, 4 ) = 265 +greenupxy ( 20, 5 ) = 265 +greenupxy ( 20, 6 ) = 265 +greenupxy ( 20, 7 ) = 244 +greenupxy ( 20, 8 ) = 244 +fallxy ( 20, 1 ) = 59 +fallxy ( 20, 2 ) = 50 +fallxy ( 20, 3 ) = 56 +fallxy ( 20, 4 ) = 53 +fallxy ( 20, 5 ) = 53 +fallxy ( 20, 6 ) = 53 +fallxy ( 20, 7 ) = 39 +fallxy ( 20, 8 ) = 39 +xyphendoy1 ( 20, 1 ) = 2 +xyphendoy1 ( 20, 2 ) = 2 +xyphendoy1 ( 20, 3 ) = 2 +xyphendoy1 ( 20, 4 ) = 2 +xyphendoy1 ( 20, 5 ) = 2 +xyphendoy1 ( 20, 6 ) = 2 +xyphendoy1 ( 20, 7 ) = 2 +xyphendoy1 ( 20, 8 ) = 2 + + ! xlat -46.2500000000000 +greenupxy ( 19, 1 ) = 280 +greenupxy ( 19, 2 ) = 276 +greenupxy ( 19, 3 ) = 262 +greenupxy ( 19, 4 ) = 266 +greenupxy ( 19, 5 ) = 266 +greenupxy ( 19, 6 ) = 266 +greenupxy ( 19, 7 ) = 251 +greenupxy ( 19, 8 ) = 251 +fallxy ( 19, 1 ) = 59 +fallxy ( 19, 2 ) = 52 +fallxy ( 19, 3 ) = 44 +fallxy ( 19, 4 ) = 53 +fallxy ( 19, 5 ) = 53 +fallxy ( 19, 6 ) = 53 +fallxy ( 19, 7 ) = 39 +fallxy ( 19, 8 ) = 39 +xyphendoy1 ( 19, 1 ) = 2 +xyphendoy1 ( 19, 2 ) = 2 +xyphendoy1 ( 19, 3 ) = 2 +xyphendoy1 ( 19, 4 ) = 2 +xyphendoy1 ( 19, 5 ) = 2 +xyphendoy1 ( 19, 6 ) = 2 +xyphendoy1 ( 19, 7 ) = 2 +xyphendoy1 ( 19, 8 ) = 2 + + ! xlat -46.7500000000000 +greenupxy ( 18, 1 ) = 280 +greenupxy ( 18, 2 ) = 277 +greenupxy ( 18, 3 ) = 262 +greenupxy ( 18, 4 ) = 266 +greenupxy ( 18, 5 ) = 266 +greenupxy ( 18, 6 ) = 266 +greenupxy ( 18, 7 ) = 253 +greenupxy ( 18, 8 ) = 253 +fallxy ( 18, 1 ) = 59 +fallxy ( 18, 2 ) = 51 +fallxy ( 18, 3 ) = 41 +fallxy ( 18, 4 ) = 50 +fallxy ( 18, 5 ) = 50 +fallxy ( 18, 6 ) = 50 +fallxy ( 18, 7 ) = 41 +fallxy ( 18, 8 ) = 41 +xyphendoy1 ( 18, 1 ) = 2 +xyphendoy1 ( 18, 2 ) = 2 +xyphendoy1 ( 18, 3 ) = 2 +xyphendoy1 ( 18, 4 ) = 2 +xyphendoy1 ( 18, 5 ) = 2 +xyphendoy1 ( 18, 6 ) = 2 +xyphendoy1 ( 18, 7 ) = 2 +xyphendoy1 ( 18, 8 ) = 2 + + ! xlat -47.2500000000000 +greenupxy ( 17, 1 ) = 280 +greenupxy ( 17, 2 ) = 279 +greenupxy ( 17, 3 ) = 263 +greenupxy ( 17, 4 ) = 266 +greenupxy ( 17, 5 ) = 266 +greenupxy ( 17, 6 ) = 266 +greenupxy ( 17, 7 ) = 260 +greenupxy ( 17, 8 ) = 260 +fallxy ( 17, 1 ) = 59 +fallxy ( 17, 2 ) = 51 +fallxy ( 17, 3 ) = 38 +fallxy ( 17, 4 ) = 48 +fallxy ( 17, 5 ) = 48 +fallxy ( 17, 6 ) = 48 +fallxy ( 17, 7 ) = 44 +fallxy ( 17, 8 ) = 44 +xyphendoy1 ( 17, 1 ) = 2 +xyphendoy1 ( 17, 2 ) = 2 +xyphendoy1 ( 17, 3 ) = 2 +xyphendoy1 ( 17, 4 ) = 2 +xyphendoy1 ( 17, 5 ) = 2 +xyphendoy1 ( 17, 6 ) = 2 +xyphendoy1 ( 17, 7 ) = 2 +xyphendoy1 ( 17, 8 ) = 2 + + ! xlat -47.7500000000000 +greenupxy ( 16, 1 ) = 280 +greenupxy ( 16, 2 ) = 280 +greenupxy ( 16, 3 ) = 265 +greenupxy ( 16, 4 ) = 268 +greenupxy ( 16, 5 ) = 268 +greenupxy ( 16, 6 ) = 268 +greenupxy ( 16, 7 ) = 267 +greenupxy ( 16, 8 ) = 267 +fallxy ( 16, 1 ) = 59 +fallxy ( 16, 2 ) = 52 +fallxy ( 16, 3 ) = 35 +fallxy ( 16, 4 ) = 45 +fallxy ( 16, 5 ) = 45 +fallxy ( 16, 6 ) = 45 +fallxy ( 16, 7 ) = 43 +fallxy ( 16, 8 ) = 43 +xyphendoy1 ( 16, 1 ) = 2 +xyphendoy1 ( 16, 2 ) = 2 +xyphendoy1 ( 16, 3 ) = 2 +xyphendoy1 ( 16, 4 ) = 2 +xyphendoy1 ( 16, 5 ) = 2 +xyphendoy1 ( 16, 6 ) = 2 +xyphendoy1 ( 16, 7 ) = 2 +xyphendoy1 ( 16, 8 ) = 2 + + ! xlat -48.2500000000000 +greenupxy ( 15, 1 ) = 280 +greenupxy ( 15, 2 ) = 282 +greenupxy ( 15, 3 ) = 267 +greenupxy ( 15, 4 ) = 269 +greenupxy ( 15, 5 ) = 269 +greenupxy ( 15, 6 ) = 269 +greenupxy ( 15, 7 ) = 269 +greenupxy ( 15, 8 ) = 269 +fallxy ( 15, 1 ) = 59 +fallxy ( 15, 2 ) = 51 +fallxy ( 15, 3 ) = 34 +fallxy ( 15, 4 ) = 46 +fallxy ( 15, 5 ) = 46 +fallxy ( 15, 6 ) = 46 +fallxy ( 15, 7 ) = 43 +fallxy ( 15, 8 ) = 43 +xyphendoy1 ( 15, 1 ) = 2 +xyphendoy1 ( 15, 2 ) = 2 +xyphendoy1 ( 15, 3 ) = 2 +xyphendoy1 ( 15, 4 ) = 2 +xyphendoy1 ( 15, 5 ) = 2 +xyphendoy1 ( 15, 6 ) = 2 +xyphendoy1 ( 15, 7 ) = 2 +xyphendoy1 ( 15, 8 ) = 2 + + ! xlat -48.7500000000000 +greenupxy ( 14, 1 ) = 280 +greenupxy ( 14, 2 ) = 282 +greenupxy ( 14, 3 ) = 268 +greenupxy ( 14, 4 ) = 271 +greenupxy ( 14, 5 ) = 271 +greenupxy ( 14, 6 ) = 271 +greenupxy ( 14, 7 ) = 271 +greenupxy ( 14, 8 ) = 271 +fallxy ( 14, 1 ) = 59 +fallxy ( 14, 2 ) = 51 +fallxy ( 14, 3 ) = 30 +fallxy ( 14, 4 ) = 44 +fallxy ( 14, 5 ) = 44 +fallxy ( 14, 6 ) = 44 +fallxy ( 14, 7 ) = 46 +fallxy ( 14, 8 ) = 46 +xyphendoy1 ( 14, 1 ) = 2 +xyphendoy1 ( 14, 2 ) = 2 +xyphendoy1 ( 14, 3 ) = 2 +xyphendoy1 ( 14, 4 ) = 2 +xyphendoy1 ( 14, 5 ) = 2 +xyphendoy1 ( 14, 6 ) = 2 +xyphendoy1 ( 14, 7 ) = 2 +xyphendoy1 ( 14, 8 ) = 2 + + ! xlat -49.2500000000000 +greenupxy ( 13, 1 ) = 280 +greenupxy ( 13, 2 ) = 283 +greenupxy ( 13, 3 ) = 269 +greenupxy ( 13, 4 ) = 272 +greenupxy ( 13, 5 ) = 272 +greenupxy ( 13, 6 ) = 272 +greenupxy ( 13, 7 ) = 273 +greenupxy ( 13, 8 ) = 273 +fallxy ( 13, 1 ) = 59 +fallxy ( 13, 2 ) = 51 +fallxy ( 13, 3 ) = 28 +fallxy ( 13, 4 ) = 42 +fallxy ( 13, 5 ) = 42 +fallxy ( 13, 6 ) = 42 +fallxy ( 13, 7 ) = 47 +fallxy ( 13, 8 ) = 47 +xyphendoy1 ( 13, 1 ) = 2 +xyphendoy1 ( 13, 2 ) = 2 +xyphendoy1 ( 13, 3 ) = 2 +xyphendoy1 ( 13, 4 ) = 2 +xyphendoy1 ( 13, 5 ) = 2 +xyphendoy1 ( 13, 6 ) = 2 +xyphendoy1 ( 13, 7 ) = 2 +xyphendoy1 ( 13, 8 ) = 2 + + ! xlat -49.7500000000000 +greenupxy ( 12, 1 ) = 280 +greenupxy ( 12, 2 ) = 284 +greenupxy ( 12, 3 ) = 270 +greenupxy ( 12, 4 ) = 274 +greenupxy ( 12, 5 ) = 274 +greenupxy ( 12, 6 ) = 274 +greenupxy ( 12, 7 ) = 275 +greenupxy ( 12, 8 ) = 275 +fallxy ( 12, 1 ) = 59 +fallxy ( 12, 2 ) = 51 +fallxy ( 12, 3 ) = 32 +fallxy ( 12, 4 ) = 41 +fallxy ( 12, 5 ) = 41 +fallxy ( 12, 6 ) = 41 +fallxy ( 12, 7 ) = 48 +fallxy ( 12, 8 ) = 48 +xyphendoy1 ( 12, 1 ) = 2 +xyphendoy1 ( 12, 2 ) = 2 +xyphendoy1 ( 12, 3 ) = 2 +xyphendoy1 ( 12, 4 ) = 2 +xyphendoy1 ( 12, 5 ) = 2 +xyphendoy1 ( 12, 6 ) = 2 +xyphendoy1 ( 12, 7 ) = 2 +xyphendoy1 ( 12, 8 ) = 2 + + ! xlat -50.2500000000000 +greenupxy ( 11, 1 ) = 280 +greenupxy ( 11, 2 ) = 286 +greenupxy ( 11, 3 ) = 272 +greenupxy ( 11, 4 ) = 276 +greenupxy ( 11, 5 ) = 276 +greenupxy ( 11, 6 ) = 276 +greenupxy ( 11, 7 ) = 277 +greenupxy ( 11, 8 ) = 277 +fallxy ( 11, 1 ) = 59 +fallxy ( 11, 2 ) = 52 +fallxy ( 11, 3 ) = 32 +fallxy ( 11, 4 ) = 41 +fallxy ( 11, 5 ) = 41 +fallxy ( 11, 6 ) = 41 +fallxy ( 11, 7 ) = 50 +fallxy ( 11, 8 ) = 50 +xyphendoy1 ( 11, 1 ) = 2 +xyphendoy1 ( 11, 2 ) = 2 +xyphendoy1 ( 11, 3 ) = 2 +xyphendoy1 ( 11, 4 ) = 2 +xyphendoy1 ( 11, 5 ) = 2 +xyphendoy1 ( 11, 6 ) = 2 +xyphendoy1 ( 11, 7 ) = 2 +xyphendoy1 ( 11, 8 ) = 2 + + ! xlat -50.7500000000000 +greenupxy ( 10, 1 ) = 280 +greenupxy ( 10, 2 ) = 288 +greenupxy ( 10, 3 ) = 273 +greenupxy ( 10, 4 ) = 278 +greenupxy ( 10, 5 ) = 278 +greenupxy ( 10, 6 ) = 278 +greenupxy ( 10, 7 ) = 278 +greenupxy ( 10, 8 ) = 278 +fallxy ( 10, 1 ) = 59 +fallxy ( 10, 2 ) = 53 +fallxy ( 10, 3 ) = 31 +fallxy ( 10, 4 ) = 42 +fallxy ( 10, 5 ) = 42 +fallxy ( 10, 6 ) = 42 +fallxy ( 10, 7 ) = 50 +fallxy ( 10, 8 ) = 50 +xyphendoy1 ( 10, 1 ) = 2 +xyphendoy1 ( 10, 2 ) = 2 +xyphendoy1 ( 10, 3 ) = 2 +xyphendoy1 ( 10, 4 ) = 2 +xyphendoy1 ( 10, 5 ) = 2 +xyphendoy1 ( 10, 6 ) = 2 +xyphendoy1 ( 10, 7 ) = 2 +xyphendoy1 ( 10, 8 ) = 2 + + ! xlat -51.2500000000000 +greenupxy ( 9, 1 ) = 280 +greenupxy ( 9, 2 ) = 289 +greenupxy ( 9, 3 ) = 275 +greenupxy ( 9, 4 ) = 279 +greenupxy ( 9, 5 ) = 279 +greenupxy ( 9, 6 ) = 279 +greenupxy ( 9, 7 ) = 278 +greenupxy ( 9, 8 ) = 278 +fallxy ( 9, 1 ) = 59 +fallxy ( 9, 2 ) = 53 +fallxy ( 9, 3 ) = 34 +fallxy ( 9, 4 ) = 42 +fallxy ( 9, 5 ) = 42 +fallxy ( 9, 6 ) = 42 +fallxy ( 9, 7 ) = 50 +fallxy ( 9, 8 ) = 50 +xyphendoy1 ( 9, 1 ) = 2 +xyphendoy1 ( 9, 2 ) = 2 +xyphendoy1 ( 9, 3 ) = 2 +xyphendoy1 ( 9, 4 ) = 2 +xyphendoy1 ( 9, 5 ) = 2 +xyphendoy1 ( 9, 6 ) = 2 +xyphendoy1 ( 9, 7 ) = 2 +xyphendoy1 ( 9, 8 ) = 2 + + ! xlat -51.7500000000000 +greenupxy ( 8, 1 ) = 280 +greenupxy ( 8, 2 ) = 290 +greenupxy ( 8, 3 ) = 276 +greenupxy ( 8, 4 ) = 280 +greenupxy ( 8, 5 ) = 280 +greenupxy ( 8, 6 ) = 280 +greenupxy ( 8, 7 ) = 278 +greenupxy ( 8, 8 ) = 278 +fallxy ( 8, 1 ) = 59 +fallxy ( 8, 2 ) = 54 +fallxy ( 8, 3 ) = 34 +fallxy ( 8, 4 ) = 42 +fallxy ( 8, 5 ) = 42 +fallxy ( 8, 6 ) = 42 +fallxy ( 8, 7 ) = 50 +fallxy ( 8, 8 ) = 50 +xyphendoy1 ( 8, 1 ) = 2 +xyphendoy1 ( 8, 2 ) = 2 +xyphendoy1 ( 8, 3 ) = 2 +xyphendoy1 ( 8, 4 ) = 2 +xyphendoy1 ( 8, 5 ) = 2 +xyphendoy1 ( 8, 6 ) = 2 +xyphendoy1 ( 8, 7 ) = 2 +xyphendoy1 ( 8, 8 ) = 2 + + ! xlat -52.2500000000000 +greenupxy ( 7, 1 ) = 280 +greenupxy ( 7, 2 ) = 290 +greenupxy ( 7, 3 ) = 276 +greenupxy ( 7, 4 ) = 280 +greenupxy ( 7, 5 ) = 280 +greenupxy ( 7, 6 ) = 280 +greenupxy ( 7, 7 ) = 278 +greenupxy ( 7, 8 ) = 278 +fallxy ( 7, 1 ) = 59 +fallxy ( 7, 2 ) = 54 +fallxy ( 7, 3 ) = 35 +fallxy ( 7, 4 ) = 42 +fallxy ( 7, 5 ) = 42 +fallxy ( 7, 6 ) = 42 +fallxy ( 7, 7 ) = 50 +fallxy ( 7, 8 ) = 50 +xyphendoy1 ( 7, 1 ) = 2 +xyphendoy1 ( 7, 2 ) = 2 +xyphendoy1 ( 7, 3 ) = 2 +xyphendoy1 ( 7, 4 ) = 2 +xyphendoy1 ( 7, 5 ) = 2 +xyphendoy1 ( 7, 6 ) = 2 +xyphendoy1 ( 7, 7 ) = 2 +xyphendoy1 ( 7, 8 ) = 2 + + ! xlat -52.7500000000000 +greenupxy ( 6, 1 ) = 280 +greenupxy ( 6, 2 ) = 290 +greenupxy ( 6, 3 ) = 276 +greenupxy ( 6, 4 ) = 280 +greenupxy ( 6, 5 ) = 280 +greenupxy ( 6, 6 ) = 280 +greenupxy ( 6, 7 ) = 278 +greenupxy ( 6, 8 ) = 278 +fallxy ( 6, 1 ) = 59 +fallxy ( 6, 2 ) = 54 +fallxy ( 6, 3 ) = 35 +fallxy ( 6, 4 ) = 42 +fallxy ( 6, 5 ) = 42 +fallxy ( 6, 6 ) = 42 +fallxy ( 6, 7 ) = 50 +fallxy ( 6, 8 ) = 50 +xyphendoy1 ( 6, 1 ) = 2 +xyphendoy1 ( 6, 2 ) = 2 +xyphendoy1 ( 6, 3 ) = 2 +xyphendoy1 ( 6, 4 ) = 2 +xyphendoy1 ( 6, 5 ) = 2 +xyphendoy1 ( 6, 6 ) = 2 +xyphendoy1 ( 6, 7 ) = 2 +xyphendoy1 ( 6, 8 ) = 2 + + ! xlat -53.2500000000000 +greenupxy ( 5, 1 ) = 280 +greenupxy ( 5, 2 ) = 290 +greenupxy ( 5, 3 ) = 276 +greenupxy ( 5, 4 ) = 280 +greenupxy ( 5, 5 ) = 280 +greenupxy ( 5, 6 ) = 280 +greenupxy ( 5, 7 ) = 278 +greenupxy ( 5, 8 ) = 278 +fallxy ( 5, 1 ) = 59 +fallxy ( 5, 2 ) = 54 +fallxy ( 5, 3 ) = 35 +fallxy ( 5, 4 ) = 42 +fallxy ( 5, 5 ) = 42 +fallxy ( 5, 6 ) = 42 +fallxy ( 5, 7 ) = 50 +fallxy ( 5, 8 ) = 50 +xyphendoy1 ( 5, 1 ) = 2 +xyphendoy1 ( 5, 2 ) = 2 +xyphendoy1 ( 5, 3 ) = 2 +xyphendoy1 ( 5, 4 ) = 2 +xyphendoy1 ( 5, 5 ) = 2 +xyphendoy1 ( 5, 6 ) = 2 +xyphendoy1 ( 5, 7 ) = 2 +xyphendoy1 ( 5, 8 ) = 2 + + ! xlat -53.7500000000000 +greenupxy ( 4, 1 ) = 280 +greenupxy ( 4, 2 ) = 290 +greenupxy ( 4, 3 ) = 276 +greenupxy ( 4, 4 ) = 280 +greenupxy ( 4, 5 ) = 280 +greenupxy ( 4, 6 ) = 280 +greenupxy ( 4, 7 ) = 278 +greenupxy ( 4, 8 ) = 278 +fallxy ( 4, 1 ) = 59 +fallxy ( 4, 2 ) = 54 +fallxy ( 4, 3 ) = 35 +fallxy ( 4, 4 ) = 42 +fallxy ( 4, 5 ) = 42 +fallxy ( 4, 6 ) = 42 +fallxy ( 4, 7 ) = 50 +fallxy ( 4, 8 ) = 50 +xyphendoy1 ( 4, 1 ) = 2 +xyphendoy1 ( 4, 2 ) = 2 +xyphendoy1 ( 4, 3 ) = 2 +xyphendoy1 ( 4, 4 ) = 2 +xyphendoy1 ( 4, 5 ) = 2 +xyphendoy1 ( 4, 6 ) = 2 +xyphendoy1 ( 4, 7 ) = 2 +xyphendoy1 ( 4, 8 ) = 2 + + ! xlat -54.2500000000000 +greenupxy ( 3, 1 ) = 280 +greenupxy ( 3, 2 ) = 290 +greenupxy ( 3, 3 ) = 276 +greenupxy ( 3, 4 ) = 280 +greenupxy ( 3, 5 ) = 280 +greenupxy ( 3, 6 ) = 280 +greenupxy ( 3, 7 ) = 278 +greenupxy ( 3, 8 ) = 278 +fallxy ( 3, 1 ) = 59 +fallxy ( 3, 2 ) = 54 +fallxy ( 3, 3 ) = 35 +fallxy ( 3, 4 ) = 42 +fallxy ( 3, 5 ) = 42 +fallxy ( 3, 6 ) = 42 +fallxy ( 3, 7 ) = 50 +fallxy ( 3, 8 ) = 50 +xyphendoy1 ( 3, 1 ) = 2 +xyphendoy1 ( 3, 2 ) = 2 +xyphendoy1 ( 3, 3 ) = 2 +xyphendoy1 ( 3, 4 ) = 2 +xyphendoy1 ( 3, 5 ) = 2 +xyphendoy1 ( 3, 6 ) = 2 +xyphendoy1 ( 3, 7 ) = 2 +xyphendoy1 ( 3, 8 ) = 2 + + ! xlat -54.7500000000000 +greenupxy ( 2, 1 ) = 280 +greenupxy ( 2, 2 ) = 290 +greenupxy ( 2, 3 ) = 276 +greenupxy ( 2, 4 ) = 280 +greenupxy ( 2, 5 ) = 280 +greenupxy ( 2, 6 ) = 280 +greenupxy ( 2, 7 ) = 278 +greenupxy ( 2, 8 ) = 278 +fallxy ( 2, 1 ) = 59 +fallxy ( 2, 2 ) = 54 +fallxy ( 2, 3 ) = 35 +fallxy ( 2, 4 ) = 42 +fallxy ( 2, 5 ) = 42 +fallxy ( 2, 6 ) = 42 +fallxy ( 2, 7 ) = 50 +fallxy ( 2, 8 ) = 50 +xyphendoy1 ( 2, 1 ) = 2 +xyphendoy1 ( 2, 2 ) = 2 +xyphendoy1 ( 2, 3 ) = 2 +xyphendoy1 ( 2, 4 ) = 2 +xyphendoy1 ( 2, 5 ) = 2 +xyphendoy1 ( 2, 6 ) = 2 +xyphendoy1 ( 2, 7 ) = 2 +xyphendoy1 ( 2, 8 ) = 2 + + ! xlat -55.2500000000000 +greenupxy ( 1, 1 ) = 280 +greenupxy ( 1, 2 ) = 290 +greenupxy ( 1, 3 ) = 276 +greenupxy ( 1, 4 ) = 280 +greenupxy ( 1, 5 ) = 280 +greenupxy ( 1, 6 ) = 280 +greenupxy ( 1, 7 ) = 278 +greenupxy ( 1, 8 ) = 278 +fallxy ( 1, 1 ) = 59 +fallxy ( 1, 2 ) = 54 +fallxy ( 1, 3 ) = 35 +fallxy ( 1, 4 ) = 42 +fallxy ( 1, 5 ) = 42 +fallxy ( 1, 6 ) = 42 +fallxy ( 1, 7 ) = 50 +fallxy ( 1, 8 ) = 50 +xyphendoy1 ( 1, 1 ) = 2 +xyphendoy1 ( 1, 2 ) = 2 +xyphendoy1 ( 1, 3 ) = 2 +xyphendoy1 ( 1, 4 ) = 2 +xyphendoy1 ( 1, 5 ) = 2 +xyphendoy1 ( 1, 6 ) = 2 +xyphendoy1 ( 1, 7 ) = 2 +xyphendoy1 ( 1, 8 ) = 2 + +!jhan: alternative to reading file +DO nx=1,nphen + greenup(ilat,ivtx(nx)) = greenupxy (ilat, nx) + fall(ilat,ivtx(nx)) = fallxy (ilat, nx) + phendoy1(ilat,ivtx(nx))= xyphendoy1(ilat, nx) +ENDDO + + DO np=1,mp + ilat=(casamet%lat(np)+55.25)/0.5+1 + ilat= MIN(271,MAX(1,ilat)) + phen%phase(np) = phendoy1(ilat,veg%iveg(np)) + phen%doyphase(np,1) = greenup(ilat,veg%iveg(np)) ! DOY for greenup + phen%doyphase(np,2) = phen%doyphase(np,1) +14 ! DOY for steady LAI + phen%doyphase(np,3) = fall(ilat,veg%iveg(np)) ! DOY for leaf senescence + phen%doyphase(np,4) = phen%doyphase(np,3) +14 ! DOY for minimal LAI season + IF (phen%doyphase(np,2) > 365) phen%doyphase(np,2)=phen%doyphase(np,2)-365 + IF (phen%doyphase(np,4) > 365) phen%doyphase(np,4)=phen%doyphase(np,4)-365 + + ENDDO + + END SUBROUTINE casa_readphen + + SUBROUTINE casa_init(casabiome,casamet,casaflux,casapool,casabal,veg,phen) + ! mst not used (BP sep2010) + ! ! for first time reading file *_1220.csv (BP may2010) + !SUBROUTINE casa_init(mst,casapool,casabal,veg) + ! !SUBROUTINE casa_init(mst,casapool,casabal) + ! ! end addition (BP may2010) + ! initialize some values in phenology parameters and leaf growth phase + USE casadimension + USE casaparm + +USE phenology_type_mod, ONLY: phenology_type +USE casa_biome_type_mod, ONLY: casa_biome => casa_biome_type +USE casa_pool_type_mod, ONLY: casa_pool => casa_pool_type +USE casa_flux_type_mod, ONLY: casa_flux => casa_flux_type +USE casa_met_type_mod, ONLY: casa_met => casa_met_type +USE casa_balance_type_mod, ONLY: casa_balance => casa_bal_type + + ! for first time reading file *_1220.csv (BP may2010) + USE cable_def_types_mod +!jh: we get lat/lon from UM anyway and I want to get rid of this dependency +!jh! USE cable_io_vars_module, ONLY: patch + USE cable_common_module, ONLY: cable_user +#ifndef UM_CBL +USE casa_offline_inout_module, ONLY : READ_CASA_RESTART_NC +#endif + + ! end addition (BP may2010) + IMPLICIT NONE + ! INTEGER, INTENT(IN) :: mst + TYPE (casa_biome), INTENT(IN) :: casabiome + TYPE (casa_met), INTENT(INOUT) :: casamet + TYPE (casa_flux), INTENT(INOUT) :: casaflux + TYPE (casa_pool), INTENT(INOUT) :: casapool + TYPE (casa_balance), INTENT(INOUT) :: casabal + ! for first time reading file *_1220.csv (BP may2010) + TYPE (veg_parameter_type), INTENT(IN) :: veg + TYPE (phenology_type), INTENT(INOUT) :: phen + REAL(r_2) :: clabile,cplant(3),clitter(3),csoil(3) + REAL(r_2) :: nplant(3),nlitter(3),nsoil(3),nsoilmin,pplant(3) + REAL(r_2) :: plitter(3),psoil(3),psoillab,psoilsorb,psoilocc + ! end addition (BP may2010) + + ! local variables + INTEGER :: np,npt,npz + INTEGER :: nyearz,ivtz,istz,isoz + REAL(r_2) :: latz,lonz,areacellz,glaiz,slaz + LOGICAL :: EXRST + + + IF (.NOT.cable_user%casa_fromzero) THEN + PRINT *, 'initial pool from restart file' + ENDIF + PRINT *, 'icycle,initcasa,mp ', icycle,initcasa,mp + !phen%phase = 2 + + !CLN initialise all ! THIS NEEDS FIXING because of e.g. ICE-WATER + casaflux%Cgpp = 0. + casaflux%Cnpp = 0. + casaflux%Crp = 0. + casaflux%Crgplant = 0. + ! casaflux%Nminfix = 0. + casaflux%Nminuptake = 0. + casaflux%Plabuptake = 0. + casaflux%Clabloss = 0. + casaflux%fracClabile = 0. + casaflux%stemnpp = 0. + casaflux%frac_sapwood = 0. + casaflux%sapwood_area = 0. + casaflux%FluxCtohwp = 0. + casaflux%FluxCtoClear = 0. + casaflux%fracCalloc = 0. + casaflux%fracNalloc = 0. + casaflux%fracPalloc = 0. + casaflux%Crmplant = 0. + casaflux%kplant = 0. + + casaflux%fromPtoL = 0. + + casaflux%Cnep = 0. + casaflux%Crsoil = 0. + casapool%dClabiledt = 0.0 + !casaflux%Nmindep = casaflux%Nmindep /2.0 + !casaflux%Nmindep = 0. + casaflux%Nminloss = 0. + casaflux%Nminleach = 0. + casaflux%Nupland = 0. + casaflux%Nlittermin = 0. + casaflux%Nsmin = 0. + casaflux%Nsimm = 0. + casaflux%Nsnet = 0. + !casaflux%fNminloss = 0. + !casaflux%fNminleach = 0. + !casaflux%Pdep = 0. + !casaflux%Pwea = 0. + casaflux%Pleach = 0. + casaflux%Ploss = 0. + casaflux%Pupland = 0. + casaflux%Plittermin = 0. + casaflux%Psmin = 0. + casaflux%Psimm = 0. + casaflux%Psnet = 0. + ! casaflux%fPleach = 0. !vh ! this should be a parameter, not a flux variable + casaflux%kplab = 0. + casaflux%kpsorb = 0. + casaflux%kpocc = 0. + ! casaflux%Psorbmax = 0. !vh ! this should be a paramter, not a flux variable + + casaflux%klitter = 0. + casaflux%ksoil = 0. + casaflux%fromLtoS = 0. + casaflux%fromStoS = 0. + casaflux%fromLtoCO2 = 0. + casaflux%fromStoCO2 = 0. + casaflux%FluxCtolitter= 0. + casaflux%FluxNtolitter= 0. + casaflux%FluxPtolitter= 0. + casaflux%FluxCtosoil = 0. + casaflux%FluxNtosoil = 0. + casaflux%FluxPtosoil = 0. + casaflux%FluxCtoCO2 = 0. + + casaflux%Cplant_turnover = 0. +!Ticket #204 - rm phen% clobbing here AND incorrectly so anyway + + IF (initcasa==1) THEN + IF (.NOT.cable_user%casa_fromzero) THEN +#ifndef UM_CBL + CALL READ_CASA_RESTART_NC ( casamet, casapool, casaflux, phen ) +#endif + ELSE + WRITE(*,*)'casa_init: not using restart file!' + WRITE(*,*)'Using input from readbiome.!' + WRITE(*,*) 'initialising frac_sapwood=1 and sapwood_area = 0)' + casaflux%frac_sapwood(:) = 1.0 + casaflux%sapwood_area(:) = 0.0 + ENDIF + ENDIF + WHERE(casamet%lnonwood==1) casapool%cplant(:,WOOD) = 0.0 + WHERE(casamet%lnonwood==1) casapool%nplant(:,WOOD) = 0.0 + WHERE(casamet%lnonwood==1) casapool%pplant(:,WOOD) = 0.0 + +!$ENDIF + !92 format(5(i6,2x),5(f18.6,3x),2(i6,',',2x),',',2x,100(f18.6,3x)) +92 FORMAT(5(i6,',',2x),5(f18.6,',',2x),2(i6,',',2x),',',2x,100(f18.6,',',2x)) + +!jh: we get lat/lon from UM anyway and I want to get rid of this dependency +!jh! IF(initcasa==0) THEN +!jh! nyearz = 1 +!jh! DO npt=1,mp +!jh! casamet%lon(npt) = patch(npt)%longitude +!jh! casamet%lat(npt) = patch(npt)%latitude +!jh! ENDDO +!jh! ENDIF +!jh! + ! reset labile C pool,comment out by Q.Zhang 10/09/2011 + ! casapool%clabile = 0.0 + ! check pool sizes + casapool%cplant = MAX(0.0,casapool%cplant) + casapool%clitter = MAX(0.0,casapool%clitter) + casapool%csoil = MAX(0.0,casapool%csoil) + casabal%cplantlast = casapool%cplant + casabal%clitterlast = casapool%clitter + casabal%csoillast = casapool%csoil + casabal%clabilelast = casapool%clabile + casabal%sumcbal = 0.0 + casabal%FCgppyear=0.0;casabal%FCrpyear=0.0 + casabal%FCnppyear=0;casabal%FCrsyear=0.0;casabal%FCneeyear=0.0 + !vh ! + WHERE(casamet%lnonwood==1) casapool%cplant(:,WOOD) = 0.0 + IF (icycle==1) THEN + casapool%Nplant(:,:) = casapool%cplant(:,:) * casapool%ratioNCplant(:,:) + casapool%Nsoil(:,:) = casapool%ratioNCsoil(:,:) * casapool%Csoil(:,:) + casapool%Psoil(:,:) = casapool%Nsoil(:,:)/casapool%ratioNPsoil(:,:) + casapool%Nsoilmin(:) = 2.5 + ENDIF + + IF (icycle >=1) THEN + casapool%nplant = MAX(1.e-6,casapool%nplant) + casapool%nlitter = MAX(1.e-6,casapool%nlitter) + casapool%nsoil = MAX(1.e-6,casapool%nsoil) + casapool%nsoilmin = MAX(1.e-6,casapool%nsoilmin) + casabal%nplantlast = casapool%nplant + casabal%nlitterlast = casapool%nlitter + casabal%nsoillast = casapool%nsoil + casabal%nsoilminlast= casapool%nsoilmin + casabal%sumnbal = 0.0 + casabal%FNdepyear=0.0;casabal%FNfixyear=0.0;casabal%FNsnetyear=0.0 + casabal%FNupyear=0.0;casabal%FNleachyear=0.0;casabal%FNlossyear=0.0 + !vh ! + WHERE(casamet%lnonwood==1) casapool%nplant(:,WOOD) = 0.0 + ENDIF + + IF (icycle >=1) THEN + casapool%pplant = MAX(1.0e-7,casapool%pplant) + casapool%plitter = MAX(1.0e-7,casapool%plitter) + casapool%psoil = MAX(1.0e-7,casapool%psoil) + casapool%Psoillab = MAX(1.0e-7,casapool%psoillab) ! was 2.0, changed according to YP + casapool%psoilsorb = MAX(1.0e-7,casapool%psoilsorb) ! was 10.0, - + casapool%psoilocc = MAX(1.0e-7,casapool%psoilocc) ! was 50.0, - + casabal%pplantlast = casapool%pplant + casabal%plitterlast = casapool%plitter + casabal%psoillast = casapool%psoil + casabal%psoillablast = casapool%psoillab + casabal%psoilsorblast = casapool%psoilsorb + casabal%psoilocclast = casapool%psoilocc + casabal%sumpbal = 0.0 + casabal%FPweayear=0.0;casabal%FPdustyear=0.0; casabal%FPsnetyear=0.0 + casabal%FPupyear=0.0;casabal%FPleachyear=0.0;casabal%FPlossyear=0.0 + !vh ! + WHERE(casamet%lnonwood==1) casapool%pplant(:,WOOD) = 0.0 + ENDIF + + casapool%cwoodprod=0.0; casapool%nwoodprod=0.0;casapool%pwoodprod=0.0 + + END SUBROUTINE casa_init + + + SUBROUTINE casa_poolout(ktau,veg,soil,casabiome,casapool,casaflux,casamet, & + casabal,phen) + USE cable_def_types_mod + USE casadimension + USE casaparm + USE casavariable + USE cable_common_module, ONLY: cable_user +USE phenology_type_mod, ONLY: phenology_type +USE casa_pool_type_mod, ONLY: casa_pool => casa_pool_type +USE casa_flux_type_mod, ONLY: casa_flux => casa_flux_type +USE casa_biome_type_mod, ONLY: casa_biome => casa_biome_type +USE casa_met_type_mod, ONLY: casa_met => casa_met_type +USE casa_balance_type_mod, ONLY: casa_balance => casa_bal_type + + IMPLICIT NONE + + INTEGER, INTENT(IN) :: ktau + TYPE (veg_parameter_type), INTENT(INOUT) :: veg ! vegetation parameters + TYPE (soil_parameter_type), INTENT(INOUT) :: soil ! soil parameters + TYPE (casa_biome), INTENT(INOUT) :: casabiome + TYPE (casa_pool), INTENT(INOUT) :: casapool + TYPE (casa_flux), INTENT(INOUT) :: casaflux + TYPE (casa_met), INTENT(INOUT) :: casamet + TYPE (casa_balance), INTENT(INOUT) :: casabal + TYPE (phenology_type), INTENT(INOUT) :: phen + + ! local variables + REAL(r_2), DIMENSION(mso) :: Psorder,pweasoil,xpsoil50 + REAL(r_2), DIMENSION(mso) :: fracPlab,fracPsorb,fracPocc,fracPorg + REAL(r_2), DIMENSION(mp) :: totpsoil + INTEGER npt,nout,nso + + ! Soiltype soilnumber soil P(g P/m2) + ! Alfisol 1 61.3 + ! Andisol 2 103.9 + ! Aridisol 3 92.8 + ! Entisol 4 136.9 + ! Gellisol 5 98.2 + ! Histosol 6 107.6 + ! Inceptisol 7 84.1 + ! Mollisol 8 110.1 + ! Oxisol 9 35.4 + ! Spodosol 10 41.0 + ! Ultisol 11 51.5 + ! Vertisol 12 190.6 + DATA psorder/61.3,103.9,92.8,136.9,98.2,107.6,84.1,110.1,35.4,41.0,51.5,190.6/ + DATA pweasoil/0.05,0.04,0.03,0.02,0.01,0.009,0.008,0.007,0.006,0.005,0.004,0.003/ + DATA fracpLab/0.08,0.08,0.10,0.02,0.08,0.08,0.08,0.06,0.02,0.05,0.09,0.05/ + DATA fracPsorb/0.32,0.37,0.57,0.67,0.37,0.37,0.37,0.32,0.24,0.22,0.21,0.38/ + DATA fracPocc/0.36,0.38,0.25,0.26,0.38,0.38,0.38,0.44,0.38,0.38,0.37,0.45/ + DATA fracPorg/0.25,0.17,0.08,0.05,0.17,0.17,0.17,0.18,0.36,0.35,0.34,0.12/ + DATA xpsoil50/7.6,4.1,4.2,3.4,4.1,4.1,4.8,4.1,6.9,6.9,6.9,1.7/ + ! + ! estimated based on Yang, Post and Jain (2013) + ! Soiltype soilnumber soil P(g P/m2 top 50 cm) + ! Alfisol 1 400 + ! Andisol 2 426 + ! Aridisol 3 352 + ! Entisol 4 490 + ! Gellisol 5 403 + ! Histosol 6 441 + ! Inceptisol 7 501 + ! Mollisol 8 358 + ! Oxisol 9 96 + ! Spodosol 10 364 + ! Ultisol 11 272 + ! Vertisol 12 430 + ! DATA psorder/400.0,426.0,352.0,490.0,403.0,441.0,501.0,358.0,96.0,364.0,272.0,430.0/ + ! DATA pweasoil/0.05,0.04,0.03,0.02,0.01,0.009,0.008,0.007,0.006,0.005,0.004,0.003/ + ! DATA fracpLab/0.07,0.04,0.08,0.10,0.08,0.10,0.12,0.05,0.05,0.06,0.06,0.05/ + ! DATA fracPsorb/0.30,0.44,0.69,0.53,0.37,0.14,0.24,0.32,0.15,0.21,0.17,0.35/ + ! DATA fracPocc/0.38,0.22,0.18,0.22,0.38,0.42,0.23,0.44,0.60,0.30,0.51,0.48/ + ! DATA fracPorg/0.25,0.30,0.05,0.15,0.17,0.34,0.41,0.19,0.20,0.43,0.26,0.12/ + ! DATA xpsoil50/1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0/ + + PRINT *, 'Within casa_poolout, mp = ', mp + nout=103 + OPEN(nout,file=casafile%cnpepool) + PRINT *, 'Opened file ', casafile%cnpepool + + casabal%sumcbal=MIN(9999.0,MAX(-9999.0,casabal%sumcbal)) + casabal%sumnbal=MIN(9999.0,MAX(-9999.0,casabal%sumnbal)) + casabal%sumpbal=MIN(9999.0,MAX(-9999.0,casabal%sumpbal)) + + DO npt =1, mp + nso = casamet%isorder(npt) + totpsoil(npt) = psorder(nso) *xpsoil50(nso) + IF(casamet%iveg2(npt)>0 ) THEN + IF (icycle<2) THEN + casapool%Nplant(npt,:) = casapool%ratioNCplant(npt,:) & + * casapool%cplant(npt,:) + casapool%Nlitter(npt,:)= casapool%ratioNClitter(npt,:) & + * casapool%clitter(npt,:) + casapool%Nsoil(npt,:) = casapool%ratioNCsoil(npt,:) & + * casapool%Csoil(npt,:) + casapool%nsoilmin(npt) = 2.0 + casabal%sumnbal(npt) = 0.0 + IF(casamet%iveg2(npt)==grass) THEN + casapool%nplant(npt,wood) = 0.0 + casapool%nlitter(npt,cwd) = 0.0 + ENDIF + ENDIF + + IF (icycle<3) THEN + casabal%sumpbal(npt) = 0.0 + casapool%pplant(npt,:) = casapool%Nplant(npt,:)/casapool%ratioNPplant(npt,:) + casapool%plitter(npt,:) = casapool%Nlitter(npt,:)/(casapool%ratioNPlitter(npt,:)+1.0e-10) + casapool%psoil(npt,:) = casapool%Nsoil(npt,:)/casapool%ratioNPsoil(npt,:) + casapool%psoillab(npt) = totpsoil(npt) *fracpLab(nso) + casapool%psoilsorb(npt)= casaflux%psorbmax(npt) * casapool%psoillab(npt) & + /(casaflux%kmlabp(npt)+casapool%psoillab(npt)) + casapool%psoilocc(npt) = totpsoil(npt) *fracPocc(nso) + IF(casamet%iveg2(npt)==grass) THEN + casapool%pplant(npt,wood) = 0.0 + casapool%plitter(npt,cwd) = 0.0 + ENDIF + ENDIF + ELSE + casapool%cplant(npt,:)=0.0; casapool%clitter(npt,:)=0.0; casapool%csoil(npt,:) = 0.0; casapool%clabile(npt) = 0.0 + casapool%nplant(npt,:)=0.0; casapool%nlitter(npt,:)=0.0; casapool%nsoil(npt,:) = 0.0; casapool%nsoilmin(npt) = 0.0 + casapool%pplant(npt,:)=0.0; casapool%plitter(npt,:)=0.0; casapool%psoil(npt,:) = 0.0 + casapool%psoillab(npt) = 0.0; casapool%psoilsorb(npt) = 0.0; casapool%psoilocc(npt) = 0.0 + casabal%sumcbal(npt) =0.0; casabal%sumnbal(npt) =0.0; casabal%sumpbal(npt) = 0.0 + ENDIF + + ! vh_js ! + IF (cable_user%CALL_POP) THEN + + WRITE(nout,92) ktau,npt,veg%iveg(npt),soil%isoilm(npt) , & + casamet%isorder(npt),casamet%lat(npt),casamet%lon(npt), & + casamet%areacell(npt)*(1.0e-9),casamet%glai(npt), & + casabiome%sla(veg%iveg(npt)), phen%phase(npt), & + phen%doyphase(npt,3), phen%phen(npt), phen%aphen(npt), & + casapool%clabile(npt), & + casapool%cplant(npt,:),casapool%clitter(npt,:),casapool%csoil(npt,:), & + casaflux%frac_sapwood(npt), casaflux%sapwood_area(npt), & + casapool%nplant(npt,:),casapool%nlitter(npt,:),casapool%nsoil(npt,:), & + casapool%nsoilmin(npt),casapool%pplant(npt,:), & + casapool%plitter(npt,:), casapool%psoil(npt,:), & + casapool%psoillab(npt),casapool%psoilsorb(npt),casapool%psoilocc(npt), & + casabal%sumcbal(npt),casabal%sumnbal(npt),casabal%sumpbal(npt) + + + ELSE + WRITE(nout,92) ktau,npt,veg%iveg(npt),soil%isoilm(npt), & + casamet%isorder(npt),casamet%lat(npt),casamet%lon(npt), & + casamet%areacell(npt)*(1.0e-9),casamet%glai(npt), & + casabiome%sla(veg%iveg(npt)), phen%phase(npt), & + phen%doyphase(npt,3), phen%phen(npt), phen%aphen(npt), & + casapool%clabile(npt), & + casapool%cplant(npt,:),casapool%clitter(npt,:),casapool%csoil(npt,:), & + casapool%nplant(npt,:),casapool%nlitter(npt,:),casapool%nsoil(npt,:), & + casapool%nsoilmin(npt),casapool%pplant(npt,:), & + casapool%plitter(npt,:), casapool%psoil(npt,:), & + casapool%psoillab(npt),casapool%psoilsorb(npt),casapool%psoilocc(npt), & + casabal%sumcbal(npt),casabal%sumnbal(npt),casabal%sumpbal(npt) + ENDIF + + + ENDDO + + CLOSE(nout) + +92 FORMAT(5(i6,',',2x),5(f18.6,',',2x),2(i6,',',2x),100(f18.6,',',2x)) + END SUBROUTINE casa_poolout + +SUBROUTINE casa_fluxout(myear,veg,soil,casabal,casamet) + + USE cable_def_types_mod + USE casadimension + USE casaparm +USE casa_met_type_mod, ONLY: casa_met => casa_met_type +USE casa_balance_type_mod, ONLY: casa_balance => casa_bal_type +USE phenology_type_mod, ONLY: phenology_type + + IMPLICIT NONE + + TYPE (veg_parameter_type), INTENT(INOUT) :: veg ! vegetation parameters + TYPE (soil_parameter_type), INTENT(INOUT) :: soil ! soil parameters + TYPE (casa_met), INTENT(INOUT) :: casamet + TYPE (casa_balance), INTENT(INOUT) :: casabal + INTEGER, INTENT(IN) :: myear + ! REAL(r_2), INTENT(IN) :: clitterinput(mp,3),csoilinput(mp,3) + + ! local variables + INTEGER npt,nout + REAL(r_2) xyear, totGPP, totNPP + + totGPP =0.0 + totNPP =0.0 + nout=104 + xyear=1.0/FLOAT(myear) + casabal%FCgppyear=casabal%FCgppyear * xyear + casabal%FCnppyear=casabal%FCnppyear * xyear + casabal%FCrmleafyear=casabal%FCrmleafyear * xyear + casabal%FCrmwoodyear=casabal%FCrmwoodyear * xyear + casabal%FCrmrootyear=casabal%FCrmrootyear * xyear + casabal%FCrgrowyear=casabal%FCrgrowyear * xyear + casabal%FCrsyear=casabal%FCrsyear * xyear + casabal%FCneeyear=casabal%FCneeyear * xyear + casabal%FNdepyear=casabal%FNdepyear * xyear + casabal%FNfixyear=casabal%FNfixyear * xyear + casabal%FNsnetyear=casabal%FNsnetyear * xyear + casabal%FNupyear=casabal%FNupyear * xyear + casabal%FNleachyear=casabal%FNleachyear * xyear + casabal%FNlossyear=casabal%FNlossyear * xyear + casabal%FPweayear=casabal%FPweayear * xyear + casabal%FPdustyear=casabal%FPdustyear * xyear + casabal%FPsnetyear=casabal%FPsnetyear * xyear + casabal%FPupyear=casabal%FPupyear * xyear + casabal%FPleachyear=casabal%FPleachyear * xyear + casabal%FPlossyear=casabal%FPlossyear * xyear + ! clitterinput = clitterinput * xyear + ! csoilinput = csoilinput * xyear + + PRINT *, 'writing CNP fluxes out to file ', casafile%cnpflux + OPEN(nout,file=casafile%cnpflux) + DO npt =1,mp + SELECT CASE(icycle) + CASE(1) + + WRITE(nout,*) myear,npt,veg%iveg(npt),soil%isoilm(npt), & + casamet%isorder(npt),casamet%lat(npt),casamet%lon(npt), & + casamet%areacell(npt)*(1.0e-9),casabal%Fcgppyear(npt), & + casabal%Fcnppyear(npt), & + casabal%Fcrmleafyear(npt),casabal%Fcrmwoodyear(npt), & + casabal%Fcrmrootyear(npt),casabal%Fcrgrowyear(npt), & + casabal%Fcrsyear(npt),casabal%Fcneeyear(npt) ! , & + ! clitterinput(npt,:),csoilinput(npt,:) + + CASE(2) + WRITE(nout,*) myear,npt,veg%iveg(npt),soil%isoilm(npt), & + casamet%isorder(npt),casamet%lat(npt),casamet%lon(npt), & + casamet%areacell(npt)*(1.0e-9),casabal%Fcgppyear(npt), & + casabal%FCnppyear(npt), & + casabal%FCrmleafyear(npt),casabal%FCrmwoodyear(npt), & + casabal%FCrmrootyear(npt),casabal%FCrgrowyear(npt), & + casabal%FCrsyear(npt), casabal%FCneeyear(npt), & + ! clitterinput(npt,:),csoilinput(npt,:), & + casabal%FNdepyear(npt),casabal%FNfixyear(npt),casabal%FNsnetyear(npt), & + casabal%FNupyear(npt), casabal%FNleachyear(npt),casabal%FNlossyear(npt) + + CASE(3) + WRITE(nout,*) myear,npt,veg%iveg(npt),soil%isoilm(npt), & + casamet%isorder(npt),casamet%lat(npt),casamet%lon(npt), & + casamet%areacell(npt)*(1.0e-9),casabal%Fcgppyear(npt), & + casabal%FCnppyear(npt), & + casabal%Fcrmleafyear(npt),casabal%Fcrmwoodyear(npt), & + casabal%Fcrmrootyear(npt),casabal%Fcrgrowyear(npt), & + casabal%FCrsyear(npt), casabal%FCneeyear(npt), & + ! clitterinput(npt,:),csoilinput(npt,:), & + casabal%FNdepyear(npt),casabal%FNfixyear(npt), casabal%FNsnetyear(npt),& + casabal%FNupyear(npt), casabal%FNleachyear(npt),casabal%FNlossyear(npt),& + casabal%FPweayear(npt),casabal%FPdustyear(npt), casabal%FPsnetyear(npt),& + casabal%FPupyear(npt), casabal%FPleachyear(npt),casabal%FPlossyear(npt) + + END SELECT + totGPP = totGPP+casabal%Fcgppyear(npt)* casamet%areacell(npt) + + + totNPP = totNPP+casabal%Fcnppyear(npt)* casamet%areacell(npt) + ENDDO + + PRINT *, 'totGPP global = ', totGPP*(1.0e-15) + PRINT *, 'totNPP global = ', totNPP*(1.0e-15) + CLOSE(nout) +92 FORMAT(5(i6,',',2x),100(f15.6,',',2x)) + END SUBROUTINE casa_fluxout + +SUBROUTINE casa_cnpflux(casaflux,casapool,casabal,zeroflux) + USE cable_def_types_mod + USE casadimension + USE casaparm +USE casa_pool_type_mod, ONLY: casa_pool => casa_pool_type +USE casa_flux_type_mod, ONLY: casa_flux => casa_flux_type +USE casa_balance_type_mod, ONLY: casa_balance => casa_bal_type + +IMPLICIT NONE + +TYPE (casa_flux), INTENT(INOUT) :: casaflux +TYPE (casa_pool), INTENT(INOUT) :: casapool +TYPE (casa_balance), INTENT(INOUT) :: casabal + + LOGICAL :: zeroflux + ! REAL(r_2), INTENT(INOUT) :: clitterinput(mp,3),csoilinput(mp,3) + INTEGER n + + IF(zeroflux) THEN + casabal%FCgppyear = 0.0 + casabal%FCrpyear = 0.0 + casabal%FCrmleafyear = 0.0 + casabal%FCrmwoodyear = 0.0 + casabal%FCrmrootyear = 0.0 + casabal%FCrgrowyear = 0.0 + casabal%FCnppyear = 0.0 + casabal%FCrsyear = 0.0 + casabal%FCneeyear = 0.0 + casabal%dCdtyear = 0.0 + + + casabal%FNdepyear = 0.0 + casabal%FNfixyear = 0.0 + casabal%FNsnetyear = 0.0 + casabal%FNupyear = 0.0 + casabal%FNleachyear = 0.0 + casabal%FNlossyear = 0.0 + + casabal%FPweayear = 0.0 + casabal%FPdustyear = 0.0 + casabal%FPsnetyear = 0.0 + casabal%FPupyear = 0.0 + casabal%FPleachyear = 0.0 + casabal%FPlossyear = 0.0 + + casaflux%FluxCtohwp = 0.0 + casaflux%FluxNtohwp = 0.0 + casaflux%FluxPtohwp = 0.0 + casaflux%FluxCtoclear = 0.0 + casaflux%FluxNtoclear = 0.0 + casaflux%FluxPtoclear = 0.0 + casaflux%CtransferLUC = 0.02 + ELSE + + casaflux%Crp(:) = casaflux%Crmplant(:,leaf) + casaflux%Crmplant(:,wood) + casaflux%Crmplant(:,froot) + casaflux%Crgplant(:) + casabal%FCgppyear = casabal%FCgppyear + casaflux%Cgpp * deltpool + casabal%FCrpyear = casabal%FCrpyear + casaflux%Crp * deltpool + casabal%FCrmleafyear(:) = casabal%FCrmleafyear(:) + casaflux%Crmplant(:,leaf) * deltpool + casabal%FCrmwoodyear(:) = casabal%FCrmwoodyear(:) + casaflux%Crmplant(:,wood) * deltpool + casabal%FCrmrootyear(:) = casabal%FCrmrootyear(:) + casaflux%Crmplant(:,froot) * deltpool + casabal%FCrgrowyear = casabal%FCrgrowyear + casaflux%Crgplant * deltpool + ! change made ypwang 17-nov-2013 to accoutn for change in labile carbon pool size + casabal%FCnppyear = casabal%FCnppyear + (casaflux%Cnpp+casapool%dClabiledt) * deltpool + casabal%FCrsyear = casabal%FCrsyear + casaflux%Crsoil * deltpool + casabal%FCneeyear = casabal%FCneeyear & + + (casaflux%Cnpp+casapool%dClabiledt-casaflux%Crsoil) * deltpool + casabal%dCdtyear = casabal%dCdtyear + (casapool%Ctot-casapool%Ctot_0)*deltpool + + ! DO n=1,3 + ! clitterinput(:,n)= clitterinput(:,n) + casaflux%kplant(:,n) * casapool%cplant(:,n) * deltpool + ! csoilinput(:,n) = csoilinput(:,n) + casaflux%fluxCtosoil(:,n) * deltpool + ! !csoilinput(:,n) = csoilinput(:,n)+casaflux%fluxCtolitter(:,n)*deltpool + ! ENDDO + + IF (icycle >1) THEN + casabal%FNdepyear = casabal%FNdepyear + casaflux%Nmindep * deltpool + casabal%FNfixyear = casabal%FNfixyear + casaflux%Nminfix * deltpool + casabal%FNsnetyear = casabal%FNsnetyear + casaflux%Nsnet * deltpool + casabal%FNupyear = casabal%FNupyear + casaflux%Nminuptake * deltpool + casabal%FNleachyear = casabal%FNleachyear + casaflux%Nminleach * deltpool + casabal%FNlossyear = casabal%FNlossyear + casaflux%Nminloss * deltpool + ENDIF + + IF (icycle >2) THEN + casabal%FPweayear = casabal%FPweayear + casaflux%Pwea * deltpool + casabal%FPdustyear = casabal%FPdustyear + casaflux%Pdep * deltpool + casabal%FPsnetyear = casabal%FPsnetyear + casaflux%Psnet * deltpool + casabal%FPupyear = casabal%FPupyear + casaflux%Plabuptake * deltpool + casabal%FPleachyear = casabal%FPleachyear + casaflux%Pleach * deltpool + casabal%FPlossyear = casabal%FPlossyear + casaflux%Ploss * deltpool + ENDIF + ENDIF + END SUBROUTINE casa_cnpflux + +END MODULE casa_inout_module diff --git a/src/coupled/AM3/control/casa/types/casa_met_type.F90 b/src/coupled/AM3/control/casa/types/casa_met_type.F90 new file mode 100644 index 000000000..793be48d6 --- /dev/null +++ b/src/coupled/AM3/control/casa/types/casa_met_type.F90 @@ -0,0 +1,234 @@ +MODULE casa_met_type_mod + +USE cable_other_constants_mod, ONLY: r_2 ! currently DOUBLE precision + +IMPLICIT NONE + +PUBLIC :: casa_met_data_type +PUBLIC :: casa_met_type +PUBLIC :: alloc_casa_met_data_type +PUBLIC :: assoc_casa_met_type + +TYPE casa_met_data_type + + INTEGER, ALLOCATABLE :: lnonwood (:) + INTEGER, ALLOCATABLE :: iveg2 (:) + INTEGER, ALLOCATABLE :: ijgcm (:) + INTEGER, ALLOCATABLE :: isorder (:) + + REAL(r_2), ALLOCATABLE :: glai (:) + REAL(r_2), ALLOCATABLE :: Tairk (:) + REAL(r_2), ALLOCATABLE :: precip (:) + REAL(r_2), ALLOCATABLE :: tsoilavg (:) + REAL(r_2), ALLOCATABLE :: moistavg (:) + REAL(r_2), ALLOCATABLE :: btran (:) + REAL(r_2), ALLOCATABLE :: lat (:) + REAL(r_2), ALLOCATABLE :: lon (:) + REAL(r_2), ALLOCATABLE :: areacell (:) + + REAL(r_2), ALLOCATABLE :: Tsoil (:,:) + REAL(r_2), ALLOCATABLE :: moist (:,:) + REAL(r_2), ALLOCATABLE :: Tairkspin (:,:) + REAL(r_2), ALLOCATABLE :: cgppspin (:,:) + REAL(r_2), ALLOCATABLE :: crmplantspin_1 (:,:) + REAL(r_2), ALLOCATABLE :: crmplantspin_2 (:,:) + REAL(r_2), ALLOCATABLE :: crmplantspin_3 (:,:) + REAL(r_2), ALLOCATABLE :: Tsoilspin_1 (:,:) + REAL(r_2), ALLOCATABLE :: Tsoilspin_2 (:,:) + REAL(r_2), ALLOCATABLE :: Tsoilspin_3 (:,:) + REAL(r_2), ALLOCATABLE :: Tsoilspin_4 (:,:) + REAL(r_2), ALLOCATABLE :: Tsoilspin_5 (:,:) + REAL(r_2), ALLOCATABLE :: Tsoilspin_6 (:,:) + REAL(r_2), ALLOCATABLE :: moistspin_1 (:,:) + REAL(r_2), ALLOCATABLE :: moistspin_2 (:,:) + REAL(r_2), ALLOCATABLE :: moistspin_3 (:,:) + REAL(r_2), ALLOCATABLE :: moistspin_4 (:,:) + REAL(r_2), ALLOCATABLE :: moistspin_5 (:,:) + REAL(r_2), ALLOCATABLE :: moistspin_6 (:,:) + REAL(r_2), ALLOCATABLE :: mtempspin (:,:) + +END TYPE casa_met_data_type + +TYPE casa_met_type + + INTEGER, PUBLIC, POINTER :: lnonwood (:) + INTEGER, PUBLIC, POINTER :: iveg2 (:) + INTEGER, PUBLIC, POINTER :: ijgcm (:) + INTEGER, PUBLIC, POINTER :: isorder (:) + + REAL(r_2), PUBLIC, POINTER :: glai (:) + REAL(r_2), PUBLIC, POINTER :: Tairk (:) + REAL(r_2), PUBLIC, POINTER :: precip (:) + REAL(r_2), PUBLIC, POINTER :: tsoilavg (:) + REAL(r_2), PUBLIC, POINTER :: moistavg (:) + REAL(r_2), PUBLIC, POINTER :: btran (:) + REAL(r_2), PUBLIC, POINTER :: lat (:) + REAL(r_2), PUBLIC, POINTER :: lon (:) + REAL(r_2), PUBLIC, POINTER :: areacell (:) + + REAL(r_2), PUBLIC, POINTER :: Tsoil (:,:) + REAL(r_2), PUBLIC, POINTER :: moist (:,:) + REAL(r_2), PUBLIC, POINTER :: Tairkspin (:,:) + REAL(r_2), PUBLIC, POINTER :: cgppspin (:,:) + REAL(r_2), PUBLIC, POINTER :: crmplantspin_1 (:,:) + REAL(r_2), PUBLIC, POINTER :: crmplantspin_2 (:,:) + REAL(r_2), PUBLIC, POINTER :: crmplantspin_3 (:,:) + REAL(r_2), PUBLIC, POINTER :: Tsoilspin_1 (:,:) + REAL(r_2), PUBLIC, POINTER :: Tsoilspin_2 (:,:) + REAL(r_2), PUBLIC, POINTER :: Tsoilspin_3 (:,:) + REAL(r_2), PUBLIC, POINTER :: Tsoilspin_4 (:,:) + REAL(r_2), PUBLIC, POINTER :: Tsoilspin_5 (:,:) + REAL(r_2), PUBLIC, POINTER :: Tsoilspin_6 (:,:) + REAL(r_2), PUBLIC, POINTER :: moistspin_1 (:,:) + REAL(r_2), PUBLIC, POINTER :: moistspin_2 (:,:) + REAL(r_2), PUBLIC, POINTER :: moistspin_3 (:,:) + REAL(r_2), PUBLIC, POINTER :: moistspin_4 (:,:) + REAL(r_2), PUBLIC, POINTER :: moistspin_5 (:,:) + REAL(r_2), PUBLIC, POINTER :: moistspin_6 (:,:) + REAL(r_2), PUBLIC, POINTER :: mtempspin (:,:) + +END TYPE casa_met_type + +CONTAINS + +SUBROUTINE alloc_casa_met_data_type( casamet_data, arraysize ) + +USE casadimension, ONLY: mdyear +USE grid_constants_mod_cbl, ONLY: nsl ! # of soil layers [6] + +IMPLICIT NONE + +TYPE (casa_met_data_type), INTENT(INOUT) :: casamet_data +INTEGER, INTENT(IN) :: arraysize + +ALLOCATE( casamet_data % lnonwood ( arraysize ) ) +ALLOCATE( casamet_data % iveg2 ( arraysize ) ) +ALLOCATE( casamet_data % ijgcm ( arraysize ) ) +ALLOCATE( casamet_data % isorder ( arraysize ) ) +ALLOCATE( casamet_data % glai ( arraysize ) ) +ALLOCATE( casamet_data % Tairk ( arraysize ) ) +ALLOCATE( casamet_data % precip ( arraysize ) ) +ALLOCATE( casamet_data % tsoilavg ( arraysize ) ) +ALLOCATE( casamet_data % moistavg ( arraysize ) ) +ALLOCATE( casamet_data % btran ( arraysize ) ) +ALLOCATE( casamet_data % lat ( arraysize ) ) +ALLOCATE( casamet_data % lon ( arraysize ) ) +ALLOCATE( casamet_data % areacell ( arraysize ) ) + +ALLOCATE( casamet_data % Tsoil ( arraysize, nsl ) ) +ALLOCATE( casamet_data % moist ( arraysize, nsl ) ) +ALLOCATE( casamet_data % Tairkspin ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % cgppspin ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % crmplantspin_1 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % crmplantspin_2 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % crmplantspin_3 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % Tsoilspin_1 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % Tsoilspin_2 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % Tsoilspin_3 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % Tsoilspin_4 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % Tsoilspin_5 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % Tsoilspin_6 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % moistspin_1 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % moistspin_2 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % moistspin_3 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % moistspin_4 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % moistspin_5 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % moistspin_6 ( arraysize, mdyear ) ) +ALLOCATE( casamet_data % mtempspin ( arraysize, mdyear ) ) + +RETURN +END SUBROUTINE alloc_casa_met_data_type + + +SUBROUTINE zero_casa_met_data_type( casamet_data ) + +IMPLICIT NONE + +TYPE (casa_met_data_type), INTENT(INOUT) :: casamet_data + +casamet_data % lnonwood (:) = 0.0 +casamet_data % iveg2 (:) = 0.0 +casamet_data % ijgcm (:) = 0.0 +casamet_data % isorder (:) = 0.0 +casamet_data % glai (:) = 0.0 +casamet_data % Tairk (:) = 0.0 +casamet_data % precip (:) = 0.0 +casamet_data % tsoilavg (:) = 0.0 +casamet_data % moistavg (:) = 0.0 +casamet_data % btran (:) = 0.0 +casamet_data % lat (:) = 0.0 +casamet_data % lon (:) = 0.0 +casamet_data % areacell (:) = 0.0 + +casamet_data % Tsoil (:,:) = 0.0 +casamet_data % moist (:,:) = 0.0 +casamet_data % Tairkspin (:,:) = 0.0 +casamet_data % cgppspin (:,:) = 0.0 +casamet_data % crmplantspin_1 (:,:) = 0.0 +casamet_data % crmplantspin_2 (:,:) = 0.0 +casamet_data % crmplantspin_3 (:,:) = 0.0 +casamet_data % Tsoilspin_1 (:,:) = 0.0 +casamet_data % Tsoilspin_2 (:,:) = 0.0 +casamet_data % Tsoilspin_3 (:,:) = 0.0 +casamet_data % Tsoilspin_4 (:,:) = 0.0 +casamet_data % Tsoilspin_5 (:,:) = 0.0 +casamet_data % Tsoilspin_6 (:,:) = 0.0 +casamet_data % moistspin_1 (:,:) = 0.0 +casamet_data % moistspin_2 (:,:) = 0.0 +casamet_data % moistspin_3 (:,:) = 0.0 +casamet_data % moistspin_4 (:,:) = 0.0 +casamet_data % moistspin_5 (:,:) = 0.0 +casamet_data % moistspin_6 (:,:) = 0.0 +casamet_data % mtempspin (:,:) = 0.0 + +RETURN +END SUBROUTINE zero_casa_met_data_type + + +SUBROUTINE assoc_casa_met_type( casamet, casamet_data ) + +IMPLICIT NONE + +TYPE (casa_met_type), INTENT(INOUT) :: casamet +TYPE (casa_met_data_type), INTENT(INOUT), TARGET :: casamet_data + +casamet % lnonwood => casamet_data % lnonwood +casamet % iveg2 => casamet_data % iveg2 +casamet % ijgcm => casamet_data % ijgcm +casamet % isorder => casamet_data % isorder +casamet % glai => casamet_data % glai +casamet % Tairk => casamet_data % Tairk +casamet % precip => casamet_data % precip +casamet % tsoilavg => casamet_data % tsoilavg +casamet % moistavg => casamet_data % moistavg +casamet % btran => casamet_data % btran +casamet % lat => casamet_data % lat +casamet % lon => casamet_data % lon +casamet % areacell => casamet_data % areacell + +casamet % Tsoil => casamet_data % Tsoil +casamet % moist => casamet_data % moist +casamet % Tairkspin => casamet_data % Tairkspin +casamet % cgppspin => casamet_data % cgppspin +casamet % crmplantspin_1 => casamet_data % crmplantspin_1 +casamet % crmplantspin_2 => casamet_data % crmplantspin_2 +casamet % crmplantspin_3 => casamet_data % crmplantspin_3 +casamet % Tsoilspin_1 => casamet_data % Tsoilspin_1 +casamet % Tsoilspin_2 => casamet_data % Tsoilspin_2 +casamet % Tsoilspin_3 => casamet_data % Tsoilspin_3 +casamet % Tsoilspin_4 => casamet_data % Tsoilspin_4 +casamet % Tsoilspin_5 => casamet_data % Tsoilspin_5 +casamet % Tsoilspin_6 => casamet_data % Tsoilspin_6 +casamet % moistspin_1 => casamet_data % moistspin_1 +casamet % moistspin_2 => casamet_data % moistspin_2 +casamet % moistspin_3 => casamet_data % moistspin_3 +casamet % moistspin_4 => casamet_data % moistspin_4 +casamet % moistspin_5 => casamet_data % moistspin_5 +casamet % moistspin_6 => casamet_data % moistspin_6 +casamet % mtempspin => casamet_data % mtempspin + +RETURN +END SUBROUTINE assoc_casa_met_type + +END MODULE casa_met_type_mod + diff --git a/src/coupled/AM3/control/casa/types/casa_phenology_type.F90 b/src/coupled/AM3/control/casa/types/casa_phenology_type.F90 new file mode 100644 index 000000000..9276866f5 --- /dev/null +++ b/src/coupled/AM3/control/casa/types/casa_phenology_type.F90 @@ -0,0 +1,110 @@ +MODULE phenology_type_mod + +USE cable_other_constants_mod, ONLY: r_2 ! currently DOUBLE precision + ! ntype_max=17 +USE casadimension, ONLY: mvtype, mphase, mdyear + +IMPLICIT NONE + +PUBLIC :: phenology_data_type +PUBLIC :: phenology_type +PUBLIC :: alloc_phenology_data_type +PUBLIC :: zero_phenology_data_type +PUBLIC :: assoc_phenology_type + +TYPE phenology_data_type + + INTEGER, ALLOCATABLE :: phase (:) + REAL(r_2), ALLOCATABLE :: TKshed (:) + INTEGER, ALLOCATABLE :: doyphase (:,:) + REAL, ALLOCATABLE :: phen (:) ! fraction of max LAI + REAL, ALLOCATABLE :: aphen (:) ! annual leaf on sum + INTEGER, ALLOCATABLE :: phasespin (:,:) + INTEGER, ALLOCATABLE :: doyphasespin_1 (:,:) + INTEGER, ALLOCATABLE :: doyphasespin_2 (:,:) + INTEGER, ALLOCATABLE :: doyphasespin_3 (:,:) + INTEGER, ALLOCATABLE :: doyphasespin_4 (:,:) + +END TYPE phenology_data_type + +TYPE phenology_type + + INTEGER, PUBLIC, POINTER :: phase (:) + REAL(r_2), PUBLIC, POINTER :: TKshed (:) + INTEGER, PUBLIC, POINTER :: doyphase (:,:) + REAL, PUBLIC, POINTER :: phen (:) + REAL, PUBLIC, POINTER :: aphen (:) + INTEGER, PUBLIC, POINTER :: phasespin (:,:) + INTEGER, PUBLIC, POINTER :: doyphasespin_1 (:,:) + INTEGER, PUBLIC, POINTER :: doyphasespin_2 (:,:) + INTEGER, PUBLIC, POINTER :: doyphasespin_3 (:,:) + INTEGER, PUBLIC, POINTER :: doyphasespin_4 (:,:) + +END TYPE phenology_type + +CONTAINS + +SUBROUTINE alloc_phenology_data_type( phen_data, arraysize ) + +IMPLICIT NONE + +TYPE( phenology_data_type ), INTENT(INOUT) :: phen_data +INTEGER, INTENT(IN) :: arraysize + +ALLOCATE( phen_data % TKshed ( mvtype ) ) +ALLOCATE( phen_data % phase ( arraysize ) ) +ALLOCATE( phen_data % doyphase ( arraysize, mphase ) ) +ALLOCATE( phen_data % phen ( arraysize ) ) +ALLOCATE( phen_data % aphen ( arraysize ) ) +ALLOCATE( phen_data % phasespin ( arraysize, mdyear ) ) +ALLOCATE( phen_data % doyphasespin_1 ( arraysize, mdyear ) ) +ALLOCATE( phen_data % doyphasespin_2 ( arraysize, mdyear ) ) +ALLOCATE( phen_data % doyphasespin_3 ( arraysize, mdyear ) ) +ALLOCATE( phen_data % doyphasespin_4 ( arraysize, mdyear ) ) + +RETURN +END SUBROUTINE alloc_phenology_data_type + +SUBROUTINE zero_phenology_data_type( phen_data ) + +IMPLICIT NONE + +TYPE (phenology_data_type), INTENT(INOUT) :: phen_data + +phen_data % phase (:) = 0 +phen_data % doyphase (:,:) = 0 +phen_data % TKshed (:) = 0.0 +phen_data % phen (:) = 0.0 +phen_data % aphen (:) = 0.0 +phen_data % phasespin (:,:) = 0.0 +phen_data % doyphasespin_1 (:,:) = 0.0 +phen_data % doyphasespin_2 (:,:) = 0.0 +phen_data % doyphasespin_3 (:,:) = 0.0 +phen_data % doyphasespin_4 (:,:) = 0.0 + +RETURN +END SUBROUTINE zero_phenology_data_type + +SUBROUTINE assoc_phenology_type( phen, phen_data ) + +IMPLICIT NONE + +TYPE (phenology_type), INTENT(INOUT) :: phen +TYPE (phenology_data_type), INTENT(INOUT), TARGET :: phen_data + +phen % phase => phen_data % phase +phen % doyphase => phen_data % doyphase +phen % TKshed => phen_data % TKshed +phen % phen => phen_data % phen +phen % aphen => phen_data % aphen +phen % phasespin => phen_data % phasespin +phen % doyphasespin_1 => phen_data % doyphasespin_1 +phen % doyphasespin_2 => phen_data % doyphasespin_2 +phen % doyphasespin_3 => phen_data % doyphasespin_3 +phen % doyphasespin_4 => phen_data % doyphasespin_4 + +RETURN +END SUBROUTINE assoc_phenology_type + +END MODULE phenology_type_mod + diff --git a/src/coupled/AM3/control/casa/types/casa_pool_type.F90 b/src/coupled/AM3/control/casa/types/casa_pool_type.F90 new file mode 100644 index 000000000..b37a2eb20 --- /dev/null +++ b/src/coupled/AM3/control/casa/types/casa_pool_type.F90 @@ -0,0 +1,288 @@ +MODULE casa_pool_type_mod + +USE cable_other_constants_mod, ONLY: r_2 ! currently DOUBLE precision + +IMPLICIT NONE + +PUBLIC :: casa_pool_data_type +PUBLIC :: casa_pool_type +PUBLIC :: alloc_casa_pool_data_type +PUBLIC :: assoc_casa_pool_type +PUBLIC :: zero_casa_pool_data_type + +TYPE casa_pool_data_type + + REAL(r_2), ALLOCATABLE :: Clabile (:) + REAL(r_2), ALLOCATABLE :: dClabiledt (:) + REAL(r_2), ALLOCATABLE :: Ctot (:) + REAL(r_2), ALLOCATABLE :: Ctot_0 (:) + REAL(r_2), ALLOCATABLE :: Nsoilmin (:) + REAL(r_2), ALLOCATABLE :: Psoillab (:) + REAL(r_2), ALLOCATABLE :: Psoilsorb (:) + REAL(r_2), ALLOCATABLE :: Psoilocc (:) + REAL(r_2), ALLOCATABLE :: dNsoilmindt (:) + REAL(r_2), ALLOCATABLE :: dPsoillabdt (:) + REAL(r_2), ALLOCATABLE :: dPsoilsorbdt (:) + REAL(r_2), ALLOCATABLE :: dPsoiloccdt (:) + + REAL(r_2), ALLOCATABLE :: Cplant (:,:) + REAL(r_2), ALLOCATABLE :: Nplant (:,:) + REAL(r_2), ALLOCATABLE :: Pplant (:,:) + REAL(r_2), ALLOCATABLE :: dCplantdt (:,:) + REAL(r_2), ALLOCATABLE :: dNplantdt (:,:) + REAL(r_2), ALLOCATABLE :: dPplantdt (:,:) + REAL(r_2), ALLOCATABLE :: ratioNCplant (:,:) + REAL(r_2), ALLOCATABLE :: ratioNPplant (:,:) + REAL(r_2), ALLOCATABLE :: Clitter (:,:) + REAL(r_2), ALLOCATABLE :: Nlitter (:,:) + REAL(r_2), ALLOCATABLE :: Plitter (:,:) + REAL(r_2), ALLOCATABLE :: dClitterdt (:,:) + REAL(r_2), ALLOCATABLE :: dNlitterdt (:,:) + REAL(r_2), ALLOCATABLE :: dPlitterdt (:,:) + REAL(r_2), ALLOCATABLE :: ratioNClitter (:,:) + REAL(r_2), ALLOCATABLE :: ratioNPlitter (:,:) + REAL(r_2), ALLOCATABLE :: Csoil (:,:) + REAL(r_2), ALLOCATABLE :: Nsoil (:,:) + REAL(r_2), ALLOCATABLE :: Psoil (:,:) + REAL(r_2), ALLOCATABLE :: dCsoildt (:,:) + REAL(r_2), ALLOCATABLE :: dNsoildt (:,:) + REAL(r_2), ALLOCATABLE :: dPsoildt (:,:) + REAL(r_2), ALLOCATABLE :: ratioNCsoil (:,:) + REAL(r_2), ALLOCATABLE :: ratioNCsoilnew (:,:) + REAL(r_2), ALLOCATABLE :: ratioNPsoil (:,:) + REAL(r_2), ALLOCATABLE :: ratioNCsoilmin (:,:) + REAL(r_2), ALLOCATABLE :: ratioNCsoilmax (:,:) + REAL(r_2), ALLOCATABLE :: ratioPcsoil (:,:) + REAL(r_2), ALLOCATABLE :: ratioPcplant (:,:) + REAL(r_2), ALLOCATABLE :: ratioPclitter (:,:) + REAL(r_2), ALLOCATABLE :: cwoodprod (:,:) + REAL(r_2), ALLOCATABLE :: nwoodprod (:,:) + REAL(r_2), ALLOCATABLE :: pwoodprod (:,:) + +END TYPE casa_pool_data_type + +TYPE casa_pool_type + + REAL(r_2), POINTER, PUBLIC :: Clabile (:) + REAL(r_2), POINTER, PUBLIC :: dClabiledt (:) + REAL(r_2), POINTER, PUBLIC :: Ctot (:) + REAL(r_2), POINTER, PUBLIC :: Ctot_0 (:) + REAL(r_2), POINTER, PUBLIC :: Nsoilmin (:) + REAL(r_2), POINTER, PUBLIC :: Psoillab (:) + REAL(r_2), POINTER, PUBLIC :: Psoilsorb (:) + REAL(r_2), POINTER, PUBLIC :: Psoilocc (:) + REAL(r_2), POINTER, PUBLIC :: dNsoilmindt (:) + REAL(r_2), POINTER, PUBLIC :: dPsoillabdt (:) + REAL(r_2), POINTER, PUBLIC :: dPsoilsorbdt (:) + REAL(r_2), POINTER, PUBLIC :: dPsoiloccdt (:) + + REAL(r_2), POINTER, PUBLIC :: Cplant (:,:) + REAL(r_2), POINTER, PUBLIC :: Nplant (:,:) + REAL(r_2), POINTER, PUBLIC :: Pplant (:,:) + REAL(r_2), POINTER, PUBLIC :: dCplantdt (:,:) + REAL(r_2), POINTER, PUBLIC :: dNplantdt (:,:) + REAL(r_2), POINTER, PUBLIC :: dPplantdt (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNCplant (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNPplant (:,:) + REAL(r_2), POINTER, PUBLIC :: Clitter (:,:) + REAL(r_2), POINTER, PUBLIC :: Nlitter (:,:) + REAL(r_2), POINTER, PUBLIC :: Plitter (:,:) + REAL(r_2), POINTER, PUBLIC :: dClitterdt (:,:) + REAL(r_2), POINTER, PUBLIC :: dNlitterdt (:,:) + REAL(r_2), POINTER, PUBLIC :: dPlitterdt (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNClitter (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNPlitter (:,:) + REAL(r_2), POINTER, PUBLIC :: Csoil (:,:) + REAL(r_2), POINTER, PUBLIC :: Nsoil (:,:) + REAL(r_2), POINTER, PUBLIC :: Psoil (:,:) + REAL(r_2), POINTER, PUBLIC :: dCsoildt (:,:) + REAL(r_2), POINTER, PUBLIC :: dNsoildt (:,:) + REAL(r_2), POINTER, PUBLIC :: dPsoildt (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNCsoil (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNCsoilnew (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNPsoil (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNCsoilmin (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioNCsoilmax (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioPcsoil (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioPcplant (:,:) + REAL(r_2), POINTER, PUBLIC :: ratioPclitter (:,:) + REAL(r_2), POINTER, PUBLIC :: cwoodprod (:,:) + REAL(r_2), POINTER, PUBLIC :: nwoodprod (:,:) + REAL(r_2), POINTER, PUBLIC :: pwoodprod (:,:) + +END TYPE casa_pool_type + +CONTAINS + +SUBROUTINE alloc_casa_pool_data_type( casapool_data, arraysize ) + +USE casadimension, ONLY: mplant, mlitter, msoil, mwood + +IMPLICIT NONE + +TYPE (casa_pool_data_type), INTENT(INOUT) :: casapool_data +INTEGER, INTENT(IN) :: arraysize + +ALLOCATE ( casapool_data % Clabile ( arraysize ) ) +ALLOCATE ( casapool_data % dClabiledt ( arraysize ) ) +ALLOCATE ( casapool_data % Ctot ( arraysize ) ) +ALLOCATE ( casapool_data % Ctot_0 ( arraysize ) ) +ALLOCATE ( casapool_data % Nsoilmin ( arraysize ) ) +ALLOCATE ( casapool_data % Psoillab ( arraysize ) ) +ALLOCATE ( casapool_data % Psoilsorb ( arraysize ) ) +ALLOCATE ( casapool_data % Psoilocc ( arraysize ) ) +ALLOCATE ( casapool_data % dNsoilmindt ( arraysize ) ) +ALLOCATE ( casapool_data % dPsoillabdt ( arraysize ) ) +ALLOCATE ( casapool_data % dPsoilsorbdt ( arraysize ) ) +ALLOCATE ( casapool_data % dPsoiloccdt ( arraysize ) ) + +ALLOCATE ( casapool_data % Cplant ( arraysize, mplant ) ) +ALLOCATE ( casapool_data % Nplant ( arraysize, mplant ) ) +ALLOCATE ( casapool_data % Pplant ( arraysize, mplant ) ) +ALLOCATE ( casapool_data % dCplantdt ( arraysize, mplant ) ) +ALLOCATE ( casapool_data % dNplantdt ( arraysize, mplant ) ) +ALLOCATE ( casapool_data % dPplantdt ( arraysize, mplant ) ) +ALLOCATE ( casapool_data % ratioNCplant ( arraysize, mplant ) ) +ALLOCATE ( casapool_data % ratioNPplant ( arraysize, mplant ) ) +ALLOCATE ( casapool_data % Clitter ( arraysize, mlitter ) ) +ALLOCATE ( casapool_data % Nlitter ( arraysize, mlitter ) ) +ALLOCATE ( casapool_data % Plitter ( arraysize, mlitter ) ) +ALLOCATE ( casapool_data % dClitterdt ( arraysize, mlitter ) ) +ALLOCATE ( casapool_data % dNlitterdt ( arraysize, mlitter ) ) +ALLOCATE ( casapool_data % dPlitterdt ( arraysize, mlitter ) ) +ALLOCATE ( casapool_data % ratioNClitter ( arraysize, mlitter ) ) +ALLOCATE ( casapool_data % ratioNPlitter ( arraysize, mlitter ) ) +ALLOCATE ( casapool_data % Csoil ( arraysize, msoil ) ) +ALLOCATE ( casapool_data % Nsoil ( arraysize, msoil ) ) +ALLOCATE ( casapool_data % Psoil ( arraysize, msoil ) ) +ALLOCATE ( casapool_data % dCsoildt ( arraysize, msoil ) ) +ALLOCATE ( casapool_data % dNsoildt ( arraysize, msoil ) ) +ALLOCATE ( casapool_data % dPsoildt ( arraysize, msoil ) ) +ALLOCATE ( casapool_data % ratioNCsoil ( arraysize, msoil ) ) +ALLOCATE ( casapool_data % ratioNCsoilnew ( arraysize, msoil ) ) +ALLOCATE ( casapool_data % ratioNPsoil ( arraysize, msoil ) ) +ALLOCATE ( casapool_data % ratioNCsoilmin ( arraysize, msoil ) ) +ALLOCATE ( casapool_data % ratioNCsoilmax ( arraysize, msoil ) ) +ALLOCATE ( casapool_data % ratioPcsoil ( arraysize, msoil ) ) +ALLOCATE ( casapool_data % ratioPcplant ( arraysize, mplant ) ) +ALLOCATE ( casapool_data % ratioPclitter ( arraysize, mlitter ) ) +ALLOCATE ( casapool_data % cwoodprod ( arraysize, mwood ) ) +ALLOCATE ( casapool_data % nwoodprod ( arraysize, mwood ) ) +ALLOCATE ( casapool_data % pwoodprod ( arraysize, mwood ) ) + +END SUBROUTINE alloc_casa_pool_data_type + +SUBROUTINE zero_casa_pool_data_type( casapool_data ) + +IMPLICIT NONE + +TYPE (casa_pool_data_type), INTENT(INOUT) :: casapool_data + +casapool_data % Clabile = 0.0 +casapool_data % dClabiledt = 0.0 +casapool_data % Ctot = 0.0 +casapool_data % Ctot_0 = 0.0 +casapool_data % Nsoilmin = 0.0 +casapool_data % Psoillab = 0.0 +casapool_data % Psoilsorb = 0.0 +casapool_data % Psoilocc = 0.0 +casapool_data % dNsoilmindt = 0.0 +casapool_data % dPsoillabdt = 0.0 +casapool_data % dPsoilsorbdt = 0.0 +casapool_data % dPsoiloccdt = 0.0 + +casapool_data % Cplant = 0.0 +casapool_data % Nplant = 0.0 +casapool_data % Pplant = 0.0 +casapool_data % dCplantdt = 0.0 +casapool_data % dNplantdt = 0.0 +casapool_data % dPplantdt = 0.0 +casapool_data % ratioNCplant = 0.0 +casapool_data % ratioNPplant = 0.0 +casapool_data % Clitter = 0.0 +casapool_data % Nlitter = 0.0 +casapool_data % Plitter = 0.0 +casapool_data % dClitterdt = 0.0 +casapool_data % dNlitterdt = 0.0 +casapool_data % dPlitterdt = 0.0 +casapool_data % ratioNClitter = 0.0 +casapool_data % ratioNPlitter = 0.0 +casapool_data % Csoil = 0.0 +casapool_data % Nsoil = 0.0 +casapool_data % Psoil = 0.0 +casapool_data % dCsoildt = 0.0 +casapool_data % dNsoildt = 0.0 +casapool_data % dPsoildt = 0.0 +casapool_data % ratioNCsoil = 0.0 +casapool_data % ratioNCsoilnew = 0.0 +casapool_data % ratioNPsoil = 0.0 +casapool_data % ratioNCsoilmin = 0.0 +casapool_data % ratioNCsoilmax = 0.0 +casapool_data % ratioPcsoil = 0.0 +casapool_data % ratioPcplant = 0.0 +casapool_data % ratioPclitter = 0.0 +casapool_data % cwoodprod = 0.0 +casapool_data % nwoodprod = 0.0 +casapool_data % pwoodprod = 0.0 + +RETURN +END SUBROUTINE zero_casa_pool_data_type + +SUBROUTINE assoc_casa_pool_type( casapool, casapool_data ) + +IMPLICIT NONE + +TYPE (casa_pool_type), INTENT(INOUT) :: casapool +TYPE (casa_pool_data_type), INTENT(INOUT), TARGET :: casapool_data + +casapool % Clabile => casapool_data % Clabile +casapool % dClabiledt => casapool_data % dClabiledt +casapool % Ctot => casapool_data % Ctot +casapool % Ctot_0 => casapool_data % Ctot_0 +casapool % Nsoilmin => casapool_data % Nsoilmin +casapool % Psoillab => casapool_data % Psoillab +casapool % Psoilsorb => casapool_data % Psoilsorb +casapool % Psoilocc => casapool_data % Psoilocc +casapool % dNsoilmindt => casapool_data % dNsoilmindt +casapool % dPsoillabdt => casapool_data % dPsoillabdt +casapool % dPsoilsorbdt => casapool_data % dPsoilsorbdt +casapool % dPsoiloccdt => casapool_data % dPsoiloccdt + +casapool % Cplant => casapool_data % Cplant +casapool % Nplant => casapool_data % Nplant +casapool % Pplant => casapool_data % Pplant +casapool % dCplantdt => casapool_data % dCplantdt +casapool % dNplantdt => casapool_data % dNplantdt +casapool % dPplantdt => casapool_data % dPplantdt +casapool % ratioNCplant => casapool_data % ratioNCplant +casapool % ratioNPplant => casapool_data % ratioNPplant +casapool % Clitter => casapool_data % Clitter +casapool % Nlitter => casapool_data % Nlitter +casapool % Plitter => casapool_data % Plitter +casapool % dClitterdt => casapool_data % dClitterdt +casapool % dNlitterdt => casapool_data % dNlitterdt +casapool % dPlitterdt => casapool_data % dPlitterdt +casapool % ratioNClitter => casapool_data % ratioNClitter +casapool % ratioNPlitter => casapool_data % ratioNPlitter +casapool % Csoil => casapool_data % Csoil +casapool % Nsoil => casapool_data % Nsoil +casapool % Psoil => casapool_data % Psoil +casapool % dCsoildt => casapool_data % dCsoildt +casapool % dNsoildt => casapool_data % dNsoildt +casapool % dPsoildt => casapool_data % dPsoildt +casapool % ratioNCsoil => casapool_data % ratioNCsoil +casapool % ratioNCsoilnew => casapool_data % ratioNCsoilnew +casapool % ratioNPsoil => casapool_data % ratioNPsoil +casapool % ratioNCsoilmin => casapool_data % ratioNCsoilmin +casapool % ratioNCsoilmax => casapool_data % ratioNCsoilmax +casapool % ratioPcsoil => casapool_data % ratioPcsoil +casapool % ratioPcplant => casapool_data % ratioPcplant +casapool % ratioPclitter => casapool_data % ratioPclitter +casapool % cwoodprod => casapool_data % cwoodprod +casapool % nwoodprod => casapool_data % nwoodprod +casapool % pwoodprod => casapool_data % pwoodprod + +RETURN +END SUBROUTINE assoc_casa_pool_type + +END MODULE casa_pool_type_mod diff --git a/src/coupled/AM3/control/casa/types/casa_readbiome.F90 b/src/coupled/AM3/control/casa/types/casa_readbiome.F90 new file mode 100644 index 000000000..800755514 --- /dev/null +++ b/src/coupled/AM3/control/casa/types/casa_readbiome.F90 @@ -0,0 +1,2445 @@ +MODULE casa_readbiome_module + +CONTAINS + +! jh:is ntiles used here actually ntiles? +SUBROUTINE casa_readbiome( mp, nsl, ntiles, veg_iveg, soil_zse, casabiome, & + casapool, casaflux, casamet, phen ) + +!USE cable_def_types_mod !jh? for ms, ntiles + USE casaparm + +!subrs +!jh!USE pft_lookup_parms_csv1_mod_cnp, ONLY: casa_pft_params_csv1 + +!data +USE casa_files_type_mod, ONLY: casafile ! TYPE instance +USE casavariable, ONLY: casa_biome ! TYPE declaration +USE casavariable, ONLY: casa_pool ! TYPE declaration +USE casavariable, ONLY: casa_flux ! TYPE declaration +USE casavariable, ONLY: casa_met ! TYPE declaration + +USE cable_common_module, ONLY: cable_user +USE casadimension, ONLY: mso, msoil, mplant +USE casadimension, ONLY: deltcasa +USE casadimension, ONLY: icycle +USE phenology_type_mod, ONLY: phenology_type + +IMPLICIT NONE + +INTEGER, INTENT(IN) :: mp ! # active tile points +INTEGER, INTENT(IN) :: nsl ! # soil layers +INTEGER, INTENT(IN) :: ntiles ! # SurfaceTypes +INTEGER, INTENT(IN) :: veg_iveg(mp) ! SurfaceType index +REAL, INTENT(IN) :: soil_zse(nsl) ! soil depth per layer + +TYPE (casa_biome), INTENT(OUT) :: casabiome +TYPE (casa_pool), INTENT(OUT) :: casapool +TYPE (casa_flux), INTENT(OUT) :: casaflux +TYPE (casa_met), INTENT(OUT) :: casamet +TYPE (phenology_type), INTENT(OUT) :: phen + + ! local variables + REAL(r_2), DIMENSION(ntiles) :: leafage,frootage,woodage + REAL(r_2), DIMENSION(ntiles) :: totroot + REAL(r_2), DIMENSION(ntiles) :: cwdage,metage,strage + REAL(r_2), DIMENSION(ntiles) :: micage,slowage,passage,clabileage,slax + REAL(r_2), DIMENSION(ntiles,mplant):: ratioCNplant + REAL(r_2), DIMENSION(ntiles,msoil) :: ratioCNsoil,ratioCNsoilmin,ratioCNsoilmax + REAL(r_2), DIMENSION(nsl) :: depthsoila,depthsoilb + REAL(r_2), DIMENSION(ntiles) :: xfNminloss, xfNminleach, xnfixrate + REAL(r_2), DIMENSION(ntiles) :: cleaf,cwood,cfroot, & + cmet,cstr,ccwd, & + cmic,cslow,cpass + REAL(r_2), DIMENSION(ntiles) :: nleaf,nwood,nfroot, & + nmet,nstr,ncwd, & + nmic,nslow,npass,xnsoilmin + REAL(r_2), DIMENSION(ntiles) :: xpleaf, xpwood, xpfroot, & + xpmet, xpstr, xpcwd, & + xpmic,xpslow,xppass,xplab,xpsorb,xpocc + REAL(r_2), DIMENSION(mso) :: xkmlabp,xpsorbmax,xfPleach + REAL(r_2), DIMENSION(mso,msoil) :: ratioNPsoil + REAL(r_2), DIMENSION(ntiles) :: xfherbivore,xxkleafcoldmax, xxkleafdrymax + REAL(r_2), DIMENSION(ntiles) :: xkuplabp + REAL(r_2), DIMENSION(ntiles,nsl) :: fracroot + REAL(r_2) :: xratioNPleafmin,xratioNPleafmax, & + xratioNPwoodmin,xratioNPwoodmax, & + xratioNPfrootmin,xratioNPfrootmax + INTEGER :: i,iv1,nv,ns,npt,iv,is,iso + INTEGER :: nv0,nv1,nv2,nv3,nv4,nv5,nv6,nv7,nv8,nv9,nv10,nv11,nv12 + REAL(r_2), DIMENSION(ntiles) :: xxnpmax,xq10soil,xxkoptlitter,xxkoptsoil,xprodptase, & + xcostnpup,xmaxfinelitter,xmaxcwd,xnintercept,xnslope + REAL(r_2), DIMENSION(mso) :: xxkplab,xxkpsorb,xxkpocc + + +casabiome%ivt2( 1 ) = 3 +casabiome%ivt2( 2 ) = 3 +casabiome%ivt2( 3 ) = 3 +casabiome%ivt2( 4 ) = 3 +casabiome%ivt2( 5 ) = 2 +casabiome%ivt2( 6 ) = 1 +casabiome%ivt2( 7 ) = 1 +casabiome%ivt2( 8 ) = 2 +casabiome%ivt2( 9 ) = 1 +casabiome%ivt2( 10 ) = 1 +casabiome%ivt2( 11 ) = 0 +casabiome%ivt2( 12 ) = 0 +casabiome%ivt2( 13 ) = 0 +casabiome%ivt2( 14 ) = 0 +casabiome%ivt2( 15 ) = 0 +casabiome%ivt2( 16 ) = 0 +casabiome%ivt2( 17 ) = 0 + +! where ice,water,urban=0)/grass=1/shrub=2/woody=3 + +! Tranche 1 +!=============================================================== +casabiome % kroot ( 1 ) = 5.500 +casabiome %rootdepth ( 1 ) = 1.500 +casabiome % kuptake ( 1 ) = 2.000 +casabiome % krootlen ( 1 ) = 14.878 +casabiome % kminN ( 1 ) = 2.000 +casabiome % kuplabP ( 1 ) = 0.500 +xfherbivore ( 1 ) = 0.068 +leafage ( 1 ) = 3.000 +woodage ( 1 ) = 70.000 +frootage ( 1 ) = 18.000 +metage ( 1 ) = 0.040 +strage ( 1 ) = 0.230 +cwdage ( 1 ) = 0.824 +micage ( 1 ) = 0.137 +slowage ( 1 ) = 5.000 +passage ( 1 ) = 222.220 +clabileage ( 1 ) = 0.200 +slax ( 1 ) = 0.007 + +casabiome % kroot ( 2 ) = 3.900 +casabiome %rootdepth ( 2 ) = 1.500 +casabiome % kuptake ( 2 ) = 1.900 +casabiome % krootlen ( 2 ) = 14.386 +casabiome % kminN ( 2 ) = 2.000 +casabiome % kuplabP ( 2 ) = 0.500 +xfherbivore ( 2 ) = 0.406 +leafage ( 2 ) = 2.000 +woodage ( 2 ) = 60.000 +frootage ( 2 ) = 10.000 +metage ( 2 ) = 0.040 +strage ( 2 ) = 0.230 +cwdage ( 2 ) = 0.824 +micage ( 2 ) = 0.137 +slowage ( 2 ) = 5.000 +passage ( 2 ) = 222.220 +clabileage ( 2 ) = 0.200 +slax ( 2 ) = 0.015 + +casabiome % kroot ( 3 ) = 5.500 +casabiome %rootdepth ( 3 ) = 1.500 +casabiome % kuptake ( 3 ) = 2.000 +casabiome % krootlen ( 3 ) = 14.026 +casabiome % kminN ( 3 ) = 2.000 +casabiome % kuplabP ( 3 ) = 0.500 +xfherbivore ( 3 ) = 0.068 +leafage ( 3 ) = 0.500 +woodage ( 3 ) = 80.000 +frootage ( 3 ) = 10.000 +metage ( 3 ) = 0.040 +strage ( 3 ) = 0.230 +cwdage ( 3 ) = 0.824 +micage ( 3 ) = 0.137 +slowage ( 3 ) = 5.000 +passage ( 3 ) = 222.220 +clabileage ( 3 ) = 0.200 +slax ( 3 ) = 0.023 + +casabiome % kroot ( 4 ) = 3.900 +casabiome %rootdepth ( 4 ) = 1.500 +casabiome % kuptake ( 4 ) = 2.000 +casabiome % krootlen ( 4 ) = 18.947 +casabiome % kminN ( 4 ) = 2.000 +casabiome % kuplabP ( 4 ) = 0.500 +xfherbivore ( 4 ) = 0.134 +leafage ( 4 ) = 0.518 +woodage ( 4 ) = 40.000 +frootage ( 4 ) = 10.000 +metage ( 4 ) = 0.040 +strage ( 4 ) = 0.230 +cwdage ( 4 ) = 0.824 +micage ( 4 ) = 0.137 +slowage ( 4 ) = 5.000 +passage ( 4 ) = 222.220 +clabileage ( 4 ) = 0.200 +slax ( 4 ) = 0.026 + +casabiome % kroot ( 5 ) = 2.000 +casabiome %rootdepth ( 5 ) = 0.500 +casabiome % kuptake ( 5 ) = 1.800 +casabiome % krootlen ( 5 ) = 32.308 +casabiome % kminN ( 5 ) = 2.000 +casabiome % kuplabP ( 5 ) = 0.500 +xfherbivore ( 5 ) = 0.022 +leafage ( 5 ) = 1.440 +woodage ( 5 ) = 40.000 +frootage ( 5 ) = 5.000 +metage ( 5 ) = 0.040 +strage ( 5 ) = 0.230 +cwdage ( 5 ) = 0.824 +micage ( 5 ) = 0.137 +slowage ( 5 ) = 5.000 +passage ( 5 ) = 222.220 +clabileage ( 5 ) = 0.200 +slax ( 5 ) = 0.010 + +casabiome % kroot ( 6 ) = 5.500 +casabiome %rootdepth ( 6 ) = 0.500 +casabiome % kuptake ( 6 ) = 2.000 +casabiome % krootlen ( 6 ) = 84.000 +casabiome % kminN ( 6 ) = 2.000 +casabiome % kuplabP ( 6 ) = 0.500 +xfherbivore ( 6 ) = 0.109 +leafage ( 6 ) = 0.500 +woodage ( 6 ) = 1.000 +frootage ( 6 ) = 3.000 +metage ( 6 ) = 0.040 +strage ( 6 ) = 0.230 +cwdage ( 6 ) = 0.824 +micage ( 6 ) = 0.137 +slowage ( 6 ) = 5.000 +passage ( 6 ) = 222.220 +clabileage ( 6 ) = 0.200 +slax ( 6 ) = 0.030 + +casabiome % kroot ( 7 ) = 5.500 +casabiome %rootdepth ( 7 ) = 0.500 +casabiome % kuptake ( 7 ) = 2.000 +casabiome % krootlen ( 7 ) = 84.000 +casabiome % kminN ( 7 ) = 2.000 +casabiome % kuplabP ( 7 ) = 0.500 +xfherbivore ( 7 ) = 0.109 +leafage ( 7 ) = 0.500 +woodage ( 7 ) = 1.000 +frootage ( 7 ) = 3.000 +metage ( 7 ) = 0.040 +strage ( 7 ) = 0.230 +cwdage ( 7 ) = 0.824 +micage ( 7 ) = 0.137 +slowage ( 7 ) = 5.000 +passage ( 7 ) = 222.220 +clabileage ( 7 ) = 0.200 +slax ( 7 ) = 0.022 + +casabiome % kroot ( 8 ) = 5.500 +casabiome %rootdepth ( 8 ) = 0.500 +casabiome % kuptake ( 8 ) = 2.000 +casabiome % krootlen ( 8 ) = 84.000 +casabiome % kminN ( 8 ) = 2.000 +casabiome % kuplabP ( 8 ) = 0.500 +xfherbivore ( 8 ) = 0.109 +leafage ( 8 ) = 0.750 +woodage ( 8 ) = 1.000 +frootage ( 8 ) = 3.000 +metage ( 8 ) = 0.040 +strage ( 8 ) = 0.230 +cwdage ( 8 ) = 0.824 +micage ( 8 ) = 0.137 +slowage ( 8 ) = 5.000 +passage ( 8 ) = 222.220 +clabileage ( 8 ) = 0.200 +slax ( 8 ) = 0.027 + +casabiome % kroot ( 9 ) = 5.500 +casabiome %rootdepth ( 9 ) = 0.500 +casabiome % kuptake ( 9 ) = 1.600 +casabiome % krootlen ( 9 ) = 120.500 +casabiome % kminN ( 9 ) = 2.000 +casabiome % kuplabP ( 9 ) = 0.500 +xfherbivore ( 9 ) = 0.140 +leafage ( 9 ) = 0.370 +woodage ( 9 ) = 1.000 +frootage ( 9 ) = 0.884 +metage ( 9 ) = 0.040 +strage ( 9 ) = 0.230 +cwdage ( 9 ) = 0.824 +micage ( 9 ) = 0.137 +slowage ( 9 ) = 5.000 +passage ( 9 ) = 222.220 +clabileage ( 9 ) = 0.200 +slax ( 9 ) = 0.030 + +casabiome % kroot ( 10 ) = 5.500 +casabiome %rootdepth ( 10 ) = 0.500 +casabiome % kuptake ( 10 ) = 1.600 +casabiome % krootlen ( 10 ) = 120.500 +casabiome % kminN ( 10 ) = 2.000 +casabiome % kuplabP ( 10 ) = 0.500 +xfherbivore ( 10 ) = 0.140 +leafage ( 10 ) = 0.370 +woodage ( 10 ) = 1.000 +frootage ( 10 ) = 0.884 +metage ( 10 ) = 0.040 +strage ( 10 ) = 0.230 +cwdage ( 10 ) = 0.824 +micage ( 10 ) = 0.137 +slowage ( 10 ) = 5.000 +passage ( 10 ) = 222.220 +clabileage ( 10 ) = 0.200 +slax ( 10 ) = 0.022 + +casabiome % kroot ( 11 ) = 5.500 +casabiome %rootdepth ( 11 ) = 0.500 +casabiome % kuptake ( 11 ) = 1.600 +casabiome % krootlen ( 11 ) = 0.000 +casabiome % kminN ( 11 ) = 2.000 +casabiome % kuplabP ( 11 ) = 0.500 +xfherbivore ( 11 ) = 0.000 +leafage ( 11 ) = 1.000 +woodage ( 11 ) = 1.000 +frootage ( 11 ) = 1.000 +metage ( 11 ) = 0.040 +strage ( 11 ) = 0.230 +cwdage ( 11 ) = 0.824 +micage ( 11 ) = 0.137 +slowage ( 11 ) = 5.000 +passage ( 11 ) = 222.220 +clabileage ( 11 ) = 0.200 +slax ( 11 ) = 0.020 + +casabiome % kroot ( 12 ) = 5.500 +casabiome %rootdepth ( 12 ) = 0.500 +casabiome % kuptake ( 12 ) = 1.800 +casabiome % krootlen ( 12 ) = 0.000 +casabiome % kminN ( 12 ) = 2.000 +casabiome % kuplabP ( 12 ) = 0.500 +xfherbivore ( 12 ) = 0.000 +leafage ( 12 ) = 1.000 +woodage ( 12 ) = 1.000 +frootage ( 12 ) = 1.000 +metage ( 12 ) = 0.040 +strage ( 12 ) = 0.230 +cwdage ( 12 ) = 0.824 +micage ( 12 ) = 0.137 +slowage ( 12 ) = 5.000 +passage ( 12 ) = 222.220 +clabileage ( 12 ) = 0.200 +slax ( 12 ) = 0.020 + +casabiome % kroot ( 13 ) = 5.500 +casabiome %rootdepth ( 13 ) = 0.500 +casabiome % kuptake ( 13 ) = 1.800 +casabiome % krootlen ( 13 ) = 0.000 +casabiome % kminN ( 13 ) = 2.000 +casabiome % kuplabP ( 13 ) = 0.500 +xfherbivore ( 13 ) = 0.000 +leafage ( 13 ) = 1.000 +woodage ( 13 ) = 1.000 +frootage ( 13 ) = 1.000 +metage ( 13 ) = 0.040 +strage ( 13 ) = 0.230 +cwdage ( 13 ) = 0.824 +micage ( 13 ) = 0.137 +slowage ( 13 ) = 5.000 +passage ( 13 ) = 222.220 +clabileage ( 13 ) = 0.200 +slax ( 13 ) = 0.020 + +casabiome % kroot ( 14 ) = 2.000 +casabiome %rootdepth ( 14 ) = 0.500 +casabiome % kuptake ( 14 ) = 1.800 +casabiome % krootlen ( 14 ) = 30.769 +casabiome % kminN ( 14 ) = 2.000 +casabiome % kuplabP ( 14 ) = 0.500 +xfherbivore ( 14 ) = 0.010 +leafage ( 14 ) = 0.461 +woodage ( 14 ) = 5.000 +frootage ( 14 ) = 4.000 +metage ( 14 ) = 0.040 +strage ( 14 ) = 0.230 +cwdage ( 14 ) = 0.824 +micage ( 14 ) = 0.137 +slowage ( 14 ) = 5.000 +passage ( 14 ) = 222.220 +clabileage ( 14 ) = 0.200 +slax ( 14 ) = 0.024 + +casabiome % kroot ( 15 ) = 2.000 +casabiome %rootdepth ( 15 ) = 0.500 +casabiome % kuptake ( 15 ) = 1.800 +casabiome % krootlen ( 15 ) = 0.000 +casabiome % kminN ( 15 ) = 2.000 +casabiome % kuplabP ( 15 ) = 0.500 +xfherbivore ( 15 ) = 0.000 +leafage ( 15 ) = 1.000 +woodage ( 15 ) = 1.000 +frootage ( 15 ) = 1.000 +metage ( 15 ) = 0.040 +strage ( 15 ) = 0.230 +cwdage ( 15 ) = 0.824 +micage ( 15 ) = 0.137 +slowage ( 15 ) = 5.000 +passage ( 15 ) = 222.220 +clabileage ( 15 ) = 0.200 +slax ( 15 ) = 0.020 + +casabiome % kroot ( 16 ) = 5.500 +casabiome %rootdepth ( 16 ) = 1.500 +casabiome % kuptake ( 16 ) = 1.800 +casabiome % krootlen ( 16 ) = 0.000 +casabiome % kminN ( 16 ) = 2.000 +casabiome % kuplabP ( 16 ) = 0.500 +xfherbivore ( 16 ) = 0.000 +leafage ( 16 ) = 1.000 +woodage ( 16 ) = 1.000 +frootage ( 16 ) = 1.000 +metage ( 16 ) = 0.040 +strage ( 16 ) = 0.230 +cwdage ( 16 ) = 0.824 +micage ( 16 ) = 0.137 +slowage ( 16 ) = 5.000 +passage ( 16 ) = 222.220 +clabileage ( 16 ) = 0.200 +slax ( 16 ) = 0.020 + +casabiome % kroot ( 17 ) = 5.500 +casabiome %rootdepth ( 17 ) = 0.500 +casabiome % kuptake ( 17 ) = 1.800 +casabiome % krootlen ( 17 ) = 0.000 +casabiome % kminN ( 17 ) = 2.000 +casabiome % kuplabP ( 17 ) = 0.500 +xfherbivore ( 17 ) = 0.000 +leafage ( 17 ) = 1.000 +woodage ( 17 ) = 1.000 +frootage ( 17 ) = 1.000 +metage ( 17 ) = 0.040 +strage ( 17 ) = 0.230 +cwdage ( 17 ) = 0.824 +micage ( 17 ) = 0.137 +slowage ( 17 ) = 5.000 +passage ( 17 ) = 222.220 +clabileage ( 17 ) = 0.200 +slax ( 17 ) = 0.020 + +! Tranche *2* should be 2a +!=============================================================== +casabiome%fracnpptoP ( 1, 1 ) = 0.250 +casabiome%fracnpptoP ( 1, 2 ) = 0.400 +casabiome%fracnpptoP ( 1, 3 ) = 0.350 +casabiome%rmplant ( 1, 1 ) = 0.100 +casabiome%rmplant ( 1, 2 ) = 2.000 +casabiome%rmplant ( 1, 3 ) = 10.000 + +casabiome%fracnpptoP ( 2, 1 ) = 0.250 +casabiome%fracnpptoP ( 2, 2 ) = 0.400 +casabiome%fracnpptoP ( 2, 3 ) = 0.350 +casabiome%rmplant ( 2, 1 ) = 0.100 +casabiome%rmplant ( 2, 2 ) = 2.000 +casabiome%rmplant ( 2, 3 ) = 10.000 + +casabiome%fracnpptoP ( 3, 1 ) = 0.250 +casabiome%fracnpptoP ( 3, 2 ) = 0.400 +casabiome%fracnpptoP ( 3, 3 ) = 0.350 +casabiome%rmplant ( 3, 1 ) = 0.100 +casabiome%rmplant ( 3, 2 ) = 2.000 +casabiome%rmplant ( 3, 3 ) = 10.000 + +casabiome%fracnpptoP ( 4, 1 ) = 0.250 +casabiome%fracnpptoP ( 4, 2 ) = 0.400 +casabiome%fracnpptoP ( 4, 3 ) = 0.350 +casabiome%rmplant ( 4, 1 ) = 0.100 +casabiome%rmplant ( 4, 2 ) = 2.000 +casabiome%rmplant ( 4, 3 ) = 10.000 + +casabiome%fracnpptoP ( 5, 1 ) = 0.250 +casabiome%fracnpptoP ( 5, 2 ) = 0.400 +casabiome%fracnpptoP ( 5, 3 ) = 0.350 +casabiome%rmplant ( 5, 1 ) = 0.100 +casabiome%rmplant ( 5, 2 ) = 2.000 +casabiome%rmplant ( 5, 3 ) = 10.000 + +casabiome%fracnpptoP ( 6, 1 ) = 0.250 +casabiome%fracnpptoP ( 6, 2 ) = 0.400 +casabiome%fracnpptoP ( 6, 3 ) = 0.350 +casabiome%rmplant ( 6, 1 ) = 0.100 +casabiome%rmplant ( 6, 2 ) = 2.000 +casabiome%rmplant ( 6, 3 ) = 10.000 + +casabiome%fracnpptoP ( 7, 1 ) = 0.250 +casabiome%fracnpptoP ( 7, 2 ) = 0.400 +casabiome%fracnpptoP ( 7, 3 ) = 0.350 +casabiome%rmplant ( 7, 1 ) = 0.100 +casabiome%rmplant ( 7, 2 ) = 2.000 +casabiome%rmplant ( 7, 3 ) = 10.000 + +casabiome%fracnpptoP ( 8, 1 ) = 0.250 +casabiome%fracnpptoP ( 8, 2 ) = 0.400 +casabiome%fracnpptoP ( 8, 3 ) = 0.350 +casabiome%rmplant ( 8, 1 ) = 0.100 +casabiome%rmplant ( 8, 2 ) = 2.000 +casabiome%rmplant ( 8, 3 ) = 10.000 + +casabiome%fracnpptoP ( 9, 1 ) = 0.250 +casabiome%fracnpptoP ( 9, 2 ) = 0.400 +casabiome%fracnpptoP ( 9, 3 ) = 0.350 +casabiome%rmplant ( 9, 1 ) = 0.100 +casabiome%rmplant ( 9, 2 ) = 2.000 +casabiome%rmplant ( 9, 3 ) = 10.000 + +casabiome%fracnpptoP ( 10, 1 ) = 0.250 +casabiome%fracnpptoP ( 10, 2 ) = 0.400 +casabiome%fracnpptoP ( 10, 3 ) = 0.350 +casabiome%rmplant ( 10, 1 ) = 0.100 +casabiome%rmplant ( 10, 2 ) = 2.000 +casabiome%rmplant ( 10, 3 ) = 10.000 + +casabiome%fracnpptoP ( 11, 1 ) = 0.250 +casabiome%fracnpptoP ( 11, 2 ) = 0.400 +casabiome%fracnpptoP ( 11, 3 ) = 0.350 +casabiome%rmplant ( 11, 1 ) = 0.100 +casabiome%rmplant ( 11, 2 ) = 2.000 +casabiome%rmplant ( 11, 3 ) = 10.000 + +casabiome%fracnpptoP ( 12, 1 ) = 0.250 +casabiome%fracnpptoP ( 12, 2 ) = 0.400 +casabiome%fracnpptoP ( 12, 3 ) = 0.350 +casabiome%rmplant ( 12, 1 ) = 0.100 +casabiome%rmplant ( 12, 2 ) = 2.000 +casabiome%rmplant ( 12, 3 ) = 10.000 + +casabiome%fracnpptoP ( 13, 1 ) = 0.250 +casabiome%fracnpptoP ( 13, 2 ) = 0.400 +casabiome%fracnpptoP ( 13, 3 ) = 0.350 +casabiome%rmplant ( 13, 1 ) = 0.100 +casabiome%rmplant ( 13, 2 ) = 2.000 +casabiome%rmplant ( 13, 3 ) = 10.000 + +casabiome%fracnpptoP ( 14, 1 ) = 0.250 +casabiome%fracnpptoP ( 14, 2 ) = 0.400 +casabiome%fracnpptoP ( 14, 3 ) = 0.350 +casabiome%rmplant ( 14, 1 ) = 0.100 +casabiome%rmplant ( 14, 2 ) = 2.000 +casabiome%rmplant ( 14, 3 ) = 10.000 + +casabiome%fracnpptoP ( 15, 1 ) = 0.250 +casabiome%fracnpptoP ( 15, 2 ) = 0.400 +casabiome%fracnpptoP ( 15, 3 ) = 0.350 +casabiome%rmplant ( 15, 1 ) = 0.100 +casabiome%rmplant ( 15, 2 ) = 2.000 +casabiome%rmplant ( 15, 3 ) = 10.000 + +casabiome%fracnpptoP ( 16, 1 ) = 0.250 +casabiome%fracnpptoP ( 16, 2 ) = 0.400 +casabiome%fracnpptoP ( 16, 3 ) = 0.350 +casabiome%rmplant ( 16, 1 ) = 0.100 +casabiome%rmplant ( 16, 2 ) = 2.000 +casabiome%rmplant ( 16, 3 ) = 10.000 + +casabiome%fracnpptoP ( 17, 1 ) = 0.250 +casabiome%fracnpptoP ( 17, 2 ) = 0.400 +casabiome%fracnpptoP ( 17, 3 ) = 0.350 +casabiome%rmplant ( 17, 1 ) = 0.100 +casabiome%rmplant ( 17, 2 ) = 2.000 +casabiome%rmplant ( 17, 3 ) = 10.000 + +! Tranche 2b +!=============================================================== +ratioCNplant ( 1, 1 ) = 49.800 +ratioCNplant ( 1, 2 ) = 238.100 +ratioCNplant ( 1, 3 ) = 73.700 +casabiome % ftransNPtoL ( 1, 1 ) = 0.500 +casabiome % ftransNPtoL ( 1, 2 ) = 0.950 +casabiome % ftransNPtoL ( 1, 3 ) = 0.900 +casabiome % fracligninplant ( 1, 1 ) = 0.250 +casabiome % fracligninplant ( 1, 2 ) = 0.400 +casabiome % fracligninplant ( 1, 3 ) = 0.250 +ratioCNsoil ( 1, 1 ) = 8.000 +ratioCNsoil ( 1, 2 ) = 16.100 +ratioCNsoil ( 1, 3 ) = 16.100 +ratioCNsoilmin ( 1, 1 ) = 3.000 +ratioCNsoilmin ( 1, 2 ) = 12.000 +ratioCNsoilmin ( 1, 3 ) = 7.000 +ratioCNsoilmax ( 1, 1 ) = 15.000 +ratioCNsoilmax ( 1, 2 ) = 30.000 +ratioCNsoilmax ( 1, 3 ) = 15.000 +casabiome % glaimax ( 1 ) = 7.000 +casabiome % glaimin ( 1 ) = 1.000 + +ratioCNplant ( 2, 1 ) = 23.100 +ratioCNplant ( 2, 2 ) = 134.900 +ratioCNplant ( 2, 3 ) = 61.200 +casabiome % ftransNPtoL ( 2, 1 ) = 0.500 +casabiome % ftransNPtoL ( 2, 2 ) = 0.950 +casabiome % ftransNPtoL ( 2, 3 ) = 0.900 +casabiome % fracligninplant ( 2, 1 ) = 0.200 +casabiome % fracligninplant ( 2, 2 ) = 0.400 +casabiome % fracligninplant ( 2, 3 ) = 0.200 +ratioCNsoil ( 2, 1 ) = 8.000 +ratioCNsoil ( 2, 2 ) = 12.800 +ratioCNsoil ( 2, 3 ) = 12.800 +ratioCNsoilmin ( 2, 1 ) = 3.000 +ratioCNsoilmin ( 2, 2 ) = 12.000 +ratioCNsoilmin ( 2, 3 ) = 7.000 +ratioCNsoilmax ( 2, 1 ) = 15.000 +ratioCNsoilmax ( 2, 2 ) = 30.000 +ratioCNsoilmax ( 2, 3 ) = 15.000 +casabiome % glaimax ( 2 ) = 7.000 +casabiome % glaimin ( 2 ) = 1.000 + +ratioCNplant ( 3, 1 ) = 59.300 +ratioCNplant ( 3, 2 ) = 243.800 +ratioCNplant ( 3, 3 ) = 75.000 +casabiome % ftransNPtoL ( 3, 1 ) = 0.500 +casabiome % ftransNPtoL ( 3, 2 ) = 0.950 +casabiome % ftransNPtoL ( 3, 3 ) = 0.900 +casabiome % fracligninplant ( 3, 1 ) = 0.200 +casabiome % fracligninplant ( 3, 2 ) = 0.400 +casabiome % fracligninplant ( 3, 3 ) = 0.200 +ratioCNsoil ( 3, 1 ) = 8.000 +ratioCNsoil ( 3, 2 ) = 24.800 +ratioCNsoil ( 3, 3 ) = 24.800 +ratioCNsoilmin ( 3, 1 ) = 3.000 +ratioCNsoilmin ( 3, 2 ) = 12.000 +ratioCNsoilmin ( 3, 3 ) = 7.000 +ratioCNsoilmax ( 3, 1 ) = 15.000 +ratioCNsoilmax ( 3, 2 ) = 30.000 +ratioCNsoilmax ( 3, 3 ) = 15.000 +casabiome % glaimax ( 3 ) = 7.000 +casabiome % glaimin ( 3 ) = 0.500 + +ratioCNplant ( 4, 1 ) = 31.400 +ratioCNplant ( 4, 2 ) = 156.200 +ratioCNplant ( 4, 3 ) = 63.200 +casabiome % ftransNPtoL ( 4, 1 ) = 0.500 +casabiome % ftransNPtoL ( 4, 2 ) = 0.950 +casabiome % ftransNPtoL ( 4, 3 ) = 0.900 +casabiome % fracligninplant ( 4, 1 ) = 0.200 +casabiome % fracligninplant ( 4, 2 ) = 0.400 +casabiome % fracligninplant ( 4, 3 ) = 0.200 +ratioCNsoil ( 4, 1 ) = 8.000 +ratioCNsoil ( 4, 2 ) = 30.000 +ratioCNsoil ( 4, 3 ) = 30.000 +ratioCNsoilmin ( 4, 1 ) = 3.000 +ratioCNsoilmin ( 4, 2 ) = 12.000 +ratioCNsoilmin ( 4, 3 ) = 7.000 +ratioCNsoilmax ( 4, 1 ) = 15.000 +ratioCNsoilmax ( 4, 2 ) = 30.000 +ratioCNsoilmax ( 4, 3 ) = 15.000 +casabiome % glaimax ( 4 ) = 7.000 +casabiome % glaimin ( 4 ) = 0.500 + +ratioCNplant ( 5, 1 ) = 37.600 +ratioCNplant ( 5, 2 ) = 142.100 +ratioCNplant ( 5, 3 ) = 67.100 +casabiome % ftransNPtoL ( 5, 1 ) = 0.500 +casabiome % ftransNPtoL ( 5, 2 ) = 0.950 +casabiome % ftransNPtoL ( 5, 3 ) = 0.900 +casabiome % fracligninplant ( 5, 1 ) = 0.200 +casabiome % fracligninplant ( 5, 2 ) = 0.400 +casabiome % fracligninplant ( 5, 3 ) = 0.200 +ratioCNsoil ( 5, 1 ) = 8.000 +ratioCNsoil ( 5, 2 ) = 19.300 +ratioCNsoil ( 5, 3 ) = 19.300 +ratioCNsoilmin ( 5, 1 ) = 3.000 +ratioCNsoilmin ( 5, 2 ) = 12.000 +ratioCNsoilmin ( 5, 3 ) = 7.000 +ratioCNsoilmax ( 5, 1 ) = 15.000 +ratioCNsoilmax ( 5, 2 ) = 30.000 +ratioCNsoilmax ( 5, 3 ) = 15.000 +casabiome % glaimax ( 5 ) = 3.000 +casabiome % glaimin ( 5 ) = 0.100 + +ratioCNplant ( 6, 1 ) = 34.800 +ratioCNplant ( 6, 2 ) = 150.000 +ratioCNplant ( 6, 3 ) = 64.500 +casabiome % ftransNPtoL ( 6, 1 ) = 0.500 +casabiome % ftransNPtoL ( 6, 2 ) = 0.950 +casabiome % ftransNPtoL ( 6, 3 ) = 0.900 +casabiome % fracligninplant ( 6, 1 ) = 0.100 +casabiome % fracligninplant ( 6, 2 ) = 0.400 +casabiome % fracligninplant ( 6, 3 ) = 0.100 +ratioCNsoil ( 6, 1 ) = 8.000 +ratioCNsoil ( 6, 2 ) = 13.100 +ratioCNsoil ( 6, 3 ) = 13.100 +ratioCNsoilmin ( 6, 1 ) = 3.000 +ratioCNsoilmin ( 6, 2 ) = 12.000 +ratioCNsoilmin ( 6, 3 ) = 7.000 +ratioCNsoilmax ( 6, 1 ) = 15.000 +ratioCNsoilmax ( 6, 2 ) = 30.000 +ratioCNsoilmax ( 6, 3 ) = 15.000 +casabiome % glaimax ( 6 ) = 3.000 +casabiome % glaimin ( 6 ) = 0.100 + +ratioCNplant ( 7, 1 ) = 44.000 +ratioCNplant ( 7, 2 ) = 150.000 +ratioCNplant ( 7, 3 ) = 62.700 +casabiome % ftransNPtoL ( 7, 1 ) = 0.500 +casabiome % ftransNPtoL ( 7, 2 ) = 0.950 +casabiome % ftransNPtoL ( 7, 3 ) = 0.900 +casabiome % fracligninplant ( 7, 1 ) = 0.100 +casabiome % fracligninplant ( 7, 2 ) = 0.400 +casabiome % fracligninplant ( 7, 3 ) = 0.100 +ratioCNsoil ( 7, 1 ) = 8.000 +ratioCNsoil ( 7, 2 ) = 13.100 +ratioCNsoil ( 7, 3 ) = 13.100 +ratioCNsoilmin ( 7, 1 ) = 3.000 +ratioCNsoilmin ( 7, 2 ) = 12.000 +ratioCNsoilmin ( 7, 3 ) = 7.000 +ratioCNsoilmax ( 7, 1 ) = 15.000 +ratioCNsoilmax ( 7, 2 ) = 30.000 +ratioCNsoilmax ( 7, 3 ) = 15.000 +casabiome % glaimax ( 7 ) = 3.000 +casabiome % glaimin ( 7 ) = 0.100 + +ratioCNplant ( 8, 1 ) = 49.200 +ratioCNplant ( 8, 2 ) = 147.300 +ratioCNplant ( 8, 3 ) = 69.000 +casabiome % ftransNPtoL ( 8, 1 ) = 0.500 +casabiome % ftransNPtoL ( 8, 2 ) = 0.950 +casabiome % ftransNPtoL ( 8, 3 ) = 0.900 +casabiome % fracligninplant ( 8, 1 ) = 0.100 +casabiome % fracligninplant ( 8, 2 ) = 0.400 +casabiome % fracligninplant ( 8, 3 ) = 0.100 +ratioCNsoil ( 8, 1 ) = 8.000 +ratioCNsoil ( 8, 2 ) = 13.100 +ratioCNsoil ( 8, 3 ) = 13.100 +ratioCNsoilmin ( 8, 1 ) = 3.000 +ratioCNsoilmin ( 8, 2 ) = 12.000 +ratioCNsoilmin ( 8, 3 ) = 7.000 +ratioCNsoilmax ( 8, 1 ) = 15.000 +ratioCNsoilmax ( 8, 2 ) = 30.000 +ratioCNsoilmax ( 8, 3 ) = 15.000 +casabiome % glaimax ( 8 ) = 3.000 +casabiome % glaimin ( 8 ) = 0.100 + +ratioCNplant ( 9, 1 ) = 21.600 +ratioCNplant ( 9, 2 ) = 150.000 +ratioCNplant ( 9, 3 ) = 60.700 +casabiome % ftransNPtoL ( 9, 1 ) = 0.500 +casabiome % ftransNPtoL ( 9, 2 ) = 0.950 +casabiome % ftransNPtoL ( 9, 3 ) = 0.900 +casabiome % fracligninplant ( 9, 1 ) = 0.100 +casabiome % fracligninplant ( 9, 2 ) = 0.400 +casabiome % fracligninplant ( 9, 3 ) = 0.100 +ratioCNsoil ( 9, 1 ) = 8.000 +ratioCNsoil ( 9, 2 ) = 13.200 +ratioCNsoil ( 9, 3 ) = 13.200 +ratioCNsoilmin ( 9, 1 ) = 3.000 +ratioCNsoilmin ( 9, 2 ) = 12.000 +ratioCNsoilmin ( 9, 3 ) = 7.000 +ratioCNsoilmax ( 9, 1 ) = 15.000 +ratioCNsoilmax ( 9, 2 ) = 30.000 +ratioCNsoilmax ( 9, 3 ) = 15.000 +casabiome % glaimax ( 9 ) = 6.000 +casabiome % glaimin ( 9 ) = 0.100 + +ratioCNplant ( 10, 1 ) = 25.000 +ratioCNplant ( 10, 2 ) = 125.000 +ratioCNplant ( 10, 3 ) = 71.000 +casabiome % ftransNPtoL ( 10, 1 ) = 0.500 +casabiome % ftransNPtoL ( 10, 2 ) = 0.950 +casabiome % ftransNPtoL ( 10, 3 ) = 0.900 +casabiome % fracligninplant ( 10, 1 ) = 0.100 +casabiome % fracligninplant ( 10, 2 ) = 0.400 +casabiome % fracligninplant ( 10, 3 ) = 0.100 +ratioCNsoil ( 10, 1 ) = 8.000 +ratioCNsoil ( 10, 2 ) = 13.200 +ratioCNsoil ( 10, 3 ) = 13.200 +ratioCNsoilmin ( 10, 1 ) = 3.000 +ratioCNsoilmin ( 10, 2 ) = 12.000 +ratioCNsoilmin ( 10, 3 ) = 7.000 +ratioCNsoilmax ( 10, 1 ) = 15.000 +ratioCNsoilmax ( 10, 2 ) = 30.000 +ratioCNsoilmax ( 10, 3 ) = 15.000 +casabiome % glaimax ( 10 ) = 6.000 +casabiome % glaimin ( 10 ) = 0.100 + +ratioCNplant ( 11, 1 ) = 30.000 +ratioCNplant ( 11, 2 ) = 150.000 +ratioCNplant ( 11, 3 ) = 71.000 +casabiome % ftransNPtoL ( 11, 1 ) = 0.500 +casabiome % ftransNPtoL ( 11, 2 ) = 0.950 +casabiome % ftransNPtoL ( 11, 3 ) = 0.900 +casabiome % fracligninplant ( 11, 1 ) = 0.150 +casabiome % fracligninplant ( 11, 2 ) = 0.400 +casabiome % fracligninplant ( 11, 3 ) = 0.150 +ratioCNsoil ( 11, 1 ) = 8.000 +ratioCNsoil ( 11, 2 ) = 13.100 +ratioCNsoil ( 11, 3 ) = 13.100 +ratioCNsoilmin ( 11, 1 ) = 3.000 +ratioCNsoilmin ( 11, 2 ) = 12.000 +ratioCNsoilmin ( 11, 3 ) = 7.000 +ratioCNsoilmax ( 11, 1 ) = 15.000 +ratioCNsoilmax ( 11, 2 ) = 30.000 +ratioCNsoilmax ( 11, 3 ) = 15.000 +casabiome % glaimax ( 11 ) = 5.000 +casabiome % glaimin ( 11 ) = 0.050 + +ratioCNplant ( 12, 1 ) = 30.000 +ratioCNplant ( 12, 2 ) = 150.000 +ratioCNplant ( 12, 3 ) = 71.000 +casabiome % ftransNPtoL ( 12, 1 ) = 0.500 +casabiome % ftransNPtoL ( 12, 2 ) = 0.950 +casabiome % ftransNPtoL ( 12, 3 ) = 0.900 +casabiome % fracligninplant ( 12, 1 ) = 0.150 +casabiome % fracligninplant ( 12, 2 ) = 0.400 +casabiome % fracligninplant ( 12, 3 ) = 0.150 +ratioCNsoil ( 12, 1 ) = 8.000 +ratioCNsoil ( 12, 2 ) = 13.100 +ratioCNsoil ( 12, 3 ) = 13.100 +ratioCNsoilmin ( 12, 1 ) = 3.000 +ratioCNsoilmin ( 12, 2 ) = 12.000 +ratioCNsoilmin ( 12, 3 ) = 7.000 +ratioCNsoilmax ( 12, 1 ) = 15.000 +ratioCNsoilmax ( 12, 2 ) = 30.000 +ratioCNsoilmax ( 12, 3 ) = 15.000 +casabiome % glaimax ( 12 ) = 5.000 +casabiome % glaimin ( 12 ) = 0.050 + +ratioCNplant ( 13, 1 ) = 30.000 +ratioCNplant ( 13, 2 ) = 150.000 +ratioCNplant ( 13, 3 ) = 71.000 +casabiome % ftransNPtoL ( 13, 1 ) = 0.500 +casabiome % ftransNPtoL ( 13, 2 ) = 0.950 +casabiome % ftransNPtoL ( 13, 3 ) = 0.900 +casabiome % fracligninplant ( 13, 1 ) = 0.150 +casabiome % fracligninplant ( 13, 2 ) = 0.400 +casabiome % fracligninplant ( 13, 3 ) = 0.150 +ratioCNsoil ( 13, 1 ) = 8.000 +ratioCNsoil ( 13, 2 ) = 13.100 +ratioCNsoil ( 13, 3 ) = 13.100 +ratioCNsoilmin ( 13, 1 ) = 3.000 +ratioCNsoilmin ( 13, 2 ) = 12.000 +ratioCNsoilmin ( 13, 3 ) = 7.000 +ratioCNsoilmax ( 13, 1 ) = 15.000 +ratioCNsoilmax ( 13, 2 ) = 30.000 +ratioCNsoilmax ( 13, 3 ) = 15.000 +casabiome % glaimax ( 13 ) = 5.000 +casabiome % glaimin ( 13 ) = 0.050 + +ratioCNplant ( 14, 1 ) = 50.000 +ratioCNplant ( 14, 2 ) = 150.000 +ratioCNplant ( 14, 3 ) = 71.000 +casabiome % ftransNPtoL ( 14, 1 ) = 0.500 +casabiome % ftransNPtoL ( 14, 2 ) = 0.950 +casabiome % ftransNPtoL ( 14, 3 ) = 0.900 +casabiome % fracligninplant ( 14, 1 ) = 0.150 +casabiome % fracligninplant ( 14, 2 ) = 0.400 +casabiome % fracligninplant ( 14, 3 ) = 0.150 +ratioCNsoil ( 14, 1 ) = 8.000 +ratioCNsoil ( 14, 2 ) = 26.800 +ratioCNsoil ( 14, 3 ) = 26.800 +ratioCNsoilmin ( 14, 1 ) = 3.000 +ratioCNsoilmin ( 14, 2 ) = 12.000 +ratioCNsoilmin ( 14, 3 ) = 7.000 +ratioCNsoilmax ( 14, 1 ) = 15.000 +ratioCNsoilmax ( 14, 2 ) = 30.000 +ratioCNsoilmax ( 14, 3 ) = 15.000 +casabiome % glaimax ( 14 ) = 1.000 +casabiome % glaimin ( 14 ) = 0.050 + +ratioCNplant ( 15, 1 ) = 40.000 +ratioCNplant ( 15, 2 ) = 150.000 +ratioCNplant ( 15, 3 ) = 71.000 +casabiome % ftransNPtoL ( 15, 1 ) = 0.500 +casabiome % ftransNPtoL ( 15, 2 ) = 0.950 +casabiome % ftransNPtoL ( 15, 3 ) = 0.900 +casabiome % fracligninplant ( 15, 1 ) = 0.150 +casabiome % fracligninplant ( 15, 2 ) = 0.400 +casabiome % fracligninplant ( 15, 3 ) = 0.150 +ratioCNsoil ( 15, 1 ) = 8.000 +ratioCNsoil ( 15, 2 ) = 20.000 +ratioCNsoil ( 15, 3 ) = 20.000 +ratioCNsoilmin ( 15, 1 ) = 3.000 +ratioCNsoilmin ( 15, 2 ) = 12.000 +ratioCNsoilmin ( 15, 3 ) = 7.000 +ratioCNsoilmax ( 15, 1 ) = 15.000 +ratioCNsoilmax ( 15, 2 ) = 30.000 +ratioCNsoilmax ( 15, 3 ) = 15.000 +casabiome % glaimax ( 15 ) = 6.000 +casabiome % glaimin ( 15 ) = 0.050 + +ratioCNplant ( 16, 1 ) = 40.000 +ratioCNplant ( 16, 2 ) = 135.000 +ratioCNplant ( 16, 3 ) = 71.000 +casabiome % ftransNPtoL ( 16, 1 ) = 0.500 +casabiome % ftransNPtoL ( 16, 2 ) = 0.950 +casabiome % ftransNPtoL ( 16, 3 ) = 0.900 +casabiome % fracligninplant ( 16, 1 ) = 0.250 +casabiome % fracligninplant ( 16, 2 ) = 0.400 +casabiome % fracligninplant ( 16, 3 ) = 0.250 +ratioCNsoil ( 16, 1 ) = 8.000 +ratioCNsoil ( 16, 2 ) = 20.000 +ratioCNsoil ( 16, 3 ) = 20.000 +ratioCNsoilmin ( 16, 1 ) = 3.000 +ratioCNsoilmin ( 16, 2 ) = 12.000 +ratioCNsoilmin ( 16, 3 ) = 7.000 +ratioCNsoilmax ( 16, 1 ) = 15.000 +ratioCNsoilmax ( 16, 2 ) = 30.000 +ratioCNsoilmax ( 16, 3 ) = 15.000 +casabiome % glaimax ( 16 ) = 1.000 +casabiome % glaimin ( 16 ) = 0.050 + +ratioCNplant ( 17, 1 ) = 40.000 +ratioCNplant ( 17, 2 ) = 150.000 +ratioCNplant ( 17, 3 ) = 71.000 +casabiome % ftransNPtoL ( 17, 1 ) = 0.500 +casabiome % ftransNPtoL ( 17, 2 ) = 0.950 +casabiome % ftransNPtoL ( 17, 3 ) = 0.900 +casabiome % fracligninplant ( 17, 1 ) = 0.100 +casabiome % fracligninplant ( 17, 2 ) = 0.400 +casabiome % fracligninplant ( 17, 3 ) = 0.100 +ratioCNsoil ( 17, 1 ) = 8.000 +ratioCNsoil ( 17, 2 ) = 20.000 +ratioCNsoil ( 17, 3 ) = 20.000 +ratioCNsoilmin ( 17, 1 ) = 3.000 +ratioCNsoilmin ( 17, 2 ) = 12.000 +ratioCNsoilmin ( 17, 3 ) = 7.000 +ratioCNsoilmax ( 17, 1 ) = 15.000 +ratioCNsoilmax ( 17, 2 ) = 30.000 +ratioCNsoilmax ( 17, 3 ) = 15.000 +casabiome % glaimax ( 17 ) = 0.000 +casabiome % glaimin ( 17 ) = 0.000 + + ! Tranche 3 + !=============================================================== +cleaf ( 1 ) = 5.500 +cwood ( 1 ) = 5.500 +cfroot ( 1 ) = 5.500 +cmet ( 1 ) = 5.500 +cstr ( 1 ) = 5.500 +ccwd ( 1 ) = 5.500 +cmic ( 1 ) = 5.500 +cslow ( 1 ) = 5.500 +cpass ( 1 ) = 5.500 + +cleaf ( 2 ) = 3.900 +cwood ( 2 ) = 3.900 +cfroot ( 2 ) = 3.900 +cmet ( 2 ) = 3.900 +cstr ( 2 ) = 3.900 +ccwd ( 2 ) = 3.900 +cmic ( 2 ) = 3.900 +cslow ( 2 ) = 3.900 +cpass ( 2 ) = 3.900 + +cleaf ( 3 ) = 5.500 +cwood ( 3 ) = 5.500 +cfroot ( 3 ) = 5.500 +cmet ( 3 ) = 5.500 +cstr ( 3 ) = 5.500 +ccwd ( 3 ) = 5.500 +cmic ( 3 ) = 5.500 +cslow ( 3 ) = 5.500 +cpass ( 3 ) = 5.500 + +cleaf ( 4 ) = 3.900 +cwood ( 4 ) = 3.900 +cfroot ( 4 ) = 3.900 +cmet ( 4 ) = 3.900 +cstr ( 4 ) = 3.900 +ccwd ( 4 ) = 3.900 +cmic ( 4 ) = 3.900 +cslow ( 4 ) = 3.900 +cpass ( 4 ) = 3.900 + +cleaf ( 5 ) = 2.000 +cwood ( 5 ) = 2.000 +cfroot ( 5 ) = 2.000 +cmet ( 5 ) = 2.000 +cstr ( 5 ) = 2.000 +ccwd ( 5 ) = 2.000 +cmic ( 5 ) = 2.000 +cslow ( 5 ) = 2.000 +cpass ( 5 ) = 2.000 + +cleaf ( 6 ) = 5.500 +cwood ( 6 ) = 5.500 +cfroot ( 6 ) = 5.500 +cmet ( 6 ) = 5.500 +cstr ( 6 ) = 5.500 +ccwd ( 6 ) = 5.500 +cmic ( 6 ) = 5.500 +cslow ( 6 ) = 5.500 +cpass ( 6 ) = 5.500 + +cleaf ( 7 ) = 5.500 +cwood ( 7 ) = 5.500 +cfroot ( 7 ) = 5.500 +cmet ( 7 ) = 5.500 +cstr ( 7 ) = 5.500 +ccwd ( 7 ) = 5.500 +cmic ( 7 ) = 5.500 +cslow ( 7 ) = 5.500 +cpass ( 7 ) = 5.500 + +cleaf ( 8 ) = 5.500 +cwood ( 8 ) = 5.500 +cfroot ( 8 ) = 5.500 +cmet ( 8 ) = 5.500 +cstr ( 8 ) = 5.500 +ccwd ( 8 ) = 5.500 +cmic ( 8 ) = 5.500 +cslow ( 8 ) = 5.500 +cpass ( 8 ) = 5.500 + +cleaf ( 9 ) = 5.500 +cwood ( 9 ) = 5.500 +cfroot ( 9 ) = 5.500 +cmet ( 9 ) = 5.500 +cstr ( 9 ) = 5.500 +ccwd ( 9 ) = 5.500 +cmic ( 9 ) = 5.500 +cslow ( 9 ) = 5.500 +cpass ( 9 ) = 5.500 + +cleaf ( 10 ) = 5.500 +cwood ( 10 ) = 5.500 +cfroot ( 10 ) = 5.500 +cmet ( 10 ) = 5.500 +cstr ( 10 ) = 5.500 +ccwd ( 10 ) = 5.500 +cmic ( 10 ) = 5.500 +cslow ( 10 ) = 5.500 +cpass ( 10 ) = 5.500 + +cleaf ( 11 ) = 5.500 +cwood ( 11 ) = 5.500 +cfroot ( 11 ) = 5.500 +cmet ( 11 ) = 5.500 +cstr ( 11 ) = 5.500 +ccwd ( 11 ) = 5.500 +cmic ( 11 ) = 5.500 +cslow ( 11 ) = 5.500 +cpass ( 11 ) = 5.500 + +cleaf ( 12 ) = 5.500 +cwood ( 12 ) = 5.500 +cfroot ( 12 ) = 5.500 +cmet ( 12 ) = 5.500 +cstr ( 12 ) = 5.500 +ccwd ( 12 ) = 5.500 +cmic ( 12 ) = 5.500 +cslow ( 12 ) = 5.500 +cpass ( 12 ) = 5.500 + +cleaf ( 13 ) = 5.500 +cwood ( 13 ) = 5.500 +cfroot ( 13 ) = 5.500 +cmet ( 13 ) = 5.500 +cstr ( 13 ) = 5.500 +ccwd ( 13 ) = 5.500 +cmic ( 13 ) = 5.500 +cslow ( 13 ) = 5.500 +cpass ( 13 ) = 5.500 + +cleaf ( 14 ) = 2.000 +cwood ( 14 ) = 2.000 +cfroot ( 14 ) = 2.000 +cmet ( 14 ) = 2.000 +cstr ( 14 ) = 2.000 +ccwd ( 14 ) = 2.000 +cmic ( 14 ) = 2.000 +cslow ( 14 ) = 2.000 +cpass ( 14 ) = 2.000 + +cleaf ( 15 ) = 2.000 +cwood ( 15 ) = 2.000 +cfroot ( 15 ) = 2.000 +cmet ( 15 ) = 2.000 +cstr ( 15 ) = 2.000 +ccwd ( 15 ) = 2.000 +cmic ( 15 ) = 2.000 +cslow ( 15 ) = 2.000 +cpass ( 15 ) = 2.000 + +cleaf ( 16 ) = 5.500 +cwood ( 16 ) = 5.500 +cfroot ( 16 ) = 5.500 +cmet ( 16 ) = 5.500 +cstr ( 16 ) = 5.500 +ccwd ( 16 ) = 5.500 +cmic ( 16 ) = 5.500 +cslow ( 16 ) = 5.500 +cpass ( 16 ) = 5.500 + +cleaf ( 17 ) = 5.500 +cwood ( 17 ) = 5.500 +cfroot ( 17 ) = 5.500 +cmet ( 17 ) = 5.500 +cstr ( 17 ) = 5.500 +ccwd ( 17 ) = 5.500 +cmic ( 17 ) = 5.500 +cslow ( 17 ) = 5.500 +cpass ( 17 ) = 5.500 + + ! Tranche 4 + !=============================================================== +phen%TKshed ( 1 ) = 268.000 +xxkleafcoldmax ( 1 ) = 0.200 +casabiome%xkleafcoldexp ( 1 ) = 3.000 +xxkleafdrymax ( 1 ) = 0.100 +casabiome%xkleafdryexp ( 1 ) = 3.000 + +phen%TKshed ( 2 ) = 260.000 +xxkleafcoldmax ( 2 ) = 0.100 +casabiome%xkleafcoldexp ( 2 ) = 3.000 +xxkleafdrymax ( 2 ) = 0.100 +casabiome%xkleafdryexp ( 2 ) = 3.000 + +phen%TKshed ( 3 ) = 263.150 +xxkleafcoldmax ( 3 ) = 0.100 +casabiome%xkleafcoldexp ( 3 ) = 3.000 +xxkleafdrymax ( 3 ) = 0.100 +casabiome%xkleafdryexp ( 3 ) = 3.000 + +phen%TKshed ( 4 ) = 268.150 +xxkleafcoldmax ( 4 ) = 0.600 +casabiome%xkleafcoldexp ( 4 ) = 3.000 +xxkleafdrymax ( 4 ) = 1.000 +casabiome%xkleafdryexp ( 4 ) = 3.000 + +phen%TKshed ( 5 ) = 277.150 +xxkleafcoldmax ( 5 ) = 1.000 +casabiome%xkleafcoldexp ( 5 ) = 3.000 +xxkleafdrymax ( 5 ) = 0.100 +casabiome%xkleafdryexp ( 5 ) = 3.000 + +phen%TKshed ( 6 ) = 275.150 +xxkleafcoldmax ( 6 ) = 0.200 +casabiome%xkleafcoldexp ( 6 ) = 3.000 +xxkleafdrymax ( 6 ) = 0.100 +casabiome%xkleafdryexp ( 6 ) = 3.000 + +phen%TKshed ( 7 ) = 275.150 +xxkleafcoldmax ( 7 ) = 0.200 +casabiome%xkleafcoldexp ( 7 ) = 3.000 +xxkleafdrymax ( 7 ) = 0.100 +casabiome%xkleafdryexp ( 7 ) = 3.000 + +phen%TKshed ( 8 ) = 275.150 +xxkleafcoldmax ( 8 ) = 0.200 +casabiome%xkleafcoldexp ( 8 ) = 3.000 +xxkleafdrymax ( 8 ) = 0.100 +casabiome%xkleafdryexp ( 8 ) = 3.000 + +phen%TKshed ( 9 ) = 278.150 +xxkleafcoldmax ( 9 ) = 0.300 +casabiome%xkleafcoldexp ( 9 ) = 3.000 +xxkleafdrymax ( 9 ) = 0.100 +casabiome%xkleafdryexp ( 9 ) = 3.000 + +phen%TKshed ( 10 ) = 278.150 +xxkleafcoldmax ( 10 ) = 0.300 +casabiome%xkleafcoldexp ( 10 ) = 3.000 +xxkleafdrymax ( 10 ) = 0.100 +casabiome%xkleafdryexp ( 10 ) = 3.000 + +phen%TKshed ( 11 ) = 277.150 +xxkleafcoldmax ( 11 ) = 0.100 +casabiome%xkleafcoldexp ( 11 ) = 3.000 +xxkleafdrymax ( 11 ) = 0.100 +casabiome%xkleafdryexp ( 11 ) = 3.000 + +phen%TKshed ( 12 ) = 277.150 +xxkleafcoldmax ( 12 ) = 0.100 +casabiome%xkleafcoldexp ( 12 ) = 3.000 +xxkleafdrymax ( 12 ) = 0.100 +casabiome%xkleafdryexp ( 12 ) = 3.000 + +phen%TKshed ( 13 ) = 277.150 +xxkleafcoldmax ( 13 ) = 0.100 +casabiome%xkleafcoldexp ( 13 ) = 3.000 +xxkleafdrymax ( 13 ) = 0.100 +casabiome%xkleafdryexp ( 13 ) = 3.000 + +phen%TKshed ( 14 ) = 277.150 +xxkleafcoldmax ( 14 ) = 0.100 +casabiome%xkleafcoldexp ( 14 ) = 3.000 +xxkleafdrymax ( 14 ) = 0.100 +casabiome%xkleafdryexp ( 14 ) = 3.000 + +phen%TKshed ( 15 ) = 277.150 +xxkleafcoldmax ( 15 ) = 0.100 +casabiome%xkleafcoldexp ( 15 ) = 3.000 +xxkleafdrymax ( 15 ) = 0.100 +casabiome%xkleafdryexp ( 15 ) = 3.000 + +phen%TKshed ( 16 ) = 277.150 +xxkleafcoldmax ( 16 ) = 0.100 +casabiome%xkleafcoldexp ( 16 ) = 3.000 +xxkleafdrymax ( 16 ) = 0.100 +casabiome%xkleafdryexp ( 16 ) = 3.000 + +phen%TKshed ( 17 ) = 283.150 +xxkleafcoldmax ( 17 ) = 0.100 +casabiome%xkleafcoldexp ( 17 ) = 3.000 +xxkleafdrymax ( 17 ) = 0.100 +casabiome%xkleafdryexp ( 17 ) = 3.000 + + ! Tranche 5 gets skipped + !=============================================================== + + ! Tranche 6 + !=============================================================== +casabiome%ratioNCplantmin ( 1, 1 ) = 0.020 +casabiome%ratioNCplantmax ( 1, 1 ) = 0.024 +casabiome%ratioNCplantmin ( 1, 2 ) = 0.004 +casabiome%ratioNCplantmax ( 1, 2 ) = 0.005 +casabiome%ratioNCplantmin ( 1, 3 ) = 0.013 +casabiome%ratioNCplantmax ( 1, 3 ) = 0.015 +xfNminloss ( 1 ) = 0.050 +xfNminleach ( 1 ) = 0.050 +xnfixrate ( 1 ) = 0.080 + +casabiome%ratioNCplantmin ( 2, 1 ) = 0.040 +casabiome%ratioNCplantmax ( 2, 1 ) = 0.048 +casabiome%ratioNCplantmin ( 2, 2 ) = 0.007 +casabiome%ratioNCplantmax ( 2, 2 ) = 0.008 +casabiome%ratioNCplantmin ( 2, 3 ) = 0.015 +casabiome%ratioNCplantmax ( 2, 3 ) = 0.018 +xfNminloss ( 2 ) = 0.050 +xfNminleach ( 2 ) = 0.050 +xnfixrate ( 2 ) = 2.600 + +casabiome%ratioNCplantmin ( 3, 1 ) = 0.017 +casabiome%ratioNCplantmax ( 3, 1 ) = 0.020 +casabiome%ratioNCplantmin ( 3, 2 ) = 0.004 +casabiome%ratioNCplantmax ( 3, 2 ) = 0.005 +casabiome%ratioNCplantmin ( 3, 3 ) = 0.013 +casabiome%ratioNCplantmax ( 3, 3 ) = 0.015 +xfNminloss ( 3 ) = 0.050 +xfNminleach ( 3 ) = 0.050 +xnfixrate ( 3 ) = 0.210 + +casabiome%ratioNCplantmin ( 4, 1 ) = 0.029 +casabiome%ratioNCplantmax ( 4, 1 ) = 0.034 +casabiome%ratioNCplantmin ( 4, 2 ) = 0.006 +casabiome%ratioNCplantmax ( 4, 2 ) = 0.007 +casabiome%ratioNCplantmin ( 4, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 4, 3 ) = 0.017 +xfNminloss ( 4 ) = 0.050 +xfNminleach ( 4 ) = 0.050 +xnfixrate ( 4 ) = 1.640 + +casabiome%ratioNCplantmin ( 5, 1 ) = 0.025 +casabiome%ratioNCplantmax ( 5, 1 ) = 0.030 +casabiome%ratioNCplantmin ( 5, 2 ) = 0.007 +casabiome%ratioNCplantmax ( 5, 2 ) = 0.008 +casabiome%ratioNCplantmin ( 5, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 5, 3 ) = 0.017 +xfNminloss ( 5 ) = 0.050 +xfNminleach ( 5 ) = 0.050 +xnfixrate ( 5 ) = 0.370 + +casabiome%ratioNCplantmin ( 6, 1 ) = 0.026 +casabiome%ratioNCplantmax ( 6, 1 ) = 0.032 +casabiome%ratioNCplantmin ( 6, 2 ) = 0.007 +casabiome%ratioNCplantmax ( 6, 2 ) = 0.008 +casabiome%ratioNCplantmin ( 6, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 6, 3 ) = 0.017 +xfNminloss ( 6 ) = 0.050 +xfNminleach ( 6 ) = 0.050 +xnfixrate ( 6 ) = 0.950 + +casabiome%ratioNCplantmin ( 7, 1 ) = 0.020 +casabiome%ratioNCplantmax ( 7, 1 ) = 0.024 +casabiome%ratioNCplantmin ( 7, 2 ) = 0.007 +casabiome%ratioNCplantmax ( 7, 2 ) = 0.008 +casabiome%ratioNCplantmin ( 7, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 7, 3 ) = 0.017 +xfNminloss ( 7 ) = 0.050 +xfNminleach ( 7 ) = 0.050 +xnfixrate ( 7 ) = 0.950 + +casabiome%ratioNCplantmin ( 8, 1 ) = 0.020 +casabiome%ratioNCplantmax ( 8, 1 ) = 0.024 +casabiome%ratioNCplantmin ( 8, 2 ) = 0.007 +casabiome%ratioNCplantmax ( 8, 2 ) = 0.008 +casabiome%ratioNCplantmin ( 8, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 8, 3 ) = 0.017 +xfNminloss ( 8 ) = 0.050 +xfNminleach ( 8 ) = 0.050 +xnfixrate ( 8 ) = 0.950 + +casabiome%ratioNCplantmin ( 9, 1 ) = 0.040 +casabiome%ratioNCplantmax ( 9, 1 ) = 0.048 +casabiome%ratioNCplantmin ( 9, 2 ) = 0.008 +casabiome%ratioNCplantmax ( 9, 2 ) = 0.010 +casabiome%ratioNCplantmin ( 9, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 9, 3 ) = 0.017 +xfNminloss ( 9 ) = 0.050 +xfNminleach ( 9 ) = 0.050 +xnfixrate ( 9 ) = 4.000 + +casabiome%ratioNCplantmin ( 10, 1 ) = 0.040 +casabiome%ratioNCplantmax ( 10, 1 ) = 0.048 +casabiome%ratioNCplantmin ( 10, 2 ) = 0.008 +casabiome%ratioNCplantmax ( 10, 2 ) = 0.010 +casabiome%ratioNCplantmin ( 10, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 10, 3 ) = 0.017 +xfNminloss ( 10 ) = 0.050 +xfNminleach ( 10 ) = 0.050 +xnfixrate ( 10 ) = 4.000 + +casabiome%ratioNCplantmin ( 11, 1 ) = 0.033 +casabiome%ratioNCplantmax ( 11, 1 ) = 0.040 +casabiome%ratioNCplantmin ( 11, 2 ) = 0.007 +casabiome%ratioNCplantmax ( 11, 2 ) = 0.008 +casabiome%ratioNCplantmin ( 11, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 11, 3 ) = 0.017 +xfNminloss ( 11 ) = 0.050 +xfNminleach ( 11 ) = 0.050 +xnfixrate ( 11 ) = 0.000 + +casabiome%ratioNCplantmin ( 12, 1 ) = 0.025 +casabiome%ratioNCplantmax ( 12, 1 ) = 0.030 +casabiome%ratioNCplantmin ( 12, 2 ) = 0.007 +casabiome%ratioNCplantmax ( 12, 2 ) = 0.008 +casabiome%ratioNCplantmin ( 12, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 12, 3 ) = 0.017 +xfNminloss ( 12 ) = 0.050 +xfNminleach ( 12 ) = 0.050 +xnfixrate ( 12 ) = 0.000 + +casabiome%ratioNCplantmin ( 13, 1 ) = 0.025 +casabiome%ratioNCplantmax ( 13, 1 ) = 0.030 +casabiome%ratioNCplantmin ( 13, 2 ) = 0.007 +casabiome%ratioNCplantmax ( 13, 2 ) = 0.008 +casabiome%ratioNCplantmin ( 13, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 13, 3 ) = 0.017 +xfNminloss ( 13 ) = 0.050 +xfNminleach ( 13 ) = 0.050 +xnfixrate ( 13 ) = 0.000 + +casabiome%ratioNCplantmin ( 14, 1 ) = 0.018 +casabiome%ratioNCplantmax ( 14, 1 ) = 0.022 +casabiome%ratioNCplantmin ( 14, 2 ) = 0.007 +casabiome%ratioNCplantmax ( 14, 2 ) = 0.008 +casabiome%ratioNCplantmin ( 14, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 14, 3 ) = 0.017 +xfNminloss ( 14 ) = 0.050 +xfNminleach ( 14 ) = 0.050 +xnfixrate ( 14 ) = 0.350 + +casabiome%ratioNCplantmin ( 15, 1 ) = 0.025 +casabiome%ratioNCplantmax ( 15, 1 ) = 0.030 +casabiome%ratioNCplantmin ( 15, 2 ) = 0.007 +casabiome%ratioNCplantmax ( 15, 2 ) = 0.008 +casabiome%ratioNCplantmin ( 15, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 15, 3 ) = 0.017 +xfNminloss ( 15 ) = 0.050 +xfNminleach ( 15 ) = 0.050 +xnfixrate ( 15 ) = 0.000 + +casabiome%ratioNCplantmin ( 16, 1 ) = 0.025 +casabiome%ratioNCplantmax ( 16, 1 ) = 0.030 +casabiome%ratioNCplantmin ( 16, 2 ) = 0.007 +casabiome%ratioNCplantmax ( 16, 2 ) = 0.009 +casabiome%ratioNCplantmin ( 16, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 16, 3 ) = 0.017 +xfNminloss ( 16 ) = 0.050 +xfNminleach ( 16 ) = 0.050 +xnfixrate ( 16 ) = 0.000 + +casabiome%ratioNCplantmin ( 17, 1 ) = 0.025 +casabiome%ratioNCplantmax ( 17, 1 ) = 0.030 +casabiome%ratioNCplantmin ( 17, 2 ) = 0.007 +casabiome%ratioNCplantmax ( 17, 2 ) = 0.008 +casabiome%ratioNCplantmin ( 17, 3 ) = 0.014 +casabiome%ratioNCplantmax ( 17, 3 ) = 0.017 +xfNminloss ( 17 ) = 0.050 +xfNminleach ( 17 ) = 0.050 +xnfixrate ( 17 ) = 0.000 + + ! Tranche 7 + !=============================================================== +Nleaf ( 1 ) = 7.541 +Nwood ( 1 ) = 31.462 +Nfroot ( 1 ) = 6.098 +Nmet ( 1 ) = 0.064 +Nstr ( 1 ) = 1.394 +Ncwd ( 1 ) = 2.424 +Nmic ( 1 ) = 52.866 +Nslow ( 1 ) = 919.729 +Npass ( 1 ) = 295.026 +xnsoilmin ( 1 ) = 1000.000 + +Nleaf ( 2 ) = 9.900 +Nwood ( 2 ) = 102.000 +Nfroot ( 2 ) = 38.000 +Nmet ( 2 ) = 0.744 +Nstr ( 2 ) = 2.892 +Ncwd ( 2 ) = 8.524 +Nmic ( 2 ) = 1.138 +Nslow ( 2 ) = 20.787 +Npass ( 2 ) = 880.121 +xnsoilmin ( 2 ) = 1000.000 + +Nleaf ( 3 ) = 1.610 +Nwood ( 3 ) = 22.734 +Nfroot ( 3 ) = 5.366 +Nmet ( 3 ) = 0.059 +Nstr ( 3 ) = 1.852 +Ncwd ( 3 ) = 3.107 +Nmic ( 3 ) = 59.708 +Nslow ( 3 ) = 1074.741 +Npass ( 3 ) = 338.787 +xnsoilmin ( 3 ) = 1000.000 + +Nleaf ( 4 ) = 3.757 +Nwood ( 4 ) = 80.250 +Nfroot ( 4 ) = 5.366 +Nmet ( 4 ) = 0.137 +Nstr ( 4 ) = 2.084 +Ncwd ( 4 ) = 6.582 +Nmic ( 4 ) = 40.556 +Nslow ( 4 ) = 743.550 +Npass ( 4 ) = 336.079 +xnsoilmin ( 4 ) = 1000.000 + +Nleaf ( 5 ) = 2.933 +Nwood ( 5 ) = 2.756 +Nfroot ( 5 ) = 3.415 +Nmet ( 5 ) = 0.054 +Nstr ( 5 ) = 0.263 +Ncwd ( 5 ) = 0.827 +Nmic ( 5 ) = 16.805 +Nslow ( 5 ) = 297.699 +Npass ( 5 ) = 92.432 +xnsoilmin ( 5 ) = 1000.000 + +Nleaf ( 6 ) = 4.572 +Nwood ( 6 ) = 0.000 +Nfroot ( 6 ) = 6.415 +Nmet ( 6 ) = 0.476 +Nstr ( 6 ) = 0.339 +Ncwd ( 6 ) = 0.000 +Nmic ( 6 ) = 42.564 +Nslow ( 6 ) = 379.629 +Npass ( 6 ) = 278.661 +xnsoilmin ( 6 ) = 1000.000 + +Nleaf ( 7 ) = 4.572 +Nwood ( 7 ) = 0.000 +Nfroot ( 7 ) = 6.415 +Nmet ( 7 ) = 0.476 +Nstr ( 7 ) = 0.339 +Ncwd ( 7 ) = 0.000 +Nmic ( 7 ) = 42.564 +Nslow ( 7 ) = 379.629 +Npass ( 7 ) = 278.661 +xnsoilmin ( 7 ) = 1000.000 + +Nleaf ( 8 ) = 4.572 +Nwood ( 8 ) = 0.000 +Nfroot ( 8 ) = 6.415 +Nmet ( 8 ) = 0.476 +Nstr ( 8 ) = 0.339 +Ncwd ( 8 ) = 0.000 +Nmic ( 8 ) = 42.564 +Nslow ( 8 ) = 379.629 +Npass ( 8 ) = 278.661 +xnsoilmin ( 8 ) = 1000.000 + +Nleaf ( 9 ) = 5.333 +Nwood ( 9 ) = 0.000 +Nfroot ( 9 ) = 5.854 +Nmet ( 9 ) = 0.476 +Nstr ( 9 ) = 0.339 +Ncwd ( 9 ) = 0.000 +Nmic ( 9 ) = 51.242 +Nslow ( 9 ) = 457.029 +Npass ( 9 ) = 335.476 +xnsoilmin ( 9 ) = 1000.000 + +Nleaf ( 10 ) = 5.333 +Nwood ( 10 ) = 0.000 +Nfroot ( 10 ) = 5.854 +Nmet ( 10 ) = 0.476 +Nstr ( 10 ) = 0.339 +Ncwd ( 10 ) = 0.000 +Nmic ( 10 ) = 51.242 +Nslow ( 10 ) = 457.029 +Npass ( 10 ) = 335.476 +xnsoilmin ( 10 ) = 1000.000 + +Nleaf ( 11 ) = 0.000 +Nwood ( 11 ) = 0.000 +Nfroot ( 11 ) = 0.000 +Nmet ( 11 ) = 0.000 +Nstr ( 11 ) = 0.000 +Ncwd ( 11 ) = 0.000 +Nmic ( 11 ) = 0.000 +Nslow ( 11 ) = 0.000 +Npass ( 11 ) = 0.000 +xnsoilmin ( 11 ) = 1000.000 + +Nleaf ( 12 ) = 0.000 +Nwood ( 12 ) = 0.000 +Nfroot ( 12 ) = 0.000 +Nmet ( 12 ) = 0.000 +Nstr ( 12 ) = 0.000 +Ncwd ( 12 ) = 0.000 +Nmic ( 12 ) = 0.000 +Nslow ( 12 ) = 0.000 +Npass ( 12 ) = 0.000 +xnsoilmin ( 12 ) = 1000.000 + +Nleaf ( 13 ) = 0.000 +Nwood ( 13 ) = 0.000 +Nfroot ( 13 ) = 0.000 +Nmet ( 13 ) = 0.000 +Nstr ( 13 ) = 0.000 +Ncwd ( 13 ) = 0.000 +Nmic ( 13 ) = 0.000 +Nslow ( 13 ) = 0.000 +Npass ( 13 ) = 0.000 +xnsoilmin ( 13 ) = 1000.000 + +Nleaf ( 14 ) = 0.500 +Nwood ( 14 ) = 0.126 +Nfroot ( 14 ) = 1.537 +Nmet ( 14 ) = 0.018 +Nstr ( 14 ) = 0.033 +Ncwd ( 14 ) = 0.211 +Nmic ( 14 ) = 5.778 +Nslow ( 14 ) = 88.337 +Npass ( 14 ) = 34.478 +xnsoilmin ( 14 ) = 1000.000 + +Nleaf ( 15 ) = 0.000 +Nwood ( 15 ) = 0.000 +Nfroot ( 15 ) = 0.000 +Nmet ( 15 ) = 0.000 +Nstr ( 15 ) = 0.000 +Ncwd ( 15 ) = 0.000 +Nmic ( 15 ) = 0.000 +Nslow ( 15 ) = 0.000 +Npass ( 15 ) = 0.000 +xnsoilmin ( 15 ) = 1000.000 + +Nleaf ( 16 ) = 0.000 +Nwood ( 16 ) = 0.000 +Nfroot ( 16 ) = 0.000 +Nmet ( 16 ) = 0.000 +Nstr ( 16 ) = 0.000 +Ncwd ( 16 ) = 0.000 +Nmic ( 16 ) = 0.000 +Nslow ( 16 ) = 0.000 +Npass ( 16 ) = 0.000 +xnsoilmin ( 16 ) = 1000.000 + +Nleaf ( 17 ) = 0.000 +Nwood ( 17 ) = 0.000 +Nfroot ( 17 ) = 0.000 +Nmet ( 17 ) = 0.000 +Nstr ( 17 ) = 0.000 +Ncwd ( 17 ) = 0.000 +Nmic ( 17 ) = 0.000 +Nslow ( 17 ) = 0.000 +Npass ( 17 ) = 0.000 +xnsoilmin ( 17 ) = 1000.000 + + ! Tranche 8 + !=============================================================== +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 1, 1 ) = 0.500 +casabiome%ftransPPtoL ( 1, 2 ) = 0.950 +casabiome%ftransPPtoL ( 1, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 2, 1 ) = 0.500 +casabiome%ftransPPtoL ( 2, 2 ) = 0.950 +casabiome%ftransPPtoL ( 2, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 3, 1 ) = 0.500 +casabiome%ftransPPtoL ( 3, 2 ) = 0.950 +casabiome%ftransPPtoL ( 3, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 4, 1 ) = 0.500 +casabiome%ftransPPtoL ( 4, 2 ) = 0.950 +casabiome%ftransPPtoL ( 4, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 5, 1 ) = 0.500 +casabiome%ftransPPtoL ( 5, 2 ) = 0.950 +casabiome%ftransPPtoL ( 5, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 6, 1 ) = 0.500 +casabiome%ftransPPtoL ( 6, 2 ) = 0.950 +casabiome%ftransPPtoL ( 6, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 7, 1 ) = 0.500 +casabiome%ftransPPtoL ( 7, 2 ) = 0.950 +casabiome%ftransPPtoL ( 7, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 8, 1 ) = 0.500 +casabiome%ftransPPtoL ( 8, 2 ) = 0.950 +casabiome%ftransPPtoL ( 8, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 9, 1 ) = 0.500 +casabiome%ftransPPtoL ( 9, 2 ) = 0.950 +casabiome%ftransPPtoL ( 9, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 10, 1 ) = 0.500 +casabiome%ftransPPtoL ( 10, 2 ) = 0.950 +casabiome%ftransPPtoL ( 10, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 11, 1 ) = 0.500 +casabiome%ftransPPtoL ( 11, 2 ) = 0.950 +casabiome%ftransPPtoL ( 11, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 12, 1 ) = 0.500 +casabiome%ftransPPtoL ( 12, 2 ) = 0.950 +casabiome%ftransPPtoL ( 12, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 13, 1 ) = 0.500 +casabiome%ftransPPtoL ( 13, 2 ) = 0.950 +casabiome%ftransPPtoL ( 13, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 14, 1 ) = 0.500 +casabiome%ftransPPtoL ( 14, 2 ) = 0.950 +casabiome%ftransPPtoL ( 14, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 15, 1 ) = 0.500 +casabiome%ftransPPtoL ( 15, 2 ) = 0.950 +casabiome%ftransPPtoL ( 15, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 16, 1 ) = 0.500 +casabiome%ftransPPtoL ( 16, 2 ) = 0.950 +casabiome%ftransPPtoL ( 16, 3 ) = 0.900 + +xratioNPleafmin = 10.000 +xratioNPleafmax = 10.000 +xratioNPwoodmin = 15.000 +xratioNPwoodmax = 15.000 +xratioNPfrootmin = 15.000 +xratioNPfrootmax = 15.000 +casabiome%ftransPPtoL ( 17, 1 ) = 0.500 +casabiome%ftransPPtoL ( 17, 2 ) = 0.950 +casabiome%ftransPPtoL ( 17, 3 ) = 0.900 + + ! Tranche 9 + !=============================================================== +xkmlabp ( 1 ) = 74.541 +xpsorbmax ( 1 ) = 745.408 +xfPleach ( 1 ) = 0.001 +ratioNPsoil ( 1, 1 ) = 4.000 +ratioNPsoil ( 1, 2 ) = 5.000 +ratioNPsoil ( 1, 3 ) = 5.000 +xxkplab ( 1 ) = 0.001 +xxkpsorb ( 1 ) = 0.000 +xxkpocc ( 1 ) = 0.000 + +xkmlabp ( 2 ) = 68.158 +xpsorbmax ( 2 ) = 788.082 +xfPleach ( 2 ) = 0.001 +ratioNPsoil ( 2, 1 ) = 4.000 +ratioNPsoil ( 2, 2 ) = 5.000 +ratioNPsoil ( 2, 3 ) = 5.000 +xxkplab ( 2 ) = 0.001 +xxkpsorb ( 2 ) = 0.000 +xxkpocc ( 2 ) = 0.000 + +xkmlabp ( 3 ) = 77.952 +xpsorbmax ( 3 ) = 1110.816 +xfPleach ( 3 ) = 0.001 +ratioNPsoil ( 3, 1 ) = 4.000 +ratioNPsoil ( 3, 2 ) = 5.000 +ratioNPsoil ( 3, 3 ) = 5.000 +xxkplab ( 3 ) = 0.001 +xxkpsorb ( 3 ) = 0.000 +xxkpocc ( 3 ) = 0.000 + +xkmlabp ( 4 ) = 64.419 +xpsorbmax ( 4 ) = 744.847 +xfPleach ( 4 ) = 0.001 +ratioNPsoil ( 4, 1 ) = 4.000 +ratioNPsoil ( 4, 2 ) = 15.000 +ratioNPsoil ( 4, 3 ) = 15.000 +xxkplab ( 4 ) = 0.001 +xxkpsorb ( 4 ) = 0.000 +xxkpocc ( 4 ) = 0.000 + +xkmlabp ( 5 ) = 64.419 +xpsorbmax ( 5 ) = 744.847 +xfPleach ( 5 ) = 0.001 +ratioNPsoil ( 5, 1 ) = 4.000 +ratioNPsoil ( 5, 2 ) = 5.000 +ratioNPsoil ( 5, 3 ) = 5.000 +xxkplab ( 5 ) = 0.001 +xxkpsorb ( 5 ) = 0.000 +xxkpocc ( 5 ) = 0.000 + +xkmlabp ( 6 ) = 70.586 +xpsorbmax ( 6 ) = 816.146 +xfPleach ( 6 ) = 0.001 +ratioNPsoil ( 6, 1 ) = 4.000 +ratioNPsoil ( 6, 2 ) = 5.000 +ratioNPsoil ( 6, 3 ) = 5.000 +xxkplab ( 6 ) = 0.001 +xxkpsorb ( 6 ) = 0.000 +xxkpocc ( 6 ) = 0.000 + +xkmlabp ( 7 ) = 64.589 +xpsorbmax ( 7 ) = 746.808 +xfPleach ( 7 ) = 0.001 +ratioNPsoil ( 7, 1 ) = 4.000 +ratioNPsoil ( 7, 2 ) = 5.000 +ratioNPsoil ( 7, 3 ) = 5.000 +xxkplab ( 7 ) = 0.001 +xxkpsorb ( 7 ) = 0.000 +xxkpocc ( 7 ) = 0.000 + +xkmlabp ( 8 ) = 54.169 +xpsorbmax ( 8 ) = 722.256 +xfPleach ( 8 ) = 0.001 +ratioNPsoil ( 8, 1 ) = 4.000 +ratioNPsoil ( 8, 2 ) = 5.000 +ratioNPsoil ( 8, 3 ) = 5.000 +xxkplab ( 8 ) = 0.001 +xxkpsorb ( 8 ) = 0.000 +xxkpocc ( 8 ) = 0.000 + +xkmlabp ( 9 ) = 9.770 +xpsorbmax ( 9 ) = 293.112 +xfPleach ( 9 ) = 0.001 +ratioNPsoil ( 9, 1 ) = 4.000 +ratioNPsoil ( 9, 2 ) = 7.000 +ratioNPsoil ( 9, 3 ) = 7.000 +xxkplab ( 9 ) = 0.001 +xxkpsorb ( 9 ) = 0.000 +xxkpocc ( 9 ) = 0.000 + +xkmlabp ( 10 ) = 28.290 +xpsorbmax ( 10 ) = 311.190 +xfPleach ( 10 ) = 0.001 +ratioNPsoil ( 10, 1 ) = 4.000 +ratioNPsoil ( 10, 2 ) = 7.000 +ratioNPsoil ( 10, 3 ) = 7.000 +xxkplab ( 10 ) = 0.001 +xxkpsorb ( 10 ) = 0.000 +xxkpocc ( 10 ) = 0.000 + +xkmlabp ( 11 ) = 63.963 +xpsorbmax ( 11 ) = 373.118 +xfPleach ( 11 ) = 0.001 +ratioNPsoil ( 11, 1 ) = 4.000 +ratioNPsoil ( 11, 2 ) = 7.000 +ratioNPsoil ( 11, 3 ) = 7.000 +xxkplab ( 11 ) = 0.001 +xxkpsorb ( 11 ) = 0.000 +xxkpocc ( 11 ) = 0.000 + +xkmlabp ( 12 ) = 32.402 +xpsorbmax ( 12 ) = 615.638 +xfPleach ( 12 ) = 0.001 +ratioNPsoil ( 12, 1 ) = 4.000 +ratioNPsoil ( 12, 2 ) = 7.000 +ratioNPsoil ( 12, 3 ) = 7.000 +xxkplab ( 12 ) = 0.001 +xxkpsorb ( 12 ) = 0.000 +xxkpocc ( 12 ) = 0.000 + + ! Tranche 10 + !=============================================================== +xpleaf ( 1 ) = 0.192 +xpwood ( 1 ) = 0.954 +xpfroot ( 1 ) = 0.077 +xpmet ( 1 ) = 0.004 +xpstr ( 1 ) = 0.070 +xpcwd ( 1 ) = 0.101 +xpmic ( 1 ) = 6.873 +xpslow ( 1 ) = 119.565 +xppass ( 1 ) = 38.353 +xplab ( 1 ) = 26.737 +xpsorb ( 1 ) = 126.730 +xpocc ( 1 ) = 138.571 + +xpleaf ( 2 ) = 0.415 +xpwood ( 2 ) = 5.880 +xpfroot ( 2 ) = 1.950 +xpmet ( 2 ) = 0.030 +xpstr ( 2 ) = 0.145 +xpcwd ( 2 ) = 0.192 +xpmic ( 2 ) = 0.148 +xpslow ( 2 ) = 2.702 +xppass ( 2 ) = 114.416 +xplab ( 2 ) = 19.947 +xpsorb ( 2 ) = 92.263 +xpocc ( 2 ) = 120.374 + +xpleaf ( 3 ) = 0.116 +xpwood ( 3 ) = 0.644 +xpfroot ( 3 ) = 0.081 +xpmet ( 3 ) = 0.005 +xpstr ( 3 ) = 0.093 +xpcwd ( 3 ) = 0.129 +xpmic ( 3 ) = 7.762 +xpslow ( 3 ) = 139.716 +xppass ( 3 ) = 44.042 +xplab ( 3 ) = 29.107 +xpsorb ( 3 ) = 134.639 +xpocc ( 3 ) = 138.220 + +xpleaf ( 4 ) = 0.135 +xpwood ( 4 ) = 2.425 +xpfroot ( 4 ) = 0.141 +xpmet ( 4 ) = 0.007 +xpstr ( 4 ) = 0.104 +xpcwd ( 4 ) = 0.148 +xpmic ( 4 ) = 5.272 +xpslow ( 4 ) = 96.662 +xppass ( 4 ) = 43.690 +xplab ( 4 ) = 30.509 +xpsorb ( 4 ) = 132.012 +xpocc ( 4 ) = 148.083 + +xpleaf ( 5 ) = 0.023 +xpwood ( 5 ) = 0.000 +xpfroot ( 5 ) = 0.037 +xpmet ( 5 ) = 0.002 +xpstr ( 5 ) = 0.013 +xpcwd ( 5 ) = 0.019 +xpmic ( 5 ) = 2.185 +xpslow ( 5 ) = 38.701 +xppass ( 5 ) = 12.016 +xplab ( 5 ) = 23.206 +xpsorb ( 5 ) = 173.470 +xpocc ( 5 ) = 114.496 + +xpleaf ( 6 ) = 0.151 +xpwood ( 6 ) = 0.000 +xpfroot ( 6 ) = 0.151 +xpmet ( 6 ) = 0.019 +xpstr ( 6 ) = 0.017 +xpcwd ( 6 ) = 0.000 +xpmic ( 6 ) = 5.533 +xpslow ( 6 ) = 49.352 +xppass ( 6 ) = 36.226 +xplab ( 6 ) = 25.538 +xpsorb ( 6 ) = 186.207 +xpocc ( 6 ) = 145.163 + +xpleaf ( 7 ) = 0.151 +xpwood ( 7 ) = 0.000 +xpfroot ( 7 ) = 0.151 +xpmet ( 7 ) = 0.019 +xpstr ( 7 ) = 0.017 +xpcwd ( 7 ) = 0.000 +xpmic ( 7 ) = 5.533 +xpslow ( 7 ) = 49.352 +xppass ( 7 ) = 36.226 +xplab ( 7 ) = 25.538 +xpsorb ( 7 ) = 186.207 +xpocc ( 7 ) = 145.163 + +xpleaf ( 8 ) = 0.151 +xpwood ( 8 ) = 0.000 +xpfroot ( 8 ) = 0.151 +xpmet ( 8 ) = 0.019 +xpstr ( 8 ) = 0.017 +xpcwd ( 8 ) = 0.000 +xpmic ( 8 ) = 5.533 +xpslow ( 8 ) = 49.352 +xppass ( 8 ) = 36.226 +xplab ( 8 ) = 25.538 +xpsorb ( 8 ) = 186.207 +xpocc ( 8 ) = 145.163 + +xpleaf ( 9 ) = 0.151 +xpwood ( 9 ) = 0.000 +xpfroot ( 9 ) = 0.151 +xpmet ( 9 ) = 0.019 +xpstr ( 9 ) = 0.017 +xpcwd ( 9 ) = 0.000 +xpmic ( 9 ) = 6.662 +xpslow ( 9 ) = 59.414 +xppass ( 9 ) = 43.612 +xplab ( 9 ) = 27.729 +xpsorb ( 9 ) = 155.518 +xpocc ( 9 ) = 158.884 + +xpleaf ( 10 ) = 0.151 +xpwood ( 10 ) = 0.000 +xpfroot ( 10 ) = 0.151 +xpmet ( 10 ) = 0.019 +xpstr ( 10 ) = 0.017 +xpcwd ( 10 ) = 0.000 +xpmic ( 10 ) = 6.662 +xpslow ( 10 ) = 59.414 +xppass ( 10 ) = 43.612 +xplab ( 10 ) = 27.729 +xpsorb ( 10 ) = 155.518 +xpocc ( 10 ) = 158.884 + +xpleaf ( 11 ) = 0.000 +xpwood ( 11 ) = 0.000 +xpfroot ( 11 ) = 0.000 +xpmet ( 11 ) = 0.000 +xpstr ( 11 ) = 0.000 +xpcwd ( 11 ) = 0.000 +xpmic ( 11 ) = 0.000 +xpslow ( 11 ) = 0.000 +xppass ( 11 ) = 0.000 +xplab ( 11 ) = 0.000 +xpsorb ( 11 ) = 0.000 +xpocc ( 11 ) = 0.000 + +xpleaf ( 12 ) = 0.000 +xpwood ( 12 ) = 0.000 +xpfroot ( 12 ) = 0.000 +xpmet ( 12 ) = 0.000 +xpstr ( 12 ) = 0.000 +xpcwd ( 12 ) = 0.000 +xpmic ( 12 ) = 0.000 +xpslow ( 12 ) = 0.000 +xppass ( 12 ) = 0.000 +xplab ( 12 ) = 0.000 +xpsorb ( 12 ) = 0.000 +xpocc ( 12 ) = 0.000 + +xpleaf ( 13 ) = 0.000 +xpwood ( 13 ) = 0.000 +xpfroot ( 13 ) = 0.000 +xpmet ( 13 ) = 0.000 +xpstr ( 13 ) = 0.000 +xpcwd ( 13 ) = 0.000 +xpmic ( 13 ) = 0.000 +xpslow ( 13 ) = 0.000 +xppass ( 13 ) = 0.000 +xplab ( 13 ) = 0.000 +xpsorb ( 13 ) = 0.000 +xpocc ( 13 ) = 0.000 + +xpleaf ( 14 ) = 0.007 +xpwood ( 14 ) = 0.000 +xpfroot ( 14 ) = 0.009 +xpmet ( 14 ) = 0.001 +xpstr ( 14 ) = 0.002 +xpcwd ( 14 ) = 0.000 +xpmic ( 14 ) = 0.751 +xpslow ( 14 ) = 11.484 +xppass ( 14 ) = 4.482 +xplab ( 14 ) = 21.038 +xpsorb ( 14 ) = 255.790 +xpocc ( 14 ) = 108.897 + +xpleaf ( 15 ) = 0.000 +xpwood ( 15 ) = 0.000 +xpfroot ( 15 ) = 0.000 +xpmet ( 15 ) = 0.000 +xpstr ( 15 ) = 0.000 +xpcwd ( 15 ) = 0.000 +xpmic ( 15 ) = 0.000 +xpslow ( 15 ) = 0.000 +xppass ( 15 ) = 0.000 +xplab ( 15 ) = 0.000 +xpsorb ( 15 ) = 0.000 +xpocc ( 15 ) = 0.000 + +xpleaf ( 16 ) = 0.000 +xpwood ( 16 ) = 0.000 +xpfroot ( 16 ) = 0.000 +xpmet ( 16 ) = 0.000 +xpstr ( 16 ) = 0.000 +xpcwd ( 16 ) = 0.000 +xpmic ( 16 ) = 0.000 +xpslow ( 16 ) = 0.000 +xppass ( 16 ) = 0.000 +xplab ( 16 ) = 0.000 +xpsorb ( 16 ) = 0.000 +xpocc ( 16 ) = 0.000 + +xpleaf ( 17 ) = 0.000 +xpwood ( 17 ) = 0.000 +xpfroot ( 17 ) = 0.000 +xpmet ( 17 ) = 0.000 +xpstr ( 17 ) = 0.000 +xpcwd ( 17 ) = 0.000 +xpmic ( 17 ) = 0.000 +xpslow ( 17 ) = 0.000 +xppass ( 17 ) = 0.000 +xplab ( 17 ) = 0.103 +xpsorb ( 17 ) = 1.176 +xpocc ( 17 ) = 0.688 + + ! Tranche 11 + !=============================================================== +xxnpmax ( 1 ) = 1.511 +xq10soil ( 1 ) = 1.720 +xxkoptlitter ( 1 ) = 0.400 +xxkoptsoil ( 1 ) = 0.330 +xprodptase ( 1 ) = 0.500 +xcostnpup ( 1 ) = 40.000 +xmaxfinelitter ( 1 ) = 1524.000 +xmaxcwd ( 1 ) = 1795.000 +xnintercept ( 1 ) = 6.320 +xnslope ( 1 ) = 18.150 + +xxnpmax ( 2 ) = 1.279 +xq10soil ( 2 ) = 1.720 +xxkoptlitter ( 2 ) = 0.400 +xxkoptsoil ( 2 ) = 0.600 +xprodptase ( 2 ) = 0.200 +xcostnpup ( 2 ) = 25.000 +xmaxfinelitter ( 2 ) = 384.000 +xmaxcwd ( 2 ) = 613.000 +xnintercept ( 2 ) = 4.190 +xnslope ( 2 ) = 26.190 + +xxnpmax ( 3 ) = 1.591 +xq10soil ( 3 ) = 1.720 +xxkoptlitter ( 3 ) = 0.400 +xxkoptsoil ( 3 ) = 0.150 +xprodptase ( 3 ) = 0.500 +xcostnpup ( 3 ) = 40.000 +xmaxfinelitter ( 3 ) = 1527.000 +xmaxcwd ( 3 ) = 1918.000 +xnintercept ( 3 ) = 6.320 +xnslope ( 3 ) = 18.150 + +xxnpmax ( 4 ) = 1.186 +xq10soil ( 4 ) = 1.720 +xxkoptlitter ( 4 ) = 0.400 +xxkoptsoil ( 4 ) = 0.600 +xprodptase ( 4 ) = 0.500 +xcostnpup ( 4 ) = 40.000 +xmaxfinelitter ( 4 ) = 887.000 +xmaxcwd ( 4 ) = 1164.000 +xnintercept ( 4 ) = 5.730 +xnslope ( 4 ) = 29.810 + +xxnpmax ( 5 ) = 1.358 +xq10soil ( 5 ) = 1.720 +xxkoptlitter ( 5 ) = 0.400 +xxkoptsoil ( 5 ) = 0.160 +xprodptase ( 5 ) = 0.500 +xcostnpup ( 5 ) = 40.000 +xmaxfinelitter ( 5 ) = 157.000 +xmaxcwd ( 5 ) = 107.000 +xnintercept ( 5 ) = 14.710 +xnslope ( 5 ) = 23.150 + +xxnpmax ( 6 ) = 1.456 +xq10soil ( 6 ) = 1.720 +xxkoptlitter ( 6 ) = 0.400 +xxkoptsoil ( 6 ) = 0.400 +xprodptase ( 6 ) = 0.500 +xcostnpup ( 6 ) = 40.000 +xmaxfinelitter ( 6 ) = 361.000 +xmaxcwd ( 6 ) = 420.000 +xnintercept ( 6 ) = 6.420 +xnslope ( 6 ) = 40.960 + +xxnpmax ( 7 ) = 1.456 +xq10soil ( 7 ) = 1.720 +xxkoptlitter ( 7 ) = 0.400 +xxkoptsoil ( 7 ) = 0.300 +xprodptase ( 7 ) = 0.500 +xcostnpup ( 7 ) = 40.000 +xmaxfinelitter ( 7 ) = 225.000 +xmaxcwd ( 7 ) = 228.000 +xnintercept ( 7 ) = 2.000 +xnslope ( 7 ) = 8.000 + +xxnpmax ( 8 ) = 1.456 +xq10soil ( 8 ) = 1.720 +xxkoptlitter ( 8 ) = 0.400 +xxkoptsoil ( 8 ) = 0.200 +xprodptase ( 8 ) = 0.500 +xcostnpup ( 8 ) = 40.000 +xmaxfinelitter ( 8 ) = 913.000 +xmaxcwd ( 8 ) = 573.000 +xnintercept ( 8 ) = 14.710 +xnslope ( 8 ) = 23.150 + +xxnpmax ( 9 ) = 1.210 +xq10soil ( 9 ) = 1.720 +xxkoptlitter ( 9 ) = 0.400 +xxkoptsoil ( 9 ) = 0.200 +xprodptase ( 9 ) = 0.500 +xcostnpup ( 9 ) = 40.000 +xmaxfinelitter ( 9 ) = 660.000 +xmaxcwd ( 9 ) = 811.000 +xnintercept ( 9 ) = 4.710 +xnslope ( 9 ) = 59.230 + +xxnpmax ( 10 ) = 1.210 +xq10soil ( 10 ) = 1.720 +xxkoptlitter ( 10 ) = 0.400 +xxkoptsoil ( 10 ) = 0.250 +xprodptase ( 10 ) = 0.500 +xcostnpup ( 10 ) = 40.000 +xmaxfinelitter ( 10 ) = 100.000 +xmaxcwd ( 10 ) = 100.000 +xnintercept ( 10 ) = 14.710 +xnslope ( 10 ) = 23.150 + +xxnpmax ( 11 ) = 1.456 +xq10soil ( 11 ) = 1.720 +xxkoptlitter ( 11 ) = 0.400 +xxkoptsoil ( 11 ) = 1.000 +xprodptase ( 11 ) = 0.500 +xcostnpup ( 11 ) = 40.000 +xmaxfinelitter ( 11 ) = 100.000 +xmaxcwd ( 11 ) = 100.000 +xnintercept ( 11 ) = 14.710 +xnslope ( 11 ) = 23.150 + +xxnpmax ( 12 ) = 1.366 +xq10soil ( 12 ) = 1.720 +xxkoptlitter ( 12 ) = 0.400 +xxkoptsoil ( 12 ) = 0.650 +xprodptase ( 12 ) = 4.000 +xcostnpup ( 12 ) = 40.000 +xmaxfinelitter ( 12 ) = 100.000 +xmaxcwd ( 12 ) = 100.000 +xnintercept ( 12 ) = 7.000 +xnslope ( 12 ) = 10.000 + +xxnpmax ( 13 ) = 1.210 +xq10soil ( 13 ) = 1.720 +xxkoptlitter ( 13 ) = 0.400 +xxkoptsoil ( 13 ) = 0.500 +xprodptase ( 13 ) = 0.500 +xcostnpup ( 13 ) = 40.000 +xmaxfinelitter ( 13 ) = 100.000 +xmaxcwd ( 13 ) = 100.000 +xnintercept ( 13 ) = 14.710 +xnslope ( 13 ) = 23.150 + +xxnpmax ( 14 ) = 1.000 +xq10soil ( 14 ) = 1.720 +xxkoptlitter ( 14 ) = 0.400 +xxkoptsoil ( 14 ) = 2.000 +xprodptase ( 14 ) = 0.500 +xcostnpup ( 14 ) = 40.000 +xmaxfinelitter ( 14 ) = 83.000 +xmaxcwd ( 14 ) = 23.000 +xnintercept ( 14 ) = 14.710 +xnslope ( 14 ) = 23.150 + +xxnpmax ( 15 ) = 1.400 +xq10soil ( 15 ) = 1.720 +xxkoptlitter ( 15 ) = 0.400 +xxkoptsoil ( 15 ) = 0.500 +xprodptase ( 15 ) = 0.500 +xcostnpup ( 15 ) = 40.000 +xmaxfinelitter ( 15 ) = 100.000 +xmaxcwd ( 15 ) = 100.000 +xnintercept ( 15 ) = 14.710 +xnslope ( 15 ) = 23.150 + +xxnpmax ( 16 ) = 1.000 +xq10soil ( 16 ) = 1.720 +xxkoptlitter ( 16 ) = 0.400 +xxkoptsoil ( 16 ) = 1.000 +xprodptase ( 16 ) = 0.500 +xcostnpup ( 16 ) = 40.000 +xmaxfinelitter ( 16 ) = 100.000 +xmaxcwd ( 16 ) = 100.000 +xnintercept ( 16 ) = 14.710 +xnslope ( 16 ) = 23.150 + +xxnpmax ( 17 ) = 1.000 +xq10soil ( 17 ) = 1.720 +xxkoptlitter ( 17 ) = 0.400 +xxkoptsoil ( 17 ) = 1.000 +xprodptase ( 17 ) = 0.500 +xcostnpup ( 17 ) = 40.000 +xmaxfinelitter ( 17 ) = 100.000 +xmaxcwd ( 17 ) = 100.000 +xnintercept ( 17 ) = 14.710 +xnslope ( 17 ) = 23.150 + + + + + + + DO nv=1,ntiles + casabiome%ratioPcplantmin(nv,leaf) = 1.0/(xratioNPleafmax*ratioCNplant(nv,leaf)) + casabiome%ratioPcplantmax(nv,leaf) = 1.0/(xratioNPleafmin*ratioCNplant(nv,leaf)) + casabiome%ratioPcplantmin(nv,wood) = 1.0/(xratioNPwoodmax*ratioCNplant(nv,wood)) + casabiome%ratioPcplantmax(nv,wood) = 1.0/(xratioNPwoodmin*ratioCNplant(nv,wood)) + casabiome%ratioPcplantmin(nv,froot) = 1.0/(xratioNPfrootmax*ratioCNplant(nv,froot)) + casabiome%ratioPcplantmax(nv,froot) = 1.0/(xratioNPfrootmin*ratioCNplant(nv,froot)) + + + casabiome%ratioNPplantmin(nv,leaf) = xratioNPleafmin + casabiome%ratioNPplantmax(nv,leaf) = xratioNPleafmax + casabiome%ratioNPplantmin(nv,wood) = xratioNPwoodmin + casabiome%ratioNPplantmax(nv,wood) = xratioNPwoodmax + casabiome%ratioNPplantmin(nv,froot) = xratioNPfrootmin + casabiome%ratioNPplantmax(nv,froot) = xratioNPfrootmax + + ENDDO + + fracroot = 0.0 + depthsoila = 0.0 + depthsoilb = 0.0 + DO ns=1, nsl + depthsoilb(ns) = depthsoilb(ns) + soil_zse(ns) + IF (ns==1) THEN + depthsoila(ns) = 0.0 + ELSE + depthsoila(ns) = depthsoilb(ns-1) + ENDIF + ENDDO + + DO nv=1,ntiles + casabiome%sla(nv) = slax(nv) + casabiome%fraclabile(nv,leaf) = deltcasa*0.6 !1/day + casabiome%fraclabile(nv,froot)= deltcasa*0.4 !1/day + casabiome%fraclabile(nv,wood) = deltcasa*0.0 + casabiome%plantrate(nv,leaf) = deltcasa/(leafage(nv)*(1.0-xfherbivore(nv))) + casabiome%plantrate(nv,froot) = deltcasa/frootage(nv) + casabiome%plantrate(nv,wood) = deltcasa/woodage(nv) + casabiome%litterrate(nv,metb) = deltcasa/metage(nv) + casabiome%litterrate(nv,str) = deltcasa/strage(nv) + casabiome%litterrate(nv,cwd) = deltcasa/cwdage(nv) + casabiome%soilrate(nv,mic) = deltcasa/micage(nv) + casabiome%soilrate(nv,slow) = deltcasa/slowage(nv) + casabiome%soilrate(nv,pass) = deltcasa/passage(nv) + casabiome%xkleafcoldmax(nv) = deltcasa * xxkleafcoldmax(nv) + casabiome%xkleafdrymax(nv) = deltcasa * xxkleafdrymax(nv) + ! casabiome%kuplabp(nv) = xkuplabp(nv) + casabiome%rmplant(nv,:) = casabiome%rmplant(nv,:)*deltcasa + casabiome%kclabrate(nv) = deltcasa/clabileage(nv) + + !@@@@@@@@@@@@@@@@@ + casabiome%xnpmax(nv) = xxnpmax(nv) + casabiome%q10soil(nv) = xq10soil(nv) + casabiome%xkoptlitter(nv) = xxkoptlitter(nv) + casabiome%xkoptsoil(nv) = xxkoptsoil(nv) + casabiome%prodptase(nv) = xprodptase(nv)/365.0 ! convert from yearly to daily + casabiome%costnpup(nv) = xcostnpup(nv) + casabiome%maxfinelitter(nv) = xmaxfinelitter(nv) + casabiome%maxcwd(nv) = xmaxcwd(nv) + casabiome%nintercept(nv) = xnintercept(nv) + casabiome%nslope(nv) = xnslope(nv) + !@@@@@@@@@@@@@@ + ENDDO + + !@@@@@@@@@@@@@@ + DO ns=1,mso + casabiome%xkplab(ns) = xxkplab(ns) + casabiome%xkpsorb(ns) = xxkpsorb(ns) + casabiome%xkpocc(ns) = xxkpocc(ns) + ENDDO + + !@@@@@@@@@@@@@@ + + ! PRINT *, 'casabiome%xkoptsoil = ', casabiome%xkoptsoil(2) + + DO npt = 1, mp + iv1=veg_iveg(npt) + iso=casamet%isorder(npt) + ! The following to be commented out when coupled to CABLE + ! veg%froot(npt,:) =fracroot(iv1,:) + ! PRINT *, 'npt,iv1,iso ', npt,iv1, iso + casamet%iveg2(npt) =casabiome%ivt2(iv1) + casamet%lnonwood(npt) = 1 + casapool%cplant(npt,wood) = 0.0 + casapool%clitter(npt,cwd) = 0.0 + casapool%nplant(npt,wood) = 0.0 + casapool%nlitter(npt,cwd) = 0.0 + casapool%pplant(npt,wood) = 0.0 + casapool%plitter(npt,cwd) = 0.0 + IF (casamet%iveg2(npt)==forest.OR.casamet%iveg2(npt)==shrub) THEN + casamet%lnonwood(npt) = 0 + casapool%cplant(npt,wood) = Cwood(iv1) + casapool%clitter(npt,cwd) = ccwd(iv1) + casapool%nplant(npt,wood) = nwood(iv1) + casapool%nlitter(npt,cwd) = ncwd(iv1) + casapool%pplant(npt,wood) = xpwood(iv1) + casapool%plitter(npt,cwd) = xpcwd(iv1) + !! vh_js !! + IF (cable_user%CALL_POP) THEN ! initialise very small wood pool, so POP can start from zero. + casapool%cplant(npt,wood) = 0.01 + casapool%nplant(npt,wood)= casabiome%ratioNCplantmin(iv1,wood)* casapool%cplant(npt,wood) + casapool%pplant(npt,wood)= casabiome%ratioPCplantmin(iv1,wood)* casapool%cplant(npt,wood) + ENDIF + !! vh_js + + ENDIF + casapool%cplant(npt,leaf) = cleaf(iv1) + casapool%cplant(npt,froot) = cfroot(iv1) + casapool%clabile(npt) = 0.0 + casapool%clitter(npt,metb) = cmet(iv1) + casapool%clitter(npt,str) = cstr(iv1) + casapool%csoil(npt,mic) = cmic(iv1) + casapool%csoil(npt,slow) = cslow(iv1) + casapool%csoil(npt,pass) = cpass(iv1) + IF (icycle==1) THEN + casapool%ratioNCplant(npt,:) = 1.0/ratioCNplant(iv1,:) + ENDIF + + ! initializing glai in case not reading pool file (eg. during spin) + casamet%glai(npt) = MAX(casabiome%glaimin(iv1), & + casabiome%sla(iv1) * casapool%cplant(npt,leaf)) + + casaflux%fNminloss(npt) = xfNminloss(iv1) + ! comment out by ypw 12/07/2009 + casaflux%fNminleach(npt) = 10.0*xfNminleach(iv1) * deltcasa + ! casaflux%fNminleach(npt) = xfNminleach(iv1) + casapool%nplant(npt,leaf) = nleaf(iv1) + casapool%nplant(npt,froot)= nfroot(iv1) + casapool%nlitter(npt,metb) = nmet(iv1) + ! casapool%nlitter(npt,str) = nstr(iv1) + casapool%nlitter(npt,str) = cstr(iv1)*ratioNCstrfix + casapool%nsoil(npt,mic) = nmic(iv1) + casapool%nsoil(npt,slow) = nslow(iv1) + casapool%nsoil(npt,pass) = npass(iv1) + casapool%nsoilmin(npt) = xnsoilmin(iv1) + casapool%pplant(npt,leaf) = xpleaf(iv1) + casapool%pplant(npt,froot)= xpfroot(iv1) + casapool%plitter(npt,metb) = xpmet(iv1) + ! casapool%plitter(npt,str) = xpstr(iv1) + casapool%plitter(npt,str) = casapool%nlitter(npt,str)/ratioNPstrfix + casapool%psoil(npt,mic) = xpmic(iv1) + casapool%psoil(npt,slow) = xpslow(iv1) + casapool%psoil(npt,pass) = xppass(iv1) + casapool%psoillab(npt) = xplab(iv1) + casapool%psoilsorb(npt) = xpsorb(iv1) + casapool%psoilocc(npt) = xpocc(iv1) + casaflux%kmlabp(npt) = xkmlabp(iso) + casaflux%psorbmax(npt) = xpsorbmax(iso) + casaflux%fpleach(npt) = xfPleach(iso) + ! we used the spatially explicit estimate N fixation by Wang and Houlton (GRL) + ! casaflux%Nminfix(npt) = xnfixrate(iv1)/365.0 + + ! use the PFT-specific C:N:P stoichiometry + casapool%ratioNCplant(npt,:) = 1.0/ratioCNplant(iv1,:) + casapool%ratioNPplant(npt,:) = casabiome%ratioNPplantmin(iv1,:) + casapool%ratioPCplant(npt,:) = 1.0/(ratioCNplant(iv1,:) *casabiome%ratioNPplantmin(iv1,:) ) + + casapool%ratioNClitter(npt,metb) = casapool%ratioNCplant(npt,leaf) * casabiome%ftransNPtoL(iv1,leaf) + casapool%ratioNClitter(npt,str) = casapool%ratioNCplant(npt,froot) * casabiome%ftransNPtoL(iv1,froot) + casapool%ratioNClitter(npt,cwd) = casapool%ratioNCplant(npt,wood) * casabiome%ftransNPtoL(iv1,wood) + + casapool%ratioPClitter(npt,metb) = casapool%ratioPCplant(npt,leaf) * casabiome%ftransPPtoL(iv1,leaf) + casapool%ratioPClitter(npt,str) = casapool%ratioPCplant(npt,froot) * casabiome%ftransPPtoL(iv1,froot) + casapool%ratioPClitter(npt,cwd) = casapool%ratioPCplant(npt,wood) * casabiome%ftransPPtoL(iv1,wood) + + casapool%ratioNPlitter(npt,metb) = casapool%ratioNClitter(npt,metb)/(casapool%ratioPClitter(npt,metb) +1.0e-10) + casapool%ratioNPlitter(npt,str) = casapool%ratioNClitter(npt,str)/(casapool%ratioPClitter(npt,str) +1.0e-10) + casapool%ratioNPlitter(npt,cwd) = casapool%ratioNClitter(npt,cwd)/(casapool%ratioPClitter(npt,cwd) +1.0e-10) + + casapool%ratioNCsoil(npt,:) = 1.0/ratioCNsoil(iv1,:) + casapool%ratioNPsoil(npt,:) = ratioNPsoil(iso,:) + casapool%ratioPCsoil(npt,:) = 1.0/(ratioCNsoil(iv1,:)*ratioNPsoil(iso,:)) + + casapool%ratioNCsoilmin(npt,:) = 1.0/ratioCNsoilmax(iv1,:) + casapool%ratioNCsoilmax(npt,:) = 1.0/ratioCNsoilmin(iv1,:) + casapool%ratioNCsoilnew(npt,:) = casapool%ratioNCsoilmax(npt,:) + ENDDO + + IF(icycle<2) THEN + casapool%Nplant(:,:) = casapool%Cplant(:,:) * casapool%ratioNCplant(:,:) + casapool%Nlitter(:,:) = casapool%Clitter(:,:) * casapool%ratioNClitter(:,:) + casapool%Nsoil(:,:) = casapool%Csoil(:,:) * casapool%ratioNCsoil(:,:) + ENDIF + IF(icycle<3) THEN + casapool%Pplant(:,:) = casapool%Cplant(:,:) * casapool%ratioPCplant(:,:) + casapool%Plitter(:,:) = casapool%Clitter(:,:) * casapool%ratioPClitter(:,:) + casapool%Psoil(:,:) = casapool%Csoil(:,:) * casapool%ratioPCsoil(:,:) + casapool%Psoilsorb(:) = casaflux%psorbmax(:) * casapool%psoillab(:) & + /(casaflux%kmlabp(:)+casapool%psoillab(:)) + ENDIF + +RETURN +END SUBROUTINE casa_readbiome + +END MODULE casa_readbiome_module diff --git a/src/coupled/AM3/control/casa/types/casa_variable.F90 b/src/coupled/AM3/control/casa/types/casa_variable.F90 new file mode 100644 index 000000000..f6aad2c97 --- /dev/null +++ b/src/coupled/AM3/control/casa/types/casa_variable.F90 @@ -0,0 +1,157 @@ +MODULE casavariable + +!legacy - USE all the other MODULES here +! data declarations +USE casa_biome_type_mod, ONLY: casa_biome_data_type, & + casa_biome => casa_biome_type +USE casa_pool_type_mod, ONLY: casa_pool_data_type, & + casa_pool => casa_pool_type +USE casa_flux_type_mod, ONLY: casa_flux_data_type, & + casa_flux => casa_flux_type +USE casa_met_type_mod, ONLY: casa_met_data_type, & + casa_met => casa_met_type +USE casa_balance_type_mod, ONLY: casa_bal_data_type, & + casa_bal => casa_bal_type +USE phenology_type_mod, ONLY: phenology_data_type, & + phenology_type +IMPLICIT NONE + +PUBLIC :: zero_sum_casa +PUBLIC :: update_sum_casa +PUBLIC :: alloc_casavariable + +CONTAINS + +SUBROUTINE alloc_casavariable( casabiome, casabiome_data, & + casapool, casapool_data, & + casaflux, casaflux_data, & + casamet, casamet_data, & + casabal, casabal_data, & + sum_casapool, sum_casapool_data, & + sum_casaflux, sum_casaflux_data, & + phen, phen_data, mp ) + +! subrs +USE casa_biome_type_mod, ONLY: zero_casa_biome_data_type +USE casa_biome_type_mod, ONLY: assoc_casa_biome_type + +USE casa_pool_type_mod, ONLY: alloc_casa_pool_data_type +USE casa_pool_type_mod, ONLY: assoc_casa_pool_type +USE casa_pool_type_mod, ONLY: zero_casa_pool_data_type + +USE casa_flux_type_mod, ONLY: alloc_casa_flux_data_type +USE casa_flux_type_mod, ONLY: zero_casa_flux_data_type +USE casa_flux_type_mod, ONLY: assoc_casa_flux_type + +USE casa_met_type_mod, ONLY: alloc_casa_met_data_type +USE casa_met_type_mod, ONLY: assoc_casa_met_type +USE casa_met_type_mod, ONLY: zero_casa_met_data_type + +USE sum_casa_pool_type_mod, ONLY: alloc_sum_casa_pool_data_type +USE sum_casa_pool_type_mod, ONLY: assoc_sum_casa_pool_type + +USE sum_casa_flux_type_mod, ONLY: alloc_sum_casa_flux_data_type +USE sum_casa_flux_type_mod, ONLY: assoc_sum_casa_flux_type + +USE casa_balance_type_mod, ONLY: alloc_casa_bal_data_type +USE casa_balance_type_mod, ONLY: zero_casa_bal_data_type +USE casa_balance_type_mod, ONLY: assoc_casa_bal_type + +USE phenology_type_mod, ONLY: alloc_phenology_data_type +USE phenology_type_mod, ONLY: zero_phenology_data_type +USE phenology_type_mod, ONLY: assoc_phenology_type + +IMPLICIT NONE + +TYPE (casa_biome), INTENT(INOUT) :: casabiome +TYPE (casa_biome_data_type), INTENT(INOUT) :: casabiome_data +TYPE (casa_pool), INTENT(INOUT) :: casapool +TYPE (casa_pool_data_type), INTENT(INOUT) :: casapool_data +TYPE (casa_flux), INTENT(INOUT) :: casaflux +TYPE (casa_flux_data_type), INTENT(INOUT) :: casaflux_data +TYPE (casa_pool), INTENT(INOUT) :: sum_casapool +TYPE (casa_pool_data_type), INTENT(INOUT) :: sum_casapool_data +TYPE (casa_flux), INTENT(INOUT) :: sum_casaflux +TYPE (casa_flux_data_type), INTENT(INOUT) :: sum_casaflux_data +TYPE (casa_bal), INTENT(INOUT) :: casabal +TYPE (casa_bal_data_type), INTENT(INOUT) :: casabal_data +TYPE (casa_met), INTENT(INOUT) :: casamet +TYPE (casa_met_data_type), INTENT(INOUT) :: casamet_data +TYPE (phenology_type), INTENT(INOUT) :: phen +TYPE (phenology_data_type), INTENT(INOUT) :: phen_data + +INTEGER, INTENT(INOUT) :: mp + +CALL zero_casa_biome_data_type( casabiome_data ) +! allocating as 1s can also be done here following cable types, given lsm_id=casa +CALL alloc_casa_pool_data_type( casapool_data, mp ) +CALL zero_casa_pool_data_type( casapool_data ) + +CALL alloc_casa_flux_data_type( casaflux_data, mp ) +CALL zero_casa_flux_data_type( casaflux_data ) + +CALL alloc_casa_met_data_type( casamet_data, mp ) +CALL zero_casa_met_data_type( casamet_data ) + +CALL alloc_sum_casa_pool_data_type( sum_casapool_data, mp ) + +CALL alloc_sum_casa_flux_data_type( sum_casaflux_data, mp ) + +CALL alloc_casa_bal_data_type( casabal_data, mp ) +CALL zero_casa_bal_data_type( casabal_data ) + +CALL alloc_phenology_data_type( phen_data, mp ) +CALL zero_phenology_data_type( phen_data ) + +!IF ( cable_runtime%um ) THEN + CALL assoc_casa_biome_type( casabiome, casabiome_data ) + CALL assoc_casa_pool_type ( casapool, casapool_data ) + CALL assoc_casa_flux_type ( casaflux, casaflux_data ) + CALL assoc_casa_met_type ( casamet, casamet_data ) + CALL assoc_casa_bal_type ( casabal, casabal_data ) + CALL assoc_sum_casa_pool_type( sum_casapool, sum_casapool_data ) + CALL assoc_sum_casa_flux_type( sum_casaflux, sum_casaflux_data ) + CALL assoc_phenology_type( phen, phen_data ) +!END IF + +RETURN +END SUBROUTINE alloc_casavariable + +SUBROUTINE zero_sum_casa( sum_casapool, sum_casaflux ) + +USE sum_casa_pool_type_mod, ONLY: zero_sum_casa_pool_data +USE sum_casa_flux_type_mod, ONLY: zero_sum_casa_flux_data + +TYPE (casa_pool_data_type), INTENT(INOUT) :: sum_casapool +TYPE (casa_flux_data_type), INTENT(INOUT) :: sum_casaflux + +CALL zero_sum_casa_pool_data( sum_casapool ) +CALL zero_sum_casa_flux_data( sum_casaflux ) + +RETURN +END SUBROUTINE zero_sum_casa + +SUBROUTINE update_sum_casa( sum_casapool, sum_casaflux, casapool, casaflux, & + sum_now, average_now, nsteps ) + +USE sum_casa_pool_type_mod, ONLY: update_sum_casa_pool +USE sum_casa_flux_type_mod, ONLY: update_sum_casa_flux + +IMPLICIT NONE + +TYPE (casa_pool_data_type), INTENT(INOUT) :: sum_casapool +TYPE (casa_flux_data_type), INTENT(INOUT) :: sum_casaflux +TYPE (casa_pool_data_type), INTENT(IN) :: casapool +TYPE (casa_flux_data_type), INTENT(IN) :: casaflux +LOGICAL, INTENT(IN) :: sum_now, average_now +INTEGER, INTENT(IN) :: nsteps + +CALL update_sum_casa_pool( sum_casapool, casapool, sum_now, average_now, nsteps) + +CALL update_sum_casa_flux( sum_casapool, sum_casaflux, casapool, casaflux, & + sum_now, average_now, nsteps ) + +RETURN +END SUBROUTINE update_sum_casa + +END MODULE casavariable diff --git a/src/coupled/AM3/control/casa/types/phen_variable.F90 b/src/coupled/AM3/control/casa/types/phen_variable.F90 new file mode 100644 index 000000000..b5e92ec74 --- /dev/null +++ b/src/coupled/AM3/control/casa/types/phen_variable.F90 @@ -0,0 +1,6 @@ +module phenvariable + + use phenology_type_mod, only: phen_variable => phenology_type,& + alloc_phenvariable => alloc_phenology_data_type + +end module phenvariable diff --git a/src/coupled/AM3/control/casa/types/sum_casa_flux_type.F90 b/src/coupled/AM3/control/casa/types/sum_casa_flux_type.F90 new file mode 100644 index 000000000..e262d3438 --- /dev/null +++ b/src/coupled/AM3/control/casa/types/sum_casa_flux_type.F90 @@ -0,0 +1,466 @@ +MODULE sum_casa_flux_type_mod + +IMPLICIT NONE + +PUBLIC :: alloc_sum_casa_flux_data_type +PUBLIC :: assoc_sum_casa_flux_type +PUBLIC :: zero_sum_casa_flux_data +PUBLIC :: update_sum_casa_flux + +CONTAINS + +SUBROUTINE alloc_sum_casa_flux_data_type( sum_casaflux_data, arraysize) + +USE casadimension, ONLY: mplant, mlitter, msoil +USE casa_flux_type_mod, ONLY: casa_flux_data_type + +IMPLICIT NONE + +TYPE (casa_flux_data_type), INTENT(INOUT) :: sum_casaflux_data +INTEGER, INTENT(IN) :: arraysize + +ALLOCATE ( sum_casaflux_data % Cgpp ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Cnpp ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Crp ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Crgplant ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Nminfix ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Nminuptake ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Plabuptake ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Clabloss ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % fracClabile ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % stemnpp ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % frac_sapwood ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % sapwood_area ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Crsoil ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Nmindep ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Nminloss ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Nminleach ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Nupland ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Nlittermin ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Nsmin ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Nsimm ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Nsnet ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % fNminloss ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % fNminleach ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Pdep ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Pwea ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Pleach ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Ploss ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Pupland ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Plittermin ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Psmin ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Psimm ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Psnet ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % fPleach ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % kplab ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % kpsorb ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % kpocc ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % kmlabp ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Psorbmax ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Cnep ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % FluxCtoCO2 ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % FluxCtohwp ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % FluxNtohwp ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % FluxPtohwp ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % FluxCtoclear ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % FluxNtoclear ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % FluxPtoclear ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % CtransferLUC ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % meangpp ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % meanrleaf ( arraysize ) ) + +ALLOCATE ( sum_casaflux_data % fracCalloc ( arraysize, mplant ) ) +ALLOCATE ( sum_casaflux_data % fracNalloc ( arraysize, mplant ) ) +ALLOCATE ( sum_casaflux_data % fracPalloc ( arraysize, mplant ) ) +ALLOCATE ( sum_casaflux_data % Crmplant ( arraysize, mplant ) ) +ALLOCATE ( sum_casaflux_data % kplant ( arraysize, mplant ) ) +ALLOCATE ( sum_casaflux_data % klitter ( arraysize, mlitter ) ) +ALLOCATE ( sum_casaflux_data % ksoil ( arraysize, msoil ) ) +ALLOCATE ( sum_casaflux_data % fromLtoCO2 ( arraysize, mlitter ) ) +ALLOCATE ( sum_casaflux_data % fromStoCO2 ( arraysize, msoil ) ) +ALLOCATE ( sum_casaflux_data % FluxCtolitter ( arraysize, mlitter ) ) +ALLOCATE ( sum_casaflux_data % FluxNtolitter ( arraysize, mlitter ) ) +ALLOCATE ( sum_casaflux_data % FluxPtolitter ( arraysize, mlitter ) ) +ALLOCATE ( sum_casaflux_data % FluxCtosoil ( arraysize, msoil ) ) +ALLOCATE ( sum_casaflux_data % FluxNtosoil ( arraysize, msoil ) ) +ALLOCATE ( sum_casaflux_data % FluxPtosoil ( arraysize, msoil ) ) +ALLOCATE ( sum_casaflux_data % fromPtoL ( arraysize, mlitter, mplant ) ) +ALLOCATE ( sum_casaflux_data % fromLtoS ( arraysize, msoil, mlitter ) ) +ALLOCATE ( sum_casaflux_data % fromStoS ( arraysize, msoil, msoil ) ) + +ALLOCATE ( sum_casaflux_data % Cplant_turnover ( arraysize, mplant ) ) +ALLOCATE ( sum_casaflux_data % Cplant_turnover_disturbance ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Cplant_turnover_crowding ( arraysize ) ) +ALLOCATE ( sum_casaflux_data % Cplant_turnover_resource_limitation( arraysize ) ) + +RETURN +END SUBROUTINE alloc_sum_casa_flux_data_type + +SUBROUTINE assoc_sum_casa_flux_type( sum_casaflux, sum_casaflux_data ) + +USE casa_flux_type_mod, ONLY: casa_flux_data_type +USE casa_flux_type_mod, ONLY: casa_flux_type + + IMPLICIT NONE + +TYPE (casa_flux_type), INTENT(INOUT) :: sum_casaflux +TYPE (casa_flux_data_type), INTENT(INOUT), TARGET :: sum_casaflux_data + +sum_casaflux % Cgpp => sum_casaflux_data % Cgpp +sum_casaflux % Cnpp => sum_casaflux_data % Cnpp +sum_casaflux % Crp => sum_casaflux_data % Crp +sum_casaflux % Crgplant => sum_casaflux_data % Crgplant +sum_casaflux % Nminfix => sum_casaflux_data % Nminfix +sum_casaflux % Nminuptake => sum_casaflux_data % Nminuptake +sum_casaflux % Plabuptake => sum_casaflux_data % Plabuptake +sum_casaflux % Clabloss => sum_casaflux_data % Clabloss +sum_casaflux % fracClabile => sum_casaflux_data % fracClabile +sum_casaflux % stemnpp => sum_casaflux_data % stemnpp +sum_casaflux % frac_sapwood => sum_casaflux_data % frac_sapwood +sum_casaflux % sapwood_area => sum_casaflux_data % sapwood_area +sum_casaflux % Crsoil => sum_casaflux_data % Crsoil +sum_casaflux % Nmindep => sum_casaflux_data % Nmindep +sum_casaflux % Nminloss => sum_casaflux_data % Nminloss +sum_casaflux % Nminleach => sum_casaflux_data % Nminleach +sum_casaflux % Nupland => sum_casaflux_data % Nupland +sum_casaflux % Nlittermin => sum_casaflux_data % Nlittermin +sum_casaflux % Nsmin => sum_casaflux_data % Nsmin +sum_casaflux % Nsimm => sum_casaflux_data % Nsimm +sum_casaflux % Nsnet => sum_casaflux_data % Nsnet +sum_casaflux % fNminloss => sum_casaflux_data % fNminloss +sum_casaflux % fNminleach => sum_casaflux_data % fNminleach +sum_casaflux % Pdep => sum_casaflux_data % Pdep +sum_casaflux % Pwea => sum_casaflux_data % Pwea +sum_casaflux % Pleach => sum_casaflux_data % Pleach +sum_casaflux % Ploss => sum_casaflux_data % Ploss +sum_casaflux % Pupland => sum_casaflux_data % Pupland +sum_casaflux % Plittermin => sum_casaflux_data % Plittermin +sum_casaflux % Psmin => sum_casaflux_data % Psmin +sum_casaflux % Psimm => sum_casaflux_data % Psimm +sum_casaflux % Psnet => sum_casaflux_data % Psnet +sum_casaflux % fPleach => sum_casaflux_data % fPleach +sum_casaflux % kplab => sum_casaflux_data % kplab +sum_casaflux % kpsorb => sum_casaflux_data % kpsorb +sum_casaflux % kpocc => sum_casaflux_data % kpocc +sum_casaflux % kmlabp => sum_casaflux_data % kmlabp +sum_casaflux % Psorbmax => sum_casaflux_data % Psorbmax +sum_casaflux % Cnep => sum_casaflux_data % Cnep +sum_casaflux % FluxCtoCO2 => sum_casaflux_data % FluxCtoCO2 +sum_casaflux % FluxCtohwp => sum_casaflux_data % FluxCtohwp +sum_casaflux % FluxNtohwp => sum_casaflux_data % FluxNtohwp +sum_casaflux % FluxPtohwp => sum_casaflux_data % FluxPtohwp +sum_casaflux % FluxCtoclear => sum_casaflux_data % FluxCtoclear +sum_casaflux % FluxNtoclear => sum_casaflux_data % FluxNtoclear +sum_casaflux % FluxPtoclear => sum_casaflux_data % FluxPtoclear +sum_casaflux % CtransferLUC => sum_casaflux_data % CtransferLUC +sum_casaflux % meangpp => sum_casaflux_data % meangpp +sum_casaflux % meanrleaf => sum_casaflux_data % meanrleaf + +sum_casaflux % fracCalloc => sum_casaflux_data % fracCalloc +sum_casaflux % fracNalloc => sum_casaflux_data % fracNalloc +sum_casaflux % fracPalloc => sum_casaflux_data % fracPalloc +sum_casaflux % Crmplant => sum_casaflux_data % Crmplant +sum_casaflux % kplant => sum_casaflux_data % kplant +sum_casaflux % klitter => sum_casaflux_data % klitter +sum_casaflux % ksoil => sum_casaflux_data % ksoil +sum_casaflux % fromLtoCO2 => sum_casaflux_data % fromLtoCO2 +sum_casaflux % fromStoCO2 => sum_casaflux_data % fromStoCO2 +sum_casaflux % FluxCtolitter => sum_casaflux_data % FluxCtolitter +sum_casaflux % FluxNtolitter => sum_casaflux_data % FluxNtolitter +sum_casaflux % FluxPtolitter => sum_casaflux_data % FluxPtolitter +sum_casaflux % FluxCtosoil => sum_casaflux_data % FluxCtosoil +sum_casaflux % FluxNtosoil => sum_casaflux_data % FluxNtosoil +sum_casaflux % FluxPtosoil => sum_casaflux_data % FluxPtosoil +sum_casaflux % fromPtoL => sum_casaflux_data % fromPtoL +sum_casaflux % fromLtoS => sum_casaflux_data % fromLtoS +sum_casaflux % fromStoS => sum_casaflux_data % fromStoS + +sum_casaflux % Cplant_turnover => sum_casaflux % Cplant_turnover +sum_casaflux % Cplant_turnover_disturbance => & + sum_casaflux_data % Cplant_turnover_disturbance +sum_casaflux % Cplant_turnover_crowding => & + sum_casaflux_data % Cplant_turnover_crowding +sum_casaflux % Cplant_turnover_resource_limitation => & + sum_casaflux_data % Cplant_turnover_resource_limitation + +RETURN +END SUBROUTINE assoc_sum_casa_flux_type + +SUBROUTINE zero_sum_casa_flux_data( sum_casaflux ) + +USE casa_flux_type_mod, ONLY: casa_flux_data_type + +IMPLICIT NONE + +TYPE (casa_flux_data_type), INTENT(INOUT) :: sum_casaflux + +sum_casaflux % Cgpp = 0.0 +sum_casaflux % Cnpp = 0.0 +sum_casaflux % Crp = 0.0 +sum_casaflux % Crgplant = 0.0 +sum_casaflux % Nminfix = 0.0 +sum_casaflux % Nminuptake = 0.0 +sum_casaflux % Plabuptake = 0.0 +sum_casaflux % Clabloss = 0.0 +sum_casaflux % fracClabile = 0.0 +sum_casaflux % stemnpp = 0.0 +sum_casaflux % frac_sapwood = 0.0 +sum_casaflux % sapwood_area = 0.0 +sum_casaflux % Crsoil = 0.0 +sum_casaflux % Nmindep = 0.0 +sum_casaflux % Nminloss = 0.0 +sum_casaflux % Nminleach = 0.0 +sum_casaflux % Nupland = 0.0 +sum_casaflux % Nlittermin = 0.0 +sum_casaflux % Nsmin = 0.0 +sum_casaflux % Nsimm = 0.0 +sum_casaflux % Nsnet = 0.0 +sum_casaflux % fNminloss = 0.0 +sum_casaflux % fNminleach = 0.0 +sum_casaflux % Pdep = 0.0 +sum_casaflux % Pwea = 0.0 +sum_casaflux % Pleach = 0.0 +sum_casaflux % Ploss = 0.0 +sum_casaflux % Pupland = 0.0 +sum_casaflux % Plittermin = 0.0 +sum_casaflux % Psmin = 0.0 +sum_casaflux % Psimm = 0.0 +sum_casaflux % Psnet = 0.0 +sum_casaflux % fPleach = 0.0 +sum_casaflux % kplab = 0.0 +sum_casaflux % kpsorb = 0.0 +sum_casaflux % kpocc = 0.0 +sum_casaflux % kmlabp = 0.0 +sum_casaflux % Psorbmax = 0.0 +sum_casaflux % Cnep = 0.0 +sum_casaflux % FluxCtoCO2 = 0.0 +sum_casaflux % FluxCtohwp = 0.0 +sum_casaflux % FluxNtohwp = 0.0 +sum_casaflux % FluxPtohwp = 0.0 +sum_casaflux % FluxCtoclear = 0.0 +sum_casaflux % FluxNtoclear = 0.0 +sum_casaflux % FluxPtoclear = 0.0 +sum_casaflux % CtransferLUC = 0.0 +sum_casaflux % meangpp = 0.0 +sum_casaflux % meanrleaf = 0.0 + +sum_casaflux % fracCalloc = 0.0 +sum_casaflux % fracNalloc = 0.0 +sum_casaflux % fracPalloc = 0.0 +sum_casaflux % Crmplant = 0.0 +sum_casaflux % kplant = 0.0 +sum_casaflux % klitter = 0.0 +sum_casaflux % ksoil = 0.0 +sum_casaflux % fromLtoCO2 = 0.0 +sum_casaflux % fromStoCO2 = 0.0 +sum_casaflux % FluxCtolitter = 0.0 +sum_casaflux % FluxNtolitter = 0.0 +sum_casaflux % FluxPtolitter = 0.0 +sum_casaflux % FluxCtosoil = 0.0 +sum_casaflux % FluxNtosoil = 0.0 +sum_casaflux % FluxPtosoil = 0.0 +sum_casaflux % fromPtoL = 0.0 +sum_casaflux % fromLtoS = 0.0 +sum_casaflux % fromStoS = 0.0 + +sum_casaflux % Cplant_turnover = 0.0 +sum_casaflux % Cplant_turnover_disturbance = 0.0 +sum_casaflux % Cplant_turnover_crowding = 0.0 +sum_casaflux % Cplant_turnover_resource_limitation = 0.0 + +END SUBROUTINE zero_sum_casa_flux_data + +!jhan:pass individual elements of casapool +!do the calcshere with the pointers to the _data fields +SUBROUTINE update_sum_casa_flux( sum_casapool, sum_casaflux, & + casapool, casaflux, sum_now, average_now, nsteps ) + +USE casa_flux_type_mod, ONLY: casa_flux_data_type +USE casa_pool_type_mod, ONLY: casa_pool_data_type + +IMPLICIT NONE + +TYPE (casa_pool_data_type), INTENT(INOUT) :: sum_casapool +TYPE (casa_flux_data_type), INTENT(INOUT) :: sum_casaflux +TYPE (casa_pool_data_type), INTENT(IN) :: casapool +TYPE (casa_flux_data_type), INTENT(IN) :: casaflux +LOGICAL, INTENT(IN) :: sum_now, average_now +INTEGER, INTENT(IN) :: nsteps + +!local vars +INTEGER :: rsteps + +rsteps = REAL(nsteps) + +IF (sum_now) THEN + + sum_casaflux%Cgpp = sum_casaflux%Cgpp + casaflux%Cgpp + sum_casaflux%Cnpp = sum_casaflux%Cnpp + casaflux%Cnpp + sum_casaflux%Crp = sum_casaflux%Crp + casaflux%Crp + sum_casaflux%Crgplant = sum_casaflux%Crgplant + casaflux%Crgplant + sum_casaflux%Nminfix = sum_casaflux%Nminfix + casaflux%Nminfix + sum_casaflux%Nminuptake = sum_casaflux%Nminuptake + casaflux%Nminuptake + sum_casaflux%Plabuptake = sum_casaflux%Plabuptake + casaflux%Plabuptake + sum_casaflux%Clabloss = sum_casaflux%Clabloss + casaflux%Clabloss + sum_casaflux%fracClabile = sum_casaflux%fracClabile + casaflux%fracClabile + + sum_casaflux%fracCalloc = sum_casaflux%fracCalloc + & + ( casaflux%fracCalloc * casapool%cplant ) + sum_casaflux%fracNalloc = sum_casaflux%fracNalloc + casaflux%fracNalloc + sum_casaflux%fracPalloc = sum_casaflux%fracPalloc + casaflux%fracPalloc + + sum_casaflux%kplant = sum_casaflux%kplant + & + ( casaflux%kplant * casapool%cplant ) + + sum_casaflux%Crmplant = sum_casaflux%Crmplant + casaflux%Crmplant + sum_casaflux%fromPtoL = sum_casaflux%fromPtoL + casaflux%fromPtoL + sum_casaflux%Cnep = sum_casaflux%Cnep + casaflux%Cnep + sum_casaflux%Crsoil = sum_casaflux%Crsoil + casaflux%Crsoil + sum_casaflux%Nmindep = sum_casaflux%Nmindep + casaflux%Nmindep + sum_casaflux%Nminloss = sum_casaflux%Nminloss + casaflux%Nminloss + sum_casaflux%Nminleach = sum_casaflux%Nminleach + casaflux%Nminleach + sum_casaflux%Nupland = sum_casaflux%Nupland + casaflux%Nupland + sum_casaflux%Nlittermin = sum_casaflux%Nlittermin + casaflux%Nlittermin + sum_casaflux%Nsmin = sum_casaflux%Nsmin + casaflux%Nsmin + sum_casaflux%Nsimm = sum_casaflux%Nsimm + casaflux%Nsimm + sum_casaflux%Nsnet = sum_casaflux%Nsnet + casaflux%Nsnet + sum_casaflux%fNminloss = sum_casaflux%fNminloss + casaflux%fNminloss + sum_casaflux%fNminleach = sum_casaflux%fNminleach + casaflux%fNminleach + sum_casaflux%Pdep = sum_casaflux%Pdep + casaflux%Pdep + sum_casaflux%Pwea = sum_casaflux%Pwea + casaflux%Pwea + sum_casaflux%Pleach = sum_casaflux%Pleach + casaflux%Pleach + sum_casaflux%Ploss = sum_casaflux%Ploss + casaflux%Ploss + sum_casaflux%Pupland = sum_casaflux%Pupland + casaflux%Pupland + sum_casaflux%Plittermin = sum_casaflux%Plittermin + casaflux%Plittermin + sum_casaflux%Psmin = sum_casaflux%Psmin + casaflux%Psmin + sum_casaflux%Psimm = sum_casaflux%Psimm + casaflux%Psimm + sum_casaflux%Psnet = sum_casaflux%Psnet + casaflux%Psnet + sum_casaflux%fPleach = sum_casaflux%fPleach + casaflux%fPleach + sum_casaflux%kplab = sum_casaflux%kplab + casaflux%kplab + sum_casaflux%kpsorb = sum_casaflux%kpsorb + casaflux%kpsorb + sum_casaflux%kpocc = sum_casaflux%kpocc + casaflux%kpocc + sum_casaflux%kmlabP = sum_casaflux%kmlabP + casaflux%kmlabP + sum_casaflux%Psorbmax = sum_casaflux%Psorbmax + casaflux%Psorbmax + sum_casaflux%klitter = sum_casaflux%klitter + casaflux%klitter + sum_casaflux%ksoil = sum_casaflux%ksoil + casaflux%ksoil + sum_casaflux%fromLtoS = sum_casaflux%fromLtoS + casaflux%fromLtoS + sum_casaflux%fromStoS = sum_casaflux%fromStoS + casaflux%fromStoS + sum_casaflux%fromLtoCO2 = sum_casaflux%fromLtoCO2 + casaflux%fromLtoCO2 + sum_casaflux%fromStoCO2 = sum_casaflux%fromStoCO2 + casaflux%fromStoCO2 + + sum_casaflux%stemnpp = sum_casaflux%stemnpp + casaflux%stemnpp + sum_casaflux%frac_sapwood = sum_casaflux%frac_sapwood + casaflux%frac_sapwood + sum_casaflux%sapwood_area = sum_casaflux%sapwood_area + casaflux%sapwood_area + sum_casaflux%FluxCtoco2 = sum_casaflux%FluxCtoco2 + casaflux%FluxCtoco2 + sum_casaflux%FluxCtosoil = sum_casaflux%FluxCtosoil + casaflux%FluxCtosoil + sum_casaflux%FluxNtosoil = sum_casaflux%FluxNtosoil + casaflux%FluxNtosoil + sum_casaflux%FluxPtosoil = sum_casaflux%FluxPtosoil + casaflux%FluxPtosoil + + sum_casaflux%FluxCtolitter = sum_casaflux%FluxCtolitter + & + casaflux%FluxCtolitter + + sum_casaflux%FluxNtolitter = sum_casaflux%FluxNtolitter + & + casaflux%FluxNtolitter + + sum_casaflux%FluxPtolitter = sum_casaflux%FluxPtolitter + & + casaflux%FluxPtolitter + + sum_casaflux%Cplant_turnover = sum_casaflux%Cplant_turnover + & + casaflux%Cplant_turnover + + sum_casaflux%Cplant_turnover_disturbance = & + sum_casaflux%Cplant_turnover_disturbance + & + casaflux%Cplant_turnover_disturbance + + sum_casaflux%Cplant_turnover_crowding = & + sum_casaflux%Cplant_turnover_crowding + & + casaflux%Cplant_turnover_crowding + + sum_casaflux%Cplant_turnover_resource_limitation = & + sum_casaflux%Cplant_turnover_resource_limitation + & + casaflux%Cplant_turnover_resource_limitation +ENDIF + +IF (average_now) THEN + + WHERE ( sum_casapool%Cplant .GT. 1.e-12 ) + sum_casaflux%fracCalloc = sum_casaflux%fracCalloc / sum_casapool%Cplant + sum_casaflux%kplant = sum_casaflux%kplant / sum_casapool%Cplant + ELSEWHERE + sum_casaflux%fracCalloc = 0.0 + sum_casaflux%kplant = 0.0 + ENDWHERE + + sum_casaflux%Cgpp = sum_casaflux%Cgpp / rsteps + sum_casaflux%Cnpp = sum_casaflux%Cnpp / rsteps + sum_casaflux%Crp = sum_casaflux%Crp / rsteps + sum_casaflux%Crgplant = sum_casaflux%Crgplant / rsteps + sum_casaflux%Nminfix = sum_casaflux%Nminfix / rsteps + sum_casaflux%Nminuptake = sum_casaflux%Nminuptake / rsteps + sum_casaflux%Plabuptake = sum_casaflux%Plabuptake / rsteps + sum_casaflux%Clabloss = sum_casaflux%Clabloss / rsteps + sum_casaflux%fracClabile = sum_casaflux%fracClabile / rsteps + sum_casaflux%fracNalloc = sum_casaflux%fracNalloc / rsteps + sum_casaflux%fracPalloc = sum_casaflux%fracPalloc / rsteps + sum_casaflux%Crmplant = sum_casaflux%Crmplant / rsteps + sum_casaflux%fromPtoL = sum_casaflux%fromPtoL / rsteps + sum_casaflux%Cnep = sum_casaflux%Cnep / rsteps + sum_casaflux%Crsoil = sum_casaflux%Crsoil / rsteps + sum_casaflux%Nmindep = sum_casaflux%Nmindep / rsteps + sum_casaflux%Nminloss = sum_casaflux%Nminloss / rsteps + sum_casaflux%Nminleach = sum_casaflux%Nminleach / rsteps + sum_casaflux%Nupland = sum_casaflux%Nupland / rsteps + sum_casaflux%Nlittermin = sum_casaflux%Nlittermin / rsteps + sum_casaflux%Nsmin = sum_casaflux%Nsmin / rsteps + sum_casaflux%Nsimm = sum_casaflux%Nsimm / rsteps + sum_casaflux%Nsnet = sum_casaflux%Nsnet / rsteps + sum_casaflux%fNminloss = sum_casaflux%fNminloss / rsteps + sum_casaflux%fNminleach = sum_casaflux%fNminleach / rsteps + sum_casaflux%Pdep = sum_casaflux%Pdep / rsteps + sum_casaflux%Pwea = sum_casaflux%Pwea / rsteps + sum_casaflux%Pleach = sum_casaflux%Pleach / rsteps + sum_casaflux%Ploss = sum_casaflux%Ploss / rsteps + sum_casaflux%Pupland = sum_casaflux%Pupland / rsteps + sum_casaflux%Plittermin = sum_casaflux%Plittermin / rsteps + sum_casaflux%Psmin = sum_casaflux%Psmin / rsteps + sum_casaflux%Psimm = sum_casaflux%Psimm / rsteps + sum_casaflux%Psnet = sum_casaflux%Psnet / rsteps + sum_casaflux%fPleach = sum_casaflux%fPleach / rsteps + sum_casaflux%kplab = sum_casaflux%kplab / rsteps + sum_casaflux%kpsorb = sum_casaflux%kpsorb / rsteps + sum_casaflux%kpocc = sum_casaflux%kpocc / rsteps + sum_casaflux%kmlabP = sum_casaflux%kmlabP / rsteps + sum_casaflux%Psorbmax = sum_casaflux%Psorbmax / rsteps + sum_casaflux%klitter = sum_casaflux%klitter / rsteps + sum_casaflux%ksoil = sum_casaflux%ksoil / rsteps + sum_casaflux%fromLtoS = sum_casaflux%fromLtoS / rsteps + sum_casaflux%fromStoS = sum_casaflux%fromStoS / rsteps + sum_casaflux%fromLtoCO2 = sum_casaflux%fromLtoCO2 / rsteps + sum_casaflux%fromStoCO2 = sum_casaflux%fromStoCO2 / rsteps + sum_casaflux%stemnpp = sum_casaflux%stemnpp / rsteps + sum_casaflux%frac_sapwood = sum_casaflux%frac_sapwood / rsteps + sum_casaflux%sapwood_area = sum_casaflux%sapwood_area / rsteps + sum_casaflux%FluxCtolitter = sum_casaflux%FluxCtolitter / rsteps + sum_casaflux%FluxNtolitter = sum_casaflux%FluxNtolitter / rsteps + sum_casaflux%FluxPtolitter = sum_casaflux%FluxPtolitter / rsteps + sum_casaflux%FluxCtosoil = sum_casaflux%FluxCtosoil / rsteps + sum_casaflux%FluxNtosoil = sum_casaflux%FluxNtosoil / rsteps + sum_casaflux%FluxPtosoil = sum_casaflux%FluxPtosoil / rsteps + sum_casaflux%FluxCtoco2 = sum_casaflux%FluxCtoco2 / rsteps + + sum_casaflux%Cplant_turnover = sum_casaflux%Cplant_turnover / rsteps + + sum_casaflux%Cplant_turnover_disturbance = & + casaflux%Cplant_turnover_disturbance / rsteps + + sum_casaflux% Cplant_turnover_crowding = & + sum_casaflux%Cplant_turnover_crowding / rsteps + + sum_casaflux%Cplant_turnover_resource_limitation = & + sum_casaflux%Cplant_turnover_resource_limitation / rsteps + +ENDIF + +END SUBROUTINE update_sum_casa_flux + +END MODULE sum_casa_flux_type_mod diff --git a/src/coupled/AM3/control/casa/types/sum_casa_pool_type.F90 b/src/coupled/AM3/control/casa/types/sum_casa_pool_type.F90 new file mode 100644 index 000000000..39139fb68 --- /dev/null +++ b/src/coupled/AM3/control/casa/types/sum_casa_pool_type.F90 @@ -0,0 +1,313 @@ +MODULE sum_casa_pool_type_mod + +USE cable_other_constants_mod, ONLY: r_2 ! currently DOUBLE precision + +IMPLICIT NONE + +PUBLIC :: alloc_sum_casa_pool_data_type +PUBLIC :: assoc_sum_casa_pool_type +PUBLIC :: zero_sum_casa_pool_data +PUBLIC :: update_sum_casa_pool + +CONTAINS + +SUBROUTINE alloc_sum_casa_pool_data_type( sum_casapool_data, arraysize ) + +USE casa_pool_type_mod, ONLY: casa_pool_data_type +USE casadimension, ONLY: mplant, mlitter, msoil, mwood + +IMPLICIT NONE + +TYPE (casa_pool_data_type), INTENT(INOUT) :: sum_casapool_data +INTEGER, INTENT(IN) :: arraysize + +ALLOCATE ( sum_casapool_data % Clabile ( arraysize ) ) +ALLOCATE ( sum_casapool_data % dClabiledt ( arraysize ) ) +ALLOCATE ( sum_casapool_data % Ctot ( arraysize ) ) +ALLOCATE ( sum_casapool_data % Ctot_0 ( arraysize ) ) +ALLOCATE ( sum_casapool_data % Nsoilmin ( arraysize ) ) +ALLOCATE ( sum_casapool_data % Psoillab ( arraysize ) ) +ALLOCATE ( sum_casapool_data % Psoilsorb ( arraysize ) ) +ALLOCATE ( sum_casapool_data % Psoilocc ( arraysize ) ) +ALLOCATE ( sum_casapool_data % dNsoilmindt ( arraysize ) ) +ALLOCATE ( sum_casapool_data % dPsoillabdt ( arraysize ) ) +ALLOCATE ( sum_casapool_data % dPsoilsorbdt ( arraysize ) ) +ALLOCATE ( sum_casapool_data % dPsoiloccdt ( arraysize ) ) + +ALLOCATE ( sum_casapool_data % Cplant ( arraysize, mplant ) ) +ALLOCATE ( sum_casapool_data % Nplant ( arraysize, mplant ) ) +ALLOCATE ( sum_casapool_data % Pplant ( arraysize, mplant ) ) +ALLOCATE ( sum_casapool_data % dCplantdt ( arraysize, mplant ) ) +ALLOCATE ( sum_casapool_data % dNplantdt ( arraysize, mplant ) ) +ALLOCATE ( sum_casapool_data % dPplantdt ( arraysize, mplant ) ) +ALLOCATE ( sum_casapool_data % ratioNCplant ( arraysize, mplant ) ) +ALLOCATE ( sum_casapool_data % ratioNPplant ( arraysize, mplant ) ) +ALLOCATE ( sum_casapool_data % Clitter ( arraysize, mlitter ) ) +ALLOCATE ( sum_casapool_data % Nlitter ( arraysize, mlitter ) ) +ALLOCATE ( sum_casapool_data % Plitter ( arraysize, mlitter ) ) +ALLOCATE ( sum_casapool_data % dClitterdt ( arraysize, mlitter ) ) +ALLOCATE ( sum_casapool_data % dNlitterdt ( arraysize, mlitter ) ) +ALLOCATE ( sum_casapool_data % dPlitterdt ( arraysize, mlitter ) ) +ALLOCATE ( sum_casapool_data % ratioNClitter ( arraysize, mlitter ) ) +ALLOCATE ( sum_casapool_data % ratioNPlitter ( arraysize, mlitter ) ) +ALLOCATE ( sum_casapool_data % Csoil ( arraysize, msoil ) ) +ALLOCATE ( sum_casapool_data % Nsoil ( arraysize, msoil ) ) +ALLOCATE ( sum_casapool_data % Psoil ( arraysize, msoil ) ) +ALLOCATE ( sum_casapool_data % dCsoildt ( arraysize, msoil ) ) +ALLOCATE ( sum_casapool_data % dNsoildt ( arraysize, msoil ) ) +ALLOCATE ( sum_casapool_data % dPsoildt ( arraysize, msoil ) ) +ALLOCATE ( sum_casapool_data % ratioNCsoil ( arraysize, msoil ) ) +ALLOCATE ( sum_casapool_data % ratioNCsoilnew ( arraysize, msoil ) ) +ALLOCATE ( sum_casapool_data % ratioNPsoil ( arraysize, msoil ) ) +ALLOCATE ( sum_casapool_data % ratioNCsoilmin ( arraysize, msoil ) ) +ALLOCATE ( sum_casapool_data % ratioNCsoilmax ( arraysize, msoil ) ) +ALLOCATE ( sum_casapool_data % ratioPcsoil ( arraysize, msoil ) ) +ALLOCATE ( sum_casapool_data % ratioPcplant ( arraysize, mplant ) ) +ALLOCATE ( sum_casapool_data % ratioPclitter ( arraysize, mlitter ) ) +ALLOCATE ( sum_casapool_data % cwoodprod ( arraysize, mwood ) ) +ALLOCATE ( sum_casapool_data % nwoodprod ( arraysize, mwood ) ) +ALLOCATE ( sum_casapool_data % pwoodprod ( arraysize, mwood ) ) + +END SUBROUTINE alloc_sum_casa_pool_data_type + +SUBROUTINE zero_sum_casa_pool_data( sum_casapool ) + +USE casa_pool_type_mod, ONLY: casa_pool_data_type + +IMPLICIT NONE + +TYPE (casa_pool_data_type), INTENT(INOUT) :: sum_casapool + +sum_casapool % Clabile = 0.0 +sum_casapool % dClabiledt = 0.0 +sum_casapool % Ctot = 0.0 +sum_casapool % Ctot_0 = 0.0 +sum_casapool % Nsoilmin = 0.0 +sum_casapool % Psoillab = 0.0 +sum_casapool % Psoilsorb = 0.0 +sum_casapool % Psoilocc = 0.0 +sum_casapool % dNsoilmindt = 0.0 +sum_casapool % dPsoillabdt = 0.0 +sum_casapool % dPsoilsorbdt = 0.0 +sum_casapool % dPsoiloccdt = 0.0 + +sum_casapool % Cplant = 0.0 +sum_casapool % Nplant = 0.0 +sum_casapool % Pplant = 0.0 +sum_casapool % dCplantdt = 0.0 +sum_casapool % dNplantdt = 0.0 +sum_casapool % dPplantdt = 0.0 +sum_casapool % ratioNCplant = 0.0 +sum_casapool % ratioNPplant = 0.0 +sum_casapool % Clitter = 0.0 +sum_casapool % Nlitter = 0.0 +sum_casapool % Plitter = 0.0 +sum_casapool % dClitterdt = 0.0 +sum_casapool % dNlitterdt = 0.0 +sum_casapool % dPlitterdt = 0.0 +sum_casapool % ratioNClitter = 0.0 +sum_casapool % ratioNPlitter = 0.0 +sum_casapool % Csoil = 0.0 +sum_casapool % Nsoil = 0.0 +sum_casapool % Psoil = 0.0 +sum_casapool % dCsoildt = 0.0 +sum_casapool % dNsoildt = 0.0 +sum_casapool % dPsoildt = 0.0 +sum_casapool % ratioNCsoil = 0.0 +sum_casapool % ratioNCsoilnew = 0.0 +sum_casapool % ratioNPsoil = 0.0 +sum_casapool % ratioNCsoilmin = 0.0 +sum_casapool % ratioNCsoilmax = 0.0 +sum_casapool % ratioPcsoil = 0.0 +sum_casapool % ratioPcplant = 0.0 +sum_casapool % ratioPclitter = 0.0 +sum_casapool % cwoodprod = 0.0 +sum_casapool % nwoodprod = 0.0 +sum_casapool % pwoodprod = 0.0 + +RETURN +END SUBROUTINE zero_sum_casa_pool_data + +SUBROUTINE assoc_sum_casa_pool_type( sum_casapool, sum_casapool_data ) + +USE casa_pool_type_mod, ONLY: casa_pool_data_type +USE casa_pool_type_mod, ONLY: casa_pool_type + +IMPLICIT NONE + +TYPE (casa_pool_type), INTENT(INOUT) :: sum_casapool +TYPE (casa_pool_data_type), INTENT(INOUT), TARGET :: sum_casapool_data + +sum_casapool % Clabile => sum_casapool_data % Clabile +sum_casapool % dClabiledt => sum_casapool_data % dClabiledt +sum_casapool % Ctot => sum_casapool_data % Ctot +sum_casapool % Ctot_0 => sum_casapool_data % Ctot_0 +sum_casapool % Nsoilmin => sum_casapool_data % Nsoilmin +sum_casapool % Psoillab => sum_casapool_data % Psoillab +sum_casapool % Psoilsorb => sum_casapool_data % Psoilsorb +sum_casapool % Psoilocc => sum_casapool_data % Psoilocc +sum_casapool % dNsoilmindt => sum_casapool_data % dNsoilmindt +sum_casapool % dPsoillabdt => sum_casapool_data % dPsoillabdt +sum_casapool % dPsoilsorbdt => sum_casapool_data % dPsoilsorbdt +sum_casapool % dPsoiloccdt => sum_casapool_data % dPsoiloccdt + +sum_casapool % Cplant => sum_casapool_data % Cplant +sum_casapool % Nplant => sum_casapool_data % Nplant +sum_casapool % Pplant => sum_casapool_data % Pplant +sum_casapool % dCplantdt => sum_casapool_data % dCplantdt +sum_casapool % dNplantdt => sum_casapool_data % dNplantdt +sum_casapool % dPplantdt => sum_casapool_data % dPplantdt +sum_casapool % ratioNCplant => sum_casapool_data % ratioNCplant +sum_casapool % ratioNPplant => sum_casapool_data % ratioNPplant +sum_casapool % Clitter => sum_casapool_data % Clitter +sum_casapool % Nlitter => sum_casapool_data % Nlitter +sum_casapool % Plitter => sum_casapool_data % Plitter +sum_casapool % dClitterdt => sum_casapool_data % dClitterdt +sum_casapool % dNlitterdt => sum_casapool_data % dNlitterdt +sum_casapool % dPlitterdt => sum_casapool_data % dPlitterdt +sum_casapool % ratioNClitter => sum_casapool_data % ratioNClitter +sum_casapool % ratioNPlitter => sum_casapool_data % ratioNPlitter +sum_casapool % Csoil => sum_casapool_data % Csoil +sum_casapool % Nsoil => sum_casapool_data % Nsoil +sum_casapool % Psoil => sum_casapool_data % Psoil +sum_casapool % dCsoildt => sum_casapool_data % dCsoildt +sum_casapool % dNsoildt => sum_casapool_data % dNsoildt +sum_casapool % dPsoildt => sum_casapool_data % dPsoildt +sum_casapool % ratioNCsoil => sum_casapool_data % ratioNCsoil +sum_casapool % ratioNCsoilnew => sum_casapool_data % ratioNCsoilnew +sum_casapool % ratioNPsoil => sum_casapool_data % ratioNPsoil +sum_casapool % ratioNCsoilmin => sum_casapool_data % ratioNCsoilmin +sum_casapool % ratioNCsoilmax => sum_casapool_data % ratioNCsoilmax +sum_casapool % ratioPcsoil => sum_casapool_data % ratioPcsoil +sum_casapool % ratioPcplant => sum_casapool_data % ratioPcplant +sum_casapool % ratioPclitter => sum_casapool_data % ratioPclitter +sum_casapool % cwoodprod => sum_casapool_data % cwoodprod +sum_casapool % nwoodprod => sum_casapool_data % nwoodprod +sum_casapool % pwoodprod => sum_casapool_data % pwoodprod + +RETURN +END SUBROUTINE assoc_sum_casa_pool_type + +SUBROUTINE update_sum_casa_pool( sum_casapool, casapool, sum_now, average_now, & + nsteps ) + +USE casa_pool_type_mod, ONLY: casa_pool_data_type + +IMPLICIT NONE + +TYPE (casa_pool_data_type), INTENT(INOUT) :: sum_casapool +TYPE (casa_pool_data_type), INTENT(IN) :: casapool +LOGICAL, INTENT(IN) :: sum_now, average_now +INTEGER, INTENT(IN) :: nsteps + +!local vars +INTEGER :: rsteps + +rsteps = REAL( nsteps ) + +IF (sum_now) THEN + + sum_casapool%Clabile = sum_casapool%Clabile + casapool%Clabile + sum_casapool%dClabiledt = sum_casapool%Clabile + casapool%Clabile + sum_casapool%Cplant = sum_casapool%Cplant + casapool%Cplant + sum_casapool%Nplant = sum_casapool%Nplant + casapool%Nplant + sum_casapool%Pplant = sum_casapool%Pplant + casapool%Pplant + sum_casapool%dCplantdt = sum_casapool%dCplantdt + casapool%dCplantdt + sum_casapool%dNplantdt = sum_casapool%dNplantdt + casapool%dNplantdt + sum_casapool%dPplantdt = sum_casapool%dPplantdt + casapool%dPplantdt + sum_casapool%ratioNCplant = sum_casapool%ratioNCplant & + + casapool%ratioNCplant + sum_casapool%ratioNPplant = sum_casapool%ratioNPplant & + + casapool%ratioNPplant + sum_casapool%Nsoilmin = sum_casapool%Nsoilmin + casapool%Nsoilmin + sum_casapool%Psoillab = sum_casapool%Psoillab + casapool%Psoillab + sum_casapool%Psoilsorb = sum_casapool%Psoilsorb + casapool%Psoilsorb + + sum_casapool%Psoilocc = sum_casapool%Psoilocc + casapool%Psoilocc + sum_casapool%dNsoilmindt = sum_casapool%dNsoilmindt + casapool%dNsoilmindt + sum_casapool%dPsoillabdt = sum_casapool%dPsoillabdt + casapool%dPsoillabdt + sum_casapool%dPsoilsorbdt = sum_casapool%dPsoilsorbdt & + + casapool%dPsoilsorbdt + sum_casapool%dPsoiloccdt = sum_casapool%dPsoiloccdt + casapool%dPsoiloccdt + sum_casapool%Clitter = sum_casapool%Clitter + casapool%Clitter + sum_casapool%Nlitter = sum_casapool%Nlitter + casapool%Nlitter + sum_casapool%Plitter = sum_casapool%Plitter + casapool%Plitter + sum_casapool%dClitterdt = sum_casapool%dClitterdt + casapool%dClitterdt + sum_casapool%dNlitterdt = sum_casapool%dNlitterdt + casapool%dNlitterdt + sum_casapool%dPlitterdt = sum_casapool%dPlitterdt + casapool%dPlitterdt + sum_casapool%ratioNClitter = sum_casapool%ratioNClitter & + + casapool%ratioNClitter + sum_casapool%ratioNPlitter = sum_casapool%ratioNPlitter & + + casapool%ratioNPlitter + sum_casapool%Csoil = sum_casapool%Csoil + casapool%Csoil + sum_casapool%Nsoil = sum_casapool%Nsoil + casapool%Nsoil + sum_casapool%Psoil = sum_casapool%Psoil + casapool%Psoil + sum_casapool%dCsoildt = sum_casapool%dCsoildt + casapool%dCsoildt + sum_casapool%dNsoildt = sum_casapool%dNsoildt + casapool%dNsoildt + sum_casapool%dPsoildt = sum_casapool%dPsoildt + casapool%dPsoildt + sum_casapool%ratioNCsoil = sum_casapool%ratioNCsoil & + + casapool%ratioNCsoil + sum_casapool%ratioNPsoil = sum_casapool%ratioNPsoil & + + casapool%ratioNPsoil + sum_casapool%ratioNCsoilnew = sum_casapool%ratioNCsoilnew & + + casapool%ratioNCsoilnew + sum_casapool%ratioNCsoilmin = sum_casapool%ratioNCsoilmin & + + casapool%ratioNCsoilmin + sum_casapool%ratioNCsoilmax = sum_casapool%ratioNCsoilmax & + + casapool%ratioNCsoilmax + sum_casapool%ratioPcsoil = sum_casapool%ratioPcsoil + casapool%ratioPcsoil + sum_casapool%ratioPcplant = sum_casapool%ratioPcplant & + + casapool%ratioPcplant + sum_casapool%ratioPclitter = sum_casapool%ratioPclitter & + + casapool%ratioPclitter + +ENDIF + +IF (average_now) THEN + + sum_casapool%Clabile = sum_casapool%Clabile / rsteps + sum_casapool%dClabiledt = sum_casapool%Clabile / rsteps + sum_casapool%Nplant = sum_casapool%Nplant / rsteps + sum_casapool%Pplant = sum_casapool%Pplant / rsteps + sum_casapool%dCplantdt = sum_casapool%dCplantdt / rsteps + sum_casapool%dNplantdt = sum_casapool%dNplantdt / rsteps + sum_casapool%dPplantdt = sum_casapool%dPplantdt / rsteps + sum_casapool%ratioNCplant = sum_casapool%ratioNCplant / rsteps + sum_casapool%ratioNPplant = sum_casapool%ratioNPplant / rsteps + sum_casapool%Nsoilmin = sum_casapool%Nsoilmin / rsteps + sum_casapool%Psoillab = sum_casapool%Psoillab / rsteps + sum_casapool%Psoilsorb = sum_casapool%Psoilsorb / rsteps + sum_casapool%Psoilocc = sum_casapool%Psoilocc / rsteps + sum_casapool%dNsoilmindt = sum_casapool%dNsoilmindt / rsteps + sum_casapool%dPsoillabdt = sum_casapool%dPsoillabdt / rsteps + sum_casapool%dPsoilsorbdt = sum_casapool%dPsoilsorbdt / rsteps + sum_casapool%dPsoiloccdt = sum_casapool%dPsoiloccdt / rsteps + sum_casapool%Clitter = sum_casapool%Clitter / rsteps + sum_casapool%Nlitter = sum_casapool%Nlitter / rsteps + sum_casapool%Plitter = sum_casapool%Plitter / rsteps + sum_casapool%dClitterdt = sum_casapool%dClitterdt / rsteps + sum_casapool%dNlitterdt = sum_casapool%dNlitterdt / rsteps + sum_casapool%dPlitterdt = sum_casapool%dPlitterdt / rsteps + sum_casapool%ratioNClitter = sum_casapool%ratioNClitter / rsteps + sum_casapool%ratioNPlitter = sum_casapool%ratioNPlitter / rsteps + sum_casapool%Csoil = sum_casapool%Csoil / rsteps + sum_casapool%Nsoil = sum_casapool%Nsoil / rsteps + sum_casapool%Psoil = sum_casapool%Psoil / rsteps + sum_casapool%dCsoildt = sum_casapool%dCsoildt / rsteps + sum_casapool%dNsoildt = sum_casapool%dNsoildt / rsteps + sum_casapool%dPsoildt = sum_casapool%dPsoildt / rsteps + sum_casapool%ratioNCsoil = sum_casapool%ratioNCsoil / rsteps + sum_casapool%ratioNPsoil = sum_casapool%ratioNPsoil / rsteps + sum_casapool%ratioNCsoilnew = sum_casapool%ratioNCsoilnew / rsteps + sum_casapool%ratioNCsoilmin = sum_casapool%ratioNCsoilmin / rsteps + sum_casapool%ratioNCsoilmax = sum_casapool%ratioNCsoilmax / rsteps + sum_casapool%ratioPcsoil = sum_casapool%ratioPcsoil / rsteps + sum_casapool%ratioPcplant = sum_casapool%ratioPcplant / rsteps + sum_casapool%ratioPclitter = sum_casapool%ratioPclitter / rsteps + +ENDIF + +RETURN +END SUBROUTINE update_sum_casa_pool + +END MODULE sum_casa_pool_type_mod From c6fe3e52a801dea5041f24c1b71b0998873a25cb Mon Sep 17 00:00:00 2001 From: Whyborn Date: Thu, 28 May 2026 19:13:57 +1000 Subject: [PATCH 28/40] Update CASA types --- .../AM3/control/casa/types/casa_flux_type.F90 | 10 ++++++++++ .../AM3/control/casa/types/casa_inout.F90 | 1 - .../AM3/control/casa/types/casa_pool_type.F90 | 20 +++++++++++++++++++ .../AM3/control/casa/types/casa_variable.F90 | 12 ++++++----- 4 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/coupled/AM3/control/casa/types/casa_flux_type.F90 b/src/coupled/AM3/control/casa/types/casa_flux_type.F90 index 8f7777962..de575140f 100644 --- a/src/coupled/AM3/control/casa/types/casa_flux_type.F90 +++ b/src/coupled/AM3/control/casa/types/casa_flux_type.F90 @@ -13,6 +13,7 @@ MODULE casa_flux_type_mod REAL(r_2), ALLOCATABLE :: Cgpp (:) REAL(r_2), ALLOCATABLE :: Cnpp (:) + REAL(r_2), ALLOCATABLE :: Cnbp (:) REAL(r_2), ALLOCATABLE :: Crp (:) REAL(r_2), ALLOCATABLE :: Crgplant (:) REAL(r_2), ALLOCATABLE :: Nminfix (:) @@ -22,6 +23,7 @@ MODULE casa_flux_type_mod REAL(r_2), ALLOCATABLE :: fracClabile (:) REAL(r_2), ALLOCATABLE :: stemnpp (:) REAL(r_2), ALLOCATABLE :: frac_sapwood (:) + REAL(r_2), ALLOCATABLE :: Cplant_turnover_tot (:) REAL(r_2), ALLOCATABLE :: sapwood_area (:) REAL(r_2), ALLOCATABLE :: Crsoil (:) REAL(r_2), ALLOCATABLE :: Nmindep (:) @@ -89,6 +91,7 @@ MODULE casa_flux_type_mod REAL(r_2), POINTER, PUBLIC :: Cgpp (:) REAL(r_2), POINTER, PUBLIC :: Cnpp (:) + REAL(r_2), POINTER, PUBLIC :: Cnbp (:) REAL(r_2), POINTER, PUBLIC :: Crp (:) REAL(r_2), POINTER, PUBLIC :: Crgplant (:) REAL(r_2), POINTER, PUBLIC :: Nminfix (:) @@ -98,6 +101,7 @@ MODULE casa_flux_type_mod REAL(r_2), POINTER, PUBLIC :: fracClabile (:) REAL(r_2), POINTER, PUBLIC :: stemnpp (:) REAL(r_2), POINTER, PUBLIC :: frac_sapwood (:) + REAL(r_2), POINTER, PUBLIC :: Cplant_turnover_tot (:) REAL(r_2), POINTER, PUBLIC :: sapwood_area (:) REAL(r_2), POINTER, PUBLIC :: Crsoil (:) REAL(r_2), POINTER, PUBLIC :: Nmindep (:) @@ -174,6 +178,7 @@ SUBROUTINE alloc_casa_flux_data_type( casaflux_data, arraysize ) ALLOCATE ( casaflux_data % Cgpp ( arraysize ) ) ALLOCATE ( casaflux_data % Cnpp ( arraysize ) ) +ALLOCATE ( casaflux_data % Cnbp ( arraysize ) ) ALLOCATE ( casaflux_data % Crp ( arraysize ) ) ALLOCATE ( casaflux_data % Crgplant ( arraysize ) ) ALLOCATE ( casaflux_data % Nminfix ( arraysize ) ) @@ -183,6 +188,7 @@ SUBROUTINE alloc_casa_flux_data_type( casaflux_data, arraysize ) ALLOCATE ( casaflux_data % fracClabile ( arraysize ) ) ALLOCATE ( casaflux_data % stemnpp ( arraysize ) ) ALLOCATE ( casaflux_data % frac_sapwood ( arraysize ) ) +ALLOCATE ( casaflux_data % Cplant_turnover_tot ( arraysize ) ) ALLOCATE ( casaflux_data % sapwood_area ( arraysize ) ) ALLOCATE ( casaflux_data % Crsoil ( arraysize ) ) ALLOCATE ( casaflux_data % Nmindep ( arraysize ) ) @@ -256,6 +262,7 @@ SUBROUTINE zero_casa_flux_data_type( casaflux_data ) casaflux_data % Cgpp (:) = 0.0 casaflux_data % Cnpp (:) = 0.0 +casaflux_data % Cnbp (:) = 0.0 casaflux_data % Crp (:) = 0.0 casaflux_data % Crgplant (:) = 0.0 casaflux_data % Nminfix (:) = 0.0 @@ -265,6 +272,7 @@ SUBROUTINE zero_casa_flux_data_type( casaflux_data ) casaflux_data % fracClabile (:) = 0.0 casaflux_data % stemnpp (:) = 0.0 casaflux_data % frac_sapwood (:) = 0.0 +casaflux_data % Cplant_turnover_tot (:) = 0.0 casaflux_data % sapwood_area (:) = 0.0 casaflux_data % Crsoil (:) = 0.0 casaflux_data % Nmindep (:) = 0.0 @@ -338,6 +346,7 @@ SUBROUTINE assoc_casa_flux_type( casaflux, casaflux_data ) casaflux % Cgpp => casaflux_data % Cgpp casaflux % Cnpp => casaflux_data % Cnpp +casaflux % Cnpp => casaflux_data % Cnbp casaflux % Crp => casaflux_data % Crp casaflux % Crgplant => casaflux_data % Crgplant casaflux % Nminfix => casaflux_data % Nminfix @@ -347,6 +356,7 @@ SUBROUTINE assoc_casa_flux_type( casaflux, casaflux_data ) casaflux % fracClabile => casaflux_data % fracClabile casaflux % stemnpp => casaflux_data % stemnpp casaflux % frac_sapwood => casaflux_data % frac_sapwood +casaflux % Cplant_turnover_tot => casaflux_data % Cplant_turnover_tot casaflux % sapwood_area => casaflux_data % sapwood_area casaflux % Crsoil => casaflux_data % Crsoil casaflux % Nmindep => casaflux_data % Nmindep diff --git a/src/coupled/AM3/control/casa/types/casa_inout.F90 b/src/coupled/AM3/control/casa/types/casa_inout.F90 index 411904a0f..705feb6f0 100644 --- a/src/coupled/AM3/control/casa/types/casa_inout.F90 +++ b/src/coupled/AM3/control/casa/types/casa_inout.F90 @@ -1,4 +1,3 @@ -#define UM_CBL YES !============================================================================== ! This source code is part of the ! Australian Community Atmosphere Biosphere Land Exchange (CABLE) model. diff --git a/src/coupled/AM3/control/casa/types/casa_pool_type.F90 b/src/coupled/AM3/control/casa/types/casa_pool_type.F90 index b37a2eb20..f5ff46221 100644 --- a/src/coupled/AM3/control/casa/types/casa_pool_type.F90 +++ b/src/coupled/AM3/control/casa/types/casa_pool_type.F90 @@ -12,10 +12,14 @@ MODULE casa_pool_type_mod TYPE casa_pool_data_type + REAL(r_2), ALLOCATABLE :: dCdt (:) REAL(r_2), ALLOCATABLE :: Clabile (:) REAL(r_2), ALLOCATABLE :: dClabiledt (:) REAL(r_2), ALLOCATABLE :: Ctot (:) REAL(r_2), ALLOCATABLE :: Ctot_0 (:) + REAL(r_2), ALLOCATABLE :: Cplanttot (:) + REAL(r_2), ALLOCATABLE :: Clittertot (:) + REAL(r_2), ALLOCATABLE :: Csoiltot (:) REAL(r_2), ALLOCATABLE :: Nsoilmin (:) REAL(r_2), ALLOCATABLE :: Psoillab (:) REAL(r_2), ALLOCATABLE :: Psoilsorb (:) @@ -63,10 +67,14 @@ MODULE casa_pool_type_mod TYPE casa_pool_type + REAL(r_2), POINTER, PUBLIC :: dCdt (:) REAL(r_2), POINTER, PUBLIC :: Clabile (:) REAL(r_2), POINTER, PUBLIC :: dClabiledt (:) REAL(r_2), POINTER, PUBLIC :: Ctot (:) REAL(r_2), POINTER, PUBLIC :: Ctot_0 (:) + REAL(r_2), POINTER, PUBLIC :: Cplanttot (:) + REAL(r_2), POINTER, PUBLIC :: Clittertot (:) + REAL(r_2), POINTER, PUBLIC :: Csoiltot (:) REAL(r_2), POINTER, PUBLIC :: Nsoilmin (:) REAL(r_2), POINTER, PUBLIC :: Psoillab (:) REAL(r_2), POINTER, PUBLIC :: Psoilsorb (:) @@ -123,10 +131,14 @@ SUBROUTINE alloc_casa_pool_data_type( casapool_data, arraysize ) TYPE (casa_pool_data_type), INTENT(INOUT) :: casapool_data INTEGER, INTENT(IN) :: arraysize +ALLOCATE ( casapool_data % dCdt ( arraysize ) ) ALLOCATE ( casapool_data % Clabile ( arraysize ) ) ALLOCATE ( casapool_data % dClabiledt ( arraysize ) ) ALLOCATE ( casapool_data % Ctot ( arraysize ) ) ALLOCATE ( casapool_data % Ctot_0 ( arraysize ) ) +ALLOCATE ( casapool_data % Cplanttot ( arraysize ) ) +ALLOCATE ( casapool_data % Clittertot ( arraysize ) ) +ALLOCATE ( casapool_data % Csoiltot ( arraysize ) ) ALLOCATE ( casapool_data % Nsoilmin ( arraysize ) ) ALLOCATE ( casapool_data % Psoillab ( arraysize ) ) ALLOCATE ( casapool_data % Psoilsorb ( arraysize ) ) @@ -178,10 +190,14 @@ SUBROUTINE zero_casa_pool_data_type( casapool_data ) TYPE (casa_pool_data_type), INTENT(INOUT) :: casapool_data +casapool_data % dCdt = 0.0 casapool_data % Clabile = 0.0 casapool_data % dClabiledt = 0.0 casapool_data % Ctot = 0.0 casapool_data % Ctot_0 = 0.0 +casapool_data % Cplanttot = 0.0 +casapool_data % Clittertot = 0.0 +casapool_data % Csoiltot = 0.0 casapool_data % Nsoilmin = 0.0 casapool_data % Psoillab = 0.0 casapool_data % Psoilsorb = 0.0 @@ -235,10 +251,14 @@ SUBROUTINE assoc_casa_pool_type( casapool, casapool_data ) TYPE (casa_pool_type), INTENT(INOUT) :: casapool TYPE (casa_pool_data_type), INTENT(INOUT), TARGET :: casapool_data +casapool % dCdt => casapool_data % dCdt casapool % Clabile => casapool_data % Clabile casapool % dClabiledt => casapool_data % dClabiledt casapool % Ctot => casapool_data % Ctot casapool % Ctot_0 => casapool_data % Ctot_0 +casapool % Cplanttot => casapool_data % Cplanttot +casapool % Clittertot => casapool_data % Clittertot +casapool % Csoiltot => casapool_data % Csoiltot casapool % Nsoilmin => casapool_data % Nsoilmin casapool % Psoillab => casapool_data % Psoillab casapool % Psoilsorb => casapool_data % Psoilsorb diff --git a/src/coupled/AM3/control/casa/types/casa_variable.F90 b/src/coupled/AM3/control/casa/types/casa_variable.F90 index f6aad2c97..4f25d1d33 100644 --- a/src/coupled/AM3/control/casa/types/casa_variable.F90 +++ b/src/coupled/AM3/control/casa/types/casa_variable.F90 @@ -5,15 +5,17 @@ MODULE casavariable USE casa_biome_type_mod, ONLY: casa_biome_data_type, & casa_biome => casa_biome_type USE casa_pool_type_mod, ONLY: casa_pool_data_type, & - casa_pool => casa_pool_type + casa_pool => casa_pool_type USE casa_flux_type_mod, ONLY: casa_flux_data_type, & - casa_flux => casa_flux_type + casa_flux => casa_flux_type USE casa_met_type_mod, ONLY: casa_met_data_type, & - casa_met => casa_met_type + casa_met => casa_met_type USE casa_balance_type_mod, ONLY: casa_bal_data_type, & - casa_bal => casa_bal_type + casa_balance => casa_bal_type USE phenology_type_mod, ONLY: phenology_data_type, & phenology_type +USE casa_files_type_mod, ONLY: casa_files_type, casafile + IMPLICIT NONE PUBLIC :: zero_sum_casa @@ -73,7 +75,7 @@ SUBROUTINE alloc_casavariable( casabiome, casabiome_data, & TYPE (casa_pool_data_type), INTENT(INOUT) :: sum_casapool_data TYPE (casa_flux), INTENT(INOUT) :: sum_casaflux TYPE (casa_flux_data_type), INTENT(INOUT) :: sum_casaflux_data -TYPE (casa_bal), INTENT(INOUT) :: casabal +TYPE (casa_balance), INTENT(INOUT) :: casabal TYPE (casa_bal_data_type), INTENT(INOUT) :: casabal_data TYPE (casa_met), INTENT(INOUT) :: casamet TYPE (casa_met_data_type), INTENT(INOUT) :: casamet_data From 8d4ebc66c56763219437a40c1b1c3f9c3524a789 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 29 May 2026 15:33:03 +1000 Subject: [PATCH 29/40] Use new cable_surface_types_mod.F90 --- .../cable/shared/cable_surface_types_mod.F90 | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 index 48fb78dca..051c74018 100644 --- a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 +++ b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 @@ -25,12 +25,17 @@ MODULE cable_surface_types_mod CONTAINS - SUBROUTINE set_JULES_surface_types(surface_type_ids, nnpft, ncpft, npft,& - nnvg, ntype, urban, lake, soil, ice) - INTEGER, INTENT(INOUT), DIMENSION(:) :: surface_type_ids - INTEGER, INTENT(OUT) :: nnpft, npft, nnvg, ntype, urban, lake,& + SUBROUTINE link_JULES_surface_ids_to_CABLE(surface_type_ids, nnpft, ncpft,& + npft, nnvg, ntype, urban, lake, soil, ice) + ! JULES permits surface IDs to be assigned in the namelist, and needs to + ! link these IDs to I/O machinery (via the surface_type_ids) array and to + ! the science via the integer parameters. The parameters specify how many + ! surfaces are PFTs (they always occupy the first N slots), how many + ! non-PFT surfaces there are to round out the total count, which IDs are + ! urban, lake, soil or ice as they get special treatment. + INTEGER, INTENT(INOUT) :: surface_type_ids + INTEGER, INTENT(OUT) :: nnpft, ncpft, npft, nnvp, ntype, urban, lake,& soil, ice - INTEGER, INTENT(IN) :: ncpft surface_type_ids(evergreen_needleleaf) = 1 surface_type_ids(evergreen_broadleaf ) = 2 @@ -53,13 +58,13 @@ SUBROUTINE set_JULES_surface_types(surface_type_ids, nnpft, ncpft, npft,& npft = 13 nnvg = 4 urban = urban_cable - lake = lakes_cable + lake = lake_cable soil = barren_cable ice = ice_cable ntype = npft - nnvg nnpft = npft - ncpft - END SUBROUTINE set_JULES_surface_types + END SUBROUTINE link_JULES_surface_ids_to_CABLE END MODULE cable_surface_types_mod From 6d8f1a1c6e32dcab8a03947df3bb18cee17a6425 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 29 May 2026 16:14:00 +1000 Subject: [PATCH 30/40] Fix dummy argument intents --- .../AM3/control/cable/shared/cable_surface_types_mod.F90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 index 051c74018..7fba42ec5 100644 --- a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 +++ b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 @@ -33,7 +33,8 @@ SUBROUTINE link_JULES_surface_ids_to_CABLE(surface_type_ids, nnpft, ncpft,& ! surfaces are PFTs (they always occupy the first N slots), how many ! non-PFT surfaces there are to round out the total count, which IDs are ! urban, lake, soil or ice as they get special treatment. - INTEGER, INTENT(INOUT) :: surface_type_ids + INTEGER, INTENT(INOUT), DIMENSION(:) :: surface_type_ids + INTEGER, INTENT(IN ) :: ncpft INTEGER, INTENT(OUT) :: nnpft, ncpft, npft, nnvp, ntype, urban, lake,& soil, ice @@ -62,7 +63,7 @@ SUBROUTINE link_JULES_surface_ids_to_CABLE(surface_type_ids, nnpft, ncpft,& soil = barren_cable ice = ice_cable - ntype = npft - nnvg + ntype = npft + nnvg nnpft = npft - ncpft END SUBROUTINE link_JULES_surface_ids_to_CABLE From 2ebc5da99e697c19024abee371733753e7f5f5e0 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 29 May 2026 16:40:32 +1000 Subject: [PATCH 31/40] Accidental doubly defined argument --- .../AM3/control/cable/shared/cable_surface_types_mod.F90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 index 7fba42ec5..1769e7f75 100644 --- a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 +++ b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 @@ -35,8 +35,7 @@ SUBROUTINE link_JULES_surface_ids_to_CABLE(surface_type_ids, nnpft, ncpft,& ! urban, lake, soil or ice as they get special treatment. INTEGER, INTENT(INOUT), DIMENSION(:) :: surface_type_ids INTEGER, INTENT(IN ) :: ncpft - INTEGER, INTENT(OUT) :: nnpft, ncpft, npft, nnvp, ntype, urban, lake,& - soil, ice + INTEGER, INTENT(OUT) :: nnpft, npft, nnvp, ntype, urban, lake, soil, ice surface_type_ids(evergreen_needleleaf) = 1 surface_type_ids(evergreen_broadleaf ) = 2 From a01f924805e66b73b3cbe706423b4cd673d0bdb2 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 2 Jun 2026 09:50:55 +1000 Subject: [PATCH 32/40] Fix typos --- .../AM3/control/cable/shared/cable_surface_types_mod.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 index 1769e7f75..1340ae20a 100644 --- a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 +++ b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 @@ -35,7 +35,7 @@ SUBROUTINE link_JULES_surface_ids_to_CABLE(surface_type_ids, nnpft, ncpft,& ! urban, lake, soil or ice as they get special treatment. INTEGER, INTENT(INOUT), DIMENSION(:) :: surface_type_ids INTEGER, INTENT(IN ) :: ncpft - INTEGER, INTENT(OUT) :: nnpft, npft, nnvp, ntype, urban, lake, soil, ice + INTEGER, INTENT(OUT) :: nnpft, npft, nnvg, ntype, urban, lake, soil, ice surface_type_ids(evergreen_needleleaf) = 1 surface_type_ids(evergreen_broadleaf ) = 2 @@ -58,7 +58,7 @@ SUBROUTINE link_JULES_surface_ids_to_CABLE(surface_type_ids, nnpft, ncpft,& npft = 13 nnvg = 4 urban = urban_cable - lake = lake_cable + lake = lakes_cable soil = barren_cable ice = ice_cable From 4d6818152b48eb8c0167a78b86bf2dccd7742b87 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 2 Jun 2026 11:48:27 +1000 Subject: [PATCH 33/40] Remove IFDEF statement --- src/offline/cable_iovars.F90 | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/offline/cable_iovars.F90 b/src/offline/cable_iovars.F90 index 096ef0300..e4bd739fe 100644 --- a/src/offline/cable_iovars.F90 +++ b/src/offline/cable_iovars.F90 @@ -579,11 +579,7 @@ FUNCTION to_land_index_global(land_index_local) RESULT(land_index_global) !! Translate local land index on current MPI rank to global land index INTEGER, INTENT(IN) :: land_index_local INTEGER :: land_index_global -#ifdef UM_CBL - land_index_global = land_index_local -#else land_index_global = land_decomp_start + land_index_local - 1 -#endif END FUNCTION to_land_index_global END MODULE cable_IO_vars_module From 7a6d2e2cc58c01b9c4f9ee82b800efd2b4486fc7 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 2 Jun 2026 13:44:21 +1000 Subject: [PATCH 34/40] Remove duplicate files --- CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c87e5e615..70a94ae58 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,12 +88,9 @@ if(CABLE_LIBRARY) src/science/casa-cnp/bgcdriver.F90 src/science/casa-cnp/biogeochem_casa.F90 src/science/casa-cnp/casa_cnp.F90 - src/science/casa-cnp/casa_dimension.F90 src/science/casa-cnp/casa_feedback.F90 src/science/casa-cnp/casa_inout.F90 src/science/casa-cnp/casa_param.F90 - src/science/casa-cnp/casa_phenology.F90 - src/science/casa-cnp/casa_readbiome.F90 src/science/casa-cnp/casa_rplant.F90 src/science/casa-cnp/casa_sumcflux.F90 src/science/misc/cable_air.F90 From 3d0312a8bc2ee15488c2f76e903b84a9d0f4f659 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Tue, 2 Jun 2026 13:57:28 +1000 Subject: [PATCH 35/40] Set ncpft --- .../AM3/control/cable/shared/cable_surface_types_mod.F90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 index 1340ae20a..a5f3ca73e 100644 --- a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 +++ b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 @@ -34,8 +34,8 @@ SUBROUTINE link_JULES_surface_ids_to_CABLE(surface_type_ids, nnpft, ncpft,& ! non-PFT surfaces there are to round out the total count, which IDs are ! urban, lake, soil or ice as they get special treatment. INTEGER, INTENT(INOUT), DIMENSION(:) :: surface_type_ids - INTEGER, INTENT(IN ) :: ncpft - INTEGER, INTENT(OUT) :: nnpft, npft, nnvg, ntype, urban, lake, soil, ice + INTEGER, INTENT(OUT) :: nnpft, npft, nnvg, ncpft, ntype, urban, lake,& + soil, ice surface_type_ids(evergreen_needleleaf) = 1 surface_type_ids(evergreen_broadleaf ) = 2 @@ -57,6 +57,7 @@ SUBROUTINE link_JULES_surface_ids_to_CABLE(surface_type_ids, nnpft, ncpft,& npft = 13 nnvg = 4 + ncpft = 0 urban = urban_cable lake = lakes_cable soil = barren_cable From a892c05be691939e28b5a3048b904959c9716385 Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Fri, 12 Jun 2026 16:51:23 +1000 Subject: [PATCH 36/40] Remove coupled version of cable_surface_types --- CMakeLists.txt | 2 +- .../cable/shared/cable_surface_types_mod.F90 | 71 ------------------- 2 files changed, 1 insertion(+), 72 deletions(-) delete mode 100644 src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 diff --git a/CMakeLists.txt b/CMakeLists.txt index 70a94ae58..cbd38306c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -191,7 +191,7 @@ if(CABLE_LIBRARY) src/coupled/AM3/control/casa/types/casa_dimension.F90 src/coupled/AM3/control/casa/types/casa_inout.F90 src/coupled/AM3/control/casa/types/casa_readbiome.F90 - src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 + src/offline/cable_surface_types_mod.F90 src/offline/cable_iovars.F90 ) if (CMAKE_Fortran_COMPILER_ID MATCHES "Intel") diff --git a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 b/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 deleted file mode 100644 index a5f3ca73e..000000000 --- a/src/coupled/AM3/control/cable/shared/cable_surface_types_mod.F90 +++ /dev/null @@ -1,71 +0,0 @@ -MODULE cable_surface_types_mod - - IMPLICIT NONE - - PUBLIC - - ! cable_surface_type (nml) Index - INTEGER, PARAMETER :: evergreen_needleleaf = 1 - INTEGER, PARAMETER :: evergreen_broadleaf = 2 - INTEGER, PARAMETER :: deciduous_needleleaf = 3 - INTEGER, PARAMETER :: deciduous_broadleaf = 4 - INTEGER, PARAMETER :: shrub_cable = 5 - INTEGER, PARAMETER :: c3_grassland = 6 - INTEGER, PARAMETER :: c4_grassland = 7 - INTEGER, PARAMETER :: tundra = 8 - INTEGER, PARAMETER :: c3_cropland = 9 - INTEGER, PARAMETER :: c4_cropland = 10 - INTEGER, PARAMETER :: wetland = 11 - INTEGER, PARAMETER :: aust_mesic = 12 - INTEGER, PARAMETER :: aust_xeric = 13 - INTEGER, PARAMETER :: barren_cable = 14 - INTEGER, PARAMETER :: urban_cable = 15 - INTEGER, PARAMETER :: lakes_cable = 16 - INTEGER, PARAMETER :: ice_cable = 17 - -CONTAINS - - SUBROUTINE link_JULES_surface_ids_to_CABLE(surface_type_ids, nnpft, ncpft,& - npft, nnvg, ntype, urban, lake, soil, ice) - ! JULES permits surface IDs to be assigned in the namelist, and needs to - ! link these IDs to I/O machinery (via the surface_type_ids) array and to - ! the science via the integer parameters. The parameters specify how many - ! surfaces are PFTs (they always occupy the first N slots), how many - ! non-PFT surfaces there are to round out the total count, which IDs are - ! urban, lake, soil or ice as they get special treatment. - INTEGER, INTENT(INOUT), DIMENSION(:) :: surface_type_ids - INTEGER, INTENT(OUT) :: nnpft, npft, nnvg, ncpft, ntype, urban, lake,& - soil, ice - - surface_type_ids(evergreen_needleleaf) = 1 - surface_type_ids(evergreen_broadleaf ) = 2 - surface_type_ids(deciduous_needleleaf) = 3 - surface_type_ids(deciduous_broadleaf ) = 4 - surface_type_ids(shrub_cable ) = 5 - surface_type_ids(c3_grassland ) = 6 - surface_type_ids(c4_grassland ) = 7 - surface_type_ids(tundra ) = 8 - surface_type_ids(c3_cropland ) = 9 - surface_type_ids(c4_cropland ) = 10 - surface_type_ids(wetland ) = 11 - surface_type_ids(aust_mesic ) = 12 - surface_type_ids(aust_xeric ) = 13 - surface_type_ids(barren_cable ) = 14 - surface_type_ids(urban_cable ) = 15 - surface_type_ids(lakes_cable ) = 16 - surface_type_ids(ice_cable ) = 17 - - npft = 13 - nnvg = 4 - ncpft = 0 - urban = urban_cable - lake = lakes_cable - soil = barren_cable - ice = ice_cable - - ntype = npft + nnvg - nnpft = npft - ncpft - - END SUBROUTINE link_JULES_surface_ids_to_CABLE - -END MODULE cable_surface_types_mod From 39fc22033dd4c12062cc47c605b1d736e698535c Mon Sep 17 00:00:00 2001 From: Lachlan Whyborn Date: Sat, 13 Jun 2026 07:35:47 +1000 Subject: [PATCH 37/40] Fix name error --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cbd38306c..697294666 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -191,7 +191,7 @@ if(CABLE_LIBRARY) src/coupled/AM3/control/casa/types/casa_dimension.F90 src/coupled/AM3/control/casa/types/casa_inout.F90 src/coupled/AM3/control/casa/types/casa_readbiome.F90 - src/offline/cable_surface_types_mod.F90 + src/offline/cable_surface_types.F90 src/offline/cable_iovars.F90 ) if (CMAKE_Fortran_COMPILER_ID MATCHES "Intel") From cd3747da996dd83a85f60a5224ab94581ec3cc8f Mon Sep 17 00:00:00 2001 From: Whyborn Date: Tue, 16 Jun 2026 12:55:58 +1000 Subject: [PATCH 38/40] Update cable_user and CMakeLists.txt --- CMakeLists.txt | 5 +++-- src/util/cable_runtime_opts_mod.F90 | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 697294666..9a53d31d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,7 +126,7 @@ if(CABLE_LIBRARY) src/science/soilsnow/cbl_surfbv.F90 src/science/soilsnow/cbl_thermal.F90 src/science/soilsnow/cbl_trimb.F90 - src/science/landuse/landuse3.F90 + src/science/landuse/landuse3.F90 src/science/landuse/landuse_constant.F90 src/params/cable_phys_constants_mod.F90 src/params/grid_constants_cbl.F90 @@ -191,8 +191,9 @@ if(CABLE_LIBRARY) src/coupled/AM3/control/casa/types/casa_dimension.F90 src/coupled/AM3/control/casa/types/casa_inout.F90 src/coupled/AM3/control/casa/types/casa_readbiome.F90 - src/offline/cable_surface_types.F90 + src/offline/cable_surface_types.F90 src/offline/cable_iovars.F90 + src/coupled/esm/casa_landuse.F90 ) if (CMAKE_Fortran_COMPILER_ID MATCHES "Intel") add_compile_options(-r8 -i8) diff --git a/src/util/cable_runtime_opts_mod.F90 b/src/util/cable_runtime_opts_mod.F90 index 067945664..a2f138e56 100644 --- a/src/util/cable_runtime_opts_mod.F90 +++ b/src/util/cable_runtime_opts_mod.F90 @@ -89,6 +89,8 @@ MODULE cable_runtime_opts_mod casa_dump_read = .FALSE., & ! casa_dump_write = .FALSE., & ! soilsnow_init_spec = .FALSE., & ! + cable_runtime_coupled = .FALSE., & ! Whether CABLE is operating in + ! coupled mode. LogWorker = .TRUE. , & ! Write Output of each worker ! L.Stevens - Test Switches l_new_roughness_soil = .FALSE., & ! From 1c1e944f0609ce3f0bf519d6f4ad9864b3f1c0e2 Mon Sep 17 00:00:00 2001 From: Whyborn Date: Wed, 17 Jun 2026 13:25:53 +1000 Subject: [PATCH 39/40] Include ESM1.5 version of casa_landuse --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a53d31d5..347a3caf4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -193,7 +193,7 @@ if(CABLE_LIBRARY) src/coupled/AM3/control/casa/types/casa_readbiome.F90 src/offline/cable_surface_types.F90 src/offline/cable_iovars.F90 - src/coupled/esm/casa_landuse.F90 + src/science/landuse/casa_ESM15landuse.F90 ) if (CMAKE_Fortran_COMPILER_ID MATCHES "Intel") add_compile_options(-r8 -i8) From aaba5ca98516750f331e7083c8806dac2842465a Mon Sep 17 00:00:00 2001 From: Whyborn Date: Wed, 17 Jun 2026 13:48:29 +1000 Subject: [PATCH 40/40] Add missing file --- src/science/landuse/casa_ESM15landuse.F90 | 344 ++++++++++++++++++++++ 1 file changed, 344 insertions(+) create mode 100644 src/science/landuse/casa_ESM15landuse.F90 diff --git a/src/science/landuse/casa_ESM15landuse.F90 b/src/science/landuse/casa_ESM15landuse.F90 new file mode 100644 index 000000000..742819d0c --- /dev/null +++ b/src/science/landuse/casa_ESM15landuse.F90 @@ -0,0 +1,344 @@ +# define ESM15 YES +#ifdef ESM15 +module landuse_mod + +contains + +SUBROUTINE newlitter( casabiome,frac_x,ifpre_x,frac_y,ifpre_y, & + cplant_x,nplant_x,pplant_x,cplant_y,nplant_y,pplant_y, & + clitter_x,nlitter_x,plitter_x,clitter_y,nlitter_y,plitter_y ) +! Used for LAND USE CHANGE SIMULATION +! Call by casa_reinit +! Transfer the deforest C to litter, and re-allocate litter pools. +! Q.Zhang @ 29/05/2011 + USE cable_def_types_mod + USE casadimension + USE casaparm + USE casavariable + + implicit none + + TYPE (casa_biome), INTENT(IN) :: casabiome + logical,DIMENSION(mvtype),INTENT(in) :: ifpre_x,ifpre_y + real,DIMENSION(mvtype),INTENT(in) :: frac_x,frac_y + real(r_2),DIMENSION(mvtype,mplant),INTENT(in) :: cplant_x,nplant_x,pplant_x + real(r_2),DIMENSION(mvtype,mlitter),INTENT(in) :: clitter_x,nlitter_x,plitter_x + real(r_2),DIMENSION(mvtype,mplant),INTENT(inout) :: cplant_y,nplant_y,pplant_y + real(r_2),DIMENSION(mvtype,mlitter),INTENT(inout) :: clitter_y,nlitter_y,plitter_y + + ! local variable + real(r_2),DIMENSION(mvtype,mlitter,mplant) :: fromPtoL + real(r_2),DIMENSION(mvtype,mplant) :: dcplant,dnplant,dpplant,ratioLignintoN + real(r_2),DIMENSION(mvtype,mlitter) :: dclitter,dnlitter,dplitter,clitter_g,nlitter_g,plitter_g + real(r_2),DIMENSION(mlitter) :: dcY, dnY, dpY + real,DIMENSION(mvtype) :: dfrac + real :: sum_y + integer nL, nP, nv + + dcplant = 0. + dnplant = 0. + dpplant = 0. + ratioLignintoN = 0. + fromPtoL = 0. + dclitter = 0. + dnlitter = 0. + dplitter = 0. + dcY = 0. + dnY = 0. + dpY = 0. + sum_y=0. + dfrac = frac_y - frac_x + +! I. transfer removed plant to litter + DO nP =1,mplant + dcplant(:,nP) = cplant_x(:,nP) * frac_x(:) - cplant_y(:,nP) * frac_y(:) + IF (icycle > 1) dnplant(:,nP) = nplant_x(:,nP) * frac_x(:) - nplant_y(:,nP) * frac_y(:) + IF (icycle > 2) dpplant(:,nP) = pplant_x(:,nP) * frac_x(:) - pplant_y(:,nP) * frac_y(:) + END DO +! NB: logged wood should not be transfered to litter + dcplant(1:mlogmax,wood) = 0. + IF (icycle > 1) dnplant(1:mlogmax,wood) = 0. + IF (icycle > 2) dpplant(1:mlogmax,wood) = 0. + + WHERE(sum(dcplant,2) > 0.) + ! In land use, all plant nutient is allocated to litter pools without re-asorbsion.Q.Zhang 11/08/2011 + ratioLignintoN(:,leaf) = cplant_x(:,leaf)/max(1.0e-10,nplant_x(:,leaf)) & + * casabiome%fracLigninplant(:,leaf) + ratioLignintoN(:,froot)= cplant_x(:,froot)/max(1.0e-10,nplant_x(:,froot)) & + * casabiome%fracLigninplant(:,froot) + + fromPtoL(:,metb,leaf) = max(0.001, 0.85 - 0.018 *ratioLignintoN(:,leaf)) + fromPtoL(:,metb,froot) = max(0.001, 0.85 - 0.018 *ratioLignintoN(:,froot)) + fromPtoL(:,str,leaf) = 1.0 - fromPtoL(:,metb,leaf) + fromPtoL(:,str,froot) = 1.0 - fromPtoL(:,metb,froot) + fromPtoL(:,cwd,wood) = 1.0 + ENDWHERE + + DO nv=1, mvtype + ! transfer removed C,N,P pools from plant to litter + IF(ifpre_x(nv) .and. frac_x(nv)>frac_y(nv))THEN + + DO nL=1,mlitter + DO nP=1,mplant + dclitter(nv,nL) = dclitter(nv,nL)+ fromPtoL(nv,nL,nP) * dcplant(nv,nP) + ENDDO + ENDDO + + IF(icycle > 1) THEN + dnlitter(nv,str) = (fromPtoL(nv,str,leaf) * dcplant(nv,leaf) & + + fromPtoL(nv,str,froot) * dcplant(nv,froot)) * ratioNCstrfix + dnlitter(nv,metb) = dnplant(nv,leaf) + dnplant(nv,froot) - dnlitter(nv,str) + dnlitter(nv,CWD) = dnplant(nv,wood) + ENDIF !end "icycle >1" + + IF(icycle > 2) THEN + dplitter(nv,str) = (fromPtoL(nv,str,leaf) * dcplant(nv,leaf) & + + fromPtoL(nv,str,froot)* dcplant(nv,froot)) * ratioPCstrfix + dplitter(nv,metb) = dpplant(nv,leaf) + dpplant(nv,froot) -dplitter(nv,str) + dplitter(nv,CWD) = dpplant(nv,wood) + ENDIF !of "icycle >2" + ENDIF + END DO + +! II. re-allocate litter pools according to patch weights. +! average pool variables from gridcell to new patches. + DO nv=1,mvtype + IF (ifpre_x(nv) .and. dfrac(nv)<0.0) THEN + dcY(:) = dcY(:) + dclitter(nv,:) + clitter_x(nv,:)*abs(dfrac(nv)) + IF (icycle > 1) dnY(:) = dnY(:) + dnlitter(nv,:) + nlitter_x(nv,:)*abs(dfrac(nv)) + IF (icycle > 2) dpY(:) = dpY(:) + dplitter(nv,:) + plitter_x(nv,:)*abs(dfrac(nv)) + ENDIF + END DO + + DO nv=1,mvtype + IF ((frac_x(nv)-frac_y(nv))<0.) THEN + sum_y = sum_y + abs(dfrac(nv)) + ENDIF + END DO + + DO nv=1,mvtype + IF (ifpre_y(nv)) THEN ! pft exist in the 2nd year + IF ((frac_x(nv)-frac_y(nv))>0.) THEN ! patch weight decrease + clitter_y(nv,:) = clitter_x(nv,:) + IF (icycle > 1) nlitter_y(nv,:) = nlitter_x(nv,:) + IF (icycle > 2) plitter_y(nv,:) = plitter_x(nv,:) + ELSE IF ((frac_x(nv)-frac_y(nv))<0.) THEN ! patch increase + clitter_y(nv,:) = (clitter_x(nv,:)*frac_x(nv) + dcY(:)*dfrac(nv)/sum_y) / frac_y(nv) + IF (icycle > 1) nlitter_y(nv,:) = (nlitter_x(nv,:)*frac_x(nv) + dnY(:)*dfrac(nv)/sum_y) / frac_y(nv) + IF (icycle > 2) plitter_y(nv,:) = (plitter_x(nv,:)*frac_x(nv) + dpY(:)*dfrac(nv)/sum_y) / frac_y(nv) + ELSE ! no change + clitter_y(nv,:) = clitter_x(nv,:) + IF (icycle > 1) nlitter_y(nv,:) = nlitter_x(nv,:) + IF (icycle > 2) plitter_y(nv,:) = plitter_x(nv,:) + ENDIF + ENDIF + END DO + +END SUBROUTINE newlitter + + +SUBROUTINE newlitter_thin( casabiome,frac_x,ifpre_x,frac_y,ifpre_y, & + cplant_x,nplant_x,pplant_x,cplant_y,nplant_y,pplant_y,& + clitter_x,nlitter_x,plitter_x,clitter_y,nlitter_y,plitter_y,& + thinRatio) +! Used for THINNING FOREST +! Call by casa_reinit +! Transfer the deforest C to litter, and re-allocate litter pools. +! Q.Zhang @ 29/05/2011 +! L.Stevens @ 8/06/2018 + USE cable_def_types_mod + USE casadimension + USE casaparm + USE casavariable + + implicit none + + TYPE (casa_biome), INTENT(IN) :: casabiome + logical,DIMENSION(mvtype),INTENT(in) :: ifpre_x,ifpre_y + real,DIMENSION(mvtype),INTENT(in) :: frac_x,frac_y,thinRatio + real(r_2),DIMENSION(mvtype,mplant),INTENT(in) ::cplant_x,nplant_x,pplant_x + real(r_2),DIMENSION(mvtype,mlitter),INTENT(in) ::clitter_x,nlitter_x,plitter_x + real(r_2),DIMENSION(mvtype,mplant),INTENT(inout) ::cplant_y,nplant_y,pplant_y + real(r_2),DIMENSION(mvtype,mlitter),INTENT(inout) ::clitter_y,nlitter_y,plitter_y + + ! local variable + real(r_2),DIMENSION(mvtype,mlitter,mplant) :: fromPtoL + real(r_2),DIMENSION(mvtype,mplant) ::dcplant,dnplant,dpplant,ratioLignintoN + real(r_2),DIMENSION(mvtype,mlitter) :: dclitter,dnlitter,dplitter,clitter_g,nlitter_g,plitter_g + integer nL, nP, nv + integer, parameter :: mforest = 4 + + dcplant = 0. + dnplant = 0. + dpplant = 0. + ratioLignintoN = 0. + fromPtoL = 0. + dclitter = 0. + dnlitter = 0. + dplitter = 0. + +! I. transfer removed plant to litter + DO nP =1,mplant + dcplant(:,nP) = cplant_x(:,nP) * frac_x(:) -cplant_y(:,nP) *frac_y(:) + IF (icycle > 1) dnplant(:,nP) = nplant_x(:,nP) * frac_x(:) -nplant_y(:,nP) * frac_y(:) + IF (icycle > 2) dpplant(:,nP) = pplant_x(:,nP) * frac_x(:) -pplant_y(:,nP) * frac_y(:) + END DO +! NB: logged wood should not be transfered to litter + dcplant(1:mlogmax,wood) = 0. + IF (icycle > 1) dnplant(1:mlogmax,wood) = 0. + IF (icycle > 2) dpplant(1:mlogmax,wood) = 0. + + WHERE(sum(dcplant,2) > 0.) + ! In land use, all plant nutient is allocated to litter pools without re-asorbsion.Q.Zhang 11/08/2011 + ratioLignintoN(:,leaf) =cplant_x(:,leaf)/max(1.0e-10,nplant_x(:,leaf)) & + * casabiome%fracLigninplant(:,leaf) + ratioLignintoN(:,froot)=cplant_x(:,froot)/max(1.0e-10,nplant_x(:,froot)) & + * casabiome%fracLigninplant(:,froot) + + fromPtoL(:,metb,leaf) = max(0.001, 0.85 - 0.018*ratioLignintoN(:,leaf)) + fromPtoL(:,metb,froot) = max(0.001, 0.85 - 0.018*ratioLignintoN(:,froot)) + fromPtoL(:,str,leaf) = 1.0 - fromPtoL(:,metb,leaf) + fromPtoL(:,str,froot) = 1.0 - fromPtoL(:,metb,froot) + fromPtoL(:,cwd,wood) = 1.0 + ENDWHERE + + DO nv=1, mforest + ! average litter pools on gridcell + clitter_g(nv,:) = clitter_x(nv,:) * frac_x(nv) + nlitter_g(nv,:) = nlitter_x(nv,:) * frac_x(nv) + plitter_g(nv,:) = plitter_x(nv,:) * frac_x(nv) + ! transfer removed C,N,P pools from plant to litter + IF(ifpre_x(nv) .and. thinRatio(nv)<1.0)THEN + + DO nL=1,mlitter + DO nP=1,mplant + dclitter(nv,nL) = fromPtoL(nv,nL,nP) *dcplant(nv,nP) + !clitter_g(nv,nL) = clitter_g(nv,nL) + fromPtoL(nv,nL,nP) *dcplant(nv,nP) + ENDDO + ENDDO + + IF(icycle > 1) THEN + dnlitter(nv,str) = (fromPtoL(nv,str,leaf) * dcplant(nv,leaf) & + + fromPtoL(nv,str,froot) * dcplant(nv,froot))* ratioNCstrfix + dnlitter(nv,metb) = dnplant(nv,leaf) + dnplant(nv,froot) -dnlitter(nv,str) + dnlitter(nv,CWD) = dnplant(nv,wood) + ENDIF !end "icycle >1" + + IF(icycle > 2) THEN + dplitter(nv,str) = (fromPtoL(nv,str,leaf) * dcplant(nv,leaf) & + + fromPtoL(nv,str,froot)* dcplant(nv,froot))* ratioPCstrfix + dplitter(nv,metb) = dpplant(nv,leaf) + dpplant(nv,froot)-dplitter(nv,str) + dplitter(nv,CWD) = dpplant(nv,wood) + ENDIF !of "icycle >2" + ENDIF + END DO + + clitter_g = clitter_g + dclitter + IF (icycle > 1) nlitter_g = nlitter_g + dnlitter + IF (icycle > 2) plitter_g = plitter_g + dplitter + + DO nv=1,mforest + IF (ifpre_y(nv)) THEN ! pft exist in the 2nd year + clitter_y(nv,:) = clitter_g(nv,:)/frac_y(nv) + IF (icycle > 1) nlitter_y(nv,:) = nlitter_g(nv,:)/frac_y(nv) + IF (icycle > 2) plitter_y(nv,:) = plitter_g(nv,:)/frac_y(nv) + ENDIF + END DO + +END SUBROUTINE newlitter_thin + + +SUBROUTINE newplant(cplant_x,frac_x,ifpre_x, & + cplant_y,frac_y,ifpre_y,logc) +! Used for LAND USE CHANGE SIMULATION +! Call by casa_reinit +! Re-allcate plant C,N,P pools to new patch array. +! Q.Zhang @ 29/05/2011 + USE cable_def_types_mod + USE casadimension + USE casaparm + + implicit none + + logical,DIMENSION(mvtype),INTENT(in) :: ifpre_x,ifpre_y + real,DIMENSION(mvtype),INTENT(in) :: frac_x,frac_y + real(r_2),DIMENSION(mvtype,mplant),INTENT(inout) :: cplant_x,cplant_y + real(r_2),DIMENSION(mvtype),INTENT(inout) :: logc + ! local variable + integer p + + DO p = 1, mvtype + ! exist in both years + IF (ifpre_x(p) .and. ifpre_y(p)) THEN + IF (abs(frac_x(p)-0.0)<1.e-8 .or. abs(frac_y(p)-0.0)<1.e-8) THEN +print *, 'Lest Veg0', p,ifpre_x(p),ifpre_y(p),frac_x(p),frac_y(p) + STOP "vegetation fraction .eq. 0" + END IF + IF ((frac_x(p)-frac_y(p))>0.) THEN ! patch weight decrease + ! New pools + cplant_y(p,:) = cplant_x(p,:) + ! Save wood log + IF (p<=mlogmax) logc(p) = cplant_x(p,wood) * (frac_x(p) - frac_y(p)) + ELSE ! patch weight incease + cplant_y(p,:) = cplant_x(p,:)*frac_x(p)/frac_y(p) + END IF + ! plant clear in the second year + ELSEIF (ifpre_x(p) .and. .not.ifpre_y(p)) THEN + IF (p<=mlogmax) logc(p) = cplant_x(p,wood) * (frac_x(p) - frac_y(p)) + ! does not exist in both years + ELSE + + END IF + + END DO ! end pft loop + +END SUBROUTINE newplant + + +SUBROUTINE newsoil(nd,csoil_x,frac_x,ifpre_x,csoil_y,frac_y,ifpre_y) +! Used for LAND USE CHANGE SIMULATION +! Call by casa_reinit +! Re-allocate soil C,N and P pools +! Q.Zhang @ 29/05/2011 +! L.stevens @ 19/01/2018 + USE cable_def_types_mod + USE casadimension + USE casaparm + + implicit none + + integer,INTENT(in) :: nd ! dimension of soil pool + logical,DIMENSION(mvtype),INTENT(in) :: ifpre_x,ifpre_y + real,DIMENSION(mvtype),INTENT(in) :: frac_x,frac_y + real(r_2),DIMENSION(mvtype,nd),INTENT(inout) :: csoil_x,csoil_y +! local variable + real,DIMENSION(nd) :: tmpVar + real :: Rcount + real,DIMENSION(mvtype) :: dfrac + integer nv + + dfrac = frac_y - frac_x ! current minus previous + tmpVar = 0.0 + Rcount = 0.0 + + DO nv=1,mvtype + IF (dfrac(nv)<0.0) THEN + tmpVar = tmpVar + ABS(dfrac(nv))*csoil_x(nv,:) + Rcount = Rcount + ABS(dfrac(nv)) + ENDIF + END DO + if (Rcount > 0) tmpVar = tmpVar/Rcount + + DO nv=1,mvtype + IF (dfrac(nv) > 0.0) THEN ! pft exist in the 2nd year + csoil_y(nv,:) = (dfrac(nv)*tmpVar + & + csoil_x(nv,:) * frac_x(nv)) / frac_y(nv) + ELSE + csoil_y(nv,:) = csoil_x(nv,:) + ENDIF + END DO + +END SUBROUTINE newsoil + +End module landuse_mod +#endif