Back to home page

MITgcm

 
 

    


File indexing completed on 2022-06-17 05:09:18 UTC

view on githubraw file Latest commit cc60455f on 2022-06-16 14:55:16 UTC
6d54cf9ca1 Ed H*0001 #include "EXF_OPTIONS.h"
7f861c1808 Patr*0002 
bf658500ad Jean*0003 C--  File exf_summary.F: Routines to print out EXF settings
                0004 C--   Contents
                0005 C--   o EXF_SUMMARY
c1a736f29e Jean*0006 C--   o EXF_FLD_SUMMARY
bf658500ad Jean*0007 C--   o EXF_PRINT_INTERP
                0008 
                0009 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
ae89e2cad6 Jean*0010 CBOP
                0011 C     !ROUTINE: EXF_SUMMARY( myThid )
                0012 C     !INTERFACE:
7f861c1808 Patr*0013 
d8ff7f7b41 Jean*0014       SUBROUTINE EXF_SUMMARY( myThid )
7f861c1808 Patr*0015 
ae89e2cad6 Jean*0016 C     !DESCRIPTION: \bv
                0017 C     ==================================================================
                0018 C     SUBROUTINE exf_summary
                0019 C     ==================================================================
                0020 C
                0021 C     o List all the settings of the external forcing.
                0022 C
                0023 C     started: Christian Eckert eckert@mit.edu 11-Jan-1999
                0024 C
                0025 C     changed: Christian Eckert eckert@mit.edu 12-Feb-2000
                0026 C              - changed routine names (package prefix: exf_)
                0027 C
                0028 C     changed: Patrick Heimbach heimbach@mit.edu 04-May-2000
                0029 C              - changed the handling of precip and sflux with respect
                0030 C                to CPP options ALLOW_BULKFORMULAE and ALLOW_ATM_TEMP
                0031 C
                0032 C     changed: Dimitris Menemenlis menemenlis@jpl.nasa.gov 20-Dec-2002
                0033 C              - modifications for using pkg/exf with pkg/seaice
                0034 C
                0035 C     ==================================================================
                0036 C     SUBROUTINE exf_summary
                0037 C     ==================================================================
                0038 C     \ev
7f861c1808 Patr*0039 
ae89e2cad6 Jean*0040 C     !USES:
                0041       IMPLICIT NONE
                0042 
                0043 C     === Global variables ===
7f861c1808 Patr*0044 #include "EEPARAMS.h"
                0045 #include "SIZE.h"
082e18c36c Jean*0046 #include "EXF_PARAM.h"
30fcb891cf Jean*0047 #include "EXF_CONSTANTS.h"
                0048 #include "EXF_INTERP_SIZE.h"
                0049 #include "EXF_INTERP_PARAM.h"
7f861c1808 Patr*0050 
ae89e2cad6 Jean*0051 C     !INPUT/OUTPUT PARAMETERS:
                0052 C     myThid  :: My thread Id number
                0053       INTEGER myThid
7f861c1808 Patr*0054 
ae89e2cad6 Jean*0055 C     !FUNCTIONS:
cbf501ab81 Jean*0056 #ifdef ALLOW_RUNOFTEMP
ae89e2cad6 Jean*0057       INTEGER  ILNBLNK
                0058       EXTERNAL ILNBLNK
cbf501ab81 Jean*0059       INTEGER iL
                0060 #endif
7f861c1808 Patr*0061 
ae89e2cad6 Jean*0062 C     !LOCAL VARIABLES:
c1a736f29e Jean*0063       LOGICAL prtBlkLn, addBlkLn
ae89e2cad6 Jean*0064       CHARACTER*1 blkLin
                0065       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0066 CEOP
7f861c1808 Patr*0067 
d8ff7f7b41 Jean*0068       _BEGIN_MASTER( myThid )
                0069 
ae89e2cad6 Jean*0070       blkLin = ' '
                0071       CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
26d3c6fc59 Jean*0072      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0073       WRITE(msgBuf,'(A)')
7f861c1808 Patr*0074      &'// ======================================================='
ae89e2cad6 Jean*0075       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0076      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0077       WRITE(msgBuf,'(A)')
bf658500ad Jean*0078      &'// External forcing (EXF) configuration >>> START <<<'
ae89e2cad6 Jean*0079       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0080      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0081       WRITE(msgBuf,'(A)')
7f861c1808 Patr*0082      &'// ======================================================='
ae89e2cad6 Jean*0083       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0084      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0085       CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
26d3c6fc59 Jean*0086      &                    SQUEEZE_RIGHT, myThid )
d8ff7f7b41 Jean*0087 
                0088 C--   Print general parameters:
                0089       WRITE(msgBuf,'(A)') ' EXF general parameters:'
                0090       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0091      &                    SQUEEZE_RIGHT , myThid )
                0092       WRITE(msgBuf,'(A)') ' '
                0093       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0094      &                    SQUEEZE_RIGHT , myThid )
                0095       CALL WRITE_0D_I( exf_iprec, INDEX_NONE, 'exf_iprec =',
                0096      &  ' /* exf file precision */')
                0097       CALL WRITE_0D_L( useExfYearlyFields, INDEX_NONE,
                0098      &  'useExfYearlyFields =',
                0099      &  ' /* add extension _YEAR to input file names */')
                0100       CALL WRITE_0D_L( twoDigitYear, INDEX_NONE, 'twoDigitYear =',
                0101      &  ' /* use 2-digit year extension */')
                0102       CALL WRITE_0D_L( useExfCheckRange, INDEX_NONE,
83b72232fc Jean*0103      &  'useExfCheckRange =', ' /* check for fields range */')
f593ce37b5 Jean*0104 #ifdef USE_EXF_INTERPOLATION
                0105       CALL WRITE_0D_L( exf_output_interp, INDEX_NONE,
                0106      &  'exf_output_interp =',
                0107      &  ' /* output directly interpolation result */')
                0108 #endif
1ccd5d14b8 Jean*0109       CALL WRITE_0D_L( diags_opOceWeighted, INDEX_NONE,
                0110      &  'diags_opOceWeighted =',
                0111      &  ' /* weight flux diags by open-ocean fraction */')
9f46642c85 Jean*0112       CALL WRITE_0D_I( exf_debugLev, INDEX_NONE, 'exf_debugLev =',
                0113      &  ' /* select EXF-debug printing level */')
                0114       CALL WRITE_0D_RL( exf_monFreq, INDEX_NONE, 'exf_monFreq  =',
d8ff7f7b41 Jean*0115      &  ' /* EXF monitor frequency [ s ] */')
afd492c074 Mart*0116       CALL WRITE_0D_I( exf_adjMonSelect, INDEX_NONE,
                0117      &  'exf_adjMonSelect =',
                0118      &  ' /* select group of exf AD-variables to monitor */')
4da4b49499 Jean*0119       CALL WRITE_0D_RL( repeatPeriod, INDEX_NONE, 'repeatPeriod =',
d8ff7f7b41 Jean*0120      &  ' /* period for cycling forcing dataset [ s ] */')
4da4b49499 Jean*0121       CALL WRITE_0D_RL( climtempfreeze, INDEX_NONE,'climTempFreeze=',
d8ff7f7b41 Jean*0122      &  ' /* Minimum climatological temperature [deg.C] */')
4da4b49499 Jean*0123       CALL WRITE_0D_RL( windStressMax, INDEX_NONE,'windStressMax =',
d8ff7f7b41 Jean*0124      &  ' /* Maximum absolute windstress [ Pa ] */')
9c3e24f78c Jean*0125       CALL WRITE_0D_L( stressIsOnCgrid,INDEX_NONE,'stressIsOnCgrid =',
                0126      &  ' /* set u,v_stress on Arakawa C-grid */')
b605ec230f Gael*0127       CALL WRITE_0D_L( rotateStressOnAgrid,INDEX_NONE,
                0128      &  'rotateStressOnAgrid =',
                0129      &  ' /* rotate u,v_stress on Arakawa A-grid */')
