Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 52 additions & 44 deletions src/initialization/MOM_shared_initialization.F90
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand All @@ -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
Expand Down Expand Up @@ -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()
Expand Down