Changeset 685
- Timestamp:
- 2007-06-29T18:41:37+02:00 (17 years ago)
- Location:
- trunk/NEMO/OPA_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/tau_oasis_ice.h90
r532 r685 23 23 !!---------------------------------------------------------------------- 24 24 !! OPA 9.0 , LOCEAN-IPSL (2006) 25 !! $Header $25 !! $Header: /home/opalod/NEMOCVSROOT/NEMO/OPA_SRC/SBC/tau_oasis_ice.h90,v 1.2 2007/06/29 14:23:07 opalod Exp $ 26 26 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 27 27 !!---------------------------------------------------------------------- … … 115 115 ! ... rotate vector components 116 116 ! 117 CALL repcmo ( ztaueu, ztaunu, ztauev, ztaunv, taux, tauy , kt)117 CALL repcmo ( ztaueu, ztaunu, ztauev, ztaunv, taux, tauy ) 118 118 119 119 ! -
trunk/NEMO/OPA_SRC/geo2ocean.F90
r672 r685 38 38 !!--------------------------------------------------------------------------------- 39 39 !! OPA 9.0 , LOCEAN-IPSL (2005) 40 !! $Header $40 !! $Header: /home/opalod/NEMOCVSROOT/NEMO/OPA_SRC/geo2ocean.F90,v 1.7 2007/06/29 14:23:06 opalod Exp $ 41 41 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 42 42 !!--------------------------------------------------------------------------------- … … 45 45 46 46 SUBROUTINE repcmo ( pxu1, pyu1, pxv1, pyv1, & 47 px2 , py2 , kt)47 px2 , py2 ) 48 48 !!---------------------------------------------------------------------- 49 49 !! *** ROUTINE repcmo *** … … 62 62 !!---------------------------------------------------------------------- 63 63 !! * Arguments 64 INTEGER, INTENT( in ) :: &65 kt ! ocean time-step66 64 REAL(wp), INTENT( in ), DIMENSION(jpi,jpj) :: & 67 65 pxu1, pyu1, & ! geographic vector componantes at u-point … … 75 73 ! ---------------------------------------------- 76 74 77 px2(:,:) = rot_rep( pxu1, pyu1, 'U', 'en->i')78 py2(:,:) = rot_rep( pxv1, pyv1, 'V', 'en->j')75 CALL rot_rep( pxu1, pyu1, 'U', 'en->i',px2 ) 76 CALL rot_rep( pxv1, pyv1, 'V', 'en->j',py2 ) 79 77 80 78 END SUBROUTINE repcmo 81 79 82 80 83 FUNCTION rot_rep ( pxin, pyin, cd_type, cdtodo)81 SUBROUTINE rot_rep ( pxin, pyin, cd_type, cdtodo, prot ) 84 82 !!---------------------------------------------------------------------- 85 83 !! *** ROUTINE rot_rep *** … … 100 98 !! ! 'ij->e' model i-j componantes to east componante 101 99 !! ! 'ij->n' model i-j componantes to east componante 102 REAL(wp), DIMENSION(jpi,jpj) :: rot_rep100 REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: prot 103 101 104 102 !!---------------------------------------------------------------------- … … 120 118 CASE ('en->i') ! 'en->i' est-north componantes to model i componante 121 119 SELECT CASE (cd_type) 122 CASE ('T') ; rot_rep(:,:) = pxin(:,:) * gcost(:,:) + pyin(:,:) * gsint(:,:)123 CASE ('U') ; rot_rep(:,:) = pxin(:,:) * gcosu(:,:) + pyin(:,:) * gsinu(:,:)124 CASE ('V') ; rot_rep(:,:) = pxin(:,:) * gcosv(:,:) + pyin(:,:) * gsinv(:,:)125 CASE ('F') ; rot_rep(:,:) = pxin(:,:) * gcosf(:,:) + pyin(:,:) * gsinf(:,:)120 CASE ('T') ; prot(:,:) = pxin(:,:) * gcost(:,:) + pyin(:,:) * gsint(:,:) 121 CASE ('U') ; prot(:,:) = pxin(:,:) * gcosu(:,:) + pyin(:,:) * gsinu(:,:) 122 CASE ('V') ; prot(:,:) = pxin(:,:) * gcosv(:,:) + pyin(:,:) * gsinv(:,:) 123 CASE ('F') ; prot(:,:) = pxin(:,:) * gcosf(:,:) + pyin(:,:) * gsinf(:,:) 126 124 CASE DEFAULT ; CALL ctl_stop( 'Only T, U, V and F grid points are coded' ) 127 125 END SELECT 128 126 CASE ('en->j') ! 'en->j' est-north componantes to model j componante 129 127 SELECT CASE (cd_type) 130 CASE ('T') ; rot_rep(:,:) = pyin(:,:) * gcost(:,:) - pxin(:,:) * gsint(:,:)131 CASE ('U') ; rot_rep(:,:) = pyin(:,:) * gcosu(:,:) - pxin(:,:) * gsinu(:,:)132 CASE ('V') ; rot_rep(:,:) = pyin(:,:) * gcosv(:,:) - pxin(:,:) * gsinv(:,:)133 CASE ('F') ; rot_rep(:,:) = pyin(:,:) * gcosf(:,:) - pxin(:,:) * gsinf(:,:)128 CASE ('T') ; prot(:,:) = pyin(:,:) * gcost(:,:) - pxin(:,:) * gsint(:,:) 129 CASE ('U') ; prot(:,:) = pyin(:,:) * gcosu(:,:) - pxin(:,:) * gsinu(:,:) 130 CASE ('V') ; prot(:,:) = pyin(:,:) * gcosv(:,:) - pxin(:,:) * gsinv(:,:) 131 CASE ('F') ; prot(:,:) = pyin(:,:) * gcosf(:,:) - pxin(:,:) * gsinf(:,:) 134 132 CASE DEFAULT ; CALL ctl_stop( 'Only T, U, V and F grid points are coded' ) 135 133 END SELECT 136 134 CASE ('ij->e') ! 'ij->e' model i-j componantes to est componante 137 135 SELECT CASE (cd_type) 138 CASE ('T') ; rot_rep(:,:) = pxin(:,:) * gcost(:,:) - pyin(:,:) * gsint(:,:)139 CASE ('U') ; rot_rep(:,:) = pxin(:,:) * gcosu(:,:) - pyin(:,:) * gsinu(:,:)140 CASE ('V') ; rot_rep(:,:) = pxin(:,:) * gcosv(:,:) - pyin(:,:) * gsinv(:,:)141 CASE ('F') ; rot_rep(:,:) = pxin(:,:) * gcosf(:,:) - pyin(:,:) * gsinf(:,:)136 CASE ('T') ; prot(:,:) = pxin(:,:) * gcost(:,:) - pyin(:,:) * gsint(:,:) 137 CASE ('U') ; prot(:,:) = pxin(:,:) * gcosu(:,:) - pyin(:,:) * gsinu(:,:) 138 CASE ('V') ; prot(:,:) = pxin(:,:) * gcosv(:,:) - pyin(:,:) * gsinv(:,:) 139 CASE ('F') ; prot(:,:) = pxin(:,:) * gcosf(:,:) - pyin(:,:) * gsinf(:,:) 142 140 CASE DEFAULT ; CALL ctl_stop( 'Only T, U, V and F grid points are coded' ) 143 141 END SELECT 144 142 CASE ('ij->n') ! 'ij->n' model i-j componantes to est componante 145 143 SELECT CASE (cd_type) 146 CASE ('T') ; rot_rep(:,:) = pyin(:,:) * gcost(:,:) + pxin(:,:) * gsint(:,:)147 CASE ('U') ; rot_rep(:,:) = pyin(:,:) * gcosu(:,:) + pxin(:,:) * gsinu(:,:)148 CASE ('V') ; rot_rep(:,:) = pyin(:,:) * gcosv(:,:) + pxin(:,:) * gsinv(:,:)149 CASE ('F') ; rot_rep(:,:) = pyin(:,:) * gcosf(:,:) + pxin(:,:) * gsinf(:,:)144 CASE ('T') ; prot(:,:) = pyin(:,:) * gcost(:,:) + pxin(:,:) * gsint(:,:) 145 CASE ('U') ; prot(:,:) = pyin(:,:) * gcosu(:,:) + pxin(:,:) * gsinu(:,:) 146 CASE ('V') ; prot(:,:) = pyin(:,:) * gcosv(:,:) + pxin(:,:) * gsinv(:,:) 147 CASE ('F') ; prot(:,:) = pyin(:,:) * gcosf(:,:) + pxin(:,:) * gsinf(:,:) 150 148 CASE DEFAULT ; CALL ctl_stop( 'Only T, U, V and F grid points are coded' ) 151 149 END SELECT … … 153 151 END SELECT 154 152 155 END FUNCTIONrot_rep153 END SUBROUTINE rot_rep 156 154 157 155 … … 438 436 SELECT CASE (kchoix) 439 437 CASE ( 1) ! change from geographic to model grid. 440 px2(:,:) = rot_rep( px1, py1, cl_type, 'en->i')441 py2(:,:) = rot_rep( px1, py1, cl_type, 'en->j')438 CALL rot_rep( px1, py1, cl_type, 'en->i', px2 ) 439 CALL rot_rep( px1, py1, cl_type, 'en->j', py2 ) 442 440 CASE (-1) ! change from model to geographic grid 443 px2(:,:) = rot_rep( px1, py1, cl_type, 'ij->e')444 py2(:,:) = rot_rep( px1, py1, cl_type, 'ij->n')441 CALL rot_rep( px1, py1, cl_type, 'ij->e', px2 ) 442 CALL rot_rep( px1, py1, cl_type, 'ij->n', py2 ) 445 443 CASE DEFAULT ; CALL ctl_stop( 'repere: Syntax Error in the definition of kchoix (1 OR -1' ) 446 444 END SELECT
Note: See TracChangeset
for help on using the changeset viewer.