4da4b49499 Jean*0130       CALL WRITE_0D_RL( cen2kel, INDEX_NONE, 'cen2kel =',
d7b4f7c409 Jean*0131      &  ' /* conversion of deg. Centigrade to Kelvin [K] */')
4da4b49499 Jean*0132       CALL WRITE_0D_RL( gravity_mks, INDEX_NONE, 'gravity_mks=',
d7b4f7c409 Jean*0133      &  ' /* gravitational acceleration [m/s^2] */')
4da4b49499 Jean*0134       CALL WRITE_0D_RL( atmrho, INDEX_NONE, 'atmrho =',
d8ff7f7b41 Jean*0135      & '  /* mean atmospheric density [kg/m^3] */')
4da4b49499 Jean*0136       CALL WRITE_0D_RL( atmcp, INDEX_NONE, 'atmcp =',
d8ff7f7b41 Jean*0137      & '  /* mean atmospheric specific heat [J/kg/K] */')
4da4b49499 Jean*0138       CALL WRITE_0D_RL( flamb, INDEX_NONE, 'flamb =',
d8ff7f7b41 Jean*0139      & '  /* latent heat of evaporation [J/kg] */')
4da4b49499 Jean*0140       CALL WRITE_0D_RL( flami, INDEX_NONE, 'flami =',
d8ff7f7b41 Jean*0141      & '  /* latent heat of pure-ice melting [J/kg] */')
4da4b49499 Jean*0142       CALL WRITE_0D_RL( cvapor_fac, INDEX_NONE, 'cvapor_fac =',
d8ff7f7b41 Jean*0143      &  ' /* const. for Saturation calculation [?] */')
4da4b49499 Jean*0144       CALL WRITE_0D_RL( cvapor_exp, INDEX_NONE, 'cvapor_exp =',
d8ff7f7b41 Jean*0145      &  ' /* const. for Saturation calculation [?] */')
4da4b49499 Jean*0146       CALL WRITE_0D_RL( cvapor_fac_ice, INDEX_NONE, 'cvapor_fac_ice=',
d8ff7f7b41 Jean*0147      &  ' /* const. for Saturation calculation [?] */')
4da4b49499 Jean*0148       CALL WRITE_0D_RL( cvapor_exp_ice, INDEX_NONE, 'cvapor_exp_ice=',
d8ff7f7b41 Jean*0149      &  ' /* const. for Saturation calculation [?] */')
4da4b49499 Jean*0150       CALL WRITE_0D_RL( humid_fac, INDEX_NONE, 'humid_fac =',
d8ff7f7b41 Jean*0151      &  ' /* humidity coef. in virtual temp. [(kg/kg)^-1] */')
4da4b49499 Jean*0152       CALL WRITE_0D_RL( gamma_blk, INDEX_NONE, 'gamma_blk =',
d8ff7f7b41 Jean*0153      &  ' /* adiabatic lapse rate [?] */')
4da4b49499 Jean*0154       CALL WRITE_0D_RL( saltsat, INDEX_NONE, 'saltsat =',
d8ff7f7b41 Jean*0155      &  ' /* reduction of Qsat over salty water [-] */')
ec1f56ea0e Jean*0156       CALL WRITE_0D_L( noNegativeEvap,INDEX_NONE,'noNegativeEvap =',
                0157      &  ' /* prevent negative Evaporation */')
4da4b49499 Jean*0158       CALL WRITE_0D_RL( sstExtrapol, INDEX_NONE, 'sstExtrapol =',
ec1f56ea0e Jean*0159      &  ' /* extrapolation coeff from lev. 1 & 2 to surf [-] */')
4da4b49499 Jean*0160       CALL WRITE_0D_RL( cdrag_1, INDEX_NONE, 'cDrag_1 =',
cc60455fbb Mart*0161      &  ' /* coef used in drag calculation [m/s] */')
4da4b49499 Jean*0162       CALL WRITE_0D_RL( cdrag_2, INDEX_NONE, 'cDrag_2 =',
cc60455fbb Mart*0163      &  ' /* coef used in drag calculation [-] */')
4da4b49499 Jean*0164       CALL WRITE_0D_RL( cdrag_3, INDEX_NONE, 'cDrag_3 =',
cc60455fbb Mart*0165      &  ' /* coef used in drag calculation [s/m] */')
                0166       CALL WRITE_0D_RL( cdrag_8, INDEX_NONE, 'cDrag_8 =',
                0167      &  ' /* coef used in drag calculation [(s/m)^6] */')
                0168       CALL WRITE_0D_RL( cdragMax, INDEX_NONE, 'cDragMax =',
                0169      &  ' /* maximum drag (Large and Yeager, 2009) [-] */')
                0170       CALL WRITE_0D_RL( umax, INDEX_NONE, 'umax =',
                0171      &  ' /* at maximum wind (Large and Yeager, 2009) [m/s] */')
4da4b49499 Jean*0172       CALL WRITE_0D_RL( cstanton_1, INDEX_NONE, 'cStanton_1 =',
cc60455fbb Mart*0173      &  ' /* coef used in Stanton number calculation [-] */')
4da4b49499 Jean*0174       CALL WRITE_0D_RL( cstanton_2, INDEX_NONE, 'cStanton_2 =',
cc60455fbb Mart*0175      &  ' /* coef used in Stanton number calculation [-] */')
4da4b49499 Jean*0176       CALL WRITE_0D_RL( cdalton, INDEX_NONE, 'cDalton =',
cc60455fbb Mart*0177      &  ' /* Dalton number [-] */')
4da4b49499 Jean*0178       CALL WRITE_0D_RL( exf_scal_BulkCdn, INDEX_NONE,
d8ff7f7b41 Jean*0179      &  'exf_scal_BulkCdn=',
                0180      &  ' /* Drag coefficient scaling factor [-] */')
4da4b49499 Jean*0181       CALL WRITE_0D_RL( zolmin, INDEX_NONE, 'zolmin =',
d8ff7f7b41 Jean*0182      &  ' /* minimum stability parameter [?] */')
4da4b49499 Jean*0183       CALL WRITE_0D_RL( psim_fac, INDEX_NONE, 'psim_fac =',
d7b4f7c409 Jean*0184      &  ' /* coef used in turbulent fluxes calculation [-] */')
4da4b49499 Jean*0185       CALL WRITE_0D_RL( zref, INDEX_NONE, 'zref =',
d8ff7f7b41 Jean*0186      & '  /* reference height [ m ] */')
4da4b49499 Jean*0187       CALL WRITE_0D_RL( hu, INDEX_NONE, 'hu =',
d8ff7f7b41 Jean*0188      & '  /* height of mean wind [ m ] */')
4da4b49499 Jean*0189       CALL WRITE_0D_RL( ht, INDEX_NONE, 'ht =',
d8ff7f7b41 Jean*0190      & '  /* height of mean temperature [ m ] */')
4da4b49499 Jean*0191       CALL WRITE_0D_RL( hq, INDEX_NONE, 'hq =',
d8ff7f7b41 Jean*0192      & '  /* height of mean spec.humidity [ m ] */')
4da4b49499 Jean*0193       CALL WRITE_0D_RL( umin, INDEX_NONE, 'uMin =',
d8ff7f7b41 Jean*0194      &  ' /* minimum wind speed [m/s] */')
d7b4f7c409 Jean*0195       CALL WRITE_0D_L( useStabilityFct_overIce, INDEX_NONE,
                0196      &  'useStabilityFct_overIce=',
                0197      &  ' /* transfert Coeffs over sea-ice depend on stability */')
4da4b49499 Jean*0198       CALL WRITE_0D_RL( exf_iceCd, INDEX_NONE, 'exf_iceCd =',
d7b4f7c409 Jean*0199      &  ' /* drag coefficient over sea-ice (fixed) [-] */')
4da4b49499 Jean*0200       CALL WRITE_0D_RL( exf_iceCe, INDEX_NONE, 'exf_iceCe =',
d7b4f7c409 Jean*0201      &  ' /* transfert coeff. over sea-ice, for Evap (fixed) [-] */')
4da4b49499 Jean*0202       CALL WRITE_0D_RL( exf_iceCh, INDEX_NONE, 'exf_iceCh =',
d7b4f7c409 Jean*0203      &  ' /* transfert coeff. over sea-ice, Sens.Heat.(fixed)[-] */')
4da4b49499 Jean*0204       CALL WRITE_0D_RL( exf_albedo, INDEX_NONE, 'exf_albedo =',
d7b4f7c409 Jean*0205      & '  /* Sea-water albedo [-] */')
d106b5e2d8 Gael*0206       CALL WRITE_0D_L( useExfZenAlbedo, INDEX_NONE, 'useExfZenAlbedo =',
83b72232fc Jean*0207      &  ' /* Sea-water albedo varies with zenith angle */')
f71b2ceff6 Gael*0208       CALL WRITE_0D_I( select_ZenAlbedo,INDEX_NONE,'select_ZenAlbedo =',
                0209      &  ' /* Sea-water albedo computation method */')
