Back to home page

MITgcm

 
 

    


File indexing completed on 2021-08-12 05:11:36 UTC

view on githubraw file Latest commit 0320e252 on 2021-08-11 16:08:52 UTC
6d54cf9ca1 Ed H*0001 #include "EXF_OPTIONS.h"
7f861c1808 Patr*0002 
473f3aa7d4 Jean*0003 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7f861c1808 Patr*0004 
473f3aa7d4 Jean*0005 CBOP
                0006 C     !ROUTINE: EXF_INIT_VARIA
                0007 C     !INTERFACE:
                0008       SUBROUTINE EXF_INIT_VARIA( myThid )
7f861c1808 Patr*0009 
473f3aa7d4 Jean*0010 C !DESCRIPTION: \bv
                0011 C  *=================================================================*
                0012 C  | SUBROUTINE EXF_INIT_VARIA
                0013 C  | o This routine initialises the forcing
                0014 C  *=================================================================*
                0015 C  |  started: Ralf.Giering@FastOpt.de 25-Mai-20000
                0016 C  |  mods for pkg/seaice: menemenlis@jpl.nasa.gov 20-Dec-2002
                0017 C  *=================================================================*
                0018 C \ev
7f861c1808 Patr*0019 
473f3aa7d4 Jean*0020 C !USES:
                0021       IMPLICIT NONE
                0022 C     == global variables ==
7f861c1808 Patr*0023 #include "EEPARAMS.h"
                0024 #include "SIZE.h"
5d2261ac89 Dimi*0025 #include "GRID.h"
082e18c36c Jean*0026 #include "EXF_PARAM.h"
30fcb891cf Jean*0027 #include "EXF_INTERP_SIZE.h"
                0028 #include "EXF_INTERP_PARAM.h"
082e18c36c Jean*0029 #include "EXF_FIELDS.h"
0320e25227 Mart*0030 #include "PARAMS.h"
c5308dc7f3 Patr*0031 #ifdef ALLOW_BULK_OFFLINE
                0032 # include "DYNVARS.h"
                0033 #endif
7f861c1808 Patr*0034 
473f3aa7d4 Jean*0035 C !INPUT/OUTPUT PARAMETERS:
                0036 C     myThid         :: My Thread Id number
24da7525ba Jean*0037       INTEGER myThid
7f861c1808 Patr*0038 
473f3aa7d4 Jean*0039 C !LOCAL VARIABLES:
0320e25227 Mart*0040       INTEGER i,j,ks,bi,bj
473f3aa7d4 Jean*0041 CEOP
7f861c1808 Patr*0042 
0320e25227 Mart*0043       ks = 1
                0044       IF ( usingPCoords ) ks = Nr
                0045 
9e98677022 Jean*0046 C--   Initialise to zero intermediate fields (in common block)
                0047       DO bj = myByLo(myThid), myByHi(myThid)
                0048        DO bi = myBxLo(myThid), myBxHi(myThid)
24da7525ba Jean*0049         DO j=1-OLy,sNy+OLy
                0050          DO i=1-OLx,sNx+OLx
9e98677022 Jean*0051           wStress(i,j,bi,bj) = 0.
                0052           cw(i,j,bi,bj) = 0.
                0053           sw(i,j,bi,bj) = 0.
                0054           sh(i,j,bi,bj) = 0.
                0055 #ifdef ALLOW_ATM_TEMP
                0056           hs(i,j,bi,bj) = 0.
                0057           hl(i,j,bi,bj) = 0.
                0058 #endif
                0059          ENDDO
                0060         ENDDO
                0061        ENDDO
                0062       ENDDO
                0063 
358649780a Gael*0064       IF ( .NOT.useAtmWind ) THEN
ebb4db1a0a Jean*0065 C- Note: In case of constant-in-time wind-stress ( u,v stressperiod = 0 &
                0066 C      u,v stressfile.NE.' ' ) interpolated from 2-component wind-stress field
                0067 C      with ( usingCurvilinearGrid .OR. rotateGrid .OR. uvInterp_stress )
                0068 C      this initial setting of ustress & vstress (+ ustress0,1 & vstress0,1)
                0069 C      will be over-written at first time-step when calling EXF_SET_UV.
