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
0007
0008
0009
0010
0011 SUBROUTINE OASIM_EXF_INIT_VARIA( myThid )
0012
0013
0014
0015
0016
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
0030 INTEGER myThid
0031
0032
0033 #ifdef ALLOW_OASIM
0034 #ifdef ALLOW_EXF
0035
0036
0037 INTEGER ILNBLNK
0038 EXTERNAL ILNBLNK
0039
0040 CHARACTER*16 fld
0041 CHARACTER*(MAX_LEN_FNAM) fnam
0042 INTEGER l, il
0043
0044
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