d106b5e2d8 Gael*0210       CALL WRITE_0D_L( useExfZenIncoming, INDEX_NONE,
83b72232fc Jean*0211      &  'useExfZenIncoming =',' /* compute incoming solar radiation */')
4da4b49499 Jean*0212       CALL WRITE_0D_RL( ocean_emissivity, INDEX_NONE,
d7b4f7c409 Jean*0213      &  'ocean_emissivity =',
                0214      &  ' /* longwave ocean-surface emissivity [-] */')
4da4b49499 Jean*0215       CALL WRITE_0D_RL( ice_emissivity, INDEX_NONE,'ice_emissivity =',
d7b4f7c409 Jean*0216      &  ' /* longwave seaice emissivity [-] */')
4da4b49499 Jean*0217       CALL WRITE_0D_RL(snow_emissivity, INDEX_NONE,'snow_emissivity =',
d7b4f7c409 Jean*0218      &  ' /* longwave snow  emissivity [-] */')
ae89e2cad6 Jean*0219       CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
d8ff7f7b41 Jean*0220      &                    SQUEEZE_RIGHT , myThid )
                0221 
                0222 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0223 C--   Print settings of some CPP flags.
                0224       WRITE(msgBuf,'(A)') ' EXF main CPP flags:'
                0225       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0226      &                    SQUEEZE_RIGHT , myThid )
ae89e2cad6 Jean*0227       CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
d8ff7f7b41 Jean*0228      &                    SQUEEZE_RIGHT , myThid )
7f861c1808 Patr*0229 
bf658500ad Jean*0230 #ifdef USE_EXF_INTERPOLATION
                0231       WRITE(msgBuf,'(A)')
                0232      &'// USE_EXF_INTERPOLATION:              defined'
                0233       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0234      &                    SQUEEZE_RIGHT , myThid)
                0235 #else
                0236       WRITE(msgBuf,'(A)')
                0237      &'// USE_EXF_INTERPOLATION:          NOT defined'
                0238       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0239      &                    SQUEEZE_RIGHT , myThid)
                0240 #endif
                0241 
7f861c1808 Patr*0242 #ifdef ALLOW_ATM_TEMP
ae89e2cad6 Jean*0243       WRITE(msgBuf,'(A)')
cee16b76ae Dimi*0244      &'// ALLOW_ATM_TEMP:                     defined'
ae89e2cad6 Jean*0245       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0246      &                    SQUEEZE_RIGHT, myThid )
7f861c1808 Patr*0247 #else
ae89e2cad6 Jean*0248       WRITE(msgBuf,'(A)')
cee16b76ae Dimi*0249      &'// ALLOW_ATM_TEMP:                 NOT defined'
ae89e2cad6 Jean*0250       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0251      &                    SQUEEZE_RIGHT, myThid )
7f861c1808 Patr*0252 #endif
6060ec2938 Dimi*0253 
358649780a Gael*0254       IF ( useAtmWind ) THEN
ae89e2cad6 Jean*0255       WRITE(msgBuf,'(A)')
358649780a Gael*0256      &'// ALLOW_ATM_WIND (useAtmWind):        defined'
ae89e2cad6 Jean*0257       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0258      &                    SQUEEZE_RIGHT, myThid )
358649780a Gael*0259       ELSE
ae89e2cad6 Jean*0260       WRITE(msgBuf,'(A)')
358649780a Gael*0261      &'// ALLOW_ATM_WIND (useAtmWind):    NOT defined'
ae89e2cad6 Jean*0262       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0263      &                    SQUEEZE_RIGHT, myThid )
358649780a Gael*0264       ENDIF
6060ec2938 Dimi*0265 
                0266 #ifdef ALLOW_DOWNWARD_RADIATION
ae89e2cad6 Jean*0267       WRITE(msgBuf,'(A)')
6060ec2938 Dimi*0268      &'// ALLOW_DOWNWARD_RADIATION:           defined'
ae89e2cad6 Jean*0269       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0270      &                    SQUEEZE_RIGHT, myThid )
7f861c1808 Patr*0271 #else
ae89e2cad6 Jean*0272       WRITE(msgBuf,'(A)')
190e1777cb Dimi*0273      &'// ALLOW_DOWNWARD_RADIATION:       NOT defined'
ae89e2cad6 Jean*0274       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0275      &                    SQUEEZE_RIGHT, myThid )
7f861c1808 Patr*0276 #endif
                0277 
6060ec2938 Dimi*0278 #ifdef ALLOW_BULKFORMULAE
ae89e2cad6 Jean*0279       WRITE(msgBuf,'(A)')
6060ec2938 Dimi*0280      &'// ALLOW_BULKFORMULAE:                 defined'
ae89e2cad6 Jean*0281       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0282      &                    SQUEEZE_RIGHT, myThid )
7f861c1808 Patr*0283 #else
ae89e2cad6 Jean*0284       WRITE(msgBuf,'(A)')
6060ec2938 Dimi*0285      &'// ALLOW_BULKFORMULAE:             NOT defined'
ae89e2cad6 Jean*0286       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0287      &                    SQUEEZE_RIGHT, myThid )
7f861c1808 Patr*0288 #endif
                0289 
d8ff7f7b41 Jean*0290 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0291 
                0292 C--   For each data set used the summary prints the calendar data
                0293 C     and the corresponding file from which the data will be read.
