From 21626ca100188678b57d39109469e1d6d1799abe Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Tue, 21 May 2024 16:00:49 +0000 Subject: [PATCH 1/2] Initial commit --- .../gfs/src/recentersigp.fd/recentersigp.f90 | 3 +++ src/netcdf_io/interp_inc.fd/driver.F90 | 16 ++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/EnKF/gfs/src/recentersigp.fd/recentersigp.f90 b/src/EnKF/gfs/src/recentersigp.fd/recentersigp.f90 index 9f193c1c..5de5f624 100644 --- a/src/EnKF/gfs/src/recentersigp.fd/recentersigp.f90 +++ b/src/EnKF/gfs/src/recentersigp.fd/recentersigp.f90 @@ -291,6 +291,9 @@ program recentersigp case ('icmr_inc') call read_vardata(dsetmg,'icmr',values_3d_mb) call read_vardata(dsetmo,'icmr',values_3d_anl) + case ('ice_wat_inc') + call read_vardata(dsetmg,'icmr',values_3d_mb) + call read_vardata(dsetmo,'icmr',values_3d_anl) end select values_3d(:,:,:) = zero do j=1,latb diff --git a/src/netcdf_io/interp_inc.fd/driver.F90 b/src/netcdf_io/interp_inc.fd/driver.F90 index 722b5dde..bc20530f 100644 --- a/src/netcdf_io/interp_inc.fd/driver.F90 +++ b/src/netcdf_io/interp_inc.fd/driver.F90 @@ -76,12 +76,14 @@ program interp_inc real(8), allocatable :: rlon(:), rlat(:), crot(:), srot(:) real(8), allocatable :: gi(:,:), gi2(:,:), go(:,:), go2(:,:), go3(:,:) - + logical :: jedi = .false. + character(len=11) :: ice_inc_name + ! NOTE: u_inc,v_inc must be consecutive data records /'u_inc', 'v_inc', 'delp_inc', 'delz_inc', 'T_inc', & 'sphum_inc', 'liq_wat_inc', 'o3mr_inc', 'icmr_inc' / - namelist /setup/ lon_out, lat_out, outfile, infile, lev + namelist /setup/ lon_out, lat_out, outfile, infile, lev, jedi !----------------------------------------------------------------- @@ -115,6 +117,12 @@ program interp_inc ilev=lev+1 + if ( jedi ) then + ice_inc_name = 'icmr_inc' + else + ice_inc_name = 'ice_wat_inc' + end if + call mpi_barrier(mpi_comm_world, mpierr) if (mype == npes-1) then print*,'- OPEN OUTPUT FILE: ', trim(outfile) @@ -185,8 +193,8 @@ program interp_inc error = nf90_def_var(ncid_out, 'o3mr_inc', nf90_float, (/dim_lon_out,dim_lat_out,dim_lev_out/), id_o3mr_inc_out) call netcdf_err(error, 'defining variable o3mr_inc for file='//trim(outfile) ) - error = nf90_def_var(ncid_out, 'icmr_inc', nf90_float, (/dim_lon_out,dim_lat_out,dim_lev_out/), id_icmr_inc_out) - call netcdf_err(error, 'defining variable icmr_inc for file='//trim(outfile) ) + error = nf90_def_var(ncid_out, trim(ice_inc_name), nf90_float, (/dim_lon_out,dim_lat_out,dim_lev_out/), id_icmr_inc_out) + call netcdf_err(error, 'defining variable ' // trim(ice_inc_name) // ' for file='//trim(outfile) ) error = nf90_put_att(ncid_out, nf90_global, 'source', 'GSI') call netcdf_err(error, 'defining source attribute for file='//trim(outfile) ) From 7c0e62d9112cadbca766647492f52a8d3374cb70 Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA Date: Tue, 21 May 2024 17:45:19 +0000 Subject: [PATCH 2/2] Add missing logic --- src/netcdf_io/interp_inc.fd/driver.F90 | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/netcdf_io/interp_inc.fd/driver.F90 b/src/netcdf_io/interp_inc.fd/driver.F90 index bc20530f..00a9830a 100644 --- a/src/netcdf_io/interp_inc.fd/driver.F90 +++ b/src/netcdf_io/interp_inc.fd/driver.F90 @@ -79,13 +79,23 @@ program interp_inc logical :: jedi = .false. character(len=11) :: ice_inc_name - ! NOTE: u_inc,v_inc must be consecutive - data records /'u_inc', 'v_inc', 'delp_inc', 'delz_inc', 'T_inc', & - 'sphum_inc', 'liq_wat_inc', 'o3mr_inc', 'icmr_inc' / - namelist /setup/ lon_out, lat_out, outfile, infile, lev, jedi +!---------------------------------------------------------------- +! Set increment variable names. +!---------------------------------------------------------------- + ! GSI and JEDI may use difference increment variable names + if ( jedi ) then + ice_inc_name = 'icmr_inc' + else + ice_inc_name = 'ice_wat_inc' + end if + + ! NOTE: u_inc,v_inc must be consecutive + records = (/'u_inc', 'v_inc', 'delp_inc', 'delz_inc', 'T_inc', & + 'sphum_inc', 'liq_wat_inc', 'o3mr_inc', ice_inc_name /) + !----------------------------------------------------------------- ! MPI initialization call mpi_init(mpierr) @@ -117,12 +127,6 @@ program interp_inc ilev=lev+1 - if ( jedi ) then - ice_inc_name = 'icmr_inc' - else - ice_inc_name = 'ice_wat_inc' - end if - call mpi_barrier(mpi_comm_world, mpierr) if (mype == npes-1) then print*,'- OPEN OUTPUT FILE: ', trim(outfile)