NRC Publications Archive (NPArC) Archives des publications ...where it is linked to an ocean model...

33
NRC Publications Archive (NPArC) Archives des publications du CNRC (NPArC) Publisher’s version / la version de l'éditeur: International Journal of Offshore and Polar Engineering, 15, 2, pp. 125-131 An Operational Model of Iceberg Drift Kubat, Ivana; Sayed, Mohamed; Savage, Stuart B.; Carrieres, Tom Contact us / Contactez nous: [email protected]. http://nparc.cisti-icist.nrc-cnrc.gc.ca/npsi/jsp/nparc_cp.jsp?lang=fr L’accès à ce site Web et l’utilisation de son contenu sont assujettis aux conditions présentées dans le site Web page / page Web http://nparc.cisti-icist.nrc-cnrc.gc.ca/npsi/ctrl?action=rtdoc&an=12327215&lang=en http://nparc.cisti-icist.nrc-cnrc.gc.ca/npsi/ctrl?action=rtdoc&an=12327215&lang=fr LISEZ CES CONDITIONS ATTENTIVEMENT AVANT D’UTILISER CE SITE WEB. READ THESE TERMS AND CONDITIONS CAREFULLY BEFORE USING THIS WEBSITE. Access and use of this website and the material on it are subject to the Terms and Conditions set forth at http://nparc.cisti-icist.nrc-cnrc.gc.ca/npsi/jsp/nparc_cp.jsp?lang=en