1e461494b9 Jean*0070        CALL EXF_INIT_FLD(
                0071      I     'ustress', ustressfile, ustressmask,
                0072      I     ustressperiod, exf_inscal_ustress, ustressconst,
                0073      O     ustress, ustress0, ustress1,
5d2261ac89 Dimi*0074 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0075      I     ustress_lon0, ustress_lon_inc,
                0076      I     ustress_lat0, ustress_lat_inc,
                0077      I     ustress_nlon, ustress_nlat, xC, yC, ustress_interpMethod,
5d2261ac89 Dimi*0078 #endif
1e461494b9 Jean*0079      I     myThid )
5d2261ac89 Dimi*0080 
1e461494b9 Jean*0081        CALL EXF_INIT_FLD(
                0082      I     'vstress', vstressfile, vstressmask,
                0083      I     vstressperiod, exf_inscal_vstress, vstressconst,
                0084      O     vstress, vstress0, vstress1,
5d2261ac89 Dimi*0085 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0086      I     vstress_lon0, vstress_lon_inc,
                0087      I     vstress_lat0, vstress_lat_inc,
                0088      I     vstress_nlon, vstress_nlat, xC, yC, vstress_interpMethod,
5d2261ac89 Dimi*0089 #endif
1e461494b9 Jean*0090      I     myThid )
7f861c1808 Patr*0091 
358649780a Gael*0092       ELSE
ebb4db1a0a Jean*0093        DO bj = myByLo(myThid), myByHi(myThid)
                0094         DO bi = myBxLo(myThid), myBxHi(myThid)
                0095          DO j=1-OLy,sNy+OLy
                0096           DO i=1-OLx,sNx+OLx
                0097            uwind(i,j,bi,bj) = 0.
                0098            vwind(i,j,bi,bj) = 0.
                0099           ENDDO
358649780a Gael*0100          ENDDO
                0101         ENDDO
                0102        ENDDO
                0103       ENDIF
                0104 
                0105       IF ( useAtmWind ) THEN
ebb4db1a0a Jean*0106 C- Note: In case of constant-in-time winds ( u,v windperiod = 0 &
                0107 C      u,v windfile.NE.' ' ) interpolated from 2-component wind field
                0108 C      with ( usingCurvilinearGrid .OR. rotateGrid .OR. uvInterp_wind )
                0109 C      this initial setting of uwind & vwind (+ uwind0,1 & vwind0,1)
                0110 C      will be over-written at first time-step when calling EXF_SET_UV.
1e461494b9 Jean*0111        CALL EXF_INIT_FLD(
                0112      I     'uwind', uwindfile, uwindmask,
                0113      I     uwindperiod, exf_inscal_uwind, uwindconst,
                0114      O     uwind, uwind0, uwind1,
5d2261ac89 Dimi*0115 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0116      I     uwind_lon0, uwind_lon_inc,
                0117      I     uwind_lat0, uwind_lat_inc,
                0118      I     uwind_nlon, uwind_nlat, xC, yC, uwind_interpMethod,
5d2261ac89 Dimi*0119 #endif
1e461494b9 Jean*0120      I     myThid )
5d2261ac89 Dimi*0121 
1e461494b9 Jean*0122        CALL EXF_INIT_FLD(
                0123      I     'vwind', vwindfile, vwindmask,
                0124      I     vwindperiod, exf_inscal_vwind, vwindconst,
                0125      O     vwind, vwind0, vwind1,
5d2261ac89 Dimi*0126 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0127      I     vwind_lon0, vwind_lon_inc,
                0128      I     vwind_lat0, vwind_lat_inc,
                0129      I     vwind_nlon, vwind_nlat, xC, yC, vwind_interpMethod,
6060ec2938 Dimi*0130 #endif
1e461494b9 Jean*0131      I     myThid )
5d2261ac89 Dimi*0132 
358649780a Gael*0133       ELSE
ebb4db1a0a Jean*0134        DO bj = myByLo(myThid), myByHi(myThid)
                0135         DO bi = myBxLo(myThid), myBxHi(myThid)
                0136          DO j=1-OLy,sNy+OLy
                0137           DO i=1-OLx,sNx+OLx
                0138            uwind(i,j,bi,bj) = 0.
                0139            vwind(i,j,bi,bj) = 0.
                0140           ENDDO
358649780a Gael*0141          ENDDO
                0142         ENDDO
                0143        ENDDO
                0144       ENDIF
