From the Carnival Cruise website.
Port Cancellation Policy
If Carnival Cruise Lines ("Carnival") has adequate notice prior to sailing that a vessel will deviate from the published itinerary, it will promptly upon making the itinerary change notify passengers of the change through their travel agents or directly, in the case of a direct booking ("the Notice"). The Notice shall offer passengers an opportunity to cancel their booking without penalty within 24 hours of the delivery of the Notice. Carnival shall not be liable to guests for any charges, fees or expenses paid or owed to third parties (such as air travel booked by a guest directly with an airline) in connection with a cancelled booking or substituted port. In the event a passenger does not cancel his or her cruise on a timely basis, no additional compensation for the itinerary change will be offered to the passenger at a later time.
In the event the itinerary change becomes necessary while the ship is at sea or when notice prior to sailing is not feasible, Carnival shall attempt to substitute an alternative port. Carnival shall promptly provide written notice of the itinerary change to the passengers as well as announcing the change in the Carnival Capers and via the public address system. No compensation shall be provided to passengers when an alternative port is offered.
If safety, scheduling or other concerns prevent the ship from calling on an alternative port, Carnival shall promptly provide written notice of the elimination of the scheduled port to the passengers as well as announcing the change in the Carnival Capers and via the public address system. The written notice shall also offer a shipboard credit of $20.00 (U.S.D.) per person to be reflected on the sail and sign account.
Nothing herein shall affect the passenger's ability to exercise the Vacation Guarantee on sailings where it applies.