ae89e2cad6 Jean*0294       prtBlkLn = .FALSE.
c1a736f29e Jean*0295       addBlkLn = .TRUE.
cee16b76ae Dimi*0296 
d8ff7f7b41 Jean*0297 C--   Zonal wind stress.
ae89e2cad6 Jean*0298       IF ( .NOT.useAtmWind .AND. ustressfile.NE.' ' ) THEN
c1a736f29e Jean*0299        CALL EXF_FLD_SUMMARY( 'Zonal wind stress forcing',
                0300      I      ustressfile, ustressRepCycle, ustressperiod,
                0301      I      ustressStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0302 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0303        CALL EXF_PRINT_INTERP( 'ustress',
                0304      &  ustress_lon0, ustress_lon_inc, ustress_lat0, ustress_lat_inc,
                0305      &  ustress_nlon, ustress_nlat, ustress_interpMethod, myThid )
bf658500ad Jean*0306 #endif
ae89e2cad6 Jean*0307        prtBlkLn = .TRUE.
                0308       ENDIF
a8fd6c497b Patr*0309 
d8ff7f7b41 Jean*0310 C--   Meridional wind stress.
ae89e2cad6 Jean*0311       IF ( .NOT.useAtmWind .AND. vstressfile.NE.' ' ) THEN
c1a736f29e Jean*0312        CALL EXF_FLD_SUMMARY( 'Meridional wind stress forcing',
                0313      I      vstressfile, vstressRepCycle, vstressperiod,
                0314      I      vstressStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0315 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0316        CALL EXF_PRINT_INTERP( 'vstress',
                0317      &  vstress_lon0, vstress_lon_inc, vstress_lat0, vstress_lat_inc,
                0318      &  vstress_nlon, vstress_nlat, vstress_interpMethod, myThid )
                0319        WRITE(msgBuf,'(2A,L5)') '    Interp. U & V comp. together:',
                0320      &                   ' uvInterp_stress =', uvInterp_stress
                0321        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0322      &                     SQUEEZE_RIGHT, myThid )
bf658500ad Jean*0323 #endif
ae89e2cad6 Jean*0324        prtBlkLn = .TRUE.
358649780a Gael*0325       ENDIF
7f861c1808 Patr*0326 
d8ff7f7b41 Jean*0327 C--   Heat flux.
ae89e2cad6 Jean*0328       IF ( hfluxfile.NE.' ' ) THEN
c1a736f29e Jean*0329        CALL EXF_FLD_SUMMARY( 'Heat flux forcing',
                0330      I      hfluxfile, hfluxRepCycle, hfluxperiod,
                0331      I      hfluxStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0332 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0333        CALL EXF_PRINT_INTERP( 'hflux',
                0334      &  hflux_lon0, hflux_lon_inc, hflux_lat0, hflux_lat_inc,
                0335      &  hflux_nlon, hflux_nlat, hflux_interpMethod, myThid )
bf658500ad Jean*0336 #endif
ae89e2cad6 Jean*0337        prtBlkLn = .TRUE.
                0338       ENDIF
7f861c1808 Patr*0339 
d4d6d56dc6 Jean*0340 C--   Fresh-Water flux.
ae89e2cad6 Jean*0341       IF ( sfluxfile.NE.' ' ) THEN
c1a736f29e Jean*0342        CALL EXF_FLD_SUMMARY( 'Fresh-Water flux forcing',
                0343      I      sfluxfile, sfluxRepCycle, sfluxperiod,
                0344      I      sfluxStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0345 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0346        CALL EXF_PRINT_INTERP( 'sflux',
                0347      &  sflux_lon0, sflux_lon_inc, sflux_lat0, sflux_lat_inc,
                0348      &  sflux_nlon, sflux_nlat, sflux_interpMethod, myThid )
bf658500ad Jean*0349 #endif
ae89e2cad6 Jean*0350        prtBlkLn = .TRUE.
                0351       ENDIF
7f861c1808 Patr*0352 
6060ec2938 Dimi*0353 #if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING)
d8ff7f7b41 Jean*0354 C--   Net shortwave.
ae89e2cad6 Jean*0355       IF ( swfluxfile.NE.' ' ) THEN
c1a736f29e Jean*0356        CALL EXF_FLD_SUMMARY( 'Net shortwave flux forcing',
                0357      I      swfluxfile, swfluxRepCycle, swfluxperiod,
                0358      I      swfluxStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0359 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0360        CALL EXF_PRINT_INTERP( 'swflux',
                0361      &  swflux_lon0, swflux_lon_inc, swflux_lat0, swflux_lat_inc,
                0362      &  swflux_nlon, swflux_nlat, swflux_interpMethod, myThid )
bf658500ad Jean*0363 #endif
ae89e2cad6 Jean*0364        prtBlkLn = .TRUE.
                0365       ENDIF
e276dc281e Jean*0366 #endif /* ALLOW_ATM_TEMP or SHORTWAVE_HEATING */
7f861c1808 Patr*0367 
d8ff7f7b41 Jean*0368 C--   Zonal wind.
ae89e2cad6 Jean*0369       IF ( useAtmWind .AND. uwindfile.NE.' ' ) THEN
c1a736f29e Jean*0370        CALL EXF_FLD_SUMMARY( 'Zonal wind forcing',
                0371      I      uwindfile, uwindRepCycle, uwindperiod,
                0372      I      uwindStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0373 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0374        CALL EXF_PRINT_INTERP( 'uwind',
                0375      &  uwind_lon0, uwind_lon_inc, uwind_lat0, uwind_lat_inc,
                0376      &  uwind_nlon, uwind_nlat, uwind_interpMethod, myThid )
bf658500ad Jean*0377 #endif
ae89e2cad6 Jean*0378        prtBlkLn = .TRUE.
                0379       ENDIF
7f861c1808 Patr*0380 
d8ff7f7b41 Jean*0381 C--   Meridional wind.
ae89e2cad6 Jean*0382       IF ( useAtmWind .AND. vwindfile.NE.' ' ) THEN
c1a736f29e Jean*0383        CALL EXF_FLD_SUMMARY( 'Meridional wind forcing',
                0384      I      vwindfile, vwindRepCycle, vwindperiod,
                0385      I      vwindStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0386 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0387        CALL EXF_PRINT_INTERP( 'vwind',
                0388      &  vwind_lon0, vwind_lon_inc, vwind_lat0, vwind_lat_inc,
                0389      &  vwind_nlon, vwind_nlat, vwind_interpMethod, myThid )
                0390        WRITE(msgBuf,'(2A,L5)') '    Interp. U & V comp. together:',
                0391      &                      ' uvInterp_wind =', uvInterp_wind
                0392        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0393      &                     SQUEEZE_RIGHT, myThid )
bf658500ad Jean*0394 #endif
ae89e2cad6 Jean*0395        prtBlkLn = .TRUE.
358649780a Gael*0396       ENDIF
7f861c1808 Patr*0397 
c73bfe3b2c Jean*0398 C--   Surface wind speed
                0399       IF ( wspeedfile.NE.' ' ) THEN
                0400        CALL EXF_FLD_SUMMARY( 'Surface wind speed',
                0401      I      wspeedfile, wspeedRepCycle, wspeedperiod,
                0402      I      wspeedStartTime, useExfYearlyFields, addBlkLn, myThid )
                0403 #ifdef USE_EXF_INTERPOLATION
                0404        CALL EXF_PRINT_INTERP( 'wspeed',
                0405      &  wspeed_lon0, wspeed_lon_inc, wspeed_lat0, wspeed_lat_inc,
                0406      &  wspeed_nlon, wspeed_nlat, wspeed_interpMethod, myThid )
                0407 #endif
                0408        prtBlkLn = .TRUE.
                0409       ENDIF
                0410 
6060ec2938 Dimi*0411 #ifdef ALLOW_ATM_TEMP
d8ff7f7b41 Jean*0412 C--   Atmospheric temperature.
ae89e2cad6 Jean*0413       IF ( atempfile.NE.' ' ) THEN
c1a736f29e Jean*0414        CALL EXF_FLD_SUMMARY( 'Atmospheric temperature',
                0415      I      atempfile, atempRepCycle, atempperiod,
                0416      I      atempStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0417 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0418        CALL EXF_PRINT_INTERP( 'atemp',
                0419      &  atemp_lon0, atemp_lon_inc, atemp_lat0, atemp_lat_inc,
                0420      &  atemp_nlon, atemp_nlat, atemp_interpMethod, myThid )
bf658500ad Jean*0421 #endif
ae89e2cad6 Jean*0422        prtBlkLn = .TRUE.
                0423       ENDIF
7f861c1808 Patr*0424 
d8ff7f7b41 Jean*0425 C--   Atmospheric specific humidity.
ae89e2cad6 Jean*0426       IF ( aqhfile.NE.' ' ) THEN
c1a736f29e Jean*0427        CALL EXF_FLD_SUMMARY( 'Atmospheric specific humidity',
                0428      I      aqhfile, aqhRepCycle, aqhperiod,
                0429      I      aqhStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0430 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0431        CALL EXF_PRINT_INTERP( 'aqh',
                0432      &  aqh_lon0, aqh_lon_inc, aqh_lat0, aqh_lat_inc,
                0433      &  aqh_nlon, aqh_nlat, aqh_interpMethod, myThid )
bf658500ad Jean*0434 #endif
ae89e2cad6 Jean*0435        prtBlkLn = .TRUE.
                0436       ENDIF
7f861c1808 Patr*0437 
d4d6d56dc6 Jean*0438 C--   Turbulent heat flues
                0439       IF ( prtBlkLn ) THEN
                0440        CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
                0441      &                     SQUEEZE_RIGHT, myThid )
                0442        prtBlkLn = .FALSE.
                0443       ENDIF
                0444 #ifdef ALLOW_READ_TURBFLUXES
                0445       WRITE(msgBuf,'(A)')
                0446      &'// ALLOW_READ_TURBFLUXES:              defined'
                0447       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0448      &                    SQUEEZE_RIGHT, myThid )
                0449 
                0450 C--   Sensible heat flux
                0451       IF ( hs_file.NE.' ' ) THEN
c1a736f29e Jean*0452        CALL EXF_FLD_SUMMARY( 'Sensible heat flux (+=down)',
                0453      I      hs_file, hs_RepCycle, hs_period,
                0454      I      hs_StartTime, useExfYearlyFields, addBlkLn, myThid )
d4d6d56dc6 Jean*0455 #ifdef USE_EXF_INTERPOLATION
                0456        CALL EXF_PRINT_INTERP( 'hs',
                0457      &  hs_lon0, hs_lon_inc, hs_lat0, hs_lat_inc,
                0458      &  hs_nlon, hs_nlat, hs_interpMethod, myThid )
                0459 #endif
                0460        prtBlkLn = .TRUE.
                0461       ENDIF
                0462 
                0463 C--   Latent heat flux
                0464       IF ( hl_file.NE.' ' ) THEN
c1a736f29e Jean*0465        CALL EXF_FLD_SUMMARY( 'Latent heat flux (+=down)',
                0466      I      hl_file, hl_RepCycle, hl_period,
                0467      I      hl_StartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0468 #ifdef USE_EXF_INTERPOLATION
d4d6d56dc6 Jean*0469        CALL EXF_PRINT_INTERP( 'hl',
                0470      &  hl_lon0, hl_lon_inc, hl_lat0, hl_lat_inc,
                0471      &  hl_nlon, hl_nlat, hl_interpMethod, myThid )
bf658500ad Jean*0472 #endif
ae89e2cad6 Jean*0473        prtBlkLn = .TRUE.
                0474       ENDIF
7f861c1808 Patr*0475 
d4d6d56dc6 Jean*0476 #else /* ALLOW_READ_TURBFLUXES */
                0477       WRITE(msgBuf,'(A)')
                0478      &'// ALLOW_READ_TURBFLUXES:          NOT defined'
                0479       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0480      &                    SQUEEZE_RIGHT, myThid )
                0481 #endif /* ALLOW_READ_TURBFLUXES */
                0482 
                0483 C--   Net longwave.
                0484       IF ( lwfluxfile.NE.' ' ) THEN
c1a736f29e Jean*0485        CALL EXF_FLD_SUMMARY( 'Net longwave flux forcing',
                0486      I      lwfluxfile, lwfluxRepCycle, lwfluxperiod,
                0487      I      lwfluxStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0488 #ifdef USE_EXF_INTERPOLATION
d4d6d56dc6 Jean*0489        CALL EXF_PRINT_INTERP( 'lwflux',
                0490      &  lwflux_lon0, lwflux_lon_inc, lwflux_lat0, lwflux_lat_inc,
                0491      &  lwflux_nlon, lwflux_nlat, lwflux_interpMethod, myThid )
bf658500ad Jean*0492 #endif
ae89e2cad6 Jean*0493        prtBlkLn = .TRUE.
                0494       ENDIF
e276dc281e Jean*0495 #endif /* ALLOW_ATM_TEMP */
7f861c1808 Patr*0496 
d8ff7f7b41 Jean*0497 C--   Evaporation.
ae89e2cad6 Jean*0498       IF ( prtBlkLn ) THEN
                0499        CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
                0500      &                     SQUEEZE_RIGHT, myThid )
                0501        prtBlkLn = .FALSE.
                0502       ENDIF
6060ec2938 Dimi*0503 #ifdef EXF_READ_EVAP
ae89e2cad6 Jean*0504       WRITE(msgBuf,'(A)')
6060ec2938 Dimi*0505      &'// EXF_READ_EVAP:                      defined'
ae89e2cad6 Jean*0506       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0507      &                    SQUEEZE_RIGHT, myThid )
26f6b8243e Jean*0508 # ifdef ALLOW_ATM_TEMP
ae89e2cad6 Jean*0509       IF ( evapfile.NE.' ' ) THEN
c1a736f29e Jean*0510        addBlkLn = .FALSE.
                0511        CALL EXF_FLD_SUMMARY( 'Evaporation',
                0512      I      evapfile, evapRepCycle, evapperiod,
                0513      I      evapStartTime, useExfYearlyFields, addBlkLn, myThid )
                0514        addBlkLn = .TRUE.
bf658500ad Jean*0515 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0516        CALL EXF_PRINT_INTERP( 'evap',
                0517      &  evap_lon0, evap_lon_inc, evap_lat0, evap_lat_inc,
                0518      &  evap_nlon, evap_nlat, evap_interpMethod, myThid )
bf658500ad Jean*0519 #endif
ae89e2cad6 Jean*0520        prtBlkLn = .TRUE.
                0521       ENDIF
26f6b8243e Jean*0522 # endif /* ALLOW_ATM_TEMP */
e276dc281e Jean*0523 #else /* EXF_READ_EVAP */
ae89e2cad6 Jean*0524       WRITE(msgBuf,'(A)')
6060ec2938 Dimi*0525      &'// EXF_READ_EVAP:                  NOT defined'
ae89e2cad6 Jean*0526       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0527      &                    SQUEEZE_RIGHT, myThid )
e276dc281e Jean*0528 #endif /* EXF_READ_EVAP */
6060ec2938 Dimi*0529 
d4d6d56dc6 Jean*0530 #ifdef ALLOW_ATM_TEMP
                0531 C--   Precipitation.
                0532       IF ( precipfile.NE.' ' ) THEN
c1a736f29e Jean*0533        CALL EXF_FLD_SUMMARY( 'Precipitation data',
                0534      I      precipfile, precipRepCycle, precipperiod,
                0535      I      precipStartTime, useExfYearlyFields, addBlkLn, myThid )
d4d6d56dc6 Jean*0536 #ifdef USE_EXF_INTERPOLATION
                0537        CALL EXF_PRINT_INTERP( 'precip',
                0538      &  precip_lon0, precip_lon_inc, precip_lat0, precip_lat_inc,
                0539      &  precip_nlon, precip_nlat, precip_interpMethod, myThid )
                0540 #endif
                0541        prtBlkLn = .TRUE.
                0542       ENDIF
                0543 
                0544 C--   Snow Precipitation
                0545       IF ( snowprecipfile.NE.' ' ) THEN
c1a736f29e Jean*0546        CALL EXF_FLD_SUMMARY( 'Snow Precipitation data',
                0547      I      snowprecipfile, snowprecipRepCycle, snowprecipperiod,
                0548      I      snowprecipStartTime, useExfYearlyFields, addBlkLn, myThid )
d4d6d56dc6 Jean*0549 #ifdef USE_EXF_INTERPOLATION
                0550        CALL EXF_PRINT_INTERP( 'snowprecip',
                0551      &  snowprecip_lon0, snowprecip_lon_inc, snowprecip_lat0,
                0552      &  snowprecip_lat_inc, snowprecip_nlon, snowprecip_nlat,
                0553      &  snowprecip_interpMethod, myThid )
                0554 #endif
                0555        prtBlkLn = .TRUE.
                0556       ENDIF
                0557 #endif /* ALLOW_ATM_TEMP */
                0558 
d8ff7f7b41 Jean*0559 C--   Runoff.
ae89e2cad6 Jean*0560       IF ( prtBlkLn ) THEN
                0561        CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
                0562      &                     SQUEEZE_RIGHT, myThid )
                0563        prtBlkLn = .FALSE.
                0564       ENDIF
6060ec2938 Dimi*0565 #ifdef ALLOW_RUNOFF
ae89e2cad6 Jean*0566       WRITE(msgBuf,'(A)')
6060ec2938 Dimi*0567      &'// ALLOW_RUNOFF:                       defined'
ae89e2cad6 Jean*0568       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0569      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0570       IF ( runofffile.NE.' ' ) THEN
c1a736f29e Jean*0571        addBlkLn = .FALSE.
                0572        CALL EXF_FLD_SUMMARY( 'Runoff data',
                0573      I      runofffile, runoffRepCycle, runoffperiod,
                0574      I      runoffStartTime, useExfYearlyFields, addBlkLn, myThid )
                0575        addBlkLn = .TRUE.
ae89e2cad6 Jean*0576 # ifdef USE_EXF_INTERPOLATION
                0577        CALL EXF_PRINT_INTERP( 'runoff',
                0578      &  runoff_lon0, runoff_lon_inc, runoff_lat0, runoff_lat_inc,
                0579      &  runoff_nlon, runoff_nlat, runoff_interpMethod, myThid )
                0580 # endif /* USE_EXF_INTERPOLATION */
                0581        prtBlkLn = .TRUE.
                0582       ENDIF
                0583       IF ( prtBlkLn ) THEN
                0584        CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
                0585      &                     SQUEEZE_RIGHT, myThid )
                0586        prtBlkLn = .FALSE.
                0587       ENDIF
e603dbf008 Dimi*0588 # ifdef ALLOW_RUNOFTEMP
ae89e2cad6 Jean*0589       WRITE(msgBuf,'(A)')
c1a736f29e Jean*0590      &'// ALLOW_RUNOFTEMP:                    defined'
ae89e2cad6 Jean*0591       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
e603dbf008 Dimi*0592      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0593       IF ( runoftempfile.NE.' ' ) THEN
c1a736f29e Jean*0594 c      addBlkLn = .FALSE.
                0595 c      CALL EXF_FLD_SUMMARY( 'Runoff temp.',
                0596 c    I      runoftempfile, runoffRepCycle, runoffperiod,
                0597 c    I      runoffStartTime, useExfYearlyFields, addBlkLn, myThid )
                0598 c      addBlkLn = .TRUE.
cbf501ab81 Jean*0599        iL = ILNBLNK(runoftempfile)
ae89e2cad6 Jean*0600        WRITE(msgBuf,'(A)')
                0601      & '   Runoff temp. is read from file:'
                0602        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0603      &                     SQUEEZE_RIGHT, myThid )
