From 2ce68076b4fdf6806dbf2590e3f0438deb45c8cf Mon Sep 17 00:00:00 2001 From: alperaltuntas Date: Tue, 22 Apr 2025 16:12:49 -0600 Subject: [PATCH 1/2] add u and v coordinates to the ocean_geometry file --- .../MOM_shared_initialization.F90 | 96 ++++++++++--------- 1 file changed, 52 insertions(+), 44 deletions(-) diff --git a/src/initialization/MOM_shared_initialization.F90 b/src/initialization/MOM_shared_initialization.F90 index 2197fdf038..fc77ecb98e 100644 --- a/src/initialization/MOM_shared_initialization.F90 +++ b/src/initialization/MOM_shared_initialization.F90 @@ -1361,7 +1361,7 @@ subroutine write_ocean_geometry_file(G, param_file, directory, US, geom_file) call callTree_enter('write_ocean_geometry_file()') - nFlds = 19 ; if (G%bathymetry_at_vel) nFlds = 23 + nFlds = 23 ; if (G%bathymetry_at_vel) nFlds = 27 allocate(vars(nFlds)) allocate(fields(nFlds)) @@ -1380,28 +1380,32 @@ subroutine write_ocean_geometry_file(G, param_file, directory, US, geom_file) vars(2) = var_desc("geolonb","degree","longitude at corner (Bu) points",'q','1','1') vars(3) = var_desc("geolat","degree", "latitude at tracer (T) points", 'h','1','1') vars(4) = var_desc("geolon","degree","longitude at tracer (T) points",'h','1','1') - vars(5) = var_desc("D","meter","Basin Depth",'h','1','1') - vars(6) = var_desc("f","s-1","Coriolis Parameter",'q','1','1') - vars(7) = var_desc("dxCv","m","Zonal grid spacing at v points",'v','1','1') - vars(8) = var_desc("dyCu","m","Meridional grid spacing at u points",'u','1','1') - vars(9) = var_desc("dxCu","m","Zonal grid spacing at u points",'u','1','1') - vars(10)= var_desc("dyCv","m","Meridional grid spacing at v points",'v','1','1') - vars(11)= var_desc("dxT","m","Zonal grid spacing at h points",'h','1','1') - vars(12)= var_desc("dyT","m","Meridional grid spacing at h points",'h','1','1') - vars(13)= var_desc("dxBu","m","Zonal grid spacing at q points",'q','1','1') - vars(14)= var_desc("dyBu","m","Meridional grid spacing at q points",'q','1','1') - vars(15)= var_desc("Ah","m2","Area of h cells",'h','1','1') - vars(16)= var_desc("Aq","m2","Area of q cells",'q','1','1') - - vars(17)= var_desc("dxCvo","m","Open zonal grid spacing at v points",'v','1','1') - vars(18)= var_desc("dyCuo","m","Open meridional grid spacing at u points",'u','1','1') - vars(19)= var_desc("wet", "nondim", "land or ocean?", 'h','1','1') + vars(5) = var_desc("geolatu","degree","latitude at zonal velocity (Cu) points",'u','1','1') + vars(6) = var_desc("geolonu","degree","longitude at zonal velocity (Cu) points",'u','1','1') + vars(7) = var_desc("geolatv","degree","latitude at meridional velocity (Cv) points",'v','1','1') + vars(8) = var_desc("geolonv","degree","longitude at meridional velocity (Cv) points",'v','1','1') + vars(9) = var_desc("D","meter","Basin Depth",'h','1','1') + vars(10) = var_desc("f","s-1","Coriolis Parameter",'q','1','1') + vars(11) = var_desc("dxCv","m","Zonal grid spacing at v points",'v','1','1') + vars(12) = var_desc("dyCu","m","Meridional grid spacing at u points",'u','1','1') + vars(13) = var_desc("dxCu","m","Zonal grid spacing at u points",'u','1','1') + vars(14)= var_desc("dyCv","m","Meridional grid spacing at v points",'v','1','1') + vars(15)= var_desc("dxT","m","Zonal grid spacing at h points",'h','1','1') + vars(16)= var_desc("dyT","m","Meridional grid spacing at h points",'h','1','1') + vars(17)= var_desc("dxBu","m","Zonal grid spacing at q points",'q','1','1') + vars(18)= var_desc("dyBu","m","Meridional grid spacing at q points",'q','1','1') + vars(19)= var_desc("Ah","m2","Area of h cells",'h','1','1') + vars(20)= var_desc("Aq","m2","Area of q cells",'q','1','1') + + vars(21)= var_desc("dxCvo","m","Open zonal grid spacing at v points",'v','1','1') + vars(22)= var_desc("dyCuo","m","Open meridional grid spacing at u points",'u','1','1') + vars(23)= var_desc("wet", "nondim", "land or ocean?", 'h','1','1') if (G%bathymetry_at_vel) then - vars(20) = var_desc("Dblock_u","m","Blocked depth at u points",'u','1','1') - vars(21) = var_desc("Dopen_u","m","Open depth at u points",'u','1','1') - vars(22) = var_desc("Dblock_v","m","Blocked depth at v points",'v','1','1') - vars(23) = var_desc("Dopen_v","m","Open depth at v points",'v','1','1') + vars(24) = var_desc("Dblock_u","m","Blocked depth at u points",'u','1','1') + vars(25) = var_desc("Dopen_u","m","Open depth at u points",'u','1','1') + vars(26) = var_desc("Dblock_v","m","Blocked depth at v points",'v','1','1') + vars(27) = var_desc("Dopen_v","m","Open depth at v points",'v','1','1') endif if (present(geom_file)) then @@ -1436,31 +1440,35 @@ subroutine write_ocean_geometry_file(G, param_file, directory, US, geom_file) call MOM_write_field(IO_handle, fields(2), G%Domain, G%geoLonBu) call MOM_write_field(IO_handle, fields(3), G%Domain, G%geoLatT) call MOM_write_field(IO_handle, fields(4), G%Domain, G%geoLonT) - - call MOM_write_field(IO_handle, fields(5), G%Domain, G%bathyT, unscale=US%Z_to_m) - call MOM_write_field(IO_handle, fields(6), G%Domain, G%CoriolisBu, unscale=US%s_to_T) - - call MOM_write_field(IO_handle, fields(7), G%Domain, G%dxCv, unscale=US%L_to_m) - call MOM_write_field(IO_handle, fields(8), G%Domain, G%dyCu, unscale=US%L_to_m) - call MOM_write_field(IO_handle, fields(9), G%Domain, G%dxCu, unscale=US%L_to_m) - call MOM_write_field(IO_handle, fields(10), G%Domain, G%dyCv, unscale=US%L_to_m) - call MOM_write_field(IO_handle, fields(11), G%Domain, G%dxT, unscale=US%L_to_m) - call MOM_write_field(IO_handle, fields(12), G%Domain, G%dyT, unscale=US%L_to_m) - call MOM_write_field(IO_handle, fields(13), G%Domain, G%dxBu, unscale=US%L_to_m) - call MOM_write_field(IO_handle, fields(14), G%Domain, G%dyBu, unscale=US%L_to_m) - - call MOM_write_field(IO_handle, fields(15), G%Domain, G%areaT, unscale=US%L_to_m**2) - call MOM_write_field(IO_handle, fields(16), G%Domain, G%areaBu, unscale=US%L_to_m**2) - - call MOM_write_field(IO_handle, fields(17), G%Domain, G%dx_Cv, unscale=US%L_to_m) - call MOM_write_field(IO_handle, fields(18), G%Domain, G%dy_Cu, unscale=US%L_to_m) - call MOM_write_field(IO_handle, fields(19), G%Domain, G%mask2dT) + call MOM_write_field(IO_handle, fields(5), G%Domain, G%geoLatCu) + call MOM_write_field(IO_handle, fields(6), G%Domain, G%geoLonCu) + call MOM_write_field(IO_handle, fields(7), G%Domain, G%geoLatCv) + call MOM_write_field(IO_handle, fields(8), G%Domain, G%geoLonCv) + + call MOM_write_field(IO_handle, fields(9), G%Domain, G%bathyT, unscale=US%Z_to_m) + call MOM_write_field(IO_handle, fields(10), G%Domain, G%CoriolisBu, unscale=US%s_to_T) + + call MOM_write_field(IO_handle, fields(11), G%Domain, G%dxCv, unscale=US%L_to_m) + call MOM_write_field(IO_handle, fields(12), G%Domain, G%dyCu, unscale=US%L_to_m) + call MOM_write_field(IO_handle, fields(13), G%Domain, G%dxCu, unscale=US%L_to_m) + call MOM_write_field(IO_handle, fields(14), G%Domain, G%dyCv, unscale=US%L_to_m) + call MOM_write_field(IO_handle, fields(15), G%Domain, G%dxT, unscale=US%L_to_m) + call MOM_write_field(IO_handle, fields(16), G%Domain, G%dyT, unscale=US%L_to_m) + call MOM_write_field(IO_handle, fields(17), G%Domain, G%dxBu, unscale=US%L_to_m) + call MOM_write_field(IO_handle, fields(18), G%Domain, G%dyBu, unscale=US%L_to_m) + + call MOM_write_field(IO_handle, fields(19), G%Domain, G%areaT, unscale=US%L_to_m**2) + call MOM_write_field(IO_handle, fields(20), G%Domain, G%areaBu, unscale=US%L_to_m**2) + + call MOM_write_field(IO_handle, fields(21), G%Domain, G%dx_Cv, unscale=US%L_to_m) + call MOM_write_field(IO_handle, fields(22), G%Domain, G%dy_Cu, unscale=US%L_to_m) + call MOM_write_field(IO_handle, fields(23), G%Domain, G%mask2dT) if (G%bathymetry_at_vel) then - call MOM_write_field(IO_handle, fields(20), G%Domain, G%Dblock_u, unscale=US%Z_to_m) - call MOM_write_field(IO_handle, fields(21), G%Domain, G%Dopen_u, unscale=US%Z_to_m) - call MOM_write_field(IO_handle, fields(22), G%Domain, G%Dblock_v, unscale=US%Z_to_m) - call MOM_write_field(IO_handle, fields(23), G%Domain, G%Dopen_v, unscale=US%Z_to_m) + call MOM_write_field(IO_handle, fields(24), G%Domain, G%Dblock_u, unscale=US%Z_to_m) + call MOM_write_field(IO_handle, fields(25), G%Domain, G%Dopen_u, unscale=US%Z_to_m) + call MOM_write_field(IO_handle, fields(26), G%Domain, G%Dblock_v, unscale=US%Z_to_m) + call MOM_write_field(IO_handle, fields(27), G%Domain, G%Dopen_v, unscale=US%Z_to_m) endif call IO_handle%close() From ba3e0ebcbd7bcec269db19280b0ce0590ac7f466 Mon Sep 17 00:00:00 2001 From: alperaltuntas Date: Wed, 23 Apr 2025 10:22:04 -0600 Subject: [PATCH 2/2] whitespace alignment --- src/initialization/MOM_shared_initialization.F90 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/initialization/MOM_shared_initialization.F90 b/src/initialization/MOM_shared_initialization.F90 index fc77ecb98e..dbdc855495 100644 --- a/src/initialization/MOM_shared_initialization.F90 +++ b/src/initialization/MOM_shared_initialization.F90 @@ -1385,10 +1385,10 @@ subroutine write_ocean_geometry_file(G, param_file, directory, US, geom_file) vars(7) = var_desc("geolatv","degree","latitude at meridional velocity (Cv) points",'v','1','1') vars(8) = var_desc("geolonv","degree","longitude at meridional velocity (Cv) points",'v','1','1') vars(9) = var_desc("D","meter","Basin Depth",'h','1','1') - vars(10) = var_desc("f","s-1","Coriolis Parameter",'q','1','1') - vars(11) = var_desc("dxCv","m","Zonal grid spacing at v points",'v','1','1') - vars(12) = var_desc("dyCu","m","Meridional grid spacing at u points",'u','1','1') - vars(13) = var_desc("dxCu","m","Zonal grid spacing at u points",'u','1','1') + vars(10)= var_desc("f","s-1","Coriolis Parameter",'q','1','1') + vars(11)= var_desc("dxCv","m","Zonal grid spacing at v points",'v','1','1') + vars(12)= var_desc("dyCu","m","Meridional grid spacing at u points",'u','1','1') + vars(13)= var_desc("dxCu","m","Zonal grid spacing at u points",'u','1','1') vars(14)= var_desc("dyCv","m","Meridional grid spacing at v points",'v','1','1') vars(15)= var_desc("dxT","m","Zonal grid spacing at h points",'h','1','1') vars(16)= var_desc("dyT","m","Meridional grid spacing at h points",'h','1','1') @@ -1445,12 +1445,12 @@ subroutine write_ocean_geometry_file(G, param_file, directory, US, geom_file) call MOM_write_field(IO_handle, fields(7), G%Domain, G%geoLatCv) call MOM_write_field(IO_handle, fields(8), G%Domain, G%geoLonCv) - call MOM_write_field(IO_handle, fields(9), G%Domain, G%bathyT, unscale=US%Z_to_m) + call MOM_write_field(IO_handle, fields(9), G%Domain, G%bathyT, unscale=US%Z_to_m) call MOM_write_field(IO_handle, fields(10), G%Domain, G%CoriolisBu, unscale=US%s_to_T) - call MOM_write_field(IO_handle, fields(11), G%Domain, G%dxCv, unscale=US%L_to_m) - call MOM_write_field(IO_handle, fields(12), G%Domain, G%dyCu, unscale=US%L_to_m) - call MOM_write_field(IO_handle, fields(13), G%Domain, G%dxCu, unscale=US%L_to_m) + call MOM_write_field(IO_handle, fields(11), G%Domain, G%dxCv, unscale=US%L_to_m) + call MOM_write_field(IO_handle, fields(12), G%Domain, G%dyCu, unscale=US%L_to_m) + call MOM_write_field(IO_handle, fields(13), G%Domain, G%dxCu, unscale=US%L_to_m) call MOM_write_field(IO_handle, fields(14), G%Domain, G%dyCv, unscale=US%L_to_m) call MOM_write_field(IO_handle, fields(15), G%Domain, G%dxT, unscale=US%L_to_m) call MOM_write_field(IO_handle, fields(16), G%Domain, G%dyT, unscale=US%L_to_m)