diff --git a/ConditionalStatistics.pyx b/ConditionalStatistics.pyx index 24a8aeff..6bd6b7f5 100644 --- a/ConditionalStatistics.pyx +++ b/ConditionalStatistics.pyx @@ -41,8 +41,14 @@ cdef class ConditionalStatistics: self.CondStatsClasses.append(SpectraStatistics(Gr,PV, DV, NC, Pa)) if 'Null' in conditional_statistics: self.CondStatsClasses.append(NullCondStats()) - - + # # __ + # if 'NanStatistics' in conditional_statistics: + # self.CondStatsClasses.append(NanStatistics(Gr, PV, DV, NC, Pa)) + # # if 'Test' in conditional_statistics: + # # self.CondStatsClasses.append(TestStatistics(Gr, PV, DV, NC, Pa)) + # # __ + # + # print('CondStatsClasses: ', self.CondStatsClasses) return @@ -67,7 +73,7 @@ cdef class NullCondStats: cdef class SpectraStatistics: def __init__(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_CondStats NC, ParallelMPI.ParallelMPI Pa): - + Pa.root_print('SpectraStatistics initialized') cdef: Py_ssize_t ii, i, jj, j double xi, yj @@ -133,6 +139,17 @@ cdef class SpectraStatistics: self.Y_Pencil.initialize(Gr,Pa,dim=1) + # # _____ + # Pa.root_print('NanStatistics initialization') + # + # self.sk_arr = np.zeros((1,2),dtype=np.double) + # self.qtk_arr = np.zeros((1,2),dtype=np.double) + # + # nz = np.arange(Gr.dims.n[2], dtype=np.double) * Gr.dims.dx[2] + # # NC.create_condstats_group('nan_array','nz', nz, Gr, Pa) + # # set up the names of the variables + # NC.add_condstat('sk_arr', 'spectra', 'wavenumber', Gr, Pa) + # NC.add_condstat('qtk_arr', 'spectra', 'wavenumber', Gr, Pa) return @@ -141,7 +158,7 @@ cdef class SpectraStatistics: cpdef stats_io(self, Grid.Grid Gr, ReferenceState.ReferenceState RS, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_CondStats NC, ParallelMPI.ParallelMPI Pa): - + Pa.root_print('calling ConditionalStatistics.SpectraStatistics stats_io') cdef: Py_ssize_t i, j, k, ijk, var_shift Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] @@ -374,3 +391,239 @@ cdef class SpectraStatistics: return spec +# +# # __________ +# cdef class NanStatistics: +# def __init__(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, +# NetCDFIO_CondStats NC, ParallelMPI.ParallelMPI Pa): +# Pa.root_print('NanStatistics initialized') +# # cdef: +# # Py_ssize_t nz = Gr.dims.n[2] +# +# # self.sk_arr = np.zeros((1,2),dtype=np.double) +# # self.qtk_arr = np.zeros((1,2),dtype=np.double) +# self.sk_arr = np.zeros((Gr.dims.npd),dtype=np.double) +# self.qtk_arr = np.zeros((Gr.dims.npd),dtype=np.double) +# +# # nz = np.arange(Gr.dims.n[2], dtype=np.double) * Gr.dims.dx[2] +# # NC.create_condstats_group('nan_array','nz', nz, Gr, Pa) +# nz = np.arange(Gr.dims.npd, dtype=np.double) +# NC.create_condstats_group('nan_array','nz',nz, Gr, Pa) +# # set up the names of the variables +# NC.add_condstat('sk_arr', 'nan_array', 'nz', Gr, Pa) +# NC.add_condstat('qtk_arr', 'nan_array', 'nz', Gr, Pa) +# +# +# ## from NetCDFIO_CondStats: +# # root_grp = nc.Dataset(self.path_plus_file, 'w', format='NETCDF4') +# # sub_grp = root_grp.createGroup(groupname) +# # sub_grp.createDimension('z', Gr.dims.n[2]) +# # sub_grp.createDimension(dimname, len(dimval)) +# # sub_grp.createDimension('t', None) +# # z = sub_grp.createVariable('z', 'f8', ('z')) +# # z[:] = np.array(Gr.z[Gr.dims.gw:-Gr.dims.gw]) +# # dim = sub_grp.createVariable(dimname, 'f8', (dimname)) +# # dim[:] = np.array(dimval[:]) +# # sub_grp.createVariable('t', 'f8', ('t')) +# +# return +# +# +# cpdef stats_io(self, Grid.Grid Gr, ReferenceState.ReferenceState RS, PrognosticVariables.PrognosticVariables PV, +# DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_CondStats NC, ParallelMPI.ParallelMPI Pa): +# +# Pa.root_print('!!!! calling ConditionalStatistics.NanStatistics stats_io') +# +# # _____ +# message = 'hi' +# print('sk_arr before:', self.sk_arr) +# self.nan_checking(message,Gr,PV,DV,NC,Pa) +# +# +# print('sk_arr after:', self.sk_arr) +# if 's' in PV.name_index: +# NC.write_condstat('sk_arr', 'nan_array', self.sk_arr[:,:], Pa) +# if 'qt' in PV.name_index: +# NC.write_condstat('qtk_arr', 'nan_array', self.qt_arr[:,:], Pa) +# +# return +# +# +# +# # def debug_tend(self,message): +# cpdef nan_checking(self,message, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, +# DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_CondStats NC, ParallelMPI.ParallelMPI Pa): +# print('nan_checking') +# cdef: +# PrognosticVariables.PrognosticVariables PV_ = PV +# DiagnosticVariables.DiagnosticVariables DV_ = DV +# Grid.Grid Gr_ = Gr +# +# cdef: +# Py_ssize_t u_varshift = PV_.get_varshift(Gr,'u') +# Py_ssize_t v_varshift = PV_.get_varshift(Gr,'v') +# Py_ssize_t w_varshift = PV_.get_varshift(Gr,'w') +# Py_ssize_t s_varshift = PV_.get_varshift(Gr,'s') +# +# Py_ssize_t istride = Gr_.dims.nlg[1] * Gr_.dims.nlg[2] +# Py_ssize_t jstride = Gr_.dims.nlg[2] +# Py_ssize_t imax = Gr_.dims.nlg[0] +# Py_ssize_t jmax = Gr_.dims.nlg[1] +# Py_ssize_t kmax = Gr_.dims.nlg[2] +# Py_ssize_t ijk_max = imax*istride + jmax*jstride + kmax +# +# Py_ssize_t i, j, k, ijk, ishift, jshift +# Py_ssize_t imin = 0#Gr_.dims.gw +# Py_ssize_t jmin = 0#Gr_.dims.gw +# Py_ssize_t kmin = 0#Gr_.dims.gw +# +# # __ +# PV_.values[u_varshift+1] = np.nan +# # __ +# +# u_max = np.nanmax(PV_.tendencies[u_varshift:v_varshift]) +# uk_max = np.nanargmax(PV_.tendencies[u_varshift:v_varshift]) +# u_min = np.nanmin(PV_.tendencies[u_varshift:v_varshift]) +# uk_min = np.nanargmin(PV_.tendencies[u_varshift:v_varshift]) +# v_max = np.nanmax(PV_.tendencies[v_varshift:w_varshift]) +# vk_max = np.nanargmax(PV_.tendencies[v_varshift:w_varshift]) +# v_min = np.nanmin(PV_.tendencies[v_varshift:w_varshift]) +# vk_min = np.nanargmin(PV_.tendencies[v_varshift:w_varshift]) +# w_max = np.nanmax(PV_.tendencies[w_varshift:s_varshift]) +# wk_max = np.nanargmax(PV_.tendencies[w_varshift:s_varshift]) +# w_min = np.nanmin(PV_.tendencies[w_varshift:s_varshift]) +# wk_min = np.nanargmin(PV_.tendencies[w_varshift:s_varshift]) +# +# u_nan = np.isnan(PV_.tendencies[u_varshift:v_varshift]).any() +# uk_nan = np.argmax(PV_.tendencies[u_varshift:v_varshift]) +# v_nan = np.isnan(PV_.tendencies[v_varshift:w_varshift]).any() +# vk_nan = np.argmax(PV_.tendencies[v_varshift:w_varshift]) +# w_nan = np.isnan(PV_.tendencies[w_varshift:s_varshift]).any() +# wk_nan = np.argmax(PV_.tendencies[w_varshift:s_varshift]) +# +# if Pa.rank == 0: +# print(message, 'debugging (max, min, nan): ') +# print('shifts', u_varshift, v_varshift, w_varshift, s_varshift) +# print('u tend: ', u_max, uk_max, u_min, uk_min, u_nan, uk_nan) +# print('v tend: ', v_max, vk_max, v_min, vk_min, v_nan, vk_nan) +# print('w tend: ', w_max, wk_max, w_min, wk_min, w_nan, wk_nan) +# +# if 'qt' in PV_.name_index: +# qt_varshift = PV_.get_varshift(Gr,'qt') +# ql_varshift = DV_.get_varshift(Gr,'ql') +# +# s_max = np.nanmax(PV_.tendencies[s_varshift:qt_varshift]) +# sk_max = np.nanargmax(PV_.tendencies[s_varshift:qt_varshift]) +# s_min = np.nanmin(PV_.tendencies[s_varshift:qt_varshift]) +# sk_min = np.nanargmin(PV_.tendencies[s_varshift:qt_varshift]) +# qt_max = np.nanmax(PV_.tendencies[qt_varshift:-1]) +# qtk_max = np.nanargmax(PV_.tendencies[qt_varshift:-1]) +# qt_min = np.nanmin(PV_.tendencies[qt_varshift:-1]) +# qtk_min = np.nanargmin(PV_.tendencies[qt_varshift:-1]) +# +# s_nan = np.isnan(PV_.tendencies[s_varshift:qt_varshift]).any() +# sk_nan = np.argmax(PV_.tendencies[s_varshift:qt_varshift]) +# qt_nan = np.isnan(PV_.tendencies[qt_varshift:-1]).any() +# qtk_nan = np.argmax(PV_.tendencies[qt_varshift:-1]) +# +# s_max_val= np.nanmax(PV_.values[s_varshift:qt_varshift]) +# sk_max_val = np.nanargmax(PV_.values[s_varshift:qt_varshift]) +# s_min_val = np.nanmin(PV_.values[s_varshift:qt_varshift]) +# sk_min_val = np.nanargmin(PV_.tendencies[s_varshift:qt_varshift]) +# s_nan_val = np.isnan(PV_.values[s_varshift:qt_varshift]).any() +# sk_nan_val = np.argmax(PV_.values[s_varshift:qt_varshift]) +# qt_max_val = np.nanmax(PV_.values[qt_varshift:-1]) +# qtk_max_val = np.nanargmax(PV_.values[qt_varshift:-1]) +# qt_min_val = np.nanmin(PV_.values[qt_varshift:-1]) +# if qt_min_val < 0: +# Pa.root_print('qt val negative') +# qtk_min_val = np.nanargmin(PV_.values[qt_varshift:-1]) +# qt_nan_val = np.isnan(PV_.values[qt_varshift:-1]).any() +# qtk_nan_val = np.argmax(PV_.values[qt_varshift:-1]) +# +# ql_max_val = np.nanmax(DV_.values[ql_varshift:(ql_varshift+ijk_max)]) +# ql_min_val = np.nanmin(DV_.values[ql_varshift:(ql_varshift+ijk_max)]) +# qlk_max_val = np.nanargmax(DV_.values[ql_varshift:(ql_varshift+ijk_max)]) +# qlk_min_val = np.nanargmin(DV_.values[ql_varshift:(ql_varshift+ijk_max)]) +# ql_nan_val = np.isnan(DV_.values[ql_varshift:(ql_varshift+ijk_max)]).any() +# qlk_nan_val = np.argmax(DV_.values[ql_varshift:(ql_varshift+ijk_max)]) +# +# if Pa.rank == 0: +# print('s tend: ', s_max, sk_max, s_min, sk_min, s_nan, sk_nan) +# print('s val: ', s_max_val, sk_max_val, s_min_val, sk_min_val, s_nan_val, sk_nan_val) +# print('qt tend: ', qt_max, qtk_max, qt_min, qtk_min, qt_nan, qtk_nan) +# print('qt val: ', qt_max_val, qtk_max_val, qt_min_val, qtk_min_val, qt_nan_val, qtk_nan_val) +# print('ql val: ', ql_max_val, qlk_max_val, ql_min_val, qlk_min_val, ql_nan_val, qlk_nan_val) +# +# +# #for name in PV.name_index.keys(): +# # with nogil: +# if 1 == 1: +# for i in range(imin, imax): +# ishift = i * istride +# for j in range(jmin, jmax): +# jshift = j * jstride +# for k in range(kmin, kmax): +# ijk = ishift + jshift + k +# if np.isnan(PV_.values[s_varshift+ijk]): +# self.sk_arr = np.append(self.sk_arr,np.array([[ijk,k]]),axis=0) +# if np.isnan(PV_.values[qt_varshift+ijk]): +# self.qtk_arr = np.append(self.qtk_arr,np.array([[ijk,k]]),axis=0) +# if np.size(self.sk_arr) > 1 or np.size(self.qtk_arr) > 1: +# self.output_nan_array(Gr, PV, DV, NC, Pa) +# # if np.size(self.sk_arr) > 1: +# # if self.Pa.rank == 0: +# # print('sk_arr size: ', self.sk_arr.shape) +# # print('sk_arr:', self.sk_arr) +# # if np.size(self.qtk_arr) > 1: +# # if self.Pa.rank == 0: +# # print('qtk_arr size: ', self.qtk_arr.shape) +# # print('qtk_arr: ', self.qtk_arr) +# +# else: +# s_max = np.nanmax(PV_.tendencies[s_varshift:-1]) +# sk_max = np.nanargmax(PV_.tendencies[s_varshift:-1]) +# s_min = np.nanmin(PV_.tendencies[s_varshift:-1]) +# sk_min = np.nanargmin(PV_.tendencies[s_varshift:-1]) +# s_nan = np.isnan(PV_.tendencies[s_varshift:-1]).any() +# sk_nan = np.argmax(PV_.tendencies[s_varshift:-1]) +# +# s_max_val= np.nanmax(PV_.values[s_varshift:-1]) +# sk_max_val = np.nanargmax(PV_.values[s_varshift:-1]) +# s_min_val = np.nanmin(PV_.values[s_varshift:-1]) +# sk_min_val = np.nanargmin(PV_.tendencies[s_varshift:-1]) +# s_nan_val = np.isnan(PV_.values[s_varshift:-1]).any() +# sk_nan_val = np.argmax(PV_.values[s_varshift:-1]) +# +# if Pa.rank == 0: +# print('s tend: ', s_max, sk_max, s_min, sk_min, s_nan, sk_nan) +# print('s val: ', s_max_val, sk_max_val, s_min_val, sk_min_val, s_nan_val, sk_nan_val) +# +# +# if 1 == 1: +# for i in range(imin, imax): +# ishift = i * istride +# for j in range(jmin, jmax): +# jshift = j * jstride +# for k in range(kmin, kmax): +# ijk = ishift + jshift + k +# if np.isnan(PV_.values[s_varshift+ijk]): +# self.sk_arr = np.append(self.sk_arr,np.array([[ijk,k]]),axis=0) +# if np.size(self.sk_arr) > 1: +# self.output_nan_array(Gr, PV, DV, NC, Pa) +# # if self.Pa.rank == 0: +# # print('sk_arr size: ', self.sk_arr.shape) +# # print('sk_arr:', self.sk_arr) +# return +# +# +# cpdef output_nan_array(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, +# DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_CondStats NC, ParallelMPI.ParallelMPI Pa): +# +# if 's' in PV.name_index: +# NC.write_condstat('sk_arr', 'nan_array', self.sk_arr[:,:], Pa) +# if 'qt' in PV.name_index: +# NC.write_condstat('qtk_arr', 'nan_array', self.qt_arr[:,:], Pa) +# +# return + diff --git a/Csrc/cc_statistics.h b/Csrc/cc_statistics.h new file mode 100644 index 00000000..9e85d88a --- /dev/null +++ b/Csrc/cc_statistics.h @@ -0,0 +1,216 @@ +#pragma once // preprocessor statement + +#include +#include + + +void horizontal_mean(struct DimStruct *dims, double* restrict values, double* restrict mean){ +// printf("calling horizontal mean \n"); +// /* +// Compute the horizontal mean of the array pointed to by values. +// values should have dimension of Gr.dims.nlg[0] * Gr.dims.nlg[1] +// * Gr.dims.nlg[1]. +// +// :param Gr: Grid class +// :param values1: pointer to array of type double containing first value in product +// :return: memoryview type double with dimension Gr.dims.nlg[2] +// ''' +// # Gr.dims.n[i] = namelist['grid']['ni'] (e.g. n[0] = 'nx') --> total number of pts +// # Gr.dims.nl[i] = Gr.dims.n[i] // mpi_dims[i] --> local number of pts (per processor) +// # Gr.dims.nlg[i] = Gr.dims.nl[i] + 2*gw --> local number of pts incl ghost points +// # i = 0,1,2 +// */ +// + const ssize_t gw = dims->gw; +// printf("values[gw] = %f\n", values[gw]); +// printf("before: mean[gw] = %f\n", mean[gw]); + + double *mean_local = (double *)malloc(sizeof(double) * dims->nlg[2]); // Dynamically allocate array + double *mean_ = (double *)malloc(sizeof(double) * dims->nlg[2]); + int ijk; + const ssize_t imin = dims->gw; + const ssize_t jmin = dims->gw; + const ssize_t kmin = 0; + const ssize_t imax = dims->nlg[0] - dims->gw; + const ssize_t jmax = dims->nlg[1] - dims->gw; + const ssize_t kmax = dims->nlg[2]; + const ssize_t istride = dims->nlg[1] * dims->nlg[2]; + const ssize_t jstride = dims->nlg[2]; + //int ishift, jshift; + const double n_horizontal_i = 1.0/(dims->n[1]*dims->n[0]); + + for(ssize_t k=kmin; kng[2], MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +// MPI_Allreduce(&mean_local, &mean_, dims->n[2], MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + for(ssize_t k=kmin; kng[2] ?) + datatype = datatype of sendbuf + op = MPI_SUM + */ + + /* + // Example for Averaging using MPI_Allreduce: + rand_nums = create_rand_nums(num_elements_per_proc); + // Sum the numbers locally + float local_sum = 0; + int i; + for (i = 0; i < num_elements_per_proc; i++) { + local_sum += rand_nums[i]; + } + + // Reduce all of the local sums into the global sum in order to + // calculate the mean + float global_sum; + MPI_Allreduce(&local_sum, &global_sum, 1, MPI_FLOAT, MPI_SUM, + MPI_COMM_WORLD); + float mean = global_sum / (num_elements_per_proc * world_size); + */ + + + /* + // Example for Averaging from: http://mpitutorial.com/tutorials/mpi-reduce-and-allreduce/ + + float *rand_nums = NULL; + rand_nums = create_rand_nums(num_elements_per_proc); + + // Sum the numbers locally + float local_sum = 0; + int i; + for (i = 0; i < num_elements_per_proc; i++) { + local_sum += rand_nums[i]; + } + + // Print the random numbers on each process + printf("Local sum for process %d - %f, avg = %f\n", + world_rank, local_sum, local_sum / num_elements_per_proc); + + // Reduce all of the local sums into the global sum + float global_sum; + MPI_Reduce(&local_sum, &global_sum, 1, MPI_FLOAT, MPI_SUM, 0, + MPI_COMM_WORLD); + + // Print the result + if (world_rank == 0) { + printf("Total sum = %f, avg = %f\n", global_sum, + global_sum / (world_size * num_elements_per_proc)); + }*/ + + // in Cython: + // mpi.MPI_Allreduce(&mean_local[0],&mean[0],Gr.dims.nlg[2],mpi.MPI_DOUBLE,mpi.MPI_SUM,self.cart_comm_sub_xy) + + + //return mean; + + + // MPI Reduce vs. Allreduce + // MPI_Reduce: takes an array of input elements on each process and returns an array of output elements to the root process + // MPI_Allreduce: reduces the values and distributes the results to all processes + + +void horizontal_mean_const(struct DimStruct *dims, const double* restrict values, double* restrict mean){ +// printf("calling horizontal mean \n"); +// /* +// Compute the horizontal mean of the array pointed to by values. +// values should have dimension of Gr.dims.nlg[0] * Gr.dims.nlg[1] +// * Gr.dims.nlg[1]. +// +// :param Gr: Grid class +// :param values1: pointer to array of type double containing f irst value in product +// :return: memoryview type double with dimension Gr.dims.nlg[2] +// ''' +// # Gr.dims.n[i] = namelist['grid']['ni'] (e.g. n[0] = 'nx') --> total number of pts +// # Gr.dims.nl[i] = Gr.dims.n[i] // mpi_dims[i] --> local number of pts (per processor) +// # Gr.dims.nlg[i] = Gr.dims.nl[i] + 2*gw --> local number of pts incl ghost points +// # i = 0,1,2 +// */ +// + const ssize_t gw = dims->gw; +// printf("values[gw] = %f\n", values[gw]); +// printf("before: mean[gw] = %f\n", mean[gw]); + + double *mean_local = (double *)malloc(sizeof(double) * dims->nlg[2]); // Dynamically allocate array + double *mean_ = (double *)malloc(sizeof(double) * dims->nlg[2]); + int ijk; + const ssize_t imin = dims->gw; + const ssize_t jmin = dims->gw; + const ssize_t kmin = 0; + const ssize_t imax = dims->nlg[0] - dims->gw; + const ssize_t jmax = dims->nlg[1] - dims->gw; + const ssize_t kmax = dims->nlg[2]; + const ssize_t istride = dims->nlg[1] * dims->nlg[2]; + const ssize_t jstride = dims->nlg[2]; + //int ishift, jshift; + const double n_horizontal_i = 1.0/(dims->n[1]*dims->n[0]); + + for(ssize_t k=kmin; kng[2], MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +// MPI_Allreduce(&mean_local, &mean_, dims->n[2], MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + for(ssize_t k=kmin; knlg[0] * dims->nlg[1] * dims->nlg[2]); diff --git a/Csrc/scalar_advection.h b/Csrc/scalar_advection.h index a11b7907..f057fd86 100644 --- a/Csrc/scalar_advection.h +++ b/Csrc/scalar_advection.h @@ -4,6 +4,7 @@ #include "thermodynamic_functions.h" #include "entropies.h" + void second_order_a(const struct DimStruct *dims, double* restrict rho0, double* restrict rho0_half,const double* restrict velocity, const double* restrict scalar, double* restrict flux, int d){ const ssize_t istride = dims->nlg[1] * dims->nlg[2]; @@ -719,9 +720,14 @@ void compute_advective_fluxes_a(struct DimStruct *dims, double* restrict rho0, d case 11: weno_eleventh_order_a(dims, rho0, rho0_half, velocity, scalar, flux, d); break; + + + + default: + printf("Scalar Advection scheme: no scheme indicated, using 4th order central"); // Make WENO5 default case. The central schemes may not be necessarily stable, however WENO5 should be. - weno_fifth_order_a(dims, rho0, rho0_half, velocity, scalar, flux, d); + fourth_order_a(dims, rho0, rho0_half, velocity, scalar, flux, d); break; }; }; diff --git a/Csrc/scalar_diffusion.h b/Csrc/scalar_diffusion.h index d48f2a9d..84583e16 100644 --- a/Csrc/scalar_diffusion.h +++ b/Csrc/scalar_diffusion.h @@ -3,7 +3,8 @@ #include "advection_interpolation.h" #include "thermodynamic_functions.h" #include "entropies.h" -void second_order_diffusion(const struct DimStruct *dims, double *rho0, double *rho0_half, double *diffusivity, double *scalar, double *flux, double dx, ssize_t d, double factor){ +void second_order_diffusion(const struct DimStruct *dims, double *rho0, double *rho0_half, double *diffusivity, + double *scalar, double *flux, double dx, ssize_t d, double factor){ const ssize_t istride = dims->nlg[1] * dims->nlg[2]; const ssize_t jstride = dims->nlg[2]; @@ -61,7 +62,8 @@ void second_order_diffusion(const struct DimStruct *dims, double *rho0, double * return; } -void compute_diffusive_flux(const struct DimStruct *dims, double *rho0, double *rho0_half, double *diffusivity, double *scalar, double *flux, double dx, ssize_t d, ssize_t scheme, double factor){ +void compute_diffusive_flux(const struct DimStruct *dims, double *rho0, double *rho0_half, double *diffusivity, + double *scalar, double *flux, double dx, ssize_t d, ssize_t scheme, double factor){ switch(scheme){ case 2: diff --git a/Csrc/sgs.h b/Csrc/sgs.h index 8ffb8864..06827a85 100644 --- a/Csrc/sgs.h +++ b/Csrc/sgs.h @@ -192,3 +192,29 @@ void tke_surface(const struct DimStruct *dims, double* e, double* lmo, double* u return; } +// added by Bettina Meyer (copied and modified from smagorinsky_update()) +// Turning viscosity off for stably stratified layers +// stability criterion: gradient Richardson number > 1 + +//double buoyancy_adjust(const struct DimStruct *dims, double* restrict visc, double* restrict diff, +//double* restrict buoy_freq, double* restrict strain_rate_mag, double prt){ +// double fb = 1; +// if(buoy_freq[0] > 0.0){ +// fb = sqrt(fmax(1.0 - buoy_freq[0]/(prt*strain_rate_mag[0]*strain_rate_mag[0]),0.0)); +// } +// return fb; +//} + +void const_viscosity_update(const struct DimStruct *dims, double* restrict visc, double* restrict diff, + double* restrict buoy_freq, double* restrict strain_rate_mag, double const_visc, double prt){ + + for (ssize_t i=0; inpg; i++){ + visc[i] = const_visc; + if(buoy_freq[i] > 0.0){ + double fb = sqrt(fmax(1.0 - buoy_freq[i]/(prt*strain_rate_mag[i]*strain_rate_mag[i]),0.0)); + visc[i] = visc[i] * fb; + } + diff[i] = visc[i]/prt; + } + return; +} \ No newline at end of file diff --git a/Csrc/thermodynamics_sa.h b/Csrc/thermodynamics_sa.h index 76caa1db..10a61c35 100644 --- a/Csrc/thermodynamics_sa.h +++ b/Csrc/thermodynamics_sa.h @@ -16,37 +16,126 @@ inline double temperature_no_ql(double pd, double pv, double s, double qt){ void eos_c(struct LookupStruct *LT, double (*lam_fp)(double), double (*L_fp)(double, double), const double p0, const double s, const double qt, double* T, double* qv, double* ql, double *qi){ + /* + Use saturation adjustment scheme to compute temperature T and ql given s and qt. + :param p0: pressure [Pa] + :param s: entropy [K] + :param qt: total water specific humidity + :return: T, ql, qv, qi + + mixed phase cloud: supercooled liquid water co-exists with ice below the freezing temperature (T_i < T < T_f) + T_i = 233 K (homogeneous nucleation temperature) + T_f = 273.15K (freezing point) + lam_fp(T): gives the liquid fraction for mixed-phase clouds (fraction of supercooled liquid) + l_fp(T,lam_fp(T)) = lam_fp*L_v + (1-lam_fp)*L_s: effective specific latent heat in mixed-phase + + Functions from Microphyiscs.pxd: + liquid fraction: + lam_fp(T) = 1.0 (lambda_constant) + Latent Heat: + L_fp(T, lambda(T)) = (2500.8 - 2.36 * TC + 0.0016 * TC**2 - 0.00006 * TC**3) * 1000.0 + with: TC = T - 273.15 + + Functions from thermodynamic_functions.h: + pv_c = p0 * eps_vi * qv /(1.0 - qt + eps_vi * qv) + + Definitions (c.f. Pressel et al., 2016): + saturation vapor pressure: pv_star(T) + --> from Clausius Clapeyron (Lookup table for integration) + saturation specific humidity: qv_star(p,qt,pv_star) + --> ideal gas law; defined in Csrc/thermodynamics.h + saturation excess: sigma = qt - qv_star + */ + +// printf("doing saturation adjustment (eos_c)\n"); *qv = qt; *ql = 0.0; *qi = 0.0; + // __ + int nan_T1 = 0; + // __ double pv_1 = pv_c(p0,qt,qt ); double pd_1 = p0 - pv_1; double T_1 = temperature_no_ql(pd_1,pv_1,s,qt); double pv_star_1 = lookup(LT, T_1); double qv_star_1 = qv_star_c(p0,qt,pv_star_1); - /// If not saturated - if(qt <= qv_star_1){ + if(isnan(T_1)){ + nan_T1 = 1; + printf("T1 is nan!"); + printf("T_1: %f\n", T_1); + printf("pv_1: %f, pd_1: %f, s: %f, qt: %f\n", pv_1, pd_1, s, qt); + } + // __ + int nan_T2 = 0; + int nan_Tn = 0; + double val_T1 = 0.0; + double val_T2 = 0.0; + double val_f1 = 1.0; + double val_f2 = 1.0; + double val_pd1 = 0.0; + double val_pv1 = 0.0; + double val_pd2 = 0.0; + double val_pv2 = 0.0; + // __ + +// printf("eos_c: qt = %f, qv_star_1 = %f, qv = %f\n", qt, qv_star_1, *qv); // in initialisation: qt > qv_star_1 (qt ~ 10*qv_star_1) + // If not saturated +// if(qt <= qv_star_1){ + if(qt <= qv_star_1 || qv_star_1 < 0.0){ +// printf("eos_c: not saturated\n"); *T = T_1; return; } else{ + //printf("eos_c: saturated\n"); double sigma_1 = qt - qv_star_1; double lam_1 = lam_fp(T_1); - double L_1 = L_fp(T_1,lam_1); + double L_1 = L_fp(T_1,lam_1); // L_fp = ThermdynamicsSA.L_fp = Thermodynamics/LatentHeat.L_fp --> LatentHeat.L_fp = LatentHeat.L double s_1 = sd_c(pd_1,T_1) * (1.0 - qt) + sv_c(pv_1,T_1) * qt + sc_c(L_1,T_1)*sigma_1; double f_1 = s - s_1; double T_2 = T_1 + sigma_1 * L_1 /((1.0 - qt)*cpd + qv_star_1 * cpv); double delta_T = fabs(T_2 - T_1); double qv_star_2; double sigma_2; + double pv_2; + double pd_2; double lam_2; + // __ + int count = 0; + // the following definitions are necessary if while-loop below commented out + /*double pv_star_2 = lookup(LT, T_2); + qv_star_2 = qv_star_c(p0,qt,pv_star_2); + sigma_2 = qt - qv_star_2; + lam_2 = lam_fp(T_2);*/ + // __ + // if (pv_star_2>p0){ + // T_2 = 350.0; + // pv_star_2 = lookup(LT, T_2); + // } + if (T_2 > 350.0){ + val_T2 = T_2; +// T_2 = 350.0; + } + if(isnan(T_2)){nan_T2 = 1;} + double pv_star_2 = lookup(LT, T_2); do{ double pv_star_2 = lookup(LT, T_2); qv_star_2 = qv_star_c(p0,qt,pv_star_2); - double pv_2 = pv_c(p0,qt,qv_star_2); - double pd_2 = p0 - pv_2; - sigma_2 = qt - qv_star_2; + + if(qv_star_2 >= 0){ + pv_2 = pv_c(p0,qt,qv_star_2); // assume qv=qv_star_2 + pd_2 = p0 - pv_2; + sigma_2 = qt - qv_star_2; + } + else{ + pv_2 = pv_c(p0,qt,qt); // assume qv=qt + pd_2 = p0 - pv_2; + sigma_2 = 0.0; + } +// double pv_2 = pv_c(p0,qt,qv_star_2); +// double pd_2 = p0 - pv_2; +// sigma_2 = qt - qv_star_2; lam_2 = lam_fp(T_2); double L_2 = L_fp(T_2,lam_2); double s_2 = sd_c(pd_2,T_2) * (1.0 - qt) + sv_c(pv_2,T_2) * qt + sc_c(L_2,T_2)*sigma_2; @@ -56,20 +145,62 @@ void eos_c(struct LookupStruct *LT, double (*lam_fp)(double), double (*L_fp)(dou T_2 = T_n; f_1 = f_2; delta_T = fabs(T_2 - T_1); + count ++; + if(isnan(T_n)){nan_Tn = 1;val_T1=T_1;val_pv1=pv_1;val_pd1=pd_1;val_pv2=pv_2;val_pd2=pv_2; + val_f2=f_2; val_f1=f_1;} } while(delta_T >= 1.0e-3 || sigma_2 < 0.0 ); + *T = T_2; *qv = qv_star_2; *ql = lam_2 * sigma_2; *qi = (1.0 - lam_2) * sigma_2; + // __ +// printf("eos_c iterations: count = %d\n",count); +// printf("ql = %f\n", *ql); + + if(val_T1>0.0){ + printf("in loop: T1>350: %f\n",val_T2); + } + if(val_T2>0.0){ + printf("T2>350: %f\n",val_T2); + } + if(nan_T2==1){ + printf("nan_T2: %d\n", nan_T2); + printf("T_1: %f\n", val_T1); + printf("pv_1: %f\n", val_pv1); + printf("pd_1: %f\n", val_pd1); + printf("pv_2: %f\n", val_pv2); + printf("pd_2: %f\n", val_pd2); + } + if(nan_Tn==1){ + printf("nan_Tn: %d\n", nan_Tn); + printf("T1: %f, T2: %f, s: %f, qt: %f\n", val_T1, val_T2, s, qt); + printf("f1: %f, f2: %f\n", val_f1, val_f2); + printf("pv_star_2: %f, qv_star_2: %f, pv_2: %f, pd_2: %f", pv_star_2, qv_star_2, val_pv2, val_pd2); + } + + + + // __ return; } } + + +//void eos_update(struct DimStruct *dims, struct LookupStruct *LT, double (*lam_fp)(double), double (*L_fp)(double, double), +// double* restrict p0, double* restrict s, double* restrict qt, double* restrict T, +// double* restrict qv, double* restrict ql, double* restrict qi, double* restrict alpha ){ void eos_update(struct DimStruct *dims, struct LookupStruct *LT, double (*lam_fp)(double), double (*L_fp)(double, double), double* restrict p0, double* restrict s, double* restrict qt, double* restrict T, - double* restrict qv, double* restrict ql, double* restrict qi, double* restrict alpha ){ - + double* restrict qv, double* restrict ql, double* restrict qi, double* restrict alpha, int* n_nan ){ +// printf("eos_update\n"); ssize_t i,j,k; + // __ + int i_,j_,k_; + int ijk_ = 1.0; + double T_ = 0.0; + // __ const ssize_t istride = dims->nlg[1] * dims->nlg[2]; const ssize_t jstride = dims->nlg[2]; const ssize_t imin = 0; @@ -79,21 +210,122 @@ void eos_update(struct DimStruct *dims, struct LookupStruct *LT, double (*lam_fp const ssize_t jmax = dims->nlg[1]; const ssize_t kmax = dims->nlg[2]; - for (i=imin; i qv_star_1 (qt ~ 10*qv_star_1) + + // If not saturated + if(qt <= qv_star_1){ +// printf("eos_c: not saturated\n"); + *T = T_1; + // __ +// printf("no iteration\n"); + // __ + return; } + else{ +// printf("eos_c: saturated\n"); + double sigma_1 = qt - qv_star_1; + double lam_1 = lam_fp(T_1); // lam_fp gives the liquid fraction for mixed-phase clouds (fraction of supercooled liquid) + double L_1 = L_fp(T_1,lam_1); // L_fp = ThermdynamicsSA.L_fp = Thermodynamics/LatentHeat.L_fp --> LatentHeat.L_fp = LatentHeat.L + double s_1 = sd_c(pd_1,T_1) * (1.0 - qt) + sv_c(pv_1,T_1) * qt + sc_c(L_1,T_1)*sigma_1; + double f_1 = s - s_1; + double T_2 = T_1 + sigma_1 * L_1 /((1.0 - qt)*cpd + qv_star_1 * cpv); + double delta_T = fabs(T_2 - T_1); + double qv_star_2; + double sigma_2; + double lam_2; + // __ + int count = 0; + /*double pv_star_2 = lookup(LT, T_2); + qv_star_2 = qv_star_c(p0,qt,pv_star_2); + sigma_2 = qt - qv_star_2; + lam_2 = lam_fp(T_2);*/ + // __ + do{ +// printf("start loop\n"); + double pv_star_2 = lookup(LT, T_2); + qv_star_2 = qv_star_c(p0,qt,pv_star_2); + double pv_2 = pv_c(p0,qt,qv_star_2); + double pd_2 = p0 - pv_2; + sigma_2 = qt - qv_star_2; + lam_2 = lam_fp(T_2); + double L_2 = L_fp(T_2,lam_2); + double s_2 = sd_c(pd_2,T_2) * (1.0 - qt) + sv_c(pv_2,T_2) * qt + sc_c(L_2,T_2)*sigma_2; + double f_2 = s - s_2; + double T_n = T_2 - f_2*(T_2 - T_1)/(f_2 - f_1); + T_1 = T_2; + T_2 = T_n; + f_1 = f_2; + delta_T = fabs(T_2 - T_1); + count ++; + } while(delta_T >= 1.0e-3 || sigma_2 < 0.0 ); +// } while((delta_T >= 1.0e-3 || sigma_2 < 0.0) && count < 6); + *T = T_2; + *qv = qv_star_2; + *ql = lam_2 * sigma_2; + *qi = (1.0 - lam_2) * sigma_2; + // __ +// printf("eos_c iterations: count = %d\n",count); +// printf("ql = %f\n", *ql); + // __ + return; + } +} + void buoyancy_update_sa(struct DimStruct *dims, double* restrict alpha0, double* restrict alpha, double* restrict buoyancy, double* restrict wt){ @@ -106,14 +338,32 @@ void buoyancy_update_sa(struct DimStruct *dims, double* restrict alpha0, double* const ssize_t imax = dims->nlg[0]; const ssize_t jmax = dims->nlg[1]; const ssize_t kmax = dims->nlg[2]-1; - + // __ + int ijk_; + // __ for (i=imin; i global number of pts per direction + # Gr.dims.nl[i] = Gr.dims.n[i] // mpi_dims[i] --> local number of pts (per processor) + + # Gr.dims.ng[i] = Gr.dims.n[i] + 2*gw --> global number of pts incl. ghost pts + # Gr.dims.nlg[i] = Gr.dims.nl[i] + 2*gw --> local number of pts incl ghost pts + + # Gr.dims.npd = n[0] * n[1] * n[2] ( = nx * ny * nz) --> global number of pts in 3D grid + # Gr.dims.npl = nl[0] * nl[1] * nl[2] --> local number of pts in 3D grid + # Gr.dims.npg = nlg[0] * nlg[1] * nlg[2] --> local number of pts in 3D grid incl. ghost pts + + def __init__(self,namelist,Parallel): ''' diff --git a/Initialization.pyx b/Initialization.pyx index 4ab15c0f..d3a45adf 100644 --- a/Initialization.pyx +++ b/Initialization.pyx @@ -4,6 +4,7 @@ #cython: initializedcheck=False #cython: cdivision=True +import pylab as plt import netCDF4 as nc import numpy as np @@ -25,10 +26,26 @@ include 'parameters.pxi' def InitializationFactory(namelist): - casename = namelist['meta']['casename'] if casename == 'SullivanPatton': return InitSullivanPatton + elif casename == 'ColdPoolDry_2D': + print('calling Initialization ColdPoolDry 2D') + return InitColdPoolDry_2D + elif casename == 'ColdPoolDry_double_2D': + print('calling Initialization double ColdPoolDry 2D') + return InitColdPoolDry_double_2D + elif casename == 'ColdPoolDry_single_3D': + print('calling Initialization single ColdPoolDry 3D') + return InitColdPoolDry_single_3D + elif casename == 'ColdPoolDry_double_3D': + return InitColdPoolDry_double_3D + elif casename == 'ColdPoolDry_triple_3D': + return InitColdPoolDry_triple_3D + elif casename == 'ColdPoolDry_single_3D_stable': + return InitColdPoolDry_single_3D + elif casename == 'ColdPoolDry_triple_3D_stable': + return InitColdPoolDry_triple_3D elif casename == 'StableBubble': return InitStableBubble elif casename == 'SaturatedBubble': @@ -57,10 +74,536 @@ def InitializationFactory(namelist): return InitCGILS elif casename == 'ZGILS': return InitZGILS - + elif casename == 'DCBLSoares': + return InitSoares + elif casename == 'DCBLSoares_moist': + return InitSoares_moist else: pass + +def InitColdPoolDry_single_3D(namelist, Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, + ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, + ParallelMPI.ParallelMPI Pa, LatentHeat LH): + Pa.root_print('') + Pa.root_print('Initialization: Single Dry Cold Pool (3D)') + Pa.root_print('') + casename = namelist['meta']['casename'] + # set zero ground humidity, no horizontal wind at ground + + #Generate reference profiles + RS.Pg = 1.0e5 + RS.Tg = 300.0 + RS.qtg = 0.0 + #Set velocities for Galilean transformation + RS.u0 = 0.0 + RS.v0 = 0.0 + RS.initialize(Gr, Th, NS, Pa) + Pa.root_print('finished RS.initialize') + + #Get the variable number for each of the velocity components + cdef: + Py_ssize_t u_varshift = PV.get_varshift(Gr,'u') + Py_ssize_t v_varshift = PV.get_varshift(Gr,'v') + Py_ssize_t w_varshift = PV.get_varshift(Gr,'w') + Py_ssize_t s_varshift = PV.get_varshift(Gr,'s') + Py_ssize_t i,j,k + Py_ssize_t ishift, jshift + Py_ssize_t ijk + Py_ssize_t gw = Gr.dims.gw + + # parameters + cdef: + double dTh = namelist['init']['dTh'] + double rstar = namelist['init']['r'] # half of the width of initial cold-pools [m] + double zstar = namelist['init']['h'] + Py_ssize_t kstar = np.int(np.round(zstar / Gr.dims.dx[2])) + double marg = namelist['init']['marg'] + Py_ssize_t ic = np.int(namelist['init']['ic']) # np.int(Gr.dims.n[0] / 2) + Py_ssize_t jc = np.int(namelist['init']['jc']) # np.int(Gr.dims.n[1] / 2) + double xc = Gr.x_half[ic + Gr.dims.gw] # center of cold-pool + double yc = Gr.y_half[jc + Gr.dims.gw] # center of cold-pool + double [:,:,:] z_max_arr = np.zeros((2, Gr.dims.nlg[0], Gr.dims.nlg[1]), dtype=np.double) + double z_max = 0 + double r + + Pa.root_print('ic, jc: '+str(ic)+', '+str(jc)) + Pa.root_print('xc, yc: '+str(xc)+', '+str(yc)) + + # theta anomaly + np.random.seed(Pa.rank) # make Noise reproducable + cdef: + double th + double th_g = 300.0 # temperature for neutrally stratified background (value from Soares Surface) + double [:] theta_bg = np.empty((Gr.dims.nlg[2]),dtype=np.double,order='c') # background stratification + double [:,:,:] theta = th_g * np.ones(shape=(Gr.dims.nlg[0], Gr.dims.nlg[1], Gr.dims.nlg[2])) + double [:] theta_pert = np.random.random_sample(Gr.dims.npg) + double theta_pert_ + + # initialize background stratification + if casename[22:28] == 'stable': + Pa.root_print('initializing stable CP') + Nv2 = 5e-5 # Brunt-Vaisalla frequency [Nv2] = s^-2 + g = 9.81 + for k in xrange(Gr.dims.nlg[2]): + if Gr.zl_half[k] <= 1000.: + theta_bg[k] = th_g + else: + theta_bg[k] = th_g * np.exp(Nv2/g*(Gr.zl_half[k]-1000.)) + else: + for k in xrange(Gr.dims.nlg[2]): + theta_bg[k] = th_g + + # initialize Cold Pool + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + + r = np.sqrt( (Gr.x_half[i + Gr.dims.indx_lo[0]] - xc)**2 + + (Gr.y_half[j + Gr.dims.indx_lo[1]] - yc)**2 ) + if r <= rstar: + z_max = zstar * ( np.cos( r/rstar * np.pi/2 ) ) ** 2 + z_max_arr[0, i, j] = z_max + + if r <= (rstar + marg): + z_max = (zstar + marg) * ( np.cos( r/(rstar + marg) * np.pi / 2 )) ** 2 + z_max_arr[1, i, j] = z_max + + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + theta[i, j, k] = theta_bg[k] + PV.values[u_varshift + ijk] = 0.0 + PV.values[v_varshift + ijk] = 0.0 + PV.values[w_varshift + ijk] = 0.0 + + if Gr.z_half[k] <= z_max_arr[0,i,j]: + theta[i,j,k] = theta_bg[k] - dTh + elif Gr.z_half[k] <= z_max_arr[1,i,j]: + th = theta_bg[k] - dTh * np.sin((Gr.z_half[k] - z_max_arr[1, i, j]) / (z_max_arr[0, i, j] - z_max_arr[1, i, j]) * np.pi/2) ** 2 + theta[i, j, k] = th + + if k <= kstar + 2: + theta_pert_ = (theta_pert[ijk] - 0.5) * 0.1 + else: + theta_pert_ = 0.0 + PV.values[s_varshift + ijk] = entropy_from_thetas_c(theta[i, j, k] + theta_pert_, 0.0) + # Sullivan, Bomex, etc.: + # t = (theta[k] + theta_pert_)*exner_c(RS.p0_half[k]) + # PV.values[s_varshift + ijk] = Th.entropy(RS.p0_half[k],t,0.0,0.0,0.0) + + # ''' Initialize passive tracer phi ''' + Pa.root_print('initialize passive tracer phi') + init_tracer(namelist, Gr, PV, Pa, z_max_arr, np.asarray(ic), np.asarray(jc)) + Pa.root_print('Initialization: finished initialization') + + return + + + + +def InitColdPoolDry_single_3D_stable(namelist, Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, + ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, + ParallelMPI.ParallelMPI Pa, LatentHeat LH): + Pa.root_print('') + Pa.root_print('Initialization: Single Dry Cold Pool (3D)') + Pa.root_print('') + # set zero ground humidity, no horizontal wind at ground + + #Generate reference profiles + RS.Pg = 1.0e5 + RS.Tg = 300.0 + RS.qtg = 0.0 + #Set velocities for Galilean transformation + RS.u0 = 0.0 + RS.v0 = 0.0 + RS.initialize(Gr, Th, NS, Pa) + Pa.root_print('finished RS.initialize') + + #Get the variable number for each of the velocity components + cdef: + Py_ssize_t u_varshift = PV.get_varshift(Gr,'u') + Py_ssize_t v_varshift = PV.get_varshift(Gr,'v') + Py_ssize_t w_varshift = PV.get_varshift(Gr,'w') + Py_ssize_t s_varshift = PV.get_varshift(Gr,'s') + Py_ssize_t i,j,k + Py_ssize_t ishift, jshift + Py_ssize_t ijk + Py_ssize_t gw = Gr.dims.gw + + # parameters + cdef: + double dTh = namelist['init']['dTh'] + double rstar = namelist['init']['r'] # half of the width of initial cold-pools [m] + double zstar = namelist['init']['h'] + Py_ssize_t kstar = np.int(np.round(zstar / Gr.dims.dx[2])) + double marg = namelist['init']['marg'] + Py_ssize_t ic = np.int(namelist['init']['ic']) # np.int(Gr.dims.n[0] / 2) + Py_ssize_t jc = np.int(namelist['init']['jc']) # np.int(Gr.dims.n[1] / 2) + double xc = Gr.x_half[ic + Gr.dims.gw] # center of cold-pool + double yc = Gr.y_half[jc + Gr.dims.gw] # center of cold-pool + double [:,:,:] z_max_arr = np.zeros((2, Gr.dims.nlg[0], Gr.dims.nlg[1]), dtype=np.double) + double z_max = 0 + double r + double rstar_marg = (rstar+marg) + + Pa.root_print('ic, jc: '+str(ic)+', '+str(jc)) + Pa.root_print('xc, yc: '+str(xc)+', '+str(yc)) + + # theta anomaly + np.random.seed(Pa.rank) # make Noise reproducable + cdef: + double th + double th_g = 300.0 # temperature for neutrally stratified background (value from Soares Surface) + double [:] theta_bg = np.empty((Gr.dims.nlg[2]),dtype=np.double,order='c') # background stratification + double [:,:,:] theta = th_g * np.ones(shape=(Gr.dims.nlg[0], Gr.dims.nlg[1], Gr.dims.nlg[2])) + double [:] theta_pert = np.random.random_sample(Gr.dims.npg) + double theta_pert_ + + + # crate background profile + Nv = 5e-5 + g = 9.81 + for k in xrange(Gr.dims.nlg[2]): + if Gr.zl_half[k] <= 1000.: + theta_bg[k] = th_g + else: + theta_bg[k] = th_g * np.exp(Nv/g*(Gr.zl_half[k]-1000.)) + + # Cold Pool + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + + r = np.sqrt( (Gr.x_half[i + Gr.dims.indx_lo[0]] - xc)**2 + + (Gr.y_half[j + Gr.dims.indx_lo[1]] - yc)**2 ) + if r <= rstar: + z_max = zstar * ( np.cos( r/rstar * np.pi/2 ) ) ** 2 + z_max_arr[0, i, j] = z_max + if r <= rstar_marg: + z_max = (zstar + marg) * ( np.cos( r/(rstar + marg) * np.pi / 2 )) ** 2 + z_max_arr[1, i, j] = z_max + + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + theta[i, j, k] = theta_bg[k] + PV.values[u_varshift + ijk] = 0.0 + PV.values[v_varshift + ijk] = 0.0 + PV.values[w_varshift + ijk] = 0.0 + + if Gr.z_half[k] <= z_max_arr[0,i,j]: + theta[i,j,k] = theta[i,j,k] - dTh + elif Gr.z_half[k] <= z_max_arr[1,i,j]: + th = dTh * np.sin((Gr.z_half[k] - z_max_arr[1, i, j]) / (z_max_arr[0, i, j] - z_max_arr[1, i, j]) * np.pi/2) ** 2 + theta[i, j, k] = theta[i,j,k] - th + + if k <= kstar + 2: + theta_pert_ = (theta_pert[ijk] - 0.5) * 0.1 + else: + theta_pert_ = 0.0 + PV.values[s_varshift + ijk] = entropy_from_thetas_c(theta[i, j, k] + theta_pert_, 0.0) + + + # ''' Initialize passive tracer phi ''' + Pa.root_print('initialize passive tracer phi') + init_tracer(namelist, Gr, PV, Pa, z_max_arr, np.asarray(ic), np.asarray(jc)) + Pa.root_print('Initialization: finished initialization') + + return + + + + +def InitColdPoolDry_double_3D(namelist, Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, + ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, + ParallelMPI.ParallelMPI Pa, LatentHeat LH): + Pa.root_print('') + Pa.root_print('Initialization: Double Dry Cold Pool (3D)') + Pa.root_print('') + # set zero ground humidity, no horizontal wind at ground + # ASSUME COLDPOOLS DON'T HAVE AN INITIAL HORIZONTAL VELOCITY + + # # for plotting + #from Init_plot import plot_k_profile_3D, plot_var_image, plot_imshow + cdef: + PrognosticVariables.PrognosticVariables PV_ = PV + + #Generate reference profiles + RS.Pg = 1.0e5 + RS.Tg = 300.0 + RS.qtg = 0.0 + #Set velocities for Galilean transformation + RS.u0 = 0.0 + RS.v0 = 0.0 + RS.initialize(Gr, Th, NS, Pa) + + #Get the variable number for each of the velocity components + cdef: + Py_ssize_t u_varshift = PV.get_varshift(Gr,'u') + Py_ssize_t v_varshift = PV.get_varshift(Gr,'v') + Py_ssize_t w_varshift = PV.get_varshift(Gr,'w') + Py_ssize_t s_varshift = PV.get_varshift(Gr,'s') + Py_ssize_t i,j,k + Py_ssize_t ishift, jshift + Py_ssize_t ijk + Py_ssize_t gw = Gr.dims.gw + + # parameters + cdef: + double dTh = namelist['init']['dTh'] + double rstar = namelist['init']['r'] # half of the width of initial cold-pools [m] + double zstar = namelist['init']['h'] + Py_ssize_t kstar = np.int(np.round(zstar / Gr.dims.dx[2])) + double marg = namelist['init']['marg'] + double [:] r = np.ndarray((2), dtype=np.double) + double [:] r2 = np.ndarray((2), dtype=np.double) + double rstar2 = rstar**2 + double rstar_marg2 = (rstar+marg)**2 + Py_ssize_t n, nmin + + # geometry of cold pool + cdef: + double sep = namelist['init']['sep'] + Py_ssize_t isep = np.int(np.round(sep/Gr.dims.dx[0])) + Py_ssize_t jsep = 0 + Py_ssize_t ic = np.int(np.round(Gr.dims.n[0]/2)) + Py_ssize_t jc = np.int(np.round(Gr.dims.n[1]/2)) + Py_ssize_t ic1 = ic - np.int(np.round(isep / 2)) + Py_ssize_t jc1 = jc + Py_ssize_t ic2 = ic1 + isep + Py_ssize_t jc2 = jc1 + jsep + Py_ssize_t [:] ic_arr = np.asarray([ic1,ic2]) + Py_ssize_t [:] jc_arr = np.asarray([jc1,jc2]) + double [:] xc = np.asarray([Gr.x_half[ic1 + gw], Gr.x_half[ic2 + gw]]) + double [:] yc = np.asarray([Gr.y_half[jc1 + gw], Gr.y_half[jc2 + gw]]) + double [:,:,:] z_max_arr = np.zeros((2, Gr.dims.ng[0], Gr.dims.ng[1]), dtype=np.double) + double z_max = 0 + + # theta-anomaly + np.random.seed(Pa.rank) # make Noise reproducable + # from thermodynamic_functions cimport theta_c + cdef: + double th + double th_g = 300.0 # value from Soares Surface + double [:,:,:] theta = th_g * np.ones(shape=(Gr.dims.nlg[0], Gr.dims.nlg[1], Gr.dims.nlg[2])) + double [:] theta_pert = np.random.random_sample(Gr.dims.npg) + # qt_pert = (np.random.random_sample(Gr.dims.npg )-0.5)*0.025/1000.0 + double theta_pert_ + + ''' compute z_max ''' + # method here requires to define (ic1, jc1) as the CP center that is the closest to (0,0) + # (i.e., ic1<=ic2, jc1<=jc2 etc.) + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + # r = np.sqrt((Gr.x_half[i]-xc1)**2 + (Gr.y_half[j]-yc1)**2) # not MPI-compatible + for n in range(2): + r[n] = np.sqrt( (Gr.x_half[i + Gr.dims.indx_lo[0]] - xc[n])**2 + + (Gr.y_half[j + Gr.dims.indx_lo[1]] - yc[n])**2 ) + nmin = np.argmin(r) # find closest CP to point (i,j); making use of having non-overlapping CPs + if (r[nmin] <= (rstar + marg)): + z_max = (zstar + marg) * ( np.cos( r[nmin]/(rstar + marg) * np.pi / 2 )) ** 2 + z_max_arr[1, i, j] = z_max + z_max_arr[1, i+isep, j+jsep] = z_max + if (r[nmin] <= rstar): + z_max = zstar * ( np.cos( r[nmin]/rstar * np.pi/2 ) ) ** 2 + z_max_arr[0, i, j] = z_max + z_max_arr[0, i+isep, j+jsep] = z_max + + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + PV.values[u_varshift + ijk] = 0.0 + PV.values[v_varshift + ijk] = 0.0 + PV.values[w_varshift + ijk] = 0.0 + + if Gr.z_half[k] <= z_max_arr[0,i,j]: + theta[i,j,k] = th_g - dTh + elif Gr.z_half[k] <= z_max_arr[1,i,j]: + th = th_g - dTh * np.sin((Gr.z_half[k] - z_max_arr[1, i, j]) / (z_max_arr[0, i, j] - z_max_arr[1, i, j]) * np.pi/2) ** 2 + theta[i, j, k] = th + + # --- adding noise --- + # Sullivan, DYCOMS RF01: Gr.zl_half[k] < 200.0 + # Bomex: Gr.zl_half[k] < 1600.0 + # Gabls: Gr.zl_half[k] < 50.0 (well-mixed layer for z<=100.0) + # DYCOMS RF02: Gr.zl_half[k] < 795.0 + # Rico: < 740.0 (in well-mixed layer) + # Isdac: < 825.0 (below stably stratified layer) + # Smoke: < 700.0 (in well-mixed layer) + if k <= kstar + 2: + theta_pert_ = (theta_pert[ijk] - 0.5) * 0.1 + else: + theta_pert_ = 0.0 + PV.values[s_varshift + ijk] = entropy_from_thetas_c(theta[i, j, k] + theta_pert_, 0.0) + + ''' Initialize passive tracer phi ''' + Pa.root_print('initialize passive tracer phi') + init_tracer(namelist, Gr, PV, Pa, z_max_arr, ic_arr, jc_arr) + Pa.root_print('Initialization: finished initialization') + + return + + + +def InitColdPoolDry_triple_3D(namelist, Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, + ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, + ParallelMPI.ParallelMPI Pa, LatentHeat LH): + + Pa.root_print('') + Pa.root_print('Initialization: Triple Dry Cold Pool (3D)') + Pa.root_print('') + casename = namelist['meta']['casename'] + # set zero ground humidity, no horizontal wind at ground + # ASSUME COLDPOOLS DON'T HAVE AN INITIAL HORIZONTAL VELOCITY + + #Generate reference profiles + RS.Pg = 1.0e5 + RS.Tg = 300.0 + RS.qtg = 0.0 + #Set velocities for Galilean transformation + RS.u0 = 0.0 + RS.v0 = 0.0 + RS.initialize(Gr, Th, NS, Pa) + + #Get the variable number for each of the velocity components + cdef: + Py_ssize_t u_varshift = PV.get_varshift(Gr,'u') + Py_ssize_t v_varshift = PV.get_varshift(Gr,'v') + Py_ssize_t w_varshift = PV.get_varshift(Gr,'w') + Py_ssize_t s_varshift = PV.get_varshift(Gr,'s') + Py_ssize_t i,j,k + Py_ssize_t ishift, jshift + Py_ssize_t ijk + Py_ssize_t gw = Gr.dims.gw + + # parameters + cdef: + double dTh = namelist['init']['dTh'] + double rstar = namelist['init']['r'] # half of the width of initial cold-pools [m] + double zstar = namelist['init']['h'] + Py_ssize_t kstar = np.int(np.round(zstar / Gr.dims.dx[2])) + double marg = namelist['init']['marg'] + double [:] r = np.ndarray((3), dtype=np.double) + Py_ssize_t n, nmin + + # geometry of cold pool: equilateral triangle with center in middle of domain + # d: side length of the triangle + # a: height of the equilateral triangle + # configuration: ic1 = ic2, ic3 = ic1+a; jc + cdef: + double d = namelist['init']['d'] + Py_ssize_t i_d = np.int(np.round(d/Gr.dims.dx[0])) + Py_ssize_t idhalf = np.int(np.round(i_d/2)) + Py_ssize_t a = np.int(np.round(i_d*np.sin(60.0/360.0*2*np.pi))) # sin(60 degree) = np.sqrt(3)/2 + Py_ssize_t r_int = np.int(np.round(np.sqrt(3.)/6*i_d)) # radius of inscribed circle + # point of 3-CP collision (ic, jc) + Py_ssize_t ic = np.int(np.round(Gr.dims.n[0]/2)) + Py_ssize_t jc = np.int(np.round(Gr.dims.n[1]/2)) + Py_ssize_t ic1 = ic - r_int + Py_ssize_t ic2 = ic1 + Py_ssize_t ic3 = ic + (a - r_int) + Py_ssize_t jc1 = jc - idhalf + Py_ssize_t jc2 = jc + idhalf + Py_ssize_t jc3 = jc + + Py_ssize_t [:] ic_arr = np.asarray([ic1,ic2,ic3]) + Py_ssize_t [:] jc_arr = np.asarray([jc1,jc2,jc3]) + double [:] xc = np.asarray([Gr.x_half[ic1 + gw], Gr.x_half[ic2 + gw], Gr.x_half[ic3 + gw]]) + double [:] yc = np.asarray([Gr.y_half[jc1 + gw], Gr.y_half[jc2 + gw], Gr.y_half[jc3 + gw]]) + + + double [:,:,:] z_max_arr = np.zeros((2, Gr.dims.nlg[0], Gr.dims.nlg[1]), dtype=np.double) + double z_max = 0 + + # theta-anomaly + np.random.seed(Pa.rank) # make Noise reproducable + cdef: + double th + double th_g = 300.0 # value from Soares Surface + double [:] theta_bg = np.empty((Gr.dims.nlg[2]),dtype=np.double,order='c') # background stratification + double [:,:,:] theta = th_g * np.ones(shape=(Gr.dims.nlg[0], Gr.dims.nlg[1], Gr.dims.nlg[2])) + # Noise + double [:] theta_pert = np.random.random_sample(Gr.dims.npg) + # qt_pert = (np.random.random_sample(Gr.dims.npg )-0.5)*0.025/1000.0 + double theta_pert_ + # initialize background stratification + if casename[22:28] == 'stable': + Pa.root_print('initializing stable CP') + Nv = 5e-5 + g = 9.81 + for k in xrange(Gr.dims.nlg[2]): + if Gr.zl_half[k] <= 1000.: + theta_bg[k] = th_g + else: + theta_bg[k] = th_g * np.exp(Nv/g*(Gr.zl_half[k]-1000.)) + else: + for k in xrange(Gr.dims.nlg[2]): + theta_bg[k] = th_g + + Pa.root_print('initial settings: r='+str(rstar)+', z='+str(zstar)+', k='+str(kstar)) + Pa.root_print('margin of Th-anomaly: marg='+str(marg)+'m') + Pa.root_print('distance btw cps: d='+str(d*Gr.dims.dx[0])+', id='+str(d)) + + Pa.root_print('') + Pa.root_print('nx: ' + str(Gr.dims.n[0]) + ', ' + str(Gr.dims.n[1])) + Pa.root_print('nyg: ' + str(Gr.dims.ng[0]) + ', ' + str(Gr.dims.ng[1])) + Pa.root_print('gw: ' + str(Gr.dims.gw)) + Pa.root_print('d: ' + str(d) + ', id: ' + str(i_d)) + Pa.root_print('Cold Pools:') + Pa.root_print('cp1: [' + str(ic1) + ', ' + str(jc1) + ']') + Pa.root_print('cp2: [' + str(ic2) + ', ' + str(jc2) + ']') + Pa.root_print('cp3: [' + str(ic3) + ', ' + str(jc3) + ']') + Pa.root_print('') + + ''' compute z_max ''' + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + for n in range(3): + r[n] = np.sqrt( (Gr.x_half[i + Gr.dims.indx_lo[0]] - xc[n])**2 + + (Gr.y_half[j + Gr.dims.indx_lo[1]] - yc[n])**2 ) + nmin = np.argmin(r) # find closest CP to point (i,j); making use of having non-overlapping CPs + if (r[nmin] <= (rstar + marg)): + z_max = (zstar + marg) * ( np.cos( r[nmin]/(rstar + marg) * np.pi / 2 )) ** 2 + z_max_arr[1, i, j] = z_max + if (r[nmin] <= rstar): + z_max = zstar * ( np.cos( r[nmin]/rstar * np.pi / 2 )) ** 2 + z_max_arr[0, i, j] = z_max + + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + theta[i, j, k] = theta_bg[k] + PV.values[u_varshift + ijk] = 0.0 + PV.values[v_varshift + ijk] = 0.0 + PV.values[w_varshift + ijk] = 0.0 + + if Gr.z_half[k] <= z_max_arr[0,i,j]: + theta[i,j,k] = theta_bg[k] - dTh + elif Gr.z_half[k] <= z_max_arr[1,i,j]: + th = theta_bg[k] - dTh * np.sin((Gr.z_half[k] - z_max_arr[1, i, j]) / (z_max_arr[0, i, j] - z_max_arr[1, i, j]) * np.pi/2) ** 2 + theta[i, j, k] = th + + # --- adding noise --- + if k <= kstar + 2: + theta_pert_ = (theta_pert[ijk] - 0.5) * 0.1 + else: + theta_pert_ = 0.0 + PV.values[s_varshift + ijk] = entropy_from_thetas_c(theta[i, j, k] + theta_pert_, 0.0) + + ''' Initialize passive tracer phi ''' + Pa.root_print('initialize passive tracer phi') + init_tracer(namelist, Gr, PV, Pa, z_max_arr, ic_arr, jc_arr) + Pa.root_print('Initialization: finished initialization') + + return + + + + + def InitStableBubble(namelist, Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa, LatentHeat LH): @@ -96,14 +639,18 @@ def InitStableBubble(namelist, Grid.Grid Gr,PrognosticVariables.PrognosticVariab PV.values[u_varshift + ijk] = 0.0 PV.values[v_varshift + ijk] = 0.0 PV.values[w_varshift + ijk] = 0.0 - dist = np.sqrt(((Gr.x_half[i + Gr.dims.indx_lo[0]]/1000.0 - 25.6)/4.0)**2.0 + ((Gr.z_half[k + Gr.dims.indx_lo[2]]/1000.0 - 3.0)/2.0)**2.0) + # dist = np.sqrt(((Gr.x_half[i + Gr.dims.indx_lo[0]]/1000.0 - 25.6)/4.0)**2.0 + ((Gr.z_half[k + Gr.dims.indx_lo[2]]/1000.0 - 3.0)/2.0)**2.0) + # dist = np.sqrt(((Gr.x_half[i + Gr.dims.indx_lo[0]]/1000.0 - 25.6)/8.0)**2.0 + ((Gr.z_half[k + Gr.dims.indx_lo[2]]/1000.0 - 3.0)/2.0)**2.0) + dist = np.sqrt(((Gr.y_half[j + Gr.dims.indx_lo[1]]/1000.0 - 25.6)/4.0)**2.0 + ((Gr.z_half[k + Gr.dims.indx_lo[2]]/1000.0 - 10.0)/1.2)**2.0) # changed since VisualizationOutput defined in yz-plane dist = fmin(dist,1.0) t = (300.0 )*exner_c(RS.p0_half[k]) - 15.0*( cos(np.pi * dist) + 1.0) /2.0 PV.values[s_varshift + ijk] = Th.entropy(RS.p0_half[k],t,0.0,0.0,0.0) - return + + + def InitSaturatedBubble(namelist,Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa, LatentHeat LH ): @@ -189,7 +736,8 @@ def InitSaturatedBubble(namelist,Grid.Grid Gr,PrognosticVariables.PrognosticVari return def InitSullivanPatton(namelist,Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, - ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa, LatentHeat LH ): + ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, + ParallelMPI.ParallelMPI Pa, LatentHeat LH ): #Generate the reference profiles RS.Pg = 1.0e5 #Pressure at ground @@ -257,10 +805,14 @@ def InitSullivanPatton(namelist,Grid.Grid Gr,PrognosticVariables.PrognosticVaria PV.values[e_varshift + ijk] = 0.0 return + + + def InitBomex(namelist,Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, - ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa, LatentHeat LH ): + ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, + ParallelMPI.ParallelMPI Pa, LatentHeat LH ): - #First generate the reference profiles + # First generate the reference profiles RS.Pg = 1.015e5 #Pressure at ground RS.Tg = 300.4 #Temperature at ground RS.qtg = 0.02245 #Total water mixing ratio at surface @@ -274,7 +826,7 @@ def InitBomex(namelist,Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, np.random.seed(Pa.rank * random_seed_factor) - #Get the variable number for each of the velocity components + # Get the variable number for each of the velocity components cdef: Py_ssize_t u_varshift = PV.get_varshift(Gr,'u') @@ -296,18 +848,17 @@ def InitBomex(namelist,Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, qt_pert = (np.random.random_sample(Gr.dims.npg )-0.5)*0.025/1000.0 for k in xrange(Gr.dims.nlg[2]): - - #Set Thetal profile + # Set Thetal profile if Gr.zl_half[k] <= 520.: thetal[k] = 298.7 - if Gr.zl_half[k] > 520.0 and Gr.zl_half[k] <= 1480.0: + elif Gr.zl_half[k] > 520.0 and Gr.zl_half[k] <= 1480.0: # 3.85 K / km thetal[k] = 298.7 + (Gr.zl_half[k] - 520) * (302.4 - 298.7)/(1480.0 - 520.0) - if Gr.zl_half[k] > 1480.0 and Gr.zl_half[k] <= 2000: + elif Gr.zl_half[k] > 1480.0 and Gr.zl_half[k] <= 2000: # 11.15 K / km thetal[k] = 302.4 + (Gr.zl_half[k] - 1480.0) * (308.2 - 302.4)/(2000.0 - 1480.0) - if Gr.zl_half[k] > 2000.0: + elif Gr.zl_half[k] > 2000.0: # 3.65 K / km thetal[k] = 308.2 + (Gr.zl_half[k] - 2000.0) * (311.85 - 308.2)/(3000.0 - 2000.0) - #Set qt profile + # Set qt profile if Gr.zl_half[k] <= 520: qt[k] = 17.0 + (Gr.zl_half[k]) * (16.3-17.0)/520.0 if Gr.zl_half[k] > 520.0 and Gr.zl_half[k] <= 1480.0: @@ -317,23 +868,23 @@ def InitBomex(namelist,Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, if Gr.zl_half[k] > 2000.0: qt[k] = 4.2 + (Gr.zl_half[k] - 2000.0) * (3.0 - 4.2)/(3000.0 - 2000.0) - #Change units to kg/kg + # Change units to kg/kg qt[k]/= 1000.0 - #Set u profile + # Set u profile if Gr.zl_half[k] <= 700.0: u[k] = -8.75 if Gr.zl_half[k] > 700.0: u[k] = -8.75 + (Gr.zl_half[k] - 700.0) * (-4.61 - -8.75)/(3000.0 - 700.0) - #Set velocities for Galilean transformation + # Set velocities for Galilean transformation RS.v0 = 0.0 RS.u0 = 0.5 * (np.amax(u)+np.amin(u)) - #Now loop and set the initial condition - #First set the velocities + # Now loop and set the initial condition + # First set the velocities count = 0 for i in xrange(Gr.dims.nlg[0]): ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] @@ -367,6 +918,8 @@ def InitBomex(namelist,Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, return + + def InitGabls(namelist,Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa, LatentHeat LH ): @@ -1696,6 +2249,290 @@ def InitZGILS(namelist, Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, +def InitSoares(namelist, Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, + ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa, LatentHeat La): +# def InitSullivanPatton(Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, +# ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa ): + + #Generate the reference profiles + RS.Pg = 1.0e5 #Pressure at ground (Soares) + RS.Tg = 300.0 #Temperature at ground (Soares) + # RS.qtg = 5e-3 #Total water mixing ratio at surface: qt = 5 g/kg (Soares) + RS.u0 = 0.01 # velocities removed in Galilean transformation (Soares: u = 0.01 m/s, IOP: 0.0 m/s) + RS.v0 = 0.0 # (Soares: v = 0.0 m/s) + RS.initialize(Gr, Th, NS, Pa) # initialize reference state; done for every case + + #Get the variable number for each of the velocity components + np.random.seed(Pa.rank) + cdef: + Py_ssize_t u_varshift = PV.get_varshift(Gr,'u') + Py_ssize_t v_varshift = PV.get_varshift(Gr,'v') + Py_ssize_t w_varshift = PV.get_varshift(Gr,'w') + Py_ssize_t s_varshift = PV.get_varshift(Gr,'s') + # Py_ssize_t qt_varshift = PV.get_varshift(Gr,'qt') # !!!! Problem: if dry Microphysics scheme chosen: qt is no PV + Py_ssize_t i,j,k + Py_ssize_t ishift, jshift, e_varshift + Py_ssize_t ijk + double [:] theta = np.empty((Gr.dims.nlg[2]),dtype=np.double,order='c') + # double [:] qt = np.empty((Gr.dims.nlg[2]),dtype=np.double,order='c') + double temp + + #Generate initial perturbations (here we are generating more than we need) ??? where amplitude of perturbations given? + cdef double [:] theta_pert = np.random.random_sample(Gr.dims.npg) + cdef double theta_pert_ + + + # Initial theta (potential temperature) profile (Soares) + for k in xrange(Gr.dims.nlg[2]): + # if Gr.zl_half[k] <= 1350.0: + # theta[k] = 300.0 + # else: + # theta[k] = 300.0 + 2.0/1000.0 * (Gr.zl_half[k] - 1350.0) + theta[k] = 297.3 + 2.0/1000.0 * (Gr.zl_half[k]) + + + cdef double [:] p0 = RS.p0_half + + # Now loop and set the initial condition + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + PV.values[u_varshift + ijk] = 0.0 - RS.u0 # original Soares: u = 0.1 + PV.values[v_varshift + ijk] = 0.0 - RS.v0 + PV.values[w_varshift + ijk] = 0.0 + + # Set the entropy prognostic variable including a potential temperature perturbation + # fluctuation height = 200m; fluctuation amplitude = 0.1 K + if Gr.zl_half[k] < 200.0: + theta_pert_ = (theta_pert[ijk] - 0.5)* 0.1 + else: + theta_pert_ = 0.0 + temp = (theta[k] + theta_pert_)*exner_c(RS.p0_half[k]) + PV.values[s_varshift + ijk] = Th.entropy(RS.p0_half[k],temp,0.0,0.0,0.0) + + # __ Initialize phi __ + try: + use_tracers = namelist['tracers']['use_tracers'] + except: + use_tracers = False + + try: + tracer_profile = namelist['tracers']['profile'] + except: + tracer_profile = 'smooth' + + try: + kmax_tracer = namelist['tracers']['kmax'] + except: + kmax_tracer = 10 + + cdef: + Py_ssize_t kmin = 0 + Py_ssize_t kmax = kmax_tracer + Gr.dims.gw + Py_ssize_t dk = 50 + Py_ssize_t var_shift + # double delta1, delta2 + # double ddk = 5.0 + + if use_tracers == 'passive': + if tracer_profile == 'smooth': + Pa.root_print('initializing passive tracer phi, smooth profile, kmax: ' + str(kmax_tracer) + ', dk: ' + str(dk)) + var_shift = PV.get_varshift(Gr, 'phi') + # with nogil: + if 1==1: + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + if k > kmin and k <= kmax: + PV.values[var_shift + ijk] = 1.0 + # PV.values[var_shift + ijk] = 0.0 + elif k > kmax and k < (kmax + dk): + PV.values[var_shift + ijk] = 0.5*( 1+np.cos((k-kmax)/np.double(dk)*np.pi) ) + else: + PV.values[var_shift + ijk] = 0.0 + else: + Pa.root_print('initializing passive tracer phi, edge profile, kmax: ' + str(kmax_tracer)) + var_shift = PV.get_varshift(Gr, 'phi') + # with nogil: + if 1==1: + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + if k > kmin and k <= kmax: + PV.values[var_shift + ijk] = 1.0 + else: + PV.values[var_shift + ijk] = 0.0 + # __ + + if 'e' in PV.name_index: + e_varshift = PV.get_varshift(Gr, 'e') + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + PV.values[e_varshift + ijk] = 0.0 + + return + + + +def InitSoares_moist(namelist, Grid.Grid Gr,PrognosticVariables.PrognosticVariables PV, + ReferenceState.ReferenceState RS, Th, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa, LatentHeat La): + # Generate the reference profiles + # RS.Pg = 1.015e5 #Pressure at ground (Bomex) + RS.Pg = 1.0e5 #Pressure at ground (Soares) + # RS.Tg = 300.4 #Temperature at ground (Bomex) + RS.Tg = 300.0 #Temperature at ground (Soares) + # RS.qtg = 0.02245 #Total water mixing ratio at surface (Bomex) + RS.qtg = 5.0e-3 #Total water mixing ratio at surface: qt = 5 g/kg (Soares) + RS.u0 = 0.01 # velocities removed in Galilean transformation (Soares: u = 0.01 m/s, IOP: 0.0 m/s) + RS.v0 = 0.0 # (Soares: v = 0.0 m/s) + + RS.initialize(Gr, Th, NS, Pa) + + #Get the variable number for each of the velocity components + np.random.seed(Pa.rank) + cdef: + Py_ssize_t u_varshift = PV.get_varshift(Gr,'u') + Py_ssize_t v_varshift = PV.get_varshift(Gr,'v') + Py_ssize_t w_varshift = PV.get_varshift(Gr,'w') + Py_ssize_t s_varshift = PV.get_varshift(Gr,'s') + Py_ssize_t qt_varshift = PV.get_varshift(Gr,'qt') + Py_ssize_t i,j,k + Py_ssize_t ishift, jshift, e_varshift + Py_ssize_t ijk + double temp + double qt_ + double [:] theta = np.empty((Gr.dims.nlg[2]),dtype=np.double,order='c') + # double [:] thetal = np.empty((Gr.dims.nlg[2]),dtype=np.double,order='c') + double [:] qt = np.empty((Gr.dims.nlg[2]),dtype=np.double,order='c') + # double [:] u = np.zeros((Gr.dims.nlg[2]),dtype=np.double,order='c') + Py_ssize_t count + + #Generate initial perturbations (here we are generating more than we need) ??? where amplitude of perturbations given? + theta_pert = (np.random.random_sample(Gr.dims.npg )-0.5)*0.1 + qt_pert = (np.random.random_sample(Gr.dims.npg )-0.5)*0.025/1000.0 + + for k in xrange(Gr.dims.nlg[2]): + # Initial theta profile (Soares) + if Gr.zl_half[k] <= 1350.0: + theta[k] = 300.0 + else: + theta[k] = 300.0 + 2.0/1000.0 * (Gr.zl_half[k] - 1350.0) + # theta[k] = 297.3 + 2.0/1000.0 * (Gr.zl_half[k]) + + # Initial qt profile (Soares) + if Gr.zl_half[k] <= 1350: + qt[k] = 5.0 - (Gr.zl_half[k]) * 3.7e-4 + if Gr.zl_half[k] > 1350: + qt[k] = 5.0 - 1350.0 * 3.7e-4 - (Gr.zl_half[k] - 1350.0) * 9.4e-4 + + #Change units to kg/kg + qt[k]/= 1000.0 + + #Now loop and set the initial condition + #First set the velocities + count = 0 + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + PV.values[u_varshift + ijk] = 0.0 - RS.u0 + PV.values[v_varshift + ijk] = 0.0 - RS.v0 + PV.values[w_varshift + ijk] = 0.0 + # Set the entropy prognostic variable including a potential temperature perturbation + # fluctuation height = 200m; fluctuation amplitude = 0.1 K + if Gr.zl_half[k] < 200.0: + temp = (theta[k] + (theta_pert[count])) * exner_c(RS.p0_half[k]) + qt_ = qt[k]+qt_pert[count] + else: + temp = (theta[k]) * exner_c(RS.p0_half[k]) + qt_ = qt[k] + + PV.values[s_varshift + ijk] = Th.entropy(RS.p0_half[k],temp,qt_,0.0,0.0) + PV.values[qt_varshift + ijk] = qt_ + count += 1 + + + # __ Initialize phi __ + try: + use_tracers = namelist['tracers']['use_tracers'] + except: + use_tracers = False + + cdef: + Py_ssize_t kmin = 0 + Py_ssize_t kmax = 10 + Py_ssize_t var_shift + + if use_tracers == 'passive': + Pa.root_print('initializing passive tracer phi') + var_shift = PV.get_varshift(Gr, 'phi') + with nogil: + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + if k > kmin and k < kmax: + # for k in xrange(kmin, kmax): + PV.values[var_shift + ijk] = 1.0 + else: + PV.values[var_shift + ijk] = 0.0 + # __ + + + # __ + imax = Gr.dims.nlg[0] + jmax = Gr.dims.nlg[1] + kmax = Gr.dims.nlg[2] + istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + jstride = Gr.dims.nlg[2] + ijk_max = imax*istride + jmax*jstride + kmax + if np.isnan(PV.values[s_varshift:qt_varshift]).any(): # nans + print('nan in s') + else: + print('No nan in s') + if np.isnan(PV.values[qt_varshift:qt_varshift+ijk_max]).any(): + print('nan in qt') + else: + print('No nan in qt') + if np.nanmin(PV.values[qt_varshift:qt_varshift+ijk_max]) < 0: + print('Init: qt < 0') + # __ + + if 'e' in PV.name_index: + e_varshift = PV.get_varshift(Gr, 'e') + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + PV.values[e_varshift + ijk] = 0.0 + + Pa.root_print('finished Initialization Soares_moist') + + return + + + + + def AuxillaryVariables(nml, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa): @@ -1770,4 +2607,81 @@ def interp_pchip(z_out, z_in, v_in, pchip_type=True): p = pchip(z_in, v_in, extrapolate=True) return p(z_out) else: - return np.interp(z_out, z_in, v_in) \ No newline at end of file + return np.interp(z_out, z_in, v_in) + + +def init_tracer(namelist, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, + ParallelMPI.ParallelMPI Pa, z_max_arr, ic_arr, jc_arr): + ''' Initialize passive tracer phi ''' + try: + use_tracers = namelist['tracers']['use_tracers'] + except: + use_tracers = False + + try: + phi_number = namelist['tracers']['number'] + except: + phi_number = 1 + + try: + kmax_tracer = namelist['tracers']['kmax'] + except: + kmax_tracer = 10 + + try: + kmin_tracer = namelist['tracers']['kmin'] + except: + kmin_tracer = 0 + + cdef: + Py_ssize_t i, j, k + Py_ssize_t ishift, jshift, ijk + Py_ssize_t var_shift + Py_ssize_t kmin = kmin_tracer + Gr.dims.gw + Py_ssize_t kmax = kmax_tracer + Gr.dims.gw + Py_ssize_t dk = 50 + + if use_tracers == 'passive': + Pa.root_print('initializing passive tracer phi, smooth profile, kmax: ' + str(kmax_tracer) + ', dk: ' + str(dk)) + var_shift = PV.get_varshift(Gr, 'phi') + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + if k > kmin and k <= kmax: + PV.values[var_shift + ijk] = 1.0 + elif k > kmax and k < (kmax + dk): + PV.values[var_shift + ijk] = 0.5*( 1+np.cos((k-kmax)/np.double(dk)*np.pi) ) + else: + PV.values[var_shift + ijk] = 0.0 + + elif use_tracers == 'surface': + Pa.root_print('Initalization: Surface Tracers') + # kmax = 0 + k0 = 0 + Pa.root_print('initializing passive tracer phi at surface' ) + var_shift = PV.get_varshift(Gr, 'phi') + i_max = Gr.dims.nlg[0]-1 + j_max = Gr.dims.nlg[1]-1 + k_max = Gr.dims.nlg[2]-1 + ijk_min = var_shift + ijk_max = var_shift + i_max * Gr.dims.nlg[1] * Gr.dims.nlg[2] + j_max * Gr.dims.nlg[2] + k_max + PV.values[var_shift:] = 0.0 + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + ijk = ishift + jshift + k0 + PV.values[var_shift + ijk] = 1.0 + for k in xrange(k0+1,Gr.dims.nlg[2]): + jshift = j * Gr.dims.nlg[2] + ijk = ishift + jshift + k + PV.values[var_shift + ijk] = 0.0 + + elif use_tracers == 'coldpool': + Pa.root_print('Initalization: Cold Pool Tracers') + for nv in range(phi_number): + var_shift = PV.get_varshift(Gr, 'phi'+str(nv)) + + return diff --git a/Microphysics.pyx b/Microphysics.pyx index 7450b619..a3a0a4be 100644 --- a/Microphysics.pyx +++ b/Microphysics.pyx @@ -42,7 +42,6 @@ cdef class No_Microphysics_Dry: return - cdef class No_Microphysics_SA: def __init__(self, ParallelMPI.ParallelMPI Par, LatentHeat LH, namelist): LH.Lambda_fp = lambda_constant @@ -553,10 +552,13 @@ cdef cython_wetbulb(Grid.DimStruct *dims, Lookup.LookupStruct *LT, double *p0, d def MicrophysicsFactory(namelist, LatentHeat LH, ParallelMPI.ParallelMPI Par): if(namelist['microphysics']['scheme'] == 'None_Dry'): + Par.root_print('No Microphysics dry') return No_Microphysics_Dry(Par, LH, namelist) elif(namelist['microphysics']['scheme'] == 'None_SA'): + Par.root_print('No Microphysics SA') return No_Microphysics_SA(Par, LH, namelist) elif(namelist['microphysics']['scheme'] == 'SB_Liquid'): + Par.root_print('Microphysics SG liquid') return Microphysics_SB_Liquid(Par, LH, namelist) elif(namelist['microphysics']['scheme'] == 'Arctic_1M'): return Microphysics_Arctic_1M(Par, LH, namelist) diff --git a/MomentumAdvection.pyx b/MomentumAdvection.pyx index 6fc68aff..d2e82943 100644 --- a/MomentumAdvection.pyx +++ b/MomentumAdvection.pyx @@ -23,6 +23,7 @@ cdef class MomentumAdvection: def __init__(self, namelist, ParallelMPI.ParallelMPI Pa): try: self.order = namelist['momentum_transport']['order'] + Pa.root_print('momentum transport: order ' + np.str(self.order)) except: Pa.root_print( 'momentum_transport order not given in namelist') @@ -39,7 +40,6 @@ cdef class MomentumAdvection: return cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Rs, PrognosticVariables.PrognosticVariables PV, ParallelMPI.ParallelMPI Pa): - cdef: Py_ssize_t i_advecting # Direction of advecting velocity Py_ssize_t i_advected # Direction of momentum component @@ -63,6 +63,7 @@ cdef class MomentumAdvection: i_advecting] * Gr.dims.npg # Compute the fluxes + # print('Flux: ', i_advecting, i_advected, 'vel:', PV.values[shift_advecting+Gr.dims.gw], PV.values[shift_advected+Gr.dims.gw]) compute_advective_tendencies_m(&Gr.dims, &Rs.rho0[0], &Rs.rho0_half[0], &Rs.alpha0[0], &Rs.alpha0_half[0], &PV.values[shift_advected], &PV.values[shift_advecting], &PV.tendencies[shift_advected], i_advected, i_advecting, self.order) diff --git a/NetCDFIO.pyx b/NetCDFIO.pyx index 9899c6e1..4af96f12 100644 --- a/NetCDFIO.pyx +++ b/NetCDFIO.pyx @@ -32,6 +32,7 @@ cdef class NetCDFIO_Stats: # Setup the statistics output path outpath = str(os.path.join(namelist['output']['output_root'] + 'Output.' + namelist['meta']['simname'] + '.' + self.uuid[-5:])) + Pa.root_print(outpath) if Pa.rank == 0: try: @@ -74,6 +75,7 @@ cdef class NetCDFIO_Stats: return cpdef close_files(self, ParallelMPI.ParallelMPI Pa): + Pa.root_print('StatsIO.close_files') if Pa.rank == 0: self.root_grp.close() return @@ -271,6 +273,9 @@ cdef class NetCDFIO_Fields: cpdef initialize(self, dict namelist, ParallelMPI.ParallelMPI Pa): self.last_output_time = 0.0 + # __ + # self.count = 0 + # __ self.uuid = str(namelist['meta']['uuid']) self.frequency = namelist['fields_io']['frequency'] @@ -297,6 +302,11 @@ cdef class NetCDFIO_Fields: new_dir = os.path.join( self.fields_path, str(int(self.last_output_time))) + # __ + #new_dir = os.path.join( + #self.fields_path, str(int(self.last_output_time))+'_'+str(self.count)) + # self.count += 1 + # __ if Pa.rank == 0 and not os.path.exists(new_dir): try: @@ -549,4 +559,4 @@ cdef class NetCDFIO_CondStats: root_grp.close() except: pass - return \ No newline at end of file + return diff --git a/ParallelMPI.pyx b/ParallelMPI.pyx index 6118dcfa..601d3185 100644 --- a/ParallelMPI.pyx +++ b/ParallelMPI.pyx @@ -203,7 +203,10 @@ cdef class ParallelMPI: :param values1: pointer to array of type double containing first value in product :return: memoryview type double with dimension Gr.dims.nlg[2] ''' - + # Gr.dims.n[i] = namelist['grid']['ni'] (e.g. n[0] = 'nx') --> total number of pts + # Gr.dims.nl[i] = Gr.dims.n[i] // mpi_dims[i] --> local number of pts (per processor) + # Gr.dims.nlg[i] = Gr.dims.nl[i] + 2*gw --> local number of pts incl ghost points + # i = 0,1,2 cdef: double [:] mean_local = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') double [:] mean = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') diff --git a/PostProcessing/Compatibility.py b/PostProcessing/Compatibility.py new file mode 100644 index 00000000..e9de8153 --- /dev/null +++ b/PostProcessing/Compatibility.py @@ -0,0 +1,114 @@ +import netCDF4 as nc +import argparse +import os +import numpy as np +import json as simplejson + +def main(): + parser = argparse.ArgumentParser(prog='PyCLES') + #parser.add_argument("fields_dir") + parser.add_argument("dir") + parser.add_argument("time1") + parser.add_argument("time2") + args = parser.parse_args() + + t = 0 + for time in [args.time1, args.time2]: + print(time) + path = time + '.nc' + print('????', path) + fullpath_in = os.path.join(args.dir,'fields',path) + if t==0: + var1 = read_in_netcdf('phi',fullpath_in) + elif t==1: + var2 = read_in_netcdf('phi',fullpath_in) + t+=1 + + print(var1.shape) + print(var2.shape) + + case_name = 'DCBLSoares' + nml = simplejson.loads(open(args.dir + case_name + '.in').read()) + dx = nml['grid']['dx'] + dy = nml['grid']['dy'] + dz = nml['grid']['dz'] + global nx, ny, nz + nx = nml['grid']['nx'] + ny = nml['grid']['ny'] + nz = nml['grid']['nz'] + print('nx,ny,nz:', nx,ny,nz) + global dt + dt = np.int(args.time2) - np.int(args.time1) + print('dt', dt) + + + test_compatibility(var1, var2) + return + +#---------------------------------------------------------------------- +def test_compatibility(data1,data2): + # global nx + phimax = -9999.99 + phimin = 9999.99 + for i in xrange(1,nx-1): + print(i) + for j in xrange(1,ny-1): + for k in xrange(1,nz-1): + for di in xrange(-1,2): + for dj in xrange(-1,2): + for dk in xrange(-1,2): + a = data1[i+di,j+dj,k+dk] + if amax: + phimax = a + if data2[i,j,k] < phimin: + print('problem min') + elif data2[i,j,k] > phimax: + print('problem max') + + #phimin = min(data1[i+di,j+dj,k+dk]) + return + +#---------------------------------------------------------------------- +def read_in_netcdf(variable_name, fullpath_in): + rootgrp = nc.Dataset(fullpath_in, 'r') + var = rootgrp.groups['fields'].variables[variable_name] + + shape = var.shape + print('shape:',var.shape) + data = np.ndarray(shape = var.shape) + + rootgrp.close() + return data + +#---------------------------------------------------------------------- +def read_in(variable_name, group_name, fullpath_in): + f = File(fullpath_in) + + #Get access to the profiles group + profiles_group = f[group_name] + #Get access to the variable dataset + variable_dataset = profiles_group[variable_name] + #Get the current shape of the dataset + variable_dataset_shape = variable_dataset.shape + + variable = np.ndarray(shape = variable_dataset_shape) + for t in range(variable_dataset_shape[0]): + if group_name == "timeseries": + variable[t] = variable_dataset[t] + elif group_name == "profiles": + variable[t,:] = variable_dataset[t, :] + elif group_name == "correlations": + variable[t,:] = variable_dataset[t, :] + elif group_name == "fields": + variable[t] = variable_dataset[t] + + f.close() + return variable + + + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/PostProcessing/Correlations.py b/PostProcessing/Correlations.py new file mode 100644 index 00000000..97fa7251 --- /dev/null +++ b/PostProcessing/Correlations.py @@ -0,0 +1,385 @@ +# (0) chose time +# (1) import Fields +# --> load field data for a advected variable phi and all velocities u,v,w +# (2) import Statistical File (nc-file) +# (mean Profiles --> horizontal domain mean) +# --> load mean-profile for advected variable phi and all velocities u,v,w +# --> chose array[var,z] at time t +# (3) phi' = phi - mean[phi], u' = ... etc. +import netCDF4 as nc +import argparse +import os +import numpy as np +import json as simplejson + +# 1. Eddy Fields should be computed from 3D output fields with: EddyField_output.py +# 2. this field computes the correlations + +def main(): + global case + case = 'DCBLSoares' + + parser = argparse.ArgumentParser(prog='PyCLES') + parser.add_argument("dir") + parser.add_argument("time") + args = parser.parse_args() + print(args.dir, args.time) + global time + time = np.int(args.time) + + # (0) import Namelist --> to chose right mean profile, fitting with time + nml_name = case + '.in' + path_nml = os.path.join(args.dir,nml_name) + nml = simplejson.loads(open(args.dir + case + '.in').read()) + dt = nml['stats_io']['frequency'] + + # (1) define time index of profile + # time: array with all output times of profile statistics + # nt: index of profile at time=args.time (same time as fields) + file_name = 'Stats.' + case + '.nc' + path_profiles = os.path.join(args.dir,file_name) + field_name = 'eddy_field_' + args.time + '.nc' + path_fields = os.path.join(args.dir, field_name) + + var_name = 't' + global nt + time_series = read_in_netcdf_stats(var_name,"timeseries",path_profiles) + print('time[0]', time_series[0], np.int(args.time)) + if time_series[0] == 0: + nt = np.int(args.time) / dt + 1 + if np.mod(nt,1) > 0: + print(nt) + sys.exit() + else: + nt = np.int(nt) + print('dt', dt, 'nt', nt) + else: + print('profiles do not start at zero') + sys.exit() + + + # (2) import fields & mean profiles & reference state profiles + # u_profile, v_profile, w_profile, phi_profile: mean profiles of resp. variable at time t + print('reading in eddy fields: ', path_fields) + global rho0, alpha0 + var_name = 'u' +# u_profile = read_in_netcdf_profile(var_name+'_mean',"profiles",path_profiles) + u_field = read_in_netcdf_fields(var_name+'_eddy',path_fields) + var_name = 'v' +# v_profile = read_in_netcdf_profile(var_name+'_mean',"profiles",path_profiles) + v_field = read_in_netcdf_fields(var_name+'_eddy',path_fields) + var_name = 'w' +# w_profile = read_in_netcdf_profile(var_name+'_mean',"profiles",path_profiles) + w_field = read_in_netcdf_fields(var_name+'_eddy',path_fields) + var_name = 'phi' +# phi_profile = read_in_netcdf_profile(var_name+'_mean',"profiles",path_profiles) + phi_field = read_in_netcdf_fields(var_name+'_eddy',path_fields) + var_name = 'rho0' + rho0 = read_in_netcdf_stats(var_name,"reference",path_profiles) + var_name = 'alpha0' + alpha0 = read_in_netcdf_stats(var_name,"reference",path_profiles) +# print('profile: ', u_profile.shape) + print('field: ', u_field.shape) + + + # (3) read in grid dimensions + ni_ = np.zeros((3,)) + global n, ntot, dx + n = np.zeros((3,)) + n = n.astype(int) + ni_[0] = nml['grid']['nx'] + ni_[1] = nml['grid']['ny'] + ni_[2] = nml['grid']['nz'] + for i in range(3): + n[i] = u_field.shape[i] + if n[i] != ni_[i]: + print('Dimensions do not fit!') + sys.exit() +# if n[2] != u_profile.size: +# print('Dimensions profile vs. field do not fit!') +# print('nz:',n[2],'field:',u_field.shape[2],'profile:',u_profile.size) +# sys.exit() + ntot = n[0]*n[1]*n[2] + dx = np.zeros((3,)) + dx = dx.astype(int) + dx[0] = nml['grid']['dx'] + dx[1] = nml['grid']['dy'] + dx[2] = nml['grid']['dz'] + print('dz:', dx[0], dx[1], dx[2]) + + + + # (4) compute Correlations + sh = u_field.shape + uphi = np.zeros(shape=sh) + vphi = np.zeros(shape=sh) + wphi = np.zeros(shape=sh) + for i in range(n[0]): + if np.mod(i,50) == 0: + print(i) + for j in range(n[1]): + for k in range(n[2]): + uphi[i,j,k] = u_field[i,j,k]*phi_field[i,j,k] + vphi[i,j,k] = v_field[i,j,k]*phi_field[i,j,k] + wphi[i,j,k] = w_field[i,j,k]*phi_field[i,j,k] + print('uphi:', np.amax(np.abs(u_field)), np.amax(np.abs(phi_field)), np.amax(np.abs(uphi))) + print('vphi:', np.amax(np.abs(v_field)), np.amax(np.abs(phi_field)), np.amax(np.abs(vphi))) + print('wphi:', np.amax(np.abs(w_field)), np.amax(np.abs(phi_field)), np.amax(np.abs(wphi))) + + + # (5) compute Correlation Divergence + uphi_div = np.zeros(shape=sh) + vphi_div = np.zeros(shape=sh) + wphi_div = np.zeros(shape=sh) + dxi = 1./dx[0] + dyi = 1./dx[1] + dzi = 1./dx[2] + print('dxi', dxi, dyi, dzi) + for i in range(1,n[0]-1): + if np.mod(i,50) == 0: + print(i) + for j in range(1,n[1]-1): + for k in range(1,n[2]-1): + uphi_div[i,j,k] = 0.5*dxi*(uphi[i+1,j,k]-uphi[i-1,j,k]) + vphi_div[i,j,k] = 0.5*dyi*(vphi[i,j+1,k]-vphi[i,j-1,k]) + wphi_div[i,j,k] = alpha0[k]*0.5*dzi*(rho0[k+1]*wphi[i,j,k+1]-rho0[k-1]*wphi[i,j,k-1]) + print('uphi_div:', np.amax(np.abs(uphi)), np.amax(np.abs(uphi_div))) + print('vphi_div:', np.amax(np.abs(vphi)), np.amax(np.abs(vphi_div))) + print('wphi_div:', np.amax(np.abs(wphi)), np.amax(np.abs(wphi_div))) + + + # (6) compute mean Correlation Profiles + uphi_mean = np.zeros((sh[2])) + vphi_mean = np.zeros((sh[2])) + wphi_mean = np.zeros((sh[2])) + print('corr profile:', uphi_mean.shape, uphi.shape) + for i in range(n[0]): + if np.mod(i,50) == 0: + print(i) + for j in range(n[1]): + for k in range(n[2]): + uphi_mean[k] += uphi[i,j,k] + vphi_mean[k] += vphi[i,j,k] + wphi_mean[k] += wphi[i,j,k] + uphi_mean /= (n[0]*n[1]) + vphi_mean /= (n[0]*n[1]) + wphi_mean /= (n[0]*n[1]) + + + + # (5) IO + # (a) create file for fields + out_path = args.dir + nc_file_name = 'correlations_' + args.time + print(out_path) + create_fields_file(out_path,nc_file_name) + +# # (b) dump correlation fields + dump_field(os.path.join(out_path,nc_file_name+'.nc'), 'uphi', uphi) + dump_field(os.path.join(out_path,nc_file_name+'.nc'), 'vphi', vphi) + dump_field(os.path.join(out_path,nc_file_name+'.nc'), 'wphi', wphi) + + # (c) dump correlation divergence fields + dump_field(os.path.join(out_path,nc_file_name+'.nc'), 'uphi_div', uphi_div) + dump_field(os.path.join(out_path,nc_file_name+'.nc'), 'vphi_div', vphi_div) + dump_field(os.path.join(out_path,nc_file_name+'.nc'), 'wphi_div', wphi_div) + + # (d) dump mean profiles + dump_profile(os.path.join(out_path,nc_file_name+'.nc'),'uphi_mean',uphi_mean) + dump_profile(os.path.join(out_path,nc_file_name+'.nc'),'vphi_mean',vphi_mean) + dump_profile(os.path.join(out_path,nc_file_name+'.nc'),'wphi_mean',wphi_mean) + + return + + + + +# ____________________ + +def create_fields_file(path,file_name): + print('create field:', path) + rootgrp = nc.Dataset(path+file_name+'.nc', 'w', format='NETCDF4') + dimgrp = rootgrp.createGroup('dims') + fieldgrp = rootgrp.createGroup('fields') + fieldgrp.createDimension('n', n[0]*n[1]*n[2]) + fieldgrp.createDimension('nx', n[0]) + fieldgrp.createDimension('ny', n[1]) + fieldgrp.createDimension('nz', n[2]) + + profilegrp = rootgrp.createGroup('profiles') + profilegrp.createDimension('nz', n[2]) + z = profilegrp.createVariable('z', 'f8', ('nz')) + z_half = profilegrp.createVariable('z_half', 'f8', ('nz')) + z = np.empty((n[2]),dtype=np.double,order='c') + z_half = np.empty((n[2]),dtype=np.double,order='c') + for i in xrange(0,n[2],1): + z[i] = i * dx[2] + z_half[i] = (i+0.5)*dx[2] + + rootgrp.close() + print('create field end') + return + +def dump_field(path, var_name, var): + print('dump fields', path, var_name, var.shape) + data = np.empty((n[0],n[1],n[2]),dtype=np.double,order='c') + # double[:] data = np.empty((Gr.dims.npl,), dtype=np.double, order='c') + add_field(path, var_name) + for i in range(0, n[0]): + for j in range(0, n[1]): + for k in range(0, n[2]): + data[i,j,k] = var[i,j,k] + write_field(path,var_name, data) + return + +def add_field(path, var_name): + print('add field: ', var_name) + rootgrp = nc.Dataset(path, 'r+', format='NETCDF4') + fieldgrp = rootgrp.groups['fields'] + # fieldgrp.createVariable(var_name, 'f8', ('n')) + var = fieldgrp.createVariable(var_name, 'f8', ('nx', 'ny', 'nz')) + rootgrp.close() + return + +def write_field(path, var_name, data): + print('write field:', path, var_name, data.shape) + rootgrp = nc.Dataset(path, 'r+', format='NETCDF4') + fieldgrp = rootgrp.groups['fields'] + var = fieldgrp.variables[var_name] + # var[:] = np.array(data) + var[:, :, :] = data + rootgrp.close() + return + + + +def dump_profile(path, var_name, var): + print('dump profile', path, var_name, var.shape) + data = np.empty((n[2]),dtype=np.double,order='c') + # double[:] data = np.empty((Gr.dims.npl,), dtype=np.double, order='c') + add_profile(path, var_name) + for k in range(0, n[2]): + data[k] = var[k] + write_profile(path,var_name, data) + return + +def add_profile(path, var_name): + print('add field: ', var_name) + rootgrp = nc.Dataset(path, 'r+', format='NETCDF4') + profilegrp = rootgrp.groups['profiles'] + # fieldgrp.createVariable(var_name, 'f8', ('n')) + var = profilegrp.createVariable(var_name, 'f8', ('nz')) + rootgrp.close() + return + +def write_profile(path, var_name, data): + print('write field:', path, var_name, data.shape) + rootgrp = nc.Dataset(path, 'r+', format='NETCDF4') + profilegrp = rootgrp.groups['profiles'] + var = profilegrp.variables[var_name] + # var[:] = np.array(data) + var[:] = data + rootgrp.close() + return + + +# ---------------------------------- +def read_in_netcdf_fields(variable_name, fullpath_in): +# print(fullpath_in) + rootgrp = nc.Dataset(fullpath_in, 'r') + var = rootgrp.groups['fields'].variables[variable_name] + shape = var.shape + data = np.ndarray(shape = var.shape) + data = var[:] + rootgrp.close() + return data + + +def read_in_netcdf_stats(variable_name, group_name, fullpath_in): +# print(fullpath_in) + rootgrp = nc.Dataset(fullpath_in, 'r') + var = rootgrp.groups[group_name].variables[variable_name] + shape = var.shape + data = np.ndarray(shape = var.shape) + if group_name != 'profiles': + var = rootgrp.groups[group_name].variables[variable_name] + for t in range(shape[0]): + if group_name == "profiles": + data[t,:] = var[t, :] + nkr = rootgrp.groups['profiles'].variables['z'].shape[0] + if group_name == "correlations": + data[t,:] = var[t, :] + if group_name == "timeseries": + data[t] = var[t] + rootgrp.close() + return data + + +def read_in_netcdf_stats_t(variable_name, group_name, fullpath_in): + rootgrp = nc.Dataset(fullpath_in, 'r') + var = rootgrp.groups[group_name].variables[variable_name] + shape = var.shape + #print('read_in_profile: ', time, var.shape, nt, type(nt)) + + if group_name == "profiles": + data = np.ndarray((shape[1],)) + data[:] = var[nt, :] + if group_name == "correlations": + data = np.ndarray((shape[1],)) + data[:] = var[nt, :] + if group_name == "timeseries": + data = var[nt] + rootgrp.close() + return data + +# ---------------------------------- + +def setup_stats_file(path): + # path = 'test_field/' + root_grp = nc.Dataset(path, 'w', format='NETCDF4') + + # Set profile dimensions + profile_grp = root_grp.createGroup('profiles') + profile_grp.createDimension('z', n[2]) + profile_grp.createDimension('t', None) + + z = profile_grp.createVariable('z', 'f8', ('z')) + z_half = profile_grp.createVariable('z_half', 'f8', ('z')) + z = np.empty((n[2]),dtype=np.double,order='c') + z_half = np.empty((n[2]),dtype=np.double,order='c') + count = 0 +# for i in xrange(-self.dims.gw,self.dims.n[2]+self.dims.gw,1): + for i in xrange(0,n[2],1): +# z[count] = (i + 1) * self.dims.dx[2] + z[i] = i * dx[2] + z_half[i] = (i+0.5)*dx[2] + count += 1 + + z[:] = np.array(Gr.z[Gr.dims.gw:-Gr.dims.gw]) + z[:] = np.array(Gr.z[Gr.dims.gw:-Gr.dims.gw]) + +# z_half[:] = np.array(Gr.z_half[Gr.dims.gw:-Gr.dims.gw]) + profile_grp.createVariable('t', 'f8', ('t')) + del z + del z_half + +# reference_grp = root_grp.createGroup('reference') +# reference_grp.createDimension('z', Gr.dims.n[2]) +# z = reference_grp.createVariable('z', 'f8', ('z')) +# z[:] = np.array(Gr.z[Gr.dims.gw:-Gr.dims.gw]) +# z_half = reference_grp.createVariable('z_half', 'f8', ('z')) +# z_half[:] = np.array(Gr.z_half[Gr.dims.gw:-Gr.dims.gw]) +# del z +# del z_half + + ts_grp = root_grp.createGroup('timeseries') + ts_grp.createDimension('t', None) + ts_grp.createVariable('t', 'f8', ('t')) + + root_grp.close() + return + + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/PostProcessing/EddyField_output.py b/PostProcessing/EddyField_output.py new file mode 100644 index 00000000..aadac0bc --- /dev/null +++ b/PostProcessing/EddyField_output.py @@ -0,0 +1,243 @@ +# (0) chose time +# (1) import Fields +# --> load field data for a advected variable phi and all velocities u,v,w +# (2) import Statistical File (nc-file) +# (mean Profiles --> horizontal domain mean) +# --> load mean-profile for advected variable phi and all velocities u,v,w +# --> chose array[var,z] at time t +# (3) phi' = phi - mean[phi], u' = ... etc. +import netCDF4 as nc +import argparse +import os +import numpy as np +import json as simplejson + +def main(): + global case + case = 'DCBLSoares' + + parser = argparse.ArgumentParser(prog='PyCLES') + parser.add_argument("dir") + parser.add_argument("time") + args = parser.parse_args() + print(args.dir, args.time) + global time + time = np.int(args.time) + + # (0) import Namelist --> to chose right mean profile, fitting with time + nml = simplejson.loads(open(args.dir + case + '.in').read()) +# nml = simplejson.loads(open(case + '.in').read()) + dt = nml['stats_io']['frequency'] + dz = nml['grid']['dz'] + print('dt:', dt, 'dz:', dz) + + # (1) define time index of profile + # (2) import fields & mean profiles + # time: array with all output times of profile statistics + # nt: index of profile at time=args.time (same time as fields) + # u_profile, v_profile, w_profile, phi_profile: mean profiles of resp. variable at time t + file_name = 'Stats.' + case + '.nc' + path_profiles = os.path.join(args.dir,file_name) +# path_profiles = file_name + field_name = args.time + '.nc' + path_fields = os.path.join(args.dir, 'fields', field_name) + + var_name = 't' + global nt + time_series = read_in_netcdf_profile_all(var_name,"timeseries",path_profiles) + print('time[0]', time_series[0], np.int(args.time)) + if time_series[0] == 0: + nt = np.int(args.time) / dt + 1 + if np.mod(nt,1) > 0: + print(nt) + sys.exit() + else: + nt = np.int(nt) + print('nt', nt) + else: + print('profiles do not start at zero') + sys.exit() + + var_name = 'u' + u_profile = read_in_netcdf_profile(var_name+'_mean',"profiles",path_profiles) + u_field = read_in_netcdf_fields(var_name,path_fields) + var_name = 'v' + v_profile = read_in_netcdf_profile(var_name+'_mean',"profiles",path_profiles) + v_field = read_in_netcdf_fields(var_name,path_fields) + var_name = 'w' + w_profile = read_in_netcdf_profile(var_name+'_mean',"profiles",path_profiles) + w_field = read_in_netcdf_fields(var_name,path_fields) + var_name = 'phi' + phi_profile = read_in_netcdf_profile(var_name+'_mean',"profiles",path_profiles) + phi_field = read_in_netcdf_fields(var_name,path_fields) + + print('profile: ', u_profile.shape) + print('field: ', u_field.shape, np.amax(np.abs(u_field))) + print('max u', np.amax(np.abs(u_field)), np.amax(u_profile)) + print('max v', np.amax(np.abs(v_field)), np.amax(v_profile)) + print('max w', np.amax(np.abs(w_field)), np.amax(w_profile)) + print('max phi', np.amax(np.abs(phi_field)), np.amax(phi_profile)) + + # (3) read in grid dimensions + ni_ = np.zeros((3,)) + global n, ntot + n = np.zeros((3,)) + n = n.astype(int) + ni_[0] = nml['grid']['nx'] + ni_[1] = nml['grid']['ny'] + ni_[2] = nml['grid']['nz'] + for i in range(3): + n[i] = u_field.shape[i] + if n[i] != ni_[i]: + print('Dimensions do not fit!') + sys.exit() + if n[2] != u_profile.size: + print('Dimensions profile vs. field do not fit!') + print('nz:',n[2],'field:',u_field.shape[2],'profile:',u_profile.size) + sys.exit() + ntot = n[0]*n[1]*n[2] + + + # (4) compute eddy fields + sh = u_field.shape + u_eddy = np.zeros(shape=sh) + v_eddy = np.zeros(shape=sh) + w_eddy = np.zeros(shape=sh) + phi_eddy = np.zeros(shape=sh) + + for i in range(n[0]): + if np.mod(i,50) == 0: + print(i) + for j in range(n[1]): + for k in range(n[2]): + u_eddy[i,j,k] = u_field[i,j,k] - u_profile[k] + v_eddy[i,j,k] = v_field[i,j,k] - v_profile[k] + w_eddy[i,j,k] = w_field[i,j,k] - w_profile[k] + phi_eddy[i,j,k] = phi_field[i,j,k] - phi_profile[k] + print('max u', np.amax(np.abs(u_field)), np.amax(u_profile), np.amax(np.abs(u_eddy))) + print('max v', np.amax(np.abs(v_field)), np.amax(v_profile), np.amax(np.abs(v_eddy))) + print('max w', np.amax(np.abs(w_field)), np.amax(w_profile), np.amax(np.abs(w_eddy))) + print('max phi', np.amax(np.abs(phi_field)), np.amax(phi_profile), np.amax(np.abs(phi_eddy))) + + + # (5) IO + # (a) create file for eddy fields + out_path = args.dir + nc_file_name = 'eddy_field_' + args.time + print(out_path) + create_fields_file(out_path,nc_file_name) + + # (b) dump eddy fields + # add_field(os.path.join(out_path,nc_file_name+'.nc'), var_name) + dump_variables(os.path.join(out_path,nc_file_name+'.nc'), 'u_eddy', u_eddy) + dump_variables(os.path.join(out_path,nc_file_name+'.nc'), 'v_eddy', v_eddy) + dump_variables(os.path.join(out_path,nc_file_name+'.nc'), 'w_eddy', w_eddy) + dump_variables(os.path.join(out_path,nc_file_name+'.nc'), 'phi_eddy', phi_eddy) + + return + + + + +# ____________________ + +def create_fields_file(path,file_name): + print('create field:', path) + rootgrp = nc.Dataset(path+file_name+'.nc', 'w', format='NETCDF4') + dimgrp = rootgrp.createGroup('dims') + fieldgrp = rootgrp.createGroup('fields') + fieldgrp.createDimension('n', n[0]*n[1]*n[2]) + fieldgrp.createDimension('nx', n[0]) + fieldgrp.createDimension('ny', n[1]) + fieldgrp.createDimension('nz', n[2]) + rootgrp.close() + print('create field end') + return + +def dump_variables(path, var_name, var): + print('dump variables', path, var_name, var.shape) + data = np.empty((n[0],n[1],n[2]),dtype=np.double,order='c') + # double[:] data = np.empty((Gr.dims.npl,), dtype=np.double, order='c') + add_field(path, var_name) + for i in range(0, n[0]): + for j in range(0, n[1]): + for k in range(0, n[2]): + data[i,j,k] = var[i,j,k] + write_field(path,var_name, data) + return + +def add_field(path, var_name): + print('add field: ', var_name) +# rootgrp = nc.Dataset(path, 'r+', format='NETCDF4') + rootgrp = nc.Dataset(path, 'r+') + fieldgrp = rootgrp.groups['fields'] + # fieldgrp.createVariable(var_name, 'f8', ('n')) + var = fieldgrp.createVariable(var_name, 'f8', ('nx', 'ny', 'nz')) + rootgrp.close() + return + +def write_field(path, var_name, data): + print('write field:', path, var_name, data.shape) + rootgrp = nc.Dataset(path, 'r+', format='NETCDF4') + fieldgrp = rootgrp.groups['fields'] + var = fieldgrp.variables[var_name] + # var[:] = np.array(data) + var[:, :, :] = data + rootgrp.close() + return + + +# ---------------------------------- +def read_in_netcdf_fields(variable_name, fullpath_in): + rootgrp = nc.Dataset(fullpath_in, 'r') + var = rootgrp.groups['fields'].variables[variable_name] + shape = var.shape + data = np.ndarray(shape = var.shape) + data = var[:] + rootgrp.close() + return data + + +def read_in_netcdf_profile_all(variable_name, group_name, fullpath_in): +# print(fullpath_in) + rootgrp = nc.Dataset(fullpath_in, 'r') + var = rootgrp.groups[group_name].variables[variable_name] + shape = var.shape + data = np.ndarray(shape = var.shape) + if group_name != 'profiles': + var = rootgrp.groups[group_name].variables[variable_name] + for t in range(shape[0]): + if group_name == "profiles": + data[t,:] = var[t, :] + nkr = rootgrp.groups['profiles'].variables['z'].shape[0] + if group_name == "correlations": + data[t,:] = var[t, :] + if group_name == "timeseries": + data[t] = var[t] + rootgrp.close() + return data + + +def read_in_netcdf_profile(variable_name, group_name, fullpath_in): + rootgrp = nc.Dataset(fullpath_in, 'r') + var = rootgrp.groups[group_name].variables[variable_name] + shape = var.shape + #print('read_in_profile: ', time, var.shape, nt, type(nt)) + + if group_name == "profiles": + data = np.ndarray((shape[1],)) + data[:] = var[nt, :] + if group_name == "correlations": + data = np.ndarray((shape[1],)) + data[:] = var[nt, :] + if group_name == "timeseries": + data = var[nt] + rootgrp.close() + return data + +# ---------------------------------- + + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/PostProcessing/Vis.py b/PostProcessing/Vis.py new file mode 100644 index 00000000..415cc650 --- /dev/null +++ b/PostProcessing/Vis.py @@ -0,0 +1,290 @@ +#!/bin/sh + +# Vis.py +# +# +# Created by Meyer Bettina on 01/04/16. +# + +import argparse +import os +from h5py import File +import h5py +import numpy as np +import matplotlib.cm as cm +import pylab as plt + +import glob +import json as simplejson + + +import pickle +from matplotlib.backends.backend_pdf import PdfPages + + +#from Namelist import Namelist +#nml = NamelistDCBL() +#nml = Namelist() + + + +#---------------------------------------------------------------------- +#---------------------------------------------------------------------- +def main(): + parser = argparse.ArgumentParser(prog='PyCLES') + parser.add_argument("path") + parser.add_argument("casename") + parser.add_argument("--var_name") + parser.add_argument("--time_min") + args = parser.parse_args() + path = args.path + case_name = args.casename + if args.var_name: + var_list = [args.var_name] + else: + var_list = ['w', 's', 'potential_temperature', 'temperature', 'ql', 'qt', 'u', 'v'] + var_list = ['w', 's', 'theta', 'temperature', 'ql', 'qt', 'u', 'v'] + + global fullpath_out, file_name + global t, dt, dx, dz, nx + if args.time_min: + t_min = np.int(args.time_min) + else: + t_min = 0 + + + # case_name = 'Bomex' + + # path_list = ['../bomex/161130_test/n24/2_full_old_EV12/'] + # path = '../bomex/161130_test/n24/2_QL_old_EV12/' + path_list = [path] + for path in path_list: + fullpath_out = os.path.join(path,'Visualization/') + print('fullpath_out', fullpath_out) + # scheme = 'QL, 2nd, TKE, CFL = 0.1' + + nml = simplejson.loads(open(os.path.join(path,case_name + '.in')).read()) + # namelist_files = glob.glob(path +'*.in') + # print(namelist_files) + # for namelist in namelist_files: + # nml = simplejson.loads(open(namelist).read()) + dt = nml['visualization']['frequency'] + dx = nml['grid']['dx'] + dz = nml['grid']['dz'] + print('vis dt:' + str(dt) +', dz: '+ str(dz)) + + # files = os.listdir(os.path.join(path, 'vis/*.pkl')) # type = list + files = os.listdir(os.path.join(path, 'vis')) # type = list + nx = nml['grid']['nx'] + print('vis dt:' + str(dt) +', dz: '+ str(dz)) + + # files = os.listdir(os.path.join(path, 'vis/*.pkl')) # type = list + files = os.listdir(os.path.join(path, 'Visualization')) # type = list + print('visualisation files: ', str(files)) + print('') + + + # T = np.linspace(0,2400,5) + # print('T',T) + # for t in T: + # if t < 10: + # file_name = np.str(1000000) + np.str(np.int(t)) + # elif t < 100: + # file_name = np.str(100000) + np.str(np.int(t)) + # elif t < 1000: + # file_name = np.str(10000) + np.str(np.int(t)) + # elif t < 10000: + # file_name = np.str(1000) + np.str(np.int(t)) + # else: + # file_name = np.str(100) + np.str(np.int(t)) + # print('name:', file_name) + # fullpath_in = fullpath_out + file_name + '.pkl' + # print('fullpath_in: ' + fullpath_in) + + for file_name in files: + if file_name[-4:] == '.pkl': + t = np.int(file_name[0:-4]) + fullpath_in = fullpath_out + file_name + + f = open(fullpath_in) + data = pickle.load(f) + for var_name in var_list: + print(var_name+ ', fullpath_in: ' + fullpath_in) + try: + var = data[var_name] + except: + print("No variable " + var_name) + print " " + continue + + levels = np.linspace(np.amin(var), np.amax(var), 100) + + plot_data_levels(var, var_name, t, levels) + plot_data(var, var_name, t) + ''' (A) setting levels ''' + file_name = files[0] + i = 0 + while file_name[-4:] != '.pkl': + i += 1 + file_name = files[i] + f = open(fullpath_out + file_name) + data0 = pickle.load(f) + + + ''' (B) plotting ''' + for file_name in files: + if file_name[-4:] == '.pkl': + t = np.int(file_name[0:-4]) - 1e7 + if t >= t_min: + fullpath_in = fullpath_out + file_name + print('fullpath_in: ' + fullpath_in) + + f = open(fullpath_in) + data = pickle.load(f) + for var_name in var_list: + try: + var = data[var_name] + print(var_name) + except: + print("No variable " + var_name) + continue + + if np.amin(var) != np.amax(var): + if var_name == 'w': + levels = np.linspace(-5., 5.0, 100) + else: + var0 = data0[var_name] + levels = np.linspace(np.amin(var0), np.amax(var0), 100) + plot_data_levels(var, var_name, t, levels) + # plot_data(var, var_name, t) + print " " + + + print('Ende') + + +# ---------------------------------------------------------------------- +# ---------------------------------------------------------------------- +def read_in(variable_name, group_name, fullpath_in): + f = File(fullpath_in) + + # Get access to the profiles group + profiles_group = f[group_name] + # Get access to the variable dataset + variable_dataset = profiles_group[variable_name] + # Get the current shape of the dataset + variable_dataset_shape = variable_dataset.shape + + variable = np.ndarray(shape=variable_dataset_shape) + for t in range(variable_dataset_shape[0]): + if group_name == "timeseries": + variable[t] = variable_dataset[t] + elif group_name == "profiles": + variable[t, :] = variable_dataset[t, :] + elif group_name == "correlations": + variable[t, :] = variable_dataset[t, :] + elif group_name == "fields": + variable[t] = variable_dataset[t] + + f.close() + return variable + + +# ---------------------------------------------------------------------- +def plot_data(data, var_name, t): + # print(data.shape) + plt.figure() + if var_name == 'w': + plt.contourf(data.T,cmap = cm.bwr) + else: + plt.contourf(data.T) + # plt.show() + plt.colorbar() + plt.title(var_name + ', (t=' + np.str(t) + 's)') + plt.xlabel('x (dx=' + np.str(dx) + 'm, nx='+np.str(nx)+')') + plt.ylabel('height z (dz=' + np.str(dz) + 'm)') + plt.savefig(fullpath_out + var_name + '_' + str(np.int(t + 1e7)) + '.png') + plt.savefig(os.path.join(fullpath_out, 'pdf', var_name + '_' + str(t) + '.pdf')) + plt.close() + return + + +def plot_data_levels(data, var_name, t, levels_): + # print(data.shape) + plt.figure() + if var_name == 'w': + # print('bwr') + # plt.contourf(data.T, levels=levels_, cmap=plt.cm.bwr) + plt.contourf(data.T, cmap=cm.bwr, levels=levels_) + else: + plt.contourf(data.T, levels=levels_) + # plt.contourf(data.T) + # plt.show() + plt.title(var_name + ', (t=' + np.str(t) + 's)') + plt.xlabel('x (dx=' + np.str(dx) + 'm)') + plt.ylabel('height z (dz=' + np.str(dz) + 'm)') + plt.colorbar() + plt.savefig(os.path.join(fullpath_out, 'pdf', 'levels_' + var_name + '_' + str(t) + '.pdf')) + plt.savefig(fullpath_out + 'levels_' + var_name + '_' + str(t) + '_levels.png') + plt.figure(figsize=(12,8)) + if var_name == 'w': + # print('bwr') + # plt.contourf(data.T, levels=levels_, cmap=plt.cm.bwr) + '''set out - of - bounds colors''' + cs = plt.contourf(data.T, cmap=cm.bwr, levels=levels_, extend="both") + cs.cmap.set_under('navy') + cs.cmap.set_over('darkred') #crimson + else: + cs = plt.contourf(data.T, levels=levels_, extend="both") + cs.cmap.set_under('k') + cs.cmap.set_over('0.5') + + plt.title(var_name + ', (t=' + np.str(t) + 's)') + plt.xlabel('x (dx=' + np.str(dx) + 'm, nx=' + np.str(nx) + ')') + plt.ylabel('height z (dz=' + np.str(dz) + 'm)') + plt.colorbar() + path_out = os.path.join(fullpath_out, 'pdf') + if not os.path.exists(path_out): + os.mkdir(path_out) + # plt.savefig(os.path.join(path_out, 'levels_' + var_name + '_' + str(t) + '.pdf')) + plt.savefig(fullpath_out + 'levels_' + var_name + '_' + str(np.int(t + 1e7)) + '.png') + plt.close() + return + + + +def plot_data_levels_cont(var_field,var_name_field,levels_field,var_cont,var_name_cont,levels_cont): + print('cont print') + + # print('cont print') + plt.figure() + if var_name_field == 'w': + ax1 = plt.contourf(var_field.T, cmap=cm.bwr, levels=levels_field) + else: + ax1 = plt.contourf(var_field.T, levels=levels_field) + ax2 = plt.contour(var_cont.T, levels=levels_cont,colors='k') + ax3 = plt.contour(var_cont.T, levels=[0.018,0.02], colors='b',linewidths=1) + plt.clabel(ax2,inline=1) + plt.colorbar(ax1,shrink=0.8) + plt.colorbar(ax3,shrink=0.8) + plt.title(var_name_field + ', (t=' + np.str(t) + 's)') + plt.xlabel('x (dx=' + np.str(dx) + 'm)') + plt.ylabel('height z (dz=' + np.str(dz) + 'm)') + # plt.savefig(fullpath_out + 'phi/' + var_name + '_' + file_name + '.png') + print('hoi') + path = fullpath_out + var_name_field + '_cont_' + file_name + '.png' + print('hohioi') + print('out: ', fullpath_out + var_name_field + '_cont_' + file_name + '.png') + plt.savefig(fullpath_out + var_name_field + '_cont_' + file_name + '.png') + plt.close() + + +def output(fullpath_in, fullpath_out, file_name, var_name): + print('out') + + + +# ---------------------------------------------------------------------- + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/PostProcessing/Vis_fields.py b/PostProcessing/Vis_fields.py new file mode 100644 index 00000000..b1c327f7 --- /dev/null +++ b/PostProcessing/Vis_fields.py @@ -0,0 +1,314 @@ +# (0) chose time +# (1) import Fields +# --> load field data for a advected variable phi and all velocities u,v,w +# (2) import Statistical File (nc-file) +# (mean Profiles --> horizontal domain mean) +# --> load mean-profile for advected variable phi and all velocities u,v,w +# --> chose array[var,z] at time t +# (3) phi' = phi - mean[phi], u' = ... etc. +import netCDF4 as nc +import argparse +import os +import numpy as np +import json as simplejson +import matplotlib.cm as cm +import pylab as plt + + +def main(): + global case + global nx0, ny0, nz0 + global fullpath_out + global time + # ----------- + case = 'DCBLSoares' + path = 'test_field/' + fullpath_out = os.path.join(path,'corr/') + print(fullpath_out) + T = [1800,3600,5400] + + path_to_fields = os.path.join(path,'fields/') + var_list_corr = ['wphi','uphi', 'vphi', 'uphi_div', 'vphi_div', 'wphi_div'] + var_list = ['w'] + # ----------- + + + # (0) import Namelist --> to chose right mean profile, fitting with time + nml = simplejson.loads(open(os.path.join(path,case + '.in')).read()) + dt = nml['stats_io']['frequency'] + dz = nml['grid']['dz'] + #print('dt:', dt, 'dz:', dz) + + # (1) Read in Test field + field = read_in_netcdf_fields('wphi',os.path.join(path,'correlations_1800.nc')) + #print('field: ', field.shape) +# for var_name in var_list: +# field = read_in_netcdf_fields(var_name,'test_field/eddy_fields_1800.nc') +# print('field: ', field.shape) + + # (2) read in grid dimensions + ni_ = np.zeros((3,)) + global n, ntot + n = np.zeros((3,)) + n = n.astype(int) + ni_[0] = nml['grid']['nx'] + ni_[1] = nml['grid']['ny'] + ni_[2] = nml['grid']['nz'] + for i in range(3): + n[i] = field.shape[i] + if n[i] != ni_[i]: + print('Dimensions do not fit!') + sys.exit() + nx0 = np.int(n[0]/2) + ny0 = np.int(n[1]/2) + nz0 = np.int(n[2]/2) + ntot = n[0]*n[1]*n[2] + print('x0,y0,z0', nx0, ny0, nz0) + + + # (4) Visualize Correlations + Passive Scalar Contours + for time in T: + path_to_correlations = os.path.join(path,'correlations_'+np.str(time)+'.nc') + print(path_to_correlations) + path_to_fields = os.path.join(path,'fields',np.str(time)+'.nc') + print(path_to_fields) + for field_name in var_list_corr: + field_data = read_in_netcdf_fields(field_name,path_to_correlations) + cont_name = 'phi' + cont_data = read_in_netcdf_fields(cont_name,path_to_fields) + for ny0 in np.linspace(1,n[2],10): + file_name = field_name + '_phi-cont_' + np.str(time) + '_y' + np.str(np.int(ny0)) + plot_corrfield_phicont(field_name, field_data[:,np.int(ny0),0:60],cont_name, + cont_data[:,np.int(ny0),0:60], file_name) + + for nz0 in [10,15,20]: + file_name = field_name + '_phi-cont_' + np.str(time) + '_z' + np.str(np.int(nz0)) + plot_corrfield_phicont(field_name, field_data[:,:,np.int(nz0)],cont_name, + cont_data[:,:,np.int(nz0)], file_name) + + # (5) Visualize Fields + Passive Scalar Contours + for field_name in var_list: + field_data = read_in_netcdf_fields(field_name,path_to_fields) + cont_name = 'phi' + cont_data = read_in_netcdf_fields(cont_name,path_to_fields) + for ny0 in np.linspace(1,n[2],10): + file_name = field_name + '_phi-cont_' + np.str(time) + '_y' + np.str(np.int(ny0)) + plot_corrfield_phicont(field_name, field_data[:,np.int(ny0),0:60],cont_name, + cont_data[:,np.int(ny0),0:60], file_name) + + for nz0 in [10,15]: + file_name = field_name + '_phi-cont_' + np.str(time) + '_z' + np.str(np.int(nz0)) + plot_corrfield_phicont(field_name, field_data[:,:,np.int(nz0)],cont_name, + cont_data[:,:,np.int(nz0)], file_name) + + # (6) Visualize Fields + Passive Scalar Contours + w Contours + for field_name in var_list: + field_data = read_in_netcdf_fields(field_name,path_to_fields) + cont_name1 = 'phi' + cont_data1 = read_in_netcdf_fields(cont_name1,path_to_fields) + cont_name2 = 'w' + cont_data2 = read_in_netcdf_fields(cont_name2,path_to_fields) + for ny0 in np.linspace(1,n[1]-1,10): + file_name = field_name + '_w-cont_phi-cont_' + np.str(time) + '_y' + np.str(np.int(ny0)) + plot_corrfield_wcont_phicont_vertical(field_name,field_data[:,np.int(ny0),0:60],cont_name1,cont_data1[:,np.int(ny0),0:60],cont_name2,cont_data2[:,np.int(ny0),0:60], file_name) + + for nz0 in [10,15,20]: + file_name = field_name + '_w-cont_phi-cont_' + np.str(time) + '_z' + np.str(np.int(nz0)) + plot_corrfield_wcont_phicont_vertical(field_name,field_data[:,:,np.int(nz0)],cont_name1, + cont_data1[:,:,np.int(nz0)],cont_name2,cont_data2[:,:,np.int(nz0)], file_name) + + + + + +# for corr_name in var_list_corr: +# field = read_in_netcdf_fields(corr_name,path_to_correlations) +# print(corr_name, ': max = ', np.amax(np.abs(field))) +# file_name = corr_name + '_' + np.str(time) +# plot_data_vertical(field[:,ny0,:], corr_name, file_name) +# +## for var_name in var_list: +## field = read_in_netcdf_fields(var_name,path_to_fields) +## #field = read_in_netcdf_fields(var_name,'test_field/fields/1800.nc') +## print(var_name, ': max = ', np.amax(np.abs(field))) +## file_name = var_name + '_' + np.str(time) +## if var_name == 'phi': +## levels = np.linspace(0,1.1,11) +## plot_data_vertical_levels(field[:,ny0,:], var_name, file_name, levels) +## else: +## plot_data_vertical(field[:,ny0,:], var_name, file_name) + + + + + return + + + + +# ---------------------------------- +def plot_corrfield_phicont(field_name, field_data,cont_name,cont_data, file_name): + print('plot corr/cont: ', field_name, field_data.shape) + plt.figure(figsize=(15,10)) + ax1 = plt.contourf(field_data.T) + cont = np.linspace(1.0,1.1,11) + ax2 = plt.contour(cont_data.T, levels = cont) + plt.colorbar(ax2) + plt.colorbar(ax1) + max_field = np.amax(field_data) + max_data = np.amax(cont_data) + plt.title(field_name+', max:'+"{0:.2f}".format(max_field)+', (contours: '+cont_name+', max: '+"{0:.2f}".format(max_data)+')', fontsize=12) + plt.xlabel('x') + plt.ylabel('z') + plt.savefig(fullpath_out + file_name + '.png') + plt.close() + + + +def plot_corrfield_wcont_phicont_vertical(field_name, field_data,cont_name1,cont_data1,cont_name2,cont_data2,file_name): + print('plot corr/cont: ', field_name, field_data.shape) + plt.figure(figsize=(19,10)) + if field_name == 'w': + print('field name is w', file_name) + levels=np.linspace(-6,6,250) + ax1 = plt.contourf(field_data.T, cmap=cm.bwr, levels=levels) + else: + ax1 = plt.contourf(field_data.T) + cont1 = np.linspace(0.93,1.01,9) + ax2a = plt.contour(cont_data1.T, levels=cont1) + cont2 = [-3.0,-2.0,-1.0,1.0,2.0,3.0] + ax2b = plt.contour(cont_data2.T, levels=cont2, colors='k', linewidths=0.6) + plt.colorbar(ax2a,shrink=0.75) + plt.colorbar(ax2b,shrink=0.75) + plt.colorbar(ax1) + max_field = np.amax(field_data) + max_data1 = np.amax(cont_data1) + max_data2 = np.amax(cont_data2) + plt.title(field_name+', max:'+"{0:.2f}".format(max_field)+', (contours: '+cont_name1+', max: '+"{0:.2f}".format(max_data1)+', '+cont_name2+', max: '+"{0:.2f}".format(max_data2)+')', fontsize=12) + plt.xlabel('x') + plt.ylabel('z') + plt.savefig(fullpath_out + file_name + '.png') + plt.close() + + + + +# ---------------------------------- +def plot_data_vertical(data, var_name, file_name): + print('plot vertical: ', var_name, data.shape) + plt.figure() + ax1 = plt.contourf(data.T) + if var_name == 'phi': + cont = np.linspace(1.0,1.1,11) + ax2 = plt.contour(data.T, levels = cont) + plt.colorbar(ax2) + # plt.show() + plt.colorbar(ax1) + max = np.amax(data) + plt.title(var_name + ', max:' + "{0:.2f}".format(np.amax(data)), fontsize=12) + plt.xlabel('x') + plt.ylabel('z') + plt.savefig(fullpath_out + file_name + '.png') + plt.close() + + +def plot_data_vertical_levels(data, var_name, level): + print(data.shape) + plt.figure() + plt.contourf(data.T, levels = level) + if var_name == 'phi': + cont = np.linspace(1.0,1.1,11) + ax2 = plt.contour(data.T, levels = cont) + plt.colorbar(ax2) + plt.colorbar(ax1) + plt.title(var_name + ', max:' + "{0:.2f}".format(np.amax(data)), fontsize=12) + plt.xlabel('x') + plt.ylabel('z') + plt.savefig(fullpath_out + file_name + '.png') + plt.close() + + +def plot_data_horizontal(data, var_name): + print(data.shape) + plt.figure() + plt.contourf(data.T) + # plt.show() + plt.colorbar() + max = np.amax(data) + plt.title(var_name + ', max:' + "{0:.2f}".format(np.amax(data))) + plt.xlabel('x') + plt.ylabel('y') + plt.savefig(fullpath_out + file_name + '.png') + plt.close() + + +def plot_data_horizontal_levels(data, var_name, level): + print(data.shape) + plt.figure() + plt.contourf(data.T, levels = level) + # plt.show() + plt.colorbar() + max = np.amax(data) + plt.title(var_name + ', max:' + "{0:.2f}".format(np.amax(data))) + plt.xlabel('x') + plt.ylabel('y') + plt.savefig(fullpath_out + file_name + '.png') + plt.close() + + +# ---------------------------------- +def read_in_netcdf_fields(variable_name, fullpath_in): + #print('.....', fullpath_in, variable_name) + rootgrp = nc.Dataset(fullpath_in, 'r') + var = rootgrp.groups['fields'].variables[variable_name] + shape = var.shape + data = np.ndarray(shape = var.shape) + data = var[:,:,:] + rootgrp.close() + return data + + +def read_in_netcdf_profile_all(variable_name, group_name, fullpath_in): + # print(fullpath_in) + rootgrp = nc.Dataset(fullpath_in, 'r') + var = rootgrp.groups[group_name].variables[variable_name] + shape = var.shape + data = np.ndarray(shape = var.shape) + if group_name != 'profiles': + var = rootgrp.groups[group_name].variables[variable_name] + for t in range(shape[0]): + if group_name == "profiles": + data[t,:] = var[t, :] + nkr = rootgrp.groups['profiles'].variables['z'].shape[0] + if group_name == "correlations": + data[t,:] = var[t, :] + if group_name == "timeseries": + data[t] = var[t] + rootgrp.close() + return data + + +def read_in_netcdf_profile(variable_name, group_name, fullpath_in): + rootgrp = nc.Dataset(fullpath_in, 'r') + var = rootgrp.groups[group_name].variables[variable_name] + shape = var.shape + #print('read_in_profile: ', time, var.shape, nt, type(nt)) + + if group_name == "profiles": + data = np.ndarray((shape[1],)) + data[:] = var[nt, :] + if group_name == "correlations": + data = np.ndarray((shape[1],)) + data[:] = var[nt, :] + if group_name == "timeseries": + data = var[nt] + rootgrp.close() + return data + + +# ---------------------------------- + + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/PostProcessing/indices.py b/PostProcessing/indices.py new file mode 100644 index 00000000..cbc72d5c --- /dev/null +++ b/PostProcessing/indices.py @@ -0,0 +1,107 @@ +# from 1D index to 3D indices + +import numpy as np +import json as simplejson +#---------------------------------------------------------------------- + +def main(): + ijk_ = 40852 + ijk_ = 40853 + ijk_ = 240937 + ijk_ = 13841 + + case_name = 'Bomex' + path = './../Output.' + case_name + '.e0f33/' + print(path) + + var = 's' + + read_in_nml(path,case_name) + find_indices(var,ijk_) + return + +#---------------------------------------------------------------------- +def read_in_nml(path,case_name): + + global n, nl, nlg, npg, nprocx, nprocy, gw # global variable has to be declared as global in same module where it is defined + n = np.zeros(3, dtype=np.int) # (e.g. n[0] = 'nx') --> global number of pts per direction + nl = np.zeros(3, dtype=np.int) # --> local number of pts (per processor) + nlg = np.zeros(3, dtype=np.int) # --> local number of pts incl ghost pts + try: + # print(path + case_name + '.in') + nml = simplejson.loads(open(path + case_name + '.in').read()) + print('found nml file') + n[0] = nml['grid']['nx'] + n[1] = nml['grid']['ny'] + n[2] = nml['grid']['nz'] + gw = nml['grid']['gw'] + nprocx = nml['mpi']['nprocx'] + nprocy = nml['mpi']['nprocy'] + except IOError: + print('no such file') + dx = 25 + dy = 25 + dz = 25 + n[0] = 240 + n[1] = 240 + n[2] = 140 + gw = 4 + nprocx = 12 + nprocy = 4 + + nl[0] = n[0]/nprocx + nl[1] = n[1]/nprocy + nl[2] = n[2] + nlg[0] = n[0]/nprocx + 2*gw + nlg[1] = n[1]/nprocy + 2*gw + nlg[2] = n[2] + 2*gw + npg = nlg[0] * nlg[1] * nlg[2] + + return +#---------------------------------------------------------------------- + +def find_indices(var,ijk_): + print('loop through indices') + # double [:] blh = np.zeros(Gr.dims.nlg[0]*Gr.dims.nlg[1], dtype=np.double, order='c') + + imax = nlg[0] + jmax = nlg[1] + kmax = nlg[2] + ijkmax = imax * nlg[1] * nlg[2] + jmax * nlg[2] + kmax + print('grid: ', imax, jmax, kmax, ijkmax) + + var_shift = get_varshift(var) + for i in xrange(imax): + ishift = i * nlg[1] * nlg[2] + for j in xrange(jmax): + jshift = j * nlg[2] + for k in xrange(kmax): + ijk = ishift + jshift + k + # print(i,j,k) + if var_shift + ijk == ijk_: + print('juhui: ', i, j, k) + else: + pass + # print('ohoh') + if ijk == ijkmax and ijk != ijk_: + print('no values found') + return + +#---------------------------------------------------------------------- +def get_varshift(var): + # cdef inline Py_ssize_t get_varshift(self, Grid.Grid Gr, str variable_name): + # return self.name_index[variable_name] * Gr.dims.npg + if var == 'w': + varshift = 2 * npg + if var == 's': + varshift = 3 * npg + if var == 'buoyancy': + varshift = 0 * npg + + return varshift +#---------------------------------------------------------------------- + +if __name__ == '__main__': + main() + + diff --git a/PostProcessing/plot_spectra.py b/PostProcessing/plot_spectra.py new file mode 100644 index 00000000..36b77331 --- /dev/null +++ b/PostProcessing/plot_spectra.py @@ -0,0 +1,340 @@ +import netCDF4 as nc +import numpy as np +import pylab as plt + + +my_colors=['blue','red','green','magenta','cyan','yellow','brown','Orange','DarkViolet','SkyBlue','Chartreuse', + 'DarkKhaki','DarkSeaGreen','DeepPink','IndianRed','Lavender', 'MediumOrchid'] + +file_plus_path = '/Volumes/data5/Kyle/spectra/CondStats.DYCOMS_RF01_order_25.nc' + + +dx = 35.0 +dz = 5.0 +nx = 96 +dk = 2.0*np.pi/(dx*nx) + +data = nc.Dataset(file_plus_path, 'r' ) + +spectra = data.groups['spectra'] + +z = spectra.variables['z'][:] + +kappa = spectra.variables['wavenumber'][:]/dk + +E_TKE = spectra.variables['energy_spectrum'][23,:,:] + +E_QT = spectra.variables['qt_spectrum'][23,:,:] + +E_S = spectra.variables['s_spectrum'][23,:,:] +E_SQT = spectra.variables['s_qt_cospectrum'][23,:,:] + + +k53 = kappa**(-5.0/3.0) + +plt.figure(1) +plt.title('Energy spectra') +count = 0 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_TKE[k,:]/(dk*np.sum(E_TKE[k,:])), basey=10,label = '5m5s, ILES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E\left(\kappa\right)$',fontsize=20) +plt.ylim(1e-8,1e3) + +plt.figure(2) +plt.title('Entropy variance spectra') +count = 0 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_S[k,:]/(dk*np.sum(E_S[k,:])), basey=10,label = '5m5s, ILES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E_s\left(\kappa\right)$',fontsize=20) +plt.ylim(1e-8,1e3) + +plt.figure(3) +plt.title('Total water variance spectra') +count = 0 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_QT[k,:]/(dk*np.sum(E_QT[k,:])), basey=10,label = '5m5s, ILES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E_{q_t}\left(\kappa\right)$',fontsize=20) + +plt.ylim(1e-8,1e3) + + + + +plt.figure(4) +plt.title('Total water--entropy covariance spectra') +count = 0 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_SQT[k,:]/(dk*np.sum(E_SQT[k,:])), basey=10,label = '5m5s, ILES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E_{s,q_t}\left(\kappa\right)$',fontsize=20) + +plt.ylim(1e-8,1e3) + + + + + + +file_plus_path = '/Volumes/data5/Kyle/spectra/CondStats.DYCOMS_RF01_order_27.nc' + + +dx = 35.0 +dz = 5.0 +nx = 96 +dk = 2.0*np.pi/(dx*nx) + +data = nc.Dataset(file_plus_path, 'r' ) + +spectra = data.groups['spectra'] + +z = spectra.variables['z'][:] + +kappa = spectra.variables['wavenumber'][:]/dk + +E_TKE = spectra.variables['energy_spectrum'][23,:,:] + +E_QT = spectra.variables['qt_spectrum'][23,:,:] + +E_S = spectra.variables['s_spectrum'][23,:,:] +E_SQT = spectra.variables['s_qt_cospectrum'][23,:,:] + + +k53 = kappa**(-5.0/3.0) + +plt.figure(1) +plt.title('Energy spectra') +count = 1 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_TKE[k,:]/(dk*np.sum(E_TKE[k,:])), basey=10,label = '7m7s, ILES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E\left(\kappa\right)$',fontsize=20) +plt.ylim(1e-8,1e3) + +plt.figure(2) +plt.title('Entropy variance spectra') +count = 1 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_S[k,:]/(dk*np.sum(E_S[k,:])), basey=10,label = '7m7s, ILES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E_s\left(\kappa\right)$',fontsize=20) +plt.ylim(1e-8,1e3) + +plt.figure(3) +plt.title('Total water variance spectra') +count = 1 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_QT[k,:]/(dk*np.sum(E_QT[k,:])), basey=10,label = '7m7s, ILES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E_{q_t}\left(\kappa\right)$',fontsize=20) + +plt.ylim(1e-8,1e3) + + + + +plt.figure(4) +plt.title('Total water--entropy covariance spectra') +count = 1 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_SQT[k,:]/(dk*np.sum(E_SQT[k,:])), basey=10,label = '7m7s, ILES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E_{s,q_t}\left(\kappa\right)$',fontsize=20) + +plt.ylim(1e-8,1e3) + + + + + +file_plus_path = '/Volumes/data5/Kyle/spectra/CondStats.DYCOMS_RF01_order_29.nc' + + +dx = 35.0 +dz = 5.0 +nx = 96 +dk = 2.0*np.pi/(dx*nx) + + +data = nc.Dataset(file_plus_path, 'r' ) + +spectra = data.groups['spectra'] + +z = spectra.variables['z'][:] + +kappa = spectra.variables['wavenumber'][:]/dk + +E_TKE = spectra.variables['energy_spectrum'][23,:,:] + +E_QT = spectra.variables['qt_spectrum'][23,:,:] + +E_S = spectra.variables['s_spectrum'][23,:,:] +E_SQT = spectra.variables['s_qt_cospectrum'][23,:,:] + + +k53 = kappa**(-5.0/3.0) + +plt.figure(1) +plt.title('Energy spectra') +count = 2 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_TKE[k,:]/(dk*np.sum(E_TKE[k,:])), basey=10,label ='9m9s, ILES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E\left(\kappa\right)$',fontsize=20) +plt.ylim(1e-8,1e3) + +plt.figure(2) +plt.title('Entropy variance spectra') +count = 2 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_S[k,:]/(dk*np.sum(E_S[k,:])), basey=10,label = '9m9s, ILES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E_s\left(\kappa\right)$',fontsize=20) +plt.ylim(1e-8,1e3) + +plt.figure(3) +plt.title('Total water variance spectra') +count = 2 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_QT[k,:]/(dk*np.sum(E_QT[k,:])), basey=10,label = '9m9s, ILES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E_{q_t}\left(\kappa\right)$',fontsize=20) + +plt.ylim(1e-8,1e3) + + + + +plt.figure(4) +plt.title('Total water--entropy covariance spectra') +count = 2 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_SQT[k,:]/(dk*np.sum(E_SQT[k,:])), basey=10,label = '9m9s, ILES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E_{s,q_t}\left(\kappa\right)$',fontsize=20) + +plt.ylim(1e-8,1e3) + + +file_plus_path = '/Users/ckaul/Desktop/LES_results/DYCOMS_RF01/IC_res/CondStats.DYCOMS_RF01_order_9_IC.nc' + + +dx = 35.0 +dz = 5.0 +nx = 96 +dk = 2.0*np.pi/(dx*nx) + +data = nc.Dataset(file_plus_path, 'r' ) + +spectra = data.groups['spectra'] + +z = spectra.variables['z'][:] + +kappa = spectra.variables['wavenumber'][:]/dk + +E_TKE = spectra.variables['energy_spectrum'][23,:,:] + +E_QT = spectra.variables['qt_spectrum'][23,:,:] + +E_S = spectra.variables['s_spectrum'][23,:,:] +E_SQT = spectra.variables['s_qt_cospectrum'][23,:,:] + + +k53 = kappa**(-5.0/3.0) + +plt.figure(1) +plt.title('Energy spectra') +count = 3 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_TKE[k,:]/(dk*np.sum(E_TKE[k,:])), basey=10,label ='9m9s, ELES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E\left(\kappa\right)$',fontsize=20) +plt.ylim(1e-8,1e3) + +plt.figure(2) +plt.title('Entropy variance spectra') +count = 3 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_S[k,:]/(dk*np.sum(E_S[k,:])), basey=10,label = '9m9s, ELES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E_s\left(\kappa\right)$',fontsize=20) +plt.ylim(1e-8,1e3) + +plt.figure(3) +plt.title('Total water variance spectra') +count = 3 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_QT[k,:]/(dk*np.sum(E_QT[k,:])), basey=10,label = '9m9s, ELES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E_{q_t}\left(\kappa\right)$',fontsize=20) + +plt.ylim(1e-8,1e3) + + + + +plt.figure(4) +plt.title('Total water--entropy covariance spectra') +count = 3 +for k in np.arange(80,90,20): + plt.semilogy(kappa, E_SQT[k,:]/(dk*np.sum(E_SQT[k,:])), basey=10,label = '9m9s, ELES', color = my_colors[count] ) + count +=1 +plt.semilogy(kappa, k53*1000.0,linewidth=2, basey=10, color ='black', label='__nolabel__') +plt.legend(loc=0) +plt.xlabel(r'$\kappa\left(\frac{L}{2\pi} \right)$',fontsize=20) +plt.ylabel(r'$E_{s,q_t}\left(\kappa\right)$',fontsize=20) + +plt.ylim(1e-8,1e3) + + + + +plt.show() + diff --git a/PostProcessing/plotting_2.py b/PostProcessing/plotting_2.py new file mode 100644 index 00000000..f42be575 --- /dev/null +++ b/PostProcessing/plotting_2.py @@ -0,0 +1,167 @@ +import netCDF4 as nc +import numpy as np +import pylab as plt +import glob +import os +import json as simplejson +import argparse + + + +''' +Use glob to find all directories whose names match a certain format, with wildcards allowed. +Namelist is found and read in to provide information about the file. +''' + + + +my_colors=['blue','red','green','magenta','cyan','yellow','brown','Orange','DarkViolet','SkyBlue','Chartreuse', 'DarkKhaki','DarkSeaGreen','DeepPink','IndianRed','Lavender', 'MediumOrchid'] + +def main(): + start_hour=1.5 + stop_hour=2 + interval=2 + + profile_vars = ['u_translational_mean', 'v_translational_mean', 's_mean', 'qt_mean','qv_mean','temperature_mean', + 'thetali_mean','cloud_fraction', 'ql_mean', + 's_sgs_variance','qt_sgs_variance','qt_sgs_variance_clip', 'sgs_covariance', 'sgs_correlation']#, 'qr_mean', 'qt_sedimentation_flux', 'qr_sedimentation_flux', ] + + + variances = ['horizontal_velocity_variance','vertical_velocity_variance','resolved_tke', 'resolved_skewness','resolved_theta_variance'] + timeseries_vars = ['cloud_base', 'cloud_top', 'cloud_fraction', 'lwp'] + + + dir = '/Users/ckaul/Desktop/LES_results/DYCOMS_RF02/' + namelist_files = glob.glob(dir +'*.in') + print(namelist_files) + + count = -1 + #--------MEANS + for namelist in namelist_files: + simname = namelist[len(dir):-3] + print(simname) + + # print(namelist) + nml = simplejson.loads(open(namelist).read()) + flag, name = case_specific_parse(nml) + #overwrite hue + + if flag == 1: + print(name) + count += 1 + ncfile = dir + 'Stats.' + simname + '.nc' + print(ncfile) + data = nc.Dataset(ncfile,'r') + nkr = data.groups['profiles'].variables['z'].shape[0] + + perhour =int(3600.0/nml['stats_io']['frequency']) + + my_i = np.arange(int(start_hour*perhour), int(stop_hour*perhour), interval) + + line_color = my_colors[count] + + n_i = np.shape(my_i)[0] + # plot profile vars + for var in profile_vars: + print(var) + + title = 'profile_'+ var + plt.figure(title) + reg1 = np.zeros(nkr) + for t in my_i: + for k in np.arange(nkr): + reg1[k] += data.groups['profiles'].variables[var][t,k]/float(n_i) + plt.plot(reg1, data.groups['profiles'].variables['z'][:], linewidth = 2,label = name, color=line_color, marker='o') + + # plot profiles of variances/tke, additional computation required here + reg1 = np.zeros(nkr) + reg1w = np.zeros(nkr) + regth = np.zeros(nkr) + regsk = np.zeros(nkr) + try: + for t in my_i: + for k in np.arange(nkr): + reg1[k] += data.groups['profiles'].variables['u_mean2'][t,k]/float(n_i)-data.groups['profiles'].variables['u_mean'][t,k]**2/float(n_i) + reg1[k] += data.groups['profiles'].variables['v_mean2'][t,k]/float(n_i)-data.groups['profiles'].variables['v_mean'][t,k]**2/float(n_i) + reg1w[k] += data.groups['profiles'].variables['w_mean2'][t,k]/float(n_i) + regsk[k]+= (data.groups['profiles'].variables['w_mean3'][t,k]) /float(n_i) + # regsk[k]+= (data.groups['profiles'].variables['w_mean3'][t,k]/(data.groups['profiles'].variables['w_mean2'][t,k]+1e-10)**1.5) /float(n_i) + regth[k] += data.groups['profiles'].variables['theta_mean2'][t,k]/float(n_i)-data.groups['profiles'].variables['theta_mean'][t,k]**2/float(n_i) + + plt.figure('horizontal_velocity_variance') + plt.plot(reg1, data.groups['profiles'].variables['z'][:], linewidth = 2,label = name, color=line_color) + + plt.figure('vertical_velocity_variance') + plt.plot(reg1w, data.groups['profiles'].variables['z'][:], linewidth = 2,label =name, color=line_color) + + + plt.figure('resolved_tke') + plt.plot((reg1[:]+reg1w[:])*0.5, data.groups['profiles'].variables['z'][:], linewidth = 2,label = name, color=line_color) + + + plt.figure('resolved_skewness') + plt.plot(regsk, data.groups['profiles'].variables['z'][:], linewidth = 2,label = name, color=line_color) + + + plt.figure('resolved_theta_variance') + plt.plot(regth, data.groups['profiles'].variables['z'][:], linewidth = 2,label = name, color=line_color) + except: + pass + + # plot timeseries + for var in timeseries_vars: + print(var) + plt.figure(var) + plt.title(var) + plt.plot(data.groups['timeseries'].variables['t'][:]/3600.0,data.groups['timeseries'].variables[var][:],linewidth = 2,label = name, color=line_color) + + + data.close() + + for var in profile_vars: + plt.figure('profile_'+var) + plt.legend(loc=0) + + + for var in variances: + plt.figure(var) + plt.legend(loc=0) + + for var in timeseries_vars: + plt.figure(var) + plt.legend(loc=0) + + + + + plt.show() + + + + +def case_specific_parse(nml): + ''' + Use the namelist dictionary to set up specific plotting procedures + :param nml: JSON namelist file converted to dictionary + :return: + flag: 1=use this data file, 0=skip + label: string to be used for plot labeling + hue: color to be used for plot line + ''' + flag=1 + label = nml['meta']['simname'] + # try: + # sgs_flag = nml['sgs']['sgs_condensation'] + # except: + # sgs_flag = False + # if sgs_flag : + # flag = 0 + # if nml['sgs']['condensation']['quadrature_order'] == 20: #nml['sgs']['condensation']['c_variance']< 0.15 and nml['sgs']['condensation']['c_variance']> 0.05: + # flag = 1 + + return flag, label + +if __name__=='__main__': + + + main() diff --git a/PrognosticVariables.pyx b/PrognosticVariables.pyx index 70664777..194ba090 100644 --- a/PrognosticVariables.pyx +++ b/PrognosticVariables.pyx @@ -77,7 +77,6 @@ cdef class PrognosticVariables: cpdef initialize(self,Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): self.values = np.zeros((self.nv*Gr.dims.npg),dtype=np.double,order='c') self.tendencies = np.zeros((self.nv*Gr.dims.npg),dtype=np.double,order='c') - #Add prognostic variables to Statistics IO Pa.root_print('Setting up statistical output files for Prognostic Variables') for var_name in self.name_index.keys(): @@ -149,10 +148,8 @@ cdef class PrognosticVariables: cpdef debug(self, Grid.Grid Gr, ReferenceState.ReferenceState RS ,NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): ''' - This function is for debugging purpuses. It prints the maximum and minimum of each variable and their tendencies stored in the PrognosticVariables class. - :param Gr: :param RS: :param NS: @@ -354,4 +351,4 @@ cdef class PrognosticVariables: self.values[ijk] = values[count] count += 1 - return + return \ No newline at end of file diff --git a/RRTMG/rrtmg_build/obj_rrtmg/parkind.mod b/RRTMG/rrtmg_build/obj_rrtmg/parkind.mod new file mode 100644 index 00000000..5b8bc5ae --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/parkind.mod @@ -0,0 +1,50 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/parkind.f90 +MD5:44cc497f860d30a0e300109e4ce41762 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () () +() () ()) + +() + +() + +() + +() + +() + +(2 'kind' '(intrinsic)' '' 1 ((PROCEDURE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0 FUNCTION) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 2 () +() () 0 0) +3 'kind_ib' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +4 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +5 'kind_in' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +6 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +7 'kind_rm' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +8 'kind_rn' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +9 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +10 'selected_int_kind' '(intrinsic)' '' 1 ((PROCEDURE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 FUNCTION) (UNKNOWN 0 0 0 0 UNKNOWN ()) +0 0 () () 10 () () () 0 0) +11 'selected_real_kind' '(intrinsic)' '' 1 ((PROCEDURE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 FUNCTION) (UNKNOWN 0 0 0 0 UNKNOWN ()) +0 0 () () 11 () () () 0 0) +) + +('kind' 0 2 'kind_ib' 0 3 'kind_im' 0 4 'kind_in' 0 5 'kind_rb' 0 6 +'kind_rm' 0 7 'kind_rn' 0 8 'parkind' 0 9 'selected_int_kind' 0 10 +'selected_real_kind' 0 11) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/parrrsw.mod b/RRTMG/rrtmg_build/obj_rrtmg/parrrsw.mod new file mode 100644 index 00000000..7cc80e2d --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/parrrsw.mod @@ -0,0 +1,172 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/parrrsw.f90 +MD5:e0e526d47627d9cc836e1b686d6023d3 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +3 'jmcmu' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '32') () 0 () () () 0 0) +4 'jmphi' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') () 0 () () () 0 0) +5 'jmumu' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '32') () 0 () () () 0 0) +6 'jmxang' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +7 'jmxstr' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +8 'jpb1' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +9 'jpb2' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29') () 0 () () () 0 0) +10 'jpband' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29') () 0 () () () 0 0) +11 'mg' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +12 'mxlay' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '203') () 0 () () () 0 0) +13 'mxmol' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '38') () 0 () () () 0 0) +14 'naerec' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +15 'nbndsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14') () 0 () () () 0 0) +16 'ng16' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +17 'ng17' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12') () 0 () () () 0 0) +18 'ng18' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +19 'ng19' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +20 'ng20' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') () 0 () () () 0 0) +21 'ng21' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') () 0 () () () 0 0) +22 'ng22' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +23 'ng23' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') () 0 () () () 0 0) +24 'ng24' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +25 'ng25' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +26 'ng26' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +27 'ng27' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +28 'ng28' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +29 'ng29' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12') () 0 () () () 0 0) +30 'ngptsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '112') () 0 () () () 0 0) +31 'ngs16' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +32 'ngs17' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '18') () 0 () () () 0 0) +33 'ngs18' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '26') () 0 () () () 0 0) +34 'ngs19' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '34') () 0 () () () 0 0) +35 'ngs20' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '44') () 0 () () () 0 0) +36 'ngs21' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '54') () 0 () () () 0 0) +37 'ngs22' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '56') () 0 () () () 0 0) +38 'ngs23' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '66') () 0 () () () 0 0) +39 'ngs24' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '74') () 0 () () () 0 0) +40 'ngs25' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '80') () 0 () () () 0 0) +41 'ngs26' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '86') () 0 () () () 0 0) +42 'ngs27' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '94') () 0 () () () 0 0) +43 'ngs28' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '100') () 0 () () () 0 0) +44 'ngs29' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '112') () 0 () () () 0 0) +45 'nmol' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '7') () 0 () () () 0 0) +46 'nstr' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +47 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +48 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +49 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +50 'rrsw_scon' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.5583851eb851ec@3') () 0 () () () 0 0) +) + +('im' 0 2 'jmcmu' 0 3 'jmphi' 0 4 'jmumu' 0 5 'jmxang' 0 6 'jmxstr' 0 7 +'jpb1' 0 8 'jpb2' 0 9 'jpband' 0 10 'mg' 0 11 'mxlay' 0 12 'mxmol' 0 13 +'naerec' 0 14 'nbndsw' 0 15 'ng16' 0 16 'ng17' 0 17 'ng18' 0 18 'ng19' 0 +19 'ng20' 0 20 'ng21' 0 21 'ng22' 0 22 'ng23' 0 23 'ng24' 0 24 'ng25' 0 +25 'ng26' 0 26 'ng27' 0 27 'ng28' 0 28 'ng29' 0 29 'ngptsw' 0 30 'ngs16' +0 31 'ngs17' 0 32 'ngs18' 0 33 'ngs19' 0 34 'ngs20' 0 35 'ngs21' 0 36 +'ngs22' 0 37 'ngs23' 0 38 'ngs24' 0 39 'ngs25' 0 40 'ngs26' 0 41 'ngs27' +0 42 'ngs28' 0 43 'ngs29' 0 44 'nmol' 0 45 'nstr' 0 46 'parkind' 0 47 +'parrrsw' 0 48 'rb' 0 49 'rrsw_scon' 0 50) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/parrrtm.mod b/RRTMG/rrtmg_build/obj_rrtmg/parrrtm.mod new file mode 100644 index 00000000..8496b45e --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/parrrtm.mod @@ -0,0 +1,150 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/parrrtm.f90 +MD5:f0f94fd1fcea48f628e9f2208bf995fb -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +3 'maxinpx' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '38') () 0 () () () 0 0) +4 'maxxsec' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +5 'mg' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +6 'mxlay' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '203') () 0 () () () 0 0) +7 'mxmol' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '38') () 0 () () () 0 0) +8 'nbndlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +9 'ng1' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') () 0 () () () 0 0) +10 'ng10' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +11 'ng11' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +12 'ng12' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +13 'ng13' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +14 'ng14' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +15 'ng15' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +16 'ng16' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +17 'ng2' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12') () 0 () () () 0 0) +18 'ng3' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +19 'ng4' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14') () 0 () () () 0 0) +20 'ng5' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +21 'ng6' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +22 'ng7' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12') () 0 () () () 0 0) +23 'ng8' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +24 'ng9' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12') () 0 () () () 0 0) +25 'ngptlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '140') () 0 () () () 0 0) +26 'ngs1' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') () 0 () () () 0 0) +27 'ngs10' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '114') () 0 () () () 0 0) +28 'ngs11' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '122') () 0 () () () 0 0) +29 'ngs12' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '130') () 0 () () () 0 0) +30 'ngs13' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '134') () 0 () () () 0 0) +31 'ngs14' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '136') () 0 () () () 0 0) +32 'ngs15' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '138') () 0 () () () 0 0) +33 'ngs2' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '22') () 0 () () () 0 0) +34 'ngs3' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '38') () 0 () () () 0 0) +35 'ngs4' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '52') () 0 () () () 0 0) +36 'ngs5' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '68') () 0 () () () 0 0) +37 'ngs6' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '76') () 0 () () () 0 0) +38 'ngs7' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '88') () 0 () () () 0 0) +39 'ngs8' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '96') () 0 () () () 0 0) +40 'ngs9' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '108') () 0 () () () 0 0) +41 'nmol' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '7') () 0 () () () 0 0) +42 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +43 'parrrtm' 'parrrtm' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +) + +('im' 0 2 'maxinpx' 0 3 'maxxsec' 0 4 'mg' 0 5 'mxlay' 0 6 'mxmol' 0 7 +'nbndlw' 0 8 'ng1' 0 9 'ng10' 0 10 'ng11' 0 11 'ng12' 0 12 'ng13' 0 13 +'ng14' 0 14 'ng15' 0 15 'ng16' 0 16 'ng2' 0 17 'ng3' 0 18 'ng4' 0 19 'ng5' +0 20 'ng6' 0 21 'ng7' 0 22 'ng8' 0 23 'ng9' 0 24 'ngptlw' 0 25 'ngs1' 0 +26 'ngs10' 0 27 'ngs11' 0 28 'ngs12' 0 29 'ngs13' 0 30 'ngs14' 0 31 +'ngs15' 0 32 'ngs2' 0 33 'ngs3' 0 34 'ngs4' 0 35 'ngs5' 0 36 'ngs6' 0 37 +'ngs7' 0 38 'ngs8' 0 39 'ngs9' 0 40 'nmol' 0 41 'parkind' 0 42 'parrrtm' +0 43) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_cld.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_cld.mod new file mode 100644 index 00000000..ae7e02e7 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_cld.mod @@ -0,0 +1,58 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_cld.f90 +MD5:8e94152a0815ae8cc35491bd289c3fd3 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'abscld1' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'absice0' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +4 'absice1' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +5 'absice2' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '43') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +6 'absice3' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +7 'absliq0' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +8 'absliq1' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '58') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +9 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +10 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +11 'rrlw_cld' 'rrlw_cld' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +) + +('abscld1' 0 2 'absice0' 0 3 'absice1' 0 4 'absice2' 0 5 'absice3' 0 6 +'absliq0' 0 7 'absliq1' 0 8 'parkind' 0 9 'rb' 0 10 'rrlw_cld' 0 11) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_con.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_con.mod new file mode 100644 index 00000000..01120367 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_con.mod @@ -0,0 +1,72 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_con.f90 +MD5:2b29e343042b725dd2e27629e189c58a -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'alosmt' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'avogad' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +4 'boltz' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +5 'clight' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +6 'fluxfac' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +7 'gascon' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +8 'grav' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +9 'heatfac' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +10 'oneminus' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +11 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +12 'pi' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +13 'planck' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +14 'radcn1' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +15 'radcn2' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +16 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'rrlw_con' 'rrlw_con' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +18 'sbcnst' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +19 'secdy' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +) + +('alosmt' 0 2 'avogad' 0 3 'boltz' 0 4 'clight' 0 5 'fluxfac' 0 6 'gascon' +0 7 'grav' 0 8 'heatfac' 0 9 'oneminus' 0 10 'parkind' 0 11 'pi' 0 12 +'planck' 0 13 'radcn1' 0 14 'radcn2' 0 15 'rb' 0 16 'rrlw_con' 0 17 +'sbcnst' 0 18 'secdy' 0 19) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg01.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg01.mod new file mode 100644 index 00000000..09c792d0 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg01.mod @@ -0,0 +1,145 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg01.f90 +MD5:cd3b6e8e85b8735f3f6d6626e46011c3 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg01.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrlw_kg01.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrlw_kg01.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 3 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1)))) +'rrlw_kg01.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '65') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +3 'absb' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +6 'forref' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +7 'forrefo' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'fracrefa' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +9 'fracrefao' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'fracrefb' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +11 'fracrefbo' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () +() () 0 0) +13 'ka_mn2' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +14 'kao' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +15 'kao_mn2' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () +() () 0 0) +16 'kb_mn2' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +17 'kbo' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +18 'kbo_mn2' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +19 'ng1' 'rrlw_kg01' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10') () 0 () () () 0 0) +20 'no1' 'rrlw_kg01' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +21 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +22 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +23 'rrlw_kg01' 'rrlw_kg01' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +24 'selfref' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +25 'selfrefo' 'rrlw_kg01' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'fracrefa' 0 8 +'fracrefao' 0 9 'fracrefb' 0 10 'fracrefbo' 0 11 'im' 0 12 'ka' 0 4 +'ka_mn2' 0 13 'kao' 0 14 'kao_mn2' 0 15 'kb' 0 2 'kb_mn2' 0 16 'kbo' 0 +17 'kbo_mn2' 0 18 'ng1' 0 19 'no1' 0 20 'parkind' 0 21 'rb' 0 22 +'rrlw_kg01' 0 23 'selfref' 0 24 'selfrefo' 0 25) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg02.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg02.mod new file mode 100644 index 00000000..afb994eb --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg02.mod @@ -0,0 +1,128 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg02.f90 +MD5:790d03892d075df75771a33a24df8a37 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg02.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrlw_kg02.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrlw_kg02.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 3 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1)))) +'rrlw_kg02.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '65') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +3 'absb' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +6 'forref' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +7 'forrefo' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'fracrefa' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +9 'fracrefao' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'fracrefb' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +11 'fracrefbo' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () +() () 0 0) +13 'kao' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +2 'kb' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () +() () 0 0) +14 'kbo' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +15 'ng2' 'rrlw_kg02' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12') () 0 () () () 0 0) +16 'no2' 'rrlw_kg02' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +17 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +18 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +19 'refparam' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13')) 0 () () () 0 0) +20 'rrlw_kg02' 'rrlw_kg02' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +21 'selfref' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +22 'selfrefo' 'rrlw_kg02' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'fracrefa' 0 8 +'fracrefao' 0 9 'fracrefb' 0 10 'fracrefbo' 0 11 'im' 0 12 'ka' 0 4 'kao' +0 13 'kb' 0 2 'kbo' 0 14 'ng2' 0 15 'no2' 0 16 'parkind' 0 17 'rb' 0 18 +'refparam' 0 19 'rrlw_kg02' 0 20 'selfref' 0 21 'selfrefo' 0 22) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg03.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg03.mod new file mode 100644 index 00000000..f9c08129 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg03.mod @@ -0,0 +1,163 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg03.f90 +MD5:121f803f02261a8c2b07c7f4d314b698 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg03.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) +'rrlw_kg03.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1))))) ('rrlw_kg03.eq.1' (VARIABLE (REAL 8 0 0 0 +REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 +'1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 +0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 +1 1 1)))) 'rrlw_kg03.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY +(ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 +0) +3 'absb' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1175') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +6 'forref' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +7 'forrefo' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'fracrefa' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +9 'fracrefao' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +10 'fracrefb' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +11 'fracrefbo' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +13 'ka_mn2o' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16')) 0 () () () 0 0) +14 'kao' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +15 'kao_mn2o' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16')) 0 () () () 0 0) +2 'kb' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +16 'kb_mn2o' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16')) 0 () () () 0 0) +17 'kbo' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +18 'kbo_mn2o' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16')) 0 () () () 0 0) +19 'ng3' 'rrlw_kg03' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +20 'no3' 'rrlw_kg03' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +21 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +22 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +23 'rrlw_kg03' 'rrlw_kg03' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +24 'selfref' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +25 'selfrefo' 'rrlw_kg03' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'fracrefa' 0 8 +'fracrefao' 0 9 'fracrefb' 0 10 'fracrefbo' 0 11 'im' 0 12 'ka' 0 4 +'ka_mn2o' 0 13 'kao' 0 14 'kao_mn2o' 0 15 'kb' 0 2 'kb_mn2o' 0 16 'kbo' +0 17 'kbo_mn2o' 0 18 'ng3' 0 19 'no3' 0 20 'parkind' 0 21 'rb' 0 22 +'rrlw_kg03' 0 23 'selfref' 0 24 'selfrefo' 0 25) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg04.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg04.mod new file mode 100644 index 00000000..a3d95de4 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg04.mod @@ -0,0 +1,134 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg04.f90 +MD5:5c8e14a9ce25854efa81cd65bf5f9f95 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg04.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) +'rrlw_kg04.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1))))) ('rrlw_kg04.eq.1' (VARIABLE (REAL 8 0 0 0 +REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 +'1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 +0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 +1 1 1)))) 'rrlw_kg04.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY +(ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 +0) +3 'absb' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1175') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +6 'forref' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +7 'forrefo' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'fracrefa' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +9 'fracrefao' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +10 'fracrefb' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +11 'fracrefbo' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '14')) 0 () () () 0 0) +13 'kao' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '14')) 0 () () () 0 0) +14 'kbo' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +15 'ng4' 'rrlw_kg04' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14') () 0 () () () 0 0) +16 'no4' 'rrlw_kg04' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +17 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +18 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +19 'rrlw_kg04' 'rrlw_kg04' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +20 'selfref' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +21 'selfrefo' 'rrlw_kg04' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'fracrefa' 0 8 +'fracrefao' 0 9 'fracrefb' 0 10 'fracrefbo' 0 11 'im' 0 12 'ka' 0 4 'kao' +0 13 'kb' 0 2 'kbo' 0 14 'ng4' 0 15 'no4' 0 16 'parkind' 0 17 'rb' 0 18 +'rrlw_kg04' 0 19 'selfref' 0 20 'selfrefo' 0 21) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg05.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg05.mod new file mode 100644 index 00000000..ac6e6d23 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg05.mod @@ -0,0 +1,157 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg05.f90 +MD5:6d25c0a4845768a1cbcb1221acbbb654 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg05.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) +'rrlw_kg05.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1))))) ('rrlw_kg05.eq.1' (VARIABLE (REAL 8 0 0 0 +REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 +'1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 +0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 +1 1 1)))) 'rrlw_kg05.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY +(ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 +0) +3 'absb' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1175') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +6 'ccl4' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +7 'ccl4o' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'forref' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +9 'forrefo' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'fracrefa' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +11 'fracrefao' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +12 'fracrefb' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +13 'fracrefbo' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +14 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +15 'ka_mo3' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16')) 0 () () () 0 0) +16 'kao' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +17 'kao_mo3' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16')) 0 () () () 0 0) +2 'kb' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +18 'kbo' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +19 'ng5' 'rrlw_kg05' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +20 'no5' 'rrlw_kg05' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +21 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +22 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +23 'rrlw_kg05' 'rrlw_kg05' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +24 'selfref' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +25 'selfrefo' 'rrlw_kg05' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'ccl4' 0 6 'ccl4o' 0 7 'forref' 0 8 'forrefo' 0 9 +'fracrefa' 0 10 'fracrefao' 0 11 'fracrefb' 0 12 'fracrefbo' 0 13 'im' 0 +14 'ka' 0 4 'ka_mo3' 0 15 'kao' 0 16 'kao_mo3' 0 17 'kb' 0 2 'kbo' 0 18 +'ng5' 0 19 'no5' 0 20 'parkind' 0 21 'rb' 0 22 'rrlw_kg05' 0 23 'selfref' +0 24 'selfrefo' 0 25) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg06.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg06.mod new file mode 100644 index 00000000..c43b2fb2 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg06.mod @@ -0,0 +1,117 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg06.f90 +MD5:fcc1cbb873dcbd7a202b4abaf0852bea -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg06.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrlw_kg06.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(3 'absa' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '65') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +4 'cfc11adj' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +5 'cfc11adjo' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +6 'cfc12' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +7 'cfc12o' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'forref' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +9 'forrefo' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'fracrefa' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +11 'fracrefao' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +2 'ka' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () +() 0 0) +13 'ka_mco2' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +14 'kao' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +15 'kao_mco2' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +16 'ng6' 'rrlw_kg06' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'no6' 'rrlw_kg06' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +18 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +19 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +20 'rrlw_kg06' 'rrlw_kg06' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +21 'selfref' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +22 'selfrefo' 'rrlw_kg06' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 3 'cfc11adj' 0 4 'cfc11adjo' 0 5 'cfc12' 0 6 'cfc12o' 0 7 +'forref' 0 8 'forrefo' 0 9 'fracrefa' 0 10 'fracrefao' 0 11 'im' 0 12 'ka' +0 2 'ka_mco2' 0 13 'kao' 0 14 'kao_mco2' 0 15 'ng6' 0 16 'no6' 0 17 +'parkind' 0 18 'rb' 0 19 'rrlw_kg06' 0 20 'selfref' 0 21 'selfrefo' 0 22) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg07.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg07.mod new file mode 100644 index 00000000..109fa625 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg07.mod @@ -0,0 +1,154 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg07.f90 +MD5:1b823613986677874b1a0c7a1524f0af -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg07.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrlw_kg07.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrlw_kg07.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER +4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) 'rrlw_kg07.eq.1' (VARIABLE (REAL +8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 +0) +3 'absb' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +6 'forref' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +7 'forrefo' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'fracrefa' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +9 'fracrefao' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +10 'fracrefb' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +11 'fracrefbo' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '12')) 0 () () () 0 0) +13 'ka_mco2' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '12')) 0 () () () 0 0) +14 'kao' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +15 'kao_mco2' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16')) 0 () () () 0 0) +2 'kb' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () +() () 0 0) +16 'kb_mco2' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +17 'kbo' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +18 'kbo_mco2' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +19 'ng7' 'rrlw_kg07' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12') () 0 () () () 0 0) +20 'no7' 'rrlw_kg07' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +21 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +22 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +23 'rrlw_kg07' 'rrlw_kg07' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +24 'selfref' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +25 'selfrefo' 'rrlw_kg07' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'fracrefa' 0 8 +'fracrefao' 0 9 'fracrefb' 0 10 'fracrefbo' 0 11 'im' 0 12 'ka' 0 4 +'ka_mco2' 0 13 'kao' 0 14 'kao_mco2' 0 15 'kb' 0 2 'kb_mco2' 0 16 'kbo' +0 17 'kbo_mco2' 0 18 'ng7' 0 19 'no7' 0 20 'parkind' 0 21 'rb' 0 22 +'rrlw_kg07' 0 23 'selfref' 0 24 'selfrefo' 0 25) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg08.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg08.mod new file mode 100644 index 00000000..d7f3d04a --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg08.mod @@ -0,0 +1,193 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg08.f90 +MD5:e2d9325a7ea80d59f690387d98cf9f75 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg08.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrlw_kg08.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrlw_kg08.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 3 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1)))) +'rrlw_kg08.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '65') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +3 'absb' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +6 'cfc12' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +7 'cfc12o' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'cfc22adj' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +9 'cfc22adjo' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'forref' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +11 'forrefo' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +12 'fracrefa' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +13 'fracrefao' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +14 'fracrefb' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +15 'fracrefbo' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +16 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () +() 0 0) +17 'ka_mco2' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +18 'ka_mn2o' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +19 'ka_mo3' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +20 'kao' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +21 'kao_mco2' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +22 'kao_mn2o' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +23 'kao_mo3' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () +() 0 0) +24 'kb_mco2' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +25 'kb_mn2o' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +26 'kbo' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +27 'kbo_mco2' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +28 'kbo_mn2o' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +29 'ng8' 'rrlw_kg08' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +30 'no8' 'rrlw_kg08' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +31 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +32 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +33 'rrlw_kg08' 'rrlw_kg08' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +34 'selfref' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +35 'selfrefo' 'rrlw_kg08' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'cfc12' 0 6 'cfc12o' 0 7 'cfc22adj' 0 8 'cfc22adjo' +0 9 'forref' 0 10 'forrefo' 0 11 'fracrefa' 0 12 'fracrefao' 0 13 +'fracrefb' 0 14 'fracrefbo' 0 15 'im' 0 16 'ka' 0 4 'ka_mco2' 0 17 +'ka_mn2o' 0 18 'ka_mo3' 0 19 'kao' 0 20 'kao_mco2' 0 21 'kao_mn2o' 0 22 +'kao_mo3' 0 23 'kb' 0 2 'kb_mco2' 0 24 'kb_mn2o' 0 25 'kbo' 0 26 +'kbo_mco2' 0 27 'kbo_mn2o' 0 28 'ng8' 0 29 'no8' 0 30 'parkind' 0 31 'rb' +0 32 'rrlw_kg08' 0 33 'selfref' 0 34 'selfrefo' 0 35) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg09.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg09.mod new file mode 100644 index 00000000..4df70091 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg09.mod @@ -0,0 +1,154 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg09.f90 +MD5:500c272bb7ec500338db2ee9bca4b2b2 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg09.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrlw_kg09.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrlw_kg09.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER +4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) 'rrlw_kg09.eq.1' (VARIABLE (REAL +8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 +0) +3 'absb' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +6 'forref' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +7 'forrefo' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'fracrefa' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +9 'fracrefao' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +10 'fracrefb' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +11 'fracrefbo' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '12')) 0 () () () 0 0) +13 'ka_mn2o' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '12')) 0 () () () 0 0) +14 'kao' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +15 'kao_mn2o' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16')) 0 () () () 0 0) +2 'kb' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () +() () 0 0) +16 'kb_mn2o' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +17 'kbo' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +18 'kbo_mn2o' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +19 'ng9' 'rrlw_kg09' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12') () 0 () () () 0 0) +20 'no9' 'rrlw_kg09' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +21 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +22 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +23 'rrlw_kg09' 'rrlw_kg09' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +24 'selfref' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +25 'selfrefo' 'rrlw_kg09' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'fracrefa' 0 8 +'fracrefao' 0 9 'fracrefb' 0 10 'fracrefbo' 0 11 'im' 0 12 'ka' 0 4 +'ka_mn2o' 0 13 'kao' 0 14 'kao_mn2o' 0 15 'kb' 0 2 'kb_mn2o' 0 16 'kbo' +0 17 'kbo_mn2o' 0 18 'ng9' 0 19 'no9' 0 20 'parkind' 0 21 'rb' 0 22 +'rrlw_kg09' 0 23 'selfref' 0 24 'selfrefo' 0 25) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg10.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg10.mod new file mode 100644 index 00000000..a0b02693 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg10.mod @@ -0,0 +1,124 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg10.f90 +MD5:919109b9b4fcd8979d3047da9ba99f26 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg10.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrlw_kg10.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrlw_kg10.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 3 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1)))) +'rrlw_kg10.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '65') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +3 'absb' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +6 'forref' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +7 'forrefo' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'fracrefa' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +9 'fracrefao' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'fracrefb' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +11 'fracrefbo' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () +() 0 0) +13 'kao' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +2 'kb' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () +() 0 0) +14 'kbo' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +15 'ng10' 'rrlw_kg10' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +16 'no10' 'rrlw_kg10' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +17 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +18 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +19 'rrlw_kg10' 'rrlw_kg10' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +20 'selfref' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +21 'selfrefo' 'rrlw_kg10' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'fracrefa' 0 8 +'fracrefao' 0 9 'fracrefb' 0 10 'fracrefbo' 0 11 'im' 0 12 'ka' 0 4 'kao' +0 13 'kb' 0 2 'kbo' 0 14 'ng10' 0 15 'no10' 0 16 'parkind' 0 17 'rb' 0 +18 'rrlw_kg10' 0 19 'selfref' 0 20 'selfrefo' 0 21) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg11.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg11.mod new file mode 100644 index 00000000..7a63cf4f --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg11.mod @@ -0,0 +1,145 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg11.f90 +MD5:76f4f2c729747dec5f2d0fe79389a23c -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg11.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrlw_kg11.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrlw_kg11.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 3 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1)))) +'rrlw_kg11.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '65') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +3 'absb' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +6 'forref' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +7 'forrefo' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'fracrefa' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +9 'fracrefao' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'fracrefb' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +11 'fracrefbo' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () +() 0 0) +13 'ka_mo2' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +14 'kao' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +15 'kao_mo2' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () +() 0 0) +16 'kb_mo2' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +17 'kbo' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +18 'kbo_mo2' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +19 'ng11' 'rrlw_kg11' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +20 'no11' 'rrlw_kg11' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +21 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +22 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +23 'rrlw_kg11' 'rrlw_kg11' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +24 'selfref' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +25 'selfrefo' 'rrlw_kg11' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'fracrefa' 0 8 +'fracrefao' 0 9 'fracrefb' 0 10 'fracrefbo' 0 11 'im' 0 12 'ka' 0 4 +'ka_mo2' 0 13 'kao' 0 14 'kao_mo2' 0 15 'kb' 0 2 'kb_mo2' 0 16 'kbo' 0 +17 'kbo_mo2' 0 18 'ng11' 0 19 'no11' 0 20 'parkind' 0 21 'rb' 0 22 +'rrlw_kg11' 0 23 'selfref' 0 24 'selfrefo' 0 25) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg12.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg12.mod new file mode 100644 index 00000000..c91c5139 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg12.mod @@ -0,0 +1,95 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg12.f90 +MD5:668f889649cd12635c5cf672d77da52a -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg12.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) +'rrlw_kg12.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1)))))) + +() + +(3 'absa' 'rrlw_kg12' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +4 'forref' 'rrlw_kg12' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +5 'forrefo' 'rrlw_kg12' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +6 'fracrefa' 'rrlw_kg12' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +7 'fracrefao' 'rrlw_kg12' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +8 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +2 'ka' 'rrlw_kg12' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '8')) 0 () () () 0 0) +9 'kao' 'rrlw_kg12' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'ng12' 'rrlw_kg12' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +11 'no12' 'rrlw_kg12' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +12 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +13 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +14 'rrlw_kg12' 'rrlw_kg12' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +15 'selfref' 'rrlw_kg12' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +16 'selfrefo' 'rrlw_kg12' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 3 'forref' 0 4 'forrefo' 0 5 'fracrefa' 0 6 'fracrefao' 0 7 'im' +0 8 'ka' 0 2 'kao' 0 9 'ng12' 0 10 'no12' 0 11 'parkind' 0 12 'rb' 0 13 +'rrlw_kg12' 0 14 'selfref' 0 15 'selfrefo' 0 16) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg13.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg13.mod new file mode 100644 index 00000000..ef2f89f7 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg13.mod @@ -0,0 +1,143 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg13.f90 +MD5:3aea125f123ecdc8b8507f9b94676014 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg13.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) +'rrlw_kg13.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1)))))) + +() + +(3 'absa' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4')) 0 () () () 0 0) +4 'forref' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4')) 0 () () () 0 0) +5 'forrefo' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +6 'fracrefa' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +7 'fracrefao' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +8 'fracrefb' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4')) 0 () () () 0 0) +9 'fracrefbo' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +2 'ka' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '4')) 0 () () () 0 0) +11 'ka_mco' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '4')) 0 () () () 0 0) +12 'ka_mco2' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '4')) 0 () () () 0 0) +13 'kao' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +14 'kao_mco' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16')) 0 () () () 0 0) +15 'kao_mco2' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16')) 0 () () () 0 0) +16 'kb_mo3' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4')) 0 () () () 0 0) +17 'kbo_mo3' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +18 'ng13' 'rrlw_kg13' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +19 'no13' 'rrlw_kg13' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +20 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +21 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +22 'rrlw_kg13' 'rrlw_kg13' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +23 'selfref' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4')) 0 () () () 0 0) +24 'selfrefo' 'rrlw_kg13' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 3 'forref' 0 4 'forrefo' 0 5 'fracrefa' 0 6 'fracrefao' 0 7 +'fracrefb' 0 8 'fracrefbo' 0 9 'im' 0 10 'ka' 0 2 'ka_mco' 0 11 'ka_mco2' +0 12 'kao' 0 13 'kao_mco' 0 14 'kao_mco2' 0 15 'kb_mo3' 0 16 'kbo_mo3' 0 +17 'ng13' 0 18 'no13' 0 19 'parkind' 0 20 'rb' 0 21 'rrlw_kg13' 0 22 +'selfref' 0 23 'selfrefo' 0 24) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg14.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg14.mod new file mode 100644 index 00000000..bcfb396a --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg14.mod @@ -0,0 +1,124 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg14.f90 +MD5:4858ec74e0a5ac35a4c65ac43d17ba9a -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg14.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrlw_kg14.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrlw_kg14.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 3 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1)))) +'rrlw_kg14.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '65') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +3 'absb' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +6 'forref' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +7 'forrefo' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'fracrefa' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +9 'fracrefao' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'fracrefb' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +11 'fracrefbo' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () +() 0 0) +13 'kao' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +2 'kb' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () +() 0 0) +14 'kbo' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +15 'ng14' 'rrlw_kg14' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +16 'no14' 'rrlw_kg14' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +17 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +18 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +19 'rrlw_kg14' 'rrlw_kg14' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +20 'selfref' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +21 'selfrefo' 'rrlw_kg14' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'fracrefa' 0 8 +'fracrefao' 0 9 'fracrefb' 0 10 'fracrefbo' 0 11 'im' 0 12 'ka' 0 4 'kao' +0 13 'kb' 0 2 'kbo' 0 14 'ng14' 0 15 'no14' 0 16 'parkind' 0 17 'rb' 0 +18 'rrlw_kg14' 0 19 'selfref' 0 20 'selfrefo' 0 21) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg15.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg15.mod new file mode 100644 index 00000000..fc5e80b8 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg15.mod @@ -0,0 +1,110 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg15.f90 +MD5:39d0eea07c79e373741e311d873cfdac -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg15.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) +'rrlw_kg15.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1)))))) + +() + +(3 'absa' 'rrlw_kg15' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +4 'forref' 'rrlw_kg15' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +5 'forrefo' 'rrlw_kg15' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +6 'fracrefa' 'rrlw_kg15' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +7 'fracrefao' 'rrlw_kg15' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +8 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +2 'ka' 'rrlw_kg15' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '2')) 0 () () () 0 0) +9 'ka_mn2' 'rrlw_kg15' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '2')) 0 () () () 0 0) +10 'kao' 'rrlw_kg15' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +11 'kao_mn2' 'rrlw_kg15' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '19') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16')) 0 () () () 0 0) +12 'ng15' 'rrlw_kg15' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +13 'no15' 'rrlw_kg15' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +14 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +15 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +16 'rrlw_kg15' 'rrlw_kg15' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +17 'selfref' 'rrlw_kg15' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +18 'selfrefo' 'rrlw_kg15' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 3 'forref' 0 4 'forrefo' 0 5 'fracrefa' 0 6 'fracrefao' 0 7 'im' +0 8 'ka' 0 2 'ka_mn2' 0 9 'kao' 0 10 'kao_mn2' 0 11 'ng15' 0 12 'no15' 0 +13 'parkind' 0 14 'rb' 0 15 'rrlw_kg15' 0 16 'selfref' 0 17 'selfrefo' 0 +18) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg16.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg16.mod new file mode 100644 index 00000000..d1747542 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_kg16.mod @@ -0,0 +1,128 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_kg16.f90 +MD5:475a35e0829c53488bb620362a2d345b -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrlw_kg16.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrlw_kg16.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrlw_kg16.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER +4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) 'rrlw_kg16.eq.1' (VARIABLE (REAL +8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +3 'absb' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +6 'forref' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +7 'forrefo' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'fracrefa' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +9 'fracrefao' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +10 'fracrefb' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +11 'fracrefbo' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '2')) 0 () () () 0 0) +13 'kao' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () +() 0 0) +14 'kbo' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +15 'ng16' 'rrlw_kg16' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +16 'no16' 'rrlw_kg16' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +17 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +18 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +19 'rrlw_kg16' 'rrlw_kg16' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +20 'selfref' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +21 'selfrefo' 'rrlw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'fracrefa' 0 8 +'fracrefao' 0 9 'fracrefb' 0 10 'fracrefbo' 0 11 'im' 0 12 'ka' 0 4 'kao' +0 13 'kb' 0 2 'kbo' 0 14 'ng16' 0 15 'no16' 0 16 'parkind' 0 17 'rb' 0 +18 'rrlw_kg16' 0 19 'selfref' 0 20 'selfrefo' 0 21) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_ncpar.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_ncpar.mod new file mode 100644 index 00000000..213da7de --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_ncpar.mod @@ -0,0 +1,117 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_ncpar.f90 +MD5:8dc575f9b1ccbe1ba5ceb14289541cf9 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'absorber' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12') () 0 () () () 0 0) +3 'absorbernames' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0 DIMENSION) (CHARACTER 1 0 0 0 +CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5'))) 0 0 () ( +ARRAY (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '5'))) 1 (((CONSTANT (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT (INTEGER +4 0 0 0 INTEGER ()) 0 '5'))) 0 5 'N2 ') ()) ((CONSTANT (CHARACTER 1 0 +0 0 CHARACTER (())) 0 5 'CCL4 ') ()) ((CONSTANT (CHARACTER 1 0 0 0 +CHARACTER (())) 0 5 'CFC11') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER +(())) 0 5 'CFC12') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 5 +'CFC22') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'H2O ') +()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'CO2 ') ()) (( +CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'O3 ') ()) ((CONSTANT +(CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'N2O ') ()) ((CONSTANT ( +CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'CO ') ()) ((CONSTANT ( +CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'CH4 ') ()) ((CONSTANT ( +CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'O2 ') ())) ('12')) (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +4 'band' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +5 'cpdair' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.3eb80000000000@3') () 0 () () () 0 0) +6 'getabsorberindex' 'rrlw_ncpar' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 7 +0 (8 9) () 0 () () () 0 0) +10 'gpoint' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +11 'gpointset' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +12 'i' 'rrlw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +13 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +14 'keylower' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9') () 0 () () () 0 0) +15 'keyupper' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') () 0 () () () 0 0) +16 'maxabsorbernamelength' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 +() (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') () 0 () () () 0 0) +17 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +18 'pforeign' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +19 'plower' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') () 0 () () () 0 0) +20 'ps' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') () 0 () () () 0 0) +21 'pupper' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '47') () 0 () () () 0 0) +22 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +23 'rrlw_ncpar' 'rrlw_ncpar' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +24 'status' 'rrlw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () +(1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '40')) 0 () () () 0 0) +25 't' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') () 0 () () () 0 0) +26 'tdiff' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') () 0 () () () 0 0) +27 'tforeign' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +28 'tplanck' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '181') () 0 () () () 0 0) +29 'tself' 'rrlw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10') () 0 () () () 0 0) +8 'absorbername' '' '' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (CHARACTER 1 0 0 0 CHARACTER (())) 0 0 () () 0 () () () 0 0) +9 'absorberindex' '' '' 7 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +) + +('absorber' 0 2 'absorbernames' 0 3 'band' 0 4 'cpdair' 0 5 +'getabsorberindex' 0 6 'gpoint' 0 10 'gpointset' 0 11 'i' 0 12 'im' 0 13 +'keylower' 0 14 'keyupper' 0 15 'maxabsorbernamelength' 0 16 'parkind' 0 +17 'pforeign' 0 18 'plower' 0 19 'ps' 0 20 'pupper' 0 21 'rb' 0 22 +'rrlw_ncpar' 0 23 'status' 0 24 't' 0 25 'tdiff' 0 26 'tforeign' 0 27 +'tplanck' 0 28 'tself' 0 29) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_ref.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_ref.mod new file mode 100644 index 00000000..f79fe491 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_ref.mod @@ -0,0 +1,48 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_ref.f90 +MD5:a748e700c0cf768c66f65894bb14e110 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'chi_mls' 'rrlw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '7') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59')) 0 () () () 0 0) +3 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +5 'pref' 'rrlw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '59')) 0 () () () 0 0) +6 'preflog' 'rrlw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '59')) 0 () () () 0 0) +7 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +8 'rrlw_ref' 'rrlw_ref' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +9 'tref' 'rrlw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '59')) 0 () () () 0 0) +) + +('chi_mls' 0 2 'im' 0 3 'parkind' 0 4 'pref' 0 5 'preflog' 0 6 'rb' 0 7 +'rrlw_ref' 0 8 'tref' 0 9) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_tbl.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_tbl.mod new file mode 100644 index 00000000..29a314f5 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_tbl.mod @@ -0,0 +1,55 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_tbl.f90 +MD5:76e19cf22627047de03a7dd82f3164af -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'bpade' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'exp_tbl' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +4 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +5 'ntbl' 'rrlw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000') () 0 () () () 0 0) +6 'pade' 'rrlw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT (REAL 8 0 0 0 +REAL ()) 0 '0.472b020c49ba60@0') () 0 () () () 0 0) +7 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +8 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +9 'rrlw_tbl' 'rrlw_tbl' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +10 'tau_tbl' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +11 'tblint' 'rrlw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.27100000000000@4') () 0 () () () 0 0) +12 'tfn_tbl' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +) + +('bpade' 0 2 'exp_tbl' 0 3 'im' 0 4 'ntbl' 0 5 'pade' 0 6 'parkind' 0 7 +'rb' 0 8 'rrlw_tbl' 0 9 'tau_tbl' 0 10 'tblint' 0 11 'tfn_tbl' 0 12) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_vsn.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_vsn.mod new file mode 100644 index 00000000..3232cd7f --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_vsn.mod @@ -0,0 +1,105 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_vsn.f90 +MD5:8985c0ba5d5be81a3208c49cbcfa8380 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () () +() () ()) + +() + +() + +() + +() + +() + +(2 'hnamatm' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +3 'hnamclc' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +4 'hnamcld' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +5 'hnamext' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +6 'hnamini' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +7 'hnamkg' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +8 'hnamrtc' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +9 'hnamrtm' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +10 'hnamrtr' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +11 'hnamrtx' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +12 'hnamset' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +13 'hnamtau' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +14 'hnamutl' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +15 'hvratm' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +16 'hvrclc' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +17 'hvrcld' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +18 'hvrext' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +19 'hvrini' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +20 'hvrkg' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +21 'hvrrtc' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +22 'hvrrtm' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +23 'hvrrtr' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +24 'hvrrtx' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +25 'hvrset' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +26 'hvrtau' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +27 'hvrutl' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +28 'rrlw_vsn' 'rrlw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +) + +('hnamatm' 0 2 'hnamclc' 0 3 'hnamcld' 0 4 'hnamext' 0 5 'hnamini' 0 6 +'hnamkg' 0 7 'hnamrtc' 0 8 'hnamrtm' 0 9 'hnamrtr' 0 10 'hnamrtx' 0 11 +'hnamset' 0 12 'hnamtau' 0 13 'hnamutl' 0 14 'hvratm' 0 15 'hvrclc' 0 16 +'hvrcld' 0 17 'hvrext' 0 18 'hvrini' 0 19 'hvrkg' 0 20 'hvrrtc' 0 21 +'hvrrtm' 0 22 'hvrrtr' 0 23 'hvrrtx' 0 24 'hvrset' 0 25 'hvrtau' 0 26 +'hvrutl' 0 27 'rrlw_vsn' 0 28) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrlw_wvn.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_wvn.mod new file mode 100644 index 00000000..a0bbf404 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrlw_wvn.mod @@ -0,0 +1,128 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/modules/rrlw_wvn.f90 +MD5:d53dfc721d6c3a7476369543a7e8126a -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'delwave' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +3 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ixindx' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () +(1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '38')) 0 () () () 0 0) +5 'maxinpx' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '38') () 0 () () () 0 0) +6 'mg' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +7 'nbndlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +8 'ng' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +9 'ngb' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '140')) 0 () () () 0 0) +10 'ngc' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +11 'ngm' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '256')) 0 () () () 0 0) +12 'ngn' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '140')) 0 () () () 0 0) +13 'ngptlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '140') () 0 () () () 0 0) +14 'ngs' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +15 'nspa' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +16 'nspb' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +17 'nxmol' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () +() 0 0) +18 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +19 'parrrtm' 'parrrtm' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +20 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +21 'rrlw_wvn' 'rrlw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +22 'rwgt' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '256')) 0 () () () 0 0) +23 'totplk16' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '181')) 0 () () () 0 0) +24 'totplk16deriv' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) +0 0 () (1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '181')) 0 () () () 0 0) +25 'totplnk' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '181') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 +0) +26 'totplnkderiv' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '181') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 +0) +27 'wavenum1' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +28 'wavenum2' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +29 'wt' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('delwave' 0 2 'im' 0 3 'ixindx' 0 4 'maxinpx' 0 5 'mg' 0 6 'nbndlw' 0 7 +'ng' 0 8 'ngb' 0 9 'ngc' 0 10 'ngm' 0 11 'ngn' 0 12 'ngptlw' 0 13 'ngs' +0 14 'nspa' 0 15 'nspb' 0 16 'nxmol' 0 17 'parkind' 0 18 'parrrtm' 0 19 +'rb' 0 20 'rrlw_wvn' 0 21 'rwgt' 0 22 'totplk16' 0 23 'totplk16deriv' 0 +24 'totplnk' 0 25 'totplnkderiv' 0 26 'wavenum1' 0 27 'wavenum2' 0 28 'wt' +0 29) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_aer.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_aer.mod new file mode 100644 index 00000000..f17d641b --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_aer.mod @@ -0,0 +1,54 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_aer.f90 +MD5:d04c7cda8ae4983a6e3d2eb3ac981a00 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +3 'naerec' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +4 'nbndsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14') () 0 () () () 0 0) +5 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +6 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +7 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +8 'rrsw_aer' 'rrsw_aer' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +9 'rsrasya' 'rrsw_aer' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +10 'rsrpiza' 'rrsw_aer' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +11 'rsrtaua' 'rrsw_aer' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +) + +('im' 0 2 'naerec' 0 3 'nbndsw' 0 4 'parkind' 0 5 'parrrsw' 0 6 'rb' 0 7 +'rrsw_aer' 0 8 'rsrasya' 0 9 'rsrpiza' 0 10 'rsrtaua' 0 11) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_cld.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_cld.mod new file mode 100644 index 00000000..fd75fb3f --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_cld.mod @@ -0,0 +1,107 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_cld.f90 +MD5:ccb32026dc1d9d6db78f206f98927c51 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'abari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +3 'asyice2' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '43') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +4 'asyice3' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +5 'asyliq1' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '58') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +6 'bbari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5')) 0 () () () 0 0) +7 'cbari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5')) 0 () () () 0 0) +8 'dbari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5')) 0 () () () 0 0) +9 'ebari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5')) 0 () () () 0 0) +10 'extice2' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '43') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +11 'extice3' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +12 'extliq1' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '58') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +13 'fbari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +14 'fdlice3' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +15 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +16 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +17 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +18 'rrsw_cld' 'rrsw_cld' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +19 'ssaice2' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '43') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +20 'ssaice3' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +21 'ssaliq1' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '58') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +) + +('abari' 0 2 'asyice2' 0 3 'asyice3' 0 4 'asyliq1' 0 5 'bbari' 0 6 'cbari' +0 7 'dbari' 0 8 'ebari' 0 9 'extice2' 0 10 'extice3' 0 11 'extliq1' 0 12 +'fbari' 0 13 'fdlice3' 0 14 'im' 0 15 'parkind' 0 16 'rb' 0 17 'rrsw_cld' +0 18 'ssaice2' 0 19 'ssaice3' 0 20 'ssaliq1' 0 21) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_con.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_con.mod new file mode 100644 index 00000000..741622df --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_con.mod @@ -0,0 +1,75 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_con.f90 +MD5:106ba95b126ad9dae86570fbf1037eb3 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'alosmt' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'avogad' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +4 'boltz' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +5 'clight' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +6 'fluxfac' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +7 'gascon' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +8 'grav' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +9 'heatfac' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +10 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +11 'oneminus' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +12 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +13 'pi' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +14 'planck' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +15 'radcn1' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +16 'radcn2' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +17 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +18 'rrsw_con' 'rrsw_con' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +19 'sbcnst' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +20 'secdy' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +) + +('alosmt' 0 2 'avogad' 0 3 'boltz' 0 4 'clight' 0 5 'fluxfac' 0 6 'gascon' +0 7 'grav' 0 8 'heatfac' 0 9 'im' 0 10 'oneminus' 0 11 'parkind' 0 12 'pi' +0 13 'planck' 0 14 'radcn1' 0 15 'radcn2' 0 16 'rb' 0 17 'rrsw_con' 0 18 +'sbcnst' 0 19 'secdy' 0 20) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg16.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg16.mod new file mode 100644 index 00000000..d00b34e3 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg16.mod @@ -0,0 +1,123 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg16.f90 +MD5:c53614184e747d86e716a9ec1440834c -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg16.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrsw_kg16.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrsw_kg16.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER +4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) 'rrsw_kg16.eq.1' (VARIABLE (REAL +8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +3 'absb' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +6 'forref' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +7 'forrefo' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '6')) 0 () () () 0 0) +9 'kao' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () +() 0 0) +10 'kbo' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +11 'ng16' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +12 'no16' 'rrsw_kg16' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +13 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +14 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +15 'rayl' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +16 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'rrsw_kg16' 'rrsw_kg16' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +18 'selfref' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +19 'selfrefo' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +20 'sfluxref' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +21 'sfluxrefo' 'rrsw_kg16' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'im' 0 8 'ka' 0 4 'kao' +0 9 'kb' 0 2 'kbo' 0 10 'ng16' 0 11 'no16' 0 12 'parkind' 0 13 'parrrsw' +0 14 'rayl' 0 15 'rb' 0 16 'rrsw_kg16' 0 17 'selfref' 0 18 'selfrefo' 0 +19 'sfluxref' 0 20 'sfluxrefo' 0 21) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg17.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg17.mod new file mode 100644 index 00000000..6d4e371f --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg17.mod @@ -0,0 +1,129 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg17.f90 +MD5:897a508aa30c649a57afc1d620187254 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg17.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) +'rrsw_kg17.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1))))) ('rrsw_kg17.eq.1' (VARIABLE (REAL 8 0 0 0 +REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 +'1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 +0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 +1 1 1)))) 'rrsw_kg17.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY +(ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 +0) +3 'absb' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1175') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +6 'forref' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +7 'forrefo' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '12')) 0 () () () 0 0) +9 'kao' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '12')) 0 () () () 0 0) +10 'kbo' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +11 'ng17' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12') () 0 () () () 0 0) +12 'no17' 'rrsw_kg17' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +13 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +14 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +15 'rayl' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +16 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'rrsw_kg17' 'rrsw_kg17' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +18 'selfref' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +19 'selfrefo' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +20 'sfluxref' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +21 'sfluxrefo' 'rrsw_kg17' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'im' 0 8 'ka' 0 4 'kao' +0 9 'kb' 0 2 'kbo' 0 10 'ng17' 0 11 'no17' 0 12 'parkind' 0 13 'parrrsw' +0 14 'rayl' 0 15 'rb' 0 16 'rrsw_kg17' 0 17 'selfref' 0 18 'selfrefo' 0 +19 'sfluxref' 0 20 'sfluxrefo' 0 21) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg18.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg18.mod new file mode 100644 index 00000000..3007560d --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg18.mod @@ -0,0 +1,125 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg18.f90 +MD5:72f68e730ee2fa68158aa536629ffa0c -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg18.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrsw_kg18.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrsw_kg18.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER +4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) 'rrsw_kg18.eq.1' (VARIABLE (REAL +8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +3 'absb' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +6 'forref' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +7 'forrefo' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '8')) 0 () () () 0 0) +9 'kao' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () +() 0 0) +10 'kbo' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +11 'ng18' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +12 'no18' 'rrsw_kg18' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +13 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +14 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +15 'rayl' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +16 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'rrsw_kg18' 'rrsw_kg18' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +18 'selfref' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +19 'selfrefo' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +20 'sfluxref' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +21 'sfluxrefo' 'rrsw_kg18' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'im' 0 8 'ka' 0 4 'kao' +0 9 'kb' 0 2 'kbo' 0 10 'ng18' 0 11 'no18' 0 12 'parkind' 0 13 'parrrsw' +0 14 'rayl' 0 15 'rb' 0 16 'rrsw_kg18' 0 17 'selfref' 0 18 'selfrefo' 0 +19 'sfluxref' 0 20 'sfluxrefo' 0 21) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg19.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg19.mod new file mode 100644 index 00000000..56431de1 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg19.mod @@ -0,0 +1,125 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg19.f90 +MD5:656f3fe6369fbb05cc0365a47b25be07 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg19.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrsw_kg19.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrsw_kg19.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER +4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) 'rrsw_kg19.eq.1' (VARIABLE (REAL +8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +3 'absb' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +6 'forref' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +7 'forrefo' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '8')) 0 () () () 0 0) +9 'kao' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () +() 0 0) +10 'kbo' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +11 'ng19' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +12 'no19' 'rrsw_kg19' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +13 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +14 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +15 'rayl' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +16 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'rrsw_kg19' 'rrsw_kg19' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +18 'selfref' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +19 'selfrefo' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +20 'sfluxref' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +21 'sfluxrefo' 'rrsw_kg19' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'im' 0 8 'ka' 0 4 'kao' +0 9 'kb' 0 2 'kbo' 0 10 'ng19' 0 11 'no19' 0 12 'parkind' 0 13 'parrrsw' +0 14 'rayl' 0 15 'rb' 0 16 'rrsw_kg19' 0 17 'selfref' 0 18 'selfrefo' 0 +19 'sfluxref' 0 20 'sfluxrefo' 0 21) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg20.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg20.mod new file mode 100644 index 00000000..2eb5602e --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg20.mod @@ -0,0 +1,129 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg20.f90 +MD5:a28f16a9a792ebda1a99f60b07903b36 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg20.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrsw_kg20.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrsw_kg20.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 3 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1)))) +'rrsw_kg20.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '65') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +3 'absb' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +6 'absch4' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +7 'absch4o' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'forref' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +9 'forrefo' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () +() () 0 0) +11 'kao' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +2 'kb' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () +() () 0 0) +12 'kbo' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +13 'ng20' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') () 0 () () () 0 0) +14 'no20' 'rrsw_kg20' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +15 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +16 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +17 'rayl' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +18 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +19 'rrsw_kg20' 'rrsw_kg20' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +20 'selfref' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +21 'selfrefo' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +22 'sfluxref' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +23 'sfluxrefo' 'rrsw_kg20' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'absch4' 0 6 'absch4o' 0 7 'forref' 0 8 'forrefo' +0 9 'im' 0 10 'ka' 0 4 'kao' 0 11 'kb' 0 2 'kbo' 0 12 'ng20' 0 13 'no20' +0 14 'parkind' 0 15 'parrrsw' 0 16 'rayl' 0 17 'rb' 0 18 'rrsw_kg20' 0 +19 'selfref' 0 20 'selfrefo' 0 21 'sfluxref' 0 22 'sfluxrefo' 0 23) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg21.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg21.mod new file mode 100644 index 00000000..6db3f5af --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg21.mod @@ -0,0 +1,129 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg21.f90 +MD5:3d30afddfc9ba9cf934ed17a5b6bb90f -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg21.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) +'rrsw_kg21.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1))))) ('rrsw_kg21.eq.1' (VARIABLE (REAL 8 0 0 0 +REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 +'1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 +0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 +1 1 1)))) 'rrsw_kg21.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY +(ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 +0) +3 'absb' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1175') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +6 'forref' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +7 'forrefo' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '10')) 0 () () () 0 0) +9 'kao' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '10')) 0 () () () 0 0) +10 'kbo' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +11 'ng21' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') () 0 () () () 0 0) +12 'no21' 'rrsw_kg21' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +13 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +14 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +15 'rayl' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +16 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'rrsw_kg21' 'rrsw_kg21' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +18 'selfref' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +19 'selfrefo' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +20 'sfluxref' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +21 'sfluxrefo' 'rrsw_kg21' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'im' 0 8 'ka' 0 4 'kao' +0 9 'kb' 0 2 'kbo' 0 10 'ng21' 0 11 'no21' 0 12 'parkind' 0 13 'parrrsw' +0 14 'rayl' 0 15 'rb' 0 16 'rrsw_kg21' 0 17 'selfref' 0 18 'selfrefo' 0 +19 'sfluxref' 0 20 'sfluxrefo' 0 21) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg22.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg22.mod new file mode 100644 index 00000000..af2b4f7e --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg22.mod @@ -0,0 +1,125 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg22.f90 +MD5:b8a5b303a35fc888b25e50db6b099bc7 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg22.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrsw_kg22.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrsw_kg22.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER +4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) 'rrsw_kg22.eq.1' (VARIABLE (REAL +8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +3 'absb' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +6 'forref' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +7 'forrefo' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '2')) 0 () () () 0 0) +9 'kao' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () +() 0 0) +10 'kbo' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +11 'ng22' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +12 'no22' 'rrsw_kg22' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +13 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +14 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +15 'rayl' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +16 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'rrsw_kg22' 'rrsw_kg22' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +18 'selfref' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +19 'selfrefo' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +20 'sfluxref' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +21 'sfluxrefo' 'rrsw_kg22' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'forref' 0 6 'forrefo' 0 7 'im' 0 8 'ka' 0 4 'kao' +0 9 'kb' 0 2 'kbo' 0 10 'ng22' 0 11 'no22' 0 12 'parkind' 0 13 'parrrsw' +0 14 'rayl' 0 15 'rb' 0 16 'rrsw_kg22' 0 17 'selfref' 0 18 'selfrefo' 0 +19 'sfluxref' 0 20 'sfluxrefo' 0 21) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg23.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg23.mod new file mode 100644 index 00000000..b08954dc --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg23.mod @@ -0,0 +1,101 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg23.f90 +MD5:cc49c233b08f158fd1c74987ccfc471d -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg23.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrsw_kg23.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(3 'absa' 'rrsw_kg23' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '65') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +4 'forref' 'rrsw_kg23' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +5 'forrefo' 'rrsw_kg23' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +6 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +2 'ka' 'rrsw_kg23' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () +() () 0 0) +7 'kao' 'rrsw_kg23' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +8 'ng23' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') () 0 () () () 0 0) +9 'no23' 'rrsw_kg23' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +10 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +11 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +12 'rayl' 'rrsw_kg23' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +13 'raylo' 'rrsw_kg23' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +14 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +15 'rrsw_kg23' 'rrsw_kg23' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +16 'selfref' 'rrsw_kg23' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +17 'selfrefo' 'rrsw_kg23' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +18 'sfluxref' 'rrsw_kg23' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +19 'sfluxrefo' 'rrsw_kg23' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 3 'forref' 0 4 'forrefo' 0 5 'im' 0 6 'ka' 0 2 'kao' 0 7 'ng23' +0 8 'no23' 0 9 'parkind' 0 10 'parrrsw' 0 11 'rayl' 0 12 'raylo' 0 13 'rb' +0 14 'rrsw_kg23' 0 15 'selfref' 0 16 'selfrefo' 0 17 'sfluxref' 0 18 +'sfluxrefo' 0 19) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg24.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg24.mod new file mode 100644 index 00000000..e7768a6d --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg24.mod @@ -0,0 +1,157 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg24.f90 +MD5:6a32f38d5ff1b04f95cb6b0d25f624d5 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg24.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrsw_kg24.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrsw_kg24.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER +4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) 'rrsw_kg24.eq.1' (VARIABLE (REAL +8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +3 'absb' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +6 'abso3a' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +7 'abso3ao' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'abso3b' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +9 'abso3bo' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'forref' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +11 'forrefo' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '3') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '8')) 0 () () () 0 0) +13 'kao' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () +() 0 0) +14 'kbo' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +15 'ng24' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +16 'no24' 'rrsw_kg24' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +17 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +18 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +19 'rayla' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +20 'raylao' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +21 'raylb' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +22 'raylbo' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +23 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +24 'rrsw_kg24' 'rrsw_kg24' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +25 'selfref' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +26 'selfrefo' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +27 'sfluxref' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +28 'sfluxrefo' 'rrsw_kg24' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'abso3a' 0 6 'abso3ao' 0 7 'abso3b' 0 8 'abso3bo' +0 9 'forref' 0 10 'forrefo' 0 11 'im' 0 12 'ka' 0 4 'kao' 0 13 'kb' 0 2 +'kbo' 0 14 'ng24' 0 15 'no24' 0 16 'parkind' 0 17 'parrrsw' 0 18 'rayla' +0 19 'raylao' 0 20 'raylb' 0 21 'raylbo' 0 22 'rb' 0 23 'rrsw_kg24' 0 24 +'selfref' 0 25 'selfrefo' 0 26 'sfluxref' 0 27 'sfluxrefo' 0 28) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg25.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg25.mod new file mode 100644 index 00000000..8605166a --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg25.mod @@ -0,0 +1,97 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg25.f90 +MD5:ecf53d3a8e5dbd0024e16b41b7313659 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg25.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrsw_kg25.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(3 'absa' 'rrsw_kg25' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '65') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +4 'abso3a' 'rrsw_kg25' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +5 'abso3ao' 'rrsw_kg25' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +6 'abso3b' 'rrsw_kg25' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +7 'abso3bo' 'rrsw_kg25' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +2 'ka' 'rrsw_kg25' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () +() 0 0) +9 'kao' 'rrsw_kg25' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +10 'ng25' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +11 'no25' 'rrsw_kg25' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +12 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +13 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +14 'rayl' 'rrsw_kg25' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +15 'raylo' 'rrsw_kg25' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +16 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'rrsw_kg25' 'rrsw_kg25' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +18 'sfluxref' 'rrsw_kg25' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +19 'sfluxrefo' 'rrsw_kg25' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 3 'abso3a' 0 4 'abso3ao' 0 5 'abso3b' 0 6 'abso3bo' 0 7 'im' 0 +8 'ka' 0 2 'kao' 0 9 'ng25' 0 10 'no25' 0 11 'parkind' 0 12 'parrrsw' 0 +13 'rayl' 0 14 'raylo' 0 15 'rb' 0 16 'rrsw_kg25' 0 17 'sfluxref' 0 18 +'sfluxrefo' 0 19) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg26.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg26.mod new file mode 100644 index 00000000..f459839f --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg26.mod @@ -0,0 +1,55 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg26.f90 +MD5:aa893aa4e8d2076a264e2077028e70e3 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +3 'ng26' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +4 'no26' 'rrsw_kg26' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +5 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +6 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +7 'rayl' 'rrsw_kg26' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '6')) 0 () () () 0 0) +8 'raylo' 'rrsw_kg26' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +9 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +10 'rrsw_kg26' 'rrsw_kg26' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +11 'sfluxref' 'rrsw_kg26' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +12 'sfluxrefo' 'rrsw_kg26' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('im' 0 2 'ng26' 0 3 'no26' 0 4 'parkind' 0 5 'parrrsw' 0 6 'rayl' 0 7 +'raylo' 0 8 'rb' 0 9 'rrsw_kg26' 0 10 'sfluxref' 0 11 'sfluxrefo' 0 12) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg27.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg27.mod new file mode 100644 index 00000000..b04c727a --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg27.mod @@ -0,0 +1,105 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg27.f90 +MD5:e9dc3ed561640d1cee9e52bee71e16ec -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg27.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrsw_kg27.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrsw_kg27.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 3 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1)))) +'rrsw_kg27.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrsw_kg27' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '65') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +3 'absb' 'rrsw_kg27' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +6 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrsw_kg27' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () +() 0 0) +7 'kao' 'rrsw_kg27' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +2 'kb' 'rrsw_kg27' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () +() 0 0) +8 'kbo' 'rrsw_kg27' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +9 'ng27' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +10 'no27' 'rrsw_kg27' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +11 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +12 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +13 'rayl' 'rrsw_kg27' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +14 'raylo' 'rrsw_kg27' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +15 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +16 'rrsw_kg27' 'rrsw_kg27' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +17 'sfluxref' 'rrsw_kg27' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '8')) 0 () () () 0 0) +18 'sfluxrefo' 'rrsw_kg27' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'im' 0 6 'ka' 0 4 'kao' 0 7 'kb' 0 2 'kbo' 0 8 +'ng27' 0 9 'no27' 0 10 'parkind' 0 11 'parrrsw' 0 12 'rayl' 0 13 'raylo' +0 14 'rb' 0 15 'rrsw_kg27' 0 16 'sfluxref' 0 17 'sfluxrefo' 0 18) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg28.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg28.mod new file mode 100644 index 00000000..4d9a057b --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg28.mod @@ -0,0 +1,107 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg28.f90 +MD5:1551d844d83562485f9fae3ce7df92e1 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg28.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1 1)))) +'rrsw_kg28.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1))))) ('rrsw_kg28.eq.1' (VARIABLE (REAL 8 0 0 0 +REAL ()) 0 4 ((ARRAY (ELEMENT 4 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 +'1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 +0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 +1 1 1)))) 'rrsw_kg28.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY +(ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrsw_kg28' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '585') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +3 'absb' 'rrsw_kg28' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1175') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +6 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrsw_kg28' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '6')) 0 () () () 0 0) +7 'kao' 'rrsw_kg28' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '9') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +2 'kb' 'rrsw_kg28' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '6')) 0 () () () 0 0) +8 'kbo' 'rrsw_kg28' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (4 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +9 'ng28' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +10 'no28' 'rrsw_kg28' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +11 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +12 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +13 'rayl' 'rrsw_kg28' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +14 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +15 'rrsw_kg28' 'rrsw_kg28' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +16 'sfluxref' 'rrsw_kg28' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '6') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +17 'sfluxrefo' 'rrsw_kg28' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'im' 0 6 'ka' 0 4 'kao' 0 7 'kb' 0 2 'kbo' 0 8 +'ng28' 0 9 'no28' 0 10 'parkind' 0 11 'parrrsw' 0 12 'rayl' 0 13 'rb' 0 +14 'rrsw_kg28' 0 15 'sfluxref' 0 16 'sfluxrefo' 0 17) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg29.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg29.mod new file mode 100644 index 00000000..78035674 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_kg29.mod @@ -0,0 +1,138 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_kg29.f90 +MD5:6ef4cc2f0b5c27c0957aa3ddd2596970 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +(('rrsw_kg29.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 2 ((ARRAY ( +ELEMENT 3 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') 1 1 1)))) 'rrsw_kg29.eq.0' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 3 ( +(ARRAY (ELEMENT 2 (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1))))) ('rrsw_kg29.eq.1' +(VARIABLE (REAL 8 0 0 0 REAL ()) 0 4 ((ARRAY (ELEMENT 3 (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') 1 1 1)))) +'rrsw_kg29.eq.1' (VARIABLE (REAL 8 0 0 0 REAL ()) 0 5 ((ARRAY (ELEMENT 2 +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') 1 1)))))) + +() + +(5 'absa' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '65') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +3 'absb' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '235') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +6 'absco2' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +7 'absco2o' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +8 'absh2o' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +9 'absh2oo' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'forref' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +11 'forrefo' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '4') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +12 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'ka' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () +() () 0 0) +13 'kao' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +2 'kb' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () +() () 0 0) +14 'kbo' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () +() () 0 0) +15 'ng29' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12') () 0 () () () 0 0) +16 'no29' 'rrsw_kg29' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +17 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +18 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +19 'rayl' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +20 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +21 'rrsw_kg29' 'rrsw_kg29' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +22 'selfref' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +23 'selfrefo' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +24 'sfluxref' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +25 'sfluxrefo' 'rrsw_kg29' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('absa' 0 5 'absb' 0 3 'absco2' 0 6 'absco2o' 0 7 'absh2o' 0 8 'absh2oo' +0 9 'forref' 0 10 'forrefo' 0 11 'im' 0 12 'ka' 0 4 'kao' 0 13 'kb' 0 2 +'kbo' 0 14 'ng29' 0 15 'no29' 0 16 'parkind' 0 17 'parrrsw' 0 18 'rayl' +0 19 'rb' 0 20 'rrsw_kg29' 0 21 'selfref' 0 22 'selfrefo' 0 23 'sfluxref' +0 24 'sfluxrefo' 0 25) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_ncpar.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_ncpar.mod new file mode 100644 index 00000000..f578b36b --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_ncpar.mod @@ -0,0 +1,235 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_ncpar.f90 +MD5:a6235a4ecc5733211750637c478c52bd -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 '__convert_i4_r8' '(intrinsic)' '' 1 ((PROCEDURE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 FUNCTION ELEMENTAL PURE) (REAL 8 0 0 0 +REAL ()) 0 0 () () 2 () () () 0 0) +3 'absorber' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '12') () 0 () () () 0 0) +4 'absorbernames' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0 DIMENSION) (CHARACTER 1 0 0 0 +CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5'))) 0 0 () ( +ARRAY (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '5'))) 1 (((CONSTANT (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT (INTEGER +4 0 0 0 INTEGER ()) 0 '5'))) 0 5 'N2 ') ()) ((CONSTANT (CHARACTER 1 0 +0 0 CHARACTER (())) 0 5 'CCL4 ') ()) ((CONSTANT (CHARACTER 1 0 0 0 +CHARACTER (())) 0 5 'CFC11') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER +(())) 0 5 'CFC12') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 5 +'CFC22') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'H2O ') +()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'CO2 ') ()) (( +CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'O3 ') ()) ((CONSTANT +(CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'N2O ') ()) ((CONSTANT ( +CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'CO ') ()) ((CONSTANT ( +CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'CH4 ') ()) ((CONSTANT ( +CHARACTER 1 0 0 0 CHARACTER (())) 0 5 'O2 ') ())) ('12')) (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '12')) 0 () () () 0 0) +5 'band' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14') () 0 () () () 0 0) +6 'bandnums' 'rrsw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () +(1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +7 'cpdair' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.3eb80000000000@3') () 0 () () () 0 0) +8 'getabsorberindex' 'rrsw_ncpar' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 9 +0 (10 11) () 0 () () () 0 0) +12 'gpoint' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +13 'gpointset' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +14 'i' 'rrsw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +15 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +16 'keylower' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9') () 0 () () () 0 0) +17 'keyspecieslower' 'rrsw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) +0 0 () (1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '9')) 0 () () () 0 0) +18 'keyspeciesnameslower' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0 DIMENSION) (CHARACTER 1 0 0 0 +CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '3'))) 0 0 () ( +ARRAY (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '3'))) 2 (((CONSTANT (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT (INTEGER +4 0 0 0 INTEGER ()) 0 '3'))) 0 3 'H2O') ()) ((CONSTANT (CHARACTER 1 0 0 +0 CHARACTER (())) 0 3 'H2O') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER +(())) 0 3 'H2O') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 +'H2O') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'H2O') ()) +((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'H2O') ()) ((CONSTANT +(CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'H2O') ()) ((CONSTANT (CHARACTER +1 0 0 0 CHARACTER (())) 0 3 'H2O') ()) ((CONSTANT (CHARACTER 1 0 0 0 +CHARACTER (())) 0 3 'H2O') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER ( +())) 0 3 'H2O') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 +' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'O3 ') ()) +((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'O3 ') ()) ((CONSTANT +(CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'H2O') ()) ((CONSTANT (CHARACTER +1 0 0 0 CHARACTER (())) 0 3 'CH4') ()) ((CONSTANT (CHARACTER 1 0 0 0 +CHARACTER (())) 0 3 'CO2') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER ( +())) 0 3 'CH4') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 +'CO2') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 ' ') ()) +((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'CO2') ()) ((CONSTANT +(CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'O2 ') ()) ((CONSTANT (CHARACTER +1 0 0 0 CHARACTER (())) 0 3 ' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 +CHARACTER (())) 0 3 'O2 ') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER ( +())) 0 3 ' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 +' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 ' ') ()) +((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'O2 ') ()) ((CONSTANT +(CHARACTER 1 0 0 0 CHARACTER (())) 0 3 ' ') ())) ('14' '2')) (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +19 'keyspeciesnamesupper' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0 DIMENSION) (CHARACTER 1 0 0 0 +CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '3'))) 0 0 () ( +ARRAY (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '3'))) 2 (((CONSTANT (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT (INTEGER +4 0 0 0 INTEGER ()) 0 '3'))) 0 3 'CH4') ()) ((CONSTANT (CHARACTER 1 0 0 +0 CHARACTER (())) 0 3 'H2O') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER +(())) 0 3 'CH4') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 +'CO2') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'H2O') ()) +((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'H2O') ()) ((CONSTANT +(CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'O2 ') ()) ((CONSTANT (CHARACTER +1 0 0 0 CHARACTER (())) 0 3 ' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 +CHARACTER (())) 0 3 'O2 ') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER ( +())) 0 3 ' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 +' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'O3 ') ()) +((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'O3 ') ()) ((CONSTANT +(CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'CO2') ()) ((CONSTANT (CHARACTER +1 0 0 0 CHARACTER (())) 0 3 ' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 +CHARACTER (())) 0 3 'CO2') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER ( +())) 0 3 ' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 +' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 ' ') ()) +((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'CO2') ()) ((CONSTANT +(CHARACTER 1 0 0 0 CHARACTER (())) 0 3 ' ') ()) ((CONSTANT (CHARACTER +1 0 0 0 CHARACTER (())) 0 3 ' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 +CHARACTER (())) 0 3 ' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER ( +())) 0 3 ' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 +' ') ()) ((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 ' ') ()) +((CONSTANT (CHARACTER 1 0 0 0 CHARACTER (())) 0 3 'O2 ') ()) ((CONSTANT +(CHARACTER 1 0 0 0 CHARACTER (())) 0 3 ' ') ())) ('14' '2')) (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +20 'keyspeciesupper' 'rrsw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) +0 0 () (1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +21 'keyupper' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') () 0 () () () 0 0) +22 'maxabsorbernamelength' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 +() (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') () 0 () () () 0 0) +23 'maxkeyspeciesnamelength' 'rrsw_ncpar' '' 1 ((PARAMETER +UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 +INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '3') () 0 () +() () 0 0) +24 'maxkeyspeciesnames' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 +() (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +25 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +26 'pforeign' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +27 'plower' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '13') () 0 () () () 0 0) +28 'pressforeign' 'rrsw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) +0 0 () (1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4')) 0 () () () 0 0) +29 'ps' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59') () 0 () () () 0 0) +30 'pupper' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '47') () 0 () () () 0 0) +31 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +32 'reshape' '(intrinsic)' '' 1 ((PROCEDURE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0 FUNCTION) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 32 +() () () 0 0) +33 'rrsw_ncpar' 'rrsw_ncpar' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +34 'status' 'rrsw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () +(1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '50')) 0 () () () 0 0) +35 't' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19') () 0 () () () 0 0) +36 'tdiff' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5') () 0 () () () 0 0) +37 'temp' 'rrsw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '19')) 0 () () () 0 0) +38 'tempdiffs' 'rrsw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +39 'tempforeignlower' 'rrsw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) +0 0 () (1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '3')) 0 () () () 0 0) +40 'tempforeignupper' 'rrsw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) +0 0 () (1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +41 'tempself' 'rrsw_ncpar' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10')) 0 () () () 0 0) +42 'tforeignlower' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 +() (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '3') () 0 () () () 0 0) +43 'tforeignupper' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 +() (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2') () 0 () () () 0 0) +44 'tself' 'rrsw_ncpar' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '10') () 0 () () () 0 0) +10 'absorbername' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (CHARACTER 1 0 0 0 CHARACTER (())) 0 0 () () 0 () () () 0 0) +11 'absorberindex' '' '' 9 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +) + +('__convert_i4_r8' 0 2 'absorber' 0 3 'absorbernames' 0 4 'band' 0 5 +'bandnums' 0 6 'cpdair' 0 7 'getabsorberindex' 0 8 'gpoint' 0 12 +'gpointset' 0 13 'i' 0 14 'im' 0 15 'keylower' 0 16 'keyspecieslower' 0 +17 'keyspeciesnameslower' 0 18 'keyspeciesnamesupper' 0 19 +'keyspeciesupper' 0 20 'keyupper' 0 21 'maxabsorbernamelength' 0 22 +'maxkeyspeciesnamelength' 0 23 'maxkeyspeciesnames' 0 24 'parkind' 0 25 +'pforeign' 0 26 'plower' 0 27 'pressforeign' 0 28 'ps' 0 29 'pupper' 0 +30 'rb' 0 31 'reshape' 0 32 'rrsw_ncpar' 0 33 'status' 0 34 't' 0 35 +'tdiff' 0 36 'temp' 0 37 'tempdiffs' 0 38 'tempforeignlower' 0 39 +'tempforeignupper' 0 40 'tempself' 0 41 'tforeignlower' 0 42 +'tforeignupper' 0 43 'tself' 0 44) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_ref.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_ref.mod new file mode 100644 index 00000000..c4f1307c --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_ref.mod @@ -0,0 +1,43 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_ref.f90 +MD5:96710f2aba35d1336fdca1d293ac334a -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +3 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +4 'pref' 'rrsw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '59')) 0 () () () 0 0) +5 'preflog' 'rrsw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '59')) 0 () () () 0 0) +6 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +7 'rrsw_ref' 'rrsw_ref' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +8 'tref' 'rrsw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '59')) 0 () () () 0 0) +) + +('im' 0 2 'parkind' 0 3 'pref' 0 4 'preflog' 0 5 'rb' 0 6 'rrsw_ref' 0 7 +'tref' 0 8) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_tbl.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_tbl.mod new file mode 100644 index 00000000..b0f520c9 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_tbl.mod @@ -0,0 +1,53 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_tbl.f90 +MD5:ef1443a9704cd81794da39fd36b1f395 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'bpade' 'rrsw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'exp_tbl' 'rrsw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +4 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +5 'ntbl' 'rrsw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000') () 0 () () () 0 0) +6 'od_lo' 'rrsw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.f5c28f5c28f5c0@-1') () 0 () () () 0 0) +7 'pade' 'rrsw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT (REAL 8 0 0 0 +REAL ()) 0 '0.472b020c49ba60@0') () 0 () () () 0 0) +8 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +9 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +10 'rrsw_tbl' 'rrsw_tbl' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +11 'tau_tbl' 'rrsw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +12 'tblint' 'rrsw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.27100000000000@4') () 0 () () () 0 0) +) + +('bpade' 0 2 'exp_tbl' 0 3 'im' 0 4 'ntbl' 0 5 'od_lo' 0 6 'pade' 0 7 +'parkind' 0 8 'rb' 0 9 'rrsw_tbl' 0 10 'tau_tbl' 0 11 'tblint' 0 12) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_vsn.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_vsn.mod new file mode 100644 index 00000000..b8fb480f --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_vsn.mod @@ -0,0 +1,111 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_vsn.f90 +MD5:d7dc0f6d099a2ad8f90b3da4bf7892fd -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () () +() () ()) + +() + +() + +() + +() + +() + +(2 'hnamatm' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +3 'hnamclc' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +4 'hnamcld' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +5 'hnamext' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +6 'hnamini' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +7 'hnamkg' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +8 'hnamrft' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +9 'hnamrtm' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +10 'hnamset' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +11 'hnamspc' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +12 'hnamspv' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +13 'hnamtau' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +14 'hnamutl' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +15 'hnamvqd' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +16 'hvratm' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +17 'hvrclc' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +18 'hvrcld' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +19 'hvrext' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +20 'hvrini' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +21 'hvrkg' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +22 'hvrrft' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +23 'hvrrtm' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +24 'hvrset' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +25 'hvrspc' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +26 'hvrspv' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +27 'hvrtau' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +28 'hvrutl' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +29 'hvrvqd' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +30 'rrsw_vsn' 'rrsw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +) + +('hnamatm' 0 2 'hnamclc' 0 3 'hnamcld' 0 4 'hnamext' 0 5 'hnamini' 0 6 +'hnamkg' 0 7 'hnamrft' 0 8 'hnamrtm' 0 9 'hnamset' 0 10 'hnamspc' 0 11 +'hnamspv' 0 12 'hnamtau' 0 13 'hnamutl' 0 14 'hnamvqd' 0 15 'hvratm' 0 +16 'hvrclc' 0 17 'hvrcld' 0 18 'hvrext' 0 19 'hvrini' 0 20 'hvrkg' 0 21 +'hvrrft' 0 22 'hvrrtm' 0 23 'hvrset' 0 24 'hvrspc' 0 25 'hvrspv' 0 26 +'hvrtau' 0 27 'hvrutl' 0 28 'hvrvqd' 0 29 'rrsw_vsn' 0 30) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrsw_wvn.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_wvn.mod new file mode 100644 index 00000000..ca824157 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrsw_wvn.mod @@ -0,0 +1,102 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/modules/rrsw_wvn.f90 +MD5:276f94afd6d3f98daac13c1f16ecb0be -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'delwave' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +3 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +4 'jpb1' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +5 'jpb2' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29') () 0 () () () 0 0) +6 'mg' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +7 'nbndsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14') () 0 () () () 0 0) +8 'ng' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +9 'ngb' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '112')) 0 () () () 0 0) +10 'ngc' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +11 'ngm' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '224')) 0 () () () 0 0) +12 'ngn' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '112')) 0 () () () 0 0) +13 'ngptsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '112') () 0 () () () 0 0) +14 'ngs' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +15 'nspa' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +16 'nspb' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +17 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +18 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +19 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +20 'rrsw_wvn' 'rrsw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +21 'rwgt' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '224')) 0 () () () 0 0) +22 'wavenum1' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +23 'wavenum2' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +24 'wt' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +) + +('delwave' 0 2 'im' 0 3 'jpb1' 0 4 'jpb2' 0 5 'mg' 0 6 'nbndsw' 0 7 'ng' +0 8 'ngb' 0 9 'ngc' 0 10 'ngm' 0 11 'ngn' 0 12 'ngptsw' 0 13 'ngs' 0 14 +'nspa' 0 15 'nspb' 0 16 'parkind' 0 17 'parrrsw' 0 18 'rb' 0 19 'rrsw_wvn' +0 20 'rwgt' 0 21 'wavenum1' 0 22 'wavenum2' 0 23 'wt' 0 24) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_cldprmc.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_cldprmc.mod new file mode 100644 index 00000000..d45cecd6 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_cldprmc.mod @@ -0,0 +1,126 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/src/rrtmg_lw_cldprmc.f90 +MD5:a47fb4c77f77300721e37c391ac31ee7 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'abscld1' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'absice0' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +4 'absice1' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +5 'absice2' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '43') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +6 'absice3' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +7 'absliq0' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +8 'absliq1' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '58') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +9 'cldprmc' 'rrtmg_lw_cldprmc' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 10 0 (11 12 13 14 15 16 17 18 19 20 21) () 0 () () () 0 0) +22 'hnamclc' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +23 'hvrclc' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +24 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +25 'nbndlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +26 'ngb' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '140')) 0 () () () 0 0) +27 'ngptlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '140') () 0 () () () 0 0) +28 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +29 'parrrtm' 'parrrtm' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +30 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +31 'rrlw_cld' 'rrlw_cld' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +32 'rrlw_vsn' 'rrlw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +33 'rrlw_wvn' 'rrlw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +34 'rrtmg_lw_cldprmc' 'rrtmg_lw_cldprmc' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +11 'nlayers' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +12 'inflag' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +13 'iceflag' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +14 'liqflag' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +15 'cldfmc' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +16 'ciwpmc' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +17 'clwpmc' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +18 'reicmc' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +19 'relqmc' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +20 'ncbands' '' '' 10 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +21 'taucmc' '' '' 10 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('abscld1' 0 2 'absice0' 0 3 'absice1' 0 4 'absice2' 0 5 'absice3' 0 6 +'absliq0' 0 7 'absliq1' 0 8 'cldprmc' 0 9 'hnamclc' 0 22 'hvrclc' 0 23 +'im' 0 24 'nbndlw' 0 25 'ngb' 0 26 'ngptlw' 0 27 'parkind' 0 28 'parrrtm' +0 29 'rb' 0 30 'rrlw_cld' 0 31 'rrlw_vsn' 0 32 'rrlw_wvn' 0 33 +'rrtmg_lw_cldprmc' 0 34) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_cldprop.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_cldprop.mod new file mode 100644 index 00000000..4b0b1c28 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_cldprop.mod @@ -0,0 +1,117 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/src/rrtmg_lw_cldprop.f90 +MD5:08a0e0cb4b915f36df4339e73293ee61 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'abscld1' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'absice0' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2')) 0 () () () 0 0) +4 'absice1' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '2') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +5 'absice2' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '43') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +6 'absice3' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +7 'absliq0' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +8 'absliq1' 'rrlw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '58') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +9 'cldprop' 'rrtmg_lw_cldprop' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 10 0 (11 12 13 14 15 16 17 18 19 20 21 22) () 0 () () () 0 +0) +23 'hnamcld' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +24 'hvrcld' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +25 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +26 'nbndlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +27 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +28 'parrrtm' 'parrrtm' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +29 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +30 'rrlw_cld' 'rrlw_cld' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +31 'rrlw_vsn' 'rrlw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +32 'rrtmg_lw_cldprop' 'rrtmg_lw_cldprop' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +11 'nlayers' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +12 'inflag' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +13 'iceflag' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +14 'liqflag' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +15 'cldfrac' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +16 'tauc' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +17 'ciwp' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +18 'clwp' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +19 'rei' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +20 'rel' '' '' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +21 'ncbands' '' '' 10 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +22 'taucloud' '' '' 10 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('abscld1' 0 2 'absice0' 0 3 'absice1' 0 4 'absice2' 0 5 'absice3' 0 6 +'absliq0' 0 7 'absliq1' 0 8 'cldprop' 0 9 'hnamcld' 0 23 'hvrcld' 0 24 +'im' 0 25 'nbndlw' 0 26 'parkind' 0 27 'parrrtm' 0 28 'rb' 0 29 'rrlw_cld' +0 30 'rrlw_vsn' 0 31 'rrtmg_lw_cldprop' 0 32) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_init.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_init.mod new file mode 100644 index 00000000..d73e5047 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_init.mod @@ -0,0 +1,213 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/src/rrtmg_lw_init.f90 +MD5:86ecfd94c37867ae8a5e2d9b7345c4fd -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'cmbgb1' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +3 'cmbgb10' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +4 'cmbgb11' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +5 'cmbgb12' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +6 'cmbgb13' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +7 'cmbgb14' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +8 'cmbgb15' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +9 'cmbgb16' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +10 'cmbgb2' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +11 'cmbgb3' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +12 'cmbgb4' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +13 'cmbgb5' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +14 'cmbgb6' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +15 'cmbgb7' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +16 'cmbgb8' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +17 'cmbgb9' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +18 'delwave' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +19 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +20 'ixindx' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () +(1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '38')) 0 () () () 0 0) +21 'lwatmref' 'rrtmg_lw_setcoef' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 +0 () () 0 () () () 0 0) +22 'lwavplank' 'rrtmg_lw_setcoef' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 +0 () () 0 () () () 0 0) +23 'lwavplankderiv' 'rrtmg_lw_setcoef' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 +0 () () 0 () () () 0 0) +24 'lwcldpr' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +25 'lwcmbdat' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 +0 () () 0 () () () 0 0) +26 'lwdatinit' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 27 +0 (28) () 0 () () () 0 0) +29 'maxinpx' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '38') () 0 () () () 0 0) +30 'mg' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +31 'nbndlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +32 'ng' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +33 'ngb' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '140')) 0 () () () 0 0) +34 'ngc' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +35 'ngm' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '256')) 0 () () () 0 0) +36 'ngn' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '140')) 0 () () () 0 0) +37 'ngptlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '140') () 0 () () () 0 0) +38 'ngs' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +39 'nspa' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +40 'nspb' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +41 'nxmol' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () +() 0 0) +42 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +43 'parrrtm' 'parrrtm' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +44 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +45 'rrlw_wvn' 'rrlw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +46 'rrtmg_lw_ini' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 47 +0 (48) () 0 () () () 0 0) +49 'rrtmg_lw_init' 'rrtmg_lw_init' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +50 'rrtmg_lw_setcoef' 'rrtmg_lw_setcoef' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +51 'rwgt' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '256')) 0 () () () 0 0) +52 'totplk16' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '181')) 0 () () () 0 0) +53 'totplk16deriv' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) +0 0 () (1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '181')) 0 () () () 0 0) +54 'totplnk' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '181') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 +0) +55 'totplnkderiv' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '181') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 +0) +56 'wavenum1' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +57 'wavenum2' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +58 'wt' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +28 'cpdair' '' '' 27 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +48 'cpdair' '' '' 47 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +) + +('cmbgb1' 0 2 'cmbgb10' 0 3 'cmbgb11' 0 4 'cmbgb12' 0 5 'cmbgb13' 0 6 +'cmbgb14' 0 7 'cmbgb15' 0 8 'cmbgb16' 0 9 'cmbgb2' 0 10 'cmbgb3' 0 11 +'cmbgb4' 0 12 'cmbgb5' 0 13 'cmbgb6' 0 14 'cmbgb7' 0 15 'cmbgb8' 0 16 +'cmbgb9' 0 17 'delwave' 0 18 'im' 0 19 'ixindx' 0 20 'lwatmref' 0 21 +'lwavplank' 0 22 'lwavplankderiv' 0 23 'lwcldpr' 0 24 'lwcmbdat' 0 25 +'lwdatinit' 0 26 'maxinpx' 0 29 'mg' 0 30 'nbndlw' 0 31 'ng' 0 32 'ngb' +0 33 'ngc' 0 34 'ngm' 0 35 'ngn' 0 36 'ngptlw' 0 37 'ngs' 0 38 'nspa' 0 +39 'nspb' 0 40 'nxmol' 0 41 'parkind' 0 42 'parrrtm' 0 43 'rb' 0 44 +'rrlw_wvn' 0 45 'rrtmg_lw_ini' 0 46 'rrtmg_lw_init' 0 49 +'rrtmg_lw_setcoef' 0 50 'rwgt' 0 51 'totplk16' 0 52 'totplk16deriv' 0 53 +'totplnk' 0 54 'totplnkderiv' 0 55 'wavenum1' 0 56 'wavenum2' 0 57 'wt' +0 58) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_rad.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_rad.mod new file mode 100644 index 00000000..b03199b9 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_rad.mod @@ -0,0 +1,971 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/src/rrtmg_lw_rad.nomcica.f90 +MD5:b2750b5a85eae2e49de179529ade5fc3 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'cldprop' 'rrtmg_lw_cldprop' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 3 0 (4 5 6 7 8 9 10 11 12 13 14 15) () 0 () () () 0 0) +16 'hnamatm' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +17 'hnamclc' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +18 'hnamcld' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +19 'hnamext' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +20 'hnamini' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +21 'hnamkg' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +22 'hnamrtc' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +23 'hnamrtm' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +24 'hnamrtr' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +25 'hnamrtx' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +26 'hnamset' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +27 'hnamtau' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +28 'hnamutl' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +29 'hvratm' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +30 'hvrclc' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +31 'hvrcld' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +32 'hvrext' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +33 'hvrini' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +34 'hvrkg' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +35 'hvrrtc' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +36 'hvrrtm' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +37 'hvrrtr' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +38 'hvrrtx' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +39 'hvrset' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +40 'hvrtau' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +41 'hvrutl' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +42 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +43 'inatm' 'rrtmg_lw_rad' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE IMPLICIT_PURE ALWAYS_EXPLICIT) (UNKNOWN 0 0 +0 0 UNKNOWN ()) 44 0 (45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 +62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 +86 87 88 89 90 91 92 93 94 95 96) () 0 () () () 0 0) +97 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +98 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +99 'rrlw_vsn' 'rrlw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +100 'rrtmg_lw' 'rrtmg_lw_rad' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 101 0 (102 103 104 105 106 107 108 109 110 111 112 113 114 +115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 +133 134 135 136 137 138 139) () 0 () () () 0 0) +140 'rrtmg_lw_cldprop' 'rrtmg_lw_cldprop' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +141 'rrtmg_lw_rad' 'rrtmg_lw_rad' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +142 'rrtmg_lw_rtrn' 'rrtmg_lw_rtrn' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +143 'rrtmg_lw_rtrnmr' 'rrtmg_lw_rtrnmr' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +144 'rrtmg_lw_setcoef' 'rrtmg_lw_setcoef' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +145 'rrtmg_lw_taumol' 'rrtmg_lw_taumol' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +146 'rtrn' 'rrtmg_lw_rtrn' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 0 UNKNOWN ()) +147 0 (148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 +164 165 166 167 168 169 170 171 172 173 174) () 0 () () () 0 0) +175 'rtrnmr' 'rrtmg_lw_rtrnmr' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 176 0 (177 178 179 180 181 182 183 184 185 186 187 188 189 +190 191 192 193 194 195 196 197 198 199 200 201 202 203) () 0 () () () 0 +0) +204 'setcoef' 'rrtmg_lw_setcoef' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 205 0 (206 207 208 209 210 211 212 213 214 215 216 217 218 +219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 +237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 +255 256 257 258) () 0 () () () 0 0) +259 'taumol' 'rrtmg_lw_taumol' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 260 0 (261 262 263 264 265 266 267 268 269 270 271 272 273 +274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 +292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307) () 0 () +() () 0 0) +4 'nlayers' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +5 'inflag' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +6 'iceflag' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +7 'liqflag' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +8 'cldfrac' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +9 'tauc' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +10 'ciwp' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +11 'clwp' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +12 'rei' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +13 'rel' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +14 'ncbands' '' '' 3 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +15 'taucloud' '' '' 3 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +45 'iplon' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +46 'nlay' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +47 'icld' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +48 'iaer' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +49 'play' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +50 'plev' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +51 'tlay' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +52 'tlev' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +53 'tsfc' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +54 'h2ovmr' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +55 'o3vmr' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +56 'co2vmr' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +57 'ch4vmr' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +58 'n2ovmr' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +59 'o2vmr' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +60 'cfc11vmr' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +61 'cfc12vmr' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +62 'cfc22vmr' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +63 'ccl4vmr' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +64 'emis' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +65 'inflglw' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +66 'iceflglw' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +67 'liqflglw' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +68 'cldfr' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +69 'taucld' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +70 'cicewp' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +71 'cliqwp' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +72 'reice' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +73 'reliq' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +74 'tauaer' '' '' 44 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +75 'nlayers' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +76 'pavel' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +77 'pz' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +78 'tavel' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +79 'tz' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +80 'tbound' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +81 'semiss' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +82 'coldry' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +83 'wkl' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +84 'wbrodl' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +85 'wx' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +86 'pwvcm' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +87 'inflag' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +88 'iceflag' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +89 'liqflag' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +90 'cldfrac' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +91 'tauc' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +92 'ciwp' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +93 'clwp' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +94 'rei' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +95 'rel' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +96 'taua' '' '' 44 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +102 'ncol' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +103 'nlay' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +104 'icld' '' '' 101 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +105 'idrv' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +106 'play' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +107 'plev' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +108 'tlay' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +109 'tlev' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +110 'tsfc' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +111 'h2ovmr' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +112 'o3vmr' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +113 'co2vmr' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +114 'ch4vmr' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +115 'n2ovmr' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +116 'o2vmr' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +117 'cfc11vmr' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +118 'cfc12vmr' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +119 'cfc22vmr' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +120 'ccl4vmr' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +121 'emis' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +122 'inflglw' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +123 'iceflglw' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +124 'liqflglw' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +125 'cldfr' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +126 'taucld' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +127 'cicewp' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +128 'cliqwp' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +129 'reice' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +130 'reliq' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +131 'tauaer' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +132 'uflx' '' '' 101 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +133 'dflx' '' '' 101 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +134 'hr' '' '' 101 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +135 'uflxc' '' '' 101 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +136 'dflxc' '' '' 101 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +137 'hrc' '' '' 101 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +138 'duflx_dt' '' '' 101 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION OPTIONAL DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +139 'duflxc_dt' '' '' 101 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION OPTIONAL DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +148 'nlayers' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +149 'istart' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +150 'iend' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +151 'iout' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +152 'pz' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +153 'semiss' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +154 'ncbands' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +155 'cldfrac' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +156 'taucloud' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +157 'planklay' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +158 'planklev' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +159 'plankbnd' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +160 'pwvcm' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +161 'fracs' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +162 'taut' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +163 'totuflux' '' '' 147 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +164 'totdflux' '' '' 147 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +165 'fnet' '' '' 147 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +166 'htr' '' '' 147 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +167 'totuclfl' '' '' 147 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +168 'totdclfl' '' '' 147 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +169 'fnetc' '' '' 147 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +170 'htrc' '' '' 147 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +171 'idrv' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +172 'dplankbnd_dt' '' '' 147 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +173 'dtotuflux_dt' '' '' 147 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +174 'dtotuclfl_dt' '' '' 147 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +177 'nlayers' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +178 'istart' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +179 'iend' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +180 'iout' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +181 'pz' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +182 'semiss' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +183 'ncbands' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +184 'cldfrac' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +185 'taucloud' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +186 'planklay' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +187 'planklev' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +188 'plankbnd' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +189 'pwvcm' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +190 'fracs' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +191 'taut' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +192 'totuflux' '' '' 176 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +193 'totdflux' '' '' 176 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +194 'fnet' '' '' 176 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +195 'htr' '' '' 176 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +196 'totuclfl' '' '' 176 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +197 'totdclfl' '' '' 176 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +198 'fnetc' '' '' 176 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +199 'htrc' '' '' 176 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +200 'idrv' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +201 'dplankbnd_dt' '' '' 176 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +202 'dtotuflux_dt' '' '' 176 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +203 'dtotuclfl_dt' '' '' 176 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +206 'nlayers' '' '' 205 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +207 'istart' '' '' 205 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +208 'pavel' '' '' 205 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +209 'tavel' '' '' 205 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +210 'tz' '' '' 205 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +211 'tbound' '' '' 205 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +212 'semiss' '' '' 205 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +213 'coldry' '' '' 205 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +214 'wkl' '' '' 205 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +215 'wbroad' '' '' 205 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +216 'laytrop' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +217 'jp' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +218 'jt' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +219 'jt1' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +220 'planklay' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +221 'planklev' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +222 'plankbnd' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +223 'idrv' '' '' 205 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +224 'dplankbnd_dt' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +225 'colh2o' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +226 'colco2' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +227 'colo3' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +228 'coln2o' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +229 'colco' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +230 'colch4' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +231 'colo2' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +232 'colbrd' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +233 'fac00' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +234 'fac01' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +235 'fac10' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +236 'fac11' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +237 'rat_h2oco2' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +238 'rat_h2oco2_1' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +239 'rat_h2oo3' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +240 'rat_h2oo3_1' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +241 'rat_h2on2o' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +242 'rat_h2on2o_1' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +243 'rat_h2och4' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +244 'rat_h2och4_1' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +245 'rat_n2oco2' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +246 'rat_n2oco2_1' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +247 'rat_o3co2' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +248 'rat_o3co2_1' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +249 'selffac' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +250 'selffrac' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +251 'indself' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +252 'forfac' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +253 'forfrac' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +254 'indfor' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +255 'minorfrac' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +256 'scaleminor' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +257 'scaleminorn2' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +258 'indminor' '' '' 205 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +261 'nlayers' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +262 'pavel' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +263 'wx' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +264 'coldry' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +265 'laytrop' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +266 'jp' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +267 'jt' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +268 'jt1' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +269 'planklay' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +270 'planklev' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +271 'plankbnd' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +272 'colh2o' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +273 'colco2' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +274 'colo3' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +275 'coln2o' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +276 'colco' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +277 'colch4' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +278 'colo2' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +279 'colbrd' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +280 'fac00' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +281 'fac01' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +282 'fac10' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +283 'fac11' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +284 'rat_h2oco2' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +285 'rat_h2oco2_1' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +286 'rat_h2oo3' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +287 'rat_h2oo3_1' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +288 'rat_h2on2o' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +289 'rat_h2on2o_1' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +290 'rat_h2och4' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +291 'rat_h2och4_1' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +292 'rat_n2oco2' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +293 'rat_n2oco2_1' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +294 'rat_o3co2' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +295 'rat_o3co2_1' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +296 'selffac' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +297 'selffrac' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +298 'indself' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +299 'forfac' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +300 'forfrac' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +301 'indfor' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +302 'minorfrac' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +303 'scaleminor' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +304 'scaleminorn2' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN +0 0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +305 'indminor' '' '' 260 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +306 'fracs' '' '' 260 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +307 'taug' '' '' 260 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('cldprop' 0 2 'hnamatm' 0 16 'hnamclc' 0 17 'hnamcld' 0 18 'hnamext' 0 +19 'hnamini' 0 20 'hnamkg' 0 21 'hnamrtc' 0 22 'hnamrtm' 0 23 'hnamrtr' +0 24 'hnamrtx' 0 25 'hnamset' 0 26 'hnamtau' 0 27 'hnamutl' 0 28 'hvratm' +0 29 'hvrclc' 0 30 'hvrcld' 0 31 'hvrext' 0 32 'hvrini' 0 33 'hvrkg' 0 +34 'hvrrtc' 0 35 'hvrrtm' 0 36 'hvrrtr' 0 37 'hvrrtx' 0 38 'hvrset' 0 39 +'hvrtau' 0 40 'hvrutl' 0 41 'im' 0 42 'inatm' 0 43 'parkind' 0 97 'rb' 0 +98 'rrlw_vsn' 0 99 'rrtmg_lw' 0 100 'rrtmg_lw_cldprop' 0 140 +'rrtmg_lw_rad' 0 141 'rrtmg_lw_rtrn' 0 142 'rrtmg_lw_rtrnmr' 0 143 +'rrtmg_lw_setcoef' 0 144 'rrtmg_lw_taumol' 0 145 'rtrn' 0 146 'rtrnmr' 0 +175 'setcoef' 0 204 'taumol' 0 259) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_rtrn.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_rtrn.mod new file mode 100644 index 00000000..c8134e41 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_rtrn.mod @@ -0,0 +1,178 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/src/rrtmg_lw_rtrn.f90 +MD5:dbef6e972051b1253caa0f11eab0da63 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'bpade' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'delwave' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +4 'exp_tbl' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +5 'fluxfac' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +6 'heatfac' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +7 'hnamrtr' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +8 'hvrrtr' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +9 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +10 'mg' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +11 'nbndlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +12 'ngptlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '140') () 0 () () () 0 0) +13 'ngs' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +14 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +15 'parrrtm' 'parrrtm' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +16 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'rrlw_con' 'rrlw_con' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +18 'rrlw_tbl' 'rrlw_tbl' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +19 'rrlw_vsn' 'rrlw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +20 'rrlw_wvn' 'rrlw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +21 'rrtmg_lw_rtrn' 'rrtmg_lw_rtrn' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +22 'rtrn' 'rrtmg_lw_rtrn' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 0 UNKNOWN ()) +23 0 (24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 +46 47 48 49 50) () 0 () () () 0 0) +51 'tau_tbl' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +52 'tblint' 'rrlw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.27100000000000@4') () 0 () () () 0 0) +53 'tfn_tbl' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +24 'nlayers' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +25 'istart' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +26 'iend' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +27 'iout' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +28 'pz' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +29 'semiss' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +30 'ncbands' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +31 'cldfrac' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +32 'taucloud' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +33 'planklay' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +34 'planklev' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +35 'plankbnd' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +36 'pwvcm' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +37 'fracs' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +38 'taut' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +39 'totuflux' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +40 'totdflux' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +41 'fnet' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +42 'htr' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +43 'totuclfl' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +44 'totdclfl' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +45 'fnetc' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +46 'htrc' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +47 'idrv' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +48 'dplankbnd_dt' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +49 'dtotuflux_dt' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +50 'dtotuclfl_dt' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +) + +('bpade' 0 2 'delwave' 0 3 'exp_tbl' 0 4 'fluxfac' 0 5 'heatfac' 0 6 +'hnamrtr' 0 7 'hvrrtr' 0 8 'im' 0 9 'mg' 0 10 'nbndlw' 0 11 'ngptlw' 0 +12 'ngs' 0 13 'parkind' 0 14 'parrrtm' 0 15 'rb' 0 16 'rrlw_con' 0 17 +'rrlw_tbl' 0 18 'rrlw_vsn' 0 19 'rrlw_wvn' 0 20 'rrtmg_lw_rtrn' 0 21 +'rtrn' 0 22 'tau_tbl' 0 51 'tblint' 0 52 'tfn_tbl' 0 53) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_rtrnmc.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_rtrnmc.mod new file mode 100644 index 00000000..b73a25b8 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_rtrnmc.mod @@ -0,0 +1,184 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/src/rrtmg_lw_rtrnmc.f90 +MD5:0e2b9c9c4bfa40f3f4ca0f714f7ffff3 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'bpade' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'delwave' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +4 'exp_tbl' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +5 'fluxfac' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +6 'heatfac' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +7 'hnamrtc' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +8 'hvrrtc' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +9 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +10 'mg' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +11 'nbndlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +12 'ngb' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '140')) 0 () () () 0 0) +13 'ngptlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '140') () 0 () () () 0 0) +14 'ngs' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +15 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +16 'parrrtm' 'parrrtm' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +17 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +18 'rrlw_con' 'rrlw_con' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +19 'rrlw_tbl' 'rrlw_tbl' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +20 'rrlw_vsn' 'rrlw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +21 'rrlw_wvn' 'rrlw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +22 'rrtmg_lw_rtrnmc' 'rrtmg_lw_rtrnmc' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +23 'rtrnmc' 'rrtmg_lw_rtrnmc' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 24 0 (25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 +42 43 44 45 46 47 48 49 50 51) () 0 () () () 0 0) +52 'tau_tbl' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +53 'tblint' 'rrlw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.27100000000000@4') () 0 () () () 0 0) +54 'tfn_tbl' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +25 'nlayers' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +26 'istart' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +27 'iend' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +28 'iout' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +29 'pz' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +30 'semiss' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +31 'ncbands' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +32 'cldfmc' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +33 'taucmc' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +34 'planklay' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +35 'planklev' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +36 'plankbnd' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +37 'pwvcm' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +38 'fracs' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +39 'taut' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +40 'totuflux' '' '' 24 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +41 'totdflux' '' '' 24 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +42 'fnet' '' '' 24 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +43 'htr' '' '' 24 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +44 'totuclfl' '' '' 24 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +45 'totdclfl' '' '' 24 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +46 'fnetc' '' '' 24 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +47 'htrc' '' '' 24 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +48 'idrv' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +49 'dplankbnd_dt' '' '' 24 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +50 'dtotuflux_dt' '' '' 24 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +51 'dtotuclfl_dt' '' '' 24 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +) + +('bpade' 0 2 'delwave' 0 3 'exp_tbl' 0 4 'fluxfac' 0 5 'heatfac' 0 6 +'hnamrtc' 0 7 'hvrrtc' 0 8 'im' 0 9 'mg' 0 10 'nbndlw' 0 11 'ngb' 0 12 +'ngptlw' 0 13 'ngs' 0 14 'parkind' 0 15 'parrrtm' 0 16 'rb' 0 17 +'rrlw_con' 0 18 'rrlw_tbl' 0 19 'rrlw_vsn' 0 20 'rrlw_wvn' 0 21 +'rrtmg_lw_rtrnmc' 0 22 'rtrnmc' 0 23 'tau_tbl' 0 52 'tblint' 0 53 +'tfn_tbl' 0 54) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_rtrnmr.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_rtrnmr.mod new file mode 100644 index 00000000..c8f25ce2 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_rtrnmr.mod @@ -0,0 +1,178 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/src/rrtmg_lw_rtrnmr.f90 +MD5:57cd89585cdfb8f38622efb29155142b -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'bpade' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'delwave' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +4 'exp_tbl' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +5 'fluxfac' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +6 'heatfac' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +7 'hnamrtx' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +8 'hvrrtx' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +9 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +10 'mg' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +11 'nbndlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +12 'ngptlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '140') () 0 () () () 0 0) +13 'ngs' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +14 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +15 'parrrtm' 'parrrtm' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +16 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'rrlw_con' 'rrlw_con' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +18 'rrlw_tbl' 'rrlw_tbl' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +19 'rrlw_vsn' 'rrlw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +20 'rrlw_wvn' 'rrlw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +21 'rrtmg_lw_rtrnmr' 'rrtmg_lw_rtrnmr' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +22 'rtrnmr' 'rrtmg_lw_rtrnmr' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 23 0 (24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 +41 42 43 44 45 46 47 48 49 50) () 0 () () () 0 0) +51 'tau_tbl' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +52 'tblint' 'rrlw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.27100000000000@4') () 0 () () () 0 0) +53 'tfn_tbl' 'rrlw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +24 'nlayers' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +25 'istart' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +26 'iend' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +27 'iout' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +28 'pz' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +29 'semiss' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +30 'ncbands' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +31 'cldfrac' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +32 'taucloud' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +33 'planklay' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +34 'planklev' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +35 'plankbnd' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +36 'pwvcm' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +37 'fracs' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +38 'taut' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +39 'totuflux' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +40 'totdflux' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +41 'fnet' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +42 'htr' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +43 'totuclfl' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +44 'totdclfl' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +45 'fnetc' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +46 'htrc' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +47 'idrv' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +48 'dplankbnd_dt' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +49 'dtotuflux_dt' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +50 'dtotuclfl_dt' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +) + +('bpade' 0 2 'delwave' 0 3 'exp_tbl' 0 4 'fluxfac' 0 5 'heatfac' 0 6 +'hnamrtx' 0 7 'hvrrtx' 0 8 'im' 0 9 'mg' 0 10 'nbndlw' 0 11 'ngptlw' 0 +12 'ngs' 0 13 'parkind' 0 14 'parrrtm' 0 15 'rb' 0 16 'rrlw_con' 0 17 +'rrlw_tbl' 0 18 'rrlw_vsn' 0 19 'rrlw_wvn' 0 20 'rrtmg_lw_rtrnmr' 0 21 +'rtrnmr' 0 22 'tau_tbl' 0 51 'tblint' 0 52 'tfn_tbl' 0 53) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_setcoef.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_setcoef.mod new file mode 100644 index 00000000..92bae701 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_setcoef.mod @@ -0,0 +1,272 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/src/rrtmg_lw_setcoef.f90 +MD5:d8dca370ead2dbd980030960e9d462dc -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'chi_mls' 'rrlw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '7') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '59')) 0 () () () 0 0) +3 'hnamset' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +4 'hvrset' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +5 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +6 'lwatmref' 'rrtmg_lw_setcoef' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 +0 () () 0 () () () 0 0) +7 'lwavplank' 'rrtmg_lw_setcoef' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 +0 () () 0 () () () 0 0) +8 'lwavplankderiv' 'rrtmg_lw_setcoef' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 +0 () () 0 () () () 0 0) +9 'maxxsec' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +10 'mg' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +11 'mxmol' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '38') () 0 () () () 0 0) +12 'nbndlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +13 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +14 'parrrtm' 'parrrtm' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +15 'pref' 'rrlw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '59')) 0 () () () 0 0) +16 'preflog' 'rrlw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '59')) 0 () () () 0 0) +17 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +18 'rrlw_ref' 'rrlw_ref' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +19 'rrlw_vsn' 'rrlw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +20 'rrlw_wvn' 'rrlw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +21 'rrtmg_lw_setcoef' 'rrtmg_lw_setcoef' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +22 'setcoef' 'rrtmg_lw_setcoef' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 23 0 (24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 +41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 +65 66 67 68 69 70 71 72 73 74 75 76) () 0 () () () 0 0) +77 'totplk16' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '181')) 0 () () () 0 0) +78 'totplk16deriv' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) +0 0 () (1 0 EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '181')) 0 () () () 0 0) +79 'totplnk' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '181') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 +0) +80 'totplnkderiv' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '181') (CONSTANT (INTEGER 4 0 0 0 INTEGER +()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 +0) +81 'tref' 'rrlw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '59')) 0 () () () 0 0) +24 'nlayers' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +25 'istart' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +26 'pavel' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +27 'tavel' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +28 'tz' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +29 'tbound' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +30 'semiss' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +31 'coldry' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +32 'wkl' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +33 'wbroad' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +34 'laytrop' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +35 'jp' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +36 'jt' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +37 'jt1' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +38 'planklay' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +39 'planklev' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +40 'plankbnd' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +41 'idrv' '' '' 23 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +42 'dplankbnd_dt' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +43 'colh2o' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +44 'colco2' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +45 'colo3' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +46 'coln2o' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +47 'colco' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +48 'colch4' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +49 'colo2' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +50 'colbrd' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +51 'fac00' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +52 'fac01' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +53 'fac10' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +54 'fac11' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +55 'rat_h2oco2' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +56 'rat_h2oco2_1' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +57 'rat_h2oo3' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +58 'rat_h2oo3_1' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +59 'rat_h2on2o' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +60 'rat_h2on2o_1' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +61 'rat_h2och4' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +62 'rat_h2och4_1' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +63 'rat_n2oco2' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +64 'rat_n2oco2_1' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +65 'rat_o3co2' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +66 'rat_o3co2_1' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +67 'selffac' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +68 'selffrac' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +69 'indself' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +70 'forfac' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +71 'forfrac' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +72 'indfor' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +73 'minorfrac' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +74 'scaleminor' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +75 'scaleminorn2' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +76 'indminor' '' '' 23 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('chi_mls' 0 2 'hnamset' 0 3 'hvrset' 0 4 'im' 0 5 'lwatmref' 0 6 +'lwavplank' 0 7 'lwavplankderiv' 0 8 'maxxsec' 0 9 'mg' 0 10 'mxmol' 0 +11 'nbndlw' 0 12 'parkind' 0 13 'parrrtm' 0 14 'pref' 0 15 'preflog' 0 +16 'rb' 0 17 'rrlw_ref' 0 18 'rrlw_vsn' 0 19 'rrlw_wvn' 0 20 +'rrtmg_lw_setcoef' 0 21 'setcoef' 0 22 'totplk16' 0 77 'totplk16deriv' 0 +78 'totplnk' 0 79 'totplnkderiv' 0 80 'tref' 0 81) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_taumol.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_taumol.mod new file mode 100644 index 00000000..a4bb1dc5 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_taumol.mod @@ -0,0 +1,222 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/lw/src/rrtmg_lw_taumol.f90 +MD5:7ba75eaeac57fd0689ae85b2cc89bf1a -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'hnamtau' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +3 'hvrtau' 'rrlw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +4 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +5 'maxxsec' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +6 'mg' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +7 'nbndlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +8 'ngptlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '140') () 0 () () () 0 0) +9 'nspa' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +10 'nspb' 'rrlw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +11 'oneminus' 'rrlw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +12 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +13 'parrrtm' 'parrrtm' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +14 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +15 'rrlw_con' 'rrlw_con' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +16 'rrlw_vsn' 'rrlw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +17 'rrlw_wvn' 'rrlw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +18 'rrtmg_lw_taumol' 'rrtmg_lw_taumol' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +19 'taumol' 'rrtmg_lw_taumol' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 20 0 (21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 +38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 +62 63 64 65 66 67) () 0 () () () 0 0) +21 'nlayers' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +22 'pavel' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +23 'wx' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +24 'coldry' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +25 'laytrop' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +26 'jp' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +27 'jt' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +28 'jt1' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +29 'planklay' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +30 'planklev' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +31 'plankbnd' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +32 'colh2o' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +33 'colco2' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +34 'colo3' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +35 'coln2o' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +36 'colco' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +37 'colch4' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +38 'colo2' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +39 'colbrd' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +40 'fac00' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +41 'fac01' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +42 'fac10' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +43 'fac11' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +44 'rat_h2oco2' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +45 'rat_h2oco2_1' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +46 'rat_h2oo3' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +47 'rat_h2oo3_1' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +48 'rat_h2on2o' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +49 'rat_h2on2o_1' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +50 'rat_h2och4' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +51 'rat_h2och4_1' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +52 'rat_n2oco2' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +53 'rat_n2oco2_1' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +54 'rat_o3co2' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +55 'rat_o3co2_1' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +56 'selffac' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +57 'selffrac' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +58 'indself' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +59 'forfac' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +60 'forfrac' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +61 'indfor' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +62 'minorfrac' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +63 'scaleminor' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +64 'scaleminorn2' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 +0 DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +65 'indminor' '' '' 20 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +66 'fracs' '' '' 20 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +67 'taug' '' '' 20 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('hnamtau' 0 2 'hvrtau' 0 3 'im' 0 4 'maxxsec' 0 5 'mg' 0 6 'nbndlw' 0 7 +'ngptlw' 0 8 'nspa' 0 9 'nspb' 0 10 'oneminus' 0 11 'parkind' 0 12 +'parrrtm' 0 13 'rb' 0 14 'rrlw_con' 0 15 'rrlw_vsn' 0 16 'rrlw_wvn' 0 17 +'rrtmg_lw_taumol' 0 18 'taumol' 0 19) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_wrapper.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_wrapper.mod new file mode 100644 index 00000000..e88f7ff3 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_lw_wrapper.mod @@ -0,0 +1,382 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/rrtmg_build/rrtmg_lw_wrapper.f90 +MD5:0ceb6e30587153bd1cf2a0c80daf2d38 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 '__iso_c_binding' '__iso_c_binding' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 INTRINSIC) (UNKNOWN 0 0 0 0 UNKNOWN ()) +0 0 () () 0 () () () 2 0) +3 'c_double' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1 +REAL ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 () () +() 2 25) +4 'c_int' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1 INTEGER ()) +0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '4') () 0 () () () 2 0) +5 'c_rrtmg_lw' 'rrtmg_lw_wrapper' 'c_rrtmg_lw' 1 ((PROCEDURE +UNKNOWN-INTENT MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT +IS_BIND_C IS_C_INTEROP) (UNKNOWN 0 0 1 0 UNKNOWN ()) 6 0 (7 8 9 10 11 12 +13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 +37 38 39 40 41 42 43 44) () 0 () () () 0 0) +45 'c_rrtmg_lw_init' 'rrtmg_lw_wrapper' 'c_rrtmg_lw_init' 1 ((PROCEDURE +UNKNOWN-INTENT MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE IS_BIND_C +IS_C_INTEROP) (UNKNOWN 0 0 1 0 UNKNOWN ()) 46 0 (47) () 0 () () () 0 0) +48 'nbndlw' 'parrrtm' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +49 'parrrtm' 'parrrtm' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +50 'rrtmg_lw' 'rrtmg_lw_rad' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 0 UNKNOWN ()) +51 0 (52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 +74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89) () 0 () () () 0 0) +90 'rrtmg_lw_ini' 'rrtmg_lw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 91 +0 (92) () 0 () () () 0 0) +93 'rrtmg_lw_init' 'rrtmg_lw_init' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +94 'rrtmg_lw_rad' 'rrtmg_lw_rad' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +95 'rrtmg_lw_wrapper' 'rrtmg_lw_wrapper' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +7 'ncol' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +8 'nlay' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +9 'icld' '' '' 6 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +10 'idrv' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +11 'play' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +12 'plev' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP (INTEGER 4 0 1 +0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +13 'tlay' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +14 'tlev' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP (INTEGER 4 0 1 +0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +15 'tsfc' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (1 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ())) 0 () () () 0 0) +16 'h2ovmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +17 'o3vmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +18 'co2vmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +19 'ch4vmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +20 'n2ovmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +21 'o2vmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +22 'cfc11vmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +23 'cfc12vmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +24 'cfc22vmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +25 'ccl4vmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +26 'emis' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +27 'inflglw' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +28 'iceflglw' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +29 'liqflglw' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +30 'cldfr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +31 'taucld' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (3 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +32 'cicewp' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +33 'cliqwp' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +34 'reice' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +35 'reliq' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +36 'tauaer' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (3 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16')) 0 () () () 0 0) +37 'uflx' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP (INTEGER 4 0 1 +0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +38 'dflx' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP (INTEGER 4 0 1 +0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +39 'hr' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +40 'uflxc' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP (INTEGER 4 0 1 +0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +41 'dflxc' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP (INTEGER 4 0 1 +0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +42 'hrc' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +43 'duflx_dt' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION OPTIONAL DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 +INTEGER ()) 0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP ( +INTEGER 4 0 1 0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 8 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +44 'duflxc_dt' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION OPTIONAL DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 +INTEGER ()) 0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP ( +INTEGER 4 0 1 0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 8 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +47 'cpdair' '' '' 46 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () () 0 () () () 0 0) +52 'ncol' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +53 'nlay' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +54 'icld' '' '' 51 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +55 'idrv' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +56 'play' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +57 'plev' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +58 'tlay' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +59 'tlev' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +60 'tsfc' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +61 'h2ovmr' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +62 'o3vmr' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +63 'co2vmr' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +64 'ch4vmr' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +65 'n2ovmr' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +66 'o2vmr' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +67 'cfc11vmr' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +68 'cfc12vmr' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +69 'cfc22vmr' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +70 'ccl4vmr' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +71 'emis' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +72 'inflglw' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +73 'iceflglw' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +74 'liqflglw' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +75 'cldfr' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +76 'taucld' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +77 'cicewp' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +78 'cliqwp' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +79 'reice' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +80 'reliq' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +81 'tauaer' '' '' 51 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +82 'uflx' '' '' 51 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +83 'dflx' '' '' 51 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +84 'hr' '' '' 51 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +85 'uflxc' '' '' 51 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +86 'dflxc' '' '' 51 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +87 'hrc' '' '' 51 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +88 'duflx_dt' '' '' 51 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION OPTIONAL DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +89 'duflxc_dt' '' '' 51 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION OPTIONAL DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +92 'cpdair' '' '' 91 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +) + +('__iso_c_binding' 0 2 'c_double' 0 3 'c_int' 0 4 'c_rrtmg_lw' 0 5 +'c_rrtmg_lw_init' 0 45 'nbndlw' 0 48 'parrrtm' 0 49 'rrtmg_lw' 0 50 +'rrtmg_lw_ini' 0 90 'rrtmg_lw_init' 0 93 'rrtmg_lw_rad' 0 94 +'rrtmg_lw_wrapper' 0 95) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_cldprmc.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_cldprmc.mod new file mode 100644 index 00000000..f5943697 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_cldprmc.mod @@ -0,0 +1,201 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/src/rrtmg_sw_cldprmc.f90 +MD5:706e3194881373b1710615b5cc293dbd -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'abari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +3 'asyice2' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '43') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +4 'asyice3' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +5 'asyliq1' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '58') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +6 'bbari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5')) 0 () () () 0 0) +7 'cbari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5')) 0 () () () 0 0) +8 'cldprmc_sw' 'rrtmg_sw_cldprmc' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 9 0 (10 11 12 13 14 15 16 17 18 19 20 21 22 23) () 0 () () +() 0 0) +24 'dbari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +25 'ebari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +26 'extice2' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '43') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +27 'extice3' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +28 'extliq1' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '58') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +29 'fbari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +30 'fdlice3' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +31 'hnamclc' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +32 'hvrclc' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +33 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +34 'jpb1' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +35 'jpb2' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29') () 0 () () () 0 0) +36 'jpband' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29') () 0 () () () 0 0) +37 'ngb' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '112')) 0 () () () 0 0) +38 'ngptsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '112') () 0 () () () 0 0) +39 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +40 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +41 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +42 'rrsw_cld' 'rrsw_cld' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +43 'rrsw_vsn' 'rrsw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +44 'rrsw_wvn' 'rrsw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +45 'rrtmg_sw_cldprmc' 'rrtmg_sw_cldprmc' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +46 'ssaice2' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '43') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +47 'ssaice3' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +48 'ssaliq1' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '58') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +49 'wavenum1' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +50 'wavenum2' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +10 'nlayers' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +11 'inflag' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +12 'iceflag' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +13 'liqflag' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +14 'cldfmc' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +15 'ciwpmc' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +16 'clwpmc' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +17 'reicmc' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +18 'relqmc' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +19 'taormc' '' '' 9 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +20 'taucmc' '' '' 9 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +21 'ssacmc' '' '' 9 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +22 'asmcmc' '' '' 9 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +23 'fsfcmc' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('abari' 0 2 'asyice2' 0 3 'asyice3' 0 4 'asyliq1' 0 5 'bbari' 0 6 'cbari' +0 7 'cldprmc_sw' 0 8 'dbari' 0 24 'ebari' 0 25 'extice2' 0 26 'extice3' +0 27 'extliq1' 0 28 'fbari' 0 29 'fdlice3' 0 30 'hnamclc' 0 31 'hvrclc' +0 32 'im' 0 33 'jpb1' 0 34 'jpb2' 0 35 'jpband' 0 36 'ngb' 0 37 'ngptsw' +0 38 'parkind' 0 39 'parrrsw' 0 40 'rb' 0 41 'rrsw_cld' 0 42 'rrsw_vsn' +0 43 'rrsw_wvn' 0 44 'rrtmg_sw_cldprmc' 0 45 'ssaice2' 0 46 'ssaice3' 0 +47 'ssaliq1' 0 48 'wavenum1' 0 49 'wavenum2' 0 50) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_cldprop.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_cldprop.mod new file mode 100644 index 00000000..a2474976 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_cldprop.mod @@ -0,0 +1,206 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/src/rrtmg_sw_cldprop.f90 +MD5:4fa1f2cb664658fb9150bd6cb2b23a15 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'abari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +3 'asyice2' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '43') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +4 'asyice3' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +5 'asyliq1' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '58') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +6 'bbari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5')) 0 () () () 0 0) +7 'cbari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '5')) 0 () () () 0 0) +8 'cldprop_sw' 'rrtmg_sw_cldprop' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 9 0 (10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26) () +0 () () () 0 0) +27 'dbari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +28 'ebari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +29 'extice2' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '43') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +30 'extice3' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +31 'extliq1' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '58') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +32 'fbari' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '5')) 0 () () () 0 0) +33 'fdlice3' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +34 'hnamcld' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +35 'hvrcld' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +36 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +37 'jpb1' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +38 'jpb2' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29') () 0 () () () 0 0) +39 'jpband' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29') () 0 () () () 0 0) +40 'nbndsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14') () 0 () () () 0 0) +41 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +42 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +43 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +44 'rrsw_cld' 'rrsw_cld' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +45 'rrsw_vsn' 'rrsw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +46 'rrsw_wvn' 'rrsw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +47 'rrtmg_sw_cldprop' 'rrtmg_sw_cldprop' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +48 'ssaice2' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '43') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +49 'ssaice3' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '46') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +50 'ssaliq1' 'rrsw_cld' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '58') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '16') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +51 'wavenum1' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +52 'wavenum2' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +10 'nlayers' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +11 'inflag' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +12 'iceflag' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +13 'liqflag' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +14 'cldfrac' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +15 'tauc' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +16 'ssac' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +17 'asmc' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +18 'fsfc' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +19 'ciwp' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +20 'clwp' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +21 'rei' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +22 'rel' '' '' 9 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +23 'taucldorig' '' '' 9 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +24 'taucloud' '' '' 9 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +25 'ssacloud' '' '' 9 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +26 'asmcloud' '' '' 9 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('abari' 0 2 'asyice2' 0 3 'asyice3' 0 4 'asyliq1' 0 5 'bbari' 0 6 'cbari' +0 7 'cldprop_sw' 0 8 'dbari' 0 27 'ebari' 0 28 'extice2' 0 29 'extice3' +0 30 'extliq1' 0 31 'fbari' 0 32 'fdlice3' 0 33 'hnamcld' 0 34 'hvrcld' +0 35 'im' 0 36 'jpb1' 0 37 'jpb2' 0 38 'jpband' 0 39 'nbndsw' 0 40 +'parkind' 0 41 'parrrsw' 0 42 'rb' 0 43 'rrsw_cld' 0 44 'rrsw_vsn' 0 45 +'rrsw_wvn' 0 46 'rrtmg_sw_cldprop' 0 47 'ssaice2' 0 48 'ssaice3' 0 49 +'ssaliq1' 0 50 'wavenum1' 0 51 'wavenum2' 0 52) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_init.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_init.mod new file mode 100644 index 00000000..2f8d7e70 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_init.mod @@ -0,0 +1,177 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/src/rrtmg_sw_init.f90 +MD5:e261a7ab4bdc020cca33b7420063214b -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'cmbgb16s' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 +0 () () 0 () () () 0 0) +3 'cmbgb17' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +4 'cmbgb18' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +5 'cmbgb19' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +6 'cmbgb20' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +7 'cmbgb21' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +8 'cmbgb22' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +9 'cmbgb23' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +10 'cmbgb24' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +11 'cmbgb25' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +12 'cmbgb26' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +13 'cmbgb27' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +14 'cmbgb28' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +15 'cmbgb29' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +16 'delwave' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +17 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +18 'jpb1' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +19 'jpb2' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29') () 0 () () () 0 0) +20 'mg' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '16') () 0 () () () 0 0) +21 'nbndsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14') () 0 () () () 0 0) +22 'ng' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +23 'ngb' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '112')) 0 () () () 0 0) +24 'ngc' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +25 'ngm' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '224')) 0 () () () 0 0) +26 'ngn' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '112')) 0 () () () 0 0) +27 'ngptsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '112') () 0 () () () 0 0) +28 'ngs' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +29 'nspa' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +30 'nspb' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +31 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +32 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +33 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +34 'rrsw_wvn' 'rrsw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +35 'rrtmg_sw_ini' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 36 +0 (37) () 0 () () () 0 0) +38 'rrtmg_sw_init' 'rrtmg_sw_init' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +39 'rrtmg_sw_setcoef' 'rrtmg_sw_setcoef' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +40 'rwgt' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '224')) 0 () () () 0 0) +41 'swaerpr' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +42 'swatmref' 'rrtmg_sw_setcoef' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 +0 () () 0 () () () 0 0) +43 'swcldpr' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () +() () 0 0) +44 'swcmbdat' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 +0 () () 0 () () () 0 0) +45 'swdatinit' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 46 +0 (47) () 0 () () () 0 0) +48 'wavenum1' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +49 'wavenum2' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +50 'wt' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '16')) 0 () () () 0 0) +37 'cpdair' '' '' 36 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +47 'cpdair' '' '' 46 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +) + +('cmbgb16s' 0 2 'cmbgb17' 0 3 'cmbgb18' 0 4 'cmbgb19' 0 5 'cmbgb20' 0 6 +'cmbgb21' 0 7 'cmbgb22' 0 8 'cmbgb23' 0 9 'cmbgb24' 0 10 'cmbgb25' 0 11 +'cmbgb26' 0 12 'cmbgb27' 0 13 'cmbgb28' 0 14 'cmbgb29' 0 15 'delwave' 0 +16 'im' 0 17 'jpb1' 0 18 'jpb2' 0 19 'mg' 0 20 'nbndsw' 0 21 'ng' 0 22 +'ngb' 0 23 'ngc' 0 24 'ngm' 0 25 'ngn' 0 26 'ngptsw' 0 27 'ngs' 0 28 +'nspa' 0 29 'nspb' 0 30 'parkind' 0 31 'parrrsw' 0 32 'rb' 0 33 'rrsw_wvn' +0 34 'rrtmg_sw_ini' 0 35 'rrtmg_sw_init' 0 38 'rrtmg_sw_setcoef' 0 39 +'rwgt' 0 40 'swaerpr' 0 41 'swatmref' 0 42 'swcldpr' 0 43 'swcmbdat' 0 +44 'swdatinit' 0 45 'wavenum1' 0 48 'wavenum2' 0 49 'wt' 0 50) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_rad.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_rad.mod new file mode 100644 index 00000000..2ba67e3f --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_rad.mod @@ -0,0 +1,862 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/src/rrtmg_sw_rad.nomcica.f90 +MD5:dd2c76a56c3fd51666c99721ab385a3d -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'cldprop_sw' 'rrtmg_sw_cldprop' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 3 0 (4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20) () 0 () +() () 0 0) +21 'earth_sun' 'rrtmg_sw_rad' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 FUNCTION IMPLICIT_PURE) (REAL 8 0 0 0 REAL +()) 22 0 (23) () 21 () () () 0 0) +24 'hnamatm' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +25 'hnamclc' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +26 'hnamcld' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +27 'hnamext' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +28 'hnamini' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +29 'hnamkg' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +30 'hnamrft' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +31 'hnamrtm' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +32 'hnamset' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +33 'hnamspc' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +34 'hnamspv' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +35 'hnamtau' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +36 'hnamutl' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +37 'hnamvqd' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +38 'hvratm' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +39 'hvrclc' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +40 'hvrcld' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +41 'hvrext' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +42 'hvrini' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +43 'hvrkg' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +44 'hvrrft' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +45 'hvrrtm' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +46 'hvrset' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +47 'hvrspc' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +48 'hvrspv' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +49 'hvrtau' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +50 'hvrutl' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +51 'hvrvqd' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +52 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +53 'inatm_sw' 'rrtmg_sw_rad' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 0 UNKNOWN ()) +54 0 (55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 +77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 +101 102 103 104 105 106 107 108 109 110 111 112 113) () 0 () () () 0 0) +114 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +115 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +116 'rrsw_vsn' 'rrsw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +117 'rrtmg_sw' 'rrtmg_sw_rad' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 118 0 (119 120 121 122 123 124 125 126 127 128 129 130 131 +132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 +150 151 152 153 154 155 156 157 158 159 160 161 162 163) () 0 () () () 0 +0) +164 'rrtmg_sw_cldprop' 'rrtmg_sw_cldprop' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +165 'rrtmg_sw_rad' 'rrtmg_sw_rad' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +166 'rrtmg_sw_setcoef' 'rrtmg_sw_setcoef' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +167 'rrtmg_sw_spcvrt' 'rrtmg_sw_spcvrt' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +168 'setcoef_sw' 'rrtmg_sw_setcoef' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE IMPLICIT_PURE ALWAYS_EXPLICIT) ( +UNKNOWN 0 0 0 0 UNKNOWN ()) 169 0 (170 171 172 173 174 175 176 177 178 +179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 +197 198 199 200 201) () 0 () () () 0 0) +202 'spcvrt_sw' 'rrtmg_sw_spcvrt' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 203 0 (204 205 206 207 208 209 210 211 212 213 214 215 216 +217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 +235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 +253 254 255 256 257 258 259 260 261 262 263 264 265 266) () 0 () () () 0 +0) +4 'nlayers' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +5 'inflag' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +6 'iceflag' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +7 'liqflag' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +8 'cldfrac' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +9 'tauc' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +10 'ssac' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +11 'asmc' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +12 'fsfc' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +13 'ciwp' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +14 'clwp' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +15 'rei' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +16 'rel' '' '' 3 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +17 'taucldorig' '' '' 3 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +18 'taucloud' '' '' 3 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +19 'ssacloud' '' '' 3 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +20 'asmcloud' '' '' 3 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +23 'idn' '' '' 22 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +55 'iplon' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +56 'nlay' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +57 'icld' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +58 'iaer' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +59 'play' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +60 'plev' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +61 'tlay' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +62 'tlev' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +63 'tsfc' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +64 'h2ovmr' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +65 'o3vmr' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +66 'co2vmr' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +67 'ch4vmr' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +68 'n2ovmr' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +69 'o2vmr' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +70 'adjes' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +71 'dyofyr' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +72 'scon' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +73 'inflgsw' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +74 'iceflgsw' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +75 'liqflgsw' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +76 'cldfr' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +77 'taucld' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +78 'ssacld' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +79 'asmcld' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +80 'fsfcld' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +81 'cicewp' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +82 'cliqwp' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +83 'reice' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +84 'reliq' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +85 'tauaer' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +86 'ssaaer' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +87 'asmaer' '' '' 54 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +88 'nlayers' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +89 'pavel' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +90 'pz' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +91 'pdp' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +92 'tavel' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +93 'tz' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +94 'tbound' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +95 'coldry' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +96 'wkl' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +97 'adjflux' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +98 'solvar' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +99 'inflag' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +100 'iceflag' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +101 'liqflag' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +102 'cldfrac' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +103 'tauc' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +104 'ssac' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +105 'asmc' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +106 'fsfc' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +107 'ciwp' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +108 'clwp' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +109 'rei' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +110 'rel' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +111 'taua' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +112 'ssaa' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +113 'asma' '' '' 54 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +119 'ncol' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +120 'nlay' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +121 'icld' '' '' 118 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +122 'iaer' '' '' 118 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +123 'play' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +124 'plev' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +125 'tlay' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +126 'tlev' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +127 'tsfc' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +128 'h2ovmr' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +129 'o3vmr' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +130 'co2vmr' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +131 'ch4vmr' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +132 'n2ovmr' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +133 'o2vmr' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +134 'asdir' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +135 'asdif' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +136 'aldir' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +137 'aldif' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +138 'coszen' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +139 'adjes' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +140 'dyofyr' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +141 'scon' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +142 'inflgsw' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +143 'iceflgsw' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +144 'liqflgsw' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +145 'cldfr' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +146 'taucld' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +147 'ssacld' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +148 'asmcld' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +149 'fsfcld' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +150 'cicewp' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +151 'cliqwp' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +152 'reice' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +153 'reliq' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +154 'tauaer' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +155 'ssaaer' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +156 'asmaer' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +157 'ecaer' '' '' 118 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +158 'swuflx' '' '' 118 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +159 'swdflx' '' '' 118 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +160 'swhr' '' '' 118 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +161 'swuflxc' '' '' 118 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +162 'swdflxc' '' '' 118 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +163 'swhrc' '' '' 118 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +170 'nlayers' '' '' 169 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +171 'pavel' '' '' 169 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +172 'tavel' '' '' 169 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +173 'pz' '' '' 169 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +174 'tz' '' '' 169 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +175 'tbound' '' '' 169 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +176 'coldry' '' '' 169 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +177 'wkl' '' '' 169 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +178 'laytrop' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +179 'layswtch' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +180 'laylow' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +181 'jp' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +182 'jt' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +183 'jt1' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +184 'co2mult' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +185 'colch4' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +186 'colco2' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +187 'colh2o' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +188 'colmol' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +189 'coln2o' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +190 'colo2' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +191 'colo3' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +192 'fac00' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +193 'fac01' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +194 'fac10' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +195 'fac11' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +196 'selffac' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +197 'selffrac' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +198 'indself' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +199 'forfac' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +200 'forfrac' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +201 'indfor' '' '' 169 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +204 'nlayers' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +205 'istart' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +206 'iend' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +207 'icpr' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +208 'idelm' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +209 'iout' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +210 'pavel' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +211 'tavel' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +212 'pz' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +213 'tz' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +214 'tbound' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +215 'palbd' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +216 'palbp' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +217 'pclfr' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +218 'ptauc' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +219 'pasyc' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +220 'pomgc' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +221 'ptaucorig' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +222 'ptaua' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +223 'pasya' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +224 'pomga' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +225 'prmu0' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +226 'coldry' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +227 'wkl' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +228 'adjflux' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +229 'laytrop' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +230 'layswtch' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +231 'laylow' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +232 'jp' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +233 'jt' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +234 'jt1' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +235 'co2mult' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +236 'colch4' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +237 'colco2' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +238 'colh2o' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +239 'colmol' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +240 'coln2o' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +241 'colo2' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +242 'colo3' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +243 'fac00' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +244 'fac01' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +245 'fac10' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +246 'fac11' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +247 'selffac' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +248 'selffrac' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +249 'indself' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +250 'forfac' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +251 'forfrac' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +252 'indfor' '' '' 203 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +253 'pbbfd' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +254 'pbbfu' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +255 'pbbcd' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +256 'pbbcu' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +257 'puvfd' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +258 'puvcd' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +259 'pnifd' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +260 'pnicd' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +261 'pbbfddir' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +262 'pbbcddir' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +263 'puvfddir' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +264 'puvcddir' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +265 'pnifddir' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +266 'pnicddir' '' '' 203 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('cldprop_sw' 0 2 'earth_sun' 0 21 'hnamatm' 0 24 'hnamclc' 0 25 'hnamcld' +0 26 'hnamext' 0 27 'hnamini' 0 28 'hnamkg' 0 29 'hnamrft' 0 30 'hnamrtm' +0 31 'hnamset' 0 32 'hnamspc' 0 33 'hnamspv' 0 34 'hnamtau' 0 35 'hnamutl' +0 36 'hnamvqd' 0 37 'hvratm' 0 38 'hvrclc' 0 39 'hvrcld' 0 40 'hvrext' 0 +41 'hvrini' 0 42 'hvrkg' 0 43 'hvrrft' 0 44 'hvrrtm' 0 45 'hvrset' 0 46 +'hvrspc' 0 47 'hvrspv' 0 48 'hvrtau' 0 49 'hvrutl' 0 50 'hvrvqd' 0 51 'im' +0 52 'inatm_sw' 0 53 'parkind' 0 114 'rb' 0 115 'rrsw_vsn' 0 116 +'rrtmg_sw' 0 117 'rrtmg_sw_cldprop' 0 164 'rrtmg_sw_rad' 0 165 +'rrtmg_sw_setcoef' 0 166 'rrtmg_sw_spcvrt' 0 167 'setcoef_sw' 0 168 +'spcvrt_sw' 0 202) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_reftra.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_reftra.mod new file mode 100644 index 00000000..6f467cfb --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_reftra.mod @@ -0,0 +1,88 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/src/rrtmg_sw_reftra.f90 +MD5:89964f8ed0272f81caf4b90a5874bc99 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'bpade' 'rrsw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'exp_tbl' 'rrsw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +4 'hnamrft' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +5 'hvrrft' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +6 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +7 'od_lo' 'rrsw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.f5c28f5c28f5c0@-1') () 0 () () () 0 0) +8 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +9 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +10 'reftra_sw' 'rrtmg_sw_reftra' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 11 0 (12 13 14 15 16 17 18 19 20 21) () 0 () () () 0 0) +22 'rrsw_tbl' 'rrsw_tbl' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +23 'rrsw_vsn' 'rrsw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +24 'rrtmg_sw_reftra' 'rrtmg_sw_reftra' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +25 'tblint' 'rrsw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.27100000000000@4') () 0 () () () 0 0) +12 'nlayers' '' '' 11 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +13 'lrtchk' '' '' 11 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (LOGICAL 4 0 0 0 LOGICAL ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +14 'pgg' '' '' 11 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +15 'prmuz' '' '' 11 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +16 'ptau' '' '' 11 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +17 'pw' '' '' 11 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +18 'pref' '' '' 11 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +19 'prefd' '' '' 11 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +20 'ptra' '' '' 11 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +21 'ptrad' '' '' 11 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('bpade' 0 2 'exp_tbl' 0 3 'hnamrft' 0 4 'hvrrft' 0 5 'im' 0 6 'od_lo' 0 +7 'parkind' 0 8 'rb' 0 9 'reftra_sw' 0 10 'rrsw_tbl' 0 22 'rrsw_vsn' 0 +23 'rrtmg_sw_reftra' 0 24 'tblint' 0 25) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_setcoef.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_setcoef.mod new file mode 100644 index 00000000..a1eea93d --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_setcoef.mod @@ -0,0 +1,161 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/src/rrtmg_sw_setcoef.f90 +MD5:94054e97c82756c1201f8fc4908e81b7 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'hnamset' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +3 'hvrset' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +4 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +5 'mxmol' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '38') () 0 () () () 0 0) +6 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +7 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +8 'pref' 'rrsw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '59')) 0 () () () 0 0) +9 'preflog' 'rrsw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '59')) 0 () () () 0 0) +10 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +11 'rrsw_ref' 'rrsw_ref' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +12 'rrsw_vsn' 'rrsw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +13 'rrtmg_sw_setcoef' 'rrtmg_sw_setcoef' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +14 'setcoef_sw' 'rrtmg_sw_setcoef' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE IMPLICIT_PURE ALWAYS_EXPLICIT) ( +UNKNOWN 0 0 0 0 UNKNOWN ()) 15 0 (16 17 18 19 20 21 22 23 24 25 26 27 28 +29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47) () 0 () () () +0 0) +48 'swatmref' 'rrtmg_sw_setcoef' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 +0 () () 0 () () () 0 0) +49 'tref' 'rrsw_ref' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 EXPLICIT +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 +INTEGER ()) 0 '59')) 0 () () () 0 0) +16 'nlayers' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +17 'pavel' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +18 'tavel' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +19 'pz' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +20 'tz' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +21 'tbound' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +22 'coldry' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +23 'wkl' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +24 'laytrop' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +25 'layswtch' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +26 'laylow' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +27 'jp' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +28 'jt' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +29 'jt1' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +30 'co2mult' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +31 'colch4' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +32 'colco2' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +33 'colh2o' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +34 'colmol' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +35 'coln2o' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +36 'colo2' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +37 'colo3' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +38 'fac00' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +39 'fac01' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +40 'fac10' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +41 'fac11' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +42 'selffac' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +43 'selffrac' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +44 'indself' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +45 'forfac' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +46 'forfrac' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +47 'indfor' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('hnamset' 0 2 'hvrset' 0 3 'im' 0 4 'mxmol' 0 5 'parkind' 0 6 'parrrsw' +0 7 'pref' 0 8 'preflog' 0 9 'rb' 0 10 'rrsw_ref' 0 11 'rrsw_vsn' 0 12 +'rrtmg_sw_setcoef' 0 13 'setcoef_sw' 0 14 'swatmref' 0 48 'tref' 0 49) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_spcvmc.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_spcvmc.mod new file mode 100644 index 00000000..327bd9bb --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_spcvmc.mod @@ -0,0 +1,437 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/src/rrtmg_sw_spcvmc.f90 +MD5:96dd8a17cdd4b86e4ea25015ac96e8a7 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'bpade' 'rrsw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'exp_tbl' 'rrsw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +4 'hnamspc' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +5 'hvrspc' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +6 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +7 'jpband' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29') () 0 () () () 0 0) +8 'mxmol' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '38') () 0 () () () 0 0) +9 'nbndsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14') () 0 () () () 0 0) +10 'ngc' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +11 'ngptsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '112') () 0 () () () 0 0) +12 'ngs' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +13 'od_lo' 'rrsw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.f5c28f5c28f5c0@-1') () 0 () () () 0 0) +14 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +15 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +16 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'reftra_sw' 'rrtmg_sw_reftra' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 18 0 (19 20 21 22 23 24 25 26 27 28) () 0 () () () 0 0) +29 'rrsw_tbl' 'rrsw_tbl' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +30 'rrsw_vsn' 'rrsw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +31 'rrsw_wvn' 'rrsw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +32 'rrtmg_sw_reftra' 'rrtmg_sw_reftra' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +33 'rrtmg_sw_spcvmc' 'rrtmg_sw_spcvmc' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +34 'rrtmg_sw_taumol' 'rrtmg_sw_taumol' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +35 'rrtmg_sw_vrtqdr' 'rrtmg_sw_vrtqdr' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +36 'spcvmc_sw' 'rrtmg_sw_spcvmc' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 37 0 (38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 +55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 +79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100) () 0 +() () () 0 0) +101 'taumol_sw' 'rrtmg_sw_taumol' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 102 0 (103 104 105 106 107 108 109 110 111 112 113 114 115 +116 117 118 119 120 121 122 123 124 125 126) () 0 () () () 0 0) +127 'tblint' 'rrsw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.27100000000000@4') () 0 () () () 0 0) +128 'vrtqdr_sw' 'rrtmg_sw_vrtqdr' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE IMPLICIT_PURE ALWAYS_EXPLICIT) ( +UNKNOWN 0 0 0 0 UNKNOWN ()) 129 0 (130 131 132 133 134 135 136 137 138 +139 140 141 142) () 0 () () () 0 0) +19 'nlayers' '' '' 18 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +20 'lrtchk' '' '' 18 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (LOGICAL 4 0 0 0 LOGICAL ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +21 'pgg' '' '' 18 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +22 'prmuz' '' '' 18 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +23 'ptau' '' '' 18 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +24 'pw' '' '' 18 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +25 'pref' '' '' 18 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +26 'prefd' '' '' 18 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +27 'ptra' '' '' 18 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +28 'ptrad' '' '' 18 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +38 'nlayers' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +39 'istart' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +40 'iend' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +41 'icpr' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +42 'idelm' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +43 'iout' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +44 'pavel' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +45 'tavel' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +46 'pz' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +47 'tz' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +48 'tbound' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +49 'palbd' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +50 'palbp' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +51 'pcldfmc' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +52 'ptaucmc' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +53 'pasycmc' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +54 'pomgcmc' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +55 'ptaormc' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +56 'ptaua' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +57 'pasya' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +58 'pomga' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +59 'prmu0' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +60 'coldry' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +61 'wkl' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +62 'adjflux' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +63 'laytrop' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +64 'layswtch' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +65 'laylow' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +66 'jp' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +67 'jt' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +68 'jt1' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +69 'co2mult' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +70 'colch4' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +71 'colco2' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +72 'colh2o' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +73 'colmol' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +74 'coln2o' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +75 'colo2' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +76 'colo3' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +77 'fac00' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +78 'fac01' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +79 'fac10' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +80 'fac11' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +81 'selffac' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +82 'selffrac' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +83 'indself' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +84 'forfac' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +85 'forfrac' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +86 'indfor' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +87 'pbbfd' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +88 'pbbfu' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +89 'pbbcd' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +90 'pbbcu' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +91 'puvfd' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +92 'puvcd' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +93 'pnifd' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +94 'pnicd' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +95 'pbbfddir' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +96 'pbbcddir' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +97 'puvfddir' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +98 'puvcddir' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +99 'pnifddir' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +100 'pnicddir' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +103 'nlayers' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +104 'colh2o' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +105 'colco2' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +106 'colch4' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +107 'colo2' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +108 'colo3' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +109 'colmol' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +110 'laytrop' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +111 'jp' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +112 'jt' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +113 'jt1' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +114 'fac00' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +115 'fac01' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +116 'fac10' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +117 'fac11' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +118 'selffac' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +119 'selffrac' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +120 'indself' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +121 'forfac' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +122 'forfrac' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +123 'indfor' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +124 'sfluxzen' '' '' 102 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +125 'taug' '' '' 102 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +126 'taur' '' '' 102 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +130 'klev' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +131 'kw' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +132 'pref' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +133 'prefd' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +134 'ptra' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +135 'ptrad' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +136 'pdbt' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +137 'prdnd' '' '' 129 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +138 'prup' '' '' 129 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +139 'prupd' '' '' 129 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +140 'ptdbt' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +141 'pfd' '' '' 129 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +142 'pfu' '' '' 129 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('bpade' 0 2 'exp_tbl' 0 3 'hnamspc' 0 4 'hvrspc' 0 5 'im' 0 6 'jpband' +0 7 'mxmol' 0 8 'nbndsw' 0 9 'ngc' 0 10 'ngptsw' 0 11 'ngs' 0 12 'od_lo' +0 13 'parkind' 0 14 'parrrsw' 0 15 'rb' 0 16 'reftra_sw' 0 17 'rrsw_tbl' +0 29 'rrsw_vsn' 0 30 'rrsw_wvn' 0 31 'rrtmg_sw_reftra' 0 32 +'rrtmg_sw_spcvmc' 0 33 'rrtmg_sw_taumol' 0 34 'rrtmg_sw_vrtqdr' 0 35 +'spcvmc_sw' 0 36 'taumol_sw' 0 101 'tblint' 0 127 'vrtqdr_sw' 0 128) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_spcvrt.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_spcvrt.mod new file mode 100644 index 00000000..786afd37 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_spcvrt.mod @@ -0,0 +1,436 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/src/rrtmg_sw_spcvrt.f90 +MD5:1bf065a8fd5fe6cc084343f2a6e70ffd -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'bpade' 'rrsw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +3 'exp_tbl' 'rrsw_tbl' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0 DIMENSION) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '10000')) 0 () () () 0 0) +4 'hnamspv' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +5 'hvrspv' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +6 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +7 'jpband' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '29') () 0 () () () 0 0) +8 'mxmol' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '38') () 0 () () () 0 0) +9 'nbndsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14') () 0 () () () 0 0) +10 'ngc' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +11 'ngptsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '112') () 0 () () () 0 0) +12 'ngs' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +13 'od_lo' 'rrsw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.f5c28f5c28f5c0@-1') () 0 () () () 0 0) +14 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +15 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +16 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +17 'reftra_sw' 'rrtmg_sw_reftra' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 18 0 (19 20 21 22 23 24 25 26 27 28) () 0 () () () 0 0) +29 'rrsw_tbl' 'rrsw_tbl' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +30 'rrsw_vsn' 'rrsw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +31 'rrsw_wvn' 'rrsw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +32 'rrtmg_sw_reftra' 'rrtmg_sw_reftra' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +33 'rrtmg_sw_spcvrt' 'rrtmg_sw_spcvrt' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +34 'rrtmg_sw_taumol' 'rrtmg_sw_taumol' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +35 'rrtmg_sw_vrtqdr' 'rrtmg_sw_vrtqdr' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +36 'spcvrt_sw' 'rrtmg_sw_spcvrt' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 37 0 (38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 +55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 +79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100) () 0 +() () () 0 0) +101 'taumol_sw' 'rrtmg_sw_taumol' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 102 0 (103 104 105 106 107 108 109 110 111 112 113 114 115 +116 117 118 119 120 121 122 123 124 125 126) () 0 () () () 0 0) +127 'tblint' 'rrsw_tbl' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () (CONSTANT ( +REAL 8 0 0 0 REAL ()) 0 '0.27100000000000@4') () 0 () () () 0 0) +128 'vrtqdr_sw' 'rrtmg_sw_vrtqdr' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE IMPLICIT_PURE ALWAYS_EXPLICIT) ( +UNKNOWN 0 0 0 0 UNKNOWN ()) 129 0 (130 131 132 133 134 135 136 137 138 +139 140 141 142) () 0 () () () 0 0) +19 'nlayers' '' '' 18 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +20 'lrtchk' '' '' 18 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (LOGICAL 4 0 0 0 LOGICAL ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +21 'pgg' '' '' 18 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +22 'prmuz' '' '' 18 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +23 'ptau' '' '' 18 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +24 'pw' '' '' 18 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +25 'pref' '' '' 18 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +26 'prefd' '' '' 18 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +27 'ptra' '' '' 18 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +28 'ptrad' '' '' 18 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +38 'nlayers' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +39 'istart' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +40 'iend' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +41 'icpr' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +42 'idelm' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +43 'iout' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +44 'pavel' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +45 'tavel' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +46 'pz' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +47 'tz' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0') ()) 0 () () () 0 0) +48 'tbound' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +49 'palbd' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +50 'palbp' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +51 'pclfr' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +52 'ptauc' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +53 'pasyc' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +54 'pomgc' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +55 'ptaucorig' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +56 'ptaua' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +57 'pasya' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +58 'pomga' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +59 'prmu0' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +60 'coldry' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +61 'wkl' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +62 'adjflux' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +63 'laytrop' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +64 'layswtch' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +65 'laylow' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +66 'jp' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +67 'jt' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +68 'jt1' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +69 'co2mult' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +70 'colch4' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +71 'colco2' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +72 'colh2o' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +73 'colmol' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +74 'coln2o' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +75 'colo2' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +76 'colo3' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +77 'fac00' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +78 'fac01' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +79 'fac10' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +80 'fac11' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +81 'selffac' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +82 'selffrac' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +83 'indself' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +84 'forfac' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +85 'forfrac' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +86 'indfor' '' '' 37 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +87 'pbbfd' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +88 'pbbfu' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +89 'pbbcd' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +90 'pbbcu' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +91 'puvfd' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +92 'puvcd' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +93 'pnifd' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +94 'pnicd' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +95 'pbbfddir' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +96 'pbbcddir' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +97 'puvfddir' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +98 'puvcddir' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +99 'pnifddir' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +100 'pnicddir' '' '' 37 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +103 'nlayers' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +104 'colh2o' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +105 'colco2' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +106 'colch4' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +107 'colo2' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +108 'colo3' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +109 'colmol' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +110 'laytrop' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +111 'jp' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +112 'jt' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +113 'jt1' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +114 'fac00' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +115 'fac01' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +116 'fac10' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +117 'fac11' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +118 'selffac' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +119 'selffrac' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +120 'indself' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +121 'forfac' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +122 'forfrac' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +123 'indfor' '' '' 102 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +124 'sfluxzen' '' '' 102 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +125 'taug' '' '' 102 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +126 'taur' '' '' 102 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +130 'klev' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +131 'kw' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +132 'pref' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +133 'prefd' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +134 'ptra' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +135 'ptrad' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +136 'pdbt' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +137 'prdnd' '' '' 129 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +138 'prup' '' '' 129 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +139 'prupd' '' '' 129 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +140 'ptdbt' '' '' 129 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +141 'pfd' '' '' 129 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +142 'pfu' '' '' 129 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('bpade' 0 2 'exp_tbl' 0 3 'hnamspv' 0 4 'hvrspv' 0 5 'im' 0 6 'jpband' +0 7 'mxmol' 0 8 'nbndsw' 0 9 'ngc' 0 10 'ngptsw' 0 11 'ngs' 0 12 'od_lo' +0 13 'parkind' 0 14 'parrrsw' 0 15 'rb' 0 16 'reftra_sw' 0 17 'rrsw_tbl' +0 29 'rrsw_vsn' 0 30 'rrsw_wvn' 0 31 'rrtmg_sw_reftra' 0 32 +'rrtmg_sw_spcvrt' 0 33 'rrtmg_sw_taumol' 0 34 'rrtmg_sw_vrtqdr' 0 35 +'spcvrt_sw' 0 36 'taumol_sw' 0 101 'tblint' 0 127 'vrtqdr_sw' 0 128) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_taumol.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_taumol.mod new file mode 100644 index 00000000..52f5c798 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_taumol.mod @@ -0,0 +1,134 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/src/rrtmg_sw_taumol.f90 +MD5:1d1cf32257ad0b87cf9f87939999be72 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'hnamtau' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '20'))) 0 0 () () 0 () () () 0 0) +3 'hvrtau' 'rrsw_vsn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '18'))) 0 0 () () 0 () () () 0 0) +4 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +5 'nspa' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +6 'nspb' 'rrsw_wvn' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +EXPLICIT-SAVE 0 0 DIMENSION) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 +EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16') (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '29')) 0 () () () 0 0) +7 'oneminus' 'rrsw_con' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN EXPLICIT-SAVE 0 0) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 +0) +8 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +9 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +10 'rrsw_con' 'rrsw_con' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +11 'rrsw_vsn' 'rrsw_vsn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +12 'rrsw_wvn' 'rrsw_wvn' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +13 'rrtmg_sw_taumol' 'rrtmg_sw_taumol' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +14 'taumol_sw' 'rrtmg_sw_taumol' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 +0 UNKNOWN ()) 15 0 (16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 +33 34 35 36 37 38 39) () 0 () () () 0 0) +16 'nlayers' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +17 'colh2o' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +18 'colco2' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +19 'colch4' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +20 'colo2' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +21 'colo3' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +22 'colmol' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +23 'laytrop' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +24 'jp' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +25 'jt' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +26 'jt1' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +27 'fac00' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +28 'fac01' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +29 'fac10' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +30 'fac11' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +31 'selffac' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +32 'selffrac' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +33 'indself' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +34 'forfac' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +35 'forfrac' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +36 'indfor' '' '' 15 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () (1 0 ASSUMED_SHAPE +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +37 'sfluxzen' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +38 'taug' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +39 'taur' '' '' 15 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('hnamtau' 0 2 'hvrtau' 0 3 'im' 0 4 'nspa' 0 5 'nspb' 0 6 'oneminus' 0 +7 'parkind' 0 8 'rb' 0 9 'rrsw_con' 0 10 'rrsw_vsn' 0 11 'rrsw_wvn' 0 12 +'rrtmg_sw_taumol' 0 13 'taumol_sw' 0 14) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_vrtqdr.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_vrtqdr.mod new file mode 100644 index 00000000..018ece05 --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_vrtqdr.mod @@ -0,0 +1,73 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/sw/src/rrtmg_sw_vrtqdr.f90 +MD5:7ab83aadad9ef5a989a9f83e37cfa9bf -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 'kind_im' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4') () 0 () () () 0 0) +3 'parkind' 'parkind' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +4 'kind_rb' 'parkind' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8') () 0 () () () 0 0) +5 'rrtmg_sw_vrtqdr' 'rrtmg_sw_vrtqdr' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +6 'vrtqdr_sw' 'rrtmg_sw_vrtqdr' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE IMPLICIT_PURE ALWAYS_EXPLICIT) ( +UNKNOWN 0 0 0 0 UNKNOWN ()) 7 0 (8 9 10 11 12 13 14 15 16 17 18 19 20) () +0 () () () 0 0) +8 'klev' '' '' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +9 'kw' '' '' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +10 'pref' '' '' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +11 'prefd' '' '' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +12 'ptra' '' '' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +13 'ptrad' '' '' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +14 'pdbt' '' '' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +15 'prdnd' '' '' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +16 'prup' '' '' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +17 'prupd' '' '' 7 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +18 'ptdbt' '' '' 7 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +19 'pfd' '' '' 7 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +20 'pfu' '' '' 7 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +) + +('im' 0 2 'parkind' 0 3 'rb' 0 4 'rrtmg_sw_vrtqdr' 0 5 'vrtqdr_sw' 0 6) diff --git a/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_wrapper.mod b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_wrapper.mod new file mode 100644 index 00000000..3f8b430e --- /dev/null +++ b/RRTMG/rrtmg_build/obj_rrtmg/rrtmg_sw_wrapper.mod @@ -0,0 +1,434 @@ +GFORTRAN module version '10' created from /Users/meyerbe/Dropbox/ClimatePhysics/Code/LES/pyclesmpi/RRTMG/rrtmg_build/rrtmg_sw_wrapper.f90 +MD5:31853933bd25df23a092dcad238618d7 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () +() () () ()) + +() + +() + +() + +() + +() + +(2 '__iso_c_binding' '__iso_c_binding' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 INTRINSIC) (UNKNOWN 0 0 0 0 UNKNOWN ()) +0 0 () () 0 () () () 2 0) +3 'c_double' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1 +REAL ()) 0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '8') () 0 () () +() 2 25) +4 'c_int' '__iso_c_binding' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0 IS_C_INTEROP IS_ISO_C) (INTEGER 4 0 1 1 INTEGER ()) +0 0 () (CONSTANT (INTEGER 4 0 1 1 UNKNOWN ()) 0 '4') () 0 () () () 2 0) +5 'c_rrtmg_sw' 'rrtmg_sw_wrapper' 'c_rrtmg_sw' 1 ((PROCEDURE +UNKNOWN-INTENT MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE IS_BIND_C +IS_C_INTEROP) (UNKNOWN 0 0 1 0 UNKNOWN ()) 6 0 (7 8 9 10 11 12 13 14 15 +16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 +40 41 42 43 44 45 46 47 48 49 50 51) () 0 () () () 0 0) +52 'c_rrtmg_sw_init' 'rrtmg_sw_wrapper' 'c_rrtmg_sw_init' 1 ((PROCEDURE +UNKNOWN-INTENT MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE IS_BIND_C +IS_C_INTEROP) (UNKNOWN 0 0 1 0 UNKNOWN ()) 53 0 (54) () 0 () () () 0 0) +55 'naerec' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6') () 0 () () () 0 0) +56 'nbndsw' 'parrrsw' '' 1 ((PARAMETER UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14') () 0 () () () 0 0) +57 'parrrsw' 'parrrsw' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN +UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) +58 'rrtmg_sw' 'rrtmg_sw_rad' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC +DECL UNKNOWN 0 0 SUBROUTINE ALWAYS_EXPLICIT) (UNKNOWN 0 0 0 0 UNKNOWN ()) +59 0 (60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 +82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 +104) () 0 () () () 0 0) +105 'rrtmg_sw_ini' 'rrtmg_sw_init' '' 1 ((PROCEDURE UNKNOWN-INTENT +MODULE-PROC DECL UNKNOWN 0 0 SUBROUTINE) (UNKNOWN 0 0 0 0 UNKNOWN ()) +106 0 (107) () 0 () () () 0 0) +108 'rrtmg_sw_init' 'rrtmg_sw_init' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +109 'rrtmg_sw_rad' 'rrtmg_sw_rad' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +110 'rrtmg_sw_wrapper' 'rrtmg_sw_wrapper' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +7 'ncol' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +8 'nlay' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) ( +INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +9 'icld' '' '' 6 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +10 'iaer' '' '' 6 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +11 'play' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +12 'plev' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP (INTEGER 4 0 1 +0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +13 'tlay' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +14 'tlev' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP (INTEGER 4 0 1 +0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +15 'tsfc' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (1 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ())) 0 () () () 0 0) +16 'h2ovmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +17 'o3vmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +18 'co2vmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +19 'ch4vmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +20 'n2ovmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +21 'o2vmr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +22 'asdir' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (1 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ())) 0 () () () 0 0) +23 'asdif' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (1 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ())) 0 () () () 0 0) +24 'aldir' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (1 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ())) 0 () () () 0 0) +25 'aldif' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (1 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ())) 0 () () () 0 0) +26 'coszen' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (1 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ())) 0 () () () 0 0) +27 'adjes' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 1 0 REAL ()) 0 0 () () 0 () () () 0 0) +28 'dyofyr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +29 'scon' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 1 0 REAL ()) 0 0 () () 0 () () () 0 0) +30 'inflgsw' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +31 'iceflgsw' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +32 'liqflgsw' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 1 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +33 'cldfr' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +34 'taucld' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (3 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '14') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +35 'ssacld' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (3 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '14') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +36 'asmcld' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (3 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '14') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +37 'fsfcld' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (3 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '14') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +38 'cicewp' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +39 'cliqwp' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +40 'reice' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +41 'reliq' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +42 'tauaer' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (3 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +43 'ssaaer' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (3 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +44 'asmaer' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (3 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '14')) 0 () () () 0 0) +45 'ecaer' '' '' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (3 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) +0 '1') (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6')) 0 () () () 0 0) +46 'swuflx' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP (INTEGER 4 0 1 +0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +47 'swdflx' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP (INTEGER 4 0 1 +0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +48 'swhr' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +49 'swuflxc' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP (INTEGER 4 0 1 +0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +50 'swdflxc' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (OP (INTEGER 4 0 1 +0 INTEGER ()) 0 PLUS (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) 0 8 ()) ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1'))) 0 () () () 0 0) +51 'swhrc' '' '' 6 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () (2 0 EXPLICIT (CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE (INTEGER 4 0 1 0 INTEGER ()) +0 7 ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') (VARIABLE ( +INTEGER 4 0 1 0 INTEGER ()) 0 8 ())) 0 () () () 0 0) +54 'cpdair' '' '' 53 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 1 0 REAL ()) 0 0 () () 0 () () () 0 0) +60 'ncol' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +61 'nlay' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +62 'icld' '' '' 59 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +63 'iaer' '' '' 59 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +64 'play' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +65 'plev' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +66 'tlay' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +67 'tlev' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +68 'tsfc' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +69 'h2ovmr' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +70 'o3vmr' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +71 'co2vmr' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +72 'ch4vmr' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +73 'n2ovmr' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +74 'o2vmr' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +75 'asdir' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +76 'asdif' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +77 'aldir' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +78 'aldif' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +79 'coszen' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (1 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +80 'adjes' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +81 'dyofyr' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +82 'scon' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) +(REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +83 'inflgsw' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +84 'iceflgsw' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +85 'liqflgsw' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0) +86 'cldfr' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +87 'taucld' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +88 'ssacld' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +89 'asmcld' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +90 'fsfcld' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +91 'cicewp' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +92 'cliqwp' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +93 'reice' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +94 'reliq' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +95 'tauaer' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +96 'ssaaer' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +97 'asmaer' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +98 'ecaer' '' '' 59 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (3 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') ()) +0 () () () 0 0) +99 'swuflx' '' '' 59 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +100 'swdflx' '' '' 59 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +101 'swhr' '' '' 59 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +102 'swuflxc' '' '' 59 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +103 'swdflxc' '' '' 59 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +104 'swhrc' '' '' 59 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DIMENSION DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () (2 0 ASSUMED_SHAPE ( +CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 +0 INTEGER ()) 0 '1') ()) 0 () () () 0 0) +107 'cpdair' '' '' 106 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 +DUMMY) (REAL 8 0 0 0 REAL ()) 0 0 () () 0 () () () 0 0) +) + +('__iso_c_binding' 0 2 'c_double' 0 3 'c_int' 0 4 'c_rrtmg_sw' 0 5 +'c_rrtmg_sw_init' 0 52 'naerec' 0 55 'nbndsw' 0 56 'parrrsw' 0 57 +'rrtmg_sw' 0 58 'rrtmg_sw_ini' 0 105 'rrtmg_sw_init' 0 108 'rrtmg_sw_rad' +0 109 'rrtmg_sw_wrapper' 0 110) diff --git a/Radiation.pyx b/Radiation.pyx index 71c7f7c6..38ad2da0 100644 --- a/Radiation.pyx +++ b/Radiation.pyx @@ -340,8 +340,8 @@ cdef class RadiationDyCOMS_RF01(RadiationBase): for k in xrange(kmin, kmax): ijk = ishift + jshift + k PV.tendencies[ - s_shift + ijk] += self.heating_rate[ijk] / DV.values[ijk + t_shift] - self.dTdt_rad[ijk] = self.heating_rate[ijk] / cpm_c(PV.values[ijk + qt_shift]) + s_shift + ijk] += self.heating_rate[ijk] / DV.values[ijk + t_shift] + self.dTdt_rad[ijk] = self.heating_rate[ijk] / cpm_c(PV.values[ijk + qt_shift]) return @@ -356,11 +356,9 @@ cdef class RadiationDyCOMS_RF01(RadiationBase): cdef class RadiationSmoke(RadiationBase): ''' Radiation for the smoke cloud case - Bretherton, C. S., and coauthors, 1999: An intercomparison of radiatively- driven entrainment and turbulence in a smoke cloud, as simulated by different numerical models. Quart. J. Roy. Meteor. Soc., 125, 391-423. Full text copy. - ''' diff --git a/ReferenceState.pyx b/ReferenceState.pyx index 58d12303..0e4e8d63 100644 --- a/ReferenceState.pyx +++ b/ReferenceState.pyx @@ -8,6 +8,8 @@ cimport Grid cimport Restart cimport numpy as np import numpy as np +import pylab as plt + from NetCDFIO cimport NetCDFIO_Stats cimport ParallelMPI from scipy.integrate import odeint @@ -47,6 +49,9 @@ cdef class ReferenceState: :return: ''' + print(Pa.root_print('Reference state initialization')) + + self.sg = Thermodynamics.entropy(self.Pg, self.Tg, self.qtg, 0.0, 0.0) # Form a right hand side for integrating the hydrostatic equation to @@ -197,6 +202,32 @@ cdef class ReferenceState: NS.add_reference_profile('qi0', Gr, Pa, units=units, nice_name = nice_name, desc=desc) NS.write_reference_profile('qi0', qi_half[Gr.dims.gw:-Gr.dims.gw], Pa) + # plt.figure(figsize=(6,9)) + # plt.subplot(2,1,1) + # plt.plot(Gr.z_half,self.rho0_half, '-o', label='rho0_half') + # plt.plot(Gr.z_half[0:Gr.dims.gw],self.rho0_half[0:Gr.dims.gw], 'ro') + # plt.plot(Gr.z_half[Gr.dims.ng[2]-Gr.dims.gw:Gr.dims.ng[2]],self.rho0_half[Gr.dims.ng[2]-Gr.dims.gw:Gr.dims.ng[2]], 'ro') + # plt.plot(Gr.z,self.rho0, '-x', label='rho0') + # plt.plot(Gr.z[0:Gr.dims.gw], self.rho0[0:Gr.dims.gw], 'rx') + # plt.plot(Gr.z[Gr.dims.ng[2]-Gr.dims.gw:Gr.dims.ng[2]], self.rho0[Gr.dims.ng[2]-Gr.dims.gw:Gr.dims.ng[2]], 'rx') + # plt.title('rho0') + # plt.legend(loc=3) + # plt.ylabel('rho0') + # plt.xlabel('height z') + # + # plt.subplot(2,1,2) + # plt.plot(Gr.z_half,self.alpha0_half, '-o', label='alpha0_half') + # plt.plot(Gr.z_half[0:Gr.dims.gw],self.alpha0_half[0:Gr.dims.gw], 'ro') + # plt.plot(Gr.z_half[Gr.dims.ng[2]-Gr.dims.gw:Gr.dims.ng[2]],self.alpha0_half[Gr.dims.ng[2]-Gr.dims.gw:Gr.dims.ng[2]], 'ro') + # plt.plot(Gr.z,self.alpha0, '-x', label='alpha0') + # plt.plot(Gr.z[0:Gr.dims.gw],self.alpha0[0:Gr.dims.gw], 'rx') + # plt.plot(Gr.z[Gr.dims.ng[2]-Gr.dims.gw:Gr.dims.ng[2]],self.alpha0[Gr.dims.ng[2]-Gr.dims.gw:Gr.dims.ng[2]], 'rx') + # plt.ylabel('alpha0') + # plt.xlabel('height z') + # plt.legend(loc=2) + # plt.title('alpha0') + # plt.savefig('figs/Ref_rho0.pdf') + return cpdef restart(self, Grid.Grid Gr, Restart.Restart Re): diff --git a/Restart.pyx b/Restart.pyx index f77becf9..79a2f1a8 100644 --- a/Restart.pyx +++ b/Restart.pyx @@ -119,7 +119,7 @@ cdef class Restart: os.mkdir(path) Pa.barrier() - with open(path+ '/' + str(Pa.rank) + '.pkl', 'wb') as f: + with open(path + '/' + str(Pa.rank) + '.pkl', 'wb') as f: pickle.dump(self.restart_data, f,protocol=2) # No point keeping data in dictionary so empty it now diff --git a/SGS.pxd b/SGS.pxd index 4e251440..3aa8cdbf 100644 --- a/SGS.pxd +++ b/SGS.pxd @@ -31,6 +31,8 @@ cdef class UniformViscosity: cpdef stats_io(self, Grid.Grid Gr, DiagnosticVariables.DiagnosticVariables DV, PrognosticVariables.PrognosticVariables PV, Kinematics.Kinematics Ke, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + + cdef class Smagorinsky: cdef: double cs diff --git a/SGS.pyx b/SGS.pyx index 238c237f..5d8965e1 100644 --- a/SGS.pyx +++ b/SGS.pyx @@ -30,10 +30,18 @@ cdef extern from "sgs.h": double* strain_rate_mag, double cs, double prt) void smagorinsky_update_iles(Grid.DimStruct* dims, double* zl_half, double* visc, double* diff, double* buoy_freq, double* strain_rate_mag, double cs, double prt) + # double buoyancy_adjust(Grid.DimStruct* dims, double* visc, double* diff, double* buoy_freq, + # double* strain_rate_mag, double prt) + void const_viscosity_update(Grid.DimStruct* dims, double* visc, double* diff, double* buoy_freq, + double* strain_rate_mag, double const_visc, double prt) + + cdef class SGS: def __init__(self,namelist): if(namelist['sgs']['scheme'] == 'UniformViscosity'): self.scheme = UniformViscosity(namelist) + elif(namelist['sgs']['scheme'] == 'UniformViscosity_cond'): + self.scheme = UniformViscosity_cond(namelist) elif(namelist['sgs']['scheme'] == 'Smagorinsky'): self.scheme = Smagorinsky(namelist) elif(namelist['sgs']['scheme'] == 'TKE'): @@ -57,6 +65,8 @@ cdef class SGS: self.scheme.stats_io(Gr,DV,PV,Ke,NS,Pa) return + + cdef class UniformViscosity: def __init__(self,namelist): try: @@ -69,7 +79,9 @@ cdef class UniformViscosity: except: self.const_viscosity = 0.0 - self.is_init = False + self.is_init = False + print('SGS const, DV:', self.const_diffusivity) + print('SGS const, EV:', self.const_viscosity) return @@ -79,7 +91,7 @@ cdef class UniformViscosity: cpdef update(self, Grid.Grid Gr, DiagnosticVariables.DiagnosticVariables DV, - PrognosticVariables.PrognosticVariables PV, Kinematics.Kinematics Ke,Surface.SurfaceBase Sur, ParallelMPI.ParallelMPI Pa): + PrognosticVariables.PrognosticVariables PV, Kinematics.Kinematics Ke, Surface.SurfaceBase Sur, ParallelMPI.ParallelMPI Pa): cdef: @@ -102,6 +114,65 @@ cdef class UniformViscosity: return + +cdef class UniformViscosity_cond: + def __init__(self,namelist): + try: + self.const_diffusivity = namelist['sgs']['UniformViscosity']['diffusivity'] + except: + self.const_diffusivity = 0.0 + + try: + self.const_viscosity = namelist['sgs']['UniformViscosity']['viscosity'] + except: + self.const_viscosity = 0.0 + + self.prt = 1.0/3.0 + + print('SGS cond, DV:', self.const_diffusivity) + print('SGS cond, EV:', self.const_viscosity) + return + + cpdef initialize(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + + return + + + cpdef update(self, Grid.Grid Gr, DiagnosticVariables.DiagnosticVariables DV, + PrognosticVariables.PrognosticVariables PV, Kinematics.Kinematics Ke, Surface.SurfaceBase Sur, ParallelMPI.ParallelMPI Pa): + cdef: + Py_ssize_t diff_shift = DV.get_varshift(Gr,'diffusivity') + Py_ssize_t visc_shift = DV.get_varshift(Gr,'viscosity') + Py_ssize_t bf_shift = DV.get_varshift(Gr, 'buoyancy_frequency') + + # Alternative to loop below: + const_viscosity_update(&Gr.dims,&DV.values[visc_shift],&DV.values[diff_shift],&DV.values[bf_shift], + &Ke.strain_rate_mag[0],self.const_viscosity,self.prt) + # cdef double fb = 0 + # cdef Py_ssize_t i + # printed = False + # with nogil: + # for i in xrange(Gr.dims.npg): + # with gil: + # fb = buoyancy_adjust(&Gr.dims,&DV.values[visc_shift+i],&DV.values[diff_shift+i],&DV.values[bf_shift+i], + # &Ke.strain_rate_mag[0],self.prt) + # if printed == False and fb == 0: + # Pa.root_print('Ri > 1: setting Viscosity to zero, i = ') + # Pa.root_print(i) + # printed = True + # DV.values[diff_shift + i] = self.const_diffusivity * fb + # DV.values[visc_shift + i] = self.const_viscosity * fb + + + return + + cpdef stats_io(self, Grid.Grid Gr, DiagnosticVariables.DiagnosticVariables DV, + PrognosticVariables.PrognosticVariables PV, Kinematics.Kinematics Ke, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + + return + + + cdef class Smagorinsky: def __init__(self,namelist): try: @@ -162,10 +233,13 @@ cdef class Smagorinsky: cdef class TKE: def __init__(self,namelist): + # A Description of the Advanced Research WRF Version 3 (NCAR TECHNICAL NOTE, June 2008) + # ck: K = ck*l*sqrt(e) + # cn: l = cn*sqrt(e)/N (isotropic mixing) try: self.ck = namelist['sgs']['TKE']['ck'] except: - self.ck = 0.1 + self.ck = 0.1 #(0.15 380 or t_min_val < 100.15: + # print('t val out of default CC lookup table (100,380K): ', t_max_val, tk_max_val, t_min_val, tk_min_val) + # + # + # + # + # # ''' if qt in PV.name_index''' + # if 'qt' in PV_.name_index: + # qt_varshift = PV_.get_varshift(self.Gr,'qt') + # ql_varshift = DV_.get_varshift(self.Gr,'ql') + # + # s_max = np.nanmax(PV_.tendencies[s_varshift:qt_varshift]) + # sk_max = np.nanargmax(PV_.tendencies[s_varshift:qt_varshift]) + # s_min = np.nanmin(PV_.tendencies[s_varshift:qt_varshift]) + # sk_min = np.nanargmin(PV_.tendencies[s_varshift:qt_varshift]) + # qt_max = np.nanmax(PV_.tendencies[qt_varshift:-1]) + # qtk_max = np.nanargmax(PV_.tendencies[qt_varshift:-1]) + # qt_min = np.nanmin(PV_.tendencies[qt_varshift:-1]) + # qtk_min = np.nanargmin(PV_.tendencies[qt_varshift:-1]) + # + # s_max_val= np.nanmax(PV_.values[s_varshift:qt_varshift]) + # sk_max_val = np.nanargmax(PV_.values[s_varshift:qt_varshift]) + # s_min_val = np.nanmin(PV_.values[s_varshift:qt_varshift]) + # sk_min_val = np.nanargmin(PV_.tendencies[s_varshift:qt_varshift]) + # qt_max_val = np.nanmax(PV_.values[qt_varshift:(qt_varshift + ijk_max)]) + # qtk_max_val = np.nanargmax(PV_.values[qt_varshift:(qt_varshift + ijk_max)]) + # qt_min_val = np.nanmin(PV_.values[qt_varshift:(qt_varshift + ijk_max)]) + # qtk_min_val = np.nanargmin(PV_.values[qt_varshift:(qt_varshift + ijk_max)]) + # if qt_min_val < 0: + # print(message, ': qt val negative', qt_min_val, qtk_min_val) + # if qt_min_val < -1e-3: + # print(message, ': !!! qt val really negative') + # ql_max_val = np.nanmax(DV_.values[ql_varshift:(ql_varshift+ijk_max)]) + # ql_min_val = np.nanmin(DV_.values[ql_varshift:(ql_varshift+ijk_max)]) + # qlk_max_val = np.nanargmax(DV_.values[ql_varshift:(ql_varshift+ijk_max)]) + # qlk_min_val = np.nanargmin(DV_.values[ql_varshift:(ql_varshift+ijk_max)]) + # + # + # if np.isnan(PV_.tendencies[s_varshift:qt_varshift+ijk_max]).any() or np.isnan(PV_.values[s_varshift:qt_varshift+ijk_max]).any(): + # s_nan = np.isnan(PV_.tendencies[s_varshift:qt_varshift]).any() + # sk_nan = np.argmax(PV_.tendencies[s_varshift:qt_varshift]) + # qt_nan = np.isnan(PV_.tendencies[qt_varshift:(qt_varshift + ijk_max)]).any() + # qtk_nan = np.argmax(PV_.tendencies[qt_varshift:(qt_varshift + ijk_max)]) + # s_nan_val = np.isnan(PV_.values[s_varshift:qt_varshift]).any() + # sk_nan_val = np.argmax(PV_.values[s_varshift:qt_varshift]) + # qt_nan_val = np.isnan(PV_.values[qt_varshift:(qt_varshift + ijk_max)]).any() + # qtk_nan_val = np.argmax(PV_.values[qt_varshift:(qt_varshift + ijk_max)]) + # # if self.Pa.rank == 0: + # print('s tend: ', s_max, sk_max, s_min, sk_min, s_nan, sk_nan) + # print('s val: ', s_max_val, sk_max_val, s_min_val, sk_min_val, s_nan_val, sk_nan_val) + # print('qt tend: ', qt_max, qtk_max, qt_min, qtk_min, qt_nan, qtk_nan) + # print('qt val: ', qt_max_val, qtk_max_val, qt_min_val, qtk_min_val, qt_nan_val, qtk_nan_val) + # + # if np.isnan(DV_.values[ql_varshift:ql_varshift+ijk_max]).any(): + # ql_nan_val = np.isnan(DV_.values[ql_varshift:(ql_varshift+ijk_max)]).any() + # qlk_nan_val = np.argmax(DV_.values[ql_varshift:(ql_varshift+ijk_max)]) + # print('ql val: ', ql_max_val, qlk_max_val, ql_min_val, qlk_min_val, ql_nan_val, qlk_nan_val) + # + # + # for i in range(imin, imax): + # ishift = i * istride + # for j in range(jmin, jmax): + # jshift = j * jstride + # for k in range(kmin, kmax): + # ijk = ishift + jshift + k + # if np.isnan(PV_.values[s_varshift+ijk]): + # sk_arr = np.append(sk_arr,ijk) + # if np.isnan(PV_.values[qt_varshift+ijk]): + # qtk_arr = np.append(qtk_arr,ijk) + # + # if np.size(sk_arr) > 1: + # # self.output_nan_array(sk_arr,'s',message, self.Pa) + # if self.Pa.rank == 0: + # print('sk_arr size: ', sk_arr.shape) + # print('sk_arr:', sk_arr) + # # self.output_nan_array() + # if np.size(qtk_arr) > 1: + # # self.output_nan_array(qtk_arr,'qt',message, self.Pa) + # if self.Pa.rank == 0: + # print('qtk_arr size: ', qtk_arr.shape) + # print('qtk_arr: ', qtk_arr) + # + # + # + # + # # ''' if qt not in PV.name_index''' + # else: + # s_max = np.nanmax(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + # sk_max = np.nanargmax(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + # s_min = np.nanmin(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + # sk_min = np.nanargmin(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + # + # s_max_val= np.nanmax(PV_.values[s_varshift:(s_varshift + ijk_max)]) + # sk_max_val = np.nanargmax(PV_.values[s_varshift:(s_varshift + ijk_max)]) + # s_min_val = np.nanmin(PV_.values[s_varshift:(s_varshift + ijk_max)]) + # sk_min_val = np.nanargmin(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + # + # if np.isnan(PV_.tendencies[s_varshift:s_varshift+ijk_max]).any(): + # s_nan = np.isnan(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]).any() + # sk_nan = np.argmax(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + # s_nan_val = np.isnan(PV_.values[s_varshift:(s_varshift + ijk_max)]).any() + # sk_nan_val = np.argmax(PV_.values[s_varshift:(s_varshift + ijk_max)]) + # print('s tend: ', s_max, sk_max, s_min, sk_min, s_nan, sk_nan) + # print('s val: ', s_max_val, sk_max_val, s_min_val, sk_min_val, s_nan_val, sk_nan_val) + # + # + # if 1 == 1: + # for i in range(imin, imax): + # ishift = i * istride + # for j in range(jmin, jmax): + # jshift = j * jstride + # for k in range(kmin, kmax): + # ijk = ishift + jshift + k + # if np.isnan(PV_.values[s_varshift+ijk]): + # sk_arr = np.append(sk_arr,ijk) + # + # + # if np.size(sk_arr) > 1: + # # self.output_nan_array(sk_arr,'s',message, self.Pa) + # if self.Pa.rank == 0: + # print('sk_arr size: ', sk_arr.shape) + # print('sk_arr:', sk_arr) + # + # + # + # + # # ''' passive scalar ''' + # if 'phi' in PV_.name_index: + # phi_varshift = PV_.get_varshift(self.Gr,'phi') + # + # phi_max = np.nanmax(PV_.tendencies[phi_varshift:phi_varshift+ijk_max]) + # phik_max = np.nanargmax(PV_.tendencies[phi_varshift:phi_varshift+ijk_max]) + # phi_min = np.nanmin(PV_.tendencies[phi_varshift:phi_varshift+ijk_max]) + # phik_min = np.nanargmin(PV_.tendencies[phi_varshift:phi_varshift+ijk_max]) + # + # phi_max_val= np.nanmax(PV_.values[phi_varshift:phi_varshift+ijk_max]) + # phik_max_val = np.nanargmax(PV_.values[phi_varshift:phi_varshift+ijk_max]) + # phi_min_val = np.nanmin(PV_.values[phi_varshift:phi_varshift+ijk_max]) + # phik_min_val = np.nanargmin(PV_.tendencies[phi_varshift:phi_varshift+ijk_max]) + # + # if np.isnan(PV_.tendencies[phi_varshift:phi_varshift+ijk_max]).any() or np.isnan(PV_.values[phi_varshift:phi_varshift+ijk_max]).any(): + # phi_nan = np.isnan(PV_.tendencies[phi_varshift:phi_varshift+ijk_max]).any() + # phik_nan = np.argmax(PV_.tendencies[phi_varshift:phi_varshift+ijk_max]) + # phi_nan_val = np.isnan(PV_.values[phi_varshift:phi_varshift+ijk_max]).any() + # phik_nan_val = np.argmax(PV_.values[phi_varshift:phi_varshift+ijk_max]) + # # if self.Pa.rank == 0: + # print('phi tend: ', phi_max, phik_max, phi_min, phik_min, phi_nan, phik_nan) + # print('phi val: ', phi_max_val, phik_max_val, phi_min_val, phik_min_val, phi_nan_val, phik_nan_val) + # + # + # + # # cdef: + # # Py_ssize_t i,j,k,ijk + # # Py_ssize_t global_shift_i = Gr_.dims.indx_lo[0] + # # Py_ssize_t global_shift_j = Gr_.dims.indx_lo[1] + # # Py_ssize_t global_shift_k = Gr_.dims.indx_lo[2] + # # + # # Py_ssize_t var_shift + # # Py_ssize_t i2d, j2d, k2d + # # + # # Py_ssize_t ishift, jshift + # # Py_ssize_t gw = Gr_.dims.gw + # # + # # Py_ssize_t imin = Gr_.dims.gw + # # Py_ssize_t jmin = Gr_.dims.gw + # # Py_ssize_t kmin = Gr_.dims.gw + # # Py_ssize_t imax_ = Gr_.dims.nlg[0] - Gr_.dims.gw + # # Py_ssize_t jmax_ = Gr_.dims.nlg[1] - Gr_.dims.gw + # # Py_ssize_t kmax_ = Gr_.dims.nlg[2] - Gr_.dims.gw + # # Py_ssize_t i_s, i_w + # # + # # comm = MPI.COMM_WORLD + # # + # # cdef: + # # double [:,:] local_var + # # double [:,:] reduced_var + # # list pv_vars = ['s', 'w'] + # # + # # if np.isnan(PV_.tendencies).any(): + # # if s_nan == True: + # # print('s nan') + # # a = np.unravel_index(sk_nan, (imax,jmax,kmax)) + # # i_s = a[0] + # # print(i_s) + # # # if qt_nan == True: + # # # a = np.unravel_index(qtk_nan, (imax,jmax,kmax)) + # # # i_qt = a[0] + # # if w_nan == True: + # # print('w nan') + # # a = np.unravel_index(wk_nan, (imax,jmax,kmax)) + # # i_w = a[0] + # # # how to find indices of nan value? + # # # i_s = np.argwhere(x==1) + # # for var in pv_vars: + # # local_var = np.zeros((Gr_.dims.n[1], Gr_.dims.n[2]), dtype=np.double, order='c') + # # reduced_var = np.zeros((Gr_.dims.n[1], Gr_.dims.n[2]), dtype=np.double, order='c') + # # var_shift = PV_.get_varshift(self.Gr, var) + # # + # # if var == 'w': + # # i = i_w + # # elif var == 's': + # # print('') + # # i = i_s + # # with nogil: + # # if global_shift_i == 0: + # # # i = 0 + # # ishift = i * istride + # # for j in xrange(jmin, jmax_): + # # jshift = j * jstride + # # for k in xrange(kmin, kmax_): + # # ijk = ishift + jshift + k + # # j2d = global_shift_j + j - gw + # # k2d = global_shift_k + k - gw + # # local_var[j2d, k2d] = PV_.values[var_shift + ijk] + # # comm.Reduce(local_var, reduced_var, op=MPI.SUM) + # # del local_var + # # + # # plt.figure(1) + # # plt.contourf(reduced_var.T) + # # plt.title(var + ', ' + message) + # # # plt.show() + # # plt.savefig(self.outpath + '/' + var + '_' + message + '.png') + # # plt.close() + # + # # PV_.values[s_varshift+1] = np.nan + # + # return + # + # + # def output_nan_array(self,arr,name,message,ParallelMPI.ParallelMPI Pa): + # + # # return + # ## self.Pa.root_print('!!! output nan array, rank: ' + str(self.Pa.rank)) + # print(('!!! output nan array, rank: ' + str(Pa.rank))) + # print(self.outpath) + # # if 's' in self.PV.name_index: + # # self.NC.write_condstat('sk_arr', 'nan_array', self.sk_arr[:,:], self.Pa) + # # if 'qt' in self.PV.name_index: + # # self.NC.write_condstat('qtk_arr', 'nan_array', self.qt_arr[:,:], self.Pa) + # + # out_path = os.path.join(self.outpath, 'Nan') + # print('outpath', out_path) + # # print('time', self.TS.t, str(self.TS.t)) + # if Pa.rank == 0: + # try: + # os.mkdir(out_path) + # print('doing out_path', self.outpath) + # except: + # print('NOT doing out_path') + # pass + # try: + # path = out_path + '/' + name + 'k_arr' + str(self.TS.t) + '_' + message[0:2] + # # path = out_path + '/' + name + 'k_arr' + str(np.int(self.TS.t)) + '_' + str(np.int(self.count)) + # # path = out_path + '/sk_arr_' + str(np.int(self.TS.t)) + # os.mkdir(path) + # print('doing path', path) + # except: + # print('NOT doing path') + # pass + # Pa.barrier() + # + # # path = self.outpath + 'Nan/sk_arr_' + str(np.int(self.TS.t)) + # # path = out_path + '/sk_arr_' + str(np.int(self.TS.t)) + # with open(path+ '/' + str(Pa.rank) + '.pkl', 'wb') as f: # 'wb' = write binary file + # # pass + # print('dumping nan pickle: ', Pa.rank, path+ '/' + str(Pa.rank) + '.pkl') + # pickle.dump(arr, f,protocol=2) + # + # # self.count += 1 + # print('finished dumping nan pickle') + # + # return diff --git a/StochasticNoise.pxd b/StochasticNoise.pxd new file mode 100644 index 00000000..69381ee2 --- /dev/null +++ b/StochasticNoise.pxd @@ -0,0 +1,14 @@ +cimport Grid +cimport PrognosticVariables +cimport ParallelMPI +cimport ReferenceState +from NetCDFIO cimport NetCDFIO_Stats + +cdef class StochasticNoise: + cdef: + bint stoch_noise + double ampl + + cpdef initialize(self, ParallelMPI.ParallelMPI Pa) + cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Rs, PrognosticVariables.PrognosticVariables PV, Th, ParallelMPI.ParallelMPI Pa) + cpdef add_theta_noise(self, Grid.Grid Gr, ReferenceState.ReferenceState Rs, PrognosticVariables.PrognosticVariables PV, Th, ParallelMPI.ParallelMPI Pa) diff --git a/StochasticNoise.pyx b/StochasticNoise.pyx new file mode 100644 index 00000000..6d10875a --- /dev/null +++ b/StochasticNoise.pyx @@ -0,0 +1,105 @@ +#!python +#cython: boundscheck=False +#cython: wraparound=False +#cython: initializedcheck=False +#cython: cdivision=True + +cimport Grid +cimport PrognosticVariables +cimport ParallelMPI +cimport ReferenceState +# from NetCDFIO cimport NetCDFIO_Stats +from thermodynamic_functions cimport exner_c + +import numpy as np +cimport numpy as np +import pylab as plt + +cdef class StochasticNoise: + def __init__(self, namelist): + try: + self.stoch_noise = namelist['stochastic_noise']['flag'] + except: + return + + try: + self.ampl = namelist['stochastic_noise']['amplitude'] + except: + self.ampl = 0.01 + + return + + + + cpdef initialize(self,ParallelMPI.ParallelMPI Pa): + + if self.stoch_noise == True: + Pa.root_print('Stochastic Noise activated in every timestep, A = ' + str(self.ampl)) + + + return + + cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState RS, PrognosticVariables.PrognosticVariables PV, Th, ParallelMPI.ParallelMPI Pa): + + if self.stoch_noise: + self.add_theta_noise(Gr, RS, PV, Th, Pa) + + return + + + + cpdef add_theta_noise(self, Grid.Grid Gr, ReferenceState.ReferenceState RS, PrognosticVariables.PrognosticVariables PV, Th, ParallelMPI.ParallelMPI Pa): + Pa.root_print('SN!!!: updating Stochastic Noise') + cdef: + Py_ssize_t i,j,k + Py_ssize_t ishift, jshift + Py_ssize_t ijk + Py_ssize_t s_varshift = PV.get_varshift(Gr,'s') + + + np.random.seed(Pa.rank) + cdef: + double [:] theta_pert = np.random.random_sample(Gr.dims.npg) + double theta_pert_ + double t + double [:,:,:] pert = np.zeros((Gr.dims.nlg[0],Gr.dims.nlg[1],Gr.dims.nlg[2]),dtype=np.double,order='C') + double [:,:] pert_2d = np.zeros((Gr.dims.nlg[0],Gr.dims.nlg[2]),dtype=np.double,order='C') + + + + #Now loop and set the initial condition + for i in xrange(Gr.dims.nlg[0]): + ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + for j in xrange(Gr.dims.nlg[1]): + jshift = j * Gr.dims.nlg[2] + for k in xrange(Gr.dims.nlg[2]): + ijk = ishift + jshift + k + # potential temperature perturbation + if Gr.zl_half[k] < 200.0: + theta_pert_ = (theta_pert[ijk] - 0.5)* self.ampl + else: + theta_pert_ = 0.0 + t = theta_pert_*exner_c(RS.p0_half[k]) + + # PV.tendencies[s_varshift + ijk] += Th.entropy(RS.p0_half[k],t,0.0,0.0,0.0) + + # pert[i,j,k] = Th.entropy(RS.p0_half[k],t,0.0,0.0,0.0) + pert_2d[i,k] = Th.entropy(RS.p0_half[k],t,0.0,0.0,0.0) + + + plt.figure() + # plt.contourf(pert[:,5,:].T) + plt.contourf(pert_2d[:,:].T) + plt.colorbar() + # plt.show() + plt.close() + + #shift_advected + #PV.tendencies[shift_advected] + + return + + + + + diff --git a/Surface.pxd b/Surface.pxd index 7d6f0746..72845eb8 100644 --- a/Surface.pxd +++ b/Surface.pxd @@ -29,7 +29,7 @@ cdef class SurfaceBase: cpdef init_from_restart(self, Restart) cpdef restart(self, Restart) cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV, - DiagnosticVariables.DiagnosticVariables DV,ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS) + DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS) cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) @@ -214,4 +214,35 @@ cdef class SurfaceZGILS(SurfaceBase): -cdef double compute_z0(double z1, double windspeed) nogil + +cdef class SurfaceSoares(SurfaceBase): + cdef: + double theta_flux + # double qt_flux + double z0 + double gustiness + double buoyancy_flux + double theta_surface + double qt_surface + + cpdef initialize(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV,DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS) + cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + + +cdef class SurfaceSoares_moist(SurfaceBase): + cdef: + double theta_flux + # double qt_flux + double z0 + double gustiness + double buoyancy_flux + double theta_surface + double qt_surface + + cpdef initialize(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV,DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS) + cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + + +cdef double compute_z0(double z1, double windspeed) nogil \ No newline at end of file diff --git a/Surface.pyx b/Surface.pyx index cd9c9bc5..afe0dcbb 100644 --- a/Surface.pyx +++ b/Surface.pyx @@ -48,6 +48,19 @@ def SurfaceFactory(namelist, LatentHeat LH, ParallelMPI.ParallelMPI Par): casename = namelist['meta']['casename'] if casename == 'SullivanPatton': return SurfaceSullivanPatton(LH) + elif casename == 'ColdPoolDry_single_3D' or casename == 'ColdPoolDry_double_3D' \ + or casename == 'ColdPoolDry_triple_3D': + try: + Par.root_print('nml surface scheme: ' + namelist['surface']['scheme']) + if namelist['surface']['scheme'] == 'bulk': + return SurfaceColdPools(LH) + elif namelist['surface']['scheme'] == 'const': + return SurfaceSoares(LH) # constant sfc pot temp and pot temp-flux + else: + return SurfaceNone() + except: + Par.root_print('nml surface scheme: none') + return SurfaceNone() elif casename == 'Bomex': return SurfaceBomex(LH) elif casename == 'Gabls': @@ -69,7 +82,11 @@ def SurfaceFactory(namelist, LatentHeat LH, ParallelMPI.ParallelMPI Par): elif casename == 'CGILS': return SurfaceCGILS(namelist, LH, Par) elif casename == 'ZGILS': - return SurfaceZGILS(namelist, LH, Par) + return SurfaceZGILS(LH) + elif casename == 'DCBLSoares': + return SurfaceSoares(LH) + elif casename == 'DCBLSoares_moist': + return SurfaceSoares_moist(namelist, LH, Par) else: return SurfaceNone() @@ -80,7 +97,6 @@ cdef class SurfaceBase: return cpdef initialize(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): - self.u_flux = np.zeros(Gr.dims.nlg[0]*Gr.dims.nlg[1], dtype=np.double, order='c') self.v_flux = np.zeros(Gr.dims.nlg[0]*Gr.dims.nlg[1], dtype=np.double, order='c') self.qt_flux = np.zeros(Gr.dims.nlg[0]*Gr.dims.nlg[1], dtype=np.double, order='c') @@ -202,6 +218,7 @@ cdef class SurfaceBase: cdef class SurfaceNone(SurfaceBase): def __init__(self): + print('SurfaceNone') pass cpdef initialize(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): @@ -213,6 +230,97 @@ cdef class SurfaceNone(SurfaceBase): return + + + +# COLD POOLS (adapted from Rico Surface scheme) +cdef class SurfaceColdPools(SurfaceBase): + def __init__(self, LatentHeat LH): + print('calling Surface Cold Pool Scheme (Bulk Formalism)') + # Grant et al. 2016: C_D = 0.0015 for smooth land surface, e.g. sand or soil (Hartmann, 1993) + # Rico case: C_D = 0.001229 + self.cm =0.001229 # bulk coefficient for momentum flux (from Rico-case) + self.ch = 0.001094 # bulk coefficient for heat flux (from Rico-case) + # self.cq = 0.001133 + self.z0 = 0.00015 + self.gustiness = 0.0 + self.L_fp = LH.L_fp + self.Lambda_fp = LH.Lambda_fp + self.dry_case = True + return + + + cpdef initialize(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + Pa.root_print('Surface Cold Pool scheme: initialize') + SurfaceBase.initialize(self,Gr,Ref,NS,Pa) + + self.cm = self.cm*(log(20.0/self.z0)/log(Gr.zl_half[Gr.dims.gw]/self.z0))**2 + self.ch = self.ch*(log(20.0/self.z0)/log(Gr.zl_half[Gr.dims.gw]/self.z0))**2 + # self.cq = self.cq*(log(20.0/self.z0)/log(Gr.zl_half[Gr.dims.gw]/self.z0))**2 + + return + + cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV, + DiagnosticVariables.DiagnosticVariables DV,ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS): + Pa.root_print('Surface Cold Pool scheme: update') + cdef double pv_star = pv_c(Ref.Pg, Ref.qtg, Ref.qtg) + cdef double pd_star = Ref.Pg - pv_star + # self.s_star = (1.0-Ref.qtg) * sd_c(pd_star, Ref.Tg) + Ref.qtg * sv_c(pv_star,Ref.Tg) + self.s_star = sd_c(pd_star, Ref.Tg) + + + if Pa.sub_z_rank != 0: + return + + cdef: + Py_ssize_t i,j, ijk, ij + Py_ssize_t gw = Gr.dims.gw + Py_ssize_t imax = Gr.dims.nlg[0] + Py_ssize_t jmax = Gr.dims.nlg[1] + Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + Py_ssize_t jstride = Gr.dims.nlg[2] + Py_ssize_t istride_2d = Gr.dims.nlg[1] + Py_ssize_t u_shift = PV.get_varshift(Gr, 'u') + Py_ssize_t v_shift = PV.get_varshift(Gr, 'v') + Py_ssize_t s_shift = PV.get_varshift(Gr, 's') + # Py_ssize_t qt_shift = PV.get_varshift(Gr, 'qt') + Py_ssize_t t_shift = DV.get_varshift(Gr, 'temperature') + + double [:] windspeed = np.zeros(Gr.dims.nlg[0]*Gr.dims.nlg[1], dtype=np.double, order='c') + double ustar_ + double buoyancy_flux, theta_flux + double theta_surface = Ref.Tg * exner_c(Ref.Pg) + double cm_sqrt = sqrt(self.cm) + + compute_windspeed(&Gr.dims, &PV.values[u_shift], &PV.values[v_shift], &windspeed[0],Ref.u0, Ref.v0,self.gustiness) + + with nogil: + for i in xrange(gw, imax-gw): + for j in xrange(gw,jmax-gw): + ijk = i * istride + j * jstride + gw + ij = i * istride_2d + j + theta_flux = -self.ch * windspeed[ij] * (DV.values[t_shift + ijk]*exner_c(Ref.p0_half[gw]) - theta_surface) + + self.s_flux[ij] = -self.ch * windspeed[ij] * (PV.values[s_shift + ijk] - self.s_star) + # self.qt_flux[ij] = -self.cq * windspeed[ij] * (PV.values[qt_shift + ijk] - Ref.qtg) + # buoyancy_flux = g * ((theta_flux + (eps_vi-1.0)*(theta_surface*self.qt_flux[ij] + Ref.qtg * theta_flux))/(theta_surface*(1.0 + (eps_vi-1)*Ref.qtg))) + buoyancy_flux = g * theta_flux/theta_surface + self.u_flux[ij] = -self.cm * interp_2(windspeed[ij], windspeed[ij + istride_2d]) * (PV.values[u_shift + ijk] + Ref.u0) + self.v_flux[ij] = -self.cm * interp_2(windspeed[ij], windspeed[ij + 1])* (PV.values[v_shift + ijk] + Ref.v0) + ustar_ = cm_sqrt * windspeed[ij] + self.friction_velocity[ij] = ustar_ + + SurfaceBase.update(self, Gr, Ref, PV, DV, Pa, TS) + + return + + + cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + Pa.root_print('Surface Cold Pool scheme: stats io') + SurfaceBase.stats_io(self, Gr, NS, Pa) + return + +# SULLIVAN cdef class SurfaceSullivanPatton(SurfaceBase): def __init__(self, LatentHeat LH): self.theta_flux = 0.24 # K m/s @@ -232,10 +340,8 @@ cdef class SurfaceSullivanPatton(SurfaceBase): return - cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS): - # Since this case is completely dry, the computation of entropy flux from sensible heat flux is very simple if Pa.sub_z_rank != 0: @@ -251,7 +357,7 @@ cdef class SurfaceSullivanPatton(SurfaceBase): Py_ssize_t istride_2d = Gr.dims.nlg[1] Py_ssize_t temp_shift = DV.get_varshift(Gr, 'temperature') double T0 = Ref.p0_half[Gr.dims.gw] * Ref.alpha0_half[Gr.dims.gw]/Rd - + self.buoyancy_flux = self.theta_flux * exner(Ref.p0_half[Gr.dims.gw]) * g /T0 #Get the scalar flux (dry entropy only) @@ -313,21 +419,18 @@ cdef class SurfaceBomex(SurfaceBase): + self.qt_surface *self.theta_flux)) /(self.theta_surface*(1.0 + (eps_vi-1)*self.qt_surface))) - return cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV, - DiagnosticVariables.DiagnosticVariables DV,ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS): + DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS): if Pa.sub_z_rank != 0: return cdef : - Py_ssize_t i - Py_ssize_t j + Py_ssize_t i, j, ij, ijk Py_ssize_t gw = Gr.dims.gw - Py_ssize_t ijk, ij Py_ssize_t imax = Gr.dims.nlg[0] Py_ssize_t jmax = Gr.dims.nlg[1] Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] @@ -372,8 +475,6 @@ cdef class SurfaceBomex(SurfaceBase): cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): SurfaceBase.stats_io(self, Gr, NS, Pa) - - return @@ -393,19 +494,17 @@ cdef class SurfaceGabls(SurfaceBase): self.dry_case = True - return cpdef initialize(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): SurfaceBase.initialize(self,Gr,Ref,NS,Pa) - return cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV, - DiagnosticVariables.DiagnosticVariables DV,ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS): + DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS): if Pa.sub_z_rank != 0: return @@ -582,19 +681,16 @@ cdef class SurfaceDYCOMS_RF02(SurfaceBase): self.dry_case = False - - cpdef initialize(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): SurfaceBase.initialize(self,Gr,Ref,NS,Pa) self.windspeed = np.zeros(Gr.dims.nlg[0]*Gr.dims.nlg[1], dtype=np.double, order='c') self.T_surface = 292.5 # assuming same sst as DYCOMS RF01 - return cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV, - DiagnosticVariables.DiagnosticVariables DV,ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS): + DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS): if Pa.sub_z_rank != 0: return @@ -652,7 +748,6 @@ cdef class SurfaceDYCOMS_RF02(SurfaceBase): SurfaceBase.update(self, Gr, Ref, PV, DV, Pa, TS) - return cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): @@ -662,6 +757,7 @@ cdef class SurfaceDYCOMS_RF02(SurfaceBase): + cdef class SurfaceRico(SurfaceBase): def __init__(self, LatentHeat LH): self.cm =0.001229 @@ -713,7 +809,6 @@ cdef class SurfaceRico(SurfaceBase): double ustar_ double buoyancy_flux, theta_flux double theta_surface = Ref.Tg * exner_c(Ref.Pg) - double cm_sqrt = sqrt(self.cm) compute_windspeed(&Gr.dims, &PV.values[u_shift], &PV.values[v_shift], &windspeed[0],Ref.u0, Ref.v0,self.gustiness) @@ -998,6 +1093,228 @@ cdef class SurfaceZGILS(SurfaceBase): return + + + + +# _____________________ +# SOARES +# like in Sullivan case: z0 is given (ustar_fixed = 'False') +# like in Bomex case: surface heat and moisture flux constant and prescribed +cdef class SurfaceSoares(SurfaceBase): + def __init__(self, LatentHeat LH): + self.z0 = 0.001 #m (Roughness length) + self.gustiness = 0.001 #m/s, minimum surface windspeed for determination of u* + + self.L_fp = LH.L_fp + self.Lambda_fp = LH.Lambda_fp + self.dry_case = True + return + + @cython.boundscheck(False) #Turn off numpy array index bounds checking + @cython.wraparound(False) #Turn off numpy array wrap around indexing + @cython.cdivision(True) + cpdef initialize(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): # Sullivan + self.theta_surface = 300.0 # K + # self.qt_surface = 5.0e-3 # kg/kg + + self.theta_flux = 0.06 # K m/s + # self.qt_flux = 2.5e-5 # m/s + + # Bomex: + # self.buoyancy_flux = g * ((self.theta_flux + (eps_vi-1.0)*(self.theta_surface*self.qt_flux[ij] + self.qt_surface *self.theta_flux)) + # /(self.theta_surface*(1.0 + (eps_vi-1)*self.qt_surface))) # adopted from Bomex ?? + # Sullivan: + # # T0 = Ref.p0_half[Gr.dims.gw] * Ref.alpha0_half[Gr.dims.gw]/Rd + # # self.buoyancy_flux = self.theta_flux * exner(Ref.p0_half[Gr.dims.gw]) * g /T0 + self.buoyancy_flux = self.theta_flux/self.theta_surface * g + + SurfaceBase.initialize(self,Gr,Ref,NS,Pa) + return + + @cython.boundscheck(False) + @cython.wraparound(False) + @cython.cdivision(True) +# update adopted and modified from Sullivan + Bomex + cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS): + # Since this case is completely dry, the computation of entropy flux from sensible heat flux is very simple + + if Pa.sub_z_rank != 0: + return + + cdef: + Py_ssize_t i, j, ijk, ij + Py_ssize_t gw = Gr.dims.gw + Py_ssize_t imax = Gr.dims.nlg[0] + Py_ssize_t jmax = Gr.dims.nlg[1] + Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + Py_ssize_t jstride = Gr.dims.nlg[2] + Py_ssize_t istride_2d = Gr.dims.nlg[1] + Py_ssize_t temp_shift = DV.get_varshift(Gr, 'temperature') + Py_ssize_t s_shift = PV.get_varshift(Gr, 's') + # Py_ssize_t qt_shift = PV.get_varshift(Gr, 'qt') + # Py_ssize_t qv_shift = DV.get_varshift(Gr,'qv') + + # Scalar fluxes (adopted from Bomex) + with nogil: + for i in xrange(imax): + for j in xrange(jmax): + ijk = i * istride + j * jstride + gw + ij = i * istride_2d + j + # Sullivan + self.s_flux[ij] = cpd * self.theta_flux*exner_c(Ref.p0_half[gw])/DV.values[temp_shift+ijk] + # Bomex (entropy flux includes qt flux) + # self.s_flux[ij] = entropyflux_from_thetaflux_qtflux(self.theta_flux, self.qt_flux[ij], Ref.p0_half[gw], DV.values[temp_shift+ijk], PV.values[qt_shift+ijk], DV.values[qv_shift+ijk]) + + # Windspeed (adopted from Sullivan, equivalent to Bomex) + cdef: + Py_ssize_t u_shift = PV.get_varshift(Gr, 'u') + Py_ssize_t v_shift = PV.get_varshift(Gr, 'v') + double [:] windspeed = np.zeros(Gr.dims.nlg[0]*Gr.dims.nlg[1],dtype=np.double,order='c') + compute_windspeed(&Gr.dims, &PV.values[u_shift], &PV.values[v_shift], &windspeed[0],Ref.u0, Ref.v0,self.gustiness) + + # Surface Values: friction velocity, obukhov lenght (adopted from Sullivan, since same Surface parameters prescribed) + with nogil: + for i in xrange(1,imax): + for j in xrange(1,jmax): + ij = i * istride_2d + j + # __ ??? + self.friction_velocity[ij] = compute_ustar(windspeed[ij],self.buoyancy_flux,self.z0, Gr.dims.dx[2]/2.0) + # self.obukhov_length[ij] = -DV.values_2d[ustar_shift + ij]*DV.values_2d[ustar_shift + ij]*DV.values_2d[ustar_shift + ij]/self.buoyancy_flux/vkb + # __ ??? + + # Get the shear stresses (adopted from Sullivan, since same Surface parameters prescribed) + for i in xrange(1,imax-1): + for j in xrange(1,jmax-1): + ijk = i * istride + j * jstride + gw + ij = i * istride_2d + j + self.u_flux[ij] = -interp_2(self.friction_velocity[ij], self.friction_velocity[ij+istride_2d])**2/interp_2(windspeed[ij], windspeed[ij+istride_2d]) * (PV.values[u_shift + ijk] + Ref.u0) + self.v_flux[ij] = -interp_2(self.friction_velocity[ij], self.friction_velocity[ij+1])**2/interp_2(windspeed[ij], windspeed[ij+1]) * (PV.values[v_shift + ijk] + Ref.v0) + + SurfaceBase.update(self, Gr, Ref, PV, DV, Pa, TS) + return + + + cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + SurfaceBase.stats_io(self, Gr, NS, Pa) + return + + + +cdef class SurfaceSoares_moist(SurfaceBase): + def __init__(self, LatentHeat LH): + self.z0 = 0.001 #m (Roughness length) + self.gustiness = 0.001 #m/s, minimum surface windspeed for determination of u* + + self.L_fp = LH.L_fp + self.Lambda_fp = LH.Lambda_fp + self.dry_case = False + return + + @cython.boundscheck(False) #Turn off numpy array index bounds checking + @cython.wraparound(False) #Turn off numpy array wrap around indexing + @cython.cdivision(True) + cpdef initialize(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): # Sullivan + SurfaceBase.initialize(self,Gr,Ref,NS,Pa) + + # ### Bomex + # self.qt_flux = np.add(self.qt_flux,5.2e-5) # m/s + # self.theta_flux = 8.0e-3 # K m/s + # # self.ustar_ = 0.28 #m/s + # self.theta_surface = 299.1 #K + # self.qt_surface = 22.45e-3 # kg/kg + + ### Soares_moist + # self.qt_flux = 5.2e-5 # m/s (Soares: 2.5e-5) (Bomex: 5.2e-5) + self.qt_flux = np.add(self.qt_flux,2.5e-5) + # self.qt_flux = np.add(self.qt_flux,0.0) + self.theta_flux = 8.0e-3 # K m/s (Bomex) + self.theta_surface = 300.0 # K + self.qt_surface = 5.0e-3 # kg/kg + + # Bomex: + self.buoyancy_flux = g * ((self.theta_flux + (eps_vi-1.0)*(self.theta_surface*self.qt_flux[0] + + self.qt_surface *self.theta_flux)) + /(self.theta_surface*(1.0 + (eps_vi-1)*self.qt_surface))) + # # Sullivan: + # # T0 = Ref.p0_half[Gr.dims.gw] * Ref.alpha0_half[Gr.dims.gw]/Rd + # # self.buoyancy_flux = self.theta_flux * exner(Ref.p0_half[Gr.dims.gw]) * g /T0 + + return + + @cython.boundscheck(False) #Turn off numpy array index bounds checking + @cython.wraparound(False) #Turn off numpy array wrap around indexing + @cython.cdivision(True) +# update adopted and modified from Sullivan + Bomex + cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa, TimeStepping.TimeStepping TS): + # Since this case is completely dry, the computation of entropy flux from sensible heat flux is very simple + + if Pa.sub_z_rank != 0: + return + + cdef: + Py_ssize_t i, j, ij, ijk + Py_ssize_t gw = Gr.dims.gw + Py_ssize_t imax = Gr.dims.nlg[0] + Py_ssize_t jmax = Gr.dims.nlg[1] + Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + Py_ssize_t jstride = Gr.dims.nlg[2] + Py_ssize_t istride_2d = Gr.dims.nlg[1] + Py_ssize_t temp_shift = DV.get_varshift(Gr, 'temperature') + Py_ssize_t s_shift = PV.get_varshift(Gr, 's') + Py_ssize_t qt_shift = PV.get_varshift(Gr, 'qt') + Py_ssize_t qv_shift = DV.get_varshift(Gr,'qv') + + # Scalar fluxes (adopted from Bomex) + with nogil: + for i in xrange(imax): + for j in xrange(jmax): + ijk = i * istride + j * jstride + gw + ij = i * istride_2d + j + # Sullivan + # self.s_flux[ij] = cpd * self.theta_flux*exner_c(Ref.p0_half[gw])/DV.values[temp_shift+ijk] + # Bomex (entropy flux includes qt flux) + self.s_flux[ij] = entropyflux_from_thetaflux_qtflux(self.theta_flux, self.qt_flux[ij], Ref.p0_half[gw], + DV.values[temp_shift+ijk], PV.values[qt_shift+ijk], DV.values[qv_shift+ijk]) + + # Windspeed (adopted from Sullivan, equivalent to Bomex) + cdef: + Py_ssize_t u_shift = PV.get_varshift(Gr, 'u') + Py_ssize_t v_shift = PV.get_varshift(Gr, 'v') + double [:] windspeed = np.zeros(Gr.dims.nlg[0]*Gr.dims.nlg[1],dtype=np.double,order='c') + compute_windspeed(&Gr.dims, &PV.values[u_shift], &PV.values[v_shift], &windspeed[0],Ref.u0, Ref.v0,self.gustiness) + + # Surface Values: friction velocity, obukhov lenght (adopted from Sullivan, since same Surface parameters prescribed) + # cdef : + # Py_ssize_t lmo_shift = DV.get_varshift_2d(Gr, 'obukhov_length') + # Py_ssize_t ustar_shift = DV.get_varshift_2d(Gr, 'friction_velocity') + with nogil: + for i in xrange(1,imax): + for j in xrange(1,jmax): + ij = i * istride_2d + j + self.friction_velocity[ij] = compute_ustar(windspeed[ij],self.buoyancy_flux,self.z0, Gr.dims.dx[2]/2.0) + # self.obukhov_length[ij] = -self.friction_velocity[ij]*self.friction_velocity[ij]*self.friction_velocity[ij]/self.buoyancy_flux/vkb + + # Get the shear stresses (adopted from Sullivan, since same Surface parameters prescribed) + for i in xrange(1,imax-1): + for j in xrange(1,jmax-1): + ijk = i * istride + j * jstride + gw + ij = i * istride_2d + j + self.u_flux[ij] = -interp_2(self.friction_velocity[ij], self.friction_velocity[ij+istride_2d])**2/interp_2(windspeed[ij], windspeed[ij+istride_2d]) * (PV.values[u_shift + ijk] + Ref.u0) + self.v_flux[ij] = -interp_2(self.friction_velocity[ij], self.friction_velocity[ij+1])**2/interp_2(windspeed[ij], windspeed[ij+1]) * (PV.values[v_shift + ijk] + Ref.v0) + # PV.tendencies[u_shift + ijk] += self.u_flux[ij] * tendency_factor + # PV.tendencies[v_shift + ijk] += self.v_flux[ij] * tendency_factor + + SurfaceBase.update(self, Gr, Ref, PV, DV, Pa, TS) + + return + + cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + SurfaceBase.stats_io(self, Gr, NS, Pa) + + return + + cdef class SurfaceIsdac(SurfaceBase): def __init__(self,namelist, LatentHeat LH): self.gustiness = 0.0 @@ -1057,6 +1374,8 @@ cdef class SurfaceIsdac(SurfaceBase): SurfaceBase.stats_io(self, Gr, NS, Pa) return + + cdef class SurfaceIsdacCC(SurfaceBase): def __init__(self,namelist, LatentHeat LH): self.gustiness = 0.0 @@ -1226,6 +1545,8 @@ cdef class SurfaceMpace(SurfaceBase): return + + cdef class SurfaceSheba(SurfaceBase): def __init__(self,LatentHeat LH): self.ft = 7.98 diff --git a/Thermodynamics.pyx b/Thermodynamics.pyx index a15789e0..7085c21d 100644 --- a/Thermodynamics.pyx +++ b/Thermodynamics.pyx @@ -54,6 +54,7 @@ cdef class ClausiusClapeyron: try: Tmin = namelist['ClausiusClapeyron']['temperature_min'] + Par.root_print('Clausius-Clapeyron lookup table temperature_min given in namelist as '+str(Tmin)) except: Par.root_print('Clasius-Clayperon lookup table temperature_min not ' 'given in name list taking default of 100.15 K') @@ -61,6 +62,7 @@ cdef class ClausiusClapeyron: try: Tmax = namelist['ClausiusClapeyron']['temperature_max'] + Par.root_print('Clausius-Clapeyron lookup table temperature_max given in namelist as '+str(Tmax)) except: Par.root_print('Clasius-Clayperon lookup table temperature_max not ' 'given in name list taking default of 380.0 K') @@ -123,7 +125,8 @@ cdef class ClausiusClapeyron: def ThermodynamicsFactory(namelist, Micro, LatentHeat LH,ParallelMPI.ParallelMPI Par): if(Micro.thermodynamics_type=='dry'): + Par.root_print('ThermodynamicsDry') return ThermodynamicsDry(namelist,LH,Par) if(Micro.thermodynamics_type=='SA'): + Par.root_print('Thermodynamics SA') return ThermodynamicsSA(namelist,LH,Par) - diff --git a/ThermodynamicsDry.pxd b/ThermodynamicsDry.pxd index aa2f263f..ebee6658 100644 --- a/ThermodynamicsDry.pxd +++ b/ThermodynamicsDry.pxd @@ -27,4 +27,9 @@ cdef class ThermodynamicsDry: PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_Fields NF, ParallelMPI.ParallelMPI Pa) cpdef stats_io(self, Grid.Grid Gr, ReferenceState.ReferenceState RS, PrognosticVariables.PrognosticVariables PV, - DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) \ No newline at end of file + DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + + # __ + cpdef debug_tend(self,message, PrognosticVariables.PrognosticVariables PV_, + DiagnosticVariables.DiagnosticVariables DV_, + Grid.Grid Gr_) \ No newline at end of file diff --git a/ThermodynamicsDry.pyx b/ThermodynamicsDry.pyx index 5a7827a4..c76c45b1 100644 --- a/ThermodynamicsDry.pyx +++ b/ThermodynamicsDry.pyx @@ -116,7 +116,9 @@ cdef class ThermodynamicsDry: eos_update(&Gr.dims,&RS.p0_half[0],&PV.values[s_shift],&DV.values[t_shift],&DV.values[alpha_shift]) buoyancy_update(&Gr.dims,&RS.alpha0_half[0],&DV.values[alpha_shift],&DV.values[buoyancy_shift],&PV.tendencies[w_shift]) bvf_dry(&Gr.dims,&RS.p0_half[0],&DV.values[t_shift],&DV.values[theta_shift],&DV.values[bvf_shift]) - + # __ + # self.debug_tend('Thermodynamics Dry: ',PV,DV,Gr) + # __ return cpdef get_pv_star(self,t): @@ -214,3 +216,126 @@ cdef class ThermodynamicsDry: return + + + + +# _______________ + cpdef debug_tend(self, message, PrognosticVariables.PrognosticVariables PV_, DiagnosticVariables.DiagnosticVariables DV, + Grid.Grid Gr_): + + cdef: + Py_ssize_t u_varshift = PV_.get_varshift(Gr_,'u') + Py_ssize_t v_varshift = PV_.get_varshift(Gr_,'v') + Py_ssize_t w_varshift = PV_.get_varshift(Gr_,'w') + Py_ssize_t s_varshift = PV_.get_varshift(Gr_,'s') + Py_ssize_t b_shift = DV.get_varshift(Gr_, 'buoyancy') + Py_ssize_t alpha_shift = DV.get_varshift(Gr_, 'alpha') + Py_ssize_t t_shift = DV.get_varshift(Gr_, 'temperature') + + Py_ssize_t istride = Gr_.dims.nlg[1] * Gr_.dims.nlg[2] + Py_ssize_t jstride = Gr_.dims.nlg[2] + Py_ssize_t imax = Gr_.dims.nlg[0]-1 + Py_ssize_t jmax = Gr_.dims.nlg[1]-1 + Py_ssize_t kmax = Gr_.dims.nlg[2]-1 + Py_ssize_t gw = Gr_.dims.gw + Py_ssize_t ijk_max = imax*istride + jmax*jstride + kmax + + Py_ssize_t i, j, k, ijk, ishift, jshift + Py_ssize_t imin = 0#Gr_.dims.gw + Py_ssize_t jmin = 0#Gr_.dims.gw + Py_ssize_t kmin = 0#Gr_.dims.gw + # int [:] sk_arr = np.zeros(1, dtype=np.int) + # int [:] qtk_arr = np.zeros(1, dtype=int) + sk_arr = np.zeros(1,dtype=np.int) + qtk_arr = np.zeros(1,dtype=np.int) + + + + # if np.isnan(PV_.tendencies[0:s_varshift]).any() or np.isnan(PV_.values[0:s_varshift]).any(): + # if np.isnan(PV_.tendencies[s_varshift:s_varshift+ijk_max]).any() or np.isnan(PV_.values[s_varshift:s_varshift+ijk_max]).any(): + if np.isnan(PV_.tendencies).any() or np.isnan(PV_.values).any(): + u_max = np.nanmax(PV_.tendencies[u_varshift:v_varshift]) + uk_max = np.nanargmax(PV_.tendencies[u_varshift:v_varshift]) + u_min = np.nanmin(PV_.tendencies[u_varshift:v_varshift]) + uk_min = np.nanargmin(PV_.tendencies[u_varshift:v_varshift]) + v_max = np.nanmax(PV_.tendencies[v_varshift:w_varshift]) + vk_max = np.nanargmax(PV_.tendencies[v_varshift:w_varshift]) + v_min = np.nanmin(PV_.tendencies[v_varshift:w_varshift]) + vk_min = np.nanargmin(PV_.tendencies[v_varshift:w_varshift]) + w_max = np.nanmax(PV_.tendencies[w_varshift:s_varshift]) + wk_max = np.nanargmax(PV_.tendencies[w_varshift:s_varshift]) + w_min = np.nanmin(PV_.tendencies[w_varshift:s_varshift]) + wk_min = np.nanargmin(PV_.tendencies[w_varshift:s_varshift]) + + w_max_val= np.nanmax(PV_.values[w_varshift:s_varshift]) + wk_max_val = np.nanargmax(PV_.values[w_varshift:s_varshift]) + w_min_val = np.nanmin(PV_.values[w_varshift:s_varshift]) + wk_min_val = np.nanargmin(PV_.tendencies[w_varshift:s_varshift]) + + u_nan = np.isnan(PV_.tendencies[u_varshift:v_varshift]).any() + uk_nan = np.argmax(PV_.tendencies[u_varshift:v_varshift]) + v_nan = np.isnan(PV_.tendencies[v_varshift:w_varshift]).any() + vk_nan = np.argmax(PV_.tendencies[v_varshift:w_varshift]) + w_nan = np.isnan(PV_.tendencies[w_varshift:s_varshift]).any() + wk_nan = np.argmax(PV_.tendencies[w_varshift:s_varshift]) + w_nan_val = np.isnan(PV_.values[w_varshift:s_varshift]).any() + wk_nan_val = np.argmax(PV_.values[w_varshift:s_varshift]) + + print(message, 'debugging (max, min, nan): ') + print('shifts', u_varshift, v_varshift, w_varshift, s_varshift, 'Gr.npg', (imax+2*gw)*(jmax+2*gw)*(kmax+2*gw)) + print('u tend: ', u_max, uk_max, u_min, uk_min, u_nan, uk_nan) + print('v tend: ', v_max, vk_max, v_min, vk_min, v_nan, vk_nan) + print('w tend: ', w_max, wk_max, w_min, wk_min, w_nan, wk_nan) + print('w val: ', w_max_val, wk_max_val, w_min_val, wk_min_val, w_nan_val, wk_nan_val) + + + s_max = np.nanmax(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + sk_max = np.nanargmax(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + s_min = np.nanmin(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + sk_min = np.nanargmin(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + s_nan = np.isnan(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]).any() + sk_nan = np.argmax(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + + s_max_val= np.nanmax(PV_.values[s_varshift:(s_varshift + ijk_max)]) + sk_max_val = np.nanargmax(PV_.values[s_varshift:(s_varshift + ijk_max)]) + s_min_val = np.nanmin(PV_.values[s_varshift:(s_varshift + ijk_max)]) + sk_min_val = np.nanargmin(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + s_nan_val = np.isnan(PV_.values[s_varshift:(s_varshift + ijk_max)]).any() + sk_nan_val = np.argmax(PV_.values[s_varshift:(s_varshift + ijk_max)]) + + print('s tend: ', s_max, sk_max, s_min, sk_min, s_nan, sk_nan) + print('s val: ', s_max_val, sk_max_val, s_min_val, sk_min_val, s_nan_val, sk_nan_val) + + + # if np.isnan(DV.values).any(): + # buoyancy_update(&Gr.dims,&RS.alpha0_half[0],&DV.values[alpha_shift],&DV.values[buoyancy_shift],&PV.tendencies[w_shift]) + + b_nan_val = np.isnan(DV.values[b_shift:b_shift+ ijk_max]).any() + alpha_nan_val = np.isnan(DV.values[alpha_shift:alpha_shift+ ijk_max]).any() + t_nan_val = np.isnan(DV.values[t_shift:t_shift+ ijk_max]).any() + + bk_nan_val = np.argmax(DV.values[b_shift:b_shift+ ijk_max]) + alphak_nan_val = np.argmax(DV.values[alpha_shift:alpha_shift+ ijk_max]) + tk_nan_val = np.argmax(DV.values[t_shift:t_shift+ ijk_max]) + + b_max_val= np.nanmax(DV.values[b_shift:b_shift+ ijk_max]) + bk_max_val = np.nanargmax(DV.values[b_shift:b_shift+ ijk_max]) + b_min_val = np.nanmin(DV.values[b_shift:b_shift+ ijk_max]) + bk_min_val = np.nanargmin(DV.values[b_shift:b_shift+ ijk_max]) + + alpha_max_val= np.nanmax(DV.values[alpha_shift:alpha_shift+ ijk_max]) + alphak_max_val = np.nanargmax(DV.values[alpha_shift:alpha_shift+ ijk_max]) + alpha_min_val = np.nanmin(DV.values[alpha_shift:alpha_shift+ ijk_max]) + alphak_min_val = np.nanargmin(DV.values[alpha_shift:alpha_shift+ ijk_max]) + + t_max_val= np.nanmax(DV.values[t_shift:t_shift+ ijk_max]) + tk_max_val = np.nanargmax(DV.values[t_shift:t_shift+ ijk_max]) + t_min_val = np.nanmin(DV.values[t_shift:t_shift+ ijk_max]) + tk_min_val = np.nanargmin(DV.values[t_shift:t_shift+ ijk_max]) + + print('b val: ', b_max_val, bk_max_val, b_min_val, bk_min_val, b_nan_val, bk_nan_val) + print('alpha val: ', v_max, vk_max, v_min, vk_min, v_nan, vk_nan) + print('t val: ', t_max_val, tk_max_val, t_min_val, tk_min_val, t_nan_val, tk_nan_val) + + return \ No newline at end of file diff --git a/ThermodynamicsSA.pxd b/ThermodynamicsSA.pxd index 414332cb..6044ea4c 100644 --- a/ThermodynamicsSA.pxd +++ b/ThermodynamicsSA.pxd @@ -29,4 +29,9 @@ cdef class ThermodynamicsSA: cpdef stats_io(self, Grid.Grid Gr, ReferenceState.ReferenceState RS, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) cpdef liquid_stats(self, Grid.Grid Gr, ReferenceState.ReferenceState RS, PrognosticVariables.PrognosticVariables PV, - DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) \ No newline at end of file + DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + + # __ + cpdef debug_tend(self,message, PrognosticVariables.PrognosticVariables PV_, + DiagnosticVariables.DiagnosticVariables DV_, + Grid.Grid Gr_) diff --git a/ThermodynamicsSA.pyx b/ThermodynamicsSA.pyx index 06cf3950..81fe3b08 100644 --- a/ThermodynamicsSA.pyx +++ b/ThermodynamicsSA.pyx @@ -21,8 +21,14 @@ from libc.math cimport fmax, fmin cdef extern from "thermodynamics_sa.h": double alpha_c(double p0, double T, double qt, double qv) nogil void eos_c(Lookup.LookupStruct *LT, double(*lam_fp)(double), double(*L_fp)(double, double), double p0, double s, double qt, double *T, double *qv, double *ql, double *qi) nogil + # __ + void eos_c_refstate(Lookup.LookupStruct *LT, double(*lam_fp)(double), double(*L_fp)(double, double), double p0, double s, double qt, double *T, double *qv, double *ql, double *qi) nogil void eos_update(Grid.DimStruct *dims, Lookup.LookupStruct *LT, double(*lam_fp)(double), double(*L_fp)(double, double), double *p0, double *s, double *qt, double *T, - double * qv, double * ql, double * qi, double * alpha) + double * qv, double * ql, double * qi, double * alpha, int * n_nan) + # __ + # void eos_update(Grid.DimStruct *dims, Lookup.LookupStruct *LT, double(*lam_fp)(double), double(*L_fp)(double, double), double *p0, double *s, double *qt, double *T, + # double * qv, double * ql, double * qi, double * alpha) + # __ void buoyancy_update_sa(Grid.DimStruct *dims, double *alpha0, double *alpha, double *buoyancy, double *wt) void bvf_sa(Grid.DimStruct * dims, Lookup.LookupStruct * LT, double(*lam_fp)(double), double(*L_fp)(double, double), double *p0, double *T, double *qt, double *qv, double *theta_rho, double *bvf) void thetali_update(Grid.DimStruct *dims, double (*lam_fp)(double), double (*L_fp)(double, double), double *p0, double *T, double *qt, double *ql, double *qi, double *thetali) @@ -48,7 +54,6 @@ cdef class ThermodynamicsSA: def __init__(self, dict namelist, LatentHeat LH, ParallelMPI.ParallelMPI Par): ''' Init method saturation adjsutment thermodynamics. - :param namelist: dictionary :param LH: LatentHeat class instance :param Par: ParallelMPI class instance @@ -73,7 +78,6 @@ cdef class ThermodynamicsSA: ''' Initialize ThermodynamicsSA class. Adds variables to PrognocitVariables and DiagnosticVariables classes. Add output fields to NetCDFIO_Stats. - :param Gr: Grid class instance :param PV: PrognosticVariables class instance :param DV: DiagnsoticVariables class instance @@ -84,6 +88,10 @@ cdef class ThermodynamicsSA: PV.add_variable('s', 'J kg^-1 K^-1', 's', 'specific entropy', "sym", "scalar", Pa) PV.add_variable('qt', 'kg/kg', 'q_t', 'total water mass fraction', "sym", "scalar", Pa) + # __ + # Pa.root_print('adding passive scalar phi as prognostic variable') + # PV.add_variable('phi', '-', 'phi', 'passive scalar', "sym", "scalar", Pa) + # __ # Initialize class member arrays DV.add_variables('buoyancy' ,r'ms^{-1}', r'b', 'buoyancy','sym', Pa) @@ -158,7 +166,6 @@ cdef class ThermodynamicsSA: ''' Provide a python wrapper for the C function that computes the specific volume consistent with Pressel et al. 2015 equation (44). - :param p0: reference state pressure [Pa] :param T: thermodynamic temperature [K] :param qt: total water specific humidity [kg/kg] @@ -170,12 +177,13 @@ cdef class ThermodynamicsSA: cpdef eos(self, double p0, double s, double qt): cdef: double T, qv, qc, ql, qi, lam - eos_c(&self.CC.LT.LookupStructC, self.Lambda_fp, self.L_fp, p0, s, qt, &T, &qv, &ql, &qi) + # eos_c(&self.CC.LT.LookupStructC, self.Lambda_fp, self.L_fp, p0, s, qt, &T, &qv, &ql, &qi) + eos_c_refstate(&self.CC.LT.LookupStructC, self.Lambda_fp, self.L_fp, p0, s, qt, &T, &qv, &ql, &qi) return T, ql, qi cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState RS, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV): - + # print('Th_SA.update') # Get relevant variables shifts cdef: Py_ssize_t buoyancy_shift = DV.get_varshift(Gr, 'buoyancy') @@ -191,6 +199,8 @@ cdef class ThermodynamicsSA: Py_ssize_t thr_shift = DV.get_varshift(Gr, 'theta_rho') Py_ssize_t thl_shift = DV.get_varshift(Gr, 'thetali') + int n_nan = 0 + '''Apply qt clipping if requested. Defaults to on. Call this before other thermodynamic routines. Note that this changes the values in the qt array directly. Perhaps we should eventually move this to the timestepping function @@ -198,16 +208,36 @@ cdef class ThermodynamicsSA: ''' if self.do_qt_clipping: clip_qt(&Gr.dims, &PV.values[qt_shift], 1e-11) - - + # __ + # self.debug_tend('ThermodynamicsSA: ',PV,DV,Gr)#,Pa) + # __ + # print('calling eos_update') eos_update(&Gr.dims, &self.CC.LT.LookupStructC, self.Lambda_fp, self.L_fp, &RS.p0_half[0], &PV.values[s_shift], &PV.values[qt_shift], &DV.values[t_shift], &DV.values[qv_shift], &DV.values[ql_shift], - &DV.values[qi_shift], &DV.values[alpha_shift]) + &DV.values[qi_shift], &DV.values[alpha_shift], &n_nan) + # print('rs.p0_half', RS.p0_half[0]) + # eos_update(&Gr.dims, &self.CC.LT.LookupStructC, self.Lambda_fp, self.L_fp, &RS.p0_half[0], + # &PV.values[s_shift], &PV.values[qt_shift], &DV.values[t_shift], &DV.values[qv_shift], &DV.values[ql_shift], + # &DV.values[qi_shift], &DV.values[alpha_shift]) + + # __ + # print('number of nans in T:' + str(n_nan)) + # self.debug_tend('111',PV,DV,Gr)#,Pa) # nans in T + # __ buoyancy_update_sa(&Gr.dims, &RS.alpha0_half[0], &DV.values[alpha_shift], &DV.values[buoyancy_shift], &PV.tendencies[w_shift]) + # __ + # self.debug_tend('222',PV,DV,Gr)#,Pa) # nans in + # __ + bvf_sa( &Gr.dims, &self.CC.LT.LookupStructC, self.Lambda_fp, self.L_fp, &RS.p0_half[0], &DV.values[t_shift], &PV.values[qt_shift], &DV.values[qv_shift], &DV.values[thr_shift], &DV.values[bvf_shift]) + # # __ + # message = '333' + # self.debug_tend(message,PV,DV,Gr)#,Pa) + # # __ + thetali_update(&Gr.dims,self.Lambda_fp, self.L_fp, &RS.p0_half[0], &DV.values[t_shift], &PV.values[qt_shift], &DV.values[ql_shift],&DV.values[qi_shift],&DV.values[thl_shift]) return @@ -490,3 +520,216 @@ cdef class ThermodynamicsSA: NS.write_ts('lwp', lwp_weighted_sum, Pa) return + + + +# _______________ + cpdef debug_tend(self, message, PrognosticVariables.PrognosticVariables PV_, DiagnosticVariables.DiagnosticVariables DV, + Grid.Grid Gr_): + + cdef: + Py_ssize_t u_varshift = PV_.get_varshift(Gr_,'u') + Py_ssize_t v_varshift = PV_.get_varshift(Gr_,'v') + Py_ssize_t w_varshift = PV_.get_varshift(Gr_,'w') + Py_ssize_t s_varshift = PV_.get_varshift(Gr_,'s') + Py_ssize_t b_shift = DV.get_varshift(Gr_, 'buoyancy') + Py_ssize_t alpha_shift = DV.get_varshift(Gr_, 'alpha') + Py_ssize_t t_shift = DV.get_varshift(Gr_, 'temperature') + + Py_ssize_t istride = Gr_.dims.nlg[1] * Gr_.dims.nlg[2] + Py_ssize_t jstride = Gr_.dims.nlg[2] + Py_ssize_t imax = Gr_.dims.nlg[0]-1 + Py_ssize_t jmax = Gr_.dims.nlg[1]-1 + Py_ssize_t kmax = Gr_.dims.nlg[2]-1 + Py_ssize_t gw = Gr_.dims.gw + Py_ssize_t ijk_max = imax*istride + jmax*jstride + kmax + + Py_ssize_t i, j, k, ijk, ishift, jshift + Py_ssize_t imin = 0#Gr_.dims.gw + Py_ssize_t jmin = 0#Gr_.dims.gw + Py_ssize_t kmin = 0#Gr_.dims.gw + # int [:] sk_arr = np.zeros(1, dtype=np.int) + # int [:] qtk_arr = np.zeros(1, dtype=int) + sk_arr = np.zeros(1,dtype=np.int) + qtk_arr = np.zeros(1,dtype=np.int) + + if np.isnan(PV_.tendencies[0:s_varshift]).any() or np.isnan(PV_.values[0:s_varshift]).any(): + u_max = np.nanmax(PV_.tendencies[u_varshift:v_varshift]) + uk_max = np.nanargmax(PV_.tendencies[u_varshift:v_varshift]) + u_min = np.nanmin(PV_.tendencies[u_varshift:v_varshift]) + uk_min = np.nanargmin(PV_.tendencies[u_varshift:v_varshift]) + v_max = np.nanmax(PV_.tendencies[v_varshift:w_varshift]) + vk_max = np.nanargmax(PV_.tendencies[v_varshift:w_varshift]) + v_min = np.nanmin(PV_.tendencies[v_varshift:w_varshift]) + vk_min = np.nanargmin(PV_.tendencies[v_varshift:w_varshift]) + w_max = np.nanmax(PV_.tendencies[w_varshift:s_varshift]) + wk_max = np.nanargmax(PV_.tendencies[w_varshift:s_varshift]) + w_min = np.nanmin(PV_.tendencies[w_varshift:s_varshift]) + wk_min = np.nanargmin(PV_.tendencies[w_varshift:s_varshift]) + + w_max_val= np.nanmax(PV_.values[w_varshift:s_varshift]) + wk_max_val = np.nanargmax(PV_.values[w_varshift:s_varshift]) + w_min_val = np.nanmin(PV_.values[w_varshift:s_varshift]) + wk_min_val = np.nanargmin(PV_.tendencies[w_varshift:s_varshift]) + + u_nan = np.isnan(PV_.tendencies[u_varshift:v_varshift]).any() + uk_nan = np.argmax(PV_.tendencies[u_varshift:v_varshift]) + v_nan = np.isnan(PV_.tendencies[v_varshift:w_varshift]).any() + vk_nan = np.argmax(PV_.tendencies[v_varshift:w_varshift]) + w_nan = np.isnan(PV_.tendencies[w_varshift:s_varshift]).any() + wk_nan = np.argmax(PV_.tendencies[w_varshift:s_varshift]) + w_nan_val = np.isnan(PV_.values[w_varshift:s_varshift]).any() + wk_nan_val = np.argmax(PV_.values[w_varshift:s_varshift]) + + print(message, 'debugging (max, min, nan): ') + print('shifts', u_varshift, v_varshift, w_varshift, s_varshift, 'Gr.npg', (imax+2*gw)*(jmax+2*gw)*(kmax+2*gw)) + print('u tend: ', u_max, uk_max, u_min, uk_min, u_nan, uk_nan) + print('v tend: ', v_max, vk_max, v_min, vk_min, v_nan, vk_nan) + print('w tend: ', w_max, wk_max, w_min, wk_min, w_nan, wk_nan) + print('w val: ', w_max_val, wk_max_val, w_min_val, wk_min_val, w_nan_val, wk_nan_val) + + + if np.isnan(DV.values).any(): + b_nan_val = np.isnan(DV.values[b_shift:b_shift+ ijk_max]).any() + alpha_nan_val = np.isnan(DV.values[alpha_shift:alpha_shift+ ijk_max]).any() + t_nan_val = np.isnan(DV.values[t_shift:t_shift+ ijk_max]).any() + + bk_nan_val = np.argmax(DV.values[b_shift:b_shift+ ijk_max]) + alphak_nan_val = np.argmax(DV.values[alpha_shift:alpha_shift+ ijk_max]) + tk_nan_val = np.argmax(DV.values[t_shift:t_shift+ ijk_max]) + + b_max_val= np.nanmax(DV.values[b_shift:b_shift+ ijk_max]) + bk_max_val = np.nanargmax(DV.values[b_shift:b_shift+ ijk_max]) + b_min_val = np.nanmin(DV.values[b_shift:b_shift+ ijk_max]) + bk_min_val = np.nanargmin(DV.values[b_shift:b_shift+ ijk_max]) + + alpha_max_val= np.nanmax(DV.values[alpha_shift:alpha_shift+ ijk_max]) + alphak_max_val = np.nanargmax(DV.values[alpha_shift:alpha_shift+ ijk_max]) + alpha_min_val = np.nanmin(DV.values[alpha_shift:alpha_shift+ ijk_max]) + alphak_min_val = np.nanargmin(DV.values[alpha_shift:alpha_shift+ ijk_max]) + + t_max_val= np.nanmax(DV.values[t_shift:t_shift+ ijk_max]) + tk_max_val = np.nanargmax(DV.values[t_shift:t_shift+ ijk_max]) + t_min_val = np.nanmin(DV.values[t_shift:t_shift+ ijk_max]) + tk_min_val = np.nanargmin(DV.values[t_shift:t_shift+ ijk_max]) + + print('b val: ', b_max_val, bk_max_val, b_min_val, bk_min_val, b_nan_val, bk_nan_val) + print('alpha val: ', v_max, vk_max, v_min, vk_min, v_nan, vk_nan) + print('t val: ', t_max_val, tk_max_val, t_min_val, tk_min_val, t_nan_val, tk_nan_val) + + + + if 'qt' in PV_.name_index: + qt_varshift = PV_.get_varshift(Gr_,'qt') + ql_varshift = DV.get_varshift(Gr_, 'ql') + + s_max = np.nanmax(PV_.tendencies[s_varshift:qt_varshift]) + sk_max = np.nanargmax(PV_.tendencies[s_varshift:qt_varshift]) + s_min = np.nanmin(PV_.tendencies[s_varshift:qt_varshift]) + sk_min = np.nanargmin(PV_.tendencies[s_varshift:qt_varshift]) + qt_max = np.nanmax(PV_.tendencies[qt_varshift:(qt_varshift + ijk_max)]) + qtk_max = np.nanargmax(PV_.tendencies[qt_varshift:(qt_varshift + ijk_max)]) + qt_min = np.nanmin(PV_.tendencies[qt_varshift:(qt_varshift + ijk_max)]) + qtk_min = np.nanargmin(PV_.tendencies[qt_varshift:(qt_varshift + ijk_max)]) + + s_max_val= np.nanmax(PV_.values[s_varshift:qt_varshift]) + sk_max_val = np.nanargmax(PV_.values[s_varshift:qt_varshift]) + s_min_val = np.nanmin(PV_.values[s_varshift:qt_varshift]) + sk_min_val = np.nanargmin(PV_.tendencies[s_varshift:qt_varshift]) + qt_max_val = np.nanmax(PV_.values[qt_varshift:(qt_varshift + ijk_max)]) + qtk_max_val = np.nanargmax(PV_.values[qt_varshift:(qt_varshift + ijk_max)]) + qt_min_val = np.nanmin(PV_.values[qt_varshift:(qt_varshift + ijk_max)]) + qtk_min_val = np.nanargmin(PV_.values[qt_varshift:(qt_varshift + ijk_max)]) + # if qt_min_val < 0: + # print('ThSA: qt val negative') + ql_max_val = np.nanmax(DV.values[ql_varshift:(ql_varshift + ijk_max)]) + ql_min_val = np.nanmin(DV.values[ql_varshift:(ql_varshift + ijk_max)]) + qlk_max_val = np.nanargmax(DV.values[ql_varshift:(ql_varshift + ijk_max)]) + qlk_min_val = np.nanargmin(DV.values[ql_varshift:(ql_varshift + ijk_max)]) + + + if np.isnan(PV_.tendencies[s_varshift:qt_varshift+ijk_max]).any() or np.isnan(PV_.values[s_varshift:qt_varshift+ijk_max]).any(): + s_nan = np.isnan(PV_.tendencies[s_varshift:qt_varshift]).any() + sk_nan = np.argmax(PV_.tendencies[s_varshift:qt_varshift]) + qt_nan = np.isnan(PV_.tendencies[qt_varshift:(qt_varshift + ijk_max)]).any() + qtk_nan = np.argmax(PV_.tendencies[qt_varshift:(qt_varshift + ijk_max)]) + s_nan_val = np.isnan(PV_.values[s_varshift:qt_varshift]).any() + sk_nan_val = np.argmax(PV_.values[s_varshift:qt_varshift]) + qt_nan_val = np.isnan(PV_.values[qt_varshift:(qt_varshift + ijk_max)]).any() + qtk_nan_val = np.argmax(PV_.values[qt_varshift:(qt_varshift + ijk_max)]) + print('s tend: ', s_max, sk_max, s_min, sk_min, s_nan, sk_nan) + print('s val: ', s_max_val, sk_max_val, s_min_val, sk_min_val, s_nan_val, sk_nan_val) + print('qt tend: ', qt_max, qtk_max, qt_min, qtk_min, qt_nan, qtk_nan) + print('qt val: ', qt_max_val, qtk_max_val, qt_min_val, qtk_min_val, qt_nan_val, qtk_nan_val) + + if np.isnan(DV.values[ql_varshift:ql_varshift+ijk_max]).any(): + ql_nan_val = np.isnan(DV.values[ql_varshift:(ql_varshift + ijk_max)]).any() + qlk_nan_val = np.argmax(DV.values[ql_varshift:(ql_varshift + ijk_max)]) + print('ql val: ', ql_max_val, qlk_max_val, ql_min_val, qlk_min_val, ql_nan_val, qlk_nan_val) + + # #for name in PV.name_index.keys(): + # # with nogil: + # if 1 == 1: + # for i in range(imin, imax): + # ishift = i * istride + # for j in range(jmin, jmax): + # jshift = j * jstride + # for k in range(kmin, kmax): + # ijk = ishift + jshift + k + # if np.isnan(PV_.values[s_varshift+ijk]): + # sk_arr = np.append(sk_arr,ijk) + # if np.isnan(PV_.values[qt_varshift+ijk]): + # qtk_arr = np.append(qtk_arr,ijk) + # + # if np.size(sk_arr) > 1: + # # if Pa.rank == 0: + # if 1==1: + # print('sk_arr size: ', sk_arr.shape) + # print('sk_arr:', sk_arr) + # # self.output_nan_array() + # if np.size(qtk_arr) > 1: + # # if Pa.rank == 0: + # if 1==1: + # print('qtk_arr size: ', qtk_arr.shape) + # print('qtk_arr: ', qtk_arr) + + else: + s_max = np.nanmax(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + sk_max = np.nanargmax(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + s_min = np.nanmin(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + sk_min = np.nanargmin(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + s_nan = np.isnan(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]).any() + sk_nan = np.argmax(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + + s_max_val= np.nanmax(PV_.values[s_varshift:(s_varshift + ijk_max)]) + sk_max_val = np.nanargmax(PV_.values[s_varshift:(s_varshift + ijk_max)]) + s_min_val = np.nanmin(PV_.values[s_varshift:(s_varshift + ijk_max)]) + sk_min_val = np.nanargmin(PV_.tendencies[s_varshift:(s_varshift + ijk_max)]) + s_nan_val = np.isnan(PV_.values[s_varshift:(s_varshift + ijk_max)]).any() + sk_nan_val = np.argmax(PV_.values[s_varshift:(s_varshift + ijk_max)]) + + # if Pa.rank == 0: + if 1==1: + print('s tend: ', s_max, sk_max, s_min, sk_min, s_nan, sk_nan) + print('s val: ', s_max_val, sk_max_val, s_min_val, sk_min_val, s_nan_val, sk_nan_val) + + + # if 1 == 1: + # for i in range(imin, imax): + # ishift = i * istride + # for j in range(jmin, jmax): + # jshift = j * jstride + # for k in range(kmin, kmax): + # ijk = ishift + jshift + k + # if np.isnan(PV_.values[s_varshift+ijk]): + # sk_arr = np.append(sk_arr,ijk) + # + # + # if np.size(sk_arr) > 1: + # # if Pa.rank == 0: + # if 1==1: + # print('sk_arr size: ', sk_arr.shape) + # print('sk_arr:', sk_arr) + + + return diff --git a/TimeStepping.pyx b/TimeStepping.pyx index 5e7483d9..6e4044c0 100644 --- a/TimeStepping.pyx +++ b/TimeStepping.pyx @@ -9,6 +9,7 @@ cimport PrognosticVariables as PrognosticVariables cimport DiagnosticVariables as DiagnosticVariables cimport Grid as Grid cimport Restart +#cimport mpi4py.mpi_c as mpi cimport mpi4py.libmpi as mpi import numpy as np @@ -220,7 +221,7 @@ cdef class TimeStepping: return cdef void compute_cfl_max(self,Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV,DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa): - + # Pa.root_print('Computing CFL Max') cdef: double cfl_max_local = -9999.0 double [3] dxi = Gr.dims.dxi @@ -251,6 +252,12 @@ cdef class TimeStepping: w = fmax(fabs( DV.values[DV.sedv_index[isedv]*Gr.dims.npg + ijk ] + PV.values[w_shift+ijk]), w) cfl_max_local = fmax(cfl_max_local, self.dt * (fabs(PV.values[u_shift + ijk])*dxi[0] + fabs(PV.values[v_shift+ijk])*dxi[1] + w*dxi[2])) + # problem: second term is nan + Pa.root_print('cfl_max_local: '+ str(cfl_max_local)) + Pa.root_print(str(self.dt * (fabs(PV.values[u_shift + ijk])*dxi[0] + fabs(PV.values[v_shift+ijk])*dxi[1] + w*dxi[2]))) # is a nan + # Pa.root_print('u: '+str(np.amax(PV.values[u_shift:v_shift])) + ', '+ str(np.amin(PV.values[u_shift:v_shift]))) + # Pa.root_print('v: '+str(np.amax(PV.values[v_shift:w_shift])) + ', '+ str(np.amin(PV.values[v_shift:w_shift]))) + # Pa.root_print('w: '+str(w)) mpi.MPI_Allreduce(&cfl_max_local,&self.cfl_max,1, mpi.MPI_DOUBLE,mpi.MPI_MAX,Pa.comm_world) diff --git a/Tracers.pxd b/Tracers.pxd index 8bc48ca3..95a48789 100644 --- a/Tracers.pxd +++ b/Tracers.pxd @@ -29,7 +29,6 @@ cdef class TracersNone: cdef class UpdraftTracers: cdef: - bint lcl_tracers Py_ssize_t index_lcl dict tracer_dict @@ -40,3 +39,21 @@ cdef class UpdraftTracers: DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa) cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + + + +# ___ +cdef class PassiveTracers: + cdef: + dict tracer_dict + Py_ssize_t kmin + Py_ssize_t kmax + double sum + + cpdef initialize(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV, + DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa) + cpdef update_cleanup(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV, + DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa) + cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + diff --git a/Tracers.pyx b/Tracers.pyx index 6b3ea9c6..2753536e 100644 --- a/Tracers.pyx +++ b/Tracers.pyx @@ -28,12 +28,17 @@ def TracersFactory(namelist): use_tracers = namelist['tracers']['use_tracers'] except: use_tracers = False - if use_tracers: + # if use_tracers: + if use_tracers == 'updraft': return UpdraftTracers(namelist) + elif use_tracers == 'passive': + return PassiveTracers(namelist) else: return TracersNone() + + cdef class TracersNone: def __init__(self): return @@ -51,6 +56,7 @@ cdef class TracersNone: cdef class UpdraftTracers: def __init__(self, namelist): + print('UpdraftTracers') if namelist['microphysics']['scheme'] == 'None_SA' or namelist['microphysics']['scheme'] == 'SB_Liquid': self.lcl_tracers = True @@ -208,4 +214,114 @@ cdef class UpdraftTracers: cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): if self.lcl_tracers: NS.write_ts('grid_lcl',Gr.zl_half[self.index_lcl], Pa) + return + + + + + + + + + + + + + +# __ +cdef class PassiveTracers: + def __init__(self, namelist): + + try: + self.kmin = namelist['tracers']['kmin'] + self.kmax = namelist['tracers']['kmax'] + except: + self.kmin = 0 + self.kmax = 100 + + self.sum = 0 + + return + + + cpdef initialize(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, NetCDFIO_Stats NS, + ParallelMPI.ParallelMPI Pa): + # Assemble a dictionary with the tracer information + # Can be expanded for different init heights or timescales + Pa.root_print('Passive Tracers') + self.tracer_dict = {} + self.tracer_dict['phi'] = {} + self.tracer_dict['phi']['kmin'] = self.kmin + self.tracer_dict['phi']['kmax'] = self.kmax + + PV.add_variable('phi', '-', 'phi', 'passive tracer', "sym", "scalar", Pa) + # >> new in PV.add_variable: nice_name = 'phi' (second time), desc = 'passive tracer' + NS.add_ts('phi_sum', Gr, Pa) + + # Initialize + # cdef: + # Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + # Py_ssize_t jstride = Gr.dims.nlg[2] + # Py_ssize_t i,j,k,ishift,jshift,ijk + # Py_ssize_t var_shift + # Py_ssize_t kmin = self.kmin #+ Gr.dims.gw + # Py_ssize_t kmax = self.kmax + Gr.dims.gw + + + # # # Initialize phi --> cannot be done here, since PV.values not yet initialised. Therefore tracer is initialized in Initialization.pyx + # var = 'phi' + # var_shift = PV.get_varshift(Gr, var) + # print('phi', var_shift) + # print(PV.values.shape) + # # with nogil: + # if 1 == 1: + # for i in xrange(Gr.dims.nlg[0]): + # ishift = i * Gr.dims.nlg[1] * Gr.dims.nlg[2] + # for j in xrange(Gr.dims.nlg[1]): + # jshift = j * Gr.dims.nlg[2] + # for k in xrange(kmin, kmax): + # ijk = ishift + jshift + k + # print(var_shift + ijk) + # PV.values[var_shift + ijk] = 1.0 + + return + + + cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV, + DiagnosticVariables.DiagnosticVariables DV,ParallelMPI.ParallelMPI Pa): + + return + + + cpdef update_cleanup(self, Grid.Grid Gr, ReferenceState.ReferenceState Ref, PrognosticVariables.PrognosticVariables PV, + DiagnosticVariables.DiagnosticVariables DV,ParallelMPI.ParallelMPI Pa): + # check volume integral + cdef: + Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + Py_ssize_t jstride = Gr.dims.nlg[2] + Py_ssize_t i,j,k,ishift,jshift,ijk + Py_ssize_t var_shift + double sum = 0 + + # print('!!! Ref.rho0', Ref.rho0.shape) + var = 'phi' + var_shift = PV.get_varshift(Gr, var) + with nogil: + for i in xrange(Gr.dims.gw,Gr.dims.nlg[0]-Gr.dims.gw): + for j in xrange(Gr.dims.gw,Gr.dims.nlg[1]-Gr.dims.gw): + for k in xrange(Gr.dims.gw,Gr.dims.nlg[2]-Gr.dims.gw): + ijk = i * istride + j * jstride + k + sum += Ref.rho0[k]*PV.values[var_shift + ijk] + # sum += PV.values[var_shift + ijk] + # Pa.root_print('phi sum: ' + str(sum)) + self.sum = sum + + + return + + + cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + + NS.write_ts('phi_sum', self.sum, Pa) + return \ No newline at end of file diff --git a/VisualizationOutput.pxd b/VisualizationOutput.pxd index 6406d6b9..5d8dd875 100644 --- a/VisualizationOutput.pxd +++ b/VisualizationOutput.pxd @@ -11,6 +11,9 @@ cdef class VisualizationOutput: str uuid public double last_vis_time public double frequency + # #__ + # Py_ssize_t count + # #__ cpdef initialize(self) cpdef write(self, Grid.Grid Gr, ReferenceState.ReferenceState RS, diff --git a/VisualizationOutput.pyx b/VisualizationOutput.pyx index 7c9259c4..2ee7b4b9 100644 --- a/VisualizationOutput.pyx +++ b/VisualizationOutput.pyx @@ -46,6 +46,9 @@ cdef class VisualizationOutput: cpdef initialize(self): self.last_vis_time = 0.0 + # #__ + # self.count = 0 + # #__ return @@ -83,7 +86,8 @@ cdef class VisualizationOutput: dict out_dict = {} comm = MPI.COMM_WORLD - try: + if 'ql' in DV.name_index.keys(): + # try: var_shift = DV.get_varshift(Gr, 'ql') with nogil: for i in xrange(imin, imax): @@ -103,7 +107,8 @@ cdef class VisualizationOutput: if Pa.rank == 0: out_dict['lwp'] = np.array(reduced_lwp,dtype=np.double) del reduced_lwp - except: + else: + # except: Pa.root_print('Trouble Writing LWP') @@ -112,26 +117,98 @@ cdef class VisualizationOutput: double [:,:] local_var double [:,:] reduced_var list pv_vars = ['qt', 's', 'w'] - list dv_vars = ['ql', 'diffusivity'] - - + list dv_vars = ['theta', 'temperature', 'diffusivity'] + + # __ + if 'qt' in PV.name_index.keys(): + # pv_vars = ['phi','qt', 's', 'w', 'v', 'u'] + dv_vars = ['theta','ql', 'diffusivity'] + # __ + + # # output in y-z plane + # for var in pv_vars: + # local_var = np.zeros((Gr.dims.n[1], Gr.dims.n[2]), dtype=np.double, order='c') + # reduced_var = np.zeros((Gr.dims.n[1], Gr.dims.n[2]), dtype=np.double, order='c') + # try: + # var_shift = PV.get_varshift(Gr, var) + # + # with nogil: + # if global_shift_i == 0: + # i = 0 + # ishift = i * istride + # for j in xrange(jmin, jmax): + # jshift = j * jstride + # for k in xrange(kmin, kmax): + # ijk = ishift + jshift + k + # j2d = global_shift_j + j - Gr.dims.gw + # k2d = global_shift_k + k - Gr.dims.gw + # local_var[j2d, k2d] = PV.values[var_shift + ijk] + # + # comm.Reduce(local_var, reduced_var, op=MPI.SUM) + # del local_var + # if Pa.rank == 0: + # out_dict[var] = np.array(reduced_var, dtype=np.double) + # del reduced_var + # + # + # + # except: + # Pa.root_print('Trouble Writing ' + var) + # + # + # for var in dv_vars: + # local_var = np.zeros((Gr.dims.n[1], Gr.dims.n[2]), dtype=np.double, order='c') + # reduced_var = np.zeros((Gr.dims.n[1], Gr.dims.n[2]), dtype=np.double, order='c') + # try: + # var_shift = DV.get_varshift(Gr, var) + # + # with nogil: + # if global_shift_i == 0: + # i = 0 + # ishift = i * istride + # for j in xrange(jmin, jmax): + # jshift = j * jstride + # for k in xrange(kmin, kmax): + # ijk = ishift + jshift + k + # j2d = global_shift_j + j - Gr.dims.gw + # k2d = global_shift_k + k - Gr.dims.gw + # local_var[j2d, k2d] = DV.values[var_shift + ijk] + # + # comm.Reduce(local_var, reduced_var, op=MPI.SUM) + # del local_var + # if Pa.rank == 0: + # out_dict[var] = np.array(reduced_var, dtype=np.double) + # del reduced_var + # + # except: + # Pa.root_print('Trouble Writing ' + var) + + + + + + + # vis output x-z plane + cdef Py_ssize_t j0 = np.int(Gr.dims.ng[1]/2) for var in pv_vars: - local_var = np.zeros((Gr.dims.n[1], Gr.dims.n[2]), dtype=np.double, order='c') - reduced_var = np.zeros((Gr.dims.n[1], Gr.dims.n[2]), dtype=np.double, order='c') - try: + local_var = np.zeros((Gr.dims.n[0], Gr.dims.n[2]), dtype=np.double, order='c') + reduced_var = np.zeros((Gr.dims.n[0], Gr.dims.n[2]), dtype=np.double, order='c') + if var in PV.name_index.keys(): + # try: var_shift = PV.get_varshift(Gr, var) with nogil: - if global_shift_i == 0: - i = 0 - ishift = i * istride - for j in xrange(jmin, jmax): - jshift = j * jstride + if global_shift_j == 0: + #j = 0 + #jshift = j * jstride + jshift = j0 * jstride + for i in xrange(imin, imax): + ishift = i * istride for k in xrange(kmin, kmax): ijk = ishift + jshift + k - j2d = global_shift_j + j - Gr.dims.gw + i2d = global_shift_i + i - Gr.dims.gw k2d = global_shift_k + k - Gr.dims.gw - local_var[j2d, k2d] = PV.values[var_shift + ijk] + local_var[i2d, k2d] = PV.values[var_shift + ijk] comm.Reduce(local_var, reduced_var, op=MPI.SUM) del local_var @@ -139,43 +216,43 @@ cdef class VisualizationOutput: out_dict[var] = np.array(reduced_var, dtype=np.double) del reduced_var - - - except: + else: + # except: Pa.root_print('Trouble Writing ' + var) - for var in dv_vars: - local_var = np.zeros((Gr.dims.n[1], Gr.dims.n[2]), dtype=np.double, order='c') - reduced_var = np.zeros((Gr.dims.n[1], Gr.dims.n[2]), dtype=np.double, order='c') + local_var = np.zeros((Gr.dims.n[0], Gr.dims.n[2]), dtype=np.double, order='c') + reduced_var = np.zeros((Gr.dims.n[0], Gr.dims.n[2]), dtype=np.double, order='c') try: var_shift = DV.get_varshift(Gr, var) with nogil: - if global_shift_i == 0: - i = 0 - ishift = i * istride - for j in xrange(jmin, jmax): - jshift = j * jstride + if global_shift_j == 0: + j = 0 + jshift = j * jstride + for i in xrange(imin, imax): + ishift = i * istride for k in xrange(kmin, kmax): ijk = ishift + jshift + k - j2d = global_shift_j + j - Gr.dims.gw + i2d = global_shift_i + i - Gr.dims.gw k2d = global_shift_k + k - Gr.dims.gw - local_var[j2d, k2d] = DV.values[var_shift + ijk] - + local_var[i2d, k2d] = DV.values[var_shift + ijk] comm.Reduce(local_var, reduced_var, op=MPI.SUM) del local_var if Pa.rank == 0: out_dict[var] = np.array(reduced_var, dtype=np.double) del reduced_var - - except: Pa.root_print('Trouble Writing ' + var) if Pa.rank == 0: + #__ + # with open(self.vis_path+ '/' + str(10000000 + np.int(self.last_vis_time)) + '_' + str(self.count) + '.pkl', 'wb') as f: + # pickle.dump(out_dict, f, protocol=2) + # self.count += 1 + #__ with open(self.vis_path+ '/' + str(10000000 + np.int(self.last_vis_time)) + '.pkl', 'wb') as f: pickle.dump(out_dict, f, protocol=2) diff --git a/generate_namelist.py b/generate_namelist.py index 7fbdc7bd..63112ab3 100644 --- a/generate_namelist.py +++ b/generate_namelist.py @@ -31,6 +31,12 @@ def main(): namelist = StableBubble() elif case_name == 'SaturatedBubble': namelist = SaturatedBubble() + elif case_name == 'ColdPoolDry_single_3D': + namelist = ColdPoolDry_3D('single') + elif case_name == 'ColdPoolDry_double_3D': + namelist = ColdPoolDry_3D('double') + elif case_name == 'ColdPoolDry_triple_3D': + namelist = ColdPoolDry_3D('triple') elif case_name == 'SullivanPatton': namelist = SullivanPatton() elif case_name == 'Bomex': @@ -61,8 +67,12 @@ def main(): namelist = CGILS_S12(is_p2, is_ctl_omega) elif case_name == 'ZGILS': namelist = ZGILS(zgils_loc) + elif case_name == 'DCBLSoares': + namelist = DCBLSoares() + elif case_name == 'DCBLSoares_moist': + namelist = DCBLSoares_moist() else: - print('Not a vaild case name') + print('Not a valid case name') exit() write_file(namelist) @@ -150,6 +160,130 @@ def SullivanPatton(): return namelist + +def ColdPoolDry_3D(number): + + namelist = {} + + namelist['grid'] = {} + namelist['grid']['dims'] = 3 + namelist['grid']['nx'] = 200 + namelist['grid']['ny'] = 200 + namelist['grid']['nz'] = 120 # height of 12km is sufficient (for dTh3K_z1000_r1000) + namelist['grid']['gw'] = 5 + namelist['grid']['dx'] = 100.0 + namelist['grid']['dy'] = 100.0 + namelist['grid']['dz'] = 100.0 + + namelist['init'] = {} + namelist['init']['dTh'] = 3.0 # temperature anomaly + namelist['init']['shape'] = 1 # shape of temperature anomaly: 1 = cos2-shape + namelist['init']['h'] = 2000.0 # initial height of temperature anomaly + namelist['init']['r'] = rstar # initial radius of temperature anomaly + namelist['init']['marg'] = 500. # width or margin (transition for temeprature anomaly) + if number == 'single': + namelist['init']['ic'] = namelist['grid']['nx'] / 2 + namelist['init']['jc'] = namelist['grid']['ny'] / 2 + elif number == 'double': + namelist['init']['sep'] = d # separation of CPs + # (ic, jc): point of collision; CP coordinates: (ic+-sep/2, jc) + elif number == 'triple': + namelist['init']['d'] = d # separation of CPs in equilateral triangle + namelist['init']['ic'] = np.int(np.double(namelist['grid']['nx']) / 2) + namelist['mpi'] = {} + namelist['mpi']['nprocx'] = 1 + namelist['mpi']['nprocy'] = 1 + namelist['mpi']['nprocz'] = 1 + + namelist['time_stepping'] = {} + namelist['time_stepping']['ts_type'] = 3 + namelist['time_stepping']['cfl_limit'] = 0.3 + namelist['time_stepping']['dt_initial'] = 10.0 + namelist['time_stepping']['dt_max'] = 10.0 + namelist['time_stepping']['t_max'] = 3600.0 + + namelist['thermodynamics'] = {} + namelist['thermodynamics']['latentheat'] = 'constant' + + namelist['microphysics'] = {} + namelist['microphysics']['scheme'] = 'None_Dry' + namelist['microphysics']['phase_partitioning'] = 'liquid_only' + + namelist['sgs'] = {} + namelist['sgs']['scheme'] = 'Smagorinsky' + # namelist['sgs']['scheme'] = 'UniformViscosity' + # namelist['sgs']['UniformViscosity'] = {} + # namelist['sgs']['UniformViscosity']['viscosity'] = 0.0 + # namelist['sgs']['UniformViscosity']['diffusivity'] = 0.0 + + namelist['diffusion'] = {} + namelist['diffusion']['qt_entropy_source'] = False + + namelist['momentum_transport'] = {} + namelist['momentum_transport']['order'] = 5 + + namelist['scalar_transport'] = {} + namelist['scalar_transport']['order'] = 5 + + namelist['damping'] = {} + namelist['damping']['scheme'] = 'Rayleigh' #'None' + namelist['damping']['Rayleigh'] = {} + namelist['damping']['Rayleigh']['gamma_r'] = 0.2 + namelist['damping']['Rayleigh']['z_d'] = 600 + + namelist['output'] = {} + namelist['output']['output_root'] = './' + + namelist['restart'] = {} + namelist['restart']['output'] = True + namelist['restart']['init_from'] = False + namelist['restart']['input_path'] = './' + namelist['restart']['frequency'] = 600.0 + + namelist['conditional_stats'] = {} + + namelist['stats_io'] = {} + namelist['stats_io']['stats_dir'] = 'stats' + namelist['stats_io']['auxiliary'] = ['None'] + namelist['stats_io']['frequency'] = 100.0 + + namelist['fields_io'] = {} + namelist['fields_io']['fields_dir'] = 'fields' + namelist['fields_io']['frequency'] = 100.0 + # namelist['fields_io']['diagnostic_fields'] = ['ql','temperature','buoyancy_frequency','viscosity'] + namelist['fields_io']['diagnostic_fields'] = ['temperature', 'theta'] + + namelist['meta'] = {} + if number == 'single': + namelist['meta']['casename'] = 'ColdPoolDry_single_3D' + namelist['meta']['simname'] = 'ColdPoolDry_single_3D' + elif number == 'double': + namelist['meta']['casename'] = 'ColdPoolDry_double_3D' + namelist['meta']['simname'] = 'ColdPoolDry_double_3D' + elif number == 'triple': + namelist['meta']['casename'] = 'ColdPoolDry_triple_3D' + namelist['meta']['simname'] = 'ColdPoolDry_triple_3D' + + namelist['surface'] = {} + # schemes: 'none', 'bulk', 'const' + namelist['surface']['scheme'] = 'none' + + namelist['visualization'] = {} + namelist['visualization']['frequency'] = 10000.0 + + namelist['tracers'] = {} + namelist['tracers']['use_tracers'] = 'passive' + # 1: same tracer in whole domain; 2: different tracer in initial anomaly vs. environment + namelist['tracers']['number'] = 1 + namelist['tracers']['kmin'] = 0 + namelist['tracers']['kmax'] = 10 + + return namelist + + + + + def SaturatedBubble(): namelist = {} @@ -289,7 +423,7 @@ def StableBubble(): namelist['restart']['input_path'] = './' namelist['restart']['frequency'] = 600.0 - namelist['conditional_stats'] = {} + namelist['conditional_stats'] = {} namelist['stats_io'] = {} namelist['stats_io']['stats_dir'] = 'stats' @@ -301,6 +435,9 @@ def StableBubble(): namelist['fields_io']['frequency'] = 100.0 namelist['fields_io']['diagnostic_fields'] = ['temperature','buoyancy_frequency'] + namelist['visualization'] = {} + namelist['visualization']['frequency'] = 60.0 + namelist['meta'] = {} namelist['meta']['simname'] = 'StableBubble' namelist['meta']['casename'] = 'StableBubble' @@ -343,6 +480,14 @@ def Bomex(): namelist['sgs'] = {} namelist['sgs']['scheme'] = 'Smagorinsky' + namelist['sgs']['Smagorinsky'] = {} + namelist['sgs']['Smagorinsky']['cs'] = 0.17 + namelist['sgs']['UniformViscosity'] = {} + namelist['sgs']['UniformViscosity']['viscosity'] = 1.2 + namelist['sgs']['UniformViscosity']['diffusivity'] = 3.6 + namelist['sgs']['TKE'] = {} + namelist['sgs']['TKE']['ck'] = 0.1 + namelist['sgs']['TKE']['cn'] = 0.76 namelist['diffusion'] = {} namelist['diffusion']['qt_entropy_source'] = False @@ -383,10 +528,17 @@ def Bomex(): namelist['conditional_stats']['frequency'] = 600.0 namelist['conditional_stats']['stats_dir'] = 'cond_stats' + namelist['visualization'] = {} + namelist['visualization']['frequency'] = 1800.0 + namelist['meta'] = {} namelist['meta']['simname'] = 'Bomex' namelist['meta']['casename'] = 'Bomex' + namelist['ClausiusClapeyron'] = {} + namelist['ClausiusClapeyron']['temperature_min'] = 100.15 + namelist['ClausiusClapeyron']['temperature_max'] = 500.0 + namelist['initialization'] = {} namelist['initialization']['random_seed_factor'] = 1 @@ -519,9 +671,11 @@ def DYCOMS_RF01(): namelist['sgs'] = {} namelist['sgs']['scheme'] = 'Smagorinsky' + #namelist['sgs']['UniformViscosity']['diffusivity'] = 4.0 + #namelist['sgs']['UniformViscosity']['viscosity'] = 3*4.0 namelist['sgs']['Smagorinsky'] = {} namelist['sgs']['Smagorinsky']['iles'] = True - + namelist['diffusion'] = {} namelist['diffusion']['qt_entropy_source'] = False @@ -548,7 +702,7 @@ def DYCOMS_RF01(): namelist['stats_io'] = {} namelist['stats_io']['stats_dir'] = 'stats' - namelist['stats_io']['auxiliary'] = ['DYCOMS', 'Flux'] + namelist['stats_io']['auxiliary'] = ['DYCOMS', 'Flux','TKE'] namelist['stats_io']['frequency'] = 60.0 namelist['fields_io'] = {} @@ -751,7 +905,7 @@ def SMOKE(): return namelist -def Rico(): +def Rico(): # Rico = Rain in Cumulus Over the Ocean namelist = {} @@ -1697,6 +1851,247 @@ def ZGILS(zgils_loc): return namelist + + + + +def DCBLSoares(): + # adopted from: "An eddy-diffusivity/mass-flux parametrization for dry and shallow cumulus convection", + # By P. M. M. SOARES, P. M. A. MIRANDA, A. P. SIEBESMA and J. TEIXEIRA, Q. J. R. Meteorol. Soc. (2004) + # modifications: qt initial profile and flux set to zero, since no dry thermodynamics without condensation given + + namelist = {} + + namelist['grid'] = {} + namelist['grid']['dims'] = 3 + # Soares (2004): domain size = 6400 x 6400 m, domain height = 3000 (?) m; dx = ?, dy = ?, dz = 20 m + # Nieuwstadt: domain size = ?, domain height = 2400m; dx = dy = 60 m, dz = 50-60 m + # IOP Paper, old code: domain size = 6400 x 6400 m, domain height = 3750 m + namelist['grid']['nx'] = 256 # IOP + namelist['grid']['ny'] = 256 # IOP + namelist['grid']['nz'] = 150 # IOP + namelist['grid']['gw'] = 3 # for 2nd order + namelist['grid']['dx'] = 25.0 # IOP + namelist['grid']['dy'] = 25.0 # IOP + namelist['grid']['dz'] = 25.0 # IOP + + namelist['mpi'] = {} + namelist['mpi']['nprocx'] = 1 + namelist['mpi']['nprocy'] = 1 + namelist['mpi']['nprocz'] = 1 + + namelist['time_stepping'] = {} + namelist['time_stepping']['ts_type'] = 3 # seems to be 3 in all cases??? + namelist['time_stepping']['cfl_limit'] = 0.3 # default: 0.7; IOP: 0.3 + namelist['time_stepping']['dt_initial'] = 10.0 + namelist['time_stepping']['dt_max'] = 10.0 + namelist['time_stepping']['t_max'] = 6*3600.0 + + namelist['thermodynamics'] = {} + namelist['thermodynamics']['latentheat'] = 'constant' # 'constant' or 'variable', for Clausius Clapeyron calculation + + namelist['microphysics'] = {} + namelist['microphysics']['scheme'] = 'None_Dry' # Bomex: 'None_SA'; options: 'None_Dry' (no qt as Progn. Var.), 'None_SA', 'SB_Liquid' + namelist['microphysics']['phase_partitioning'] = 'liquid_only' # seems to be this in all cases??? + + namelist['sgs'] = {} + namelist['sgs']['scheme'] = 'Smagorinsky' + namelist['sgs']['Smagorinsky'] = {} + namelist['sgs']['Smagorinsky']['cs'] = 0.17 + namelist['sgs']['UniformViscosity'] = {} + namelist['sgs']['UniformViscosity']['viscosity'] = 1.2 + namelist['sgs']['UniformViscosity']['diffusivity'] = 3.6 + + namelist['diffusion'] = {} + namelist['diffusion']['qt_entropy_source'] = False # seems to be set to False for all cases??? + + # 2 = second_order_m + # 32 = second_order_ml_m + namelist['momentum_transport'] = {} + namelist['momentum_transport']['order'] = 2 + # 2 = second_order_a + namelist['scalar_transport'] = {} + namelist['scalar_transport']['order'] = 2 + + namelist['damping'] = {} + namelist['damping']['scheme'] = 'Rayleigh' # no more 'DampingToDomainMean' ??? + namelist['damping']['Rayleigh'] = {} + namelist['damping']['Rayleigh']['gamma_r'] = 0.02 + namelist['damping']['Rayleigh']['z_d'] = 800.0 # ??? depth of damping layer? + + namelist['output'] = {} + namelist['output']['output_root'] = './' + + namelist['restart'] = {} + namelist['restart']['output'] = True + namelist['restart']['init_from'] = False + namelist['restart']['input_path'] = './' + namelist['restart']['frequency'] = 600.0 + + # profile outputs + namelist['stats_io'] = {} + namelist['stats_io']['stats_dir'] = 'stats' + namelist['stats_io']['auxiliary'] = ['Flux'] # AuxiliaryStatistics + namelist['stats_io']['frequency'] = 900.0 + + # field outputs + namelist['fields_io'] = {} + namelist['fields_io']['fields_dir'] = 'fields' + namelist['fields_io']['frequency'] = 1800.0 + namelist['fields_io']['diagnostic_fields'] = ['temperature','viscosity'] # defines diagnostic variable output fields (progn. variables output in restart files?!) + + # Conditional Statistics + namelist['conditional_stats'] ={} + namelist['conditional_stats']['classes'] = ['Spectra'] + namelist['conditional_stats']['frequency'] = 600.0 + namelist['conditional_stats']['stats_dir'] = 'cond_stats' + + namelist['meta'] = {} + namelist['meta']['simname'] = 'DCBLSoares' + namelist['meta']['casename'] = 'DCBLSoares' + + namelist['restart'] = {} + namelist['restart']['output'] = False + namelist['restart']['init_from'] = False + namelist['restart']['input_path'] = './' + namelist['restart']['frequency'] = 600.0 + + namelist['visualization'] = {} + namelist['visualization']['frequency'] = 1800.0 + + namelist['stochastic_noise'] = {} + namelist['stochastic_noise']['flag'] = False + namelist['stochastic_noise']['amplitude'] = 0.05 + + namelist['tracers'] = {} + namelist['tracers']['use_tracers'] = 'passive' + namelist['tracers']['kmin'] = 0 + namelist['tracers']['kmax'] = 10 + + return namelist + + + +def DCBLSoares_moist(): + # adopted from: "An eddy-diffusivity/mass-flux parametrization for dry and shallow cumulus convection", + # By P. M. M. SOARES, P. M. A. MIRANDA, A. P. SIEBESMA and J. TEIXEIRA, Q. J. R. Meteorol. Soc. (2004) + # modifications: qt initial profile and flux set to zero, since no dry thermodynamics without condensation given + namelist = {} + + namelist['grid'] = {} + namelist['grid']['dims'] = 3 + # Soares (2004): domain size = 6400 x 6400 m, domain height = 3000 (?) m; dx = ?, dy = ?, dz = 20 m + # Nieuwstadt: domain size = ?, domain height = 2400m; dx = dy = 60 m, dz = 50-60 m + # IOP Paper, old code: domain size = 6400 x 6400 m, domain height = 3750 m + namelist['grid']['nx'] = 256 # IOP + namelist['grid']['ny'] = 256 # IOP + namelist['grid']['nz'] = 150 # IOP + namelist['grid']['gw'] = 3 # for 2nd order + namelist['grid']['dx'] = 25.0 # IOP + namelist['grid']['dy'] = 25.0 # IOP + namelist['grid']['dz'] = 25.0 # IOP + + namelist['mpi'] = {} + namelist['mpi']['nprocx'] = 1 + namelist['mpi']['nprocy'] = 1 + namelist['mpi']['nprocz'] = 1 + + namelist['time_stepping'] = {} + namelist['time_stepping']['ts_type'] = 3 # seems to be 3 in all cases??? + namelist['time_stepping']['cfl_limit'] = 0.3 # default: 0.7; IOP: 0.3 + namelist['time_stepping']['dt_initial'] = 10.0 + namelist['time_stepping']['dt_max'] = 10.0 + namelist['time_stepping']['t_max'] = 6*3600.0 + + namelist['thermodynamics'] = {} + namelist['thermodynamics']['latentheat'] = 'constant' # 'constant' or 'variable', for Clausius Clapeyron calculation + + namelist['microphysics'] = {} + namelist['microphysics']['scheme'] = 'None_SA' # DCBL: 'None_Dry', Bomex: 'None_SA'; options: 'None_Dry' (no qt as Progn. Var.), 'None_SA', 'SB_Liquid' + namelist['microphysics']['phase_partitioning'] = 'liquid_only' # seems to be this in all cases??? + + namelist['sgs'] = {} + namelist['sgs']['scheme'] = 'Smagorinsky' + namelist['sgs']['Smagorinsky'] = {} + namelist['sgs']['Smagorinsky']['cs'] = 0.17 + namelist['sgs']['UniformViscosity'] = {} + namelist['sgs']['UniformViscosity']['viscosity'] = 1.2 + namelist['sgs']['UniformViscosity']['diffusivity'] = 3.6 + namelist['sgs']['TKE'] = {} + namelist['sgs']['TKE']['ck'] = 0.1 + namelist['sgs']['TKE']['cn'] = 0.76 + + namelist['diffusion'] = {} + namelist['diffusion']['qt_entropy_source'] = False # seems to be set to False for all cases??? + + # 2 = second_order_m + # 32 = second_order_ml_m + namelist['momentum_transport'] = {} + namelist['momentum_transport']['order'] = 4 + # 2 = second_order_a + namelist['scalar_transport'] = {} + namelist['scalar_transport']['order'] = 4 + + namelist['damping'] = {} + namelist['damping']['scheme'] = 'Rayleigh' # no more 'DampingToDomainMean' ??? + namelist['damping']['Rayleigh'] = {} + namelist['damping']['Rayleigh']['gamma_r'] = 0.02 + namelist['damping']['Rayleigh']['z_d'] = 800.0 # ??? depth of damping layer? + + namelist['output'] = {} + namelist['output']['output_root'] = './' + + namelist['restart'] = {} + namelist['restart']['output'] = True + namelist['restart']['init_from'] = False + namelist['restart']['input_path'] = './' + namelist['restart']['frequency'] = 600.0 + + # profile outputs + namelist['stats_io'] = {} + namelist['stats_io']['stats_dir'] = 'stats' + namelist['stats_io']['auxiliary'] = ['Fluxes'] # AuxiliaryStatistics + namelist['stats_io']['frequency'] = 600.0 + + # field outputs + namelist['fields_io'] = {} + namelist['fields_io']['fields_dir'] = 'fields' + namelist['fields_io']['frequency'] = 1800.0 + namelist['fields_io']['diagnostic_fields'] = ['temperature','viscosity'] # defines diagnostic variable output fields (progn. variables output in restart files?!) + + # Conditional Statistics + namelist['conditional_stats'] ={} + namelist['conditional_stats']['classes'] = ['Spectra'] + namelist['conditional_stats']['frequency'] = 600.0 + namelist['conditional_stats']['stats_dir'] = 'cond_stats' + + namelist['meta'] = {} + namelist['meta']['simname'] = 'DCBLSoares_moist' + namelist['meta']['casename'] = 'DCBLSoares_moist' + + namelist['restart'] = {} + namelist['restart']['output'] = False + namelist['restart']['init_from'] = False + namelist['restart']['input_path'] = './' + namelist['restart']['frequency'] = 600.0 + + namelist['visualization'] = {} + namelist['visualization']['frequency'] = 1800.0 + + namelist['tracers'] = {} + namelist['tracers']['use_tracers'] = 'passive' + namelist['tracers']['tracer_profile'] = 'smooth' + namelist['tracers']['kmin'] = 0 + namelist['tracers']['kmax'] = 10 + + namelist['ClausiusClapeyron'] = {} + namelist['ClausiusClapeyron']['temperature_min'] = 100.15 + namelist['ClausiusClapeyron']['temperature_max'] = 500.0 + + return namelist + + + def write_file(namelist): try: diff --git a/generate_parameters.py b/generate_parameters.py index 7f618558..77a4562d 100644 --- a/generate_parameters.py +++ b/generate_parameters.py @@ -42,9 +42,9 @@ def default(): # Surface Monin-Obukhov related parameters parameters['vkb'] = 0.35 # Von Karman constant from Businger 1971 used by Byun surface formulation - parameters['Pr0'] = 0.74 - parameters['beta_m'] = 4.7 - parameters['beta_h'] = parameters['beta_m']/parameters['Pr0'] + parameters['Pr0'] = 0.74 + parameters['beta_m'] = 4.7 + parameters['beta_h'] = parameters['beta_m']/parameters['Pr0'] parameters['gamma_m'] = 15.0 parameters['gamma_h'] = 9.0 @@ -102,4 +102,4 @@ def default(): if __name__ == "__main__": - main() + main() \ No newline at end of file diff --git a/setup.py b/setup.py index 3871d6ef..49e34b76 100644 --- a/setup.py +++ b/setup.py @@ -29,9 +29,13 @@ def get_netcdf_prefix(): extra_compile_args = [] extra_compile_args += ['-O3', '-march=native', '-Wno-unused', '-Wno-#warnings','-fPIC'] extra_objects=['./RRTMG/rrtmg_build/rrtmg_combined.o'] - netcdf_include = get_netcdf_include() - netcdf_lib = os.path.join(get_netcdf_prefix(), 'lib') - f_compiler = 'gfortran' + netcdf_include = '/opt/local/include' + netcdf_lib = '/opt/local/lib' + # netcdf_lib = os.path.join(get_netcdf_prefix(), 'lib') + # ubsteram: setup + # f_compiler = 'gfortran' + f_compiler = 'gfortran-mp-4.8' +# elif 'euler' in platform.node(): elif 'eu' in platform.node(): #Compile flags for euler @ ETHZ library_dirs = ['/cluster/apps/openmpi/1.6.5/x86_64/gcc_4.8.2/lib/'] @@ -57,10 +61,27 @@ def get_netcdf_prefix(): extra_compile_args+=['-std=c99', '-O3', '-march=native', '-Wno-unused', '-Wno-#warnings', '-Wno-maybe-uninitialized', '-Wno-cpp', '-Wno-array-bounds','-fPIC'] extra_objects=['./RRTMG/rrtmg_build/rrtmg_combined.o'] + netcdf_include = '/cluster/apps/netcdf/4.3.1/x86_64/gcc_4.8.2/openmpi_1.6.5/include' + netcdf_lib = '/cluster/apps/netcdf/4.3.1/x86_64/gcc_4.8.2/openmpi_1.6.5/lib' netcdf_include = '/share/apps/software/rhel6/software/netCDF/4.4.0-foss-2016a/include' netcdf_lib = '/share/apps/software/rhel6/software/netCDF/4.4.0-foss-2016a/lib' f_compiler = 'gfortran' + # # Central @ Caltech + # extra_compile_args+=['-std=c99', '-O3', '-march=native', '-Wno-unused', + # '-Wno-#warnings', '-Wno-maybe-uninitialized', '-Wno-cpp', '-Wno-array-bounds','-fPIC'] + # netcdf_include = '/central/software/netcdf-c/4.6.1/include' + # netcdf_lib = '/central/software/netcdf-c/4.6.1/lib' + + # # Fram @ Caltech + # netcdf_include = '/share/apps/software/rhel6/software/netCDF/4.4.0-foss-2016a/include' + # netcdf_lib = '/share/apps/software/rhel6/software/netCDF/4.4.0-foss-2016a/lib' + + # HPC@ Copenhagen University + extra_compile_args+=['-std=c99', '-O3', '-Wno-unused', + '-Wno-#warnings', '-Wno-maybe-uninitialized', '-Wno-cpp', '-Wno-array-bounds','-fPIC'] + netcdf_include = '/groups/ocean/software/netcdf4/gcc/4.4.1.1/include' + netcdf_lib = '/groups/ocean/software/netcdf4/gcc/4.4.1.1/lib' else: if platform.system()=='Linux': #Best guess at compile flags for a Linux computer @@ -221,7 +242,6 @@ def get_netcdf_prefix(): runtime_library_dirs=library_dirs) extensions.append(_ext) - _ext = Extension('SurfaceBudget', ['SurfaceBudget.pyx'], include_dirs=include_path, extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, runtime_library_dirs=library_dirs) @@ -256,6 +276,7 @@ def get_netcdf_prefix(): extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, runtime_library_dirs=library_dirs) extensions.append(_ext) + _ext = Extension('Tracers', ['Tracers.pyx'], include_dirs=include_path, extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, runtime_library_dirs=library_dirs) @@ -271,6 +292,14 @@ def get_netcdf_prefix(): runtime_library_dirs=library_dirs) extensions.append(_ext) + +# # Bettina +# _ext = Extension('StochasticNoise', ['StochasticNoise.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) + + #Build RRTMG rrtmg_compiled = os.path.exists('./RRTMG/rrtmg_build/rrtmg_combined.o') diff --git a/test_av/DiagnosticVariables.pxd b/test_av/DiagnosticVariables.pxd new file mode 100644 index 00000000..476c7207 --- /dev/null +++ b/test_av/DiagnosticVariables.pxd @@ -0,0 +1,34 @@ +cimport ParallelMPI +cimport Grid +from NetCDFIO cimport NetCDFIO_Stats +cdef class DiagnosticVariables: + cdef: + dict name_index + dict units + list index_name + Py_ssize_t nv + double [:] values + double [:] bc_type + long [:] sedv_index + Py_ssize_t nsedv + dict name_index_2d + dict units_2d + Py_ssize_t nv_2d + double [:] values_2d + void communicate_variable(self,Grid.Grid Gr,ParallelMPI.ParallelMPI PM, long nv) + cpdef add_variables(self, name, units, bc_type, ParallelMPI.ParallelMPI Pa) + # cpdef initialize(self,Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + cpdef initialize(self,Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef get_variable_array(self,name,Grid.Grid Gr) + cdef inline int get_nv(self, str variable_name): + return self.name_index[variable_name] + cdef inline int get_varshift(self, Grid.Grid Gr, str variable_name): + return self.name_index[variable_name] * Gr.dims.npg + cpdef val_nan(self,PA,message) + # cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + cpdef add_variables_2d(self, name, units) + + cdef inline int get_nv_2d(self, str variable_name): + return self.name_index_2d[variable_name] + cdef inline int get_varshift_2d(self, Grid.Grid Gr, str variable_name): + return self.name_index_2d[variable_name] * Gr.dims.nlg[0] * Gr.dims.nlg[1] \ No newline at end of file diff --git a/test_av/DiagnosticVariables.pyx b/test_av/DiagnosticVariables.pyx new file mode 100644 index 00000000..0af75786 --- /dev/null +++ b/test_av/DiagnosticVariables.pyx @@ -0,0 +1,196 @@ +#!python +#cython: boundscheck=False +#cython: wraparound=False +#cython: initializedcheck=False +#cython: cdivision=True + +cimport ParallelMPI +cimport Grid +# from NetCDFIO cimport NetCDFIO_Stats +import numpy as np +cimport numpy as np +cimport ParallelMPI +from cpython.mem cimport PyMem_Malloc, PyMem_Realloc, PyMem_Free +cimport mpi4py.libmpi as mpi + +cdef extern from "prognostic_variables.h": + void build_buffer(int nv, int dim, int s ,Grid.DimStruct *dims, double* values, double* buffer) + void buffer_to_values(int dim, int s, Grid.DimStruct *dims, double* values, double* buffer) + void set_bcs( int dim, int s, double bc_factor, Grid.DimStruct *dims, double* values) + +cdef class DiagnosticVariables: + def __init__(self): + self.name_index = {} + self.index_name = [] + self.units = {} + self.nv = 0 + self.bc_type = np.array([],dtype=np.double,order='c') + + self.name_index_2d = {} + self.units_2d = {} + self.nv_2d = 0 + # keep track of which indices are associated with sedimentation velocity + self.sedv_index = np.array([],dtype=np.int,order='c') + self.nsedv = 0 + + cpdef add_variables(self, name, units,bc_type, ParallelMPI.ParallelMPI Pa): + self.name_index[name] = self.nv + self.index_name.append(name) + self.units[name] = units + #Add bc type to array + if bc_type == "sym": + self.bc_type = np.append(self.bc_type,[1.0]) + elif bc_type =="asym": + self.bc_type = np.append(self.bc_type,[-1.0]) + else: + Pa.root_print("Not a valid bc_type. Killing simulation now!") + Pa.kill() + + if name[0:2] == 'w_': + self.sedv_index = np.append(self.sedv_index,self.nv) + self.nsedv += 1 + + self.nv = len(self.name_index.keys()) + return + + cpdef add_variables_2d(self, name, units): + self.name_index_2d[name] = self.nv_2d + self.units_2d[name] = units + self.nv_2d = len(self.name_index_2d.keys()) + + return + + cdef void communicate_variable(self, Grid.Grid Gr, ParallelMPI.ParallelMPI PM, long nv): + + cdef: + double* send_buffer + double* recv_buffer + long d, s + long var_shift, buffer_var_shift + long [:] shift = np.array([-1,1],dtype=np.int,order='c') + int ierr, source_rank, dest_rank + mpi.MPI_Status status + + ierr = mpi.MPI_Comm_rank(PM.cart_comm_world,&source_rank) + + var_shift = (nv) * Gr.dims.npg + for d in xrange(Gr.dims.dims): + buffer_var_shift = 0 + #Allocate memory for send and recv buffers. + send_buffer = PyMem_Malloc(Gr.dims.nbuffer[d] * sizeof(double)) + recv_buffer = PyMem_Malloc(Gr.dims.nbuffer[d] * sizeof(double)) + for s in shift: + + #Since we are only sending one variable at a time the first argument in buld_buffer should be 0 + # let's clean this up later + build_buffer(0, d, s,&Gr.dims,&self.values[var_shift],&send_buffer[0]) + + #Determine the MPI shifts + ierr = mpi.MPI_Cart_shift(PM.cart_comm_world,d,s,&source_rank,&dest_rank) + + + #Do send and recv given shift + ierr = mpi.MPI_Sendrecv(&send_buffer[0],Gr.dims.nbuffer[d],mpi.MPI_DOUBLE,dest_rank,0, + &recv_buffer[0],Gr.dims.nbuffer[d], + mpi.MPI_DOUBLE,source_rank,0,PM.cart_comm_world,&status) + + #If communicated values are to be used copy them into the correct location + if source_rank >= 0: + buffer_to_values(d, s,&Gr.dims,&self.values[var_shift],&recv_buffer[0]) + #If communicated values are not be used, set numerical boundary consitions + else: + set_bcs(d,s,self.bc_type[nv],&Gr.dims,&self.values[var_shift]) + + + #Important: Free memory associated with memory buffer to prevent memory leak + PyMem_Free(send_buffer) + PyMem_Free(recv_buffer) + + + return + + cpdef get_variable_array(self,name,Grid.Grid Gr): + index = self.name_index[name] + view = np.array(self.values).view() + view.shape = (self.nv,Gr.dims.nlg[0],Gr.dims.nlg[1],Gr.dims.nlg[2]) + return view[index,:,:,:] + + cpdef val_nan(self,PA,message): + if np.isnan(self.values).any(): + print('Nans found in Diagnostic Variables values') + print(message) + PA.kill() + return + + # cpdef initialize(self,Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + # self.values = np.empty((self.nv*Gr.dims.npg),dtype=np.double,order='c') + # self.values_2d = np.empty((self.nv_2d*Gr.dims.nlg[0]*Gr.dims.nlg[1]),dtype=np.double,order='c' ) + cpdef initialize(self,Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + self.values = np.empty((self.nv*Gr.dims.npg),dtype=np.double,order='c') + self.values_2d = np.empty((self.nv_2d*Gr.dims.nlg[0]*Gr.dims.nlg[1]),dtype=np.double,order='c' ) + + + # #Add prognostic variables to Statistics IO + # Pa.root_print('Setting up statistical output files for Prognostic Variables') + # for var_name in self.name_index.keys(): + # #Add mean profile + # NS.add_profile(var_name+'_mean',Gr,Pa) + # #Add mean of squares profile + # NS.add_profile(var_name+'_mean2',Gr,Pa) + # #Add mean of cubes profile + # NS.add_profile(var_name+'_mean3',Gr,Pa) + # #Add max profile + # NS.add_profile(var_name+'_max',Gr,Pa) + # #Add min profile + # NS.add_profile(var_name+'_min',Gr,Pa) + # #Add max ts + # NS.add_ts(var_name+'_max',Gr,Pa) + # #Add min ts + # NS.add_ts(var_name+'_min',Gr,Pa) + # for var_name in self.name_index_2d.keys(): + # #Add mean profile + # NS.add_ts(var_name+'_mean',Gr,Pa) + + return + + # cpdef stats_io(self, Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + # cdef: + # int var_shift + # double [:] tmp + # double tmp2 + # + # for var_name in self.name_index.keys(): + # Pa.root_print('Diagnostic Variables: write profile: ' + var_name) + # + # var_shift = self.get_varshift(Gr,var_name) + # + # #Compute and write mean + # tmp = Pa.HorizontalMean(Gr,&self.values[var_shift]) + # NS.write_profile(var_name + '_mean',tmp[Gr.dims.gw:-Gr.dims.gw],Pa) + # + # #Compute and write mean of squres + # tmp = Pa.HorizontalMeanofSquares(Gr,&self.values[var_shift],&self.values[var_shift]) + # NS.write_profile(var_name + '_mean2',tmp[Gr.dims.gw:-Gr.dims.gw],Pa) + # + # #Compute and write mean of cubes + # tmp = Pa.HorizontalMeanofCubes(Gr,&self.values[var_shift],&self.values[var_shift],&self.values[var_shift]) + # NS.write_profile(var_name + '_mean3',tmp[Gr.dims.gw:-Gr.dims.gw],Pa) + # + # #Compute and write maxes + # tmp = Pa.HorizontalMaximum(Gr,&self.values[var_shift]) + # NS.write_profile(var_name + '_max',tmp[Gr.dims.gw:-Gr.dims.gw],Pa) + # NS.write_ts(var_name+'_max',np.amax(tmp[Gr.dims.gw:-Gr.dims.gw]),Pa) + # + # #Compute and write mins + # tmp = Pa.HorizontalMinimum(Gr,&self.values[var_shift]) + # NS.write_profile(var_name + '_min',tmp[Gr.dims.gw:-Gr.dims.gw],Pa) + # NS.write_ts(var_name+'_min',np.amin(tmp[Gr.dims.gw:-Gr.dims.gw]),Pa) + # + # for var_name in self.name_index_2d.keys(): + # var_shift = self.get_varshift_2d(Gr,var_name) + # + # #Compute and write mean + # tmp2 = Pa.HorizontalMeanSurface(Gr,&self.values_2d[var_shift]) + # NS.write_ts(var_name + '_mean',tmp2,Pa) + # + # return diff --git a/test_av/Grid.pxd b/test_av/Grid.pxd new file mode 100644 index 00000000..d09f0c94 --- /dev/null +++ b/test_av/Grid.pxd @@ -0,0 +1,56 @@ +cimport ParallelMPI +cimport Restart + +cdef extern from "grid.h": + struct DimStruct: + + int dims + + int [3] n + int [3] ng + int [3] nl + int [3] nlg + int [3] indx_lo_g + int [3] indx_lo + + int npd + int npl + int npg + int gw + + int [3] nbuffer + int [3] ghosted_stride + + double [3] dx + double [3] dxi + +cdef class Grid: + cdef: + DimStruct dims + + double [:] x + double [:] x_half + double [:] y + double [:] y_half + double [:] z + double [:] z_half + + double [:] xl + double [:] xl_half + double [:] yl + double [:] yl_half + double [:] zl + double [:] zl_half + + void compute_global_dims(self) + void compute_local_dims(self,ParallelMPI.ParallelMPI Parallel) + void compute_coordinates(self) + + cpdef extract_local(self, double [:] global_array, int dim) + + cpdef extract_local_ghosted(self, double [:] global_array, int dim) + + cpdef restart(self, Restart.Restart Re) + + + diff --git a/test_av/Grid.pyx b/test_av/Grid.pyx new file mode 100644 index 00000000..64b20919 --- /dev/null +++ b/test_av/Grid.pyx @@ -0,0 +1,231 @@ +#!python +#cython: boundscheck=False +#cython: wraparound=False +#cython: initializedcheck=False +#cython: cdivision=True + +cimport mpi4py.libmpi as mpi +#cimport mpi4py.mpi_c as mpi +cimport ParallelMPI +cimport Restart +cimport numpy as np +import numpy as np +import time +cdef class Grid: + ''' + A class for storing information about the LES grid. + ''' + + # Gr.dims.n[i] = namelist['grid']['ni'] (e.g. n[0] = 'nx') --> total number of pts + # Gr.dims.ng[i] = Gr.dims.n[i] + 2*gw --> total number of pts incl. ghost points + # Gr.dims.nl[i] = Gr.dims.n[i] // mpi_dims[i] --> local number of pts (per processor) + # Gr.dims.nlg[i] = Gr.dims.nl[i] + 2*gw --> local number of pts incl ghost points + # i = 0,1,2 + + + def __init__(self,namelist,Parallel): + ''' + + :param namelist: Namelist dictionary + :param Parallel: ParallelMPI class + :return: + ''' + + self.dims.dims = namelist['grid']['dims'] + + #Get the grid spacing + self.dims.dx[0] = namelist['grid']['dx'] + self.dims.dx[1] = namelist['grid']['dy'] + self.dims.dx[2] = namelist['grid']['dz'] + + #Set the inverse grid spacing + self.dims.dxi[0] = 1.0/self.dims.dx[0] + self.dims.dxi[1] = 1.0/self.dims.dx[1] + self.dims.dxi[2] = 1.0/self.dims.dx[2] + + #Get the grid dimensions and ghost points + self.dims.gw = namelist['grid']['gw'] + self.dims.n[0] = namelist['grid']['nx'] + self.dims.n[1] = namelist['grid']['ny'] + self.dims.n[2] = namelist['grid']['nz'] + + #Compute the global and local dims + self.compute_global_dims() + self.compute_local_dims(Parallel) + self.compute_coordinates() + + return + + cdef inline void compute_global_dims(self): + ''' + Compute the dimensions of the global of the domain, including ghost points and store the to self.dims. + :return: + ''' + cdef int i + with nogil: + for i in range(self.dims.dims): + self.dims.ng[i] = self.dims.n[i] + 2*self.dims.gw + return + + cdef inline void compute_local_dims(self,ParallelMPI.ParallelMPI Parallel): + ''' + This function computes the local dimensions of the 3D array owned by each processor. No assumption is made + about the number of cores evenly dividing the number of global grid points in each directions. If the number of + grid points is not evenly divisible, we tack one additional point from the remainder onto each rank less the + the remainder. + :param Parallel: + :return: + ''' + cdef: + int i + int ierr = 0 + int maxdims = 3 + int [3] mpi_dims + int [3] mpi_periods + int [3] mpi_coords + int remainder = 0 + + ierr = mpi.MPI_Cart_get(Parallel.cart_comm_world,maxdims,mpi_dims,mpi_periods,mpi_coords) + for i in xrange(3): #Here we loop over all three dimensions even if they are empty + self.dims.nl[i] = self.dims.n[i]//mpi_dims[i] + remainder = self.dims.n[i]%mpi_dims[i] + if remainder > 0 and mpi_coords[i] < remainder: + self.dims.nl[i] += 1 + self.dims.nlg[i] = self.dims.nl[i] + 2 * self.dims.gw + + #Now compute the high and lo indicies for this processor + for i in xrange(3): + npts = 0 + nptsg = 0 + proc = 0 + + + while proc <= mpi_coords[i]: + self.dims.indx_lo[i] = npts + self.dims.indx_lo_g[i] = nptsg + npts += self.dims.n[i]//mpi_dims[i] + nptsg += self.dims.n[i]//mpi_dims[i] + 2 * self.dims.gw + remainder = self.dims.n[i]%mpi_dims[i] + if remainder >0 and proc < remainder: + npts += 1 + nptsg += 1 + proc += 1 + + self.dims.npd = np.max([self.dims.n[0],1])*np.max([self.dims.n[1],1])*np.max([self.dims.n[2],1]) + self.dims.npl = self.dims.nl[0] * self.dims.nl[1] * self.dims.nl[2] + self.dims.npg = self.dims.nlg[0] * self.dims.nlg[1] * self.dims.nlg[2] + + + #Compute the number of ghostpoint for mpi_buffers + self.dims.nbuffer[0] = self.dims.gw * np.max([self.dims.nlg[1] * self.dims.nlg[2], + self.dims.nlg[1], self.dims.nlg[2] ]) + self.dims.nbuffer[1] = self.dims.gw * np.max([self.dims.nlg[0] * self.dims.nlg[2], + self.dims.nlg[0], self.dims.nlg[2] ]) + self.dims.nbuffer[2] = self.dims.gw * np.max([self.dims.nlg[0] * self.dims.nlg[1], + self.dims.nlg[0], self.dims.nlg[1] ]) + + + self.dims.ghosted_stride[0] = np.max([self.dims.nlg[1] * self.dims.nlg[2], self.dims.nlg[1], self.dims.nlg[2]]) + self.dims.ghosted_stride[1] = np.max([1, self.dims.nlg[0]]) + self.dims.ghosted_stride[2] = 1 + + return + + cdef void compute_coordinates(self): + ''' + Compute the dimensional (with units) of meters coordiantes. x_half, y_half and z_half are + the grid cell center and x,y,z are at the grid cell edges. + :return: + ''' + + + self.x_half = np.empty((self.dims.n[0]+2*self.dims.gw),dtype=np.double,order='c') + self.x = np.empty((self.dims.n[0]+2*self.dims.gw),dtype=np.double,order='c') + + self.y_half = np.empty((self.dims.n[1]+2*self.dims.gw),dtype=np.double,order='c') + self.y = np.empty((self.dims.n[1]+2*self.dims.gw),dtype=np.double,order='c') + + self.z_half = np.empty((self.dims.n[2]+2*self.dims.gw),dtype=np.double,order='c') + self.z = np.empty((self.dims.n[2]+2*self.dims.gw),dtype=np.double,order='c') + + cdef int i, count = 0 + for i in xrange(-self.dims.gw,self.dims.n[2]+self.dims.gw,1): + self.z[count] = (i + 1) * self.dims.dx[2] + self.z_half[count] = (i+0.5)*self.dims.dx[2] + count += 1 + + count = 0 + for i in xrange(-self.dims.gw,self.dims.n[0]+self.dims.gw,1): + self.x[count] = (i + 1) * self.dims.dx[0] + self.x_half[count] = (i+0.5)*self.dims.dx[0] + count += 1 + + count = 0 + for i in xrange(-self.dims.gw,self.dims.n[1]+self.dims.gw,1): + self.y[count] = (i + 1) * self.dims.dx[1] + self.y_half[count] = (i+0.5)*self.dims.dx[1] + count += 1 + + + #Extract just the local components of the height coordinate + self.zl = self.extract_local_ghosted(self.z,2) + self.zl_half = self.extract_local_ghosted(self.zl,2) + + #Extract just the local components of the height coordinate + self.xl = self.extract_local_ghosted(self.x,0) + self.xl_half = self.extract_local_ghosted(self.xl,0) + + #Extract just the local components of the height coordinate + self.yl = self.extract_local_ghosted(self.y,1) + self.yl_half = self.extract_local_ghosted(self.yl,1) + + return + + cpdef extract_local(self,double [:] global_array, int dim): + pass + + cpdef extract_local_ghosted(self,double [:] global_array, int dim): + cdef int start = self.dims.indx_lo_g[dim] + cdef int end = self.dims.indx_lo_g[dim] + self.dims.nlg[dim] + #Force a copy with the return statement + return np.array(global_array[start:end],dtype=np.double) + + cpdef restart(self, Restart.Restart Re): + Re.restart_data['Gr'] = {} + Re.restart_data['Gr']['dims'] = self.dims.dims + Re.restart_data['Gr']['n'] = np.array([self.dims.n[0], + self.dims.n[1], + self.dims.n[2]]) + Re.restart_data['Gr']['ng'] = np.array([self.dims.ng[0], + self.dims.ng[1], + self.dims.ng[2]]) + Re.restart_data['Gr']['nl'] = np.array([self.dims.nl[0], + self.dims.nl[1], + self.dims.nl[2]]) + Re.restart_data['Gr']['nlg'] = np.array([self.dims.nlg[0], + self.dims.nlg[1], + self.dims.nlg[2]]) + Re.restart_data['Gr']['indx_lo_g'] = np.array([self.dims.indx_lo_g[0], + self.dims.indx_lo_g[1], + self.dims.indx_lo_g[2]]) + Re.restart_data['Gr']['indx_lo'] = np.array([self.dims.indx_lo[0], + self.dims.indx_lo[1], + self.dims.indx_lo[2]]) + Re.restart_data['Gr']['npd'] = self.dims.npd + Re.restart_data['Gr']['npl'] = self.dims.npl + Re.restart_data['Gr']['npg'] = self.dims.npg + Re.restart_data['Gr']['gw'] = self.dims.gw + Re.restart_data['Gr']['nbuffer'] = np.array([self.dims.nbuffer[0], + self.dims.nbuffer[1], + self.dims.nbuffer[2]]) + Re.restart_data['Gr']['nbuffer'] = np.array([self.dims.ghosted_stride[0], + self.dims.ghosted_stride[1], + self.dims.ghosted_stride[2]]) + Re.restart_data['Gr']['dx'] = np.array([self.dims.dx[0], + self.dims.dx[1], + self.dims.dx[2]]) + Re.restart_data['Gr']['dxi'] = np.array([self.dims.dxi[0], + self.dims.dxi[1], + self.dims.dxi[2]]) + + return diff --git a/test_av/MomentumAdvection.pyx b/test_av/MomentumAdvection.pyx new file mode 100644 index 00000000..756039af --- /dev/null +++ b/test_av/MomentumAdvection.pyx @@ -0,0 +1,131 @@ +#!python +#cython: boundscheck=False +#cython: wraparound=False +#cython: initializedcheck=False +#cython: cdivision=True + +cimport Grid +cimport PrognosticVariables +cimport ParallelMPI +cimport ReferenceState +from NetCDFIO cimport NetCDFIO_Stats + + +import numpy as np +cimport numpy as np + +cdef extern from "momentum_advection.h": + void compute_advective_tendencies_m(Grid.DimStruct *dims, double *rho0, double *rho0_half, + double *alpha0, double *alpha0_half, double *vel_advected, + double *vel_advecting, double *tendency, Py_ssize_t d_advected, + Py_ssize_t d_advecting, Py_ssize_t scheme) nogil +cdef class MomentumAdvection: + def __init__(self, namelist, ParallelMPI.ParallelMPI Pa): + try: + self.order = namelist['momentum_transport']['order'] + Pa.root_print('momentum transport: order: ' + np.str(self.order)) + except: + Pa.root_print( + 'momentum_transport order not given in namelist') + Pa.root_print('Killing simulation now!') + Pa.kill() + + return + + cpdef initialize(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + + #for i in xrange(Gr.dims.dims): + # NS.add_profile(PV.velocity_names_directional[i] + '_flux_z',Gr,Pa) + + return + + cpdef update(self, Grid.Grid Gr, ReferenceState.ReferenceState Rs, PrognosticVariables.PrognosticVariables PV, ParallelMPI.ParallelMPI Pa): + + cdef: + Py_ssize_t i_advecting # Direction of advecting velocity + Py_ssize_t i_advected # Direction of momentum component + # Shift to beginning of momentum (velocity) component in the + # PV.values array + Py_ssize_t shift_advected + # Shift to beginning of advecting velocity componentin the + # PV.values array + Py_ssize_t shift_advecting + + + for i_advected in xrange(Gr.dims.dims): + # Compute the shift to the starting location of the advected + # velocity in the PV values array + shift_advected = PV.velocity_directions[i_advected] * Gr.dims.npg + for i_advecting in xrange(Gr.dims.dims): + + # Compute the shift to the starting location of the advecting + # velocity in the PV values array + shift_advecting = PV.velocity_directions[ + i_advecting] * Gr.dims.npg + + # Compute the fluxes + compute_advective_tendencies_m(&Gr.dims, &Rs.rho0[0], &Rs.rho0_half[0], &Rs.alpha0[0], &Rs.alpha0_half[0], + &PV.values[shift_advected], &PV.values[shift_advecting], + &PV.tendencies[shift_advected], i_advected, i_advecting, self.order) + return + + + cpdef stats_io(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + # cdef: + # Py_ssize_t i_advected, i_advecting = 2, shift_flux, k + # double[:] tmp + # double [:] tmp_interp = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + # + # + # for i_advected in xrange(Gr.dims.dims): + # shift_flux = i_advected * Gr.dims.dims* Gr.dims.npg + i_advecting * Gr.dims.npg + # tmp = Pa.HorizontalMean(Gr, &self.flux[shift_flux]) + # if i_advected < 2: + # for k in xrange(Gr.dims.gw,Gr.dims.nlg[2]-Gr.dims.gw): + # tmp_interp[k] = 0.5*(tmp[k-1]+tmp[k]) + # else: + # tmp_interp[:] = tmp[:] + # NS.write_profile(PV.velocity_names_directional[i_advected] + '_flux_z', tmp_interp[Gr.dims.gw:-Gr.dims.gw], Pa) + + return + + cpdef double [:, :, :] get_flux(self, Py_ssize_t i_advected, Py_ssize_t i_advecting, Grid.Grid Gr): + ''' + Returns momentum flux tensor component. + :param i_advected: direction of advection velocity + :param i_advecting: direction of advecting velocity + :param Gr: Grid class + :return: memory view type double rank-3 + ''' + cdef: + Py_ssize_t shift_flux = i_advected * Gr.dims.dims * Gr.dims.npg + i_advecting * Gr.dims.npg + Py_ssize_t i, j, k, ijk, ishift, jshift + Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + Py_ssize_t jstride = Gr.dims.nlg[2] + + Py_ssize_t imin = 0 + Py_ssize_t jmin = 0 + Py_ssize_t kmin = 0 + + Py_ssize_t imax = Gr.dims.nlg[0] + Py_ssize_t jmax = Gr.dims.nlg[1] + Py_ssize_t kmax = Gr.dims.nlg[2] + + cdef double[:, :, :] return_flux = np.empty((Gr.dims.nlg[0], Gr.dims.nlg[1], Gr.dims.nlg[2]), dtype=np.double, order='c') + cdef double[:] flux = self.flux + + with nogil: + for i in xrange(imin, imax): + ishift = i * istride + for j in xrange(jmin, jmax): + jshift = j * jstride + for k in xrange(kmin, kmax): + return_flux[ + i, + j, + k] = flux[ + shift_flux + + ishift + + jshift + + k] + return return_flux diff --git a/test_av/NetCDFIO.pxd b/test_av/NetCDFIO.pxd new file mode 100644 index 00000000..9330ca91 --- /dev/null +++ b/test_av/NetCDFIO.pxd @@ -0,0 +1,75 @@ +cimport ParallelMPI +cimport TimeStepping +cimport PrognosticVariables +cimport DiagnosticVariables +cimport Grid +cdef class NetCDFIO_Stats: + cdef: + object root_grp + object profiles_grp + object ts_grp + + str stats_file_name + str stats_path + str output_path + str path_plus_file + str uuid + + public double last_output_time + public double frequency + public bint do_output + + cpdef initialize(self, dict namelist, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef setup_stats_file(self, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef add_profile(self, var_name, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef add_reference_profile(self, var_name, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef add_ts(self, var_name, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef open_files(self, ParallelMPI.ParallelMPI Pa) + cpdef close_files(self, ParallelMPI.ParallelMPI Pa) + cpdef write_profile(self, var_name, double[:] data, ParallelMPI.ParallelMPI Pa) + cpdef write_reference_profile(self, var_name, double[:] data, ParallelMPI.ParallelMPI Pa) + cpdef write_ts(self, var_name, double data, ParallelMPI.ParallelMPI Pa) + cpdef write_simulation_time(self, double t, ParallelMPI.ParallelMPI Pa) + +cdef class NetCDFIO_Fields: + cdef: + str fields_file_name + str fields_path + str output_path + str path_plus_file + str uuid + list diagnostic_fields + + public double last_output_time + public double frequency + public bint do_output + + cpdef initialize(self, dict namelist, ParallelMPI.ParallelMPI Pa) + + cpdef update(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, TimeStepping.TimeStepping TS, ParallelMPI.ParallelMPI Pa) + + cpdef create_fields_file(self, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + + cpdef dump_prognostic_variables(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV) + cpdef dump_diagnostic_variables(self, Grid.Grid Gr, DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa) + + cpdef add_field(self, name) + cpdef write_field(self, name, double[:] data) + +cdef class NetCDFIO_CondStats: + cdef: + str stats_file_name + str stats_path + str output_path + str path_plus_file + str uuid + + public double last_output_time + public double frequency + public bint do_output + + cpdef initialize(self, dict namelist, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef create_condstats_group(self, str groupname, str dimname, double[:] dimval, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef add_condstat(self, str varname, str groupname, str dimname, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef write_condstat(self, varname, groupname, double[:,:] data, ParallelMPI.ParallelMPI Pa) + cpdef write_condstat_time(self, double t, ParallelMPI.ParallelMPI Pa) diff --git a/test_av/NetCDFIO.pyx b/test_av/NetCDFIO.pyx new file mode 100644 index 00000000..5035b4f5 --- /dev/null +++ b/test_av/NetCDFIO.pyx @@ -0,0 +1,490 @@ +#!python +#cython: boundscheck=False +#cython: wraparound=False +#cython: initializedcheck=False +#cython: cdivision=True + +import netCDF4 as nc +import os +import shutil +cimport ParallelMPI +cimport TimeStepping +cimport PrognosticVariables +cimport DiagnosticVariables +cimport Grid +import numpy as np +cimport numpy as np +import cython + +cdef class NetCDFIO_Stats: + def __init__(self): + self.root_grp = None + self.profiles_grp = None + self.ts_grp = None + return + + @cython.wraparound(True) + cpdef initialize(self, dict namelist, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + + self.last_output_time = 0.0 + self.uuid = str(namelist['meta']['uuid']) + self.frequency = namelist['stats_io']['frequency'] + + # Setup the statistics output path + outpath = str(os.path.join(namelist['output']['output_root'] + 'Output.' + namelist['meta']['simname'] + '.' + self.uuid[-5:])) + + if Pa.rank == 0: + try: + os.mkdir(outpath) + except: + pass + + self.stats_path = str( os.path.join(outpath, namelist['stats_io']['stats_dir'])) + if Pa.rank == 0: + try: + os.mkdir(self.stats_path) + except: + pass + + + self.path_plus_file = str( self.stats_path + '/' + 'Stats.' + namelist['meta']['simname'] + '.nc') + if os.path.exists(self.path_plus_file): + for i in range(100): + res_name = 'Restart_'+str(i) + print "Here " + res_name + if os.path.exists(self.path_plus_file): + self.path_plus_file = str( self.stats_path + '/' + 'Stats.' + namelist['meta']['simname'] + + '.' + res_name + '.nc') + else: + break + + Pa.barrier() + + + + if Pa.rank == 0: + shutil.copyfile( + os.path.join( './', namelist['meta']['simname'] + '.in'), + os.path.join( outpath, namelist['meta']['simname'] + '.in')) + self.setup_stats_file(Gr, Pa) + return + + cpdef open_files(self, ParallelMPI.ParallelMPI Pa): + if Pa.rank == 0: + self.root_grp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + self.profiles_grp = self.root_grp.groups['profiles'] + self.ts_grp = self.root_grp.groups['timeseries'] + return + + cpdef close_files(self, ParallelMPI.ParallelMPI Pa): + if Pa.rank == 0: + self.root_grp.close() + return + + cpdef setup_stats_file(self, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + + root_grp = nc.Dataset(self.path_plus_file, 'w', format='NETCDF4') + + # Set profile dimensions + profile_grp = root_grp.createGroup('profiles') + profile_grp.createDimension('z', Gr.dims.n[2]) + profile_grp.createDimension('t', None) + z = profile_grp.createVariable('z', 'f8', ('z')) + z[:] = np.array(Gr.z[Gr.dims.gw:-Gr.dims.gw]) + profile_grp.createVariable('t', 'f8', ('t')) + del z + + reference_grp = root_grp.createGroup('reference') + reference_grp.createDimension('z', Gr.dims.n[2]) + z = reference_grp.createVariable('z', 'f8', ('z')) + z[:] = np.array(Gr.z[Gr.dims.gw:-Gr.dims.gw]) + del z + + ts_grp = root_grp.createGroup('timeseries') + ts_grp.createDimension('t', None) + ts_grp.createVariable('t', 'f8', ('t')) + + root_grp.close() + return + + cpdef add_profile(self, var_name, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + + if Pa.rank == 0: + root_grp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + profile_grp = root_grp.groups['profiles'] + new_var = profile_grp.createVariable(var_name, 'f8', ('t', 'z')) + + root_grp.close() + + return + + cpdef add_reference_profile(self, var_name, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + ''' + Adds a profile to the reference group NetCDF Stats file. + :param var_name: name of variable + :param Gr: Grid class + :param Pa: ParallelMPI class + :return: + ''' + if Pa.rank == 0: + root_grp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + reference_grp = root_grp.groups['reference'] + new_var = reference_grp.createVariable(var_name, 'f8', ('z',)) + + root_grp.close() + + return + + cpdef add_ts(self, var_name, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + if Pa.rank == 0: + root_grp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + ts_grp = root_grp.groups['timeseries'] + new_var = ts_grp.createVariable(var_name, 'f8', ('t',)) + + root_grp.close() + return + + cpdef write_profile(self, var_name, double[:] data, ParallelMPI.ParallelMPI Pa): + if Pa.rank == 0: + #root_grp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + #profile_grp = root_grp.groups['profiles'] + var = self.profiles_grp.variables[var_name] + var[-1, :] = np.array(data) + #root_grp.close() + return + + cpdef write_reference_profile(self, var_name, double[:] data, ParallelMPI.ParallelMPI Pa): + ''' + Writes a profile to the reference group NetCDF Stats file. The variable must have already been + added to the NetCDF file using add_reference_profile + :param var_name: name of variables + :param data: data to be written to file + :param Pa: ParallelMPI class + :return: + ''' + if Pa.rank == 0: + root_grp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + reference_grp = root_grp.groups['reference'] + var = reference_grp.variables[var_name] + var[:] = np.array(data) + root_grp.close() + return + + @cython.wraparound(True) + cpdef write_ts(self, var_name, double data, ParallelMPI.ParallelMPI Pa): + if Pa.rank == 0: + #root_grp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + #ts_grp = root_grp.groups['timeseries'] + var = self.ts_grp.variables[var_name] + var[-1] = data + #root_grp.close() + return + + cpdef write_simulation_time(self, double t, ParallelMPI.ParallelMPI Pa): + if Pa.rank == 0: + #root_grp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + #profile_grp = root_grp.groups['profiles'] + #ts_grp = root_grp.groups['timeseries'] + + # Write to profiles group + profile_t = self.profiles_grp.variables['t'] + profile_t[profile_t.shape[0]] = t + + # Write to timeseries group + ts_t = self.ts_grp.variables['t'] + ts_t[ts_t.shape[0]] = t + + #root_grp.close() + return + +cdef class NetCDFIO_Fields: + def __init__(self): + return + + @cython.wraparound(True) + cpdef initialize(self, dict namelist, ParallelMPI.ParallelMPI Pa): + + self.last_output_time = 0.0 + self.uuid = str(namelist['meta']['uuid']) + self.frequency = namelist['fields_io']['frequency'] + + self.diagnostic_fields = namelist['fields_io']['diagnostic_fields'] + + # Setup the statistics output path + outpath = str(os.path.join(namelist['output']['output_root'] + 'Output.' + namelist['meta']['simname'] + '.' + self.uuid[-5:])) + self.fields_path = str(os.path.join(outpath, namelist['fields_io']['fields_dir'])) + if Pa.rank == 0: + try: + os.mkdir(outpath) + except: + pass + try: + os.mkdir(self.fields_path) + except: + pass + + shutil.copyfile( os.path.join('./', namelist['meta']['simname'] + '.in'), + os.path.join( outpath, namelist['meta']['simname'] + '.in')) + return + + cpdef update(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, TimeStepping.TimeStepping TS, ParallelMPI.ParallelMPI Pa): + + new_dir = os.path.join( + self.fields_path, str(int(self.last_output_time))) + + if Pa.rank == 0 and not os.path.exists(new_dir): + try: + os.mkdir(new_dir) + except: + print('Problem creating fields output dir') + + Pa.barrier() + self.output_path = str(new_dir) + self.path_plus_file = str( + os.path.join( + self.output_path, str( + Pa.rank) + '.nc')) + self.create_fields_file(Gr, Pa) + self.do_output = True + return + + cpdef create_fields_file(self, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + + rootgrp = nc.Dataset(self.path_plus_file, 'w', format='NETCDF4') + dimgrp = rootgrp.createGroup('dims') + fieldgrp = rootgrp.createGroup('fields') + + fieldgrp.createDimension('nl', np.int(Gr.dims.npl)) + dimgrp.createDimension('d1', 1) + + nl_0 = dimgrp.createVariable('nl_0', 'i4', ('d1')) + nl_1 = dimgrp.createVariable('nl_1', 'i4', ('d1')) + nl_2 = dimgrp.createVariable('nl_2', 'i4', ('d1')) + n_0 = dimgrp.createVariable('n_0', 'i4', ('d1')) + n_1 = dimgrp.createVariable('n_1', 'i4', ('d1')) + n_2 = dimgrp.createVariable('n_2', 'i4', ('d1')) + indx_lo_0 = dimgrp.createVariable('indx_lo_0', 'i4', ('d1')) + indx_lo_1 = dimgrp.createVariable('indx_lo_1', 'i4', ('d1')) + indx_lo_2 = dimgrp.createVariable('indx_lo_2', 'i4', ('d1')) + ng = dimgrp.createVariable('ng', 'i4', ('d1')) + + # Dimension of equivalent 3d array owned by this rank + nl_0[:] = Gr.dims.nl[0] + nl_1[:] = Gr.dims.nl[1] + nl_2[:] = Gr.dims.nl[2] + + n_0[:] = Gr.dims.n[0] + n_1[:] = Gr.dims.n[1] + n_2[:] = Gr.dims.n[2] + + # Lower Left has point in global 3d array of the equivalent 3d array + # owned by this processor + indx_lo_0[:] = Gr.dims.indx_lo[0] + indx_lo_1[:] = Gr.dims.indx_lo[1] + indx_lo_2[:] = Gr.dims.indx_lo[2] + + ng[:] = Gr.dims.npd + + rootgrp.close() + return + + cpdef dump_prognostic_variables(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV): + + cdef: + Py_ssize_t i, j, k, ijk, ishift, jshift + Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + Py_ssize_t jstride = Gr.dims.nlg[2] + Py_ssize_t imin = Gr.dims.gw + Py_ssize_t jmin = Gr.dims.gw + Py_ssize_t kmin = Gr.dims.gw + Py_ssize_t imax = Gr.dims.nlg[0] - Gr.dims.gw + Py_ssize_t jmax = Gr.dims.nlg[1] - Gr.dims.gw + Py_ssize_t kmax = Gr.dims.nlg[2] - Gr.dims.gw + Py_ssize_t var_shift + double[:] data = np.empty((Gr.dims.npl,), dtype=np.double, order='c') + Py_ssize_t count + for name in PV.name_index.keys(): + self.add_field(name) + var_shift = PV.get_varshift(Gr, name) + count = 0 + with nogil: + for i in range(imin, imax): + ishift = i * istride + for j in range(jmin, jmax): + jshift = j * jstride + for k in range(kmin, kmax): + ijk = ishift + jshift + k + data[count] = PV.values[var_shift + ijk] + count += 1 + self.write_field(name, data) + return + + + cpdef dump_diagnostic_variables(self, Grid.Grid Gr, DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa): + + cdef: + Py_ssize_t i, j, k, ijk, ishift, jshift + Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + Py_ssize_t jstride = Gr.dims.nlg[2] + Py_ssize_t imin = Gr.dims.gw + Py_ssize_t jmin = Gr.dims.gw + Py_ssize_t kmin = Gr.dims.gw + Py_ssize_t imax = Gr.dims.nlg[0] - Gr.dims.gw + Py_ssize_t jmax = Gr.dims.nlg[1] - Gr.dims.gw + Py_ssize_t kmax = Gr.dims.nlg[2] - Gr.dims.gw + Py_ssize_t var_shift + double[:] data = np.empty((Gr.dims.npl,), dtype=np.double, order='c') + Py_ssize_t count + for name in self.diagnostic_fields: + try: + self.add_field(name) + var_shift = DV.get_varshift(Gr, str(name)) + count = 0 + with nogil: + for i in range(imin, imax): + ishift = i * istride + for j in range(jmin, jmax): + jshift = j * jstride + for k in range(kmin, kmax): + ijk = ishift + jshift + k + data[count] = DV.values[var_shift + ijk] + count += 1 + self.write_field(str(name), data) + except: + Pa.root_print('Could not output DiagnosticVariable Field: ' + name ) + return + + cpdef add_field(self, name): + rootgrp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + fieldgrp = rootgrp.groups['fields'] + fieldgrp.createVariable(name, 'f8', ('nl')) + rootgrp.close() + return + + cpdef write_field(self, name, double[:] data): + rootgrp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + fieldgrp = rootgrp.groups['fields'] + var = fieldgrp.variables[name] + var[:] = np.array(data) + rootgrp.close() + return + + + + +cdef class NetCDFIO_CondStats: + def __init__(self): + + return + + @cython.wraparound(True) + cpdef initialize(self, dict namelist, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + + self.last_output_time = 0.0 + self.uuid = str(namelist['meta']['uuid']) + # if a frequency is not defined for the conditional statistics, set frequency to the maximum simulation time + try: + self.frequency = namelist['conditional_stats']['frequency'] + except: + self.frequency = namelist['time_stepping']['t_max'] + + + # Setup the statistics output path + outpath = str(os.path.join(namelist['output']['output_root'] + 'Output.' + namelist['meta']['simname'] + '.' + self.uuid[-5:])) + + if Pa.rank == 0: + try: + os.mkdir(outpath) + except: + pass + + # Set a default name for the output directory if it is not defined in the namelist + try: + self.stats_path = str( os.path.join(outpath, namelist['conditional_stats']['stats_dir'])) + except: + self.stats_path = str( os.path.join(outpath, 'cond_stats')) + + if Pa.rank == 0: + try: + os.mkdir(self.stats_path) + except: + pass + + + self.path_plus_file = str( self.stats_path + '/' + 'CondStats.' + namelist['meta']['simname'] + '.nc') + if os.path.exists(self.path_plus_file): + for i in range(100): + res_name = 'Restart_'+str(i) + if os.path.exists(self.path_plus_file): + self.path_plus_file = str( self.stats_path + '/' + 'CondStats.' + namelist['meta']['simname'] + + '.' + res_name + '.nc') + else: + break + + Pa.barrier() + + + + if Pa.rank == 0: + shutil.copyfile( + os.path.join( './', namelist['meta']['simname'] + '.in'), + os.path.join( outpath, namelist['meta']['simname'] + '.in')) + return + + cpdef create_condstats_group(self, str groupname, str dimname, double [:] dimval, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + + if Pa.rank == 0: + root_grp = nc.Dataset(self.path_plus_file, 'w', format='NETCDF4') + sub_grp = root_grp.createGroup(groupname) + sub_grp.createDimension('z', Gr.dims.n[2]) + sub_grp.createDimension(dimname, len(dimval)) + sub_grp.createDimension('t', None) + z = sub_grp.createVariable('z', 'f8', ('z')) + z[:] = np.array(Gr.z[Gr.dims.gw:-Gr.dims.gw]) + dim = sub_grp.createVariable(dimname, 'f8', (dimname)) + dim[:] = np.array(dimval[:]) + sub_grp.createVariable('t', 'f8', ('t')) + del z + del dim + root_grp.close() + return + + cpdef add_condstat(self, str varname, str groupname, str dimname, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + + if Pa.rank == 0: + root_grp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + sub_grp = root_grp.groups[groupname] + new_var = sub_grp.createVariable(varname, 'f8', ('t', 'z', dimname)) + + root_grp.close() + + return + + + cpdef write_condstat(self, varname, groupname, double [:,:] data, ParallelMPI.ParallelMPI Pa): + if Pa.rank == 0: + root_grp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + sub_grp = root_grp.groups[groupname] + var = sub_grp.variables[varname] + + var[-1, :,:] = np.array(data)[:,:] + + root_grp.close() + return + + + cpdef write_condstat_time(self, double t, ParallelMPI.ParallelMPI Pa): + if Pa.rank == 0: + try: + root_grp = nc.Dataset(self.path_plus_file, 'r+', format='NETCDF4') + for groupname in root_grp.groups: + sub_grp = root_grp.groups[groupname] + + # Write to sub_grp + group_t = sub_grp.variables['t'] + group_t[group_t.shape[0]] = t + + root_grp.close() + except: + pass + return \ No newline at end of file diff --git a/test_av/ParallelMPI.pxd b/test_av/ParallelMPI.pxd new file mode 100644 index 00000000..1fab65a1 --- /dev/null +++ b/test_av/ParallelMPI.pxd @@ -0,0 +1,73 @@ +cimport mpi4py.libmpi as mpi +cimport Grid + +cdef class ParallelMPI: + cdef: + mpi.MPI_Comm comm_world + mpi.MPI_Comm cart_comm_world + mpi.MPI_Comm cart_comm_sub_x + mpi.MPI_Comm cart_comm_sub_y + mpi.MPI_Comm cart_comm_sub_z + mpi.MPI_Comm cart_comm_sub_xy + + public int rank + int size + + int sub_x_size + int sub_y_size + int sub_z_size + + int sub_x_rank + int sub_y_rank + int sub_z_rank + + void barrier(self) + + void create_sub_communicators(self) + + double domain_scalar_sum(self, double local_value) + double domain_scalar_max(self, double local_value) + double domain_scalar_min(self, double local_value) + double [:] domain_vector_sum(self, double [:] local_vector, Py_ssize_t n) + double [:] HorizontalMean(self,Grid.Grid Gr, double* values) + double [:] HorizontalMeanofSquares(self,Grid.Grid Gr, double* values1, double* values2) + double [:] HorizontalMeanofCubes(self, Grid.Grid Gr, double* values1, double* values2, double* values3) + double [:] HorizontalMaximum(self, Grid.Grid Gr, double* values) + double [:] HorizontalMinimum(self, Grid.Grid Gr, double* values) + double HorizontalMeanSurface(self, Grid.Grid Gr, double* values) + double [:] HorizontalMeanConditional(self,Grid.Grid Gr, double* values, double* mask) + double [:] HorizontalMeanofSquaresConditional(self,Grid.Grid Gr, double* values1, double* values2, double* mask) + + cpdef root_print(self, txt_output) + cpdef kill(self) + +cdef class Pencil: + + cdef: + long n_total_pencils + long n_local_pencils + long pencil_length + long [:] n_pencil_map + long [:] nl_map + long n_local_values + int [:] send_counts + int [:] recv_counts + int [:] sdispls + int [:] rdispls + int dim + int size + int rank + + cpdef initialize(self, Grid.Grid Gr, ParallelMPI Pa, int dim) + cdef double [:,:] forward_double(self, Grid.DimStruct *dims, ParallelMPI Pa, double *data) + cdef void build_buffer_double(self, Grid.DimStruct *dims, double *data, double *local_transpose) + cdef void unpack_buffer_double(self,Grid.DimStruct *dims, double *recv_buffer, double [:,:] pencils) + cdef void reverse_double(self, Grid.DimStruct *dims, ParallelMPI Pa, double [:,:] pencils, double *data) + cdef void reverse_build_buffer_double(self, Grid.DimStruct *dims, double [:,:] pencils, double *send_buffer) + cdef void reverse_unpack_buffer_double(self, Grid.DimStruct *dims, double *recv_buffer, double *data ) + cdef complex [:,:] forward_complex(self, Grid.DimStruct *dims, ParallelMPI Pa, complex *data) + cdef void build_buffer_complex(self, Grid.DimStruct *dims, complex *data, complex *local_transpose) + cdef void unpack_buffer_complex(self,Grid.DimStruct *dims, complex *recv_buffer, complex [:,:] pencils) + cdef void reverse_complex(self, Grid.DimStruct *dims, ParallelMPI Pa, complex [:,:] pencils, complex *data) + cdef void reverse_build_buffer_complex(self, Grid.DimStruct *dims, complex [:,:] pencils, complex *send_buffer) + cdef void reverse_unpack_buffer_complex(self, Grid.DimStruct *dims, complex *recv_buffer, complex *data ) \ No newline at end of file diff --git a/test_av/ParallelMPI.pyx b/test_av/ParallelMPI.pyx new file mode 100644 index 00000000..601d3185 --- /dev/null +++ b/test_av/ParallelMPI.pyx @@ -0,0 +1,1071 @@ +#!python +#cython: boundscheck=False +#cython: wraparound=False +#cython: initializedcheck=False +#cython: cdivision=True + +cimport mpi4py.libmpi as mpi +cimport Grid +from time import time +import sys + +import numpy as np +cimport numpy as np +import cython +from libc.math cimport fmin, fmax +cdef class ParallelMPI: + def __init__(self,namelist): + ''' + Initializes the ParallelMPI class. Calls MPI init. Sets-up MPI cartesian topologies and sub-topologies. + :param namelist: Namelist dictionary. + :return: + ''' + + cdef: + int is_initialized + int ierr = 0 + + #Check to see if MPI_Init has been called if not do so + ierr = mpi.MPI_Initialized(&is_initialized) + if not is_initialized: + from mpi4py import MPI + self.comm_world = mpi.MPI_COMM_WORLD + ierr = mpi.MPI_Comm_rank(mpi.MPI_COMM_WORLD, &self.rank) + ierr = mpi.MPI_Comm_size(mpi.MPI_COMM_WORLD, &self.size) + + cdef: + int [3] cart_dims + int [3] cyclic + int ndims = 3 + int reorder = 1 + + cart_dims[0] = namelist['mpi']['nprocx'] + cart_dims[1] = namelist['mpi']['nprocy'] + cart_dims[2] = namelist['mpi']['nprocz'] + + #Check to make sure that cart dimensions are consistent with MPI global size + if cart_dims[0] * cart_dims[1] * cart_dims[2] != self.size: + self.root_print('MPI global size: ' + str(self.size) + + 'does not equal nprocx * nprocy * nprocz: ' + + str(cart_dims[0] * cart_dims[1] * cart_dims[2])) + self.root_print('Killing simulation NOW!') + self.kill() + + cyclic[0] = 1 + cyclic[1] = 1 + cyclic[2] = 0 + + #Create the cartesian world commmunicator + ierr = mpi.MPI_Cart_create(self.comm_world,ndims, cart_dims, cyclic, reorder,&self.cart_comm_world) + self.barrier() + + #Create the cartesian sub-communicators + self.create_sub_communicators() + self.barrier() + + return + + cpdef root_print(self,txt_output): + ''' + Print only from the root process. + :param txt_output: Output + :return: + ''' + if self.rank==0: + print(txt_output) + return + + cpdef kill(self): + ''' + Call MPI_Abort. + :return: + ''' + cdef int ierr = 0 + self.root_print("Terminating MPI!") + ierr = mpi.MPI_Abort(self.comm_world,1) + sys.exit() + return + + cdef void barrier(self): + ''' + Call MPI_Barrier on global MPI communicator. + :return: + ''' + mpi.MPI_Barrier(self.comm_world) + return + + cdef void create_sub_communicators(self): + ''' + :return: Sets up cartesian sub topologies from cart_comm_world. + ''' + cdef: + int ierr = 0 + int [3] remains + + #Create the sub-communicator where x-dimension remains + remains[0] = 1 + remains[1] = 0 + remains[2] = 0 + ierr = mpi.MPI_Cart_sub(self.cart_comm_world,remains, &self.cart_comm_sub_x) + ierr = mpi.MPI_Comm_size(self.cart_comm_sub_x, &self.sub_x_size) + ierr = mpi.MPI_Comm_rank(self.cart_comm_sub_x, &self.sub_x_rank) + + #Create the sub-communicator where the y-dimension remains + remains[0] = 0 + remains[1] = 1 + remains[2] = 0 + ierr = mpi.MPI_Cart_sub(self.cart_comm_world,remains, &self.cart_comm_sub_y) + ierr = mpi.MPI_Comm_size(self.cart_comm_sub_y, &self.sub_y_size) + ierr = mpi.MPI_Comm_rank(self.cart_comm_sub_y, &self.sub_y_rank) + + #Create the sub communicator where the z-dimension remains + remains[0] = 0 + remains[1] = 0 + remains[2] = 1 + ierr = mpi.MPI_Cart_sub(self.cart_comm_world,remains, &self.cart_comm_sub_z) + ierr = mpi.MPI_Comm_size(self.cart_comm_sub_z, &self.sub_z_size) + ierr = mpi.MPI_Comm_rank(self.cart_comm_sub_z, &self.sub_z_rank) + + #Create the sub communicator where x and y-dimension still remains + remains[0] = 1 + remains[1] = 1 + remains[2] = 0 + ierr = mpi.MPI_Cart_sub(self.cart_comm_world,remains, &self.cart_comm_sub_xy) + + + return + + cdef double domain_scalar_sum(self, double local_value): + ''' + Compute the sum over all mpi ranks of a single scalar of type double. + :param local_value: the value to be summed over the ranks + :return: sum of local values on all processes + ''' + + cdef: + double global_sum + + mpi.MPI_Allreduce(&local_value, &global_sum,1,mpi.MPI_DOUBLE,mpi.MPI_SUM,self.comm_world) + + return global_sum + + + + cdef double domain_scalar_max(self, double local_value): + ''' + Compute the maximum over all mpi ranks of a single scalar of type double. + :param local_value: the value to be maxed over the ranks + :return: maximum of local values on all processes + ''' + + cdef: + double global_max + + mpi.MPI_Allreduce(&local_value, &global_max,1,mpi.MPI_DOUBLE,mpi.MPI_MAX,self.comm_world) + + return global_max + + cdef double domain_scalar_min(self, double local_value): + ''' + Compute the minimum over all mpi ranks of a single scalar of type double. + :param local_value: the value to be min-ed over the ranks + :return: sum of local values on all processes + ''' + + cdef: + double global_min + + mpi.MPI_Allreduce(&local_value, &global_min,1,mpi.MPI_DOUBLE,mpi.MPI_MIN,self.comm_world) + + return global_min + + cdef double [:] domain_vector_sum(self, double [:] local_vector, Py_ssize_t n): + ''' + Compute the sum over all mpi ranks of a vector of type double. + :param local_vector: the value to be summed over the ranks + :return: sum of local vectors on all processes + ''' + + cdef: + double [:] global_sum = np.empty((n,),dtype=np.double,order='c') + + mpi.MPI_Allreduce(&local_vector[0], &global_sum[0],n,mpi.MPI_DOUBLE,mpi.MPI_SUM,self.comm_world) + + return global_sum + + cdef double [:] HorizontalMean(self, Grid.Grid Gr, double *values): + ''' + Compute the horizontal mean of the array pointed to by values. + values should have dimension of Gr.dims.nlg[0] * Gr.dims.nlg[1] + * Gr.dims.nlg[1]. + + :param Gr: Grid class + :param values1: pointer to array of type double containing first value in product + :return: memoryview type double with dimension Gr.dims.nlg[2] + ''' + # Gr.dims.n[i] = namelist['grid']['ni'] (e.g. n[0] = 'nx') --> total number of pts + # Gr.dims.nl[i] = Gr.dims.n[i] // mpi_dims[i] --> local number of pts (per processor) + # Gr.dims.nlg[i] = Gr.dims.nl[i] + 2*gw --> local number of pts incl ghost points + # i = 0,1,2 + cdef: + double [:] mean_local = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + double [:] mean = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + int i,j,k,ijk + int imin = Gr.dims.gw + int jmin = Gr.dims.gw + int kmin = 0 + int imax = Gr.dims.nlg[0] - Gr.dims.gw + int jmax = Gr.dims.nlg[1] - Gr.dims.gw + int kmax = Gr.dims.nlg[2] + int istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + int jstride = Gr.dims.nlg[2] + int ishift, jshift + double n_horizontal_i = 1.0/np.double(Gr.dims.n[1]*Gr.dims.n[0]) + + with nogil: + for i in xrange(imin,imax): + ishift = i * istride + for j in xrange(jmin,jmax): + jshift = j * jstride + for k in xrange(kmin,kmax): + ijk = ishift + jshift + k + mean_local[k] += values[ijk] + + + #Here we call MPI_Allreduce on the sub_xy communicator as we only need communication among + #processes with the the same vertical rank + + mpi.MPI_Allreduce(&mean_local[0],&mean[0],Gr.dims.nlg[2], + mpi.MPI_DOUBLE,mpi.MPI_SUM,self.cart_comm_sub_xy) + + for i in xrange(Gr.dims.nlg[2]): + mean[i] = mean[i]*n_horizontal_i + + return mean + + cdef double [:] HorizontalMeanofSquares(self, Grid.Grid Gr, const double *values1, const double *values2): + ''' + Compute the horizontal mean of the product of two variables (values1 and values2). values1 and values2 are + passed in as pointers of type double. These should have dimension of Gr.dims.nlg[0] * Gr.dims.nlg[1] + * Gr.dims.nlg[1]. + + :param Gr: Grid class + :param values1: pointer to array of type double containing first value in product + :param values2: pointer to array of type double containing second value in product + :return: memoryview type double with dimension Gr.dims.nlg[2] + ''' + + cdef: + double [:] mean_local = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + double [:] mean = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + int i,j,k,ijk + int imin = Gr.dims.gw + int jmin = Gr.dims.gw + int kmin = 0 + int imax = Gr.dims.nlg[0] - Gr.dims.gw + int jmax = Gr.dims.nlg[1] - Gr.dims.gw + int kmax = Gr.dims.nlg[2] + int istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + int jstride = Gr.dims.nlg[2] + int ishift, jshift + double n_horizontal_i = 1.0/np.double(Gr.dims.n[1]*Gr.dims.n[0]) + + with nogil: + for i in xrange(imin,imax): + ishift = i * istride + for j in xrange(jmin,jmax): + jshift = j * jstride + for k in xrange(kmin,kmax): + ijk = ishift + jshift + k + mean_local[k] += values1[ijk]*values2[ijk] + + + + #Here we call MPI_Allreduce on the sub_xy communicator as we only need communication among + #processes with the the same vertical rank + + mpi.MPI_Allreduce(&mean_local[0],&mean[0],Gr.dims.nlg[2], + mpi.MPI_DOUBLE,mpi.MPI_SUM,self.cart_comm_sub_xy) + + for i in xrange(Gr.dims.nlg[2]): + mean[i] = mean[i]*n_horizontal_i + return mean + + cdef double [:] HorizontalMeanofCubes(self,Grid.Grid Gr,const double *values1,const double *values2, const double *values3): + + cdef: + double [:] mean_local = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + double [:] mean = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + int i,j,k,ijk + int imin = Gr.dims.gw + int jmin = Gr.dims.gw + int kmin = 0 + int imax = Gr.dims.nlg[0] - Gr.dims.gw + int jmax = Gr.dims.nlg[1] - Gr.dims.gw + int kmax = Gr.dims.nlg[2] + int istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + int jstride = Gr.dims.nlg[2] + int ishift, jshift + double n_horizontal_i = 1.0/np.double(Gr.dims.n[1]*Gr.dims.n[0]) + + with nogil: + for i in xrange(imin,imax): + ishift = i * istride + for j in xrange(jmin,jmax): + jshift = j * jstride + for k in xrange(kmin,kmax): + ijk = ishift + jshift + k + mean_local[k] += values1[ijk]*values2[ijk]*values3[ijk] + #Here we call MPI_Allreduce on the sub_xy communicator as we only need communication among + #processes with the the same vertical rank + + mpi.MPI_Allreduce(&mean_local[0],&mean[0],Gr.dims.nlg[2], + mpi.MPI_DOUBLE,mpi.MPI_SUM,self.cart_comm_sub_xy) + + for i in xrange(Gr.dims.nlg[2]): + mean[i] = mean[i]*n_horizontal_i + + return mean + + cdef double [:] HorizontalMaximum(self, Grid.Grid Gr, double *values): + cdef: + double [:] max_local = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + double [:] max = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + int i,j,k,ijk + int imin = Gr.dims.gw + int jmin = Gr.dims.gw + int kmin = 0 + int imax = Gr.dims.nlg[0] - Gr.dims.gw + int jmax = Gr.dims.nlg[1] - Gr.dims.gw + int kmax = Gr.dims.nlg[2] + int istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + int jstride = Gr.dims.nlg[2] + int ishift, jshift + double n_horizontal_i = 1.0/np.double(Gr.dims.n[1]*Gr.dims.n[0]) + + with nogil: + for k in xrange(kmin,kmax): + max_local[k] = -9e12 + + for i in xrange(imin,imax): + ishift = i * istride + for j in xrange(jmin,jmax): + jshift = j * jstride + for k in xrange(kmin,kmax): + ijk = ishift + jshift + k + max_local[k] = fmax(max_local[k],values[ijk]) + + mpi.MPI_Allreduce(&max_local[0],&max[0],Gr.dims.nlg[2], + mpi.MPI_DOUBLE,mpi.MPI_MAX,self.cart_comm_sub_xy) + return max + + cdef double [:] HorizontalMinimum(self, Grid.Grid Gr, double *values): + cdef: + double [:] min_local = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + double [:] min = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + int i,j,k,ijk + int imin = Gr.dims.gw + int jmin = Gr.dims.gw + int kmin = 0 + int imax = Gr.dims.nlg[0] - Gr.dims.gw + int jmax = Gr.dims.nlg[1] - Gr.dims.gw + int kmax = Gr.dims.nlg[2] + int istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + int jstride = Gr.dims.nlg[2] + int ishift, jshift + double n_horizontal_i = 1.0/np.double(Gr.dims.n[1]*Gr.dims.n[0]) + + with nogil: + for k in xrange(kmin,kmax): + min_local[k] = 9e12 + + for i in xrange(imin,imax): + ishift = i * istride + for j in xrange(jmin,jmax): + jshift = j * jstride + for k in xrange(kmin,kmax): + ijk = ishift + jshift + k + min_local[k] = fmin(min_local[k],values[ijk]) + + mpi.MPI_Allreduce(&min_local[0],&min[0],Gr.dims.nlg[2], + mpi.MPI_DOUBLE,mpi.MPI_MIN,self.cart_comm_sub_xy) + return min + + cdef double HorizontalMeanSurface(self,Grid.Grid Gr,double *values): + # Some assumptions for using this function: + #--the array is defined for all processors + #-- = 0 on all processors for which zrank !=0 + # this is necessary to ensure that the root processor has the correct mean + + cdef: + double mean_local = 0.0 + double mean = 0.0 + int i,j,ij + int imin = Gr.dims.gw + int jmin = Gr.dims.gw + int imax = Gr.dims.nlg[0] - Gr.dims.gw + int jmax = Gr.dims.nlg[1] - Gr.dims.gw + int gw = Gr.dims.gw + int istride_2d = Gr.dims.nlg[1] + int ishift, jshift + double n_horizontal_i = 1.0/np.double(Gr.dims.n[1]*Gr.dims.n[0]) + + with nogil: + for i in xrange(imin,imax): + ishift = i * istride_2d + for j in xrange(jmin,jmax): + ij = ishift + j + mean_local += values[ij] + + + + mpi.MPI_Allreduce(&mean_local,&mean,1, + mpi.MPI_DOUBLE,mpi.MPI_SUM,self.comm_world) + + mean = mean*n_horizontal_i + + + return mean + + + + + cdef double [:] HorizontalMeanConditional(self,Grid.Grid Gr,double *values, double *mask): + ''' + This function computes horizontal means given a binary conditional. For example, it can be used to compute + mean profiles within cloudy air. The mask must be pre-computed. + :param Gr: Grid class + :param values: variable array to be averaged. Contains ghost points + :param mask: array of 1's (condition=true) and 0's (condition = false). Contains ghost points, but mask values + of ghost points do not have to be correct (they are not used in this routine). + :return: vertical profile of the conditional average of array values + ''' + + cdef: + double [:] mean_local = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + double [:] mean = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + double [:] sum_local = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + double [:] sum = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + + int i,j,k,ijk + int imin = Gr.dims.gw + int jmin = Gr.dims.gw + int kmin = 0 + int imax = Gr.dims.nlg[0] - Gr.dims.gw + int jmax = Gr.dims.nlg[1] - Gr.dims.gw + int kmax = Gr.dims.nlg[2] + int istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + int jstride = Gr.dims.nlg[2] + int ishift, jshift + + + with nogil: + for i in xrange(imin,imax): + ishift = i * istride + for j in xrange(jmin,jmax): + jshift = j * jstride + for k in xrange(kmin,kmax): + ijk = ishift + jshift + k + mean_local[k] += values[ijk]*mask[ijk] + sum_local[k] += mask[ijk] + + + #Here we call MPI_Allreduce on the sub_xy communicator as we only need communication among + #processes with the the same vertical rank + + mpi.MPI_Allreduce(&mean_local[0],&mean[0],Gr.dims.nlg[2], + mpi.MPI_DOUBLE,mpi.MPI_SUM,self.cart_comm_sub_xy) + + mpi.MPI_Allreduce(&sum_local[0],&sum[0],Gr.dims.nlg[2], + mpi.MPI_DOUBLE,mpi.MPI_SUM,self.cart_comm_sub_xy) + + for i in xrange(Gr.dims.nlg[2]): + mean[i] = mean[i]/np.maximum(sum[i], 1.0) + + return mean + + + cdef double [:] HorizontalMeanofSquaresConditional(self,Grid.Grid Gr,double *values1,double *values2, double *mask): + ''' + This function computes horizontal means of the product of two array given a binary conditional. + For example, it can be used to compute mean-square profiles within cloudy air. The mask must be pre-computed. + :param Gr: Grid class + :param values1: 1st of the variable arrays to be multiplied. Contains ghost points + :param values2: 2nd of the variable arrays to be multiplied. Contains ghost points + :param mask: array of 1's (condition=true) and 0's (condition = false). Contains ghost points, but mask values + of ghost points do not have to be correct (they are not used in this routine). + :return: vertical profile of the conditional average of array values + ''' + + + + cdef: + double [:] mean_local = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + double [:] mean = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + double [:] sum_local = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + double [:] sum = np.zeros(Gr.dims.nlg[2],dtype=np.double,order='c') + + int i,j,k,ijk + int imin = Gr.dims.gw + int jmin = Gr.dims.gw + int kmin = 0 + int imax = Gr.dims.nlg[0] - Gr.dims.gw + int jmax = Gr.dims.nlg[1] - Gr.dims.gw + int kmax = Gr.dims.nlg[2] + int istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + int jstride = Gr.dims.nlg[2] + int ishift, jshift + + + with nogil: + for i in xrange(imin,imax): + ishift = i * istride + for j in xrange(jmin,jmax): + jshift = j * jstride + for k in xrange(kmin,kmax): + ijk = ishift + jshift + k + mean_local[k] += values1[ijk]*values2[ijk]*mask[ijk] + sum_local[k] += mask[ijk] + + + #Here we call MPI_Allreduce on the sub_xy communicator as we only need communication among + #processes with the the same vertical rank + + mpi.MPI_Allreduce(&mean_local[0],&mean[0],Gr.dims.nlg[2], + mpi.MPI_DOUBLE,mpi.MPI_SUM,self.cart_comm_sub_xy) + + mpi.MPI_Allreduce(&sum_local[0],&sum[0],Gr.dims.nlg[2], + mpi.MPI_DOUBLE,mpi.MPI_SUM,self.cart_comm_sub_xy) + + for i in xrange(Gr.dims.nlg[2]): + mean[i] = mean[i]/np.maximum(sum[i], 1.0) + + return mean + +cdef class Pencil: + + + def __init__(self): + pass + + cpdef initialize(self, Grid.Grid Gr, ParallelMPI Pa, int dim): + + self.dim = dim + self.n_local_values = Gr.dims.npl + + cdef: + int remainder = 0 + int i + + if dim==0: + self.size = Pa.sub_x_size + self.rank = Pa.sub_x_rank + self.n_total_pencils = Gr.dims.nl[1] * Gr.dims.nl[2] + self.pencil_length = Gr.dims.n[0] + elif dim==1: + self.size = Pa.sub_y_size + self.rank = Pa.sub_y_rank + self.n_total_pencils = Gr.dims.nl[0] * Gr.dims.nl[2] + self.pencil_length = Gr.dims.n[1] + elif dim==2: + self.size = Pa.sub_z_size + self.rank = Pa.sub_z_rank + self.n_total_pencils = Gr.dims.nl[0] * Gr.dims.nl[1] + self.pencil_length = Gr.dims.n[2] + else: + Pa.root_print('Pencil dim='+ str(dim) + 'not valid') + Pa.root_print('Killing simuulation') + Pa.kill() + + remainder = self.n_total_pencils%self.size + self.n_pencil_map = np.empty((self.size,),dtype=np.int,order='c') + self.n_pencil_map[:] = self.n_total_pencils//self.size + for i in xrange(self.size): + if i < remainder: + self.n_pencil_map[i] += 1 + + self.n_local_pencils = self.n_pencil_map[self.rank] #Number of pencils locally + self.nl_map = np.empty((self.size),dtype=np.int,order='c') #Number of local grid points in pencild dir + self.send_counts = np.empty((self.size),dtype=np.intc,order='c') #Total number of points to send to each rank + self.recv_counts = np.empty((self.size),dtype=np.intc,order='c') #Total numer of points to recv from each rank + self.rdispls = np.zeros((self.size),dtype=np.intc,order='c') #Where to put received points + self.sdispls = np.zeros((self.size),dtype=np.intc,order='c') #Where to get sent points + + #Now need to communicate number of local points on each process + if self.dim==0: + #Gather the number of points on in direction dim for each rank + mpi.MPI_Allgather(&Gr.dims.nl[0],1,mpi.MPI_LONG,&self.nl_map[0],1,mpi.MPI_LONG,Pa.cart_comm_sub_x) + + #Now compute the send counts + for i in xrange(self.size): + self.send_counts[i] = Gr.dims.nl[0] * self.n_pencil_map[i] + self.recv_counts[i] = self.n_local_pencils * self.nl_map[i] + + elif self.dim==1: + mpi.MPI_Allgather(&Gr.dims.nl[1],1,mpi.MPI_LONG,&self.nl_map[0],1,mpi.MPI_LONG,Pa.cart_comm_sub_y) + #Now compute the send counts + for i in xrange(self.size): + self.send_counts[i] = Gr.dims.nl[1] * self.n_pencil_map[i] + self.recv_counts[i] = self.n_local_pencils * self.nl_map[i] + else: + mpi.MPI_Allgather(&Gr.dims.nl[2],1,mpi.MPI_LONG,&self.nl_map[0],1,mpi.MPI_LONG,Pa.cart_comm_sub_z) + #Now compute the send counts + for i in xrange(self.size): + self.send_counts[i] = Gr.dims.nl[2] * self.n_pencil_map[i] + self.recv_counts[i] = self.n_local_pencils * self.nl_map[i] + + #Compute the send and receive displacments + for i in xrange(self.size-1): + self.sdispls[i+1] = self.sdispls[i] + self.send_counts[i] + self.rdispls[i+1] = self.rdispls[i] + self.recv_counts[i] + + Pa.barrier() + return + + cdef double [:,:] forward_double(self, Grid.DimStruct *dims, ParallelMPI Pa ,double *data): + + cdef: + double [:] local_transpose = np.empty((dims.npl,),dtype=np.double,order='c') + double [:] recv_buffer = np.empty((self.n_local_pencils * self.pencil_length),dtype=np.double,order='c') + double [:,:] pencils = np.empty((self.n_local_pencils,self.pencil_length),dtype=np.double,order='c') + + #Build send buffer + self.build_buffer_double(dims, data, &local_transpose[0]) + + if(self.size > 1): + #Do all to all communication + if self.dim == 0: + mpi.MPI_Alltoallv(&local_transpose[0], &self.send_counts[0], &self.sdispls[0],mpi.MPI_DOUBLE, + &recv_buffer[0], &self.recv_counts[0], &self.rdispls[0],mpi.MPI_DOUBLE,Pa.cart_comm_sub_x) + elif self.dim==1: + mpi.MPI_Alltoallv(&local_transpose[0], &self.send_counts[0], &self.sdispls[0],mpi.MPI_DOUBLE, + &recv_buffer[0], &self.recv_counts[0], &self.rdispls[0],mpi.MPI_DOUBLE,Pa.cart_comm_sub_y) + else: + mpi.MPI_Alltoallv(&local_transpose[0], &self.send_counts[0], &self.sdispls[0],mpi.MPI_DOUBLE, + &recv_buffer[0], &self.recv_counts[0], &self.rdispls[0],mpi.MPI_DOUBLE,Pa.cart_comm_sub_z) + + self.unpack_buffer_double(dims,&recv_buffer[0],pencils) + + else: + self.unpack_buffer_double(dims,&local_transpose[0],pencils) + + + return pencils + + cdef void build_buffer_double(self, Grid.DimStruct *dims, double *data, double *local_transpose ): + ''' + A method to build a send buffer for Pencils of type double. The function has no return value but does + have side effects the memory pointed to by *local_transpose. + + :param dims: pointer to dims structure + :param data: pointer to 1D array + :param local_transpose: pointer to the transposed data ready for Pencil communication. + :return: + ''' + + cdef: + long imin = dims.gw + long jmin = dims.gw + long kmin = dims.gw + long imax = dims.nlg[0] - dims.gw + long jmax = dims.nlg[1] - dims.gw + long kmax = dims.nlg[2] - dims.gw + long istride, jstride, kstride + long istride_nogw, jstride_nogw, kstride_nogw + long ishift, jshift, kshift + long ishift_nogw, jshift_nogw, kshift_nogw + long i,j,k,ijk,ijk_no_gw + + ''' + Determine the strides, first for the un-transposed data (including ghost points), and then for the transposed + data. In the case of the transposed data, the strides are such that the fastest changing 3D index is in + then self.dim direction. + ''' + if self.dim == 0: + istride = dims.nlg[1] * dims.nlg[2] + jstride = dims.nlg[2] + kstride = 1 + + istride_nogw = 1 + jstride_nogw = dims.nl[0] + kstride_nogw = dims.nl[0] * dims.nl[1] + elif self.dim ==1: + istride = dims.nlg[1] * dims.nlg[2] + jstride = dims.nlg[2] + kstride = 1 + + istride_nogw = dims.nl[1] + jstride_nogw = 1 + kstride_nogw = dims.nl[0] * dims.nl[1] + else: + istride = dims.nlg[1] * dims.nlg[2] + jstride = dims.nlg[2] + kstride = 1 + + istride_nogw = dims.nl[1] * dims.nl[2] + jstride_nogw = dims.nl[2] + kstride_nogw = 1 + + ''' + Transpose the data given the strides above. The indicies i, j, k are for the un-transposed data including + ghost points. For the transposed data, excluding ghost points we must stubrtact gw. + ''' + with nogil: + for i in xrange(imin,imax): + ishift = i*istride + ishift_nogw = (i-dims.gw) * istride_nogw + for j in xrange(jmin,jmax): + jshift = j * jstride + jshift_nogw = (j-dims.gw) * jstride_nogw + for k in xrange(kmin,kmax): + ijk = ishift + jshift + k + ijk_no_gw = ishift_nogw + jshift_nogw+ (k-dims.gw)*kstride_nogw + local_transpose[ijk_no_gw] = data[ijk] + return + + cdef void unpack_buffer_double(self,Grid.DimStruct *dims, double *recv_buffer, double [:,:] pencils): + + cdef: + long m, p, i + long nl_shift, count + + + #Loop over the number of processors in the rank + count = 0 + for m in xrange(self.size): + + if m == 0: + nl_shift = 0 + else: + nl_shift += self.nl_map[m-1] + + #Loop over the number of local pencils + with nogil: + for p in xrange(self.n_local_pencils): + #Now loop over the number of points in each pencil from the m-th processor + for i in xrange(self.nl_map[m]): + pencils[p,nl_shift + i] = recv_buffer[count] + count += 1 + return + + cdef void reverse_double(self, Grid.DimStruct *dims, ParallelMPI Pa, double [:,:] pencils, double *data): + + cdef: + double [:] send_buffer = np.empty(self.n_local_pencils * self.pencil_length,dtype=np.double,order='c') + double [:] recv_buffer = np.empty(dims.npl,dtype=np.double,order='c') + + #This is exactly the inverse operation to forward_double so that the send_counts can be used as the recv_counts + #and vice versa + + self.reverse_build_buffer_double(dims,pencils,&send_buffer[0]) + + if(self.size > 1): + #Do all to all communication + if self.dim == 0: + mpi.MPI_Alltoallv(&send_buffer[0], &self.recv_counts[0], &self.rdispls[0],mpi.MPI_DOUBLE, + &recv_buffer[0], &self.send_counts[0], &self.sdispls[0],mpi.MPI_DOUBLE,Pa.cart_comm_sub_x) + elif self.dim==1: + mpi.MPI_Alltoallv(&send_buffer[0], &self.recv_counts[0], &self.rdispls[0],mpi.MPI_DOUBLE, + &recv_buffer[0], &self.send_counts[0], &self.sdispls[0],mpi.MPI_DOUBLE,Pa.cart_comm_sub_y) + else: + mpi.MPI_Alltoallv(&send_buffer[0], &self.recv_counts[0], &self.rdispls[0],mpi.MPI_DOUBLE, + &recv_buffer[0], &self.send_counts[0], &self.sdispls[0],mpi.MPI_DOUBLE,Pa.cart_comm_sub_z) + + self.reverse_unpack_buffer_double(dims,&recv_buffer[0],&data[0]) + + else: + self.reverse_unpack_buffer_double(dims,&send_buffer[0],&data[0]) + + return + + cdef void reverse_build_buffer_double(self, Grid.DimStruct *dims, double [:,:] pencils, double *send_buffer): + cdef: + long m, p, i + long nl_shift, count + #Loop over the number of processors in the rank + count = 0 + for m in xrange(self.size): + + if m == 0: + nl_shift = 0 + else: + nl_shift += self.nl_map[m-1] + + #Loop over the number of local pencils + with nogil: + for p in xrange(self.n_local_pencils): + #Now loop over the number of points in each pencil from the m-th processor + for i in xrange(self.nl_map[m]): + send_buffer[count] = pencils[p,nl_shift + i] + count += 1 + return + + cdef void reverse_unpack_buffer_double(self, Grid.DimStruct *dims, double *recv_buffer, double *data ): + + cdef: + long imin = dims.gw + long jmin = dims.gw + long kmin = dims.gw + long imax = dims.nlg[0] - dims.gw + long jmax = dims.nlg[1] - dims.gw + long kmax = dims.nlg[2] - dims.gw + long istride, jstride, kstride + long istride_nogw, jstride_nogw, kstride_nogw + long ishift, jshift, kshift + long ishift_nogw, jshift_nogw, kshift_nogw + long i,j,k,ijk,ijk_no_gw + + if self.dim == 0: + istride = dims.nlg[1] * dims.nlg[2] + jstride = dims.nlg[2] + kstride = 1 + + istride_nogw = 1 + jstride_nogw = dims.nl[0] + kstride_nogw = dims.nl[0] * dims.nl[1] + elif self.dim ==1: + istride = dims.nlg[1] * dims.nlg[2] + jstride = dims.nlg[2] + kstride = 1 + + istride_nogw = dims.nl[1] + jstride_nogw = 1 #dims.nl[0] + kstride_nogw = dims.nl[0] * dims.nl[1] + else: + istride = dims.nlg[1] * dims.nlg[2] + jstride = dims.nlg[2] + kstride = 1 + + istride_nogw = dims.nl[1] * dims.nl[2] + jstride_nogw = dims.nl[2] + kstride_nogw = 1 + + + #Build the local buffer + with nogil: + for i in xrange(imin,imax): + ishift = i*istride + ishift_nogw = (i-dims.gw) * istride_nogw + for j in xrange(jmin,jmax): + jshift = j * jstride + jshift_nogw = (j-dims.gw) * jstride_nogw + for k in xrange(kmin,kmax): + ijk = ishift + jshift + k + ijk_no_gw = ishift_nogw + jshift_nogw+ (k-dims.gw)*kstride_nogw + data[ijk] = recv_buffer[ijk_no_gw] + return + + cdef void build_buffer_complex(self, Grid.DimStruct *dims, complex *data, complex *local_transpose ): + + cdef: + long imin = dims.gw + long jmin = dims.gw + long kmin = dims.gw + long imax = dims.nlg[0] - dims.gw + long jmax = dims.nlg[1] - dims.gw + long kmax = dims.nlg[2] - dims.gw + long istride, jstride, kstride + long istride_nogw, jstride_nogw, kstride_nogw + long ishift, jshift, kshift + long ishift_nogw, jshift_nogw, kshift_nogw + long i,j,k,ijk,ijk_no_gw + + if self.dim == 0: + istride = dims.nlg[1] * dims.nlg[2] + jstride = dims.nlg[2] + kstride = 1 + + istride_nogw = 1 + jstride_nogw = dims.nl[0] + kstride_nogw = dims.nl[0] * dims.nl[1] + elif self.dim ==1: + istride = dims.nlg[1] * dims.nlg[2] + jstride = dims.nlg[2] + kstride = 1 + + istride_nogw = dims.nl[1] + jstride_nogw = 1 #dims.nl[0] + kstride_nogw = dims.nl[0] * dims.nl[1] + else: + istride = dims.nlg[1] * dims.nlg[2] + jstride = dims.nlg[2] + kstride = 1 + + istride_nogw = dims.nl[1] * dims.nl[2] + jstride_nogw = dims.nl[2] + kstride_nogw = 1 + + #Build the local buffer + with nogil: + for i in xrange(imin,imax): + ishift = i*istride + ishift_nogw = (i-dims.gw) * istride_nogw + for j in xrange(jmin,jmax): + jshift = j * jstride + jshift_nogw = (j-dims.gw) * jstride_nogw + for k in xrange(kmin,kmax): + ijk = ishift + jshift + k + ijk_no_gw = ishift_nogw + jshift_nogw+ (k-dims.gw)*kstride_nogw + local_transpose[ijk_no_gw] = data[ijk] + return + + cdef void unpack_buffer_complex(self,Grid.DimStruct *dims, complex *recv_buffer, complex [:,:] pencils): + + cdef: + long m, p, i + long nl_shift, count + + #Loop over the number of processors in the rank + count = 0 + for m in xrange(self.size): + + if m == 0: + nl_shift = 0 + else: + nl_shift += self.nl_map[m-1] + + #Loop over the number of local pencils + with nogil: + for p in xrange(self.n_local_pencils): + #Now loop over the number of points in each pencil from the m-th processor + for i in xrange(self.nl_map[m]): + pencils[p,nl_shift + i] = recv_buffer[count] + count += 1 + return + + cdef complex [:,:] forward_complex(self, Grid.DimStruct *dims, ParallelMPI Pa ,complex *data): + + cdef: + complex [:] local_transpose = np.empty((dims.npl,),dtype=np.complex,order='c') + complex [:] recv_buffer = np.empty((self.n_local_pencils * self.pencil_length),dtype=np.complex,order='c') + complex [:,:] pencils = np.empty((self.n_local_pencils,self.pencil_length),dtype=np.complex,order='c') + + #Build send buffer + self.build_buffer_complex(dims, data, &local_transpose[0]) + + if(self.size > 1): + #Do all to all communication + if self.dim == 0: + mpi.MPI_Alltoallv(&local_transpose[0], &self.send_counts[0], &self.sdispls[0],mpi.MPI_DOUBLE_COMPLEX, + &recv_buffer[0], &self.recv_counts[0], &self.rdispls[0],mpi.MPI_DOUBLE_COMPLEX,Pa.cart_comm_sub_x) + elif self.dim==1: + mpi.MPI_Alltoallv(&local_transpose[0], &self.send_counts[0], &self.sdispls[0],mpi.MPI_DOUBLE_COMPLEX, + &recv_buffer[0], &self.recv_counts[0], &self.rdispls[0],mpi.MPI_DOUBLE_COMPLEX,Pa.cart_comm_sub_y) + else: + mpi.MPI_Alltoallv(&local_transpose[0], &self.send_counts[0], &self.sdispls[0],mpi.MPI_DOUBLE_COMPLEX, + &recv_buffer[0], &self.recv_counts[0], &self.rdispls[0],mpi.MPI_DOUBLE_COMPLEX,Pa.cart_comm_sub_z) + + + self.unpack_buffer_complex(dims,&recv_buffer[0],pencils) + + else: + self.unpack_buffer_complex(dims,&local_transpose[0],pencils) + + return pencils + + cdef void reverse_complex(self, Grid.DimStruct *dims, ParallelMPI Pa, complex [:,:] pencils, complex *data): + + cdef: + complex [:] send_buffer = np.empty(self.n_local_pencils * self.pencil_length,dtype=np.complex,order='c') + complex [:] recv_buffer = np.empty(dims.npl,dtype=np.complex,order='c') + + #This is exactly the inverse operation to forward_double so that the send_counts can be used as the recv_counts + #and vice versa + self.reverse_build_buffer_complex(dims,pencils,&send_buffer[0]) + if(self.size > 1): + #Do all to all communication + if self.dim == 0: + mpi.MPI_Alltoallv(&send_buffer[0], &self.recv_counts[0], &self.rdispls[0],mpi.MPI_DOUBLE_COMPLEX, + &recv_buffer[0], &self.send_counts[0], &self.sdispls[0],mpi.MPI_DOUBLE_COMPLEX,Pa.cart_comm_sub_x) + elif self.dim==1: + mpi.MPI_Alltoallv(&send_buffer[0], &self.recv_counts[0], &self.rdispls[0],mpi.MPI_DOUBLE_COMPLEX, + &recv_buffer[0], &self.send_counts[0], &self.sdispls[0],mpi.MPI_DOUBLE_COMPLEX,Pa.cart_comm_sub_y) + else: + + mpi.MPI_Alltoallv(&send_buffer[0], &self.recv_counts[0], &self.rdispls[0],mpi.MPI_DOUBLE_COMPLEX, + &recv_buffer[0], &self.send_counts[0], &self.sdispls[0],mpi.MPI_DOUBLE_COMPLEX,Pa.cart_comm_sub_z) + self.reverse_unpack_buffer_complex(dims,&recv_buffer[0],data) + else: + self.reverse_unpack_buffer_complex(dims,&send_buffer[0],data) + + return + + + cdef void reverse_build_buffer_complex(self, Grid.DimStruct *dims, complex [:,:] pencils, complex *send_buffer): + cdef: + long m, p, i + long nl_shift, count + + #Loop over the number of processors in the rank + count = 0 + for m in xrange(self.size): + + if m == 0: + nl_shift = 0 + else: + nl_shift += self.nl_map[m-1] + + #Loop over the number of local pencils + with nogil: + for p in xrange(self.n_local_pencils): + #Now loop over the number of points in each pencil from the m-th processor + for i in xrange(self.nl_map[m]): + send_buffer[count] = pencils[p,nl_shift + i] + count += 1 + return + + cdef void reverse_unpack_buffer_complex(self, Grid.DimStruct *dims, complex *recv_buffer, complex *data ): + + cdef: + long imin = dims.gw + long jmin = dims.gw + long kmin = dims.gw + long imax = dims.nlg[0] - dims.gw + long jmax = dims.nlg[1] - dims.gw + long kmax = dims.nlg[2] - dims.gw + long istride, jstride, kstride + long istride_nogw, jstride_nogw, kstride_nogw + long ishift, jshift, kshift + long ishift_nogw, jshift_nogw, kshift_nogw + + long i,j,k,ijk,ijk_no_gw + + if self.dim == 0: + istride = dims.nlg[1] * dims.nlg[2] + jstride = dims.nlg[2] + kstride = 1 + + istride_nogw = 1 + jstride_nogw = dims.nl[0] + kstride_nogw = dims.nl[0] * dims.nl[1] + elif self.dim ==1: + istride = dims.nlg[1] * dims.nlg[2] + jstride = dims.nlg[2] + kstride = 1 + + istride_nogw = dims.nl[1] + jstride_nogw = 1 #dims.nl[0] + kstride_nogw = dims.nl[0] * dims.nl[1] + else: + istride = dims.nlg[1] * dims.nlg[2] + jstride = dims.nlg[2] + kstride = 1 + + istride_nogw = dims.nl[1] * dims.nl[2] + jstride_nogw = dims.nl[2] + kstride_nogw = 1 + + #Build the local buffer + with nogil: + for i in xrange(imin,imax): + ishift = i*istride + ishift_nogw = (i-dims.gw) * istride_nogw + for j in xrange(jmin,jmax): + jshift = j * jstride + jshift_nogw = (j-dims.gw) * jstride_nogw + for k in xrange(kmin,kmax): + ijk = ishift + jshift + k + ijk_no_gw = ishift_nogw + jshift_nogw+ (k-dims.gw)*kstride_nogw + data[ijk] = recv_buffer[ijk_no_gw] + return + diff --git a/test_av/PrognosticVariables.pxd b/test_av/PrognosticVariables.pxd new file mode 100644 index 00000000..a7026f05 --- /dev/null +++ b/test_av/PrognosticVariables.pxd @@ -0,0 +1,53 @@ +from NetCDFIO cimport NetCDFIO_Stats +cimport Grid +cimport ParallelMPI +cimport ReferenceState +cimport Restart + +cdef extern from "prognostic_variables.h": + struct VelocityDofs: + Py_ssize_t u + Py_ssize_t v + Py_ssize_t w + +cdef extern from "prognostic_variables.h": + void build_buffer(Py_ssize_t nv, Py_ssize_t dim, Py_ssize_t s ,Grid.DimStruct *dims, double* values, double* buffer) + void buffer_to_values(Py_ssize_t dim, Py_ssize_t s, Grid.DimStruct *dims, double* values, double* buffer) + void set_bcs(Py_ssize_t dim, Py_ssize_t s, double bc_factor, Grid.DimStruct *dims, double* values) + void set_to_zero(Py_ssize_t nv, Grid.DimStruct *dims, double* values ) + +cdef class PrognosticVariables: + cdef: + dict name_index + dict units + list index_name + Py_ssize_t nv + Py_ssize_t nv_scalars + Py_ssize_t nv_velocities + cdef double [:] bc_type + cdef long [:] var_type + cdef double [:] values + cdef double [:] tendencies + cdef long [:] velocity_directions + list velocity_names_directional + + cpdef add_variable(self,name,units,bc_type,var_type,ParallelMPI.ParallelMPI Pa) + # cpdef initialize(self,Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + cpdef initialize(self,Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cdef: + void update_all_bcs(self, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef Update_all_bcs(self,Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef debug(self, Grid.Grid Gr, ReferenceState.ReferenceState RS ,NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + cpdef set_velocity_direction(self,name,Py_ssize_t direction,ParallelMPI.ParallelMPI Pa) + cdef inline Py_ssize_t get_nv(self, str variable_name): + return self.name_index[variable_name] + cdef inline Py_ssize_t get_varshift(self, Grid.Grid Gr, str variable_name): + return self.name_index[variable_name] * Gr.dims.npg + cpdef get_variable_array(self,name,Grid.Grid Gr) + cpdef get_tendency_array(self,name,Grid.Grid Gr) + cpdef tend_nan(self,PA,message) + cpdef val_nan(self,PA,message) + cpdef val_bounds(self,var_name,Grid.Grid Gr) + cpdef stats_io(self, Grid.Grid Gr, ReferenceState.ReferenceState RS, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa) + cpdef restart(self, Grid.Grid Gr, Restart.Restart Re) + cpdef init_from_restart(self, Grid.Grid Gr, Restart.Restart Re) \ No newline at end of file diff --git a/test_av/PrognosticVariables.pyx b/test_av/PrognosticVariables.pyx new file mode 100644 index 00000000..1b2ffaa6 --- /dev/null +++ b/test_av/PrognosticVariables.pyx @@ -0,0 +1,358 @@ +#!python +#cython: boundscheck=False +#cython: wraparound=False +#cython: initializedcheck=False +#cython: cdivision=True + +from cpython.mem cimport PyMem_Malloc, PyMem_Realloc, PyMem_Free +import numpy as np +cimport numpy as np +cimport mpi4py.libmpi as mpi +from NetCDFIO cimport NetCDFIO_Stats + +cimport Grid +cimport ParallelMPI +cimport ReferenceState +cimport Restart + +cdef class PrognosticVariables: + def __init__(self, Grid.Grid Gr): + self.name_index = {} + self.index_name = [] + self.units = {} + self.nv = 0 + self.nv_scalars = 0 + self.nv_velocities = 0 + self.bc_type = np.array([],dtype=np.double,order='c') + self.var_type = np.array([],dtype=np.int,order='c') + self.velocity_directions = np.zeros((Gr.dims.dims,),dtype=np.int,order='c') + self.velocity_names_directional = ["" for dim in range(Gr.dims.dims)] + return + + cpdef add_variable(self,name,units,bc_type,var_type,ParallelMPI.ParallelMPI Pa): + + #Store names and units + self.name_index[name] = self.nv + self.index_name.append(name) + self.units[name] = units + self.nv = len(self.name_index.keys()) + + #Add bc type to array + if bc_type == "sym": + self.bc_type = np.append(self.bc_type,[1.0]) + elif bc_type =="asym": + self.bc_type = np.append(self.bc_type,[-1.0]) + else: + Pa.root_print("Not a valid bc_type. Killing simulation now!") + Pa.kill() + + #Set the type of the variable being added 0=velocity; 1=scalars + if var_type == "velocity": + self.var_type = np.append(self.var_type,0) + self.nv_velocities += 1 + elif var_type == "scalar": + self.var_type = np.append(self.var_type,1) + self.nv_scalars += 1 + else: + Pa.root_print("Not a valid var_type. Killing simulation now!") + Pa.kill() + + return + + cpdef set_velocity_direction(self,name,Py_ssize_t direction,ParallelMPI.ParallelMPI Pa): + try: + self.velocity_directions[direction] = self.get_nv(name) + except: + Pa.root_print('problem setting velocity '+ name+' to direction '+ str(direction)) + Pa.root_print('Killing simulation now!') + Pa.kill() + + self.velocity_names_directional[direction] = name + return + + # cpdef initialize(self,Grid.Grid Gr, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + # self.values = np.empty((self.nv*Gr.dims.npg),dtype=np.double,order='c') + # self.tendencies = np.zeros((self.nv*Gr.dims.npg),dtype=np.double,order='c') + cpdef initialize(self,Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + self.values = np.zeros((self.nv*Gr.dims.npg),dtype=np.double,order='c') + self.tendencies = np.zeros((self.nv*Gr.dims.npg),dtype=np.double,order='c') + + # #Add prognostic variables to Statistics IO + # Pa.root_print('Setting up statistical output files for Prognostic Variables') + # for var_name in self.name_index.keys(): + # #Add mean profile + # NS.add_profile(var_name+'_mean',Gr,Pa) + # + # if var_name == 'u' or var_name == 'v': + # NS.add_profile(var_name+'_translational_mean',Gr,Pa) + # + # #Add mean of squares profile + # NS.add_profile(var_name+'_mean2',Gr,Pa) + # #Add mean of cubes profile + # NS.add_profile(var_name+'_mean3',Gr,Pa) + # #Add max profile + # NS.add_profile(var_name+'_max',Gr,Pa) + # #Add min profile + # NS.add_profile(var_name+'_min',Gr,Pa) + # #Add max ts + # NS.add_ts(var_name+'_max',Gr,Pa) + # #Add min ts + # NS.add_ts(var_name+'_min',Gr,Pa) + # + # if 'qt' in self.name_index.keys() and 's' in self.name_index.keys(): + # NS.add_profile('qt_s_product_mean', Gr, Pa) + return + + cpdef stats_io(self, Grid.Grid Gr, ReferenceState.ReferenceState RS ,NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + cdef: + Py_ssize_t var_shift, var_shift2 + double [:] tmp + + for var_name in self.name_index.keys(): + Pa.root_print('Prognostic Variables: write profile: ' + var_name) + + var_shift = self.get_varshift(Gr,var_name) + + + #Compute and write mean + tmp = Pa.HorizontalMean(Gr,&self.values[var_shift]) + NS.write_profile(var_name + '_mean',tmp[Gr.dims.gw:-Gr.dims.gw],Pa) + + # Also output the velocities with the translational velocity included + if var_name == 'u': + NS.write_profile(var_name + '_translational_mean',np.array(tmp[Gr.dims.gw:-Gr.dims.gw]) + RS.u0,Pa) + elif var_name == 'v': + NS.write_profile(var_name + '_translational_mean',np.array(tmp[Gr.dims.gw:-Gr.dims.gw]) + RS.v0,Pa) + + + #Compute and write mean of squres + tmp = Pa.HorizontalMeanofSquares(Gr,&self.values[var_shift],&self.values[var_shift]) + NS.write_profile(var_name + '_mean2',tmp[Gr.dims.gw:-Gr.dims.gw],Pa) + #Compute and write mean of cubes + tmp = Pa.HorizontalMeanofCubes(Gr,&self.values[var_shift],&self.values[var_shift],&self.values[var_shift]) + NS.write_profile(var_name + '_mean3',tmp[Gr.dims.gw:-Gr.dims.gw],Pa) + + #Compute and write maxes + tmp = Pa.HorizontalMaximum(Gr,&self.values[var_shift]) + NS.write_profile(var_name + '_max',tmp[Gr.dims.gw:-Gr.dims.gw],Pa) + NS.write_ts(var_name+'_max',np.amax(tmp[Gr.dims.gw:-Gr.dims.gw]),Pa) + + #Compute and write mins + tmp = Pa.HorizontalMinimum(Gr,&self.values[var_shift]) + NS.write_profile(var_name + '_min',tmp[Gr.dims.gw:-Gr.dims.gw],Pa) + NS.write_ts(var_name+'_min',np.amin(tmp[Gr.dims.gw:-Gr.dims.gw]),Pa) + + if 'qt' in self.name_index.keys() and 's' in self.name_index.keys(): + var_shift = self.get_varshift(Gr,'qt') + var_shift2 = self.get_varshift(Gr,'s') + tmp = Pa.HorizontalMeanofSquares(Gr,&self.values[var_shift],&self.values[var_shift2]) + NS.write_profile('qt_s_product_mean',tmp[Gr.dims.gw:-Gr.dims.gw],Pa) + + return + + cpdef debug(self, Grid.Grid Gr, ReferenceState.ReferenceState RS ,NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + ''' + + This function is for debugging purpuses. It prints the maximum and minimum of each variable and their + tendencies stored in the PrognosticVariables class. + + :param Gr: + :param RS: + :param NS: + :param Pa: + :return: + ''' + + cdef: + Py_ssize_t var_shift + + for var_name in self.name_index.keys(): + var_shift = self.get_varshift(Gr,var_name) + + v_max = np.amax(Pa.HorizontalMaximum(Gr,&self.values[var_shift])[Gr.dims.gw:-Gr.dims.gw]) + v_min = np.amin(Pa.HorizontalMinimum(Gr,&self.values[var_shift])[Gr.dims.gw:-Gr.dims.gw]) + + t_max = np.amax(Pa.HorizontalMaximum(Gr,&self.tendencies[var_shift])[Gr.dims.gw:-Gr.dims.gw]) + t_min = np.amin(Pa.HorizontalMinimum(Gr,&self.tendencies[var_shift])[Gr.dims.gw:-Gr.dims.gw]) + + message = var_name + ': ' + ' value min: ' + str(v_min) + ' value max: ' + str(v_max) + ' tend min: ' + str(t_min) + ' tend_max: ' + str(t_max) + Pa.root_print(message) + + + return + + + + cdef void update_all_bcs(self,Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + + cdef double* send_buffer + cdef double* recv_buffer + cdef double a =0 + cdef double b = 0 + cdef Py_ssize_t [:] shift = np.array([-1,1],dtype=np.int,order='c') + cdef Py_ssize_t d, i, s + cdef Py_ssize_t ierr + cdef int dest_rank, source_rank + cdef mpi.MPI_Status status + + #Get this processors rank in the cart_comm_world communicator + ierr = mpi.MPI_Comm_rank(Pa.cart_comm_world,&source_rank) + cdef Py_ssize_t j,k,var_shift,ishift, jshift, buffer_var_shift + + #Loop over dimensions sending buffers for each + for d in xrange(Gr.dims.dims): + + #Allocate memory for send buffer using python memory manager for safety + send_buffer = PyMem_Malloc(self.nv * Gr.dims.nbuffer[d] * sizeof(double)) + recv_buffer = PyMem_Malloc(self.nv * Gr.dims.nbuffer[d] * sizeof(double)) + #Loop over shifts (this should only be -1 or 1) + for s in shift: + #Now loop over variables and store in send buffer + + for i in xrange(self.nv): + buffer_var_shift = Gr.dims.nbuffer[d] * i + var_shift = i * Gr.dims.npg + build_buffer(i, d, s,&Gr.dims,&self.values[0],&send_buffer[0]) + + #Compute the mpi shifts (lower and upper) in the world communicator for dimeniosn d + ierr = mpi.MPI_Cart_shift(Pa.cart_comm_world,d,s,&source_rank,&dest_rank) + + ierr = mpi.MPI_Sendrecv(&send_buffer[0],self.nv*Gr.dims.nbuffer[d],mpi.MPI_DOUBLE,dest_rank,0, + &recv_buffer[0],self.nv*Gr.dims.nbuffer[d], + mpi.MPI_DOUBLE,source_rank,0,Pa.cart_comm_world,&status) + + + for i in xrange(self.nv): + buffer_var_shift = Gr.dims.nbuffer[d] * i + var_shift = i * Gr.dims.npg + if source_rank >= 0: + buffer_to_values(d, s,&Gr.dims,&self.values[var_shift],&recv_buffer[buffer_var_shift]) + else: + set_bcs(d,s,self.bc_type[i],&Gr.dims,&self.values[var_shift]) + + #Important: Free memory associated with memory buffer to prevent memory leak + PyMem_Free(send_buffer) + PyMem_Free(recv_buffer) + return + + cpdef Update_all_bcs(self,Grid.Grid Gr, ParallelMPI.ParallelMPI Pa ): + self.update_all_bcs(Gr, Pa) + return + + cpdef get_variable_array(self,name,Grid.Grid Gr): + index = self.name_index[name] + view = np.array(self.values).view() + view.shape = (self.nv,Gr.dims.nlg[0],Gr.dims.nlg[1],Gr.dims.nlg[2]) + return view[index,:,:,:] + + cpdef get_tendency_array(self,name,Grid.Grid Gr): + index = self.name_index[name] + view = np.array(self.tendencies).view() + view.shape = (self.nv,Gr.dims.nlg[0],Gr.dims.nlg[1],Gr.dims.nlg[2]) + return view[index,:,:,:] + + cpdef tend_nan(self,PA,message): + if np.isnan(self.tendencies).any(): + print('Nans found in tendencies') + print(message) + PA.kill() + return + + cpdef val_nan(self,PA,message): + if np.isnan(self.values).any(): + print('Nans found in Prognostic Variables values') + print(message) + PA.kill() + return + + cpdef val_bounds(self,var_name,Grid.Grid Gr): + var_array = self.get_variable_array(var_name, Gr) + return np.amin(var_array), np.amax(var_array) + + cpdef restart(self, Grid.Grid Gr, Restart.Restart Re): + + Re.restart_data['PV'] = {} + Re.restart_data['PV']['name_index'] = self.name_index + Re.restart_data['PV']['units'] = self.units + Re.restart_data['PV']['index_name'] = self.index_name + Re.restart_data['PV']['nv'] = self.nv + Re.restart_data['PV']['nv_scalars'] = self.nv_scalars + Re.restart_data['PV']['nv_velocities'] = self.nv_velocities + Re.restart_data['PV']['bc_type'] = np.array(self.bc_type) + Re.restart_data['PV']['var_type'] = np.array(self.var_type) + Re.restart_data['PV']['velocity_directions'] = np.array(self.velocity_directions) + Re.restart_data['PV']['velocity_names_directional'] = self.velocity_names_directional + + cdef: + double [:] values = np.empty((self.nv * Gr.dims.npl),dtype=np.double,order='c') + Py_ssize_t imin = Gr.dims.gw + Py_ssize_t jmin = Gr.dims.gw + Py_ssize_t kmin = Gr.dims.gw + Py_ssize_t imax = Gr.dims.nlg[0] - Gr.dims.gw + Py_ssize_t jmax = Gr.dims.nlg[1] - Gr.dims.gw + Py_ssize_t kmax = Gr.dims.nlg[2] - Gr.dims.gw + Py_ssize_t i, j, k, count, ijk, n, v_shift + Py_ssize_t ishift, jshift + Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + Py_ssize_t jstride = Gr.dims.nlg[2] + + with nogil: + count = 0 + for n in xrange(self.nv): + v_shift = Gr.dims.nlg[0] * Gr.dims.nlg[1] * Gr.dims.nlg[2] * n + for i in xrange(imin, imax): + ishift = istride * i + for j in xrange(jmin, jmax): + jshift = jstride * j + for k in xrange(kmin, kmax): + ijk = v_shift + ishift + jshift + k + values[count] = self.values[ijk] + count += 1 + + Re.restart_data['PV']['values'] = np.array(values) + + return + + + cpdef init_from_restart(self, Grid.Grid Gr, Restart.Restart Re): + + self.name_index = Re.restart_data['PV']['name_index'] + self.units = Re.restart_data['PV']['units'] + self.index_name = Re.restart_data['PV']['index_name'] + self.nv = Re.restart_data['PV']['nv'] + self.nv_scalars = Re.restart_data['PV']['nv_scalars'] + self.nv_velocities = Re.restart_data['PV']['nv_velocities'] + self.bc_type = Re.restart_data['PV']['bc_type'] + self.var_type = Re.restart_data['PV']['var_type'] + self.velocity_directions = Re.restart_data['PV']['velocity_directions'] + self.velocity_names_directional = Re.restart_data['PV']['velocity_names_directional'] + + + cdef: + double [:] values = Re.restart_data['PV']['values'] + Py_ssize_t imin = Gr.dims.gw + Py_ssize_t jmin = Gr.dims.gw + Py_ssize_t kmin = Gr.dims.gw + Py_ssize_t imax = Gr.dims.nlg[0] - Gr.dims.gw + Py_ssize_t jmax = Gr.dims.nlg[1] - Gr.dims.gw + Py_ssize_t kmax = Gr.dims.nlg[2] - Gr.dims.gw + Py_ssize_t i, j, k, count, ijk, n + Py_ssize_t ishift, jshift, v_shift + Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + Py_ssize_t jstride = Gr.dims.nlg[2] + + + with nogil: + count = 0 + for n in xrange(self.nv): + v_shift = Gr.dims.nlg[0] * Gr.dims.nlg[1] * Gr.dims.nlg[2] * n + for i in xrange(imin, imax): + ishift = istride * i + for j in xrange(jmin, jmax): + jshift = jstride * j + for k in xrange(kmin, kmax): + ijk = v_shift + ishift + jshift + k + self.values[ijk] = values[count] + count += 1 + + return diff --git a/test_av/ReferenceState.pxd b/test_av/ReferenceState.pxd new file mode 100644 index 00000000..c7f9ec3d --- /dev/null +++ b/test_av/ReferenceState.pxd @@ -0,0 +1,24 @@ +cimport Grid +cimport Restart +cdef class ReferenceState: + cdef: + public double [:] p0 + public double [:] p0_half + public double [:] alpha0 + public double [:] alpha0_half + public double [:] rho0 + public double [:] rho0_half + + double sg + + cdef public: + #These public values should be set in the case initialization routine + double Tg #Temperature at ground level + double Pg #Pressure at ground level + double qtg #Surface total water mixing ratio + double u0 #u velocity removed in Galilean transformation + double v0 #v velocity removed in Galilean transformation + + cpdef restart(self, Grid.Grid Gr, Restart.Restart Re) + cpdef init_from_restart(self, Grid.Grid Gr, Restart.Restart Re) + diff --git a/test_av/ReferenceState.pyx b/test_av/ReferenceState.pyx new file mode 100644 index 00000000..ff5116b9 --- /dev/null +++ b/test_av/ReferenceState.pyx @@ -0,0 +1,176 @@ +#!python +# cython: boundscheck=False +# cython: wraparound=True +# cython: initializedcheck=False +# cython: cdivision=True + +cimport Grid +cimport Restart +cimport numpy as np +import numpy as np +from NetCDFIO cimport NetCDFIO_Stats +cimport ParallelMPI +from scipy.integrate import odeint +include 'parameters.pxi' + +cdef extern from "thermodynamic_functions.h": + inline double qt_from_pv(double p0, double pv) + +cdef class ReferenceState: + def __init__(self, Grid.Grid Gr ): + + self.p0 = np.zeros(Gr.dims.nlg[2], dtype=np.double, order='c') + self.p0_half = np.zeros(Gr.dims.nlg[2], dtype=np.double, order='c') + self.alpha0 = np.zeros(Gr.dims.nlg[2], dtype=np.double, order='c') + self.alpha0_half = np.zeros(Gr.dims.nlg[2], dtype=np.double, order='c') + self.rho0 = np.zeros(Gr.dims.nlg[2], dtype=np.double, order='c') + self.rho0_half = np.zeros(Gr.dims.nlg[2], dtype=np.double, order='c') + + return + + def initialize(self, Grid.Grid Gr, Thermodynamics, NetCDFIO_Stats NS, ParallelMPI.ParallelMPI Pa): + ''' + Initilize the reference profiles. The function is typically called from the case specific initialization + fucntion defined in Initialization.pyx + :param Gr: Grid class + :param Thermodynamics: Thermodynamics class + :param NS: StatsIO class + :param Pa: ParallelMPI class + :return: + ''' + + + + + self.sg = Thermodynamics.entropy(self.Pg, self.Tg, self.qtg, 0.0, 0.0) + + # Form a right hand side for integrating the hydrostatic equation to + # determine the reference pressure + def rhs(p, z): + T, ql, qi = Thermodynamics.eos(np.exp(p), self.sg, self.qtg) + return -g / (Rd * T * (1.0 - self.qtg + eps_vi * (self.qtg - ql - qi))) + + # Construct arrays for integration points + z = np.array(Gr.z[Gr.dims.gw - 1:-Gr.dims.gw + 1]) + z_half = np.append([0.0], np.array(Gr.z_half[Gr.dims.gw:-Gr.dims.gw])) + + # We are integrating the log pressure so need to take the log of the + # surface pressure + p0 = np.log(self.Pg) + + p = np.zeros(Gr.dims.ng[2], dtype=np.double, order='c') + p_half = np.zeros(Gr.dims.ng[2], dtype=np.double, order='c') + + # Perform the integration + p[Gr.dims.gw - 1:-Gr.dims.gw +1] = odeint(rhs, p0, z, hmax=1.0)[:, 0] + p_half[Gr.dims.gw:-Gr.dims.gw] = odeint(rhs, p0, z_half, hmax=1.0)[1:, 0] + + # Set boundary conditions + p[:Gr.dims.gw - 1] = p[2 * Gr.dims.gw - 2:Gr.dims.gw - 1:-1] + p[-Gr.dims.gw + 1:] = p[-Gr.dims.gw - 1:-2 * Gr.dims.gw:-1] + + p_half[:Gr.dims.gw] = p_half[2 * Gr.dims.gw - 1:Gr.dims.gw - 1:-1] + p_half[-Gr.dims.gw:] = p_half[-Gr.dims.gw - 1:-2 * Gr.dims.gw - 1:-1] + + p = np.exp(p) + p_half = np.exp(p_half) + + cdef double[:] p_ = p + cdef double[:] p_half_ = p_half + cdef double[:] temperature = np.zeros(Gr.dims.ng[2], dtype=np.double, order='c') + cdef double[:] temperature_half = np.zeros(Gr.dims.ng[2], dtype=np.double, order='c') + cdef double[:] alpha = np.zeros(Gr.dims.ng[2], dtype=np.double, order='c') + cdef double[:] alpha_half = np.zeros(Gr.dims.ng[2], dtype=np.double, order='c') + + cdef double[:] ql = np.zeros(Gr.dims.ng[2], dtype=np.double, order='c') + cdef double[:] qi = np.zeros(Gr.dims.ng[2], dtype=np.double, order='c') + cdef double[:] qv = np.zeros(Gr.dims.ng[2], dtype=np.double, order='c') + + cdef double[:] ql_half = np.zeros(Gr.dims.ng[2], dtype=np.double, order='c') + cdef double[:] qi_half = np.zeros(Gr.dims.ng[2], dtype=np.double, order='c') + cdef double[:] qv_half = np.zeros(Gr.dims.ng[2], dtype=np.double, order='c') + + # Compute reference state thermodynamic profiles + for k in xrange(Gr.dims.ng[2]): + temperature[k], ql[k], qi[k] = Thermodynamics.eos(p_[k], self.sg, self.qtg) + qv[k] = self.qtg - (ql[k] + qi[k]) + alpha[k] = Thermodynamics.alpha(p_[k], temperature[k], self.qtg, qv[k]) + + temperature_half[k], ql_half[k], qi_half[k] = Thermodynamics.eos(p_half_[k], self.sg, self.qtg) + qv_half[k] = self.qtg - (ql_half[k] + qi_half[k]) + alpha_half[k] = Thermodynamics.alpha(p_half_[k], temperature_half[k], self.qtg, qv_half[k]) + + # Now do a sanity check to make sure that the Reference State entropy profile is uniform following + # saturation adjustment + cdef double s + for k in xrange(Gr.dims.ng[2]): + s = Thermodynamics.entropy(p_half[k],temperature_half[k],self.qtg,ql_half[k],qi_half[k]) + if np.abs(s - self.sg)/self.sg > 0.01: + Pa.root_print('Error in reference profiles entropy not constant !') + Pa.root_print('Likely error in saturation adjustment') + Pa.root_print('Kill Simulation Now!') + Pa.kill() + + + # print(np.array(Gr.extract_local_ghosted(alpha_half,2))) + self.alpha0_half = Gr.extract_local_ghosted(alpha_half, 2) + self.alpha0 = Gr.extract_local_ghosted(alpha, 2) + self.p0 = Gr.extract_local_ghosted(p_, 2) + self.p0_half = Gr.extract_local_ghosted(p_half, 2) + self.rho0 = 1.0 / np.array(self.alpha0) + self.rho0_half = 1.0 / np.array(self.alpha0_half) + + # Write reference profiles to StatsIO + NS.add_reference_profile('alpha0', Gr, Pa) + NS.write_reference_profile('alpha0', alpha_half[Gr.dims.gw:-Gr.dims.gw], Pa) + NS.add_reference_profile('p0', Gr, Pa) + NS.write_reference_profile('p0', p_half[Gr.dims.gw:-Gr.dims.gw], Pa) + NS.add_reference_profile('rho0', Gr, Pa) + NS.write_reference_profile('rho0', 1.0 / np.array(alpha_half[Gr.dims.gw:-Gr.dims.gw]), Pa) + NS.add_reference_profile('temperature0', Gr, Pa) + NS.write_reference_profile('temperature0', temperature_half[Gr.dims.gw:-Gr.dims.gw], Pa) + NS.add_reference_profile('ql0', Gr, Pa) + NS.write_reference_profile('ql0', ql_half[Gr.dims.gw:-Gr.dims.gw], Pa) + NS.add_reference_profile('qv0', Gr, Pa) + NS.write_reference_profile('qv0', qv_half[Gr.dims.gw:-Gr.dims.gw], Pa) + NS.add_reference_profile('qi0', Gr, Pa) + NS.write_reference_profile('qi0', qi_half[Gr.dims.gw:-Gr.dims.gw], Pa) + + return + + cpdef restart(self, Grid.Grid Gr, Restart.Restart Re): + Re.restart_data['Ref'] = {} + + Re.restart_data['Ref']['p0'] = np.array(self.p0) + Re.restart_data['Ref']['p0_half'] = np.array(self.p0_half) + Re.restart_data['Ref']['alpha0'] = np.array(self.alpha0) + Re.restart_data['Ref']['alpha0_half'] = np.array(self.alpha0_half) + + Re.restart_data['Ref']['Tg'] = self.Tg + Re.restart_data['Ref']['Pg'] = self.Pg + Re.restart_data['Ref']['sg'] = self.sg + Re.restart_data['Ref']['qtg'] = self.qtg + Re.restart_data['Ref']['u0'] = self.u0 + Re.restart_data['Ref']['v0'] = self.v0 + + return + + + cpdef init_from_restart(self, Grid.Grid Gr, Restart.Restart Re): + + self.Tg = Re.restart_data['Ref']['Tg'] + self.Pg = Re.restart_data['Ref']['Pg'] + self.sg = Re.restart_data['Ref']['sg'] + self.qtg = Re.restart_data['Ref']['qtg'] + self.u0 = Re.restart_data['Ref']['u0'] + self.v0 = Re.restart_data['Ref']['v0'] + + self.p0 = Re.restart_data['Ref']['p0'] + self.p0_half = Re.restart_data['Ref']['p0_half'] + self.alpha0 = Re.restart_data['Ref']['alpha0'] + self.alpha0_half = Re.restart_data['Ref']['alpha0_half'] + self.rho0 = 1.0 / Re.restart_data['Ref']['alpha0'] + self.rho0_half = 1.0 / Re.restart_data['Ref']['alpha0_half'] + + return + diff --git a/test_av/Restart.pxd b/test_av/Restart.pxd new file mode 100644 index 00000000..01285e1a --- /dev/null +++ b/test_av/Restart.pxd @@ -0,0 +1,16 @@ +cimport ParallelMPI + +cdef class Restart: + cdef: + public dict restart_data + str restart_path + str input_path + public bint is_restart_run + str uuid + public double last_restart_time + public double frequency + + cpdef initialize(self) + cpdef write(self, ParallelMPI.ParallelMPI Pa) + cpdef read(self, ParallelMPI.ParallelMPI Pa) + cpdef free_memory(self) \ No newline at end of file diff --git a/test_av/Restart.pyx b/test_av/Restart.pyx new file mode 100644 index 00000000..0cc32676 --- /dev/null +++ b/test_av/Restart.pyx @@ -0,0 +1,109 @@ +import numpy as np +import os +try: + import cPickle as pickle +except: + import pickle as pickle # for Python 3 users + +cimport ParallelMPI + +cdef class Restart: + def __init__(self, dict namelist, ParallelMPI.ParallelMPI Pa): + ''' + Init method for Restart class. Take the namelist dictionary as an argument and determines the output path + for the restart files. If one cannot be constructed from the namelist information the restart files are placed + into the directory containing main.py. The uuid is also stored to make sure the restart files remain unique. + + :param namelist: + :return: + ''' + + self.uuid = str(namelist['meta']['uuid']) + + try: + outpath = str(os.path.join(str(namelist['output']['output_root']) + + 'Output.' + str(namelist['meta']['simname']) + '.' + self.uuid[-5:])) + self.restart_path = os.path.join(outpath, 'Restart') + except: + self.restart_path = './restart.' + self.uuid[-5:] + + if Pa.rank == 0: + try: + os.mkdir(outpath) + except: + pass + try: + os.mkdir(self.restart_path) + except: + pass + + + try: + self.frequency = namelist['restart']['frequency'] + except: + self.frequency = 30.0 + + try: + if namelist['restart']['init_from']: + self.input_path = str(namelist['restart']['input_path']) + self.is_restart_run = True + Pa.root_print('This run is restarting from data :' + self.input_path ) + else: + Pa.root_print('Not a restarted simulation.') + except: + Pa.root_print('Not a restarted simulation.') + + + return + + + cpdef initialize(self): + self.restart_data = {} + self.last_restart_time = 0.0 + + + return + + + cpdef write(self, ParallelMPI.ParallelMPI Pa): + + self.restart_data['last_restart_time'] = self.last_restart_time + + #Set up path for writing restar files + path = self.restart_path + '/' + str(np.int(self.last_restart_time)) + + if Pa.rank == 0: + if os.path.exists(path): + Pa.root_print("Restart path exits for safety not overwriting.") + self.free_memory() + return + else: + Pa.root_print("Creating directory: " + path + " for restart files.") + os.mkdir(path) + Pa.barrier() + + with open(path+ '/' + str(Pa.rank) + '.pkl', 'wb') as f: + pickle.dump(self.restart_data, f,protocol=2) + + # No point keeping data in dictionary so empty it now + self.free_memory() + + return + + cpdef read(self, ParallelMPI.ParallelMPI Pa): + + with open(self.input_path + '/' + str(Pa.rank) + '.pkl', 'rb') as f: + self.restart_data = pickle.load(f) + + return + + + cpdef free_memory(self): + ''' + Free memory associated with restart_data dictionary. + :return: + ''' + + self.restart_data = {} + + return diff --git a/test_av/TestArray.pxd b/test_av/TestArray.pxd new file mode 100644 index 00000000..4d502bc8 --- /dev/null +++ b/test_av/TestArray.pxd @@ -0,0 +1,47 @@ +cimport ParallelMPI +cimport Grid +cimport Restart +cimport PrognosticVariables + +# cdef extern from "grid.h": +# struct DimStruct: +# +# int dims +# +# int [3] n +# int [3] ng +# int [3] nl +# int [3] nlg +# int [3] indx_lo_g +# int [3] indx_lo +# +# int npd +# int npl +# int npg +# int gw +# +# int [3] nbuffer +# int [3] ghosted_stride +# +# double [3] dx +# double [3] dxi +# +cdef class TestArray: + cdef: + int k + int m + double [:] b + + # double array(self) + + cpdef array_mean(self, PrognosticVariables.PrognosticVariables PV, Grid.Grid Gr) + cpdef array_mean_return(self, PrognosticVariables.PrognosticVariables PV, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef array_mean_return_3d(self, PrognosticVariables.PrognosticVariables PV, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + cpdef array_mean_const(self, PrognosticVariables.PrognosticVariables PV, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + + + cpdef set_PV_values_const(self, PrognosticVariables.PrognosticVariables PV, Grid.Grid Gr) + cpdef set_PV_values(self, PrognosticVariables.PrognosticVariables PV, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa) + + + diff --git a/test_av/TestArray.pyx b/test_av/TestArray.pyx new file mode 100644 index 00000000..21d15791 --- /dev/null +++ b/test_av/TestArray.pyx @@ -0,0 +1,170 @@ +import numpy as np +cimport numpy as np + +# cdef extern from "momentum_advection.h": +# void compute_advective_tendencies_m(Grid.DimStruct *dims, double *rho0, double *rho0_half, +# double *alpha0, double *alpha0_half, double *vel_advected, +# double *vel_advecting, double *tendency, Py_ssize_t d_advected, +# Py_ssize_t d_advecting, Py_ssize_t scheme) +cimport Grid +cimport ParallelMPI +cimport PrognosticVariables + +cdef extern from "cc_statistics.h": + # void horizontal_mean(Grid.DimStruct *dims, double *values) + void horizontal_mean(Grid.DimStruct *dims, double *values, double *mean) + # void horizontal_mean_const(Grid.DimStruct *dims, const double restrict *values, double restrict *mean) + void horizontal_mean_const(Grid.DimStruct *dims, const double *values, double *mean) + + + +cdef class TestArray: + def __init__(self,namelist): + print('initialising TestArray') + return + + # def initialize(self): + def initialize(self, namelist): + # self.Pa = ParallelMPI.ParallelMPI(namelist) + # self.Gr = Grid.Grid(self.Pa) + # self.Gr = Grid.Grid(namelist, self.Pa) + return + + + cpdef array_mean(self, PrognosticVariables.PrognosticVariables PV, Grid.Grid Gr): + + return + + + cpdef array_mean_return_3d(self, PrognosticVariables.PrognosticVariables PV, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + print('calling TestArray.array_mean_return') + + u_val = PV.get_variable_array('u', Gr) + cdef double [:] u_mean = np.zeros((Gr.dims.ng[2])) + print(u_mean.size, u_mean.shape, Gr.dims.ng[2], u_val.shape) + + if Pa.rank == 0: + print('!!! before !!!') + print('u_mean:', np.array(u_mean)) + # print('u_val, (:,0,0):', u_val[:,0,0]) + # print('u_val, (0,:,0):', u_val[0,:,0]) + + + cdef Py_ssize_t shift_u = PV.velocity_directions[0] * Gr.dims.npg + horizontal_mean(&Gr.dims, &PV.values[shift_u], &u_mean[0]) + + # print('processor:', Pa.rank) + if Pa.rank == 0: + print('!!! after !!!') + # print('u_val, (:,:,0):', u_val[:,:,0]) + print(np.array(u_mean)) + + return + + + cpdef array_mean_return(self, PrognosticVariables.PrognosticVariables PV, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + print('calling TestArray.array_mean_return') + + u_val = PV.values[:] + # u_val = PV.get_variable_array('u', Gr) + cdef double [:] u_mean = np.zeros((Gr.dims.ng[2])) + if Pa.rank == 0: + print('u_mean', u_mean.size, u_mean.shape, Gr.dims.ng[2]) + print('u_val', u_val.shape, Gr.dims.npg) + + if Pa.rank == 0: + print('! before: !') + print('u_mean:', np.array(u_mean)) + + cdef Py_ssize_t shift_u = PV.velocity_directions[0] * Gr.dims.npg + horizontal_mean(&Gr.dims, &PV.values[shift_u], &u_mean[0]) + + if Pa.rank == 0: + print('! after: !') + # print('u_val, (:,:,0):', u_val[:,:,0]) + # print(np.array(u_mean)) + print('processor:', Pa.rank, np.array(u_mean)) + + + + return + + + + cpdef array_mean_const(self, PrognosticVariables.PrognosticVariables PV, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + print('calling TestArray.array_mean_const') + + u_val = PV.get_variable_array('u', Gr) + cdef double [:] u_mean = np.zeros(Gr.dims.ng[2]) + + if Pa.rank == 0: + print('const - ', u_mean.shape, Gr.dims.ng[2], u_val.shape) + print('! before const !') + print('u_mean:', np.array(u_mean)) + + cdef Py_ssize_t shift_u = PV.velocity_directions[0] * Gr.dims.npg + horizontal_mean_const(&Gr.dims, &PV.values[shift_u], &u_mean[0]) + + print('processor:', Pa.rank) + if Pa.rank == 0: + print('! after const !') + # print('u_val, (:,:,0):', u_val[:,:,0]) + print(np.array(u_mean)) + + return + + + + + + + + + + + cpdef set_PV_values_const(self, PrognosticVariables.PrognosticVariables PV, Grid.Grid Gr): + cdef int i + for i in range(Gr.dims.npg): + PV.values[i] = 2.0 + + return + + + cpdef set_PV_values(self, PrognosticVariables.PrognosticVariables PV, Grid.Grid Gr, ParallelMPI.ParallelMPI Pa): + cdef: + # Py_ssize_t shift_flux = i_advected * Gr.dims.dims * Gr.dims.npg + i_advecting * Gr.dims.npg + Py_ssize_t u_varshift = PV.get_varshift(Gr,'u') + + Py_ssize_t i, j, k, ijk, ishift, jshift + Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + Py_ssize_t jstride = Gr.dims.nlg[2] + + Py_ssize_t imin = 0 + Py_ssize_t jmin = 0 + Py_ssize_t kmin = 0 + + Py_ssize_t imax = Gr.dims.nlg[0] + Py_ssize_t jmax = Gr.dims.nlg[1] + Py_ssize_t kmax = Gr.dims.nlg[2] + + Py_ssize_t rank = Pa.rank + + for i in range(Gr.dims.npg): + PV.values[i] = 0.0 + + + for i in xrange(imin, imax): + # print(i) + ishift = i * istride + for j in xrange(jmin, jmax): + jshift = j * jstride + for k in xrange(kmin, kmax): + ijk = ishift + jshift + k + # PV.values[0+ishift+jshift+k] = (i-Gr.dims.gw) * (rank+1) + PV.values[0+ishift+jshift+k] = (i-Gr.dims.gw) + # PV.values[u_varshift + ijk] = i * (rank+1) + # print(PV.values[0+ishift+jshift+k]) + + + return + diff --git a/test_av/TestRun.pyx b/test_av/TestRun.pyx new file mode 100644 index 00000000..bfcf2dca --- /dev/null +++ b/test_av/TestRun.pyx @@ -0,0 +1,92 @@ +import numpy as np +cimport numpy as np + +cimport TestArray + +cimport Grid +cimport ParallelMPI +cimport PrognosticVariables + +# cdef extern from "momentum_advection.h": +# void compute_advective_tendencies_m(Grid.DimStruct *dims, double *rho0, double *rho0_half, +# double *alpha0, double *alpha0_half, double *vel_advected, +# double *vel_advecting, double *tendency, Py_ssize_t d_advected, +# Py_ssize_t d_advecting, Py_ssize_t scheme) nogil +cdef extern from "cc_statistics.h": + void horizontal_mean(Grid.DimStruct *dims, double *values) + void horizontal_mean_return(Grid.DimStruct *dims, double *values, double *mean) + +class TestRun: + def __init__(self,namelist): + print('initialising TestArray') + return + + def initialize(self, namelist): + self.Pa = ParallelMPI.ParallelMPI(namelist) + self.Gr = Grid.Grid(namelist, self.Pa) + self.PV = PrognosticVariables.PrognosticVariables(self.Gr) + + return + + + # def array(self): # does NOT work with cdef + # k = 2 + # m = 10 + # b = np.empty((k,m)) + # + # aux = np.linspace(0,m-1,m) + # b[0,:] = aux + # b[1,:] = aux + # + # # print(b[0,:]) + # return b + + + def array_mean(self, namelist): + # cdef dims = self.Gr.dims + # cdef nxg = dims.ng[0] + # cdef nyg = dims.ng[1] + # cdef nzg = dims.ng[2] + self.PV.add_variable('u', 'm/s', "sym", "velocity", self.Pa) + self.PV.set_velocity_direction('u', 0, self.Pa) + self.PV.initialize(self.Gr, self.Pa) + + u_val = self.PV.get_variable_array('u', self.Gr) + print('u shape: ', u_val.shape) + + # d = self.PV.velocity_directions[0] + # mean = TestArray.TestArray(namelist) + # mean.array_mean(self.PV, self.Gr) + + # cdef Py_ssize_t shift_u = self.PV.velocity_directions[0] * self.Gr.dims.npg # cannot take the address of a Python variable + # horizontal_mean(&self.Gr.dims, &self.PV.values[shift_u]) + + return + + + def hor_mean(self,namelist): + print('TestRun.hor_mean') + + mean = TestArray.TestArray(namelist) + + self.Pa.root_print('(1) const PV values') + mean.set_PV_values_const(self.PV, self.Gr) + mean.array_mean_return(self.PV, self.Gr, self.Pa) + + self.Pa.root_print('') + self.Pa.root_print('(2) varying PV values') + self.Pa.root_print('(2a) array_mean_return') + mean.set_PV_values(self.PV, self.Gr, self.Pa) + u_val = self.PV.get_variable_array('u', self.Gr) + mean.array_mean_return(self.PV, self.Gr, self.Pa) + + # self.Pa.root_print('(2b) array_mean_const') + # # mean.set_PV_values(self.PV, self.Gr, self.Pa) + # # u_val = self.PV.get_variable_array('u', self.Gr) + # mean.array_mean_const(self.PV, self.Gr, self.Pa) + + print('finished TestRun') + + + + return \ No newline at end of file diff --git a/test_av/TimeStepping.pxd b/test_av/TimeStepping.pxd new file mode 100644 index 00000000..91829135 --- /dev/null +++ b/test_av/TimeStepping.pxd @@ -0,0 +1,36 @@ +cimport ParallelMPI as ParallelMPI +cimport PrognosticVariables as PrognosticVariables +cimport DiagnosticVariables as DiagnosticVariables +cimport Grid as Grid +cimport Restart + +cdef class TimeStepping: + cdef: + public double dt + public double t + public double cfl_max + public double cfl_limit + public double dt_max + public double dt_initial + public double t_max + double [:,:] value_copies + double [:,:] tendency_copies + public Py_ssize_t rk_step + public Py_ssize_t n_rk_steps + public Py_ssize_t ts_type + void initialize_second(self,PrognosticVariables.PrognosticVariables PV) + void initialize_third(self,PrognosticVariables.PrognosticVariables PV) + void initialize_fourth(self,PrognosticVariables.PrognosticVariables PV) + + + cpdef initialize(self, namelist, PrognosticVariables.PrognosticVariables PV, ParallelMPI.ParallelMPI Pa) + cpdef update(self,Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, ParallelMPI.ParallelMPI Pa) + cpdef update_second(self,Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV) + cpdef update_third(self,Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV) + cpdef update_fourth(self,Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV) + + cpdef adjust_timestep(self,Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa) + cdef void compute_cfl_max(self,Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV,ParallelMPI.ParallelMPI Pa) + cpdef restart(self, Restart.Restart Re) + + cdef inline double cfl_time_step(self) \ No newline at end of file diff --git a/test_av/TimeStepping.pyx b/test_av/TimeStepping.pyx new file mode 100644 index 00000000..c25b56bc --- /dev/null +++ b/test_av/TimeStepping.pyx @@ -0,0 +1,283 @@ +#!python +#cython: boundscheck=False +#cython: wraparound=False +#cython: initializedcheck=False +#cython: cdivision=True + +cimport ParallelMPI as ParallelMPI +cimport PrognosticVariables as PrognosticVariables +cimport DiagnosticVariables as DiagnosticVariables +cimport Grid as Grid +cimport Restart +#cimport mpi4py.mpi_c as mpi +cimport mpi4py.libmpi as mpi + +import numpy as np +cimport numpy as np + +from libc.math cimport fmin, fmax, fabs + +cdef class TimeStepping: + + def __init__(self): + + return + + cpdef initialize(self,namelist,PrognosticVariables.PrognosticVariables PV, ParallelMPI.ParallelMPI Pa): + + #Get the time stepping potions from the name list + try: + self.ts_type = namelist['time_stepping']['ts_type'] + except: + Pa.root_print('ts_type not given in namelist') + Pa.root_print('Killing simulation now') + Pa.kill() + + try: + self.dt = namelist['time_stepping']['dt_initial'] + except: + Pa.root_print('dt_initial (initial time step) not given in namelist so taking defualt value dt_initail = 1.0') + self.dt = 1.0 + + try: + self.dt_max = namelist['time_stepping']['dt_max'] + except: + Pa.root_print('dt_max (maximum permissible time step) not given in namelist so taking default value dt_max =10.0') + self.dt_max = 10.0 + + try: + self.t = namelist['time_stepping']['t'] + except: + Pa.root_print('t (initial time) not given in namelist so taking default value t = 0') + self.t = 0.0 + + try: + self.cfl_limit = namelist['time_stepping']['cfl_limit'] + except: + Pa.root_print('cfl_limit (maximum permissible cfl number) not given in namelist so taking default value cfl_max=0.7') + self.cfl_limit = 0.7 + + try: + self.t_max = namelist['time_stepping']['t_max'] + except: + Pa.root_print('t_max (time at end of simulation) not given in name list! Killing Simulation Now') + Pa.kill() + + #Now initialize the correct time stepping routine + if self.ts_type == 2: + self.initialize_second(PV) + elif self.ts_type == 3: + self.initialize_third(PV) + elif self.ts_type == 4: + self.initialize_fourth(PV) + else: + Pa.root_print('Invalid ts_type: ' + str(self.ts_type)) + Pa.root_print('Killing simulation now') + Pa.kill() + + return + + + cpdef update(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, ParallelMPI.ParallelMPI Pa): + + if self.ts_type == 2: + self.update_second(Gr,PV) + elif self.ts_type == 3: + self.update_third(Gr,PV) + elif self.ts_type == 4: + self.update_fourth(Gr,PV) + else: + Pa.root_print('Time stepping option not found ts_type = ' + str(self.ts_type)) + Pa.root_print('Killing Simulation Now!') + Pa.kill() + return + + cpdef adjust_timestep(self,Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa): + #Compute the CFL number and diffusive stability criterion + if self.rk_step == self.n_rk_steps - 1: + self.compute_cfl_max(Gr, PV,DV, Pa) + self.dt = self.cfl_time_step() + + #Diffusive limiting not yet implemented + if self.t + self.dt > self.t_max: + self.dt = self.t_max - self.t + + if self.dt < 0.0: + Pa.root_print('dt = '+ str(self.dt)+ " killing simulation!") + Pa.kill() + + return + + + cpdef update_second(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV): + + cdef: + Py_ssize_t i + + with nogil: + if self.rk_step == 0: + for i in xrange(Gr.dims.npg*PV.nv): + self.value_copies[0,i] = PV.values[i] + PV.values[i] += PV.tendencies[i]*self.dt + PV.tendencies[i] = 0.0 + else: + for i in xrange(Gr.dims.npg*PV.nv): + PV.values[i] = 0.5 * (self.value_copies[0,i] + PV.values[i] + PV.tendencies[i] * self.dt) + PV.tendencies[i] = 0.0 + self.t += self.dt + + return + + + cpdef update_third(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV): + cdef: + Py_ssize_t i + + with nogil: + if self.rk_step == 0: + for i in xrange(Gr.dims.npg*PV.nv): + self.value_copies[0,i] = PV.values[i] + PV.values[i] += PV.tendencies[i]*self.dt + PV.tendencies[i] = 0.0 + elif self.rk_step == 1: + for i in xrange(Gr.dims.npg*PV.nv): + PV.values[i] = 0.75 * self.value_copies[0,i] + 0.25*(PV.values[i] + PV.tendencies[i]*self.dt) + PV.tendencies[i] = 0.0 + else: + for i in xrange(Gr.dims.npg*PV.nv): + PV.values[i] = (1.0/3.0) * self.value_copies[0,i] + (2.0/3.0)*(PV.values[i] + PV.tendencies[i]*self.dt) + PV.tendencies[i] = 0.0 + self.t += self.dt + + return + + cpdef update_fourth(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV): + cdef: + Py_ssize_t i + + with nogil: + if self.rk_step == 0: + for i in xrange(Gr.dims.npg*PV.nv): + self.value_copies[0,i] = PV.values[i] + PV.values[i] += 0.391752226571890 * PV.tendencies[i]*self.dt + PV.tendencies[i] = 0.0 + elif self.rk_step == 1: + for i in xrange(Gr.dims.npg*PV.nv): + PV.values[i] = (0.444370493651235*self.value_copies[0,i] + 0.555629506348765*PV.values[i] + + 0.368410593050371*PV.tendencies[i]*self.dt ) + PV.tendencies[i] = 0.0 + elif self.rk_step == 2: + for i in xrange(Gr.dims.npg*PV.nv): + self.value_copies[1,i] = PV.values[i] + PV.values[i] = (0.620101851488403*self.value_copies[0,i] + 0.379898148511597*PV.values[i] + + 0.251891774271694*PV.tendencies[i]*self.dt) + PV.tendencies[i] = 0.0 + elif self.rk_step == 3: + for i in xrange(Gr.dims.npg*PV.nv): + self.value_copies[2,i] = PV.values[i] + self.tendency_copies[0,i] = PV.tendencies[i] + PV.values[i] = (0.178079954393132*self.value_copies[0,i] + 0.821920045606868*PV.values[i] + + 0.544974750228521*PV.tendencies[i]*self.dt) + PV.tendencies[i] = 0.0 + else: + for i in xrange(Gr.dims.npg*PV.nv): + PV.values[i] = (0.517231671970585*self.value_copies[1,i] + + 0.096059710526147*self.value_copies[2,i] +0.063692468666290*self.tendency_copies[0,i]*self.dt + + 0.386708617503269*PV.values[i] + 0.226007483236906*PV.tendencies[i]*self.dt) + PV.tendencies[i] = 0.0 + self.t += self.dt + return + + cdef void initialize_second(self,PrognosticVariables.PrognosticVariables PV): + + self.rk_step = 0 + self.n_rk_steps = 2 + + #Initialize storage + self.value_copies = np.zeros((1,PV.values.shape[0]),dtype=np.double,order='c') + self.tendency_copies = None + + return + + cdef void initialize_third(self,PrognosticVariables.PrognosticVariables PV): + + self.rk_step = 0 + self.n_rk_steps = 3 + + #Initialize storage + self.value_copies = np.zeros((1,PV.values.shape[0]),dtype=np.double,order='c') + self.tendency_copies = None + + return + + cdef void initialize_fourth(self,PrognosticVariables.PrognosticVariables PV): + self.rk_step = 0 + self.n_rk_steps = 5 + + #Initialize storage + self.value_copies = np.zeros((3,PV.values.shape[0]),dtype=np.double,order='c') + self.tendency_copies = np.zeros((1,PV.values.shape[0]),dtype=np.double,order='c') + + return + + cdef void compute_cfl_max(self,Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV,DiagnosticVariables.DiagnosticVariables DV, ParallelMPI.ParallelMPI Pa): + Pa.root_print('Computing CFL Max') + cdef: + double cfl_max_local = -9999.0 + double [3] dxi = Gr.dims.dxi + Py_ssize_t u_shift = PV.get_varshift(Gr,'u') + Py_ssize_t v_shift = PV.get_varshift(Gr,'v') + Py_ssize_t w_shift = PV.get_varshift(Gr,'w') + Py_ssize_t imin = Gr.dims.gw + Py_ssize_t jmin = Gr.dims.gw + Py_ssize_t kmin = Gr.dims.gw + Py_ssize_t imax = Gr.dims.nlg[0] - Gr.dims.gw + Py_ssize_t jmax = Gr.dims.nlg[1] - Gr.dims.gw + Py_ssize_t kmax = Gr.dims.nlg[2] - Gr.dims.gw + Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2] + Py_ssize_t jstride = Gr.dims.nlg[2] + Py_ssize_t i,j,k, ijk, ishift, jshift + double w + Py_ssize_t isedv + + with nogil: + for i in xrange(imin,imax): + ishift = i * istride + for j in xrange(jmin,jmax): + jshift = j * jstride + for k in xrange(kmin,kmax): + ijk = ishift + jshift + k + w = fabs(PV.values[w_shift+ijk]) + for isedv in xrange(DV.nsedv): + w = fmax(fabs( DV.values[DV.sedv_index[isedv]*Gr.dims.npg + ijk ] + PV.values[w_shift+ijk]), w) + + cfl_max_local = fmax(cfl_max_local, self.dt * (fabs(PV.values[u_shift + ijk])*dxi[0] + fabs(PV.values[v_shift+ijk])*dxi[1] + w*dxi[2])) + # problem: second term is nan + Pa.root_print('cfl_max_local: '+ str(cfl_max_local)) + Pa.root_print(str(self.dt * (fabs(PV.values[u_shift + ijk])*dxi[0] + fabs(PV.values[v_shift+ijk])*dxi[1] + w*dxi[2]))) # is a nan + Pa.root_print('u: '+str(PV.values[u_shift + ijk])) + Pa.root_print('v: '+str(PV.values[v_shift+ijk])) + Pa.root_print('w: '+str(w)) + # Pa.root_print('u: '+str(fmax(PV.values))) + # Pa.root_print('w: '+str(fabs(w))) + # all three fields are nan + + mpi.MPI_Allreduce(&cfl_max_local,&self.cfl_max,1, + mpi.MPI_DOUBLE,mpi.MPI_MAX,Pa.comm_world) + + self.cfl_max += 1e-11 + + if self.cfl_max < 0.0: + Pa.root_print('CFL_MAX = '+ str(self.cfl_max)+ " killing simulation!") + Pa.kill() + return + + cdef inline double cfl_time_step(self): + return fmin(self.dt_max,self.cfl_limit/(self.cfl_max/self.dt)) + + cpdef restart(self, Restart.Restart Re): + Re.restart_data['TS'] = {} + Re.restart_data['TS']['t'] = self.t + Re.restart_data['TS']['dt'] = self.dt + + return diff --git a/test_av/cc_statistics.h b/test_av/cc_statistics.h new file mode 100644 index 00000000..8927cce0 --- /dev/null +++ b/test_av/cc_statistics.h @@ -0,0 +1,287 @@ +#pragma once // preprocessor statement + +#include +#include + +////// how to return a double array??? +////// double horizontal_mean(struct DimStruct *dims, double* restrict *values){ +//void horizontal_mean(struct DimStruct *dims, double* restrict values){ +// /* +// Compute the horizontal mean of the array pointed to by values. +// values should have dimension of Gr.dims.nlg[0] * Gr.dims.nlg[1] +// * Gr.dims.nlg[1]. +// +// :param Gr: Grid class +// :param values1: pointer to array of type double containing first value in product +// :return: memoryview type double with dimension Gr.dims.nlg[2] +// ''' +// # Gr.dims.n[i] = namelist['grid']['ni'] (e.g. n[0] = 'nx') --> total number of pts +// # Gr.dims.nl[i] = Gr.dims.n[i] // mpi_dims[i] --> local number of pts (per processor) +// # Gr.dims.nlg[i] = Gr.dims.nl[i] + 2*gw --> local number of pts incl ghost points +// # i = 0,1,2 +// */ +// +// printf("values[0] = %f\n", values[0]); +//// double *mean_local = (double *)malloc(sizeof(double) * dims->n[2]); // Dynamically allocate array +//// double *mean_ = (double *)malloc(sizeof(double) * dims->n[2]); +//// double *mean = (double *)malloc(sizeof(double) * dims->n[2]); +// double *mean_local = (double *)malloc(sizeof(double) * dims->nlg[2]); // Dynamically allocate array +// double *mean_ = (double *)malloc(sizeof(double) * dims->nlg[2]); +// double *mean = (double *)malloc(sizeof(double) * dims->nlg[2]); +// //int i,j,k,ijk; +// int ijk; +// const ssize_t imin = dims->gw; +// const ssize_t jmin = dims->gw; +// const ssize_t kmin = 0; +// const ssize_t imax = dims->nlg[0] - dims->gw; +// const ssize_t jmax = dims->nlg[1] - dims->gw; +// const ssize_t kmax = dims->nlg[2]; +// const ssize_t istride = dims->nlg[1] * dims->nlg[2]; +// const ssize_t jstride = dims->nlg[2]; +// //int ishift, jshift; +// const double n_horizontal_i = 1.0/(dims->n[1]*dims->n[0]); +// +// for(ssize_t k=kmin; kng[2], MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +//// MPI_Allreduce(&mean_local, &mean_, dims->n[2], MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +// for(ssize_t k=kmin; k total number of pts +// # Gr.dims.nl[i] = Gr.dims.n[i] // mpi_dims[i] --> local number of pts (per processor) +// # Gr.dims.nlg[i] = Gr.dims.nl[i] + 2*gw --> local number of pts incl ghost points +// # i = 0,1,2 +// */ +// + const ssize_t gw = dims->gw; + printf("values[gw] = %f\n", values[gw]); + printf("before: mean[gw] = %f\n", mean[gw]); + + double *mean_local = (double *)malloc(sizeof(double) * dims->nlg[2]); // Dynamically allocate array + double *mean_ = (double *)malloc(sizeof(double) * dims->nlg[2]); + int ijk; + const ssize_t imin = dims->gw; + const ssize_t jmin = dims->gw; + const ssize_t kmin = 0; + const ssize_t imax = dims->nlg[0] - dims->gw; + const ssize_t jmax = dims->nlg[1] - dims->gw; + const ssize_t kmax = dims->nlg[2]; + const ssize_t istride = dims->nlg[1] * dims->nlg[2]; + const ssize_t jstride = dims->nlg[2]; + //int ishift, jshift; +// const double n_horizontal_i = 1.0/(dims->n[1]*dims->n[0]); + const double n_horizontal_i = 1.0/(dims->n[1]*dims->n[0]); + + for(ssize_t k=kmin; kng[2], MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +// MPI_Allreduce(&mean_local, &mean_, dims->n[2], MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + for(ssize_t k=kmin; kng[2] ?) + datatype = datatype of sendbuf + op = MPI_SUM + */ + + /* + // Example for Averaging using MPI_Allreduce: + rand_nums = create_rand_nums(num_elements_per_proc); + // Sum the numbers locally + float local_sum = 0; + int i; + for (i = 0; i < num_elements_per_proc; i++) { + local_sum += rand_nums[i]; + } + + // Reduce all of the local sums into the global sum in order to + // calculate the mean + float global_sum; + MPI_Allreduce(&local_sum, &global_sum, 1, MPI_FLOAT, MPI_SUM, + MPI_COMM_WORLD); + float mean = global_sum / (num_elements_per_proc * world_size); + */ + + + /* + // Example for Averaging from: http://mpitutorial.com/tutorials/mpi-reduce-and-allreduce/ + + float *rand_nums = NULL; + rand_nums = create_rand_nums(num_elements_per_proc); + + // Sum the numbers locally + float local_sum = 0; + int i; + for (i = 0; i < num_elements_per_proc; i++) { + local_sum += rand_nums[i]; + } + + // Print the random numbers on each process + printf("Local sum for process %d - %f, avg = %f\n", + world_rank, local_sum, local_sum / num_elements_per_proc); + + // Reduce all of the local sums into the global sum + float global_sum; + MPI_Reduce(&local_sum, &global_sum, 1, MPI_FLOAT, MPI_SUM, 0, + MPI_COMM_WORLD); + + // Print the result + if (world_rank == 0) { + printf("Total sum = %f, avg = %f\n", global_sum, + global_sum / (world_size * num_elements_per_proc)); + }*/ + + // in Cython: + // mpi.MPI_Allreduce(&mean_local[0],&mean[0],Gr.dims.nlg[2],mpi.MPI_DOUBLE,mpi.MPI_SUM,self.cart_comm_sub_xy) + + + //return mean; + + +void horizontal_mean_const(struct DimStruct *dims, const double* restrict values, double* restrict mean){ +// printf("calling horizontal mean \n"); +// /* +// Compute the horizontal mean of the array pointed to by values. +// values should have dimension of Gr.dims.nlg[0] * Gr.dims.nlg[1] +// * Gr.dims.nlg[1]. +// +// :param Gr: Grid class +// :param values1: pointer to array of type double containing f irst value in product +// :return: memoryview type double with dimension Gr.dims.nlg[2] +// ''' +// # Gr.dims.n[i] = namelist['grid']['ni'] (e.g. n[0] = 'nx') --> total number of pts +// # Gr.dims.nl[i] = Gr.dims.n[i] // mpi_dims[i] --> local number of pts (per processor) +// # Gr.dims.nlg[i] = Gr.dims.nl[i] + 2*gw --> local number of pts incl ghost points +// # i = 0,1,2 +// */ +// + const ssize_t gw = dims->gw; +// printf("values[gw] = %f\n", values[gw]); +// printf("before: mean[gw] = %f\n", mean[gw]); + + double *mean_local = (double *)malloc(sizeof(double) * dims->nlg[2]); // Dynamically allocate array + double *mean_ = (double *)malloc(sizeof(double) * dims->nlg[2]); + int ijk; + const ssize_t imin = dims->gw; + const ssize_t jmin = dims->gw; + const ssize_t kmin = 0; + const ssize_t imax = dims->nlg[0] - dims->gw; + const ssize_t jmax = dims->nlg[1] - dims->gw; + const ssize_t kmax = dims->nlg[2]; + const ssize_t istride = dims->nlg[1] * dims->nlg[2]; + const ssize_t jstride = dims->nlg[2]; + //int ishift, jshift; + const double n_horizontal_i = 1.0/(dims->n[1]*dims->n[0]); + printf("averaging number: %f\n", n_horizontal_i); + + for(ssize_t k=kmin; kng[2], MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); +// MPI_Allreduce(&mean_local, &mean_, dims->n[2], MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + for(ssize_t k=kmin; k + +struct VelocityDofs { +long u; +long v; +long w; +}; + +void build_buffer(long nv, long dim, long s ,struct DimStruct *dims, + double* restrict values, double* restrict buffer){ + + + long i,j,k; + + const long istride = dims->nlg[1] * dims->nlg[2]; + const long jstride = dims->nlg[2]; + long var_shift = dims->npg * nv ; + long buffer_var_shift ,b_istride, b_jstride, b_ishift, b_jshift; + long shift_offset ; + + if (dim == 0){ + if( s == 1){ + // The shift offset insures that correct values are build into buffer for positive (s = 1) and + // negative (s = -1) MPI SendRecv shifts. + shift_offset = dims->nlg[0]-2*dims->gw; + } + else{ + shift_offset = dims->gw; + } + b_istride = istride; + b_jstride = jstride; + buffer_var_shift = dims->nbuffer[0] * nv ; + for (i=0; igw; i++){ + const long ishift = (i + shift_offset) * istride ; + b_ishift = i * b_istride; + for (j=0; jnlg[1];j++){ + const long jshift = j * jstride ; + b_jshift = j * b_jstride; + for (k=0;knlg[2];k++){ + buffer[buffer_var_shift + b_ishift + b_jshift + k] = values[var_shift + ishift + jshift + k]; + }; + }; + }; + + return; + } + else if (dim == 1){ + if( s == 1){ + // The shift offset insures that correct values are build into buffer for positive(s = 1) and + // negative (s = -1) MPI SendRecv shifts. + shift_offset = dims->nlg[1] - 2*dims->gw; + } + else{ + shift_offset = dims->gw; + } + //Compute the strides in i and j for the buffer arrays + b_istride = dims->gw * dims->nlg[2]; + b_jstride = dims->nlg[2]; + + //Compute the variable array shift + buffer_var_shift = dims->nbuffer[1] * nv ; + + + for (i=0; inlg[0]; i++){ + const long ishift = i * istride; + b_ishift = i * b_istride; + for (j=0; jgw;j++){ + const long jshift = (j + shift_offset) * jstride; + b_jshift = j * b_jstride; + for (k=0;knlg[2];k++){ + buffer[buffer_var_shift + b_ishift + b_jshift + k] = values[var_shift + ishift + jshift + k]; + }; + }; + }; + + return; + } + else { + if(s == 1){ + // The shift offset insures that correct values are build into buffer for positive (s = 1) and + // negative (s = -1) MPI SendRecv shifts. + shift_offset = dims->nlg[2]-2*dims->gw; + } + else{ + shift_offset = dims->gw; + } + b_istride = dims->gw * dims->nlg[1]; + b_jstride = dims->gw; + buffer_var_shift = dims->nbuffer[2] * nv ; + for (i=0; inlg[0]; i++){ + const long ishift = i * istride; + b_ishift = i * b_istride; + for (j=0; jnlg[1];j++){ + const long jshift = j * jstride; + b_jshift = j * b_jstride; + for (k=0;kgw;k++){ + buffer[buffer_var_shift + b_ishift + b_jshift + k] = values[var_shift + ishift + jshift + k + shift_offset]; + }; + }; + }; + + + return; + } + + +} + +void buffer_to_values(ssize_t dim, ssize_t s, struct DimStruct *dims, + double* restrict values, double* restrict buffer){ + + ssize_t i,j,k; + + ssize_t istride = dims->nlg[1] * dims->nlg[2]; + ssize_t jstride = dims->nlg[2]; + ssize_t buffer_var_shift ; + ssize_t shift_offset; + + if (dim == 0){ + if( s == -1){ + // The shift offset insures that correct values are build into buffer for positive (s = 1) and + // negative (s = -1) MPI SendRecv shifts. + shift_offset = dims->nlg[0] - dims->gw; + } + else{ + shift_offset = 0; + } + + const ssize_t b_istride = dims->nlg[1] * dims->nlg[2]; + const ssize_t b_jstride = dims->nlg[2]; + + for (i=0; igw; i++){ + const ssize_t ishift =(i+shift_offset)*istride; + const ssize_t b_ishift = i*b_istride; + for (j=0; jnlg[1]; j++){ + const ssize_t jshift = j*jstride ; + const ssize_t b_jshift = j*b_jstride; + for (k=0; knlg[2]; k++){ + values[ishift + jshift + k] = buffer[b_ishift + b_jshift +k]; + } + } + + } + + return; + } + else if (dim == 1){ + if( s == -1){ + // The shift offset insures that correct values are build into buffer for positive(s = 1) and + // negative (s = -1) MPI SendRecv shifts. + shift_offset = dims->nlg[1] - dims->gw; + } + else{ + shift_offset = 0; + } + + const ssize_t b_istride = dims->gw * dims->nlg[2]; + const ssize_t b_jstride = dims->nlg[2]; + for (i=0; inlg[0]; i++){ + const ssize_t ishift = i * istride; + const ssize_t b_ishift = i * b_istride; + for (j=0; jgw;j++){ + const ssize_t jshift = (j + shift_offset) * jstride; + const ssize_t b_jshift = j * b_jstride; + for (k=0;knlg[2];k++){ + values[ishift + jshift + k] = buffer[b_ishift + b_jshift + k] ; + }; + }; + }; + + return; + } + else { + if(s == -1){ + // The shift offset insures that correct values are build into buffer for positive (s = 1) and + // negative (s = -1) MPI SendRecv shifts. + shift_offset = dims->nlg[2] - dims->gw; + } + else{ + shift_offset = 0; + } + const ssize_t b_istride = dims->gw * dims->nlg[1]; + const ssize_t b_jstride = dims->gw; + for (i=0; inlg[0]; i++){ + const ssize_t ishift = i * istride; + const ssize_t b_ishift = i * b_istride; + for (j=0; jnlg[1];j++){ + const ssize_t jshift = j * jstride; + const ssize_t b_jshift = j * b_jstride; + for (k=0;kgw;k++){ + values[ishift + jshift + k + shift_offset] = buffer[b_ishift + b_jshift + k ]; + }; + }; + }; + + + return; + }; + + return; +} + +void set_bcs(ssize_t dim, ssize_t s, double bc_factor ,struct DimStruct *dims, + double* restrict values){ + + ssize_t i,j,k; + + const ssize_t istride = dims->nlg[1] * dims->nlg[2]; + const ssize_t jstride = dims->nlg[2]; + + if(dim==2){ + if(s==-1){ + const ssize_t bc_start = dims->nlg[2] - dims->gw; // This is the index of the first boundary point + for (i=0; inlg[0]; i++){ + const ssize_t ishift = i * istride; + for(j=0;jnlg[1];j++){ + const ssize_t jshift = j * jstride; + if(bc_factor == 1.0){ + for(k=0;kgw;k++){ + values[ishift + jshift + bc_start +k ] = values[ishift + jshift + bc_start - k -1 ]; + } + } + else if(bc_factor == 2.0){ + for(k=0;kgw;k++){ + values[ishift + jshift + bc_start +k ] = values[ishift + jshift + bc_start -1 ]; + } + } + else{ + values[ishift + jshift + bc_start ] = 0.0; + for(k=1;kgw;k++){ + values[ishift + jshift + bc_start + k] = bc_factor * values[ishift + jshift + bc_start - k ]; + } + } + } + } + + } + else{ + const ssize_t bc_start = dims->gw-1; + for (i=0; inlg[0]; i++){ + const ssize_t ishift = i * istride; + for(j=0;jnlg[1];j++){ + const ssize_t jshift = j * jstride; + if(bc_factor == 1.0){ + for(k=0;kgw;k++){ + values[ishift + jshift + bc_start -k ] = values[ishift + jshift + bc_start + k + 1]; + } + } + else if(bc_factor == 2.0){ + for(k=0;kgw;k++){ + values[ishift + jshift + bc_start -k ] = values[ishift + jshift + bc_start + 1]; + } + } + else{ + values[ishift + jshift + bc_start ] = 0.0; + for(k=1;kgw;k++){ + values[ishift + jshift + bc_start - k] = bc_factor * values[ishift + jshift + bc_start +k ]; + } + } + } + } + } + } + else{ + printf("%s\n","PrognocitVariables.set_bcs only implemented for dim=2"); + } + return; +} + + +void set_to_zero(ssize_t nv, struct DimStruct *dims, double* restrict array){ + + ssize_t i; + for (i = 0; inpg*nv; i++){ + array[i] = 0; + }; + return; +} diff --git a/test_av/setup.py b/test_av/setup.py new file mode 100644 index 00000000..c2626d5f --- /dev/null +++ b/test_av/setup.py @@ -0,0 +1,233 @@ +from distutils.core import setup +from Cython.Build import cythonize +from distutils.extension import Extension +import numpy as np +import mpi4py as mpi4py +import sys +import platform + + +# Now get include paths from relevant python modules +include_path = [mpi4py.get_include()] +include_path += [np.get_include()] +include_path += ['./Csrc'] + +if sys.platform == 'darwin': + #Compile flags for MacOSX + library_dirs = [] + libraries = [] + extensions = [] + extra_compile_args = [] + extra_compile_args += ['-O3', '-march=native', '-Wno-unused', '-Wno-#warnings'] +elif 'euler' in platform.node(): + #Compile flags for euler @ ETHZ + library_dirs = ['/cluster/apps/openmpi/1.6.5/x86_64/gcc_4.8.2/lib/'] + libraries = [] + libraries.append('mpi') + extensions = [] + extra_compile_args=[] + extra_compile_args+=['-std=c99', '-O3', '-march=native', '-Wno-unused', + '-Wno-#warnings', '-Wno-maybe-uninitialized', '-Wno-cpp', '-Wno-array-bounds'] +else: + print('Unknown system platform: ' + sys.platform + 'or unknown system name: ' + platform.node()) + sys.exit() + +_ext = Extension('TestRun', ['TestRun.pyx'], include_dirs=include_path, + extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, + runtime_library_dirs=library_dirs) +extensions.append(_ext) + +_ext = Extension('TestArray', ['TestArray.pyx'], include_dirs=include_path, + extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, + runtime_library_dirs=library_dirs) +extensions.append(_ext) + +_ext = Extension('Grid', ['Grid.pyx'], include_dirs=include_path, + extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, + runtime_library_dirs=library_dirs) +extensions.append(_ext) + +# _ext = Extension('Initialization', ['Initialization.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('Microphysics', ['Microphysics.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('thermodynamic_functions', ['thermodynamic_functions.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('Thermodynamics', ['Thermodynamics.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('ThermodynamicsDry', ['ThermodynamicsDry.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('ThermodynamicsSA', ['ThermodynamicsSA.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) + +_ext = Extension('ReferenceState', ['ReferenceState.pyx'], include_dirs=include_path, + extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, + runtime_library_dirs=library_dirs) +extensions.append(_ext) +# +# _ext = Extension('Simulation3d', ['Simulation3d.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +_ext = Extension('ParallelMPI', ['ParallelMPI.pyx'], include_dirs=include_path, + extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, + runtime_library_dirs=library_dirs) +extensions.append(_ext) + +_ext = Extension('PrognosticVariables', ['PrognosticVariables.pyx'], include_dirs=include_path, + extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, + runtime_library_dirs=library_dirs) +extensions.append(_ext) + +_ext = Extension('DiagnosticVariables', ['DiagnosticVariables.pyx'], include_dirs=include_path, + extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, + runtime_library_dirs=library_dirs) +extensions.append(_ext) +# +# _ext = Extension('ScalarAdvection', ['ScalarAdvection.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('MomentumAdvection', ['MomentumAdvection.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# # _ext = Extension('ScalarAdvection_QL', ['ScalarAdvection_QL.pyx'], include_dirs=include_path, +# # extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# # runtime_library_dirs=library_dirs) +# # extensions.append(_ext) +# # +# # _ext = Extension('MomentumAdvection_QL', ['MomentumAdvection_QL.pyx'], include_dirs=include_path, +# # extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# # runtime_library_dirs=library_dirs) +# # extensions.append(_ext) +# +# _ext = Extension('ScalarDiffusion', ['ScalarDiffusion.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('MomentumDiffusion', ['MomentumDiffusion.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('FluxDivergence', ['FluxDivergence.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('PressureSolver', ['PressureSolver.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('PressureFFTSerial', ['PressureFFTSerial.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('PressureFFTParallel', ['PressureFFTParallel.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('SparseSolvers', ['SparseSolvers.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('SGS', ['SGS.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) + +_ext = Extension('TimeStepping', ['TimeStepping.pyx'], include_dirs=include_path, + extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, + runtime_library_dirs=library_dirs) +extensions.append(_ext) +# +# _ext = Extension('Kinematics', ['Kinematics.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('Lookup', ['Lookup.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) + +_ext = Extension('NetCDFIO', ['NetCDFIO.pyx'], include_dirs=include_path, + extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, + runtime_library_dirs=library_dirs) +extensions.append(_ext) +# +# _ext = Extension('Surface', ['Surface.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('Damping', ['Damping.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('Forcing', ['Forcing.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('entropies', ['entropies.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('Radiation', ['Radiation.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('AuxiliaryStatistics', ['AuxiliaryStatistics.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# _ext = Extension('ConditionalStatistics', ['ConditionalStatistics.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) +# +# +_ext = Extension('Restart', ['Restart.pyx'], include_dirs=include_path, + extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, + runtime_library_dirs=library_dirs) +extensions.append(_ext) +# +# _ext = Extension('VisualizationOutput', ['VisualizationOutput.pyx'], include_dirs=include_path, +# extra_compile_args=extra_compile_args, libraries=libraries, library_dirs=library_dirs, +# runtime_library_dirs=library_dirs) +# extensions.append(_ext) + +setup( + ext_modules=cythonize(extensions, verbose=1, include_path=include_path) +) diff --git a/test_av/thermodynamic_functions.h b/test_av/thermodynamic_functions.h new file mode 100644 index 00000000..e7893a06 --- /dev/null +++ b/test_av/thermodynamic_functions.h @@ -0,0 +1,65 @@ +#pragma once +#include "parameters.h" +#include + +inline double exner_c(const double p0){ + return pow((p0/p_tilde),kappa); +} + +inline double theta_c(const double p0, const double T){ + // Dry potential temperature + return T / exner_c(p0); +} + +inline double thetali_c(const double p0, const double T, const double qt, const double ql, const double qi, const double L){ + // Liquid ice potential temperature consistent with Triopoli and Cotton (1981) + return theta_c(p0, T) * exp(-L*(ql/(1.0 - qt) + qi/(1.0 -qt))/(T*cpd)); +} + +inline double pd_c(const double p0,const double qt, const double qv){ + return p0*(1.0-qt)/(1.0 - qt + eps_vi * qv); +} + +inline double pv_c(const double p0, const double qt, const double qv){ + return p0 * eps_vi * qv /(1.0 - qt + eps_vi * qv); +} + +inline double density_temperature_c(const double T, const double qt, const double qv){ + return T * (1.0 - qt + eps_vi * qv); +} + +inline double theta_rho_c(const double p0, const double T, const double qt, const double qv){ + return density_temperature_c(T,qt,qv)/exner_c(p0); +} + +inline double cpm_c(const double qt){ + return (1.0-qt) * cpd + qt * cpv; +} + +inline double thetas_c(const double s, const double qt){ + return T_tilde*exp((s-(1.0-qt)*sd_tilde - qt*sv_tilde)/cpm_c(qt)); +} + +inline double thetas_t_c(const double p0, const double T, const double qt, const double qv, const double qc, const double L){ + const double qd = 1.0 - qt; + const double pd = pd_c(p0,qt,qt-qc); + const double pv = pv_c(p0,qt,qt-qc); + const double cpm = cpm_c(qt); + return T * pow(p_tilde/pd,qd * Rd/cpm)*pow(p_tilde/pv,qt*Rv/cpm)*exp(-L * qc/(cpm*T)); +} + +inline double entropy_from_thetas_c(const double thetas, const double qt){ + return cpm_c(qt) * log(thetas/T_tilde) + (1.0 - qt)*sd_tilde + qt * sv_tilde; +} + +inline double buoyancy_c(const double alpha0, const double alpha){ + return g * (alpha - alpha0)/alpha0; +} + +inline double qv_star_c(const double p0, const double qt, const double pv){ + return eps_v * (1.0 - qt) * pv / (p0 - pv) ; +} + +inline double alpha_c(double p0, double T, double qt, double qv){ + return (Rd * T)/p0 * (1.0 - qt + eps_vi * qv); +}