Thursday, June 8, 2023

How to fix a split Fusion Drive (May 2023)

 

This page helped me to resuscitate an ailing iMac in my office.  It was while executing this fix that I upgraded MacOS to Ventura and broke my Fortran computing environment.  Still, it was worth it.

https://support.apple.com/en-us/HT207584

If your Fusion Drive appears as two drives instead of one in the Finder, it's no longer working as a Fusion Drive. Here's how to fix it.

Fusion Drive, a storage option on some iMac and Mac mini computers, combines a hard drive and flash storage in a single volume for improved performance and storage capacity. If your Fusion Drive appears as two drives instead of one in the Finder, it's no longer working as a Fusion Drive. This can happen after replacing either drive of your Fusion Drive, or using software to intentionally split them into separate volumes. 

You can continue using the two drives independently, or follow these steps to regain the benefits of having the single logical volume of a Fusion Drive.


. . . .  see the support page at Apple

Adjusting to MacOS Ventura and gcc12 and Fortran 2018 syntax rules: Various Subroutines

 Sportsfans,

The upgrade to MacOS Ventura has broken my Fortran programming environment, mainly by moving the directories of the operating system around so that older versions of gfortran and gcc cannot find their proper libraries.  Rather than spend hours recreating the original file structures and libraries from old backups and the Relocated Items folders, I decided to level up to the latest GNU C and Fortran compilers as maintained by MacPorts.  These are gcc12 -- version 12 of the venerable GNU freeware package.  The old Fortran programmers must have retired, because these new compilers have discarded several aspects of Fortran 66 syntax that I learned as a teenager.  I don't write code with this older syntax, having transitioned to the Fortran 77 syntax of do/end do loops and if/then/else branches while in graduate school.  Nevertheless, there is plenty of legacy code in my toolboxes, and some of these subroutines have do loops that end on an executable statement, and others contain nested loops that terminate on the same numbered statements.  The new Fortran boffins outlawed these syntaxes, along with the arithmetic IF statement, in Fortran 2018.  My legacy codes have plenty of arithmetic IF statements, so all of these had to be reprogrammed to comply with gcc12.

This post is the third of a handful of posts that will provide these upgraded codes.  Here are a collection of subroutines that resided in my subdirectory Ritz for inclusion in various codes.  I scrubbed my Real*4 C-language FFT subroutine refft.c from my old codes a few years ago, in favor of the Real*8 Fortran routine fft2.f.  Some codes are free-oscillation subroutines that date from Freeman Gilbert, Ray Buland and/or John Woodhouse, all of whom wrote many legacy codes before the advent of Fortran 77.  All codes are contained in a zipfile codes_jlib_fort18.zip on the Google Drive subdirectory.

gfortran -c subroutine.f 

gfortran -o PROGRAM PROGRAM.f subroutine.o

subroutines include 

cossin.f

csolve.f

fft2.f

gxfcn.f

qromb.f

qtrap.f

rspln.f

solve.f

splneq.f

splnsm.f

svd.f


https://drive.google.com/drive/folders/0B5cfVtTS8QXZTGc1WnViSE5RWjA?resourcekey=0-YidcAd0wJGPRR1PhAyUYNA&usp=sharing

Adjusting to GCC12 upgrade in MacOS Ventura. Updated version of the EISPACK package.

  Sportsfans,

The upgrade to MacOS Ventura has broken my Fortran programming environment, mainly by moving the directories of the operating system around so that older versions of gfortran and gcc cannot find their proper libraries.  Rather than spend hours recreating the original file structures and libraries from old backups and the Relocated Items folders, I decided to level up to the latest GNU C and Fortran compilers as maintained by MacPorts.  These are gcc12 -- version 12 of the venerable GNU freeware package.  The old Fortran programmers must have retired, because these new compilers have discarded several aspects of Fortran 66 syntax that I learned as a teenager.  I don't write code with this older syntax, having transitioned to the Fortran 77 syntax of do/end do loops and if/then/else branches while in graduate school.  Nevertheless, there is plenty of legacy code in my toolboxes, and some of these subroutines have do loops that end on an executable statement, and others contain nested loops that terminate on the same numbered statements.  The new Fortran boffins outlawed these syntaxes, along with the arithmetic IF statement, in Fortran 2018.  My legacy codes have plenty of arithmetic IF statements, so all of these had to be reprogrammed to comply with gcc12.

This post is the second of a handful of posts that will provide these upgraded codes.  Here is the venerable EISPACK package of linear-algebra subroutines for inclusion within a Fortran program.   

gfortran -c eispack_fort18.for  

ar r eislib.a eispack.o

ranlib eislib.a

gfortran -o PROGRAM PROGRAM.f eislib.a


https://drive.google.com/drive/folders/0B5cfVtTS8QXZTGc1WnViSE5RWjA?resourcekey=0-YidcAd0wJGPRR1PhAyUYNA&usp=sharing

Adjusting to MacOS Ventura and gcc12: plotit software changes

 Sportsfans,

The upgrade to MacOS Ventura has broken my Fortran programming environment, mainly by moving the directories of the operating system around so that older versions of gfortran and gcc cannot find their proper libraries.  Rather than spend hours recreating the original file structures and libraries from old backups and the Relocated Items folders, I decided to level up to the latest GNU C and Fortran compilers as maintained by MacPorts.  These are gcc12 -- version 12 of the venerable GNU freeware package.  The old Fortran programmers must have retired, because these new compilers have discarded several aspects of Fortran 66 syntax that I learned as a teenager.  I don't write code with this older syntax, having transitioned to the Fortran 77 syntax of do/end do loops and if/then/else branches while in graduate school.  Nevertheless, there is plenty of legacy code in my toolboxes, and some of these subroutines have do loops that end on an executable statement, and others contain nested loops that terminate on the same numbered statements.  The new Fortran boffins outlawed these syntaxes, along with the arithmetic IF statement, in Fortran 2018.  My legacy codes have plenty of arithmetic IF statements, so all of these had to be reprogrammed to comply with gcc12.

This post is the first of a handful of posts that will provide these upgraded codes.  The first is the venerable, and oft-hated, plotit subroutine for on-the-fly XY-plotting within a Fortran program.  I include versions of plotit.f 

gfortran -c plotit.f  -L/usr/X11/lib -I/usr/X11/include -lX11

gcc -c xlplotit.c -L/usr/X11/lib -I/usr/X11/include -lX11

ar r plotlib.a plotit.o xlplotit.o

ranlib plotlib.a

gfortran -o PROGRAM PROGRAM.f plotlib.a -L/usr/X11/lib -I/usr/X11/include -lX11

I keep the compiled plotit object code in a signature directory for adding to my codes:

 /Users/jjpark/Plotxy/plotlib.a

In the zipfile Plotlib_fort18.zip I include updated versions of contour.f and makedat.f for similar on-the-fly plotting of a contour plot, and test-plotting with plotit.  I haven't tested these, so shoot me an email if they crash.


https://drive.google.com/drive/folders/0B5cfVtTS8QXZTGc1WnViSE5RWjA?resourcekey=0-YidcAd0wJGPRR1PhAyUYNA&usp=sharing




 
Link