Changeset 473 for trunk/NEMO/OPA_SRC/SBC/tau_forced_monthly.h90
- Timestamp:
- 2006-05-11T17:04:37+02:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/tau_forced_monthly.h90
r392 r473 9 9 !! * local modules variables 10 10 INTEGER :: & 11 numtau, & ! logical unit for the i-component of the wind data12 numtav, & ! logical unit for the j-component of the wind data11 numtau, & ! logical unit for the i-component of the wind data 12 numtav, & ! logical unit for the j-component of the wind data 13 13 ntau1, ntau2 ! index of the first and second record used 14 15 CHARACTER (len=34) :: & !!! * monthly climatology/interanual fields16 cl_taux, & ! generic name of the i-component monthly NetCDF file17 cl_tauy ! generic name of the j-component monthly NetCDF file18 19 14 REAL(wp), DIMENSION(jpi,jpj,2) :: & 20 15 taux_dta, & ! i- and j-components of the surface stress (Pascal) … … 56 51 !!---------------------------------------------------------------------- 57 52 !! * Modules used 58 USE io ipsl ! NetCDF library53 USE iom 59 54 !! * Arguments 60 55 INTEGER, INTENT( in ) :: kt ! ocean time step 61 56 62 57 !! * Local declarations 63 INTEGER, PARAMETER :: jpmonth = 12 64 INTEGER :: & 65 imois, iman, itime, & 66 i15, & 67 ipi, ipj, ipk 68 INTEGER, DIMENSION(jpmonth) :: istep 69 REAL(wp) , DIMENSION(jpi,jpj):: & 70 zlon , & 71 zlat 72 REAL(wp) , DIMENSION(jpk):: & 73 zlev 74 REAL(wp) :: & 75 zsecond, & ! ??? 76 zdate0, & ! ??? 77 zxy ! coefficient of the linear time interpolation 58 INTEGER :: imois, iman, i15 59 REAL(wp) :: zxy ! coefficient of the linear time interpolation 78 60 !!--------------------------------------------------------------------- 79 cl_taux = 'taux_1m.nc'80 cl_tauy = 'tauy_1m.nc'81 61 82 62 ! -------------- ! … … 86 66 ! iman=number of dates in data file (12 for a year of monthly values) 87 67 iman = INT( raamo ) 88 itime = jpmonth89 ipi = jpiglo90 ipj = jpjglo91 ipk = jpk92 93 68 i15 = INT( 2*FLOAT( nday ) / ( FLOAT( nobis(nmonth) ) + 0.5 ) ) 94 95 69 imois = nmonth + i15 - 1 96 70 IF( imois == 0 ) imois = iman 97 98 71 99 72 ! -------------------- ! … … 102 75 103 76 IF( kt == nit000 ) THEN 104 ntau1 = 0105 IF(lwp) WRITE(numout,*)106 IF(lwp) WRITE(numout,*) ' tau : MONTHLY climatological wind stress (NetCDF files)'107 IF(lwp) WRITE(numout,*) ' ~~~ '108 77 109 ! title, dimensions and tests110 111 #if defined key_agrif 112 if ( .NOT. Agrif_Root() ) then113 cl_taux = TRIM(Agrif_CFixed())//'_'//TRIM(cl_taux)114 endif115 #endif 78 ntau1 = 0 ! initialization 79 IF(lwp) THEN 80 WRITE(numout,*) 81 WRITE(numout,*) ' tau : MONTHLY climatological wind stress (NetCDF files)' 82 ENDIF 83 CALL iom_open ( 'taux_1m.nc', numtau ) 84 CALL iom_open ( 'tauy_1m.nc', numtav ) 116 85 117 CALL flinopen( cl_taux, mig(1), nlci, mjg(1), nlcj, & ! taux on U-grid118 .FALSE., ipi , ipj, ipk , &119 zlon , zlat , zlev , itime, &120 istep, zdate0, zsecond, numtau )121 122 IF( itime /= jpmonth ) THEN123 IF(lwp) WRITE(numout,cform_err)124 IF(lwp) WRITE(numout,*) ' problem with time coordinates in file ', cl_taux125 IF(lwp) WRITE(numout,*) ' itime = ', itime,' jpmonth = ',jpmonth126 nstop = nstop + 1127 ENDIF128 IF( ipi /= jpidta .AND. ipj /= jpjdta .AND. ipk /= 1 ) THEN129 IF(lwp) WRITE(numout,cform_err)130 IF(lwp) WRITE(numout,*) ' problem with size read in file ', cl_taux131 IF(lwp) WRITE(numout,*) ' ipi = ',ipi,' jpidta = ',jpidta132 IF(lwp) WRITE(numout,*) ' ipj = ',ipj,' jpjdta = ',jpjdta133 IF(lwp) WRITE(numout,*) ' ipk = ',ipk,' must be 1'134 nstop = nstop + 1135 ENDIF136 #if defined key_agrif137 if ( .NOT. Agrif_Root() ) then138 cl_tauy = TRIM(Agrif_CFixed())//'_'//TRIM(cl_tauy)139 endif140 #endif141 CALL flinopen( cl_tauy, mig(1), nlci, mjg(1), nlcj, & ! tauy on V-grid142 .FALSE., ipi , ipj, ipk , &143 zlon , zlat , zlev , itime, &144 istep, zdate0, zsecond, numtav )145 146 IF( itime /= jpmonth ) THEN147 IF(lwp) WRITE(numout,cform_err)148 IF(lwp) WRITE(numout,*) ' problem with time coordinates in file ', cl_tauy149 IF(lwp) WRITE(numout,*) ' itime = ', itime,' jpmonth = ',jpmonth150 nstop = nstop + 1151 ENDIF152 IF( ipi /= jpidta .AND. ipj /= jpjdta .AND. ipk /= 1) THEN153 IF(lwp) WRITE(numout,cform_err)154 IF(lwp) WRITE(numout,*) ' problem with size read in file ', cl_tauy155 IF(lwp) WRITE(numout,*) ' ipi = ',ipi,' jpidta = ',jpidta156 IF(lwp) WRITE(numout,*) ' ipj = ',ipj,' jpjdta = ',jpjdta157 IF(lwp) WRITE(numout,*) ' ipk = ',ipk,' must be 1'158 nstop = nstop + 1159 ENDIF160 86 ENDIF 161 87 … … 178 104 ! Read the corresponding 2 monthly stress data 179 105 ! ntau1 180 CALL flinget( numtau,'sozotaux', & ! i-component at U-pt 181 jpidta,jpjdta,1,jpmonth,ntau1, & 182 ntau1,mig(1),nlci,mjg(1),nlcj,taux_dta(1:nlci,1:nlcj,1) ) 183 CALL flinget( numtav,'sometauy', & ! j-component at V-pt 184 jpidta,jpjdta,1,jpmonth,ntau1, & 185 ntau1,mig(1),nlci,mjg(1),nlcj,tauy_dta(1:nlci,1:nlcj,1) ) 186 ! ntau2 187 CALL flinget( numtau,'sozotaux', & ! i-component at U-pt 188 jpidta,jpjdta,1,jpmonth,ntau2, & 189 ntau2,mig(1),nlci,mjg(1),nlcj,taux_dta(1:nlci,1:nlcj,2) ) 190 CALL flinget( numtav,'sometauy', & ! j-component at V-pt 191 jpidta,jpjdta,1,jpmonth,ntau2, & 192 ntau2,mig(1),nlci,mjg(1),nlcj,tauy_dta(1:nlci,1:nlcj,2) ) 106 CALL iom_get ( numtau, jpdom_data, 'sozotaux', taux_dta(:,:,1), ntau1 ) 107 CALL iom_get ( numtav, jpdom_data, 'sometauy', tauy_dta(:,:,1), ntau1 ) 108 109 CALL iom_get ( numtau, jpdom_data, 'sozotaux', taux_dta(:,:,2), ntau2 ) 110 CALL iom_get ( numtav, jpdom_data, 'sometauy', tauy_dta(:,:,2), ntau2 ) 193 111 194 112 IF(lwp .AND. nitend-nit000 <= 100 ) THEN … … 230 148 ! Closing of the 2 files (required in mpp) 231 149 IF( kt == nitend ) THEN 232 CALL flinclo(numtau)233 CALL flinclo(numtav)150 CALL iom_close(numtau) 151 CALL iom_close(numtav) 234 152 ENDIF 235 153
Note: See TracChangeset
for help on using the changeset viewer.