cbf501ab81 Jean*0604        WRITE(msgBuf,'(3A)') '   >> ', runoftempfile(1:iL), ' <<'
ae89e2cad6 Jean*0605        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0606      &                     SQUEEZE_RIGHT, myThid )
                0607        prtBlkLn = .TRUE.
                0608       ENDIF
e603dbf008 Dimi*0609 # else /* ALLOW_RUNOFTEMP */
ae89e2cad6 Jean*0610       WRITE(msgBuf,'(A)')
e603dbf008 Dimi*0611      &'// ALLOW_RUNOFTEMP:                NOT defined'
ae89e2cad6 Jean*0612       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
e603dbf008 Dimi*0613      &                    SQUEEZE_RIGHT, myThid )
                0614 # endif /* ALLOW_RUNOFTEMP */
6060ec2938 Dimi*0615 #else /* ALLOW_RUNOFF */
ae89e2cad6 Jean*0616       WRITE(msgBuf,'(A)')
6060ec2938 Dimi*0617      &'// ALLOW_RUNOFF:                   NOT defined'
ae89e2cad6 Jean*0618       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0619      &                    SQUEEZE_RIGHT, myThid )
6060ec2938 Dimi*0620 #endif /* ALLOW_RUNOFF */
7f861c1808 Patr*0621 
d4d6d56dc6 Jean*0622 C--   Salt-Flux
                0623       IF ( prtBlkLn ) THEN
                0624        CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
                0625      &                     SQUEEZE_RIGHT, myThid )
                0626        prtBlkLn = .FALSE.
                0627       ENDIF
                0628 #ifdef ALLOW_SALTFLX
                0629       WRITE(msgBuf,'(A)')
                0630      &'// ALLOW_SALTFLX:                      defined'
                0631       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0632      &                    SQUEEZE_RIGHT, myThid )
                0633       IF ( saltflxfile.NE.' ' ) THEN