Transcript of NRC Publications Archive (NPArC) Archives des publications ...where it is linked to an ocean model...

  • NRC Publications Archive (NPArC)Archives des publications du CNRC (NPArC)

    Publisher’s version / la version de l'éditeur: International Journal of Offshore and Polar Engineering, 15, 2, pp. 125-131

    An Operational Model of Iceberg DriftKubat, Ivana; Sayed, Mohamed; Savage, Stuart B.; Carrieres, Tom

    Contact us / Contactez nous: [email protected].

    http://nparc.cisti-icist.nrc-cnrc.gc.ca/npsi/jsp/nparc_cp.jsp?lang=frL’accès à ce site Web et l’utilisation de son contenu sont assujettis aux conditions présentées dans le site

    Web page / page Web

    http://nparc.cisti-icist.nrc-cnrc.gc.ca/npsi/ctrl?action=rtdoc&an=12327215&lang=enhttp://nparc.cisti-icist.nrc-cnrc.gc.ca/npsi/ctrl?action=rtdoc&an=12327215&lang=fr

    LISEZ CES CONDITIONS ATTENTIVEMENT AVANT D’UTILISER CE SITE WEB.

    READ THESE TERMS AND CONDITIONS CAREFULLY BEFORE USING THIS WEBSITE.

    Access and use of this website and the material on it are subject to the Terms and Conditions set forth athttp://nparc.cisti-icist.nrc-cnrc.gc.ca/npsi/jsp/nparc_cp.jsp?lang=en

  • Implementation of the Canadian Ice Service Local Iceberg Drift Model

    Ivana Kubat and Mohamed Sayed

    Technical Report HYD-TR-042 April 2006

  • Implementation of the Canadian Ice Service Local Iceberg Drift Model

    Ivana Kubat and Mohamed Sayed Canadian Hydraulics Centre

    National Research Council of Canada Ottawa, Ont. K1A 0R6

    Canada

    Technical Report HYD-TR-042

    April 2006

  • HYD-TR-042 i

    ABSTRACT This report documents the computer code of an iceberg drift model intended for end-

    users. The computer program keeps track of the dynamics, drift and deterioration of

    individual icebergs. The code allows the user to access and modify the input and output

    files. The users can thus incorporate information that may be locally available, which

    may enhance the accuracy of the forecast. The model also makes it convenient for the

    user to test various scenarios of environmental forcing and estimate the effect of

    uncertainties regarding, for example, the iceberg geometry.

  • HYD-TR-042 i

  • HYD-TR-042 ii

    TABLE OF CONTENTS

    ABSTRACT .................................................................................................................................................... i TABLE OF CONTENTS ....................................................................................................................... ii

    1. INTRODUCTION.................................................................................................................................. 1 2. ORGANIZATION OF THE PROGRAM .............................................................................................. 1

    2.1 USER’s VARIABLES.......................................................................................................................... 2 Run parameters....................................................................................................................................... 2 Iceberg initial conditions ........................................................................................................................ 2 Environmental variables ......................................................................................................................... 3 Material properties.................................................................................................................................. 3

    3. SUMMARY ........................................................................................................................................... 4 4. ACKNOWLEGEMENT......................................................................................................................... 4 APPENDIX A ................................................................................................................................................ 6 APPENDIX B................................................................................................................................................. 8

  • HYD-TR-042 i

  • HYD-TR-042 1

    Implementation of the Canadian Ice Service Local Iceberg Drift Model

    1. INTRODUCTION

    A new iceberg drift, deterioration and calving model was developed by the Canadian Ice

    Service (CIS) and National Research Council of Canada - Canadian Hydraulics Centre

    (NRC/CHC). The model is described in detail in the Appendix A. One of the main

    features of the new model is the utilization of detailed environmental forcing input, such

    as the vertical profile of water current. The model runs on the CIS main computer system,

    where it is linked to an ocean model and databases for other environmental inputs. The

    output of the model has been in operational use by some end users (e.g. Provincial

    Aerospace Ltd.) to predict the iceberg drift tracks over the Grand Banks. End users have

    indicated an interest in the development of a version of the model that can be directly

    operated in a stand-alone mode, without a need to link to the large ocean model and

    databases at CIS. The idea is that the end user will have the ability to input iceberg and

    environmental data into the model and could produce the output about the iceberg drift

    whenever needed. Incorporation of local data and observations (i.e. real-time

    measurements or user-defined observations of local conditions) would also result in

    significantly better accuracy that will assist in decision making of iceberg towing. Such

    model will be advantageous to the end-users as a great tool in predicting the iceberg drift.

    The code incorporates an interface that gives the user a flexible ability to introduce the

    initial conditions, environmental variables, and material properties. The user can also

    customize the output to provide values of interest in any format and at the required

    frequency. The input file allows the user to import values of water current, and wind

    velocities. The user can also specify if the geometry of the iceberg is tabular or non-

    tabular. For non-tabular icebergs, the user can override default values and specify keel

    depth and sail height.

    The model employs the Canadian Ice Service (CIS) iceberg model, which is included in

    as library file. That library is linked to Fortran 90 files of the input, output, and user

    variables. The model, thus, makes use of all the functionality of the CIS model. Drift

    calculations consider forces resulting from water drag, air drag, wave radiation pressures,

    and water pressure gradient. Added mass and Coriolis force are considered in the

    equations. The processes which contribute to mass loss are surface melting due to solar

    radiation, buoyant vertical convection, forced convection of water and air, wave erosion

    and calving.

    This report documents the code of the Local Iceberg Drift Model. Details of the

    formulation of the full model are included in Appendix A. Listing of the code of the

    Local Model is given in Appendix B.

  • HYD-TR-042 1

    2. ORGANIZATION OF THE PROGRAM

    Figure 1 shows the main subroutines of the program. The main program starts the

    forecast. Definitions of the variables that are employed by the user are included in the

    “userVariables” file. The input file provides run parameters, initial size and location of

    the iceberg, water current and wind values, and various properties of ice and water.

    Default values are included for those properties. The library conducts the calculations

    that updates the iceberg velocity, position and size. The output file contains Fortran

    statements that the user can customize to print the required results.

    The program consists of four Fortran files and two binary files as follow,

    Main.f90

    userInput.f90

    userOutput.f90

    userVariables.f90

    localBergLib.lib

    variables.mod

    Figure 1: Data flow diagram showing the main subroutines of the program.

  • HYD-TR-042 2

    2.1 USER’S VARIABLES

    The user variables are included in a module. It is named Module userVariables, and is

    contained in the file “userVariables.f90”. Those variables, which are accessed by the

    user, consist of:

    Run parameters

    Name Type Description

    userNsteps integer Number of time steps

    userDelt real Time step (s)

    userPrintFreq integer Output frequency (steps)

    Iceberg initial conditions

    Name Type Description

    userBergLength real Mean length of the iceberg at waterline (m)

    userLong real Longitude of the iceberg (degrees)

    userLat real Latitude of the iceberg (degrees)

    userU real Velocity along the East direction (m/s)

    userV real Velocity along the North direction (m/s)

    userTabularGeometry integer 1= Tabular, 0= non-tabular geometry

    userKeelSailInput integer 1= yes (must be 1 if Tabular), 0= use default value.

    This variable determines if the user will override the

    default values of keel depth and sail height. It should be

    "1" for tabular icebergs. For non-tabular icebergs, it

    may be "1" to enter user values, or "0" to use default

    values.

    userKeelDepth real If "userKeelSailInput= 1", enter depth (m)

    userSailHeight real If "userKeelSailInput= 1", enter sail height (m)

  • HYD-TR-042 3

    Environmental variables

    Name Type Description

    userUwind real array Wind velocity along the East direction (m/s) (i.e. East

    component of wind velocity) - positive towards the East

    userVwind real array Wind velocity along the North direction (m/s) (i.e. North

    component of wind velocity) - positive towards the North

    userUcur real array Water current along the East direction for each layer (m/s)

    (i.e. East component of water current)

    userVcur real array Water current along the North direction for each layer (m/s)

    (i.e. North component of water current)

    userWaterTemp real Water temperature (°C)

    userWaveHeight real Height of wind waves (m)

    userWavePeriod real Period of wind waves (s)

    Material properties

    Name Type Description

    userCdwat real Drag coefficient of water

    userCdair real Drag coefficient of air

    userRhoice real Density of ice (kg/m3)

    userRhoair real Density of air (kg/m3)

    userRhowat real Density of water (kg/m3)

    userKwater real Thermal conductivity of water (W/m/(°C)

    userKair real Thermal conductivity of air (W/m/(°C)

    userNuwater real Kinematic viscosity of water (m2/s)

    userNuair real Kinematic viscosity of air (m2/s)

    userLatentHeat real Latent heat of fusion (J/kg)

    userAlbedo real Albedo for icebergs

    The model includes default values for each variable. These values can be found in the

    “userInput.f90” file of the program. The user can either use these in case the real-time

    data are not available or can input his own observed data. In this file user can also specify

    the time step at which the program is executed (interval at which the calculations are

    performed), the duration of the run, and output frequency (the interval at which the

    variables of interest are recorded). In the “userOutput.f09” file the user can specify the

    values of variables that are of interest to be recorded.

    In general the program consists of four Fortran files: mail.f90, userInput.f90,

    userOutput.f90, and userVariables.f90. The content of these files is listed in the

    Appendix B.

  • HYD-TR-042 4

    3. SUMMARY

    This report documents the computer code of a Local iceberg drift and deterioration

    model. The main (global) model, Iceberg Drift model, runs on the Canadian Ice Service

    (CIS) main computer system. The end-users indicated an interest in having the ability to

    run the model locally and use their experience, knowledge and real-time data. This would

    enhance the accuracy of the forecast.

    The code allows the user to customize the input and output and use their own

    observations and data. The full CIS model is packaged in a library that is called by the

    user. Thus the user has the access to the full functionality of the CIS model, while having

    flexibility of using locally available information.

    4. ACKNOWLEGEMENT

    The financial support of the Program on Energy Research and Development (PERD) is

    gratefully acknowledged.

  • HYD-TR-042 5

  • HYD-TR-042 6

    APPENDIX A

    Operational Model of Iceberg Drift

  • HYD-TR-042 7

  • HYD-TR-042 8

    APPENDIX B

    Fortran Files

  • HYD-TR-042 9

  • File: main.f90

    !****************************************************************************

    !

    ! PROGRAM: Local Iceberg Dynamics and Deterioration (LIDD)

    !

    ! PURPOSE: The program keeps track of icebergs.

    ! The program performs the following calculations:

    ! - iceberg drift

    ! - iceberg melt

    ! - iceberg calving

    !

    ! DESCRIPTION: Methodology of the calculations is given in the paper by:

    ! I.Kubat, M.Sayed, S.B.Savage and T. Carrieres

    ! "An operational model of iceberg drift"

    ! International Journal of Offshore and Polar Engineering

    ! Vol.15, No.2, June 2005, pp125-131

    !

    ! INPUT FILES: userInput.f90

    !

    ! OUTPUT FILES: userOutput.f90

    !

    ! AUTHORS: Mohamed Sayed

    ! Canadian Hydraulics Centre

    ! National Research Council, Ottawa, Ontario K1A 0R6

    ! E-mail: [email protected]

    ! Tel (613)990-6958 Fax (613)952-7679

    !

    ! AND

    !

    ! Ivana Kubat

    ! Canadian Hydraulics Centre

    ! National Research Council, Ottawa, Ontario K1A 0R6

    ! E-mail: [email protected]

    ! Tel (613)993-7695 Fax (613)952-7679

    !

    ! HISTORY:

    ! Version Date Comment

    ! ------- ---- -------

    ! 1.0 April 2006 Original code. M. Sayed & I. Kubat

    !

    !

    !****************************************************************************

    program main

    use variables

    implicit none

    call runProgram

    end program main

    !****************************************************************************

  • File: userInput.f90

    !************************************************************************************

    subroutine userInput

    !

    !

    ! PURPOSE: - get values of the environmental input at time time step i.

    ! The input consists of water current, wind velocity,

    ! wind waves, and water surface temperature.

    !

    ! DESCRIPTION: The input consists of:

    ! -Wind velocity along the east and north directions

    ! -Current for each time step along (towards) the east and north direction

    ! -Wind wave height and period

    ! -Temperature of surface water

    !

    !

    !

    !

    !

    ! AUTHOR: Mohamed Sayed

    !

    !

    ! HISTORY:

    ! Version Date Comment

    ! ------- ---- -------

    ! 1.0 April 2006 Original code. M. Sayed & I. Kubat

    !

    !**************************************************************************************

    use variables

    use userVariables

    implicit none

    integer i

    !Example test case

    ! Run parameters

    userNsteps= 3390 !Number of time steps

    userDelt= 120 !Time step (s)

    userPrintFreq= 15 !Output frequency (steps)

    !Initial iceberg variables

    userBergLength= 100 ! Waterline length of the iceberg

    userLong= 55.0 ! Longitude (degrees)

    userLat= 50.0 ! Latitude (degrees)

    userU= 0.0 ! East velocity component (m/s)

    userV= 0.0 ! North velocity component (m/s)

    !Geometry

    userTabularGeometry= 0 ! 1= Tabular, 0= non-tabular geometry

    userKeelSailInput= 1 ! 1= yes (must be 1 if Tabular), 0= use default value

    ! This variable determines if the user will override

    ! the default values of keel depth and sail height

    ! It should be "1" for tabular icebergs.

  • ! For non-tabular icebergs, it may be "1" to enter

    ! user values, or "0" to use default values.

    userKeelDepth= 70.0 ! If "userKeelSailInput= 1", enter depth (m)

    userSailHeight= 10.0 ! If "userKeelSailInput= 1", enter sail height (m)

    !Environmental forcing

    userWaterTemp= 11.9 !Water temperature degrees C

    userWaveHeight= 1.5 !Wind wave height (m)

    userWavePeriod= 9.0 !Wind wave period (s)

    !Current and wind values for each time step. The values could be constant

    !or may be, for example, read from a file. The following loop can be replaced

    !with the user.

    do i= 1, userNsteps

    userUcurrent(i)= 0.5 !East component of water current

    userVcurrent(i)= 0.2 !North component of water current

    userUwind(i)= 5.0 !East component of wind velocity (positive towards the East)

    userVwind(i)= 7.5 !North component of wind velocity (positive towards the North)

    end do

    !Properties (default values are listed below)

    userCdwat= 1.3 !Drag coefficient of water

    userCdair= 1.9 !Drag coefficient of air

    userRhoice= 910. !Density of ice (kg/m^3)

    userRhoair= 1.3 !Density of air (kg/m^3)

    userRhowat= 1030. !Density of water (kg/m^3)

    userKwater= 0.562 !Thermal conductivity of water (W/m/degreeC)

    userKair= 0.0241 !Thermal conductivity of air (W/m/degreeC)

    userNuwater= 1.79E-06 !Kinematic viscosity of water (m^2/s)

    userNuair= 1.32E-05 !Kinematic viscosity of air (m^2/s)

    userLatentHeat=3.34E05 !Latent heat of fusion (J/kg)

    userAlbedo= 0.7 !Albedo

    end subroutine userInput

    !************************************************************************************

  • File: userOutput.f90

    !************************************************************************************

    subroutine userOutput(step)

    !

    !

    ! PURPOSE: - Ouput the results.The subroutine is called at intervals

    ! defined by the user. The interval between outputsis in seconds is:

    ! interval = userPrintFreq * userDelt

    !

    !

    !

    !

    !

    !

    !

    ! AUTHOR: Mohamed Sayed

    !

    !

    ! HISTORY:

    ! Version Date Comment

    ! ------- ---- -------

    ! 1.0 April 2006 Original code. M. Sayed & I. Kubat

    !

    !**************************************************************************************

    use variables

    use userVariables

    implicit none

    real:: time

    integer, intent(in):: step

    time= step* userDelt

    ! The user can open and close output files and record the values of

    ! variables of interest.

    ! For example:

    ! time = time from the start of the forecast (s)

    ! userLong = Longitude of the iceberg (degrees)

    ! userLat = Latitude of the iceberg (degrees)

    ! userU = East component of iceberg velocity (m/s)

    ! userV = North component of iceberg velocity (m/s)

    ! userBergLength = Waterline length of the iceberg

    !Example test case

    print *,time, userLong,userLat,userU,userV,userBergLength

    end subroutine userOutput

    !************************************************************************************

  • File: userVariables.f90

    !************************************************************************************

    Module userVariables

    !

    !

    ! PURPOSE: - Declaration of user variables

    !

    !

    !

    !

    !

    !

    !

    ! AUTHOR: Mohamed Sayed

    !

    !

    ! HISTORY:

    ! Version Date Comment

    ! ------- ---- -------

    ! 1.0 April 2006 Original code. M. Sayed & I. Kubat

    !

    !**************************************************************************************

    ! Run parameters

    integer:: userNsteps !Number of time steps

    real:: userDelt !Time step (s)

    integer:: userPrintFreq !Output frequency (steps)

    !Initial iceberg variables

    real:: userBergLength !Mean length of the iceberg at waterline (m)

    real:: userLong !Longitude of the iceberg (degrees)

    real:: userLat !Latitude of the iceberg (degrees)

    real:: userU !Velocity along the East direction (m/s)

    real:: userV !Velocity along the North direction (m/s)

    integer:: userTabularGeometry !1= Tabular, 0= non-tabular geometry

    integer:: userKeelSailInput ! 1= yes (must be 1 if Tabular), 0= use default value

    ! This variable determines if the user will override

    ! the default values of keel depth and sail height

    ! It should be "1" for tabular icebergs.

    ! For non-tabular icebergs, it may be "1" to enter

    ! user values, or "0" to use default values.

    real:: userKeelDepth !If "userKeelSailInput= 1", enter depth (m)

    real:: userSailHeight !If "userKeelSailInput= 1", enter sail height (m)

    !Environmental forcing

    real:: userWaterTemp !Water temperature degrees C

    real:: userWaveHeight !Wind wave height (m)

    real:: userWavePeriod !Wind wave period (s)

    !Dimsnsion of the variables below should be equal or larger than the

    !number of time steps "userNsteps".

    real, dimension(20000):: userUcurrent,userVcurrent !East and North component of water current, respectively

  • real, dimension(20000):: userUwind,userVwind !East and North component of wind velocity, respectively

    !Properties

    real:: userCdwat,userCdair !Drag coefficients of water and air

    real:: userRhoice !Density of ice (kg/m^3)

    real:: userRhoair !Density of air (kg/m^3)

    real:: userRhowat !Density of water (kg/m^3)

    real:: userKwater !Thermal conductivity of water (W/m/degreeC)

    real:: userKair !Thermal conductivity of air (W/m/degreeC)

    real:: userNuwater !Kinematic viscosity of water (m^2/s)

    real:: userNuair !Kinematic viscosity of air (m^2/s)

    real:: userLatentHeat !Latent heat of fusion (J/kg)

    real:: userAlbedo !Albedo

    end module userVariables

    a4CJxSV59E1Qu5798424466904033491.binaOU0BkqbnoUax9201865141006625712.bin