Skip to content

Commit e673d58

Browse files
committed
fixed compiler problems
1 parent 5f33a0a commit e673d58

5 files changed

Lines changed: 70 additions & 59 deletions

File tree

bld/build-namelist

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -713,14 +713,16 @@ if (!($simple_phys or $aqua_mode)) {
713713
# Setup default co2 surface source stream only if not simple_phys or aqua_mode and
714714
# the chemistry cannot produce the nitrogen depostion fluxes
715715
if (!($simple_phys or $aqua_mode)) {
716-
add_default($nl, 'co2_surface_source')
717-
add_default($nl, 'stream_co2_surface_source_mesh_filename' , 'sim_year'=>$sim_year);
718-
add_default($nl, 'stream_co2_surface_source_data_filename' , 'sim_year'=>$sim_year);
719-
add_default($nl, 'stream_co2_surface_source_year_first' , 'sim_year'=>$sim_year);
720-
add_default($nl, 'stream_co2_surface_source_year_last' , 'sim_year'=>$sim_year);
721-
add_default($nl, 'stream_co2_surface_source_year_align' , 'sim_year'=>$sim_year);
722-
add_default($nl, 'stream_co2_surface_source_varname');
723-
}
716+
add_default($nl, 'co2_surface_source');
717+
my $co2_surface_source = get_default_value("co2_surface_source");
718+
#if (lc($co2_surface_source) eq 'true') {
719+
add_default($nl, 'stream_co2_surface_source_mesh_filename');
720+
add_default($nl, 'stream_co2_surface_source_data_filename');
721+
add_default($nl, 'stream_co2_surface_source_data_varname');
722+
add_default($nl, 'stream_co2_surface_source_year_first');
723+
add_default($nl, 'stream_co2_surface_source_year_last' );
724+
add_default($nl, 'stream_co2_surface_source_year_align');
725+
#}
724726
}
725727

726728
# Topography

bld/namelist_files/namelist_defaults_cam.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2016,6 +2016,15 @@
20162016
<soil_erod_file phys="cam4" >atm/cam/dst/dst_source2x2tuned-cam4-06132012.nc</soil_erod_file>
20172017
<soil_erod_file phys="cam4" hgrid="0.9x1.25">atm/cam/dst/dst_source1x1tuned-cam4-06202012.nc</soil_erod_file>
20182018

2019+
<!-- co2 surface source (overwrite co2_diag sent to land and ocean) -->
2020+
<co2_surface_source>.false.</co2_surface_source>
2021+
<stream_co2_surface_source_mesh_filename>unset</stream_co2_surface_source_mesh_filename>
2022+
<stream_co2_surface_source_data_filename>unset</stream_co2_surface_source_data_filename>
2023+
<stream_co2_surface_source_data_varname>unset</stream_co2_surface_source_data_varname>
2024+
<stream_co2_surface_source_year_first>-999</stream_co2_surface_source_year_first>
2025+
<stream_co2_surface_source_year_last>-999</stream_co2_surface_source_year_last>
2026+
<stream_co2_surface_source_year_align>-999</stream_co2_surface_source_year_align>
2027+
20192028
<!-- nitrogen deposition to surface components -->
20202029
<stream_ndep_varlist>NDEP_NHx_month:NDEP_NOy_month</stream_ndep_varlist>
20212030
<stream_ndep_varlist phys="cam7">drynhx:wetnhx:drynoy:wetnoy</stream_ndep_varlist>