c1a736f29e Jean*0634        CALL EXF_FLD_SUMMARY( 'Net upward Salt-Flux forcing',
                0635      I      saltflxfile, saltflxRepCycle, saltflxperiod,
                0636      I      saltflxStartTime, useExfYearlyFields, addBlkLn, myThid )
d4d6d56dc6 Jean*0637 #ifdef USE_EXF_INTERPOLATION
                0638        CALL EXF_PRINT_INTERP( 'saltflx',
                0639      &  saltflx_lon0, saltflx_lon_inc, saltflx_lat0, saltflx_lat_inc,
                0640      &  saltflx_nlon, saltflx_nlat, saltflx_interpMethod, myThid )
                0641 #endif
                0642        prtBlkLn = .TRUE.
                0643       ENDIF
                0644 #else /* ALLOW_SALTFLX */
                0645       WRITE(msgBuf,'(A)')
                0646      &'// ALLOW_SALTFLX:                  NOT defined'
                0647       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0648      &                    SQUEEZE_RIGHT, myThid )
                0649 #endif /* ALLOW_SALTFLX */
                0650 
1d049a485d Jean*0651 #ifdef ALLOW_DOWNWARD_RADIATION
d8ff7f7b41 Jean*0652 C--   Downward shortwave.
ae89e2cad6 Jean*0653       IF ( swdownfile.NE.' ' ) THEN
c1a736f29e Jean*0654        CALL EXF_FLD_SUMMARY( 'Downward shortwave flux',
                0655      I      swdownfile, swdownRepCycle, swdownperiod,
                0656      I      swdownStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0657 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0658        CALL EXF_PRINT_INTERP( 'swdown',
                0659      &  swdown_lon0, swdown_lon_inc, swdown_lat0, swdown_lat_inc,
                0660      &  swdown_nlon, swdown_nlat, swdown_interpMethod, myThid )
bf658500ad Jean*0661 #endif
ae89e2cad6 Jean*0662        prtBlkLn = .TRUE.
                0663       ENDIF
7f861c1808 Patr*0664 
d8ff7f7b41 Jean*0665 C--   Downward longwave.
ae89e2cad6 Jean*0666       IF ( lwdownfile.NE.' ' ) THEN
c1a736f29e Jean*0667        CALL EXF_FLD_SUMMARY( 'Downward longwave flux',
                0668      I      lwdownfile, lwdownRepCycle, lwdownperiod,
                0669      I      lwdownStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0670 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0671        CALL EXF_PRINT_INTERP( 'lwdown',
                0672      &  lwdown_lon0, lwdown_lon_inc, lwdown_lat0, lwdown_lat_inc,
                0673      &  lwdown_nlon, lwdown_nlat, lwdown_interpMethod, myThid )
bf658500ad Jean*0674 #endif
ae89e2cad6 Jean*0675        prtBlkLn = .TRUE.
                0676       ENDIF
e276dc281e Jean*0677 #endif /* ALLOW_DOWNWARD_RADIATION */
7f861c1808 Patr*0678 
6060ec2938 Dimi*0679 #ifdef ATMOSPHERIC_LOADING
d8ff7f7b41 Jean*0680 C--   Atmospheric pressure.
ae89e2cad6 Jean*0681       IF ( apressurefile.NE.' ' ) THEN
c1a736f29e Jean*0682        CALL EXF_FLD_SUMMARY( 'Atmospheric pressure forcing',
                0683      I      apressurefile, apressureRepCycle, apressureperiod,
                0684      I      apressureStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0685 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0686        CALL EXF_PRINT_INTERP( 'apressure', apressure_lon0,
                0687      &  apressure_lon_inc, apressure_lat0, apressure_lat_inc,
                0688      &  apressure_nlon, apressure_nlat, apressure_interpMethod, myThid )
bf658500ad Jean*0689 #endif
ae89e2cad6 Jean*0690        prtBlkLn = .TRUE.
                0691       ENDIF
e276dc281e Jean*0692 #endif /* ATMOSPHERIC_LOADING */
7f861c1808 Patr*0693 
497d85062c Jean*0694 #ifdef EXF_ALLOW_TIDES
                0695 C--   Tidal geopotential
                0696       IF ( tidePotFile.NE.' ' ) THEN
                0697        CALL EXF_FLD_SUMMARY( 'Tidal geopotential',
                0698      I      tidePotFile, tidePotRepCycle, tidePotPeriod,
                0699      I      tidePotStartTime, useExfYearlyFields, addBlkLn, myThid )
                0700 #ifdef USE_EXF_INTERPOLATION
                0701        CALL EXF_PRINT_INTERP( 'tidePot', tidePot_lon0,
                0702      &  tidePot_lon_inc, tidePot_lat0, tidePot_lat_inc,
                0703      &  tidePot_nlon, tidePot_nlat, tidePot_interpMethod, myThid )
                0704 #endif
                0705        prtBlkLn = .TRUE.
                0706       ENDIF
                0707 #endif /* EXF_ALLOW_TIDES */
                0708 
24da7525ba Jean*0709 #ifdef EXF_SEAICE_FRACTION
c1a736f29e Jean*0710 C--   Fractional ice-covered area
ae89e2cad6 Jean*0711       IF ( areamaskfile.NE.' ' ) THEN
c1a736f29e Jean*0712        CALL EXF_FLD_SUMMARY( 'Fractional ice-covered area',
                0713      I      areamaskfile, areamaskRepCycle, areamaskperiod,
                0714      I      areamaskStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0715 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0716        CALL EXF_PRINT_INTERP( 'areamask', areamask_lon0,
                0717      &  areamask_lon_inc, areamask_lat0, areamask_lat_inc,
                0718      &  areamask_nlon, areamask_nlat, areamask_interpMethod, myThid )
bf658500ad Jean*0719 #endif
ae89e2cad6 Jean*0720        prtBlkLn = .TRUE.
                0721       ENDIF
24da7525ba Jean*0722 #endif /* EXF_SEAICE_FRACTION */
7f861c1808 Patr*0723 
d8ff7f7b41 Jean*0724 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0725 
ae89e2cad6 Jean*0726       CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
26d3c6fc59 Jean*0727      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0728       WRITE(msgBuf,'(A)')
ad5cdab327 Patr*0729      &'// ======================================================='
ae89e2cad6 Jean*0730       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0731      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0732       WRITE(msgBuf,'(A)')
bf658500ad Jean*0733      &'// External forcing (EXF) climatology configuration :'
ae89e2cad6 Jean*0734       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0735      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0736       WRITE(msgBuf,'(A)')
ad5cdab327 Patr*0737      &'// ======================================================='
ae89e2cad6 Jean*0738       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0739      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0740       CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
26d3c6fc59 Jean*0741      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0742       prtBlkLn = .FALSE.
c1a736f29e Jean*0743       addBlkLn = .FALSE.
ad5cdab327 Patr*0744 
d8ff7f7b41 Jean*0745 C     For each data set used the summary prints the calendar data
                0746 C     and the corresponding file from which the data will be read.
ad5cdab327 Patr*0747 
d8ff7f7b41 Jean*0748 C     The climatological data sets are assumed to contain monthly
                0749 C     data. This can be changed in a later version to an arbitrary
                0750 C     number of intervals during a given year.
ad5cdab327 Patr*0751 
                0752 #ifdef ALLOW_CLIMSST_RELAXATION
ae89e2cad6 Jean*0753       WRITE(msgBuf,'(A)')
                0754      &'// ALLOW_CLIMSST_RELAXATION:           defined'
                0755       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0756      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0757 C     Relaxation to SST climatology.
                0758       IF ( climsstfile .NE. ' ' ) THEN
c1a736f29e Jean*0759        CALL EXF_FLD_SUMMARY( 'Climatological SST',
                0760      I      climsstfile, climsstRepCycle, climsstperiod,
                0761      I      climsstStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0762 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0763        CALL EXF_PRINT_INTERP( 'climsst',
                0764      &  climsst_lon0, climsst_lon_inc, climsst_lat0, climsst_lat_inc,
                0765      &  climsst_nlon, climsst_nlat, climsst_interpMethod, myThid )
bf658500ad Jean*0766 #endif
ae89e2cad6 Jean*0767        prtBlkLn = .TRUE.
7ba163f5fb Gael*0768       ELSE
ae89e2cad6 Jean*0769        WRITE(msgBuf,'(A)') '   climsst relaxation is NOT used'
                0770        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0771      &                     SQUEEZE_RIGHT, myThid )
7ba163f5fb Gael*0772       ENDIF
ae89e2cad6 Jean*0773 #else /* ALLOW_CLIMSST_RELAXATION */
                0774       WRITE(msgBuf,'(A)')
                0775      &'// ALLOW_CLIMSST_RELAXATION:       NOT defined'
                0776       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0777      &                    SQUEEZE_RIGHT, myThid )
e276dc281e Jean*0778 #endif /* ALLOW_CLIMSST_RELAXATION */
ad5cdab327 Patr*0779 
ae89e2cad6 Jean*0780 c     IF ( prtBlkLn ) THEN
                0781        CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
                0782      &                     SQUEEZE_RIGHT, myThid )
                0783 c      prtBlkLn = .FALSE.
                0784 c     ENDIF
                0785 
ad5cdab327 Patr*0786 #ifdef ALLOW_CLIMSSS_RELAXATION
ae89e2cad6 Jean*0787       WRITE(msgBuf,'(A)')
                0788      &'// ALLOW_CLIMSSS_RELAXATION:           defined'
                0789       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0790      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0791 C     Relaxation to SSS climatology.
                0792       IF ( climsssfile .NE. ' ' ) THEN
c1a736f29e Jean*0793        CALL EXF_FLD_SUMMARY( 'Climatological SSS',
                0794      I      climsssfile, climsssRepCycle, climsssperiod,
                0795      I      climsssStartTime, useExfYearlyFields, addBlkLn, myThid )
bf658500ad Jean*0796 #ifdef USE_EXF_INTERPOLATION
ae89e2cad6 Jean*0797        CALL EXF_PRINT_INTERP( 'climsss',
                0798      &  climsss_lon0, climsss_lon_inc, climsss_lat0, climsss_lat_inc,
                0799      &  climsss_nlon, climsss_nlat, climsss_interpMethod, myThid )
bf658500ad Jean*0800 #endif
ae89e2cad6 Jean*0801        prtBlkLn = .TRUE.
7ba163f5fb Gael*0802       ELSE
ae89e2cad6 Jean*0803        WRITE(msgBuf,'(A)') '   climsss relaxation is NOT used'
                0804        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0805      &                     SQUEEZE_RIGHT, myThid )
7ba163f5fb Gael*0806       ENDIF
ae89e2cad6 Jean*0807 #else /* ALLOW_CLIMSSS_RELAXATION */
                0808       WRITE(msgBuf,'(A)')
                0809      &'// ALLOW_CLIMSSS_RELAXATION:       NOT defined'
                0810       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0811      &                    SQUEEZE_RIGHT, myThid )