5d2261ac89 Dimi*0145 
1e461494b9 Jean*0146       CALL EXF_INIT_FLD(
                0147      I     'wspeed', wspeedfile, wspeedmask,
                0148      I     wspeedperiod, exf_inscal_wspeed, wspeedconst,
                0149      O     wspeed, wspeed0, wspeed1,
5d2261ac89 Dimi*0150 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0151      I     wspeed_lon0, wspeed_lon_inc,
                0152      I     wspeed_lat0, wspeed_lat_inc,
                0153      I     wspeed_nlon, wspeed_nlat, xC, yC, wspeed_interpMethod,
5d2261ac89 Dimi*0154 #endif
1e461494b9 Jean*0155      I     myThid )
3752238fd8 Patr*0156 
1e461494b9 Jean*0157       CALL EXF_INIT_FLD(
                0158      I     'hflux', hfluxfile, hfluxmask,
                0159      I     hfluxperiod, exf_inscal_hflux, hfluxconst,
                0160      O     hflux, hflux0, hflux1,
5d2261ac89 Dimi*0161 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0162      I     hflux_lon0, hflux_lon_inc,
                0163      I     hflux_lat0, hflux_lat_inc,
                0164      I     hflux_nlon, hflux_nlat, xC, yC, hflux_interpMethod,
5d2261ac89 Dimi*0165 #endif
1e461494b9 Jean*0166      I     myThid )
5d2261ac89 Dimi*0167 
1e461494b9 Jean*0168       CALL EXF_INIT_FLD(
                0169      I     'sflux', sfluxfile, sfluxmask,
                0170      I     sfluxperiod, exf_inscal_sflux, sfluxconst,
                0171      O     sflux, sflux0, sflux1,
5d2261ac89 Dimi*0172 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0173      I     sflux_lon0, sflux_lon_inc,
                0174      I     sflux_lat0, sflux_lat_inc,
                0175      I     sflux_nlon, sflux_nlat, xC, yC, sflux_interpMethod,
5d2261ac89 Dimi*0176 #endif
1e461494b9 Jean*0177      I     myThid )
7f861c1808 Patr*0178 
                0179 #ifdef ALLOW_ATM_TEMP
5d2261ac89 Dimi*0180 
1e461494b9 Jean*0181       CALL EXF_INIT_FLD(
                0182      I     'atemp', atempfile, atempmask,
                0183      I     atempperiod, exf_inscal_atemp, atempconst,
                0184      O     atemp, atemp0, atemp1,
5d2261ac89 Dimi*0185 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0186      I     atemp_lon0, atemp_lon_inc,
                0187      I     atemp_lat0, atemp_lat_inc,
                0188      I     atemp_nlon, atemp_nlat, xC, yC, atemp_interpMethod,
5d2261ac89 Dimi*0189 #endif
1e461494b9 Jean*0190      I     myThid )
5d2261ac89 Dimi*0191 
1e461494b9 Jean*0192       CALL EXF_INIT_FLD(
                0193      I     'aqh', aqhfile, aqhmask,
                0194      I     aqhperiod, exf_inscal_aqh, aqhconst,
                0195      O     aqh, aqh0, aqh1,
5d2261ac89 Dimi*0196 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0197      I     aqh_lon0, aqh_lon_inc,
                0198      I     aqh_lat0, aqh_lat_inc,
                0199      I     aqh_nlon, aqh_nlat, xC, yC, aqh_interpMethod,
5d2261ac89 Dimi*0200 #endif
1e461494b9 Jean*0201      I     myThid )
5d2261ac89 Dimi*0202 
c994dbe735 Jean*0203 # ifdef ALLOW_READ_TURBFLUXES
                0204 
1e461494b9 Jean*0205       CALL EXF_INIT_FLD(
                0206      I     'hs', hs_file, hs_mask,
                0207      I     hs_period, exf_inscal_hs, hs_const,
                0208      O     hs, hs0, hs1,
c994dbe735 Jean*0209 #  ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0210      I     hs_lon0, hs_lon_inc,
                0211      I     hs_lat0, hs_lat_inc,
                0212      I     hs_nlon, hs_nlat, xC, yC, hs_interpMethod,
c994dbe735 Jean*0213 #  endif
1e461494b9 Jean*0214      I     myThid )
c994dbe735 Jean*0215 
1e461494b9 Jean*0216       CALL EXF_INIT_FLD(
                0217      I     'hl', hl_file, hl_mask,
                0218      I     hl_period, exf_inscal_hl, hl_const,
                0219      O     hl, hl0, hl1,
c994dbe735 Jean*0220 #  ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0221      I     hl_lon0, hl_lon_inc,
                0222      I     hl_lat0, hl_lat_inc,
                0223      I     hl_nlon, hl_nlat, xC, yC, hl_interpMethod,
c994dbe735 Jean*0224 #  endif
1e461494b9 Jean*0225      I     myThid )
c994dbe735 Jean*0226 
                0227 # endif /* ALLOW_READ_TURBFLUXES */
                0228 
