Back to home page

MITgcm

 
 

    


File indexing completed on 2024-06-06 05:11:01 UTC

view on githubraw file Latest commit af61e5eb on 2024-06-06 03:30:35 UTC
08da45d586 Jean*0001 #ifdef ALLOW_OBCS
                0002 
                0003 CBOP
                0004 C     !ROUTINE: OBCS_SEAICE.h
                0005 C     !INTERFACE:
                0006 C     #include "OBCS_SEAICE.h"
                0007 
                0008 C     !DESCRIPTION:
                0009 C     *==========================================================*
                0010 C     | OBCS_SEAICE.h
                0011 C     | o Header file containing
                0012 C     |   OBCS seaice parameters and OB values of seaice fields.
                0013 C     *==========================================================*
                0014 CEOP
                0015 
c7c4b57180 Dimi*0016 C seaiceSpongeThickness  :: number grid points that make up the sponge layer (def=0)
                0017       COMMON /OBC_SEAICE_PARM_I/
                0018      & seaiceSpongeThickness
                0019       INTEGER seaiceSpongeThickness
                0020 
af61e5eb16 Mart*0021 C useSeaiceSponge  :: turns on seaice sponge layer along boundary (def=false)
                0022 C useSeaiceNeumann :: use Neumann conditions for sea ice variables (def=false)
c7c4b57180 Dimi*0023       COMMON /OBC_SEAICE_PARM_L/
af61e5eb16 Mart*0024      & useSeaiceSponge, useSeaiceNeumann
c7c4b57180 Dimi*0025       LOGICAL useSeaiceSponge
af61e5eb16 Mart*0026       LOGICAL useSeaiceNeumann
c7c4b57180 Dimi*0027 
5e26aed318 Dimi*0028 C [A,H,SL,SN]relaxobcs[inner,bound] :: relaxation time scale (in seconds) on the
                0029 C                            boundary (bound) and at the innermost grid point of the
                0030 C                            sponge layer (inner); relaxation time scales in-between
c7c4b57180 Dimi*0031 C                            are linearly interpolated from these values
                0032       COMMON /OBC_SEAICE_PARM_R/
5e26aed318 Dimi*0033      &     Arelaxobcsinner,  Arelaxobcsbound,
                0034      &     Hrelaxobcsinner,  Hrelaxobcsbound,
                0035      &    SLrelaxobcsinner, SLrelaxobcsbound,
                0036      &    SNrelaxobcsinner, SNrelaxobcsbound
                0037       _RS  Arelaxobcsinner,  Arelaxobcsbound
                0038       _RS  Hrelaxobcsinner,  Hrelaxobcsbound
                0039       _RS SLrelaxobcsinner, SLrelaxobcsbound
                0040       _RS SNrelaxobcsinner, SNrelaxobcsbound
c7c4b57180 Dimi*0041 
6f4cf52d27 Dimi*0042 C OB[N,S,E,W][a,h,sn,sl,uice,vice]File :: Files with boundary conditions,
                0043 C                                         the letter combinations mean:
08da45d586 Jean*0044 C                     N/S/E/W   :: northern/southern/eastern/western boundary
                0045 C                     a/h       :: sea ice concentration/effective thickness
                0046 C                     sn/sl     :: effective snow thickness/sea ice salinity
                0047 C                     uice/vice :: sea ice u/v drift velocities
                0048 
                0049       COMMON /OBC_SEAICE_FILES/
                0050      &      OBNaFile,   OBSaFile,   OBEaFile,   OBWaFile,
                0051      &      OBNhFile,   OBShFile,   OBEhFile,   OBWhFile,
                0052      &      OBNslFile,  OBSslFile,  OBEslFile,  OBWslFile,
                0053      &      OBNsnFile,  OBSsnFile,  OBEsnFile,  OBWsnFile,
                0054      &      OBNuiceFile,OBSuiceFile,OBEuiceFile,OBWuiceFile,
                0055      &      OBNviceFile,OBSviceFile,OBEviceFile,OBWviceFile
                0056       CHARACTER*(MAX_LEN_FNAM)
                0057      &      OBNaFile,   OBSaFile,   OBEaFile,   OBWaFile,
                0058      &      OBNhFile,   OBShFile,   OBEhFile,   OBWhFile,
                0059      &      OBNslFile,  OBSslFile,  OBEslFile,  OBWslFile,
                0060      &      OBNsnFile,  OBSsnFile,  OBEsnFile,  OBWsnFile,
                0061      &      OBNuiceFile,OBSuiceFile,OBEuiceFile,OBWuiceFile,
                0062      &      OBNviceFile,OBSviceFile,OBEviceFile,OBWviceFile
                0063 
                0064 #ifdef ALLOW_SEAICE
                0065 C--   COMMON /OBC_SEAICE_NSEW/ Open boundary values of seaice fields
                0066 C     OBNa is the ice AREA value imposed at the Northern OB
                0067 C     OBNh is the ice HEFF value imposed at the Northern OB
                0068 C     OBNsl is the ice HSALT value imposed at the Northern OB
                0069 C     OBNsn is the ice HSNOW value imposed at the Northern OB
                0070 C     OBNuice is the uice value imposed at the Northern OB
                0071 C     OBNvice is the vice value imposed at the Northern OB
                0072 C     etc
                0073 
                0074 #ifdef ALLOW_OBCS_NORTH
                0075       COMMON /OBC_SEAICE_N/
                0076      &    OBNa , OBNh , OBNsl , OBNsn , OBNuice , OBNvice ,
                0077      &    OBNa0, OBNh0, OBNsl0, OBNsn0, OBNuice0, OBNvice0,
                0078      &    OBNa1, OBNh1, OBNsl1, OBNsn1, OBNuice1, OBNvice1