e276dc281e Jean*0812 #endif /* ALLOW_CLIMSSS_RELAXATION */
ad5cdab327 Patr*0813 
ae89e2cad6 Jean*0814       CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
26d3c6fc59 Jean*0815      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0816       WRITE(msgBuf,'(A)')
ad5cdab327 Patr*0817      &'// ======================================================='
ae89e2cad6 Jean*0818       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0819      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0820       WRITE(msgBuf,'(A)')
bf658500ad Jean*0821      &'// External forcing (EXF) configuration  >>> END <<<'
ae89e2cad6 Jean*0822       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0823      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0824       WRITE(msgBuf,'(A)')
ad5cdab327 Patr*0825      &'// ======================================================='
ae89e2cad6 Jean*0826       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
26d3c6fc59 Jean*0827      &                    SQUEEZE_RIGHT, myThid )
ae89e2cad6 Jean*0828       CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
26d3c6fc59 Jean*0829      &                    SQUEEZE_RIGHT, myThid )
ad5cdab327 Patr*0830 
d8ff7f7b41 Jean*0831       _END_MASTER( myThid )
                0832 
                0833       RETURN
                0834       END
bf658500ad Jean*0835 
                0836 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
c1a736f29e Jean*0837 CBOP
                0838 C     !ROUTINE: EXF_FLD_SUMMARY
                0839 C     !INTERFACE:
                0840       SUBROUTINE EXF_FLD_SUMMARY(
                0841      I               fld_fullName, fld_file,
                0842      I               fld_repeatCycle, fld_period, fld_start_time,
                0843      I               useYearlyFields, addBlkLn, myThid )
                0844 
                0845 C     !DESCRIPTION:
                0846 C     Print EXF timing parameters for one EXF input field
                0847 
                0848 C     !USES:
                0849       IMPLICIT NONE