1e461494b9 Jean*0229       CALL EXF_INIT_FLD(
                0230      I     'lwflux', lwfluxfile, lwfluxmask,
                0231      I     lwfluxperiod, exf_inscal_lwflux, lwfluxconst,
                0232      O     lwflux, lwflux0, lwflux1,
5d2261ac89 Dimi*0233 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0234      I     lwflux_lon0, lwflux_lon_inc,
                0235      I     lwflux_lat0, lwflux_lat_inc,
                0236      I     lwflux_nlon, lwflux_nlat, xC, yC, lwflux_interpMethod,
5d2261ac89 Dimi*0237 #endif
1e461494b9 Jean*0238      I     myThid )
5d2261ac89 Dimi*0239 
26f6b8243e Jean*0240 #ifdef EXF_READ_EVAP
1e461494b9 Jean*0241       CALL EXF_INIT_FLD(
                0242      I     'evap', evapfile, evapmask,
                0243      I     evapperiod, exf_inscal_evap, evapconst,
                0244      O     evap, evap0, evap1,
26f6b8243e Jean*0245 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0246      I     evap_lon0, evap_lon_inc,
                0247      I     evap_lat0, evap_lat_inc,
                0248      I     evap_nlon, evap_nlat, xC, yC, evap_interpMethod,
26f6b8243e Jean*0249 #endif
1e461494b9 Jean*0250      I     myThid )
26f6b8243e Jean*0251 #endif /* EXF_READ_EVAP */
                0252 
1e461494b9 Jean*0253       CALL EXF_INIT_FLD(
                0254      I     'precip', precipfile, precipmask,
                0255      I     precipperiod, exf_inscal_precip, precipconst,
                0256      O     precip, precip0, precip1,
5d2261ac89 Dimi*0257 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0258      I     precip_lon0, precip_lon_inc,
                0259      I     precip_lat0, precip_lat_inc,
                0260      I     precip_nlon, precip_nlat, xC, yC, precip_interpMethod,
5d2261ac89 Dimi*0261 #endif
1e461494b9 Jean*0262      I     myThid )
5d2261ac89 Dimi*0263 
1e461494b9 Jean*0264       CALL EXF_INIT_FLD(
                0265      I     'snowprecip', snowprecipfile, snowprecipmask,
                0266      I     snowprecipperiod, exf_inscal_snowprecip, snowprecipconst,
                0267      O     snowprecip, snowprecip0, snowprecip1,
5d2261ac89 Dimi*0268 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0269      I     snowprecip_lon0, snowprecip_lon_inc,
                0270      I     snowprecip_lat0, snowprecip_lat_inc,
                0271      I     snowprecip_nlon, snowprecip_nlat, xC, yC,
                0272      I     snowprecip_interpMethod,
6060ec2938 Dimi*0273 #endif
1e461494b9 Jean*0274      I     myThid )
5d2261ac89 Dimi*0275 
                0276 #endif /* ALLOW_ATM_TEMP */