bld/namelist_files/namelist_definition.xml

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10163,7 +10163,7 @@ Default: false
1016310163
<entry id="rh_fine_aer_scale_fact_optics" type="real" category="cam_oslo"
1016410164
group="oslo_ctl_nl" valid_values="" >
1016510165
- Scales the relative humidity in the optical calculations
10166-
within OSLO_AERO for modes 1-5
10166+
within OSLO_AERO for modes 1-5
1016710167
- RH not scaled for dust (modes 6-7) or seasalt (modes 8-10)
1016810168
Default: 1.0
1016910169
</entry>
@@ -10295,19 +10295,28 @@ Default: path
1029510295
If TRUE, set co2_diag sent to land and ocean to value read from co2_surface_source_data_filename
1029610296
Default: FALSE
1029710297
</entry>
10298-
10298+
<entry id="stream_co2_surface_source_mesh_filename" type="char*256" input_pathname="abs" category="CO2 surface source"
10299+
group="co2_surface_source_stream_nl" valid_values="" >
10300+
Grid mesh file corresponding to sream_co2_surface_source_data_filename.
10301+
</entry>
10302+
<entry id="stream_co2_surface_source_data_filename" type="char*256" input_pathname="abs" category="CO2 surface source"
10303+
group="co2_surface_source_stream_nl" valid_values="" >
10304+
co2 stream data filename.
10305+
</entry>
10306+
<entry id="stream_co2_surface_source_data_varname" type="char*256" category="CO2 surface source"
10307+
group="co2_surface_source_stream_nl" valid_values="" >
10308+
co2 varname on stream data file(s).
10309+
</entry>
1029910310
<entry id="stream_co2_surface_source_year_first" type="integer" category="CO2 surface source"
1030010311
group="co2_surface_source_stream_nl" valid_values="" >
1030110312
First year to use in co2 stream data.
1030210313
Default: 2000
1030310314
</entry>
10304-
1030510315
<entry id="stream_co2_surface_source_year_last" type="integer" category="CO2 surface source"
1030610316
group="co2_surface_source_stream_nl" valid_values="" >
1030710317
Last year last to use in co2 stream data.
1030810318
Default: 2000
1030910319
</entry>
10310-
1031110320
<entry id="stream_co2_surface_source_year_align" type="integer" category="CO2 surface source"
1031210321
group="co2_surface_source_stream_nl" valid_values="" >
1031310322
The simulation year corresponding to stream_co2_surface_source_year_first.
@@ -10325,19 +10334,4 @@ Set by build-namelist.
1032510334
Default: 1
1032610335
</entry>
1032710336

10328-
<entry id="stream_co2_surface_source_data_filename" type="char*256" input_pathname="abs" category="CO2 surface source"
10329-
group="co2_surface_source_stream_nl" valid_values="" >
10330-
co2 stream data filename.
10331-
</entry>
10332-
10333-
<entry id="stream_co2_surface_source_mesh_filename" type="char*256" input_pathname="abs" category="CO2 surface source"
10334-
group="co2_surface_source_stream_nl" valid_values="" >
10335-
Grid mesh file corresponding to sream_co2_surface_source_data_filename.
10336-
</entry>
10337-
10338-
<entry id="stream_co2_surface_source_varlist" type="char*256" category="CO2 surface source"
10339-
group="co2_surface_source_stream_nl" valid_values="" >
10340-
Variable names on co2 stream file(s).
10341-
</entry>
10342-
1034310337
</namelist_definition>

src/cpl/nuopc/atm_import_export.F90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module atm_import_export
22

3-
use NUOPC , only : NUOPC_CompAttributeGet, NUOPC_Advertise, NUOPC_IsConnected
3+
use NUOPC , only : NUOPC_CompAttributeGet, NUOPC_Advertise, NUOPC_IsConnected
44
use NUOPC_Model , only : NUOPC_ModelGet
55
use ESMF , only : ESMF_GridComp, ESMF_State, ESMF_Mesh, ESMF_StateGet, ESMF_Field
66
use ESMF , only : ESMF_Clock
@@ -29,7 +29,7 @@ module atm_import_export
2929
use cam_control_mod , only : aqua_planet, simple_phys
3030
use cam_esmf_mod , only : cam_esmf_set_areas
3131
use atm_stream_co2_surface_source, only : stream_co2_surface_source_init, stream_co2_surface_source_interp
32-
use atm_stream_co2_surface_source, only : stream_co2_surface_source_is_initialized
32+
use atm_stream_co2_surface_source, only : stream_co2_surface_source_is_initialized, co2_surface_source
3333

3434
implicit none
3535
private ! except
@@ -1230,8 +1230,8 @@ subroutine export_fields(gcomp, cam_out, rc)
12301230
if (ChkErr(rc,__LINE__,u_FILE_u)) return
12311231
if (exists) then
12321232
! if co2_surface_source is a filename - use this to overwrite co2_diag
1233-
if (trim(co2_surface_source) /= 'unset') then
1234-
if (.not. stream_co2_is_initialized) then
1233+
if (co2_surface_source) then
1234+
if (.not. stream_co2_surface_source_is_initialized) then
12351235
call stream_co2_surface_source_init(rc)
12361236
if (ChkErr(rc,__LINE__,u_FILE_u)) return
12371237
end if

