- Timestamp:
- 12/15/14 08:59:31 (10 years ago)
- Location:
- codes/icosagcm/branches/SATURN_DYNAMICO
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/branches/SATURN_DYNAMICO/ICOSAGCM/src/sponge.f90
r298 r309 8 8 !1 --> for sponge over 4 topmost layers 9 9 !2 --> for sponge from top to ~1% of top layer pressure 10 !3 --> for sponge over topmost nb_sponge_layers 10 11 INTEGER,SAVE :: mode_sponge !1 --> u and v relax towards 0 11 12 !2 --> u and v relax towards their zonal mean 12 13 !3 --> u,v and pot. temp. relax towards their zonal mean 13 !$OMP THREADPRIVATE(tau_sponge,iflag_sponge,mode_sponge) 14 INTEGER,SAVE :: nb_sponge_layers ! number of layers over which the sponge extends 15 !$OMP THREADPRIVATE(tau_sponge,iflag_sponge,mode_sponge,nb_sponge_layers) 14 16 REAL,ALLOCATABLE,SAVE :: rdamp(:) ! quenching coefficient 15 17 REAL,ALLOCATABLE,SAVE:: lambda(:) ! inverse or quenching time scale (Hz) … … 29 31 tau_sponge = 1.e-4 30 32 CALL getin("tau_sponge",tau_sponge) 31 IF (is_mpi_master .AND. omp_master)PRINT*,'tau_sponge = ',tau_sponge33 PRINT*,'tau_sponge = ',tau_sponge 32 34 33 35 iflag_sponge = 0 34 36 CALL getin("iflag_sponge",iflag_sponge) 35 IF (is_mpi_master .AND. omp_master)PRINT*,'iflag_sponge = ',iflag_sponge37 PRINT*,'iflag_sponge = ',iflag_sponge 36 38 37 39 mode_sponge = 1 38 40 CALL getin("mode_sponge",mode_sponge) 39 IF (is_mpi_master .AND. omp_master) PRINT*,'mode_sponge = ',mode_sponge 41 PRINT*,'mode_sponge = ',mode_sponge 42 43 IF (iflag_sponge==3) THEN 44 nb_sponge_layers=1 45 call getin("nb_sponge_layers",nb_sponge_layers) 46 ENDIF 40 47 41 48 IF (iflag_sponge == 0) THEN 42 IF (is_mpi_master .AND. omp_master)PRINT*,'init_sponge: no sponge'49 PRINT*,'init_sponge: no sponge' 43 50 RETURN 44 51 ENDIF … … 59 66 ! higher than 100 times the topmost layer pressure 60 67 lambda(:)=tau_sponge*max(presnivs(llm)/presnivs(:)-0.01,0.) 68 ELSE IF (iflag_sponge == 3) THEN 69 lambda(:)=0. 70 DO l = llm,llm-nb_sponge_layers+1,-1 71 lambda(l)=tau_sponge/(2.**(llm-l)) 72 ENDDO 61 73 ELSE 62 74 PRINT*,'Bad selector for variable iflag_sponge : <',iflag_sponge, & 63 '> options are 0,1,2 '75 '> options are 0,1,2,3' 64 76 STOP 65 77 ENDIF … … 72 84 73 85 IF (is_mpi_master) THEN 74 PRINT*,' lambda ='86 PRINT*,'init_sponge: l, lambda(l), rdamp(l):' 75 87 DO l=ll_begin,ll_end 76 PRINT*,l,lambda(l) 77 ENDDO 78 PRINT*,'rdamp = ' 79 DO l=ll_begin,ll_end 80 PRINT*,l,rdamp(l) 88 PRINT*,l,lambda(l),rdamp(l) 81 89 ENDDO 82 90 ENDIF -
codes/icosagcm/branches/SATURN_DYNAMICO/TEST/run_icosa.def
r282 r309 146 146 ### iflag_sponge=1 for sponge over 4 topmost layers 147 147 ### iflag_sponge=2 for sponge from top to ~1% of top layer pressure 148 ### iflag_sponge=3 for sponge over topmost 'nb_sponge_layers' 148 149 ### tau_sponge --> damping frequency at last layer 149 150 ### e-5 medium / e-4 strong yet reasonable / e-3 very strong … … 153 154 iflag_sponge = 1 154 155 tau_sponge = 1.e-4 156 # 'nb_sponge_layers', used only when iflag_sponge = 3 157 nb_sponge_layers = 10 155 158 mode_sponge = 1 156 159
Note: See TracChangeset
for help on using the changeset viewer.