Changeset 12 for trunk/NEMO/LIM_SRC/limdia.F90
- Timestamp:
- 2004-02-17T07:56:53+01:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC/limdia.F90
r3 r12 27 27 PUBLIC lim_dia ! called by ice_step 28 28 29 !! * Shared module variables 30 INTEGER, PUBLIC :: & 31 ntmoy = 1 , & !: instantaneous values of ice evolution or averaging ntmoy 32 ninfo = 1 !: frequency of ouputs on file ice_evolu in case of averaging 33 29 34 !! * Module variables 30 INTEGER, PUBLIC :: &31 ntmoy = 1 , & ! instantaneous values of ice evolution or averaging ntmoy32 ninfo = 1 ! frequency of ouputs on file ice_evolu in case of averaging33 34 35 INTEGER :: & 35 36 nfrinf = 4 ! number of variables written in one line … … 48 49 49 50 CHARACTER(len=30) :: & 50 fmtw , & ! 51 fmtr , & ! 52 fmtitr ! 51 fmtw , & ! formats 52 fmtr , & ! ??? 53 fmtitr ! ??? 53 54 54 55 CHARACTER(len=nchsep), DIMENSION(ninfmx) :: & … … 78 79 !!------------------------------------------------------------------- 79 80 !! * Local variables 80 INTEGER :: jv,ji, jj! dummy loop indices81 INTEGER :: nv! indice of variable81 INTEGER :: jv,ji, jj ! dummy loop indices 82 INTEGER :: nv ! indice of variable 82 83 REAL(wp), DIMENSION(ninfmx) :: & 83 vinfor ! temporary working space84 REAL(wp) 85 area , & ! sea ice area86 ldarea , & ! leads area87 extent15, & ! sea ice extent (15%)88 extent85, & ! sea ice extent (85%)89 icevol , & ! sea ice volume90 snwvol , & ! snow volume over sea ice91 icespd ! sea ice velocity84 vinfor ! temporary working space 85 REAL(wp) :: & 86 zarea , & ! sea ice area 87 zldarea , & ! leads area 88 zextent15, & ! sea ice extent (15%) 89 zextent85, & ! sea ice extent (85%) 90 zicevol , & ! sea ice volume 91 zsnwvol , & ! snow volume over sea ice 92 zicespd ! sea ice velocity 92 93 !!------------------------------------------------------------------- 93 94 … … 101 102 vinfor(nv) = nyear 102 103 103 DO 104 DO jv = nbvt + 1, nvinfo 104 105 vinfor(jv) = 0.0 105 106 END DO 106 107 107 extent15 = 0.e0108 extent85 = 0.e0108 zextent15 = 0.e0 109 zextent85 = 0.e0 109 110 ! variables in northern Hemis 110 DO jj = jeq, jpjm1111 DO ji = fs_2 , fs_jpim1111 DO jj = jeq, jpjm1 112 DO ji = fs_2, fs_jpim1 ! vector opt. 112 113 IF( tms(ji,jj) == 1 ) THEN 113 area = ( 1.0 - frld(ji,jj) ) * aire(ji,jj)114 IF (frld(ji,jj) <= 0.15 ) extent15 = aire(ji,jj)115 IF (frld(ji,jj) <= 0.85 ) extent85 = aire(ji,jj)116 ldarea =area / MAX( ( 1 - frld(ji,jj) ) , epsi06 )117 icevol =area * hicif(ji,jj)118 snwvol =area * hsnif(ji,jj)119 icespd = icevol * ( u_ice(ji,jj) * u_ice(ji,jj) + v_ice(ji,jj) * v_ice(ji,jj) )120 121 vinfor(nv + 1) = vinfor(nv + 1) +area122 vinfor(nv + 3) = vinfor(nv + 3) +extent15123 vinfor(nv + 5) = vinfor(nv + 5) +extent85124 vinfor(nv + 7) = vinfor(nv + 7) +ldarea125 vinfor(nv + 9) = vinfor(nv + 9) +icevol126 vinfor(nv + 11) = vinfor(nv + 11) +snwvol127 vinfor(nv + 13) = vinfor(nv + 13) +icespd114 zarea = ( 1.0 - frld(ji,jj) ) * aire(ji,jj) 115 IF (frld(ji,jj) <= 0.15 ) zextent15 = aire(ji,jj) 116 IF (frld(ji,jj) <= 0.85 ) zextent85 = aire(ji,jj) 117 zldarea = zarea / MAX( ( 1 - frld(ji,jj) ) , epsi06 ) 118 zicevol = zarea * hicif(ji,jj) 119 zsnwvol = zarea * hsnif(ji,jj) 120 zicespd = zicevol * ( u_ice(ji,jj) * u_ice(ji,jj) & 121 & + v_ice(ji,jj) * v_ice(ji,jj) ) 122 vinfor(nv+ 1) = vinfor(nv+ 1) + zarea 123 vinfor(nv+ 3) = vinfor(nv+ 3) + zextent15 124 vinfor(nv+ 5) = vinfor(nv+ 5) + zextent85 125 vinfor(nv+ 7) = vinfor(nv+ 7) + zldarea 126 vinfor(nv+ 9) = vinfor(nv+ 9) + zicevol 127 vinfor(nv+11) = vinfor(nv+11) + zsnwvol 128 vinfor(nv+13) = vinfor(nv+13) + zicespd 128 129 ENDIF 129 130 END DO 130 131 END DO 131 vinfor(nv + 13) = SQRT( vinfor(nv + 13) / MAX( vinfor(nv + 9) , epsi06 ) )132 vinfor(nv+13) = SQRT( vinfor(nv+13) / MAX( vinfor(nv+9) , epsi06 ) ) 132 133 133 134 134 135 ! variables in southern Hemis 135 136 nv = nv + 1 136 DO jj = 2, jeqm1137 DO ji = fs_2 , fs_jpim1137 DO jj = 2, jeqm1 138 DO ji = fs_2, fs_jpim1 ! vector opt. 138 139 IF( tms(ji,jj) == 1 ) THEN 139 area = ( 1.0 - frld(ji,jj) ) * aire(ji,jj)140 IF (frld(ji,jj) <= 0.15 ) extent15 = aire(ji,jj)141 IF (frld(ji,jj) <= 0.85 ) extent85 = aire(ji,jj)142 ldarea =area / MAX( ( 1 - frld(ji,jj) ) , epsi06 )143 icevol =area * hicif(ji,jj)144 snwvol =area * hsnif(ji,jj)145 icespd = icevol * ( u_ice(ji,jj) * u_ice(ji,jj) + v_ice(ji,jj) * v_ice(ji,jj) )146 147 vinfor(nv + 1) = vinfor(nv + 1) +area148 vinfor(nv + 3) = vinfor(nv + 3) +extent15149 vinfor(nv + 5) = vinfor(nv + 5) +extent85150 vinfor(nv + 7) = vinfor(nv + 7) +ldarea151 vinfor(nv + 9) = vinfor(nv + 9) +icevol152 vinfor(nv + 11) = vinfor(nv + 11) +snwvol153 vinfor(nv + 13) = vinfor(nv + 13) +icespd140 zarea = ( 1.0 - frld(ji,jj) ) * aire(ji,jj) 141 IF (frld(ji,jj) <= 0.15 ) zextent15 = aire(ji,jj) 142 IF (frld(ji,jj) <= 0.85 ) zextent85 = aire(ji,jj) 143 zldarea = zarea / MAX( ( 1 - frld(ji,jj) ) , epsi06 ) 144 zicevol = zarea * hicif(ji,jj) 145 zsnwvol = zarea * hsnif(ji,jj) 146 zicespd = zicevol * ( u_ice(ji,jj) * u_ice(ji,jj) & 147 & + v_ice(ji,jj) * v_ice(ji,jj) ) 148 vinfor(nv+ 1) = vinfor(nv+ 1) + zarea 149 vinfor(nv+ 3) = vinfor(nv+ 3) + zextent15 150 vinfor(nv+ 5) = vinfor(nv+ 5) + zextent85 151 vinfor(nv+ 7) = vinfor(nv+ 7) + zldarea 152 vinfor(nv+ 9) = vinfor(nv+ 9) + zicevol 153 vinfor(nv+11) = vinfor(nv+11) + zsnwvol 154 vinfor(nv+13) = vinfor(nv+13) + zicespd 154 155 ENDIF 155 156 END DO 156 157 END DO 157 vinfor(nv + 13) = SQRT( vinfor(nv + 13) / MAX( vinfor(nv + 9) , epsi06 ) )158 vinfor(nv+13) = SQRT( vinfor(nv+13) / MAX( vinfor(nv+9) , epsi06 ) ) 158 159 159 160 ! Accumulation before averaging 160 DO jv = 1 161 DO jv = 1, nvinfo 161 162 vinfom(jv) = vinfom(jv) + vinfor(jv) 162 163 END DO … … 167 168 WRITE(90,fmtw) ( titvar(jv), vinfom(jv)/naveg, jv = 1, nvinfo ) 168 169 naveg = 0 169 DO 170 DO jv = 1, nvinfo 170 171 vinfom(jv)=0.0 171 172 END DO
Note: See TracChangeset
for help on using the changeset viewer.