src/cpl/nuopc/atm_stream_co2.F90

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ module atm_stream_co2_surface_source
1414
use shr_kind_mod , only : r8 => shr_kind_r8, CL => shr_kind_cl, CS => shr_kind_cs
1515
use shr_log_mod , only : errMsg => shr_log_errMsg
1616
use spmd_utils , only : mpicom, masterproc, iam
17-
use spmd_utils , only : mpi_character, mpi_integer
17+
use spmd_utils , only : mpi_character, mpi_integer, mpi_logical
1818
use cam_logfile , only : iulog
1919
use cam_abortutils , only : endrun
2020
use cam_esmf_mod , only : model_clock, model_mesh
@@ -26,19 +26,20 @@ module atm_stream_co2_surface_source
2626
public :: stream_co2_surface_source_init ! position datasets for dynamic co2_surface_source
2727
public :: stream_co2_surface_source_interp ! interpolates between two years of co2_surface_source file data
2828

29-
logical, public, protected :: stream_co2_surface_source_is_initialized = .false.
30-
3129
type(shr_strdata_type) :: sdat_co2_surface_source ! input data stream
3230

3331
! namelist variables
34-
character(len=CL) :: stream_co2_surface_source_data_filename
3532
character(len=CL) :: stream_co2_surface_source_mesh_filename
36-
character(len=CL) :: stream_co2_surface_source_varname ! variable name for co2_surface_source on stream file(s)
37-
integer :: stream_co2_surface_source_year_first ! first year in stream to use
38-
integer :: stream_co2_surface_source_year_last ! last year in stream to use
39-
integer :: stream_co2_surface_source_year_align ! align stream_year_first
33+
character(len=CL) :: stream_co2_surface_source_data_filename
34+
character(len=CL) :: stream_co2_surface_source_data_varname ! variable name for co2_surface_source on stream file(s)
35+
integer :: stream_co2_surface_source_year_first ! first year in stream to use
36+
integer :: stream_co2_surface_source_year_last ! last year in stream to use
37+
integer :: stream_co2_surface_source_year_align ! align stream_year_first
4038

41-
character(len=*), parameter :: sourcefile = __FILE__
39+
logical, public, protected :: co2_surface_source
40+
logical, public, protected :: stream_co2_surface_source_is_initialized = .false.
41+
42+
character(len=*), parameter :: u_FILE_u = __FILE__
4243

4344
!==============================================================================
4445
contains
@@ -61,45 +62,50 @@ subroutine stream_co2_surface_source_readnl(nlfile)
6162
!-----------------------------------------------------------------------
6263

6364
namelist /co2_surface_source_stream_nl/ &
64-
stream_co2_surface_source_data_filename, &
65+
co2_surface_source, &
6566
stream_co2_surface_source_mesh_filename, &
67+
stream_co2_surface_source_data_filename, &
68+
stream_co2_surface_source_data_varname, &
6669
stream_co2_surface_source_year_first, &
6770
stream_co2_surface_source_year_last, &
68-
stream_co2_surface_source_year_align, &
69-
stream_co2_surface_source_var
71+
stream_co2_surface_source_year_align
7072

7173
! Default values for namelist
74+
co2_surface_source = .false.
7275
stream_co2_surface_source_data_filename = ' '
7376
stream_co2_surface_source_mesh_filename = ' '
74-
stream_co2_surface_source_varlist = ' '
75-
stream_co2_surface_source_year_first = 1 ! first year in stream to use
76-
stream_co2_surface_source_year_last = 1 ! last year in stream to use
77-
stream_co2_surface_source_year_align = 1 ! align stream_co2_surface_source_year_first with this model year
77+
stream_co2_surface_source_data_varname = ' '
78+
stream_co2_surface_source_year_first = -999 ! first year in stream to use
79+
stream_co2_surface_source_year_last = -999 ! last year in stream to use
80+
stream_co2_surface_source_year_align = -999 ! align stream_co2_surface_source_year_first with this model year
7881