7f861c1808 Patr*0277 
6060ec2938 Dimi*0278 #if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING)
1e461494b9 Jean*0279       CALL EXF_INIT_FLD(
                0280      I     'swflux', swfluxfile, swfluxmask,
                0281      I     swfluxperiod,  exf_inscal_swflux, swfluxconst,
                0282      O     swflux, swflux0, swflux1,
5d2261ac89 Dimi*0283 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0284      I     swflux_lon0, swflux_lon_inc,
                0285      I     swflux_lat0, swflux_lat_inc,
                0286      I     swflux_nlon, swflux_nlat, xC, yC, swflux_interpMethod,
6060ec2938 Dimi*0287 #endif
1e461494b9 Jean*0288      I     myThid )
5d2261ac89 Dimi*0289 #endif /* defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING) */
7f861c1808 Patr*0290 
6060ec2938 Dimi*0291 #ifdef ALLOW_DOWNWARD_RADIATION
5d2261ac89 Dimi*0292 
1e461494b9 Jean*0293       CALL EXF_INIT_FLD(
                0294      I     'swdown', swdownfile, swdownmask,
                0295      I     swdownperiod, exf_inscal_swdown, swdownconst,
                0296      O     swdown, swdown0, swdown1,
5d2261ac89 Dimi*0297 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0298      I     swdown_lon0, swdown_lon_inc,
                0299      I     swdown_lat0, swdown_lat_inc,
                0300      I     swdown_nlon, swdown_nlat, xC, yC, swdown_interpMethod,
5d2261ac89 Dimi*0301 #endif
1e461494b9 Jean*0302      I     myThid )
5d2261ac89 Dimi*0303 
1e461494b9 Jean*0304       CALL EXF_INIT_FLD(
                0305      I     'lwdown', lwdownfile, lwdownmask,
                0306      I     lwdownperiod, exf_inscal_lwdown, lwdownconst,
                0307      O     lwdown, lwdown0, lwdown1,
5d2261ac89 Dimi*0308 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0309      I     lwdown_lon0, lwdown_lon_inc,
                0310      I     lwdown_lat0, lwdown_lat_inc,
                0311      I     lwdown_nlon, lwdown_nlat, xC, yC, lwdown_interpMethod,
6060ec2938 Dimi*0312 #endif
1e461494b9 Jean*0313      I     myThid )
5d2261ac89 Dimi*0314 
                0315 #endif /* ALLOW_DOWNWARD_RADIATION */
7f861c1808 Patr*0316 
6060ec2938 Dimi*0317 #ifdef ATMOSPHERIC_LOADING
1e461494b9 Jean*0318       CALL EXF_INIT_FLD(
                0319      I     'apressure', apressurefile, apressuremask,
                0320      I     apressureperiod, exf_inscal_apressure, apressureconst,
                0321      O     apressure, apressure0, apressure1,
5d2261ac89 Dimi*0322 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0323      I     apressure_lon0, apressure_lon_inc,
                0324      I     apressure_lat0, apressure_lat_inc,
                0325      I     apressure_nlon, apressure_nlat, xC, yC,
                0326      I     apressure_interpMethod,
bdec91d862 Patr*0327 #endif
1e461494b9 Jean*0328      I     myThid )
5d2261ac89 Dimi*0329 #endif /* ATMOSPHERIC_LOADING */
bdec91d862 Patr*0330 
497d85062c Jean*0331 #ifdef EXF_ALLOW_TIDES
                0332       CALL EXF_INIT_FLD(
                0333      I     'tidePot', tidePotFile, tidePotMask,
                0334      I     tidePotPeriod, exf_inscal_tidePot, tidePotconst,
                0335      O     tidePot, tidePot0, tidePot1,
                0336 #ifdef USE_EXF_INTERPOLATION
                0337      I     tidePot_lon0, tidePot_lon_inc,
                0338      I     tidePot_lat0, tidePot_lat_inc,
                0339      I     tidePot_nlon, tidePot_nlat, xC, yC, tidePot_interpMethod,
                0340 #endif
                0341      I     myThid )
                0342 #endif /* EXF_ALLOW_TIDES */
                0343 
