Changeset 2045
- Timestamp:
- 2010-08-12T17:21:43+02:00 (14 years ago)
- Location:
- branches/DEV_r1879_FCM/NEMOGCM/NEMO
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r1879_FCM/NEMOGCM/NEMO/NST_SRC/agrif_user.F90
r2007 r2045 101 101 #endif 102 102 103 Call opa_init ! Initializations of each fine grid104 Call agrif_opa_init105 106 103 ! Specific fine grid Initializations 107 104 #if defined key_tradmp || defined key_esopa … … 113 110 lk_obc = .FALSE. 114 111 #endif 112 113 Call opa_init ! Initializations of each fine grid 114 Call agrif_opa_init 115 115 116 ! 1. Declaration of the type of variable which have to be interpolated 116 117 !--------------------------------------------------------------------- -
branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/DOM/phycst.F90
r2007 r2045 66 66 REAL(wp), PUBLIC :: rcpsn = 6.9069e+5_wp !: density times specific heat for snow 67 67 REAL(wp), PUBLIC :: rcpic = 1.8837e+6_wp !: volumetric latent heat fusion of sea ice 68 REAL(wp), PUBLIC :: lfus = 0.3337e+6 !: latent heat of fusion of fresh ice (J.kg-1) 68 69 REAL(wp), PUBLIC :: xlsn = 110.121e+6_wp !: volumetric latent heat fusion of snow 69 70 REAL(wp), PUBLIC :: xlic = 300.33e+6_wp !: volumetric latent heat fusion of ice -
branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90
r1613 r2045 120 120 IF( PRESENT(tab2d_1) ) ztab2d_1(:,:) = tab2d_1(:,:) 121 121 IF( PRESENT(tab2d_2) ) ztab2d_2(:,:) = tab2d_2(:,:) 122 IF( PRESENT(tab3d_1) ) ztab3d_1(:,:, :)= tab3d_1(:,:,:)123 IF( PRESENT(tab3d_2) ) ztab3d_2(:,:, :)= tab3d_2(:,:,:)122 IF( PRESENT(tab3d_1) ) ztab3d_1(:,:,1:kdir)= tab3d_1(:,:,:) 123 IF( PRESENT(tab3d_2) ) ztab3d_2(:,:,1:kdir)= tab3d_2(:,:,:) 124 124 IF( PRESENT(mask1) ) zmask1 (:,:,:)= mask1 (:,:,:) 125 125 IF( PRESENT(mask2) ) zmask2 (:,:,:)= mask2 (:,:,:) -
branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/OBC/obc_par.F90
r2036 r2045 47 47 !! open boundary parameter 48 48 !!--------------------------------------------------------------------- 49 INTEGER :: & !: time dimension of the BCS fields on input49 INTEGER, PARAMETER :: & !: time dimension of the BCS fields on input 50 50 jptobc = 2 51 51 !! * EAST open boundary 52 LOGICAL :: & !:52 LOGICAL, PARAMETER :: & !: 53 53 lp_obc_east = .FALSE. !: to active or not the East open boundary 54 54 INTEGER & … … 64 64 65 65 !! * WEST open boundary 66 LOGICAL :: & !:66 LOGICAL, PARAMETER :: & !: 67 67 lp_obc_west = .FALSE. !: to active or not the West open boundary 68 68 INTEGER & … … 78 78 79 79 !! * NORTH open boundary 80 LOGICAL :: & !:80 LOGICAL, PARAMETER :: & !: 81 81 lp_obc_north = .FALSE. !: to active or not the North open boundary 82 82 INTEGER & … … 92 92 93 93 !! * SOUTH open boundary 94 LOGICAL :: & !:94 LOGICAL, PARAMETER :: & !: 95 95 lp_obc_south = .FALSE. !: to active or not the South open boundary 96 96 INTEGER & -
branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/OBC/obcdta.F90
r2007 r2045 30 30 31 31 !! * Shared module variables 32 !$AGRIF_DO_NOT_TREAT 32 33 REAL(wp), DIMENSION(2) :: zjcnes_obc ! 33 34 REAL(wp), DIMENSION(:), ALLOCATABLE :: ztcobc 35 !$AGRIF_END_DO_NOT_TREAT 34 36 REAL(wp) :: rdt_obc 35 37 REAL(wp) :: zjcnes … … 469 471 ENDIF 470 472 ELSE 471 #if defined key_agrif472 IF ( ASSOCIATED(ztcobc) ) DEALLOCATE ( ztcobc )473 #else474 473 IF ( ALLOCATED(ztcobc) ) DEALLOCATE ( ztcobc ) 475 #endif476 474 ALLOCATE (ztcobc(itobc)) 477 475 DO ji=1,1 ! use a dummy loop to read ztcobc only once -
branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/OBC/obcini.F90
r2007 r2045 62 62 NAMELIST/namobc/ rn_dpein, rn_dpwin, rn_dpnin, rn_dpsin, & 63 63 & rn_dpeob, rn_dpwob, rn_dpnob, rn_dpsob, & 64 & rn_volemp, nn_obcdta, cn_obcdta, rn_volemp,&64 & rn_volemp, nn_obcdta, cn_obcdta, & 65 65 & ln_obc_clim, ln_vol_cst, ln_obc_fla 66 66 !!---------------------------------------------------------------------- … … 70 70 71 71 ! convert DOCTOR namelist name into the OLD names 72 nbobc = 0 72 73 nobc_dta = nn_obcdta 73 74 cffile = cn_obcdta … … 149 150 ENDIF 150 151 151 IF( nbobc /= 0.AND. jperio /= 0 ) &152 IF( nbobc >= 2 .AND. jperio /= 0 ) & 152 153 & CALL ctl_stop( ' Cyclic or symmetric, and open boundary condition are not compatible' ) 153 154 … … 441 442 END DO 442 443 END IF 443 444 444 IF( lp_obc_north ) THEN ! ... North open boundary lateral surface 445 445 DO jj = njn0, njn1 -
branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/OBC/obctra.F90
r1152 r2045 490 490 zin = sign( 1., -1.* z05cx ) 491 491 zin = 0.5*( zin + abs(zin) ) 492 ztau = (1.-zin ) + zin * rtaus492 ztau = (1.-zin ) * rtausin + zin * rtaus 493 493 z05cx = z05cx * zin 494 494 495 !... update (ta,sa) with radiative or climatological (t, s) 495 496 ta(ji,jj,jk) = ta(ji,jj,jk) * (1.-tsmsk(ji,jk)) + & -
branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r2007 r2045 40 40 USE restart ! 41 41 USE oce , ONLY : tn, un, vn 42 USE phycst, ONLY : rt0, rcp43 42 USE albedo ! 44 43 USE in_out_manager ! I/O manager -
branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/SOL/solmat.F90
r2007 r2045 80 80 ENDIF 81 81 82 #if defined key_dynspg_flt && ! defined key_obc 82 #if defined key_dynspg_flt 83 # if ! defined key_obc 83 84 84 85 DO jj = 2, jpjm1 ! matrix of free surface elliptic system … … 97 98 END DO 98 99 END DO 99 100 # elif defined key_dynspg_flt && defined key_obc 101 IF( Agrif_Root() ) THEN 102 DO jj = 2, jpjm1 ! matrix of free surface elliptic system with open boundaries 103 DO ji = 2, jpim1 104 zcoef = z2dt * z2dt * grav * bmask(ji,jj) 105 ! ! south coefficient 106 IF( lp_obc_south .AND. ( jj == njs0p1 ) ) THEN 107 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vsmsk(ji,1)) 108 ELSE 109 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 110 END IF 111 gcp(ji,jj,1) = zcoefs 112 ! 113 ! ! west coefficient 114 IF( lp_obc_west .AND. ( ji == niw0p1 ) ) THEN 115 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-uwmsk(jj,1)) 116 ELSE 117 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 118 END IF 119 gcp(ji,jj,2) = zcoefw 120 ! 121 ! ! east coefficient 122 IF( lp_obc_east .AND. ( ji == nie0 ) ) THEN 123 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-uemsk(jj,1)) 124 ELSE 125 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 126 END IF 127 gcp(ji,jj,3) = zcoefe 128 ! 129 ! ! north coefficient 130 IF( lp_obc_north .AND. ( jj == njn0 ) ) THEN 131 zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vnmsk(ji,1)) 132 ELSE 100 # else 101 IF ( Agrif_Root() ) THEN 102 DO jj = 2, jpjm1 ! matrix of free surface elliptic system with open boundaries 103 DO ji = 2, jpim1 104 zcoef = z2dt * z2dt * grav * bmask(ji,jj) 105 ! ! south coefficient 106 IF( lp_obc_south .AND. ( jj == njs0p1 ) ) THEN 107 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vsmsk(ji,1)) 108 ELSE 109 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 110 END IF 111 gcp(ji,jj,1) = zcoefs 112 ! 113 ! ! west coefficient 114 IF( lp_obc_west .AND. ( ji == niw0p1 ) ) THEN 115 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-uwmsk(jj,1)) 116 ELSE 117 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 118 END IF 119 gcp(ji,jj,2) = zcoefw 120 ! 121 ! ! east coefficient 122 IF( lp_obc_east .AND. ( ji == nie0 ) ) THEN 123 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-uemsk(jj,1)) 124 ELSE 125 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 126 END IF 127 gcp(ji,jj,3) = zcoefe 128 ! 129 ! ! north coefficient 130 IF( lp_obc_north .AND. ( jj == njn0 ) ) THEN 131 zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vnmsk(ji,1)) 132 ELSE 133 133 zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj) 134 END IF 135 gcp(ji,jj,4) = zcoefn 136 ! 137 ! ! diagonal coefficient 138 gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj) & 139 & - zcoefs -zcoefw -zcoefe -zcoefn 140 END DO 141 END DO 142 ENDIF 134 END IF 135 gcp(ji,jj,4) = zcoefn 136 ! 137 ! ! diagonal coefficient 138 gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj) & 139 & - zcoefs -zcoefw -zcoefe -zcoefn 140 END DO 141 END DO 142 ELSE 143 DO jj = 2, jpjm1 ! matrix of free surface elliptic system 144 DO ji = 2, jpim1 145 zcoef = z2dt * z2dt * grav * bmask(ji,jj) 146 zcoefs = -zcoef * hv(ji ,jj-1) * e1v(ji ,jj-1) / e2v(ji ,jj-1) ! south coefficient 147 zcoefw = -zcoef * hu(ji-1,jj ) * e2u(ji-1,jj ) / e1u(ji-1,jj ) ! west coefficient 148 zcoefe = -zcoef * hu(ji ,jj ) * e2u(ji ,jj ) / e1u(ji ,jj ) ! east coefficient 149 zcoefn = -zcoef * hv(ji ,jj ) * e1v(ji ,jj ) / e2v(ji ,jj ) ! north coefficient 150 gcp(ji,jj,1) = zcoefs 151 gcp(ji,jj,2) = zcoefw 152 gcp(ji,jj,3) = zcoefe 153 gcp(ji,jj,4) = zcoefn 154 gcdmat(ji,jj) = e1t(ji,jj) * e2t(ji,jj) * bmask(ji,jj) & ! diagonal coefficient 155 & - zcoefs -zcoefw -zcoefe -zcoefn 156 END DO 157 END DO 158 ENDIF 159 # endif 143 160 #endif 144 161 145 #if defined key_agrif 146 IF( .NOT.AGRIF_ROOT() ) THEN 162 IF( .NOT. Agrif_Root() ) THEN 147 163 ! 148 164 IF( nbondi == -1 .OR. nbondi == 2 ) bmask(2 ,: ) = 0.e0 … … 193 209 ! 194 210 ENDIF 195 #endif196 211 197 212 ! 2. Boundary conditions -
branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90
r1756 r2045 45 45 46 46 ! Module variables 47 !$AGRIF_DO_NOT_TREAT 47 48 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_chl ! structure of input Chl (file informations, fields read) 48 49 INTEGER :: nksr ! levels below which the light cannot penetrate ( depth larger than 391 m) 49 50 REAL(wp), DIMENSION(3,61) :: rkrgb !: tabulated attenuation coefficients for RGB absorption 51 !$AGRIF_END_DO_NOT_TREAT 50 52 51 53 !! * Substitutions
Note: See TracChangeset
for help on using the changeset viewer.