bf658500ad Jean*0850 
c1a736f29e Jean*0851 #include "EEPARAMS.h"
                0852 
                0853 C     !INPUT PARAMETERS:
                0854 C     fld_fullName    :: field full name description (shorter than 32c)
                0855 C     fld_file        :: file-name for this field
                0856 C     fld_repeatCycle :: time duration of a repeating cycle
                0857 C     fld_period      :: time period (in sec) between 2 reccords
                0858 C     fld_start_time  :: corresponding starting time (in sec) for this field
                0859 C     useYearlyFields :: select if using EXF Yearly-fields or not
                0860 C     addBlkLn        :: print blank line before parameter summary
                0861 C     myThid          :: My Thread Id number
                0862       CHARACTER*(*) fld_fullName
                0863       CHARACTER*(*) fld_file
                0864       _RL fld_repeatCycle
                0865       _RL fld_period
                0866       _RL fld_start_time
                0867       LOGICAL useYearlyFields
                0868       LOGICAL addBlkLn
                0869       INTEGER myThid
                0870 
                0871 C     !FUNCTIONS:
                0872       INTEGER  ILNBLNK
                0873       EXTERNAL ILNBLNK
                0874 
                0875 C     !LOCAL VARIABLES:
                0876       INTEGER iL, jL
                0877       CHARACTER*(MAX_LEN_MBUF) tmpBuf, msgBuf
                0878       CHARACTER*1 blkLin
                0879 CEOP
                0880 
                0881       blkLin = ' '
                0882       jL = 47
                0883 
                0884       IF ( addBlkLn ) THEN
                0885        CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
                0886      &                     SQUEEZE_RIGHT, myThid )
                0887       ENDIF
deacece587 Oliv*0888       IF ( fld_period.GT.0. .OR.
                0889      &     (fld_period.EQ.-1. .AND. .NOT.useYearlyFields) ) THEN
c1a736f29e Jean*0890        WRITE(tmpBuf,'(3A)') '   ', fld_fullName, ' starts at'
                0891        WRITE(msgBuf,'(A,F12.0)') tmpBuf(1:jL), fld_start_time
                0892        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0893      &                     SQUEEZE_RIGHT, myThid )
                0894       ENDIF
                0895        WRITE(tmpBuf,'(3A)') '   ', fld_fullName, ' period is'
                0896        WRITE(msgBuf,'(A,F12.0)') tmpBuf(1:jL), fld_period
                0897        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0898      &                     SQUEEZE_RIGHT, myThid )
                0899 c     IF ( fld_period.GT.0. .AND. .NOT.useYearlyFields ) THEN
                0900       IF ( fld_period.GT.0. ) THEN
                0901        iL = ILNBLNK(fld_fullName)
                0902        IF ( iL.LT.28 ) THEN
                0903          WRITE(tmpBuf,'(3A)') '   ', fld_fullName, ' repeat-cycle is'
                0904        ELSE
                0905          WRITE(tmpBuf,'(3A)') '   ', fld_fullName, ' rep-cycle is'
                0906        ENDIF
                0907        WRITE(msgBuf,'(A,F12.0)') tmpBuf(1:jL), fld_repeatCycle
                0908        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0909      &                     SQUEEZE_RIGHT, myThid )
                0910       ENDIF
                0911        WRITE(msgBuf,'(3A)') '   ', fld_fullName, ' is read from file:'
                0912        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0913      &                     SQUEEZE_RIGHT, myThid )
                0914        iL = ILNBLNK(fld_file)
                0915        WRITE(msgBuf,'(3A)') '   >> ', fld_file(1:iL), ' <<'
                0916        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0917      &                     SQUEEZE_RIGHT, myThid )
                0918 
                0919       RETURN
                0920       END
                0921 
                0922 #ifdef USE_EXF_INTERPOLATION
                0923 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
bf658500ad Jean*0924 CBOP
                0925 C     !ROUTINE: EXF_PRINT_INTERP
                0926 C     !INTERFACE:
                0927       SUBROUTINE EXF_PRINT_INTERP( var_name,
                0928      I               var_lon0, var_lon_inc, var_lat0, var_lat_inc,
                0929      I               var_nlon, var_nlat, var_interpMethod, myThid )
                0930 
                0931 C     !DESCRIPTION:
                0932 C     Print EXF interpolation parameters for one EXF input field
                0933 
                0934 C     !USES:
                0935       IMPLICIT NONE
                0936 
                0937 #include "EEPARAMS.h"
                0938 
                0939 C     !INPUT PARAMETERS:
                0940 C     myThid :: My Thread Id number
                0941       CHARACTER*(*) var_name
                0942       _RL     var_lon0, var_lon_inc, var_lat0
                0943       _RL     var_lat_inc(*)
                0944       INTEGER var_nlon, var_nlat, var_interpMethod
                0945       INTEGER myThid
                0946 
                0947 C     !FUNCTIONS:
                0948 c     INTEGER  ILNBLNK
                0949 c     EXTERNAL ILNBLNK
                0950 
                0951 C     !LOCAL VARIABLES:
                0952       INTEGER i
                0953       _RL var_min, var_max
                0954       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0955 CEOP
                0956 
                0957       IF ( var_interpMethod.EQ.0 ) THEN
                0958         WRITE(msgBuf,'(3X,A,A,A)')
                0959      &    'assume "',var_name,'" on model-grid (no interpolation)'
                0960         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0961      &                      SQUEEZE_RIGHT , myThid )
                0962       ELSE
                0963         WRITE(msgBuf,'(3X,A,A,A,I3,A)')
                0964      &    'interpolate "',var_name,'" (method=',var_interpMethod,' ):'
                0965         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0966      &                      SQUEEZE_RIGHT , myThid )
                0967 C-      print input-field longitude position:
                0968         IF ( ABS(var_lon0).LT.1000. .AND. var_lon_inc.GT.-10.
                0969      &                              .AND. var_lon_inc.LT.100. ) THEN
                0970           WRITE(msgBuf,'(3X,A,F10.5,A,I6,A,F10.7)')
                0971      &    'lon0=', var_lon0, ', nlon=', var_nlon,
                0972      &    ', lon_inc=',var_lon_inc
                0973         ELSE
                0974           WRITE(msgBuf,'(3X,A,1PE10.3,A,I6,A,1PE10.3)')
                0975      &    'lon0=', var_lon0, ', nlon=', var_nlon,
                0976      &    ', lon_inc=',var_lon_inc
                0977         ENDIF
                0978         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0979      &                      SQUEEZE_RIGHT , myThid )
                0980 C-      print input-field latitude position:
                0981         var_min = var_lat_inc(1)
                0982         var_max = var_lat_inc(1)
                0983         DO i=1,var_nlat-1
                0984           var_min = MIN( var_lat_inc(i), var_min )
                0985           var_max = MAX( var_lat_inc(i), var_max )
                0986         ENDDO
                0987         IF ( ABS(var_lat0).LT.1000. .AND. var_min.GT.-10.
                0988      &                              .AND. var_max.LT.100. ) THEN
                0989          IF ( var_min.EQ.var_max ) THEN
                0990           WRITE(msgBuf,'(3X,A,F10.5,A,I6,A,F10.7)')
                0991      &    'lat0=', var_lat0, ', nlat=', var_nlat,
                0992      &    ', lat_inc=', var_min
                0993          ELSE
                0994           WRITE(msgBuf,'(3X,A,F10.5,A,I6,A,2F8.5)')
                0995      &    'lat0=', var_lat0, ', nlat=', var_nlat,
                0996      &    ', inc(min,max)=', var_min, var_max
                0997          ENDIF
                0998         ELSE
                0999          IF ( var_min.EQ.var_max ) THEN
                1000           WRITE(msgBuf,'(3X,A,1PE10.3,A,I6,A,1PE10.3)')
                1001      &    'lat0=', var_lat0, ', nlat=', var_nlat,
                1002      &    ', lat_inc=', var_min
                1003          ELSE
                1004           WRITE(msgBuf,'(3X,A,1PE10.3,A,I6,A,1P2E10.3)')
                1005      &    'lat0=', var_lat0, ', nlat=', var_nlat,
                1006      &    ', inc(min,max)=', var_min, var_max
                1007          ENDIF
                1008         ENDIF
                1009         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                1010      &                      SQUEEZE_RIGHT , myThid )
                1011       ENDIF
                1012 
                1013       RETURN
                1014       END
                1015 #endif /* USE_EXF_INTERPOLATION */