24da7525ba Jean*0344 #ifdef EXF_SEAICE_FRACTION
1e461494b9 Jean*0345       CALL EXF_INIT_FLD(
                0346      I     'areamask', areamaskfile, areamaskmask,
                0347      I     areamaskperiod, exf_inscal_areamask, areamaskconst,
                0348      O     areamask, areamask0, areamask1,
8f277f2728 Gael*0349 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0350      I     areamask_lon0, areamask_lon_inc,
                0351      I     areamask_lat0, areamask_lat_inc,
                0352      I     areamask_nlon, areamask_nlat, xC, yC, areamask_interpMethod,
8f277f2728 Gael*0353 #endif
1e461494b9 Jean*0354      I     myThid )
24da7525ba Jean*0355 #endif /* EXF_SEAICE_FRACTION */
8f277f2728 Gael*0356 
a0e99e946e Jean*0357 #ifdef ALLOW_RUNOFF
1e461494b9 Jean*0358       CALL EXF_INIT_FLD(
                0359      I     'runoff', runofffile, runoffmask,
                0360      I     runoffperiod, exf_inscal_runoff, runoffconst,
                0361      O     runoff, runoff0, runoff1,
e603dbf008 Dimi*0362 # ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0363      I     runoff_lon0, runoff_lon_inc,
                0364      I     runoff_lat0, runoff_lat_inc,
                0365      I     runoff_nlon, runoff_nlat, xC, yC, runoff_interpMethod,
e603dbf008 Dimi*0366 # endif
1e461494b9 Jean*0367      I     myThid )
e603dbf008 Dimi*0368 # ifdef ALLOW_RUNOFTEMP
1e461494b9 Jean*0369       CALL EXF_INIT_FLD(
                0370      I     'runoftemp', runoftempfile, runoffmask,
                0371      I     runoffperiod, exf_inscal_runoftemp, runoftempconst,
                0372      O     runoftemp, runoftemp0, runoftemp1,
e603dbf008 Dimi*0373 #  ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0374      I     runoff_lon0, runoff_lon_inc,
                0375      I     runoff_lat0, runoff_lat_inc,
                0376      I     runoff_nlon, runoff_nlat, xC, yC, runoff_interpMethod,
e603dbf008 Dimi*0377 #  endif
1e461494b9 Jean*0378      I     myThid )
e603dbf008 Dimi*0379 # endif /* ALLOW_RUNOFTEMP */
a0e99e946e Jean*0380 #endif /* ALLOW_RUNOFF */
7f861c1808 Patr*0381 
a66aad0124 Gael*0382 #ifdef ALLOW_SALTFLX
1e461494b9 Jean*0383       CALL EXF_INIT_FLD(
                0384      I     'saltflx', saltflxfile, saltflxmask,
                0385      I     saltflxperiod, exf_inscal_saltflx, saltflxconst,
                0386      O     saltflx, saltflx0, saltflx1,
a66aad0124 Gael*0387 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0388      I     saltflx_lon0, saltflx_lon_inc,
                0389      I     saltflx_lat0, saltflx_lat_inc,
                0390      I     saltflx_nlon, saltflx_nlat, xC, yC, saltflx_interpMethod,
a66aad0124 Gael*0391 #endif
1e461494b9 Jean*0392      I     myThid )
a66aad0124 Gael*0393 #endif /* ALLOW_SALTFLX */
                0394 
ad5cdab327 Patr*0395 #ifdef ALLOW_CLIMSST_RELAXATION
1e461494b9 Jean*0396       CALL EXF_INIT_FLD(
                0397      I     'climsst', climsstfile, climsstmask,
                0398      I     climsstperiod, exf_inscal_climsst, climsstconst,
                0399      O     climsst, climsst0, climsst1,
ad5cdab327 Patr*0400 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0401      I     climsst_lon0, climsst_lon_inc,
                0402      I     climsst_lat0, climsst_lat_inc,
                0403      I     climsst_nlon, climsst_nlat, xC, yC, climsst_interpMethod,
ad5cdab327 Patr*0404 #endif
1e461494b9 Jean*0405      I     myThid )
ad5cdab327 Patr*0406 #endif
                0407 
                0408 #ifdef ALLOW_CLIMSSS_RELAXATION
1e461494b9 Jean*0409       CALL EXF_INIT_FLD(
                0410      I     'climsss', climsssfile, climsssmask,
                0411      I     climsssperiod, exf_inscal_climsss, climsssconst,
                0412      O     climsss, climsss0, climsss1,
ad5cdab327 Patr*0413 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0414      I     climsss_lon0, climsss_lon_inc,
                0415      I     climsss_lat0, climsss_lat_inc,
                0416      I     climsss_nlon, climsss_nlat, xC, yC, climsss_interpMethod,
ad5cdab327 Patr*0417 #endif
1e461494b9 Jean*0418      I     myThid )
ad5cdab327 Patr*0419 #endif
                0420 