7982
! Read co2_surface_source_stream namelist
8083
if (masterproc) then
8184
open( newunit=nu_nml, file=trim(nlfile), status='old', iostat=nml_error )
8285
if (nml_error /= 0) then
83-
call endrun(subName//': ERROR opening '//trim(nlfile)//errMsg(sourcefile, __LINE__))
86+
call endrun(subName//': ERROR opening '//trim(nlfile)//errMsg(u_FILE_u, __LINE__))
8487
end if
8588
call shr_nl_find_group_name(nu_nml, 'co2_surface_source_stream_nl', status=nml_error)
8689
if (nml_error == 0) then
8790
read(nu_nml, nml=co2_surface_source_stream_nl, iostat=nml_error)
8891
if (nml_error /= 0) then
89-
call endrun(' ERROR reading co2_surface_source_stream_nl namelist'//errMsg(sourcefile, __LINE__))
92+
call endrun(' ERROR reading co2_surface_source_stream_nl namelist'//errMsg(u_FILE_u, __LINE__))
9093
end if
9194
end if
9295
close(nu_nml)
9396
endif
97+
call mpi_bcast(co2_surface_source, &
98+
1, mpi_logical, 0, mpicom, ierr)
99+
if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_co2_surface_source_mesh_filename")
94100
call mpi_bcast(stream_co2_surface_source_mesh_filename, &
95101
len(stream_co2_surface_source_mesh_filename), mpi_character, 0, mpicom, ierr)
96102
if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_co2_surface_source_mesh_filename")
97103
call mpi_bcast(stream_co2_surface_source_data_filename, &
98104
len(stream_co2_surface_source_data_filename), mpi_character, 0, mpicom, ierr)
99105
if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_co2_surface_source_data_filename")
100-
call mpi_bcast(stream_co2_surface_source_varlist, &
101-
len(stream_co2_surface_source_varlist), mpi_character, 0, mpicom, ierr)
102-
if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_co2_surface_source_varname")
106+
call mpi_bcast(stream_co2_surface_source_data_varname, &
107+
len(stream_co2_surface_source_data_varname), mpi_character, 0, mpicom, ierr)
108+
if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_co2_surface_source_data_varname")
103109
call mpi_bcast(stream_co2_surface_source_year_first, &
104110
1, mpi_integer, 0, mpicom, ierr)
105111
if (ierr /= 0) call endrun(trim(subname)//": FATAL: mpi_bcast: stream_co2_surface_source_year_first")
@@ -117,8 +123,8 @@ subroutine stream_co2_surface_source_readnl(nlfile)
117123
trim(stream_co2_surface_source_data_filename)
118124
write(iulog,'(3a)') subname,' stream_co2_surface_source_mesh_filename = ',&
119125
trim(stream_co2_surface_source_mesh_filename)
120-
write(iulog,'(3a)') subname,' stream_co2_surface_source_varname = ',&
121-
trim(stream_co2_surface_source_varname)
126+
write(iulog,'(3a)') subname,' stream_co2_surface_source_data_varname = ',&
127+
trim(stream_co2_surface_source_data_varname)
122128
write(iulog,'(2a,i0)') subname,' stream_co2_surface_source_year_first = ',&
123129
stream_co2_surface_source_year_first
124130
write(iulog,'(2a,i0)') subname,' stream_co2_surface_source_year_last = ',&
@@ -158,8 +164,8 @@ subroutine stream_co2_surface_source_init(rc)
158164
stream_yearFirst = stream_co2_surface_source_year_first, &
159165
stream_yearLast = stream_co2_surface_source_year_last, &
160166
stream_yearAlign = stream_co2_surface_source_year_align, &
161-
stream_fldlistFile = (/stream_co2_surface_source_varname/), &
162-
stream_fldListModel = (/stream_co2_surface_source_varname/), &
167+
stream_fldlistFile = (/stream_co2_surface_source_data_varname/), &
168+
stream_fldListModel = (/stream_co2_surface_source_data_varname/), &
163169
stream_lev_dimname = 'null', &
164170
stream_mapalgo = 'bilinear', &
165171
stream_offset = 0, &
@@ -210,18 +216,18 @@ subroutine stream_co2_surface_source_interp(cam_out, rc)
210216

211217
! Get pointer for stream data that is time and spatially interpolated to model time and grid
212218
call dshr_fldbun_getFldPtr(sdat_co2_surface_source%pstrm(1)%fldbun_model, &
213-
stream_co2_surface_source_varname, fldptr1=dataptr1d, rc=rc)
219+
stream_co2_surface_source_data_varname, fldptr1=dataptr1d, rc=rc)
214220
if (ChkErr(rc,__LINE__,u_FILE_u)) return
215221

216222
! Set output diagnostic co2_surface_source
217223
ig = 1
218224
do lchnk = begchunk,endchunk
219225
do icol = 1,get_ncols_p(lchnk)
220-
cam_out(lchnk)%co2_diag(icol) = dataptr1d(ig)
226+
cam_out(lchnk)%co2diag(icol) = dataptr1d(ig)
221227
ig = ig + 1
222228
end do
223229
end do
224230

225231
end subroutine stream_co2_surface_source_interp
226232

227-
end module atm_stream_co2_surface_source
233+
end module atm_stream_co2_surface_source

0 commit comments

Comments
 (0)