af61e5eb16 Mart*0079       _RL OBNa    (1-OLx:sNx+OLx,nSx,nSy)
                0080       _RL OBNh    (1-OLx:sNx+OLx,nSx,nSy)
                0081       _RL OBNsl   (1-OLx:sNx+OLx,nSx,nSy)
                0082       _RL OBNsn   (1-OLx:sNx+OLx,nSx,nSy)
                0083       _RL OBNuice (1-OLx:sNx+OLx,nSx,nSy)
                0084       _RL OBNvice (1-OLx:sNx+OLx,nSx,nSy)
08da45d586 Jean*0085 c#ifdef ALLOW_OBCS_PRESCRIBE
af61e5eb16 Mart*0086       _RL OBNa0   (1-OLx:sNx+OLx,nSx,nSy)
                0087       _RL OBNh0   (1-OLx:sNx+OLx,nSx,nSy)
                0088       _RL OBNsl0  (1-OLx:sNx+OLx,nSx,nSy)
                0089       _RL OBNsn0  (1-OLx:sNx+OLx,nSx,nSy)
                0090       _RL OBNuice0(1-OLx:sNx+OLx,nSx,nSy)
                0091       _RL OBNvice0(1-OLx:sNx+OLx,nSx,nSy)
                0092       _RL OBNa1   (1-OLx:sNx+OLx,nSx,nSy)
                0093       _RL OBNh1   (1-OLx:sNx+OLx,nSx,nSy)
                0094       _RL OBNsl1  (1-OLx:sNx+OLx,nSx,nSy)
                0095       _RL OBNsn1  (1-OLx:sNx+OLx,nSx,nSy)
                0096       _RL OBNuice1(1-OLx:sNx+OLx,nSx,nSy)
                0097       _RL OBNvice1(1-OLx:sNx+OLx,nSx,nSy)
08da45d586 Jean*0098 c#endif /* ALLOW_OBCS_PRESCRIBE */
                0099 #endif /* ALLOW_OBCS_NORTH */
                0100 
                0101 #ifdef ALLOW_OBCS_SOUTH
                0102       COMMON /OBC_SEAICE_S/
                0103      &    OBSa , OBSh , OBSsl , OBSsn , OBSuice , OBSvice ,
                0104      &    OBSa0, OBSh0, OBSsl0, OBSsn0, OBSuice0, OBSvice0,
                0105      &    OBSa1, OBSh1, OBSsl1, OBSsn1, OBSuice1, OBSvice1
af61e5eb16 Mart*0106       _RL OBSa    (1-OLx:sNx+OLx,nSx,nSy)
                0107       _RL OBSh    (1-OLx:sNx+OLx,nSx,nSy)
                0108       _RL OBSsl   (1-OLx:sNx+OLx,nSx,nSy)
                0109       _RL OBSsn   (1-OLx:sNx+OLx,nSx,nSy)
                0110       _RL OBSuice (1-OLx:sNx+OLx,nSx,nSy)
                0111       _RL OBSvice (1-OLx:sNx+OLx,nSx,nSy)
08da45d586 Jean*0112 c#ifdef ALLOW_OBCS_PRESCRIBE
af61e5eb16 Mart*0113       _RL OBSa0   (1-OLx:sNx+OLx,nSx,nSy)
                0114       _RL OBSh0   (1-OLx:sNx+OLx,nSx,nSy)
                0115       _RL OBSsl0  (1-OLx:sNx+OLx,nSx,nSy)
                0116       _RL OBSsn0  (1-OLx:sNx+OLx,nSx,nSy)
                0117       _RL OBSuice0(1-OLx:sNx+OLx,nSx,nSy)
                0118       _RL OBSvice0(1-OLx:sNx+OLx,nSx,nSy)
                0119       _RL OBSa1   (1-OLx:sNx+OLx,nSx,nSy)
                0120       _RL OBSh1   (1-OLx:sNx+OLx,nSx,nSy)
                0121       _RL OBSsl1  (1-OLx:sNx+OLx,nSx,nSy)
                0122       _RL OBSsn1  (1-OLx:sNx+OLx,nSx,nSy)
                0123       _RL OBSuice1(1-OLx:sNx+OLx,nSx,nSy)
                0124       _RL OBSvice1(1-OLx:sNx+OLx,nSx,nSy)