de9be302a8 Patr*0421 #ifdef ALLOW_CLIMSTRESS_RELAXATION
1e461494b9 Jean*0422       CALL EXF_INIT_FLD(
                0423      I     'climustr', climustrfile, climustrmask,
                0424      I     climustrperiod, exf_inscal_climustr, climustrconst,
                0425      O     climustr, climustr0, climustr1,
de9be302a8 Patr*0426 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0427      I     climustr_lon0, climustr_lon_inc,
                0428      I     climustr_lat0, climustr_lat_inc,
                0429      I     climustr_nlon, climustr_nlat, xC, yC, climustr_interpMethod,
de9be302a8 Patr*0430 #endif
1e461494b9 Jean*0431      I     myThid )
4aa4270510 Jean*0432 
1e461494b9 Jean*0433       CALL EXF_INIT_FLD(
                0434      I     'climvstr', climvstrfile, climvstrmask,
                0435      I     climvstrperiod, exf_inscal_climvstr, climvstrconst,
                0436      O     climvstr, climvstr0, climvstr1,
de9be302a8 Patr*0437 #ifdef USE_EXF_INTERPOLATION
1e461494b9 Jean*0438      I     climvstr_lon0, climvstr_lon_inc,
                0439      I     climvstr_lat0, climvstr_lat_inc,
                0440      I     climvstr_nlon, climvstr_nlat, xC, yC, climvstr_interpMethod,
de9be302a8 Patr*0441 #endif
1e461494b9 Jean*0442      I     myThid )
de9be302a8 Patr*0443 #endif /* CLIMSTRESS_RELAXATION */
7f861c1808 Patr*0444 
c5308dc7f3 Patr*0445 #ifdef ALLOW_BULK_OFFLINE
473f3aa7d4 Jean*0446 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
c5308dc7f3 Patr*0447 
                0448 # ifdef ALLOW_CLIMSST_RELAXATION
24da7525ba Jean*0449       _EXCH_XY_RL(climsst, myThid)
c5308dc7f3 Patr*0450 # endif
                0451 # ifdef ALLOW_CLIMSSS_RELAXATION
24da7525ba Jean*0452       _EXCH_XY_RL(climsss, myThid)
c5308dc7f3 Patr*0453 # endif
                0454 # ifdef ALLOW_CLIMSTRESS_RELAXATION
                0455       CALL EXCH_UV_XY_RL( climustr, climvstr, .TRUE., myThid )
                0456 # endif
                0457       DO bj=myByLo(myThid),myByHi(myThid)
                0458        DO bi=myBxLo(myThid),myBxHi(myThid)
edf9251fd4 Jean*0459          DO j=1-OLy,sNy+OLy
                0460           DO i=1-OLx,sNx+OLx
c5308dc7f3 Patr*0461 # ifdef ALLOW_CLIMSST_RELAXATION
c994dbe735 Jean*0462            IF ( climsstfile .NE. ' ' .AND.
079c1ec8c6 Jean*0463      &          climsstperiod .EQ. 0. )
0320e25227 Mart*0464      &          theta(i,j,ks,bi,bj) = climsst(i,j,bi,bj)
c5308dc7f3 Patr*0465 # endif
                0466 # ifdef ALLOW_CLIMSSS_RELAXATION
c994dbe735 Jean*0467            IF ( climsssfile .NE. ' ' .AND.
079c1ec8c6 Jean*0468      &          climsssperiod .EQ. 0. )
0320e25227 Mart*0469      &          salt(i,j,ks,bi,bj) = climsss(i,j,bi,bj)
c5308dc7f3 Patr*0470 # endif
                0471 # ifdef ALLOW_CLIMSTRESS_RELAXATION
c994dbe735 Jean*0472            IF ( climustrfile .NE. ' ' .AND.
079c1ec8c6 Jean*0473      &          climustrperiod .EQ. 0. )
0320e25227 Mart*0474      &          uVel(i,j,ks,bi,bj) = climustr(i,j,bi,bj)
c994dbe735 Jean*0475            IF ( climvstrfile .NE. ' ' .AND.
079c1ec8c6 Jean*0476      &          climvstrperiod .EQ. 0. )
0320e25227 Mart*0477      &          vVel(i,j,ks,bi,bj) = climvstr(i,j,bi,bj)
c5308dc7f3 Patr*0478 # endif
0320e25227 Mart*0479            IF ( maskC(i,j,ks,bi,bj) .NE. 0. .AND.
                0480      &             theta(i,j,ks,bi,bj) .EQ. 0. ) THEN
                0481                 PRINT *, 'ph-warn-exf-init ', i, j, theta(i,j,ks,bi,bj)
c5308dc7f3 Patr*0482 cph                STOP 'in exf_init'
0320e25227 Mart*0483            ENDIF
c5308dc7f3 Patr*0484           ENDDO
                0485          ENDDO
                0486        ENDDO
                0487       ENDDO
                0488 
473f3aa7d4 Jean*0489 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
c5308dc7f3 Patr*0490 #endif /* ALLOW_BULK_OFFLINE */
                0491 
9e98677022 Jean*0492       RETURN
                0493       END