Back to home page

darwin3

 
 

    


File indexing completed on 2024-12-17 18:37:23 UTC

view on githubraw file Latest commit 87dd4f7d on 2024-01-17 18:17:24 UTC
87dd4f7d5f Oliv*0001 #include "OASIM_OPTIONS.h"
                0002 #ifdef ALLOW_EXF
                0003 #include "EXF_OPTIONS.h"
                0004 #endif
                0005 
                0006 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0007 CBOP
                0008 C     !ROUTINE: OASIM_EXF_INIT_VARIA
                0009 
                0010 C     !INTERFACE:
                0011       SUBROUTINE OASIM_EXF_INIT_VARIA( myThid )
                0012 
                0013 C     !DESCRIPTION:
                0014 C     Initialize OASIM constants
                0015 
                0016 C     !USES:
                0017       IMPLICIT NONE
                0018 #include "EEPARAMS.h"
                0019 #include "SIZE.h"
                0020 #include "GRID.h"
                0021 #include "PARAMS.h"
                0022 #ifdef ALLOW_EXF
                0023 #include "EXF_INTERP_SIZE.h"
                0024 #endif
                0025 #include "OASIM_SIZE.h"
                0026 #include "OASIM_EXF_PARAMS.h"
                0027 #include "OASIM_FIELDS.h"
                0028 
                0029 C     !INPUT PARAMETERS:
                0030       INTEGER myThid
                0031 CEOP
                0032 
                0033 #ifdef ALLOW_OASIM
                0034 #ifdef ALLOW_EXF
                0035 
                0036 C     !FUNCTIONS:
                0037       INTEGER  ILNBLNK
                0038       EXTERNAL ILNBLNK
                0039 
                0040       CHARACTER*16 fld
                0041       CHARACTER*(MAX_LEN_FNAM) fnam
                0042       INTEGER l, il
                0043 
                0044 C     these load constant forcing fields
                0045 
                0046       DO l=1,nlt
                0047        WRITE(fld,'(A,I3.3)') 'aerTau', l
                0048        IF (aerTaufile .NE. ' ') THEN
                0049         il = ILNBLNK( aerTaufile )
                0050         WRITE(fnam,'(A,I3.3)') aerTaufile(1:il), l
                0051        ELSE
                0052         fnam = ' '
                0053        ENDIF
                0054        call exf_init_fld (
                0055      &      fld, fnam, aerTaumask,
                0056      &      aerTauperiod, aerTau_inscal(l), aerTauconst(l),
                0057      &      taua(1-OLx,1-OLy,1,1,l),
                0058      &      aerTau0(1-OLx,1-OLy,1,1,l),
                0059      &      aerTau1(1-OLx,1-OLy,1,1,l),
                0060 #ifdef USE_EXF_INTERPOLATION
                0061      &      aerTau_lon0, aerTau_lon_inc,
                0062      &      aerTau_lat0, aerTau_lat_inc,
                0063      &      aerTau_nlon, aerTau_nlat, xC, yC, aerTau_interpMethod,
                0064 #endif
                0065      &      mythid )
                0066       ENDDO
                0067 
                0068       DO l=1,nlt
                0069        WRITE(fld,'(A,I3.3)') 'asymp', l
                0070        IF (asympfile .NE. ' ') THEN
                0071         il = ILNBLNK( asympfile )
                0072         WRITE(fnam,'(A,I3.3)') asympfile(1:il), l
                0073        ELSE
                0074         fnam = ' '
                0075        ENDIF
                0076        call exf_init_fld (
                0077      &      fld, fnam, asympmask,
                0078      &      asympperiod, asymp_inscal(l), asympconst(l),
                0079      &      asymp(1-OLx,1-OLy,1,1,l),
                0080      &      asymp0(1-OLx,1-OLy,1,1,l),
                0081      &      asymp1(1-OLx,1-OLy,1,1,l),
                0082 #ifdef USE_EXF_INTERPOLATION
                0083      &      asymp_lon0, asymp_lon_inc,
                0084      &      asymp_lat0, asymp_lat_inc,
                0085      &      asymp_nlon, asymp_nlat, xC, yC, asymp_interpMethod,
                0086 #endif
                0087      &      mythid )
                0088       ENDDO
                0089 
                0090       DO l=1,nlt
                0091        WRITE(fld,'(A,I3.3)') 'ssalb', l
                0092        IF (ssalbfile .NE. ' ') THEN
                0093         il = ILNBLNK( ssalbfile )
                0094         WRITE(fnam,'(A,I3.3)') ssalbfile(1:il), l
                0095        ELSE
                0096         fnam = ' '
                0097        ENDIF
                0098        call exf_init_fld (
                0099      &      fld, fnam, ssalbmask,
                0100      &      ssalbperiod, ssalb_inscal(l), ssalbconst(l),
                0101      &      ssalb(1-OLx,1-OLy,1,1,l),
                0102      &      ssalb0(1-OLx,1-OLy,1,1,l),
                0103      &      ssalb1(1-OLx,1-OLy,1,1,l),
                0104 #ifdef USE_EXF_INTERPOLATION
                0105      &      ssalb_lon0, ssalb_lon_inc,
                0106      &      ssalb_lat0, ssalb_lat_inc,
                0107      &      ssalb_nlon, ssalb_nlat, xC, yC, ssalb_interpMethod,
                0108 #endif
                0109      &      mythid )
                0110       ENDDO
                0111 
                0112       call exf_init_fld (
                0113      &     'cldcov', cldcovfile, cldcovmask,
                0114      &     cldcovperiod, cldcov_inscal, cldcovconst,
                0115      &     ccov, cldcov0, cldcov1,
                0116 #ifdef USE_EXF_INTERPOLATION
                0117      &     cldcov_lon0, cldcov_lon_inc,
                0118      &     cldcov_lat0, cldcov_lat_inc,
                0119      &     cldcov_nlon, cldcov_nlat, xC, yC, cldcov_interpMethod,
                0120 #endif
                0121      &     mythid )
                0122 
                0123       call exf_init_fld (
                0124      &     'cldlwp', cldlwpfile, cldlwpmask,
                0125      &     cldlwpperiod, cldlwp_inscal, cldlwpconst,
                0126      &     rlwp, cldlwp0, cldlwp1,
                0127 #ifdef USE_EXF_INTERPOLATION
                0128      &     cldlwp_lon0, cldlwp_lon_inc,
                0129      &     cldlwp_lat0, cldlwp_lat_inc,
                0130      &     cldlwp_nlon, cldlwp_nlat, xC, yC, cldlwp_interpMethod,
                0131 #endif
                0132      &     mythid )
                0133 
                0134       call exf_init_fld (
                0135      &     'cldre', cldrefile, cldremask,
                0136      &     cldreperiod, cldre_inscal, cldreconst,
                0137      &     cdre, cldre0, cldre1,
                0138 #ifdef USE_EXF_INTERPOLATION
                0139      &     cldre_lon0, cldre_lon_inc,
                0140      &     cldre_lat0, cldre_lat_inc,
                0141      &     cldre_nlon, cldre_nlat, xC, yC, cldre_interpMethod,
                0142 #endif
                0143      &     mythid )
                0144 
                0145       call exf_init_fld (
                0146      &     'pres', presfile, presmask,
                0147      &     presperiod, pres_inscal, presconst,
                0148      &     slp, pres0, pres1,
                0149 #ifdef USE_EXF_INTERPOLATION
                0150      &     pres_lon0, pres_lon_inc,
                0151      &     pres_lat0, pres_lat_inc,
                0152      &     pres_nlon, pres_nlat, xC, yC, pres_interpMethod,
                0153 #endif
                0154      &     mythid )
                0155 
                0156       call exf_init_fld (
                0157      &     'oawind', oawindfile, oawindmask,
                0158      &     oawindperiod, oawind_inscal, oawindconst,
                0159      &     wsm, oawind0, oawind1,
                0160 #ifdef USE_EXF_INTERPOLATION
                0161      &     oawind_lon0, oawind_lon_inc,
                0162      &     oawind_lat0, oawind_lat_inc,
                0163      &     oawind_nlon, oawind_nlat, xC, yC, oawind_interpMethod,
                0164 #endif
                0165      &     mythid )
                0166 
                0167       call exf_init_fld (
                0168      &     'relhum', relhumfile, relhummask,
                0169      &     relhumperiod, relhum_inscal, relhumconst,
                0170      &     rh, relhum0, relhum1,
                0171 #ifdef USE_EXF_INTERPOLATION
                0172      &     relhum_lon0, relhum_lon_inc,
                0173      &     relhum_lat0, relhum_lat_inc,
                0174      &     relhum_nlon, relhum_nlat, xC, yC, relhum_interpMethod,
                0175 #endif
                0176      &     mythid )
                0177 
                0178       call exf_init_fld (
                0179      &     'ozone', ozonefile, ozonemask,
                0180      &     ozoneperiod, ozone_inscal, ozoneconst,
                0181      &     oz, ozone0, ozone1,
                0182 #ifdef USE_EXF_INTERPOLATION
                0183      &     ozone_lon0, ozone_lon_inc,
                0184      &     ozone_lat0, ozone_lat_inc,
                0185      &     ozone_nlon, ozone_nlat, xC, yC, ozone_interpMethod,
                0186 #endif
                0187      &     mythid )
                0188 
                0189       call exf_init_fld (
                0190      &     'wv', wvfile, wvmask,
                0191      &     wvperiod, wv_inscal, wvconst,
                0192      &     wv, wv0, wv1,
                0193 #ifdef USE_EXF_INTERPOLATION
                0194      &     wv_lon0, wv_lon_inc,
                0195      &     wv_lat0, wv_lat_inc,
                0196      &     wv_nlon, wv_nlat, xC, yC, wv_interpMethod,
                0197 #endif
                0198      &     mythid )
                0199 
                0200 #endif /* ALLOW_EXF */
                0201 #endif /* ALLOW_OASIM */
                0202 
                0203       RETURN
                0204       END