08da45d586 Jean*0125 c#endif /* ALLOW_OBCS_PRESCRIBE */
                0126 #endif /* ALLOW_OBCS_SOUTH */
                0127 
                0128 #ifdef ALLOW_OBCS_EAST
                0129       COMMON /OBC_SEAICE_E/
                0130      &    OBEa , OBEh , OBEsl , OBEsn , OBEuice , OBEvice ,
                0131      &    OBEa0, OBEh0, OBEsl0, OBEsn0, OBEuice0, OBEvice0,
                0132      &    OBEa1, OBEh1, OBEsl1, OBEsn1, OBEuice1, OBEvice1
af61e5eb16 Mart*0133       _RL OBEa    (1-OLy:sNy+OLy,nSx,nSy)
                0134       _RL OBEh    (1-OLy:sNy+OLy,nSx,nSy)
                0135       _RL OBEsl   (1-OLy:sNy+OLy,nSx,nSy)
                0136       _RL OBEsn   (1-OLy:sNy+OLy,nSx,nSy)
                0137       _RL OBEuice (1-OLy:sNy+OLy,nSx,nSy)
                0138       _RL OBEvice (1-OLy:sNy+OLy,nSx,nSy)
08da45d586 Jean*0139 c#ifdef ALLOW_OBCS_PRESCRIBE
af61e5eb16 Mart*0140       _RL OBEa0   (1-OLy:sNy+OLy,nSx,nSy)
                0141       _RL OBEh0   (1-OLy:sNy+OLy,nSx,nSy)
                0142       _RL OBEsl0  (1-OLy:sNy+OLy,nSx,nSy)
                0143       _RL OBEsn0  (1-OLy:sNy+OLy,nSx,nSy)
                0144       _RL OBEuice0(1-OLy:sNy+OLy,nSx,nSy)
                0145       _RL OBEvice0(1-OLy:sNy+OLy,nSx,nSy)
                0146       _RL OBEa1   (1-OLy:sNy+OLy,nSx,nSy)
                0147       _RL OBEh1   (1-OLy:sNy+OLy,nSx,nSy)
                0148       _RL OBEsl1  (1-OLy:sNy+OLy,nSx,nSy)
                0149       _RL OBEsn1  (1-OLy:sNy+OLy,nSx,nSy)
                0150       _RL OBEuice1(1-OLy:sNy+OLy,nSx,nSy)
                0151       _RL OBEvice1(1-OLy:sNy+OLy,nSx,nSy)
08da45d586 Jean*0152 c#endif /* ALLOW_OBCS_PRESCRIBE */
                0153 #endif /* ALLOW_OBCS_EAST */
                0154 
                0155 #ifdef ALLOW_OBCS_WEST
                0156       COMMON /OBC_SEAICE_W/
                0157      &    OBWa , OBWh , OBWsl , OBWsn , OBWuice , OBWvice ,
                0158      &    OBWa0, OBWh0, OBWsl0, OBWsn0, OBWuice0, OBWvice0,
                0159      &    OBWa1, OBWh1, OBWsl1, OBWsn1, OBWuice1, OBWvice1
af61e5eb16 Mart*0160       _RL OBWa    (1-OLy:sNy+OLy,nSx,nSy)
                0161       _RL OBWh    (1-OLy:sNy+OLy,nSx,nSy)
                0162       _RL OBWsl   (1-OLy:sNy+OLy,nSx,nSy)
                0163       _RL OBWsn   (1-OLy:sNy+OLy,nSx,nSy)
                0164       _RL OBWuice (1-OLy:sNy+OLy,nSx,nSy)
                0165       _RL OBWvice (1-OLy:sNy+OLy,nSx,nSy)
08da45d586 Jean*0166 c#ifdef ALLOW_OBCS_PRESCRIBE
af61e5eb16 Mart*0167       _RL OBWa0   (1-OLy:sNy+OLy,nSx,nSy)
                0168       _RL OBWh0   (1-OLy:sNy+OLy,nSx,nSy)
                0169       _RL OBWsl0  (1-OLy:sNy+OLy,nSx,nSy)
                0170       _RL OBWsn0  (1-OLy:sNy+OLy,nSx,nSy)
                0171       _RL OBWuice0(1-OLy:sNy+OLy,nSx,nSy)
                0172       _RL OBWvice0(1-OLy:sNy+OLy,nSx,nSy)
                0173       _RL OBWa1   (1-OLy:sNy+OLy,nSx,nSy)
                0174       _RL OBWh1   (1-OLy:sNy+OLy,nSx,nSy)
                0175       _RL OBWsl1  (1-OLy:sNy+OLy,nSx,nSy)
                0176       _RL OBWsn1  (1-OLy:sNy+OLy,nSx,nSy)
                0177       _RL OBWuice1(1-OLy:sNy+OLy,nSx,nSy)
                0178       _RL OBWvice1(1-OLy:sNy+OLy,nSx,nSy)
08da45d586 Jean*0179 c#endif /* ALLOW_OBCS_PRESCRIBE */
                0180 #endif /* ALLOW_OBCS_WEST */
                0181 
                0182 #endif /* ALLOW_SEAICE */
                0183 #endif /* ALLOW_OBCS */